get_first_email(email, item);
- if( snprintf(header, EDITW_COLS, "%s <%s>", database[item][NAME],
- email ) == -1 || !*database[item][EMAIL] )
- if( snprintf(header, EDITW_COLS, "%s", database[item][NAME]) == -1) {
- free(header);
- return;
- }
+ if( *database[item][EMAIL] )
+ snprintf(header, EDITW_COLS, "%s <%s>",
+ database[item][NAME],
+ database[item][EMAIL]);
+ else
+ snprintf(header, EDITW_COLS, "%s", database[item][NAME]);
len = strlen(header);
x = (EDITW_COLS - len) / 2;
break;
case KEY_RIGHT: tab = tab == MAX_TAB ? 0 : tab + 1;
break;
+ case '<':
+ case 'k': if(is_valid_item(item-1)) item--; break;
+ case '>':
+ case 'j': if(is_valid_item(item+1)) item++; break;
case 'r': roll_emails(item); break;
case '?': display_help(HELP_EDITOR); break;
case 'u': edit_undo(item, RESTORE_ITEM); break;
- case 'm': launch_mutt(item);
- case 'v': launch_wwwbrowser(item);
+ case 'm': launch_mutt(item); clearok(stdscr, 1); break;
+ case 'v': launch_wwwbrowser(item); clearok(stdscr, 1); break;
case 12 : clearok(stdscr, 1); break; /* ^L (refresh screen) */
- default: return edit_field(tab, c, item);
+ default: return edit_field(tab, c, item) ? item : -1;
}
- return 1;
+ return item;
}
void
}
init_editor();
- while( edit_loop(item) )
- ;
+
+ while( (item = edit_loop(item)) >= 0 )
+ curitem = item; /* hmm, this is not very clean way to go */
close_editor();
}