[vlc-commits] flockfile stub

Rémi Denis-Courmont git at videolan.org
Wed May 11 18:54:35 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed May 11 19:01:07 2011 +0300| [4f477ba9ebe1d8c2797a4661478c13b9c83067a9] | committer: Rémi Denis-Courmont

flockfile stub

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4f477ba9ebe1d8c2797a4661478c13b9c83067a9
---

 compat/flockfile.c   |   64 ++++++++++++++++++++++++++++++++++++++++++++++++++
 configure.ac         |    2 +-
 include/vlc_fixups.h |   10 ++++++++
 3 files changed, 75 insertions(+), 1 deletions(-)

diff --git a/compat/flockfile.c b/compat/flockfile.c
new file mode 100644
index 0000000..ebc2854
--- /dev/null
+++ b/compat/flockfile.c
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * flockfile.c: POSIX unlocked I/O stream stubs
+ *****************************************************************************
+ * Copyright © 2011 Rémi Denis-Courmont
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 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 Lesser 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 <config.h>
+#endif
+
+#include <stdio.h>
+
+/* There is no way to implement this for real. We just pretend it works and
+ * hope for the best (especially when outputting to stderr). */
+
+void flockfile (FILE *stream)
+{
+    (void) stream;
+}
+
+int ftrylockfile (FILE *stream)
+{
+    (void) stream;
+    return 0;
+}
+
+void funlockfile (FILE *stream)
+{
+    (void) stream;
+}
+
+int getc_unlocked (FILE *stream)
+{
+    return getc (stream);
+}
+
+int getchar_unlocked (void)
+{
+    return getchar ();
+}
+
+int putc_unlocked (int c, FILE *stream)
+{
+    return putc (c, stream);
+}
+
+int putchar_unlocked (int c)
+{
+    return putchar (c);
+}
diff --git a/configure.ac b/configure.ac
index 5ea921b..06f1972 100644
--- a/configure.ac
+++ b/configure.ac
@@ -551,7 +551,7 @@ need_libc=false
 
 dnl Check for usual libc functions
 AC_CHECK_FUNCS([daemon fcntl fdopendir fstatvfs fork getenv getpwuid_r gettimeofday isatty lstat memalign mmap openat pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp uselocale])
-AC_REPLACE_FUNCS([asprintf atof atoll dirfd getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy vasprintf])
+AC_REPLACE_FUNCS([asprintf atof atoll dirfd flockfile getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy vasprintf])
 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 1e4336c..63fcb20 100644
--- a/include/vlc_fixups.h
+++ b/include/vlc_fixups.h
@@ -78,6 +78,16 @@ extern "C" {
 int asprintf (char **, const char *, ...);
 #endif
 
+#ifndef HAVE_FLOCKFILE
+void flockfile (FILE *);
+int ftrylockfile (FILE *);
+void funlockfile (FILE *);
+int getc_unlocked (FILE *);
+int getchar_unlocked (void);
+int putc_unlocked (int, FILE *);
+int putchar_unlocked (int);
+#endif
+
 #ifndef HAVE_GETDELIM
 ssize_t getdelim (char **, size_t *, int, FILE *);
 ssize_t getline (char **, size_t *, FILE *);



More information about the vlc-commits mailing list