X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Flog.c;h=ff1aa8488a4e67ca0f07ad4d9dcdffe81a92d136;hb=113640450c45ca7ac96285cc8ca666bfd597ed21;hp=72e48cf9402b35090b23bb254d4828ffebb9c792;hpb=069f580ad7901713aaf7bb8d27aaba82124c15c7;p=yaz-moved-to-github.git diff --git a/util/log.c b/util/log.c index 72e48cf..ff1aa84 100644 --- a/util/log.c +++ b/util/log.c @@ -4,7 +4,14 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: log.c,v $ - * Revision 1.11 1996-02-05 12:24:32 adam + * Revision 1.13 1997-09-01 08:54:13 adam + * New windows NT/95 port using MSV5.0. Made prefix query handling + * thread safe. The function options ignores empty arguments when met. + * + * Revision 1.12 1997/05/01 15:08:14 adam + * Added log_mask_str_x routine. + * + * Revision 1.11 1996/02/05 12:24:32 adam * Implemented log_event_{start,end}-functions. * * Revision 1.10 1995/12/06 09:51:27 quinn @@ -71,13 +78,14 @@ #include #include #include +#include #include #include #include #include static int l_level = LOG_DEFAULT_LEVEL; -static FILE *l_file = stderr; +static FILE *l_file = NULL; static char l_prefix[512] = "log"; static struct { @@ -95,8 +103,9 @@ static struct { { 0, NULL } }; -#ifndef strerror +#ifndef strerror +#ifndef WINDOWS char *strerror(int n) { extern char *sys_errlist[]; @@ -104,6 +113,7 @@ char *strerror(int n) } #endif +#endif FILE *log_file(void) { @@ -151,6 +161,8 @@ void logf(int level, const char *fmt, ...) if (!(level & l_level)) return; + if (!l_file) + l_file = stderr; *flags = '\0'; for (i = 0; level && mask_names[i].name; i++) if (mask_names[i].mask & level) @@ -176,8 +188,13 @@ void logf(int level, const char *fmt, ...) int log_mask_str (const char *str) { + return log_mask_str_x (str, LOG_DEFAULT_LEVEL); +} + +int log_mask_str_x (const char *str, int level) +{ const char *p; - int i, level = LOG_DEFAULT_LEVEL; + int i; while (*str) { @@ -187,7 +204,7 @@ int log_mask_str (const char *str) level = atoi (str); else for (i = 0; mask_names[i].name; i++) - if (strlen (mask_names[i].name) == p-str && + if (strlen (mask_names[i].name) == (size_t) (p-str) && memcmp (mask_names[i].name, str, p-str) == 0) { if (mask_names[i].mask)