summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gettext-tools/src/ChangeLog6
-rw-r--r--gettext-tools/src/write-po.c10
2 files changed, 11 insertions, 5 deletions
diff --git a/gettext-tools/src/ChangeLog b/gettext-tools/src/ChangeLog
index 2136ea6..1245b60 100644
--- a/gettext-tools/src/ChangeLog
+++ b/gettext-tools/src/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-27 Bruno Haible <bruno@clisp.org>
+
+ * write-po.c (wrap): Output \a and \v as an escape sequence, like
+ \b, \f, \r.
+ Suggested by Asgeir Frimannsson <asgeirf@redhat.com>.
+
2005-05-05 Bruno Haible <bruno@clisp.org>
* Makefile.am (msgfmt_SOURCES): Add hash-string.c.
diff --git a/gettext-tools/src/write-po.c b/gettext-tools/src/write-po.c
index 489f0ac..cebfd6a 100644
--- a/gettext-tools/src/write-po.c
+++ b/gettext-tools/src/write-po.c
@@ -487,12 +487,10 @@ wrap (FILE *fp, const char *line_prefix, const char *name, const char *value,
first_line = true;
do
{
- /* The \a and \v escapes were added by the ANSI C Standard.
- Prior to the Standard, most compilers did not have them.
- Because we need the same program on all platforms we don't provide
- support for them here. Thus we only support \b\f\n\r\t. */
+ /* The usual escapes, as defined by the ANSI C Standard. */
# define is_escape(c) \
- ((c) == '\b' || (c) == '\f' || (c) == '\n' || (c) == '\r' || (c) == '\t')
+ ((c) == '\a' || (c) == '\b' || (c) == '\f' || (c) == '\n' \
+ || (c) == '\r' || (c) == '\t' || (c) == '\v')
const char *es;
const char *ep;
@@ -589,11 +587,13 @@ wrap (FILE *fp, const char *line_prefix, const char *name, const char *value,
{
switch (c)
{
+ case '\a': c = 'a'; break;
case '\b': c = 'b'; break;
case '\f': c = 'f'; break;
case '\n': c = 'n'; break;
case '\r': c = 'r'; break;
case '\t': c = 't'; break;
+ case '\v': c = 'v'; break;
default: abort ();
}
*pp++ = '\\';