From: erg Date: Thu, 19 Jan 2006 22:55:09 +0000 (+0000) Subject: Avoid writing user name in svg output if not ascii. X-Git-Tag: LAST_LIBGRAPH~32^2~6845 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cfd76e40f01361f27151a1eaee85d8baf477a22b;p=graphviz Avoid writing user name in svg output if not ascii. --- diff --git a/lib/common/svggen.c b/lib/common/svggen.c index a0de59200..e656df38b 100644 --- a/lib/common/svggen.c +++ b/lib/common/svggen.c @@ -44,6 +44,7 @@ Stephen North north@research.att.com */ +#include #include "render.h" #ifdef HAVE_LIBZ #include "zlib.h" @@ -53,7 +54,6 @@ north@research.att.com #include #endif - /* SVG font modifiers */ #define REGULAR 0 #define BOLD 1 @@ -400,6 +400,17 @@ static void svg_comment(char *str) svg_fputs(" -->\n"); } +/* isAscii: + * Return true if all bytes in string are ascii. + */ +static int isAscii (char* s) +{ + int c; + + while ((c = *s++) && isascii(c)) ; + return (c == '\0'); +} + static void svg_begin_job(FILE * ofp, graph_t * g, char **lib, char *user, char *info[], point pages) @@ -459,9 +470,18 @@ svg_begin_job(FILE * ofp, graph_t * g, char **lib, char *user, svg_fputs(xml_string(info[1])); svg_fputs(" ("); svg_fputs(xml_string(info[2])); - svg_fputs(")\n For user: "); - svg_fputs(xml_string(user)); - svg_fputs(" -->\n"); + /* We assume utf-8 output. If user name contains any non-ascii bytes, + * we don't put it in the output. Obviously, this could be made more + * sophisticated, like checking that the name is utf-8 or doing some + * conversion. + */ + if (isAscii(user)) { + svg_fputs(")\n For user: "); + svg_fputs(xml_string(user)); + svg_fputs(" -->\n"); + } + else + svg_fputs(") -->\n"); } static void svg_begin_graph(GVC_t * gvc, graph_t * g, box bb, point pb)