Re: [PATCH/RFC v7 1/2] Add infrastructure for translating Git with gettext
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Jun 5, 2010, 14:10 UTC
- Message-ID
- <AANLkTim3PcoLrYb46Bh3tK7Ir3v-K0EQ0czPaD5DIIOK@mail.gmail.com>
- In-Reply-To
- <20100605033849.GB2252@progeny.tock>
On Sat, Jun 5, 2010 at 03:38, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 21 quoted lines
> Ævar Arnfjörð Bjarmason wrote:
>> On Sat, Jun 5, 2010 at 03:01, Jonathan Nieder <jrnieder@gmail.com> wrote:
>
>>> #ifdef NO_GETTEXT
>>> static inline void git_setup_gettext(void) {}
>>> #endif
>>>
>>> and
>>>
>>> ifndef NO_GETTEXT
>>> LIB_OBJS += gettext.o
>>> endif
>>
>> Sure, but that would be putting code in a header file, which is
>> usually taboo. It looks like there's some prior art on that though.
>> Like strbuf.h.
>>
>> I don't care either way, what do you think?
>
> This is what ‘inline’ is for. I think using it for stubs like this
> is perfectly acceptable and improves readability.Great. I've fixed this in my local copy. Now I don't compile gettext.c when NO_GETTEXT is set, and it'll be defined as static inline in the header file.
It'll become part of the next patch. Here's the diff:
diff --git a/Makefile b/Makefile index 3040000..e21f7f0 100644 --- a/Makefile +++ b/Makefile @@ -578,7 +578,9 @@ LIB_OBJS += entry.o LIB_OBJS += environment.o LIB_OBJS += exec_cmd.o LIB_OBJS += fsck.o +ifndef NO_GETTEXT LIB_OBJS += gettext.o +endif LIB_OBJS += graph.o LIB_OBJS += grep.o LIB_OBJS += hash.o diff --git a/gettext.c b/gettext.c index 22cdcc1..4825799 100644 --- a/gettext.c +++ b/gettext.c @@ -1,11 +1,8 @@ -#ifdef NO_GETTEXT -void git_setup_gettext(void) {} -#else #include "exec_cmd.h" #include <libintl.h> #include <stdlib.h> -void git_setup_gettext(void) { +inline void git_setup_gettext(void) { char *podir; char *envdir = getenv("GIT_TEXTDOMAINDIR"); @@ -22,4 +19,3 @@ void git_setup_gettext(void) { (void)setlocale(LC_CTYPE, ""); (void)textdomain("git"); } -#endif diff --git a/gettext.h b/gettext.h index a99da6a..8d44808 100644 --- a/gettext.h +++ b/gettext.h @@ -1,7 +1,11 @@ #ifndef GETTEXT_H #define GETTEXT_H -void git_setup_gettext(void); +#ifdef NO_GETTEXT +static inline void git_setup_gettext(void) {} +#else +inline void git_setup_gettext(void); +#endif #ifdef NO_GETTEXT #define _(s) (s)