The following commit has been merged in the master branch:
commit 40a15bdb0c74ec3c20fe46248fbdd27e3e242bc0
Author: Guillem Jover <[EMAIL PROTECTED]>
Date: Sat Dec 6 13:42:59 2008 +0200
libdpkg: Add support for format strings to internerr
diff --git a/ChangeLog b/ChangeLog
index 7da93be..b4fd78a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2008-12-08 Guillem Jover <[EMAIL PROTECTED]>
+ * lib/dpkg.h (do_internerr): Reorder arguments. Support format
+ strings.
+ (internerr): Likewise.
+ * lib/ehandle.c (do_internerr): Likewise.
+
+2008-12-08 Guillem Jover <[EMAIL PROTECTED]>
+
* scripts/Dpkg/ErrorHandling.pm (@EXPORT): Remove 'failure'.
(failure): Remove function.
(syserr): Rename 'failure' string to 'error'.
diff --git a/lib/dpkg.h b/lib/dpkg.h
index 876b75e..05cc588 100644
--- a/lib/dpkg.h
+++ b/lib/dpkg.h
@@ -183,8 +183,12 @@ void push_checkpoint(int mask, int value);
void pop_cleanup(int flagset);
enum { ehflag_normaltidy=01, ehflag_bombout=02, ehflag_recursiveerror=04 };
-void do_internerr(const char *string, int line, const char *file) NONRETURNING;
-#define internerr(s) do_internerr(s,__LINE__,__FILE__)
+void do_internerr(const char *file, int line, const char *fmt, ...)
NONRETURNING;
+#if HAVE_C99
+#define internerr(...) do_internerr(__FILE__, __LINE__, __VA_ARGS__)
+#else
+#define internerr(args...) do_internerr(__FILE__, __LINE__, args)
+#endif
struct varbuf;
void ohshit(const char *fmt, ...) NONRETURNING PRINTFFORMAT(1, 2);
diff --git a/lib/ehandle.c b/lib/ehandle.c
index 84f510c..2fd3600 100644
--- a/lib/ehandle.c
+++ b/lib/ehandle.c
@@ -316,8 +316,19 @@ void werr(const char *fn) {
ohshite(_("error writing `%s'"),fn);
}
-void do_internerr(const char *string, int line, const char *file) {
- fprintf(stderr,_("%s:%d: internal error `%s'\n"),file,line,string);
+void
+do_internerr(const char *file, int line, const char *fmt, ...)
+{
+ va_list al;
+ char buf[1024];
+
+ va_start(al, fmt);
+ vsnprintf(buf, sizeof(buf), fmt, al);
+ va_end(al);
+
+ fprintf(stderr, _("%s:%s:%d: internal error: %s\n"),
+ thisname, file, line, buf);
+
abort();
}
--
dpkg's main repository
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]