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;
