git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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)
Previous: Jonathan NiederNext: Jonathan Nieder
Message 13 of 19 in “Add infrastructure for translating Git with gettext”
  1. 0/2 Add infrastructure for translating Git with gettextÆvar Arnfjörð Bjarmason, Jun 5, 2010
  2. 1/2 Add infrastructure for translating Git with gettextÆvar Arnfjörð Bjarmason, Jun 5, 2010
  3. Jonathan NiederJun 5, 2010
  4. Ævar Arnfjörð BjarmasonJun 5, 2010
  5. Jonathan NiederJun 5, 2010
  6. Ævar Arnfjörð BjarmasonJun 5, 2010
  7. Jonathan NiederJun 5, 2010
  8. Ævar Arnfjörð BjarmasonJun 5, 2010
  9. Jonathan NiederJun 12, 2010
  10. Jonathan NiederJun 5, 2010
  11. Ævar Arnfjörð BjarmasonJun 5, 2010
  12. Jonathan NiederJun 5, 2010
  13. Ævar Arnfjörð BjarmasonJun 5, 2010
  14. Jonathan NiederJun 5, 2010
  15. Ævar Arnfjörð BjarmasonJun 5, 2010
  16. Inline functions (Re: [PATCH/RFC v7 1/2] Add infrastructure for translating Git with gettext)Jonathan Nieder, Jun 5, 2010
  17. Jakub NarebskiJun 5, 2010
  18. Ævar Arnfjörð BjarmasonJun 5, 2010
  19. 2/2 Add initial C, Shell and Perl gettext translationsÆvar Arnfjörð Bjarmason, Jun 5, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.