From 2b915a42f6665b4110338cfde30eedc55abe7f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Sat, 18 Sep 2021 19:24:17 +0200 Subject: mktpl: Limit string literals to 509 characters (C89) --- mktpl/mktpl.lex | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/mktpl/mktpl.lex b/mktpl/mktpl.lex index f0674b7..e184c0e 100644 --- a/mktpl/mktpl.lex +++ b/mktpl/mktpl.lex @@ -65,12 +65,20 @@ eval() void text() { - int i; + int i, ofs; if(!len) return; printf("printf(\""); - for(i = 0; i < len; i++){ + for(i = ofs = 0; i < len; i++){ + /* + * C89 compilers need only support 509-length + * string literals. + */ + if(i-ofs >= 509){ + printf("\");\nprintf(\""); + ofs = i; + } if(buf[i] == '\\') printf("\\\\"); else if(buf[i] == '"') printf("\\\""); else if(buf[i] == '\n') printf("\\n"); -- cgit v1.2.3