{"thread":{"id":"10145","subject":"[PATCH 2/3] Replace literal STRLEN_ #defines in refs.h with compiler evaluated expressions","startedAt":"2007-10-04T21:10:44Z","lastAt":"2007-10-04T21:10:44Z","messageCount":1,"participants":["Andy Parkins"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"54876","messageId":"200710042210.44940.andyparkins@gmail.com","threadId":"10145","inReplyTo":null,"subject":"[PATCH 2/3] Replace literal STRLEN_ #defines in refs.h with compiler evaluated expressions","fromName":"Andy Parkins","fromEmail":"andyparkins@gmail.com","sentAt":"2007-10-04T21:10:44Z","receivedAt":"2007-10-04T21:10:44Z","isPatch":true,"sender":{"key":"andyparkins@gmail.com","avatar":null},"body":"Bill Lear pointed out that the following:\n\n #define PATH_REMOTES             \"remotes/\"\n #define STRLEN_PATH_REMOTES      8\n\nCould be replaced by the less error-prone\n\n #define PATH_REMOTES \"remotes/\"\n #define LIT_STRLEN(S) ((sizeof(S) / sizeof(S[0])) -1)\n #define STRLEN_PATH_REMOTES LIT_STRLEN(PATH_REMOTES)\n\nwhich is what this patch does.\n\nSigned-off-by: Andy Parkins <andyparkins@gmail.com>\n---\n refs.h |   11 ++++++-----\n 1 files changed, 6 insertions(+), 5 deletions(-)\n\ndiff --git a/refs.h b/refs.h\nindex 1025d04..fb58889 100644\n--- a/refs.h\n+++ b/refs.h\n@@ -13,16 +13,17 @@ struct ref_lock {\n #define REF_ISSYMREF 01\n #define REF_ISPACKED 02\n \n+#define LIT_STRLEN(S)            ((sizeof(S) / sizeof(S[0])) -1)\n #define PATH_OBJECTS             \"objects/\"\n-#define STRLEN_PATH_OBJECTS      8\n+#define STRLEN_PATH_OBJECTS      LIT_STRLEN(PATH_OBJECTS)\n #define PATH_REFS                \"refs/\"\n-#define STRLEN_PATH_REFS         5\n+#define STRLEN_PATH_REFS         LIT_STRLEN(PATH_REFS)\n #define PATH_HEADS               \"heads/\"\n-#define STRLEN_PATH_HEADS        6\n+#define STRLEN_PATH_HEADS        LIT_STRLEN(PATH_HEADS)\n #define PATH_TAGS                \"tags/\"\n-#define STRLEN_PATH_TAGS         5\n+#define STRLEN_PATH_TAGS         LIT_STRLEN(PATH_TAGS)\n #define PATH_REMOTES             \"remotes/\"\n-#define STRLEN_PATH_REMOTES      8\n+#define STRLEN_PATH_REMOTES      LIT_STRLEN(PATH_REMOTES)\n #define PATH_REFS_HEADS          PATH_REFS PATH_HEADS\n #define STRLEN_PATH_REFS_HEADS   (STRLEN_PATH_REFS+STRLEN_PATH_HEADS)\n #define PATH_REFS_TAGS           PATH_REFS PATH_TAGS\n-- \n1.5.3.rc5.11.g312e\n"}]}