for (i = 0; i < count; i++) {
s = sorted_strings[i]
- gsub(/\\\\/, "\2", s)
+ gsub(/\\\\/, "\2\2", s)
if ((n = index(strtab "\1", s "\1")) > 0) {
offsets[sorted_strings[i]] = real_length(substr(strtab, 1, n-1));
if (!(sorted_strings[i] in nol10n))
}
}
- gsub(/\2/, "\\\\", strtab);
+ gsub(/\2/, "\\", strtab);
n = split(strtab, split_strtab, "\1");
for (i = 1; i <= n; i++) {
printf("\t%4s ", i > !!opts["zero"] ? "\"\\0\"" : "");
print "\n#define STRTAB_MAX_OFFSET " max
}
-# finish_input_string(strings, ident, val)
+# finish_string_input(strings, ident, val)
#
# Deal with backslash-escapes and special characters in val, then set
# strings[ident] = val.
function finish_string_input(strings, ident, val, n, tmpval)
{
- gsub(/\\\\/, "\1", val)
+ gsub(/\\\\/, "\1\1", val)
val = val (endline > startline ? "\n" : "")
gsub(/\\\n/, "", val)
gsub(/"/, "\\\"", tmpval)
gsub(/\t/, "\\t", tmpval)
gsub(/\n/, "\\n", tmpval)
- gsub(/\1/, "\\\\", tmpval)
+ gsub(/\1/, "\\", tmpval)
strings[ident] = tmpval
if (!current_l10n) {
function real_length(s, t)
{
t = length(s)
- return t - gsub(/\\./, "&", s)
+ return t - gsub(/\\.|\2\2/, "&", s)
}
# bucketsort(dst, src)