int i, ret = -1;
char *option_str;
- assert(option_name != NULL);
-
option_str = opt_get_str(option);
if(option_str && *option_str) {
ui_print_number_of_items();
- if( items < 1 ) {
+ if(items < 1) {
refresh();
wrefresh(list);
return;
if(highlight)
highlight_line(list, line);
- if( selected[i] )
+ if(selected[i])
mvwaddch(list, line, 0, '*' );
- mvwaddnstr(list, line, NAMEPOS, database[i][NAME], NAMELEN);
- if( opt_get_bool(BOOL_SHOW_ALL_EMAILS) )
+ 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)
void
scroll_up()
{
- if( curitem < 1 )
+ if(curitem < 1)
return;
curitem--;
void
scroll_down()
{
- if( curitem > items - 2 )
+ if(curitem > items - 2)
return;
curitem++;
void
page_up()
{
- if( curitem < 1 )
+ if(curitem < 1)
return;
curitem = curitem == first_list_item ?
void
page_down()
{
- if( curitem > items - 2 )
+ if(curitem > items - 2)
return;
curitem = curitem == LAST_LIST_ITEM ?
refresh_list();
}
-
void
select_none()
{
- memset( selected, 0, items );
+ memset(selected, 0, items);
}
void
select_all()
{
- memset( selected, 1, items );
+ memset(selected, 1, items);
}
void
{
int i;
- if( items < 1 )
+ if(items < 1)
return;
for(i = 0; i < items; i++)
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;
+}
+