2017-07-22 7:34 GMT+08:00 Junio C Hamano <gitster@xxxxxxxxx>: > Jiang Xin <worldhello.net@xxxxxxxxx> writes: > >> A very small hack on gettext. When extract l10n messages to pot file >> with `xgettext`, will grep "PRItime", and do "sed s/PRItime/PRIuMAX" >> inside `xgettext`. >> >> See this patch: >> https://github.com/jiangxin/gettext/commit/b0a726431c93b5a1ca0fe749de376b0752e75fb0 >> ... >> gettext-tools/src/x-c.c | 17 ++++++++++++++++- >> gettext-tools/src/xgettext.c | 2 +- >> 2 files changed, 17 insertions(+), 2 deletions(-) > > I do not think the size of the "hack" is much of an issue. There is > no way you can sell this patch to the upstream, which would mean > that we would have to be relying on our own private edition of the > external tool, and that is what I feel very uncomfortable about. I never think about that, and I won't sell it to the upstream. ;) > You are not passing %<PRItime> through the toolchain and instead > turning it into %<PRIuMAX>, which is less risky than the obvious > alternative, but when we switch to a signed timestamp_t type and > need to change it something else (e.g. PRIdMAX), you'd need to make > sure you update that private edition that matches the source being > compiled. That's why I grep "PRItime to PRIuMAX" from `xgettext --version`. When we need something else, we can tweak the "check-xgettext" task again in Makefile, to match with a grep-"PRItime to PRIdMAX" version of `xgettext`. > You might even be asked to do the po/git.pot thing for > both 'maint' and 'master' at the same time, when the former still > uses unsigned timestamp_t while the latter switched to signed one, > which would mean you'd need two hacked versions of gettext handy and > choose the "right" one. But it is rare to maintain po/git.pot file for 'maint' branch. And if I need, I will switch to a different version of gettext. Makefile will throw a error message, if I use a wrong version of gettext. > Compared to that, Dscho's "hack" at least ties what PRItime is > replaced with and what the source code says by being in the > Makefile, which is tracked alongside the rest of the source. So I > somehow feel that the approach has smaller chance of going wrong. Benefit of using the tweak version of gettext: 1. `make pot` can be run in a tar extract directory (without git controlled). 2. do not need to run `git reset --hard`. 3. it's quick (nobody cares). -- Jiang Xin