X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=intl%2Flog.c;h=e3ab5d0e66b27b1c0cea178fff1ccf9803722786;hb=b1b1e13ad4ed51aac800baf9d4e1cc06a3a61a64;hp=cb6076e80f7607d0f4f9bf23658c77e2d4f9d4ac;hpb=b02093873e853ba0caabae0451b51a2a119e7379;p=lyx.git diff --git a/intl/log.c b/intl/log.c index cb6076e80f..e3ab5d0e66 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 @@ -13,7 +13,7 @@ You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Written by Bruno Haible . */ @@ -26,6 +26,13 @@ #include #include +/* Handle multi-threaded applications. */ +#ifdef _LIBC +# include +#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); +}