Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/ee8bf699516dd8e603e26a7c862538e83da2c250 >--------------------------------------------------------------- commit ee8bf699516dd8e603e26a7c862538e83da2c250 Author: Paolo Capriotti <[email protected]> Date: Thu Mar 22 20:16:27 2012 +0000 hp2ps: escape backslashes when generating output file (#5800). >--------------------------------------------------------------- utils/hp2ps/Key.c | 22 ++++++++++++++++++++-- 1 files changed, 20 insertions(+), 2 deletions(-) diff --git a/utils/hp2ps/Key.c b/utils/hp2ps/Key.c index 5fa76ab..eda8395 100644 --- a/utils/hp2ps/Key.c +++ b/utils/hp2ps/Key.c @@ -1,11 +1,14 @@ #include "Main.h" #include <stdio.h> #include <math.h> +#include <string.h> +#include <stdlib.h> #include "Defines.h" #include "Dimensions.h" #include "HpFile.h" #include "Shade.h" #include "PsFile.h" +#include "Utilities.h" /* own stuff */ #include "Key.h" @@ -36,7 +39,18 @@ void Key(void) } } - +static void +escape(char *result, const char *name) +{ + while (*name != '\0') + { + if (*name == '\\') + { + *result++ = '\\'; + } + *result++ = *name++; + } +} static void KeyEntry(floatish centreline, char *name, floatish colour) @@ -65,5 +79,9 @@ KeyEntry(floatish centreline, char *name, floatish colour) fprintf(psfp, "HE%d setfont\n", NORMAL_FONT); fprintf(psfp, "%f %f moveto\n", kstart + (floatish) KEY_BOX_WIDTH + 2 * borderspace, namebase); - fprintf(psfp, "(%s) show\n", name); + // escape backslashes in 'name' + char *escaped_name = (char*) xmalloc(strlen(name) * 2 + 1); + escape(escaped_name, name); + fprintf(psfp, "(%s) show\n", escaped_name); + free(escaped_name); } _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
