fsck: produce camelCase config key names

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nguyễn Thái Ngọc Duy committed May 26, 2018 at 15:55 UTC a4a9cc19a29df22f367fde50eec046ba6c5533f6
1 file changed +18 -4
fsck.c
+18 -4
@@ -74,14 +74,15 @@ enum fsck_msg_id {
74 #undef MSG_ID
75
76 #define STR(x) #x
77 -#define MSG_ID(id, msg_type) { STR(id), NULL, FSCK_##msg_type },
77 +#define MSG_ID(id, msg_type) { STR(id), NULL, NULL, FSCK_##msg_type },
78 static struct {
79 const char *id_string;
80 const char *downcased;
81 + const char *camelcased;
82 int msg_type;
83 } msg_id_info[FSCK_MSG_MAX + 1] = {
84 FOREACH_MSG_ID(MSG_ID)
84 - { NULL, NULL, -1 }
85 + { NULL, NULL, NULL, -1 }
86 };
87 #undef MSG_ID
88
@@ -105,6 +106,20 @@ static void prepare_msg_ids(void)
106 else
107 *(q)++ = tolower(*(p)++);
108 *q = '\0';
109 +
110 + p = msg_id_info[i].id_string;
111 + q = xmalloc(len);
112 + msg_id_info[i].camelcased = q;
113 + while (*p) {
114 + if (*p == '_') {
115 + p++;
116 + if (*p)
117 + *q++ = *p++;
118 + } else {
119 + *q++ = tolower(*p++);
120 + }
121 + }
122 + *q = '\0';
123 }
124 }
125
@@ -127,9 +142,8 @@ void list_config_fsck_msg_ids(struct string_list *list, const char *prefix)
142
143 prepare_msg_ids();
144
130 - /* TODO: we can do better by producing camelCase names */
145 for (i = 0; i < FSCK_MSG_MAX; i++)
132 - list_config_item(list, prefix, msg_id_info[i].downcased);
146 + list_config_item(list, prefix, msg_id_info[i].camelcased);
147 }
148
149 static int fsck_msg_type(enum fsck_msg_id msg_id,