On Sat, Jun 5, 2010 at 03:38, Jonathan Nieder [off-list ref] wrote:
Ævar Arnfjörð Bjarmason wrote:
quoted
On Sat, Jun 5, 2010 at 03:01, Jonathan Nieder [off-list ref] wrote:
quoted
quoted
#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");
}
-#endifdiff --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)