openwrt-packages/libs/qrencode/patches/001-add-inline-svg.patch

68 lines
2.5 KiB
Diff

From 7dd8a1b6f4efab84025c735195ad9d84f6477359 Mon Sep 17 00:00:00 2001
From: Jonathan Bennett <JBennett@incomsystems.biz>
Date: Mon, 16 Oct 2017 11:59:23 -0500
Subject: [PATCH] Adds the --inline option, which omits the xml tag for SVG
output.
---
qrenc.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/qrenc.c b/qrenc.c
index ed83d8a..373352e 100644
--- a/qrenc.c
+++ b/qrenc.c
@@ -45,6 +45,7 @@ static int structured = 0;
static int rle = 0;
static int svg_path = 0;
static int micro = 0;
+static int inline_svg = 0;
static QRecLevel level = QR_ECLEVEL_L;
static QRencodeMode hint = QR_MODE_8;
static unsigned char fg_color[4] = {0, 0, 0, 255};
@@ -80,6 +81,7 @@ static const struct option options[] = {
{"margin" , required_argument, NULL, 'm'},
{"dpi" , required_argument, NULL, 'd'},
{"type" , required_argument, NULL, 't'},
+ {"inline" , no_argument , NULL, 'I'},
{"structured" , no_argument , NULL, 'S'},
{"kanji" , no_argument , NULL, 'k'},
{"casesensitive", no_argument , NULL, 'c'},
@@ -95,7 +97,7 @@ static const struct option options[] = {
{NULL, 0, NULL, 0}
};
-static char *optstring = "ho:r:l:s:v:m:d:t:Skci8MV";
+static char *optstring = "ho:r:l:s:v:m:d:t:ISkci8MV";
static void usage(int help, int longopt, int status)
{
@@ -132,6 +134,7 @@ static void usage(int help, int longopt, int status)
" -t {PNG,PNG32,EPS,SVG,XPM,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8},\n"
" --type={PNG,PNG32,EPS,SVG,XPM,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}\n"
" specify the type of the generated image. (default=PNG)\n\n"
+" -I, --inline Only useful for SVG output, generates an svg without the XML tag\n"
" -S, --structured\n"
" make structured symbols. Version must be specified.\n\n"
" -k, --kanji assume that the input text contains kanji (shift-jis).\n\n"
@@ -551,7 +554,8 @@ static int writeSVG(const QRcode *qrcode, const char *outfile)
bg_opacity = (float)bg_color[3] / 255;
/* XML declaration */
- fputs( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n", fp );
+ if (!inline_svg)
+ fputs( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n", fp );
/* DTD
No document type specified because "while a DTD is provided in [the SVG]
@@ -1324,6 +1328,9 @@ int main(int argc, char **argv)
exit(EXIT_FAILURE);
}
break;
+ case 'I':
+ inline_svg = 1;
+ break;
case 'S':
structured = 1;
break;