From f22b0d94f8336eb3c880536bf50edf355ecac451 Mon Sep 17 00:00:00 2001 From: Pierre Ynard Date: Thu, 27 Aug 2009 11:14:10 +0200 Subject: [PATCH] WinCE: add replacement getpid() function And remove #ifdefs from code --- compat/getpid.c | 37 +++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- include/vlc_fixups.h | 8 ++++++++ src/config/file.c | 8 +------- src/modules/cache.c | 7 +------ 5 files changed, 48 insertions(+), 14 deletions(-) create mode 100644 compat/getpid.c diff --git a/compat/getpid.c b/compat/getpid.c new file mode 100644 index 0000000000..e5d9315d12 --- /dev/null +++ b/compat/getpid.c @@ -0,0 +1,37 @@ +/***************************************************************************** + * getpid.c: POSIX getpid() replacement + ***************************************************************************** + * Copyright © 2009 the VideoLAN project + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#ifdef WIN32 +# include +#endif + +pid_t getpid (void) +{ +#ifdef WIN32 + return (pid_t) GetCurrentProcessId (); +#else +# error Unimplemented! +#endif +} diff --git a/configure.ac b/configure.ac index 2a30a6bcc9..ccfa3303f9 100644 --- a/configure.ac +++ b/configure.ac @@ -564,7 +564,7 @@ dnl Check for usual libc functions AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r daemon fork lstat posix_fadvise posix_madvise uselocale]) AC_FUNC_ALLOCA AC_CHECK_FUNCS(fcntl) -AC_REPLACE_FUNCS([asprintf atof atoll getcwd gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab]) +AC_REPLACE_FUNCS([asprintf atof atoll getcwd getpid gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab]) AC_CHECK_FUNCS([stricmp strnicmp]) AC_CHECK_FUNCS(fdatasync,, [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.]) diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h index 74cf4544a5..24d3069a78 100644 --- a/include/vlc_fixups.h +++ b/include/vlc_fixups.h @@ -53,6 +53,10 @@ typedef struct # include /* va_list */ #endif +#ifndef HAVE_GETPID +# include /* pid_t */ +#endif + #ifdef __cplusplus extern "C" { #endif @@ -133,6 +137,10 @@ void rewind (FILE *); char *getcwd (char *buf, size_t size); #endif +#ifndef HAVE_GETPID +pid_t getpid (void); +#endif + #ifdef __cplusplus } /* extern "C" */ #endif diff --git a/src/config/file.c b/src/config/file.c index 1da0a698ab..6c8340ee89 100644 --- a/src/config/file.c +++ b/src/config/file.c @@ -522,13 +522,7 @@ static int SaveConfigFile( vlc_object_t *p_this, const char *psz_module_name, goto error; } - if (asprintf (&temporary, "%s.%u", permanent, -#ifdef UNDER_CE - GetCurrentProcessId () -#else - getpid () -#endif - ) == -1) + if (asprintf (&temporary, "%s.%u", permanent, getpid ()) == -1) { temporary = NULL; module_list_free (list); diff --git a/src/modules/cache.c b/src/modules/cache.c index 0f2f5cecea..dba50d52a4 100644 --- a/src/modules/cache.c +++ b/src/modules/cache.c @@ -508,12 +508,7 @@ void CacheSave( vlc_object_t *p_this, module_bank_t *p_bank ) char psz_tmpname[sizeof (psz_filename) + 12]; snprintf (psz_tmpname, sizeof (psz_tmpname), "%s.%"PRIu32, psz_filename, -#ifdef UNDER_CE - (uint32_t)GetCurrentProcessId () -#else - (uint32_t)getpid () -#endif - ); + (uint32_t)getpid ()); file = utf8_fopen( psz_tmpname, "wb" ); if (file == NULL) goto error;