Skip to content
Snippets Groups Projects
Commit ee8bf699 authored by pcapriotti's avatar pcapriotti
Browse files

hp2ps: escape backslashes when generating output file (#5800).

parent 7441207a
No related branches found
No related tags found
No related merge requests found
#include "Main.h" #include "Main.h"
#include <stdio.h> #include <stdio.h>
#include <math.h> #include <math.h>
#include <string.h>
#include <stdlib.h>
#include "Defines.h" #include "Defines.h"
#include "Dimensions.h" #include "Dimensions.h"
#include "HpFile.h" #include "HpFile.h"
#include "Shade.h" #include "Shade.h"
#include "PsFile.h" #include "PsFile.h"
#include "Utilities.h"
/* own stuff */ /* own stuff */
#include "Key.h" #include "Key.h"
...@@ -36,7 +39,18 @@ void Key(void) ...@@ -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 static void
KeyEntry(floatish centreline, char *name, floatish colour) KeyEntry(floatish centreline, char *name, floatish colour)
...@@ -65,5 +79,9 @@ 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, "HE%d setfont\n", NORMAL_FONT);
fprintf(psfp, "%f %f moveto\n", kstart + (floatish) KEY_BOX_WIDTH + 2 * borderspace, namebase); 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);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment