}
BEGIN {
+ # Check if "\\\\" in substitutions gives just one backslash.
+ bs = "x"; sub(/x/, "\\\\", bs);
+ bs = (length(bs) == 1 ? "\\\\" : "\\");
+
has_actions = 0
sopt_string = ""
num_options = 0
lopt_strings = add_to_strtab(lopt_strings, sorted_options[i], offsets)
}
gsub(/[^ ]+/, "\"&", lopt_strings)
- gsub(/ /, "\\0\"\n\t", lopt_strings)
+ gsub(/ /, bs"0\"\n\t", lopt_strings)
print "static const char lopt_strings[] ="
print "\t" lopt_strings "\";\n"
help_offsets[opt] = help_pos
help_pos += length(help) + 1
- gsub(/"/, "\\\"", help)
- gsub(/\n/, "\\n\"\n\t \"", help)
+ gsub(/"/, bs"\"", help)
+ gsub(/\n/, bs"n\"\n\t \"", help)
help = "\tPN_(\"" opt "\",\n\t \"" help "\")"
}
}