would be treated as "~daemon/"). (DLR, found by Justin
Fletcher)
- Simplify. (DLR)
+ do_writeout()
+ - Properly display the warning in all cases if we try to save
+ (a) an existing file under a different name, or (b) a file
+ with no name under an existing file's name. (DLR)
+ - Rename variable different_name to do_warning, for clarity.
+ (DLR)
input_tab()
- Don't bother checking if num_matches is less than zero, as
it's a size_t and hence unsigned. (DLR)
if (append == OVERWRITE) {
size_t answer_len = strlen(answer);
- bool name_exists, different_name;
+ bool name_exists, do_warning;
char *full_answer, *full_filename;
struct stat st;
* full path. */
sunder(answer);
- name_exists = (stat(answer, &st) != -1);
full_answer = get_full_path(answer);
full_filename = get_full_path(openfile->filename);
- different_name = (strcmp((full_answer == NULL) ?
+ name_exists = (stat((full_answer == NULL) ? answer :
+ full_answer, &st) != -1);
+ do_warning = ((openfile->filename[0] == '\0' &&
+ name_exists) || (strcmp((full_answer == NULL) ?
answer : full_answer, (full_filename == NULL) ?
- openfile->filename : full_filename) != 0);
+ openfile->filename : full_filename) != 0));
/* Convert nulls to newlines. answer_len is the
* string's real length. */
if (full_answer != NULL)
free(full_answer);
- if (different_name) {
+ if (do_warning) {
if (name_exists) {
/* If we're using restricted mode, we aren't
* allowed to save a new file under the name of