X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=edit.c;h=5605a0f73abd6fe56b455970cf0d6e6746d3c80c;hb=b8c3c825e80317c07c8864d4dfb5054f8a5b8658;hp=a08fdc9599cee2fb87aefb22ff439684a20f488c;hpb=20ea61a5f77f0f8c1354dc326a74f9a6c8362d6a;p=pkg%2Fabook.git diff --git a/edit.c b/edit.c index a08fdc9..5605a0f 100644 --- a/edit.c +++ b/edit.c @@ -251,9 +251,12 @@ editor_print_data(int tab, int item) strncpy(buf, str, sizeof(buf)); if(str && parse_date_string(buf, &day, &month, &year)) { - str = strdup_printf(year ? " %04d-%02d-%02d" : - "%c%02d-%02d", year ? year : ' ', - month, day); + if(year) + str = strdup_printf("%04d-%02d-%02d", + year, month, day); + else + str = strdup_printf("--%02d-%02d", + month, day); mvwaddnstr(editw, y, TAB_COLON_POS + 2, str, bytes2width(str, FIELD_MAX_WIDTH)); free(str); @@ -286,7 +289,7 @@ editor_print_data(int tab, int item) * valid string */ static int -change_field(char *msg, char **field, int max_len) +change_field(char *msg, char **field, size_t max_len) { char *old; int ret = 0; @@ -311,7 +314,7 @@ change_field(char *msg, char **field, int max_len) } static int -change_name_field(char *msg, char **field, int max_len) +change_name_field(char *msg, char **field, size_t max_len) { char *tmp; int ret; @@ -440,8 +443,8 @@ parse_date_string(char *s, int *day, int *month, int *year) return FALSE; *s++ = '\0'; switch(i) { - case 1: *year = atoi(p); break; - case 2: *month = atoi(p); break; + case 1: *year = safe_atoi(p); break; + case 2: *month = safe_atoi(p); break; } p = s; } else @@ -456,17 +459,6 @@ parse_date_string(char *s, int *day, int *month, int *year) return is_valid_date(*day, *month, *year); } -static int -is_number(char *s) -{ - char *p; - - for(p = s; *p; p++) - if(!isdigit(*p)) - return FALSE; - return TRUE; -} - static void edit_date(int item, int nb) { @@ -497,8 +489,12 @@ edit_date(int item, int nb) /* ISO 8601 date, of the YYYY-MM-DD or --MM-DD format */ if(is_valid_date(date[0], date[1], date[2])) { - s = strdup_printf(date[2] ? "%04d-%02d-%02d" : "%c-%02d-%02d", - date[2] ? date[2] : '-', date[1], date[0]); + if(date[2]) + s = strdup_printf("%04d-%02d-%02d", + date[2], date[1], date[0]); + else + s = strdup_printf("--%02d-%02d", date[1], date[0]); + db_fput_byid(item, nb, xstrdup(s)); } else statusline_msg(_("Invalid date"));