summaryrefslogtreecommitdiffstats
path: root/intl/log.c
diff options
context:
space:
mode:
authorPedro J. Ruiz Lopez <holzplatten@es.gnu.org>2007-02-18 19:35:04 +0000
committerPedro J. Ruiz Lopez <holzplatten@es.gnu.org>2007-02-18 19:35:04 +0000
commitd49b34302a70ad948ce9cbf5778b1b39adb4286d (patch)
treed67ad1453f9380f549d880e5ffbc43df8ba63828 /intl/log.c
parent80f3bd30c7521091c1dea118603b20a76c2a180c (diff)
downloadidutils-d49b34302a70ad948ce9cbf5778b1b39adb4286d.tar.gz
idutils-d49b34302a70ad948ce9cbf5778b1b39adb4286d.tar.bz2
idutils-d49b34302a70ad948ce9cbf5778b1b39adb4286d.zip
Upgrade to gettext 0.16.1
Diffstat (limited to 'intl/log.c')
-rw-r--r--intl/log.c32
1 files changed, 25 insertions, 7 deletions
diff --git a/intl/log.c b/intl/log.c
index 89f82df..e3ab5d0 100644
--- a/intl/log.c
+++ b/intl/log.c
@@ -1,5 +1,5 @@
/* Log file output.
- Copyright (C) 2003 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
@@ -26,6 +26,13 @@
#include <stdlib.h>
#include <string.h>
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+#else
+# include "lock.h"
+#endif
+
/* Print an ASCII string with quotes and escape sequences where needed. */
static void
print_escaped (FILE *stream, const char *str)
@@ -48,13 +55,14 @@ print_escaped (FILE *stream, const char *str)
putc ('"', stream);
}
-/* Add to the log file an entry denoting a failed translation. */
-void
-_nl_log_untranslated (const char *logfilename, const char *domainname,
- const char *msgid1, const char *msgid2, int plural)
+static char *last_logfilename = NULL;
+static FILE *last_logfile = NULL;
+__libc_lock_define_initialized (static, lock)
+
+static inline void
+_nl_log_untranslated_locked (const char *logfilename, const char *domainname,
+ const char *msgid1, const char *msgid2, int plural)
{
- static char *last_logfilename = NULL;
- static FILE *last_logfile = NULL;
FILE *logfile;
/* Can we reuse the last opened logfile? */
@@ -96,3 +104,13 @@ _nl_log_untranslated (const char *logfilename, const char *domainname,
fprintf (logfile, "\nmsgstr \"\"\n");
putc ('\n', logfile);
}
+
+/* Add to the log file an entry denoting a failed translation. */
+void
+_nl_log_untranslated (const char *logfilename, const char *domainname,
+ const char *msgid1, const char *msgid2, int plural)
+{
+ __libc_lock_lock (lock);
+ _nl_log_untranslated_locked (logfilename, domainname, msgid1, msgid2, plural);
+ __libc_lock_unlock (lock);
+}