in source/date_time.c [65:125]
static int get_month_number_from_str(const char *time_string, size_t start_index, size_t stop_index) {
s_check_init_str_to_int();
if (stop_index - start_index < 3) {
return -1;
}
/* This AND forces the string to lowercase (assuming ASCII) */
uint32_t comp_val = STR_TRIPLET_TO_INDEX(time_string + start_index);
/* this can't be a switch, because I can't make it a constant expression. */
if (s_jan == comp_val) {
return 0;
}
if (s_feb == comp_val) {
return 1;
}
if (s_mar == comp_val) {
return 2;
}
if (s_apr == comp_val) {
return 3;
}
if (s_may == comp_val) {
return 4;
}
if (s_jun == comp_val) {
return 5;
}
if (s_jul == comp_val) {
return 6;
}
if (s_aug == comp_val) {
return 7;
}
if (s_sep == comp_val) {
return 8;
}
if (s_oct == comp_val) {
return 9;
}
if (s_nov == comp_val) {
return 10;
}
if (s_dec == comp_val) {
return 11;
}
return -1;
}