X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=list.c;h=d3a53c36f423c50b49e757145e8014a7727cbf8b;hb=d3c55f5a5fcd740475ae9a3195986b455465be69;hp=25c53826130c6ba5fcc40c97e8c2aff297480cf4;hpb=e0e2b1ebd0bbc1728e7117ff88e5046f2870cfaa;p=pkg%2Fabook.git diff --git a/list.c b/list.c index 25c5382..d3a53c3 100644 --- a/list.c +++ b/list.c @@ -128,21 +128,23 @@ print_list_line(int i, int line, int highlight) if(selected[i]) mvwaddch(list, line, 0, '*' ); - mvwaddnstr(list, line, NAMEPOS, database[i][NAME], NAMELEN); + mvwaddnstr(list, line, NAMEPOS, database[i][NAME], + bytes2width(database[i][NAME], NAMELEN)); if(opt_get_bool(BOOL_SHOW_ALL_EMAILS)) mvwaddnstr(list, line, EMAILPOS, database[i][EMAIL], - real_emaillen); + bytes2width(database[i][EMAIL], real_emaillen)); else { get_first_email(tmp, i); - mvwaddnstr(list, line, EMAILPOS, tmp, real_emaillen); + mvwaddnstr(list, line, EMAILPOS, tmp, + bytes2width(tmp, real_emaillen)); } if(extra < 0 || !database[i][extra]) extra = extra_alternative; if(extra >= 0) mvwaddnstr(list, line, EXTRAPOS, - safe_str(database[i][extra]), - EXTRALEN); + safe_str(database[i][extra]), + bytes2width(safe_str(database[i][extra]), EXTRALEN)); scrollok(list, TRUE); if(highlight) @@ -216,7 +218,6 @@ page_down() refresh_list(); } - void select_none() { @@ -340,3 +341,25 @@ list_is_empty() return items < 1; } +int +duplicate_item() +{ + int i; + list_item item; + + if(curitem < 0) + return 1; + + for(i = 0; i < ITEM_FIELDS; i++) + item[i] = database[curitem][i] ? strdup(database[curitem][i]) : + NULL; + + if(add_item2database(item)) + return 1; + + curitem = LAST_ITEM; + refresh_list(); + + return 0; +} +