This is d_delete.c in view mode; [Download] [Up]
/* * The delete option of the dialing directory. Prompts for saving * changes to disk. A non-zero return code means that entries were deleted. */ #include <stdio.h> #include <curses.h> #include "config.h" #include "dial_dir.h" #include "misc.h" #include "param.h" int delete() { extern char *null_ptr; WINDOW *d_win, *newwin(); int i, first, last; void free_ptr(); d_win = newwin(6, 32, 10, 15); mvwaddstr(d_win, 2, 2, "Delete entry: thru:"); box(d_win, VERT, HORZ); wmove(d_win, 2, 16); wrefresh(d_win); /* get the first of the range */ while ((first = get_num(d_win, 3)) != -1) { if (first > 0 && first <= NUM_DIR) break; mvwaddstr(d_win, 2, 16, " "); wmove(d_win, 2, 16); beep(); wrefresh(d_win); } if (first == -1) { delwin(d_win); return(0); } /* get the last of the range */ wmove(d_win, 2, 26); wrefresh(d_win); while ((last = get_num(d_win, 3)) != -1) { if ((first <= last && last <= NUM_DIR) || last == 0) break; mvwaddstr(d_win, 2, 26, " "); wmove(d_win, 2, 26); beep(); wrefresh(d_win); } if (last == -1) { delwin(d_win); return(0); } /* if "last" omitted, echo "first" */ if (!last) { last = first; mvwprintw(d_win, 2, 26, "%d", first); wrefresh(d_win); } /* save to disk? */ if (yes_prompt(d_win, 3, 2, A_BOLD, "Are you sure")) { /* delete from the physical file */ if (del_dir(first, last)) { touchwin(d_win); wrefresh(d_win); } /* * We don't really care if del_dir() fails because we still * change the version in memory. */ for (i=first; i<=last; i++) { free_ptr(dir->name[i]); free_ptr(dir->number[i]); free_ptr(dir->script[i]); dir->name[i] = null_ptr; dir->number[i] = null_ptr; dir->baud[i] = param->d_baud; dir->parity[i] = param->d_parity; dir->dbits[i] = param->d_dbits; dir->sbits[i] = param->d_sbits; dir->duplex[i] = *param->d_duplex; dir->script[i] = null_ptr; } delwin(d_win); return(1); } delwin(d_win); return(0); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.