-static void
-edit_undo(int item, int mode)
-{
- int i;
- static list_item *backup = NULL;
-
- switch(mode) {
- case CLEAR_UNDO:
- if(backup) {
- free_list_item(backup[0]);
- my_free(backup);
- }
- break;
- case BACKUP_ITEM:
- if(backup) {
- free_list_item(backup[0]);
- my_free(backup);
- }
- backup = (list_item *)abook_malloc(sizeof(list_item));
- for(i = 0; i < ITEM_FIELDS; i++)
- backup[0][i] = safe_strdup(database[item][i]);
- break;
- case RESTORE_ITEM:
- if(backup) {
- free_list_item(database[item]);
- itemcpy(database[item], backup[0]);
- my_free(backup);
- }
- break;
- default:
- assert(0);
- }
-}
-