From: David Lawrence Ramsey Date: Mon, 1 Aug 2005 18:27:10 +0000 (+0000) Subject: miscellaneous enum cleanups, including making the file-writing X-Git-Tag: v1.3.9~80 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=bf0e47dc3751b7cb2155c03f604e2ef23d203fce;p=nano.git miscellaneous enum cleanups, including making the file-writing functions' append parameter an enum instead of an int git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2966 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index 86a4e134..5b620124 100644 --- a/ChangeLog +++ b/ChangeLog @@ -148,6 +148,8 @@ CVS code - - Assert that filename isn't NULL, and don't do anything special if it's blank, as the the former case shouldn't occur, and the latter case is now handled elsewhere. (DLR) + write_file(), write_marked_file(), do_writeout() + - Make append an append_type enum instead of an int. (DLR) input_tab() - Make columns an int instead of a size_t, since it's limited by COLS. (DLR) @@ -222,6 +224,8 @@ CVS code - (DLR) - Move stdlib.h, dirent.h, regex.h, and assert.h includes here, as every source file needs them. (DLR) + - Rename the updown enum scroll_dir and the centernone enum + update_type for clarity, and add an append_type enum. (DLR) - rcfile.c: nregcomp() - Return TRUE when the compilation succeeds and FALSE otherwise, diff --git a/src/files.c b/src/files.c index afadc3bb..92ebcedc 100644 --- a/src/files.c +++ b/src/files.c @@ -1130,15 +1130,15 @@ int copy_file(FILE *inn, FILE *out) * tmp means we are writing a temporary file in a secure fashion. We * use it when spell checking or dumping the file on an error. * - * append == 1 means we are appending instead of overwriting. - * append == 2 means we are prepending instead of overwriting. + * append == APPEND means we are appending instead of overwriting. + * append == PREPEND means we are prepending instead of overwriting. * * nonamechange means don't change the current filename. It is ignored * if tmp is FALSE or if we're appending/prepending. * * Return 0 on success or -1 on error. */ -int write_file(const char *name, FILE *f_open, bool tmp, int append, - bool nonamechange) +int write_file(const char *name, FILE *f_open, bool tmp, append_type + append, bool nonamechange) { int retval = -1; /* Instead of returning in this function, you should always @@ -1213,9 +1213,9 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append, * aren't appending, prepending, or writing a selection, we backup * only if the file has not been modified by someone else since nano * opened it. */ - if (ISSET(BACKUP_FILE) && !tmp && realexists && ((append != 0 || - openfile->mark_set) || openfile->current_stat->st_mtime == - st.st_mtime)) { + if (ISSET(BACKUP_FILE) && !tmp && realexists && ((append != + OVERWRITE || openfile->mark_set) || + openfile->current_stat->st_mtime == st.st_mtime)) { FILE *backup_file; char *backupname; struct utimbuf filetime; @@ -1345,7 +1345,7 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append, } /* If we're prepending, copy the file to a temp file. */ - if (append == 2) { + if (append == PREPEND) { int fd_source; FILE *f_source = NULL; @@ -1385,9 +1385,9 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append, /* Now open the file in place. Use O_EXCL if tmp is TRUE. This * is copied from joe, because wiggy says so *shrug*. */ fd = open(realname, O_WRONLY | O_CREAT | - ((append == 1) ? O_APPEND : (tmp ? O_EXCL : O_TRUNC)), - S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | - S_IWOTH); + ((append == APPEND) ? O_APPEND : (tmp ? O_EXCL : + O_TRUNC)), S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | + S_IROTH | S_IWOTH); /* Set the umask back to the user's original value. */ umask(original_umask); @@ -1403,7 +1403,7 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append, goto cleanup_and_exit; } - f = fdopen(fd, (append == 1) ? "ab" : "wb"); + f = fdopen(fd, (append == APPEND) ? "ab" : "wb"); if (f == NULL) { statusbar(_("Error writing %s: %s"), realname, @@ -1462,7 +1462,7 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append, } /* If we're prepending, open the temp file, and append it to f. */ - if (append == 2) { + if (append == PREPEND) { int fd_source; FILE *f_source = NULL; @@ -1492,7 +1492,7 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append, goto cleanup_and_exit; } - if (!tmp && append == 0) { + if (!tmp && append == OVERWRITE) { if (!nonamechange) { openfile->filename = mallocstrcpy(openfile->filename, realname); @@ -1537,8 +1537,8 @@ int write_file(const char *name, FILE *f_open, bool tmp, int append, #ifndef NANO_SMALL /* Write a marked selection from a file out. */ -int write_marked_file(const char *name, FILE *f_open, bool tmp, int - append) +int write_marked_file(const char *name, FILE *f_open, bool tmp, + append_type append) { int retval = -1; bool old_modified = openfile->modified; @@ -1582,8 +1582,8 @@ int write_marked_file(const char *name, FILE *f_open, bool tmp, int int do_writeout(bool exiting) { - int i; - int retval = 0, append = 0; + int i, retval = 0; + append_type append = OVERWRITE; char *ans; /* The last answer the user typed on the statusbar. */ #ifdef NANO_EXTRA @@ -1619,13 +1619,14 @@ int do_writeout(bool exiting) backupstr = ISSET(BACKUP_FILE) ? N_(" [Backup]") : ""; if (openfile->mark_set && !exiting) - msg = (append == 2) ? N_("Prepend Selection to File") : - (append == 1) ? N_("Append Selection to File") : + msg = (append == PREPEND) ? + N_("Prepend Selection to File") : (append == APPEND) ? + N_("Append Selection to File") : N_("Write Selection to File"); else #endif /* !NANO_SMALL */ - msg = (append == 2) ? N_("File Name to Prepend to") : - (append == 1) ? N_("File Name to Append to") : + msg = (append == PREPEND) ? N_("File Name to Prepend to") : + (append == APPEND) ? N_("File Name to Append to") : N_("File Name to Write"); /* If we're using restricted mode, the filename isn't blank, @@ -1679,10 +1680,10 @@ int do_writeout(bool exiting) } else #endif /* !NANO_SMALL */ if (i == NANO_PREPEND_KEY) { - append = (append == 2) ? 0 : 2; + append = (append == PREPEND) ? OVERWRITE : PREPEND; continue; } else if (i == NANO_APPEND_KEY) { - append = (append == 1) ? 0 : 1; + append = (append == APPEND) ? OVERWRITE : APPEND; continue; } @@ -1699,7 +1700,7 @@ int do_writeout(bool exiting) break; } #endif - if (append == 0 && strcmp(answer, + if (append == OVERWRITE && strcmp(answer, openfile->filename) != 0) { struct stat st; diff --git a/src/nano.h b/src/nano.h index 9a33d264..9124831a 100644 --- a/src/nano.h +++ b/src/nano.h @@ -150,13 +150,17 @@ typedef enum { NIX_FILE, DOS_FILE, MAC_FILE } file_format; +typedef enum { + OVERWRITE, APPEND, PREPEND +} append_type; + typedef enum { UP, DOWN -} updown; +} scroll_dir; typedef enum { CENTER, NONE -} centernone; +} update_type; /* Structure types. */ typedef struct filestruct { diff --git a/src/proto.h b/src/proto.h index 3cfae3b5..ff1db2d5 100644 --- a/src/proto.h +++ b/src/proto.h @@ -257,11 +257,11 @@ bool check_operating_dir(const char *currpath, bool allow_tabcomp); void init_backup_dir(void); #endif int copy_file(FILE *inn, FILE *out); -int write_file(const char *name, FILE *f_open, bool tmp, int append, - bool nonamechange); +int write_file(const char *name, FILE *f_open, bool tmp, append_type + append, bool nonamechange); #ifndef NANO_SMALL -int write_marked_file(const char *name, FILE *f_open, bool tmp, int - append); +int write_marked_file(const char *name, FILE *f_open, bool tmp, + append_type append); #endif int do_writeout(bool exiting); void do_writeout_void(void); @@ -666,10 +666,10 @@ void edit_add(const filestruct *fileptr, const char *converted, int void update_line(const filestruct *fileptr, size_t index); int need_horizontal_update(size_t old_pww); int need_vertical_update(size_t old_pww); -void edit_scroll(updown direction, int nlines); +void edit_scroll(scroll_dir direction, int nlines); void edit_redraw(const filestruct *old_current, size_t old_pww); void edit_refresh(void); -void edit_update(centernone location); +void edit_update(update_type location); int do_yesno(bool all, const char *msg); void total_redraw(void); void total_refresh(void); diff --git a/src/winio.c b/src/winio.c index becae91c..e77a9f4f 100644 --- a/src/winio.c +++ b/src/winio.c @@ -3477,7 +3477,7 @@ int need_vertical_update(size_t old_pww) * and nlines is the number of lines to scroll. We change edittop, and * assume that current and current_x are up to date. We also assume * that scrollok(edit) is FALSE. */ -void edit_scroll(updown direction, int nlines) +void edit_scroll(scroll_dir direction, int nlines) { bool do_redraw = need_vertical_update(0); const filestruct *foo; @@ -3649,7 +3649,7 @@ void edit_refresh(void) * same place. location determines how we move it: if it's CENTER, we * center current, and if it's NONE, we put current current_y lines * below edittop. */ -void edit_update(centernone location) +void edit_update(update_type location) { filestruct *foo = openfile->current; int goal;