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,