[gs-commits] mupdf/master - 0_8-4-g876a127 - Inhibit warning message spam by introducing a repeat counter.
Tor Andersson
tor at ghostscript.com
Sun Mar 6 17:10:39 UTC 2011
commit 876a127dd098c76f757a34d1f3d0e65c8f6e6b08
Author: Tor Andersson <tor at ghostscript.com>
Date: Sun Mar 6 14:25:41 2011 +0000
Inhibit warning message spam by introducing a repeat counter.
Ignore-this: b9acb0cb64722bc2abba9dc42769b874
darcs-hash:20110306142541-f546f-d37c48df352cc1570fa41323b11fec436ad7b969.gz
7 files changed, 49 insertions(+), 3 deletions(-)
diff --git a/apps/pdfapp.c b/apps/pdfapp.c
index 58f6035..3980c57 100644
--- a/apps/pdfapp.c
+++ b/apps/pdfapp.c
@@ -205,6 +205,8 @@ void pdfapp_close(pdfapp_t *app)
pdf_freexref(app->xref);
app->xref = nil;
}
+
+ fz_flushwarnings();
}
static fz_matrix pdfapp_viewctm(pdfapp_t *app)
@@ -339,6 +341,8 @@ static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage, int repai
wincursor(app, ARROW);
}
+
+ fz_flushwarnings();
}
static void pdfapp_gotouri(pdfapp_t *app, fz_obj *uri)
diff --git a/apps/pdfclean.c b/apps/pdfclean.c
index 8f51157..2be479a 100644
--- a/apps/pdfclean.c
+++ b/apps/pdfclean.c
@@ -769,5 +769,7 @@ int main(int argc, char **argv)
pdf_freexref(xref);
+ fz_flushwarnings();
+
return 0;
}
diff --git a/apps/pdfdraw.c b/apps/pdfdraw.c
index 9ce72cf..9c46a3a 100644
--- a/apps/pdfdraw.c
+++ b/apps/pdfdraw.c
@@ -238,6 +238,8 @@ static void drawpage(pdf_xref *xref, int pagenum)
printf("\n");
pdf_agestore(xref->store, 3);
+
+ fz_flushwarnings();
}
static void drawrange(pdf_xref *xref, char *range)
@@ -374,5 +376,7 @@ int main(int argc, char **argv)
fz_freeglyphcache(glyphcache);
+ fz_flushwarnings();
+
return 0;
}
diff --git a/apps/pdfextract.c b/apps/pdfextract.c
index 340a351..1d01b4d 100644
--- a/apps/pdfextract.c
+++ b/apps/pdfextract.c
@@ -216,5 +216,7 @@ int main(int argc, char **argv)
pdf_freexref(xref);
+ fz_flushwarnings();
+
return 0;
}
diff --git a/apps/pdfshow.c b/apps/pdfshow.c
index eda01e3..4eda9b8 100644
--- a/apps/pdfshow.c
+++ b/apps/pdfshow.c
@@ -234,5 +234,7 @@ int main(int argc, char **argv)
pdf_freexref(xref);
+ fz_flushwarnings();
+
return 0;
}
diff --git a/fitz/base_error.c b/fitz/base_error.c
index 5aa8768..4117bc9 100644
--- a/fitz/base_error.c
+++ b/fitz/base_error.c
@@ -1,19 +1,45 @@
#include "fitz.h"
+enum { LINELEN = 160, LINECOUNT = 25 };
+
+static char warnmessage[LINELEN] = "";
+static int warncount = 0;
+
+void fz_flushwarnings(void)
+{
+ if (warncount > 1)
+ fprintf(stderr, "warning: ... repeated %d times ...\n", warncount);
+ warnmessage[0] = 0;
+ warncount = 0;
+}
+
void fz_warn(char *fmt, ...)
{
va_list ap;
- fprintf(stderr, "warning: ");
+ char buf[LINELEN];
+
va_start(ap, fmt);
- vfprintf(stderr, fmt, ap);
+ vsnprintf(buf, sizeof buf, fmt, ap);
va_end(ap);
- fprintf(stderr, "\n");
+
+ if (!strcmp(buf, warnmessage))
+ {
+ warncount++;
+ }
+ else
+ {
+ fz_flushwarnings();
+ fprintf(stderr, "warning: %s\n", buf);
+ fz_strlcpy(warnmessage, buf, sizeof warnmessage);
+ warncount = 1;
+ }
}
fz_error
fz_throwimp(const char *file, int line, const char *func, char *fmt, ...)
{
va_list ap;
+ fz_flushwarnings();
fprintf(stderr, "+ %s:%d: %s(): ", file, line, func);
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -26,6 +52,7 @@ fz_error
fz_rethrowimp(const char *file, int line, const char *func, fz_error cause, char *fmt, ...)
{
va_list ap;
+ fz_flushwarnings();
fprintf(stderr, "| %s:%d: %s(): ", file, line, func);
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -38,6 +65,7 @@ void
fz_catchimp(const char *file, int line, const char *func, fz_error cause, char *fmt, ...)
{
va_list ap;
+ fz_flushwarnings();
fprintf(stderr, "\\ %s:%d: %s(): ", file, line, func);
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -49,6 +77,7 @@ fz_error
fz_throwimpx(char *fmt, ...)
{
va_list ap;
+ fz_flushwarnings();
fprintf(stderr, "+ ");
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -61,6 +90,7 @@ fz_error
fz_rethrowimpx(fz_error cause, char *fmt, ...)
{
va_list ap;
+ fz_flushwarnings();
fprintf(stderr, "| ");
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -73,6 +103,7 @@ void
fz_catchimpx(fz_error cause, char *fmt, ...)
{
va_list ap;
+ fz_flushwarnings();
fprintf(stderr, "\\ ");
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
diff --git a/fitz/fitz.h b/fitz/fitz.h
index 13e285e..14372ef 100644
--- a/fitz/fitz.h
+++ b/fitz/fitz.h
@@ -113,6 +113,7 @@ int gettimeofday(struct timeval *tv, struct timezone *tz);
typedef int fz_error;
void fz_warn(char *fmt, ...) __printflike(1, 2);
+void fz_flushwarnings(void);
fz_error fz_throwimp(const char *file, int line, const char *func, char *fmt, ...) __printflike(4, 5);
fz_error fz_rethrowimp(const char *file, int line, const char *func, fz_error cause, char *fmt, ...) __printflike(5, 6);
--
git/hooks/post-receive
More information about the gs-commits
mailing list