libxtrans uses private versions of ErrorF/VErrorF for error logging in
the font server, which means that all transport related error messages
are currently not getting into the font server log file.

This patch provides the necessary VErrorF API and then defines the new
TRANS_HAS_ERRORF symbol to ask libxtrans to use the local logging
functions instead of its own.

There is a related patch to libxtrans which uses this symbol.

Signed-off-by: Keith Packard <[email protected]>
---
 include/os.h  |  3 +++
 os/error.c    | 14 ++++++++++----
 os/xfstrans.c |  1 +
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/include/os.h b/include/os.h
index e07d4e0..0a5be84 100644
--- a/include/os.h
+++ b/include/os.h
@@ -48,6 +48,8 @@ in this Software without prior written authorization from The 
Open Group.
 #ifndef        _OS_H_
 #define        _OS_H_
 
+#include <stdarg.h>
+
 typedef struct _FontPathRec *FontPathPtr;
 typedef struct _alt_server *AlternateServerPtr;
 typedef struct _auth *AuthPtr;
@@ -101,6 +103,7 @@ extern void InitErrors(void);
 extern void    CloseErrors(void);
 extern void    NoticeF(const char *f, ...) _X_ATTRIBUTE_PRINTF(1, 2);
 extern void    ErrorF(const char * f, ...) _X_ATTRIBUTE_PRINTF(1, 2);
+extern void     VErrorF(const char * f, va_list args) _X_ATTRIBUTE_PRINTF(1, 
0);
 extern void    FatalError(const char* f, ...) _X_ATTRIBUTE_PRINTF(1, 2);
 
 /* os/io.c */
diff --git a/os/error.c b/os/error.c
index d868ede..7d2729b 100644
--- a/os/error.c
+++ b/os/error.c
@@ -146,11 +146,8 @@ Error(const char *str)
  * used for informational messages
  */
 void
-NoticeF(const char *f, ...)
+VErrorF(const char *f, va_list args)
 {
-    /* XXX should Notices just be ignored if not using syslog? */
-    va_list args;
-    va_start(args, f);
 #ifdef USE_SYSLOG
     if (UseSyslog) {
        vsyslog(LOG_NOTICE, f, args);
@@ -160,6 +157,15 @@ NoticeF(const char *f, ...)
     fprintf(stderr, "%s notice: ", progname);
     vfprintf(stderr, f, args);
 #endif /* USE_SYSLOG */
+}
+
+void
+NoticeF(const char *f, ...)
+{
+    /* XXX should Notices just be ignored if not using syslog? */
+    va_list args;
+    va_start(args, f);
+    VErrorF(f, args);
     va_end(args);
 }
 
diff --git a/os/xfstrans.c b/os/xfstrans.c
index bb1b12a..0dfeb59 100644
--- a/os/xfstrans.c
+++ b/os/xfstrans.c
@@ -24,6 +24,7 @@
 
 #define FONT_t 1
 #define TRANS_REOPEN 1
+#define TRANS_HAS_ERRORF 1
 #define TRANS_SERVER 1
 
 #include <X11/Xtrans/transport.c>
-- 
1.8.5.3

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to