Changeset 1e5ac43 in git


Ignore:
Timestamp:
14/01/14 02:23:57 (6 years ago)
Author:
Olly Betts <olly@…>
Branches:
line_contents, master, stereo, travis-osx
Children:
b4d8642
Parents:
70462c8
git-author:
Olly Betts <olly@…> (13/01/14 04:09:15)
git-committer:
Olly Betts <olly@…> (14/01/14 02:23:57)
Message:

src/export.cc: Escape '<', '>', and '&' in labels in exported SVG
files.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r70462c8 r1e5ac43  
     1Mon Jan 13 04:08:11 GMT 2014  Olly Betts <olly@survex.com>
     2
     3        * src/export.cc: Escape '<', '>', and '&' in labels in exported SVG
     4          files.
     5
    16Mon Jan 13 04:02:26 GMT 2014  Olly Betts <olly@survex.com>
    27
  • src/export.cc

    r70462c8 r1e5ac43  
    6161
    6262#define SQRT_2          1.41421356237309504880168872420969
     63
     64static void
     65html_escape(FILE *fh, const char *s)
     66{
     67    while (*s) {
     68        switch (*s) {
     69            case '<':
     70                fputs("&lt;", fh);
     71                break;
     72            case '>':
     73                fputs("&gt;", fh);
     74                break;
     75            case '&':
     76                fputs("&amp;", fh);
     77                break;
     78            default:
     79                PUTC(*s, fh);
     80        }
     81        ++s;
     82    }
     83}
    6384
    6485static const char *layer_name(int mask) {
     
    565586               "viewBox=\"0 0 %0.3f %0.3f\">\n",
    566587           width, unit, height, unit, width, height);
     588   if (title && title[0]) {
     589       fputs("<title>", fh);
     590       html_escape(fh, title);
     591       fputs("</title>\n", fh);
     592   }
    567593   fprintf(fh, "<g transform=\"translate(%.3f %.3f)\">\n",
    568594           SVG_MARGIN - min_x * factor, SVG_MARGIN + max_y * factor);
     
    619645   fprintf(fh, "<text transform=\"translate(%.3f %.3f)\">",
    620646           p->x * factor, p->y * -factor);
    621    fputs(s, fh);
     647   html_escape(fh, s);
    622648   fputs("</text>\n", fh);
    623649   set_name(p, s);
Note: See TracChangeset for help on using the changeset viewer.