* [PATCH 2/3] Replace literal STRLEN_ #defines in refs.h with compiler evaluated expressions
@ 2007-10-04 21:10 Andy Parkins
0 siblings, 0 replies; only message in thread
From: Andy Parkins @ 2007-10-04 21:10 UTC (permalink / raw)
To: git
Bill Lear pointed out that the following:
#define PATH_REMOTES "remotes/"
#define STRLEN_PATH_REMOTES 8
Could be replaced by the less error-prone
#define PATH_REMOTES "remotes/"
#define LIT_STRLEN(S) ((sizeof(S) / sizeof(S[0])) -1)
#define STRLEN_PATH_REMOTES LIT_STRLEN(PATH_REMOTES)
which is what this patch does.
Signed-off-by: Andy Parkins <andyparkins@gmail.com>
---
refs.h | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/refs.h b/refs.h
index 1025d04..fb58889 100644
--- a/refs.h
+++ b/refs.h
@@ -13,16 +13,17 @@ struct ref_lock {
#define REF_ISSYMREF 01
#define REF_ISPACKED 02
+#define LIT_STRLEN(S) ((sizeof(S) / sizeof(S[0])) -1)
#define PATH_OBJECTS "objects/"
-#define STRLEN_PATH_OBJECTS 8
+#define STRLEN_PATH_OBJECTS LIT_STRLEN(PATH_OBJECTS)
#define PATH_REFS "refs/"
-#define STRLEN_PATH_REFS 5
+#define STRLEN_PATH_REFS LIT_STRLEN(PATH_REFS)
#define PATH_HEADS "heads/"
-#define STRLEN_PATH_HEADS 6
+#define STRLEN_PATH_HEADS LIT_STRLEN(PATH_HEADS)
#define PATH_TAGS "tags/"
-#define STRLEN_PATH_TAGS 5
+#define STRLEN_PATH_TAGS LIT_STRLEN(PATH_TAGS)
#define PATH_REMOTES "remotes/"
-#define STRLEN_PATH_REMOTES 8
+#define STRLEN_PATH_REMOTES LIT_STRLEN(PATH_REMOTES)
#define PATH_REFS_HEADS PATH_REFS PATH_HEADS
#define STRLEN_PATH_REFS_HEADS (STRLEN_PATH_REFS+STRLEN_PATH_HEADS)
#define PATH_REFS_TAGS PATH_REFS PATH_TAGS
--
1.5.3.rc5.11.g312e
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2007-10-04 21:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-04 21:10 [PATCH 2/3] Replace literal STRLEN_ #defines in refs.h with compiler evaluated expressions Andy Parkins
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.