X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=edit.c;h=5f889f47f03a2c9e6667b9d5ca1a01f084edc614;hb=67c93952226c03ec0de47b63500cdff8356d15e5;hp=a08fdc9599cee2fb87aefb22ff439684a20f488c;hpb=20ea61a5f77f0f8c1354dc326a74f9a6c8362d6a;p=pkg%2Fabook.git diff --git a/edit.c b/edit.c index a08fdc9..5f889f4 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 @@ -497,8 +500,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"));