[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] xgettext: make c-format guessing slightly more intelligent.
From: |
Gaute B Strokkenes |
Subject: |
[PATCH] xgettext: make c-format guessing slightly more intelligent. |
Date: |
Mon, 09 Jul 2001 00:38:18 +0200 |
User-agent: |
Gnus/5.090004 (Oort Gnus v0.04) Emacs/20.7 |
The current xgettext will guess that a string such as
const char s[] = N_("50% is one half");
is a printf-like format string, which I found somewhat surprising.
After some digging, I found out that this is because a space actually
has a well-defined meaning in this context; but only if a
floating-point value is being printed, which is not the case above.
So I came up with the following patch, which disqualifies a string
from c-format if a space is being used with a non-floating point spec.
After applying this patch, there are precisely 10 strings in the
Freeciv source which are no longer marked (wrongly) as c-format.
--- xgettext.c Mon May 21 22:00:56 2001
+++ xgettext.c Sun Jul 8 23:49:58 2001
@@ -1380,7 +1380,8 @@
size_t dummy;
(void) parse_one_spec (s, 0, &spec, &dummy);
- if (strchr ("iduoxXeEfgGcspnm%", spec.info.spec) == NULL)
+ if (strchr ("iduoxXeEfgGcspnm%", spec.info.spec) == NULL
+ || (spec.info.space && !(spec.data_arg_type & PA_DOUBLE)))
return impossible;
}
One aber is that I'm not sure if I ought to check for PA_FLOAT as
well. The glibc manual mentions it, but it's never set in
parse_one_spec().
--
Big Gaute http://www.srcf.ucam.org/~gs234/
PIZZA!!
- [PATCH] xgettext: make c-format guessing slightly more intelligent.,
Gaute B Strokkenes <=