poldek: poldek/log.h, poldek/log.c, poldek/python/poldekmod.i - fi...
mis
mis at pld-linux.org
Fri Feb 1 17:09:23 CET 2008
Author: mis Date: Fri Feb 1 16:09:22 2008 GMT
Module: poldek Tag: HEAD
---- Log message:
- fix: va_list can be printed once only
---- Files affected:
poldek/poldek:
log.h (1.29 -> 1.30) , log.c (1.36 -> 1.37)
poldek/poldek/python:
poldekmod.i (1.16 -> 1.17)
---- Diffs:
================================================================
Index: poldek/poldek/log.h
diff -u poldek/poldek/log.h:1.29 poldek/poldek/log.h:1.30
--- poldek/poldek/log.h:1.29 Wed Jan 23 23:57:41 2008
+++ poldek/poldek/log.h Fri Feb 1 17:09:17 2008
@@ -39,7 +39,7 @@
extern const int poldek_TRACE;
#endif
-typedef void (*poldek_vlog_fn)(void *, int pri, const char *fmt, va_list args);
+typedef void (*poldek_vlog_fn)(void *, int pri, const char *message);
void poldek_log_add_appender(const char *name, void *data, tn_fn_free free,
unsigned flags, poldek_vlog_fn dolog);
================================================================
Index: poldek/poldek/log.c
diff -u poldek/poldek/log.c:1.36 poldek/poldek/log.c:1.37
--- poldek/poldek/log.c:1.36 Wed Jan 23 23:57:41 2008
+++ poldek/poldek/log.c Fri Feb 1 17:09:17 2008
@@ -37,14 +37,14 @@
int (*poldek_log_say_goodbye)(const char *msg) = default_say_goodbye;
static void do_log(unsigned flags, int pri, const char *fmt, va_list args);
-static void vlog_file(void *stream, int pri, const char *fmt, va_list args);
-static void vlog_tty(void *foo, int pri, const char *fmt, va_list args);
+static void vlog_file(void *stream, int pri, const char *message);
+static void vlog_tty(void *foo, int pri, const char *message);
struct poldek_log_appender {
int flags; /* LOGTTY for TTY-output */
void *_data;
- void (*dolog)(void *, int pri, const char *fmt, va_list args);
+ void (*dolog)(void *, int pri, const char *message);
void (*free)(void *);
char name[0];
};
@@ -238,7 +238,7 @@
}
-static void vlog_tty(void *foo, int pri, const char *fmt, va_list args)
+static void vlog_tty(void *foo, int pri, const char *message)
{
char buf[44];
int n = 0;
@@ -263,11 +263,11 @@
if (n > 0)
fprintf(stdout, "%s", buf);
- vfprintf(stdout, fmt, args);
+ fprintf(stdout, "%s", message);
fflush(stdout);
}
-static void vlog_file(void *stream, int pri, const char *fmt, va_list args)
+static void vlog_file(void *stream, int pri, const char *message)
{
if ((pri & LOGOPT_CONT) == 0) {
@@ -285,25 +285,27 @@
else if (pri & LOGWARN)
fprintf(stream, "%s", _("warn: "));
- vfprintf(stream, fmt, args);
+ fprintf(stream, "%s", message);
fflush(stream);
}
static void do_log(unsigned flags, int pri, const char *fmt, va_list args)
{
- char *endl = NULL;
+ char message[1024], *endl = NULL;
int i;
if (*fmt == '\n' && (pri & (LOGERR|LOGWARN|LOGNOTICE))) {
fmt++;
endl = "\n";
}
+
+ n_vsnprintf(message, sizeof(message), fmt, args);
if (log_appenders == NULL || n_array_size(log_appenders) == 0) {
if (endl)
- vlog_tty(NULL, LOGOPT_CONT, endl, NULL);
+ vlog_tty(NULL, LOGOPT_CONT, endl);
- vlog_tty(NULL, pri, fmt, args);
+ vlog_tty(NULL, pri, message);
return;
}
@@ -315,8 +317,8 @@
if (ape->dolog) {
if (endl)
- ape->dolog(ape->_data, LOGOPT_CONT, endl, NULL);
- ape->dolog(ape->_data, pri, fmt, args);
+ ape->dolog(ape->_data, LOGOPT_CONT, endl);
+ ape->dolog(ape->_data, pri, message);
} else {
fprintf(stderr, "appender without dolog()?\n");
================================================================
Index: poldek/poldek/python/poldekmod.i
diff -u poldek/poldek/python/poldekmod.i:1.16 poldek/poldek/python/poldekmod.i:1.17
--- poldek/poldek/python/poldekmod.i:1.16 Mon Jan 28 15:08:09 2008
+++ poldek/poldek/python/poldekmod.i Fri Feb 1 17:09:17 2008
@@ -99,11 +99,10 @@
NULL, py_progress_new, py_progress, py_progress_reset, NULL
};
-static void PythonDoLog(void *data, int pri, const char *fmt, va_list vargs)
+static void PythonDoLog(void *data, int pri, const char *message)
{
PyObject *obj, *method, *pypri, *pymessage, *r;
const char *spri = "info";
- char message[2048];
if (pri & LOGERR)
spri = "error";
@@ -121,7 +120,6 @@
method = Py_BuildValue("s", "log");
pypri = Py_BuildValue("s", spri);
- n_vsnprintf(message, sizeof(message), fmt, vargs);
pymessage = Py_BuildValue("s", message);
r = PyObject_CallMethodObjArgs(obj, method, pypri, pymessage, NULL);
@@ -321,7 +319,7 @@
%extend tn_array {
tn_array(int size) { return n_array_new_ex(size, NULL, NULL, NULL); };
tn_array(void *arr) { return n_ref(arr); };
- ~tn_array() { printf("free %p %d\n", self); n_array_free(self); }
+ ~tn_array() { n_array_free(self); }
int __len__() { return n_array_size(self); }
void *nth(int i) {
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/log.h?r1=1.29&r2=1.30&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/log.c?r1=1.36&r2=1.37&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/python/poldekmod.i?r1=1.16&r2=1.17&f=u
More information about the pld-cvs-commit
mailing list