X-Git-Url: http://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/99a96390b8c18144311c1679ab78461d9ecc7bd4..4a512788e60cda5b4bd5f3151cd2834c9b9f0b32:/scripts/gen-strtab.awk diff --git a/scripts/gen-strtab.awk b/scripts/gen-strtab.awk index 56f0807..2a56fd6 100755 --- a/scripts/gen-strtab.awk +++ b/scripts/gen-strtab.awk @@ -1,6 +1,6 @@ #!/bin/awk -f # -# Copyright © 2021, 2023 Nick Bowler +# Copyright © 2021, 2023-2024 Nick Bowler # # Generate a C string table based on an input string specification file. # @@ -207,25 +207,25 @@ END { # strings[ident] = val. function finish_string_input(strings, ident, val, n, tmpval) { - gsub(/\\\\/, "\1", val); + gsub(/\\\\/, "\2", val); if (endline > startline) val = val "\n"; gsub(/\\\n/, "", val); tmpval = "" while ((n = match(val, /\\[^abtnvfr]/)) > 0) { - tmpval = tmpval substr(val, 1, n-1) - val = substr(val, n+1) + tmpval = tmpval substr(val, 1, n-1); + val = substr(val, n+1); } - tmpval = tmpval val + tmpval = tmpval val; # Escape special characters - gsub(/"/, bs"\"", tmpval) - gsub(/\t/, bs"t", tmpval) - gsub(/\n/, bs"n", tmpval) - gsub("\1", bs bs, tmpval) + gsub(/"/, bs"\"", tmpval); + gsub(/\t/, bs"t", tmpval); + gsub(/\n/, bs"n", tmpval); + gsub("\2", bs bs, tmpval); - strings[ident] = tmpval + strings[ident] = tmpval; if (!current_l10n) { nol10n[tmpval] = 1; }