tweaks: rename a parameter and invert its logic
This makes more sense (an emergency file is not a temp file) and avoids the constant negating.master
parent
4b30cfb8f8
commit
c74fd81302
36
src/files.c
36
src/files.c
|
@ -1746,13 +1746,13 @@ bool make_backup_of(char *realname)
|
||||||
#endif /* !NANO_TINY */
|
#endif /* !NANO_TINY */
|
||||||
|
|
||||||
/* Write the current buffer to disk. If thefile isn't NULL, we write to a
|
/* Write the current buffer to disk. If thefile isn't NULL, we write to a
|
||||||
* temporary file that is already open. If tmp is TRUE (when spell checking
|
* temporary file that is already open. If normal is FALSE (for a spellcheck
|
||||||
* or emergency dumping, for example), we don't make a backup and don't give
|
* or an emergency save, for example), we don't make a backup and don't give
|
||||||
* feedback. If method is APPEND or PREPEND, it means we will be appending
|
* feedback. If method is APPEND or PREPEND, it means we will be appending
|
||||||
* or prepending instead of overwriting the given file. If fullbuffer is TRUE
|
* or prepending instead of overwriting the given file. If fullbuffer is TRUE
|
||||||
* and when writing normally, we set the current filename and stat info.
|
* and when writing normally, we set the current filename and stat info.
|
||||||
* Return TRUE on success, and FALSE otherwise. */
|
* Return TRUE on success, and FALSE otherwise. */
|
||||||
bool write_file(const char *name, FILE *thefile, bool tmp,
|
bool write_file(const char *name, FILE *thefile, bool normal,
|
||||||
kind_of_writing_type method, bool fullbuffer)
|
kind_of_writing_type method, bool fullbuffer)
|
||||||
{
|
{
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
|
@ -1773,14 +1773,14 @@ bool write_file(const char *name, FILE *thefile, bool tmp,
|
||||||
#ifdef ENABLE_OPERATINGDIR
|
#ifdef ENABLE_OPERATINGDIR
|
||||||
/* If we're writing a temporary file, we're probably going outside
|
/* If we're writing a temporary file, we're probably going outside
|
||||||
* the operating directory, so skip the operating directory test. */
|
* the operating directory, so skip the operating directory test. */
|
||||||
if (!tmp && outside_of_confinement(realname, FALSE)) {
|
if (normal && outside_of_confinement(realname, FALSE)) {
|
||||||
statusline(ALERT, _("Can't write outside of %s"), operating_dir);
|
statusline(ALERT, _("Can't write outside of %s"), operating_dir);
|
||||||
goto cleanup_and_exit;
|
goto cleanup_and_exit;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
/* Check whether the file (at the end of the symlink) exists. */
|
/* Check whether the file (at the end of the symlink) exists. */
|
||||||
is_existing_file = (!tmp) && (stat(realname, &fileinfo) != -1);
|
is_existing_file = normal && (stat(realname, &fileinfo) != -1);
|
||||||
|
|
||||||
/* If we haven't statted this file before (say, the user just specified
|
/* If we haven't statted this file before (say, the user just specified
|
||||||
* it interactively), stat and save the value now, or else we will chase
|
* it interactively), stat and save the value now, or else we will chase
|
||||||
|
@ -1845,21 +1845,21 @@ bool write_file(const char *name, FILE *thefile, bool tmp,
|
||||||
/* When it's not a temporary file, this is where we open or create it.
|
/* When it's not a temporary file, this is where we open or create it.
|
||||||
* For an emergency file, access is restricted to just the owner. */
|
* For an emergency file, access is restricted to just the owner. */
|
||||||
if (thefile == NULL) {
|
if (thefile == NULL) {
|
||||||
mode_t permissions = (tmp ? S_IRUSR|S_IWUSR : RW_FOR_ALL);
|
mode_t permissions = (normal ? RW_FOR_ALL : S_IRUSR|S_IWUSR);
|
||||||
int fd;
|
int fd;
|
||||||
|
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
block_sigwinch(TRUE);
|
block_sigwinch(TRUE);
|
||||||
if (!tmp)
|
if (normal)
|
||||||
install_handler_for_Ctrl_C();
|
install_handler_for_Ctrl_C();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Now open the file. Use O_EXCL for an emergency file. */
|
/* Now open the file. Use O_EXCL for an emergency file. */
|
||||||
fd = open(realname, O_WRONLY | O_CREAT | ((method == APPEND) ?
|
fd = open(realname, O_WRONLY | O_CREAT | ((method == APPEND) ?
|
||||||
O_APPEND : (tmp ? O_EXCL : O_TRUNC)), permissions);
|
O_APPEND : (normal ? O_TRUNC : O_EXCL)), permissions);
|
||||||
|
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
if (!tmp)
|
if (normal)
|
||||||
restore_handler_for_Ctrl_C();
|
restore_handler_for_Ctrl_C();
|
||||||
block_sigwinch(FALSE);
|
block_sigwinch(FALSE);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1886,7 +1886,7 @@ bool write_file(const char *name, FILE *thefile, bool tmp,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tmp)
|
if (normal)
|
||||||
statusbar(_("Writing..."));
|
statusbar(_("Writing..."));
|
||||||
|
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
|
@ -1983,7 +1983,7 @@ bool write_file(const char *name, FILE *thefile, bool tmp,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* When having written an entire buffer, update some administrivia. */
|
/* When having written an entire buffer, update some administrivia. */
|
||||||
if (fullbuffer && method == OVERWRITE && !tmp) {
|
if (fullbuffer && method == OVERWRITE && normal) {
|
||||||
/* If the filename was changed, write a new lockfile when needed,
|
/* If the filename was changed, write a new lockfile when needed,
|
||||||
* and check whether it means a different syntax gets used. */
|
* and check whether it means a different syntax gets used. */
|
||||||
if (strcmp(openfile->filename, realname) != 0) {
|
if (strcmp(openfile->filename, realname) != 0) {
|
||||||
|
@ -2030,11 +2030,11 @@ bool write_file(const char *name, FILE *thefile, bool tmp,
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
if (ISSET(MINIBAR) && LINES > 1 && fullbuffer && !tmp)
|
if (ISSET(MINIBAR) && LINES > 1 && fullbuffer && normal)
|
||||||
report_size = TRUE;
|
report_size = TRUE;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if (!tmp)
|
if (normal)
|
||||||
statusline(REMARK, P_("Wrote %zu line", "Wrote %zu lines",
|
statusline(REMARK, P_("Wrote %zu line", "Wrote %zu lines",
|
||||||
lineswritten), lineswritten);
|
lineswritten), lineswritten);
|
||||||
|
|
||||||
|
@ -2047,7 +2047,7 @@ bool write_file(const char *name, FILE *thefile, bool tmp,
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
/* Write the marked region of the current buffer out to disk.
|
/* Write the marked region of the current buffer out to disk.
|
||||||
* Return TRUE on success and FALSE on error. */
|
* Return TRUE on success and FALSE on error. */
|
||||||
bool write_marked_file(const char *name, FILE *stream, bool tmp,
|
bool write_marked_file(const char *name, FILE *stream, bool normal,
|
||||||
kind_of_writing_type method)
|
kind_of_writing_type method)
|
||||||
{
|
{
|
||||||
linestruct *birthline, *topline, *botline, *stopper, *afterline;
|
linestruct *birthline, *topline, *botline, *stopper, *afterline;
|
||||||
|
@ -2074,7 +2074,7 @@ bool write_marked_file(const char *name, FILE *stream, bool tmp,
|
||||||
birthline = openfile->filetop;
|
birthline = openfile->filetop;
|
||||||
openfile->filetop = topline;
|
openfile->filetop = topline;
|
||||||
|
|
||||||
retval = write_file(name, stream, tmp, method, FALSE);
|
retval = write_file(name, stream, normal, method, FALSE);
|
||||||
|
|
||||||
/* Restore the proper state of the buffer. */
|
/* Restore the proper state of the buffer. */
|
||||||
openfile->filetop = birthline;
|
openfile->filetop = birthline;
|
||||||
|
@ -2302,7 +2302,7 @@ int do_writeout(bool exiting, bool withprompt)
|
||||||
free(given);
|
free(given);
|
||||||
if (choice == 1)
|
if (choice == 1)
|
||||||
return write_file(openfile->filename, NULL,
|
return write_file(openfile->filename, NULL,
|
||||||
FALSE, OVERWRITE, TRUE);
|
TRUE, OVERWRITE, TRUE);
|
||||||
else if (choice == 0)
|
else if (choice == 0)
|
||||||
return 2;
|
return 2;
|
||||||
else
|
else
|
||||||
|
@ -2324,10 +2324,10 @@ int do_writeout(bool exiting, bool withprompt)
|
||||||
* the marked region; otherwise, write out the whole buffer. */
|
* the marked region; otherwise, write out the whole buffer. */
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
if (openfile->mark && withprompt && !exiting && !ISSET(RESTRICTED))
|
if (openfile->mark && withprompt && !exiting && !ISSET(RESTRICTED))
|
||||||
return write_marked_file(answer, NULL, FALSE, method);
|
return write_marked_file(answer, NULL, TRUE, method);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
return write_file(answer, NULL, FALSE, method, TRUE);
|
return write_file(answer, NULL, TRUE, method, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write the current buffer to disk, or discard it. */
|
/* Write the current buffer to disk, or discard it. */
|
||||||
|
|
|
@ -325,7 +325,7 @@ void emergency_save(const char *filename)
|
||||||
|
|
||||||
if (*targetname == '\0')
|
if (*targetname == '\0')
|
||||||
fprintf(stderr, _("\nToo many .save files\n"));
|
fprintf(stderr, _("\nToo many .save files\n"));
|
||||||
else if (write_file(targetname, NULL, TRUE, OVERWRITE, FALSE)) {
|
else if (write_file(targetname, NULL, FALSE, OVERWRITE, FALSE)) {
|
||||||
fprintf(stderr, _("\nBuffer written to %s\n"), targetname);
|
fprintf(stderr, _("\nBuffer written to %s\n"), targetname);
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
/* Try to chmod/chown the saved file to the values of the original file,
|
/* Try to chmod/chown the saved file to the values of the original file,
|
||||||
|
|
|
@ -2499,10 +2499,10 @@ void do_spell(void)
|
||||||
|
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
if (openfile->mark)
|
if (openfile->mark)
|
||||||
okay = write_marked_file(temp_name, stream, TRUE, OVERWRITE);
|
okay = write_marked_file(temp_name, stream, FALSE, OVERWRITE);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
okay = write_file(temp_name, stream, TRUE, OVERWRITE, TRUE);
|
okay = write_file(temp_name, stream, FALSE, OVERWRITE, TRUE);
|
||||||
|
|
||||||
if (!okay) {
|
if (!okay) {
|
||||||
statusline(ALERT, _("Error writing temp file: %s"), strerror(errno));
|
statusline(ALERT, _("Error writing temp file: %s"), strerror(errno));
|
||||||
|
@ -2903,7 +2903,7 @@ void do_formatter(void)
|
||||||
temp_name = safe_tempfile(&stream);
|
temp_name = safe_tempfile(&stream);
|
||||||
|
|
||||||
if (temp_name != NULL)
|
if (temp_name != NULL)
|
||||||
okay = write_file(temp_name, stream, TRUE, OVERWRITE, TRUE);
|
okay = write_file(temp_name, stream, FALSE, OVERWRITE, TRUE);
|
||||||
|
|
||||||
if (!okay) {
|
if (!okay) {
|
||||||
statusline(ALERT, _("Error writing temp file: %s"), strerror(errno));
|
statusline(ALERT, _("Error writing temp file: %s"), strerror(errno));
|
||||||
|
|
Loading…
Reference in New Issue