#endif
bottombars(browser_list);
- if (i < 0) {
+ /* If the directory begins with a newline (i.e. an
+ * encoded null), treat it as though it's blank. */
+ if (i < 0 || answer[0] == '\n') {
/* We canceled. Indicate that on the statusbar, and
* blank out ans, since we're done with it. */
statusbar(_("Cancelled"));
* with it. */
ans = mallocstrcpy(ans, "");
+ /* Convert newlines to nulls, just before we go to the
+ * directory. */
+ sunder(answer);
+ align(&answer);
+
new_path = real_dir_from_tilde(answer);
if (new_path[0] != '/') {
statusbar(_("Cancelled"));
break;
} else {
- size_t pww_save = openfile->placewewant, answer_len;
+ size_t pww_save = openfile->placewewant;
ans = mallocstrcpy(ans, answer);
}
#endif
- answer_len = strlen(answer);
-
- /* Convert newlines to nulls, just before we insert a file
- * or execute a command. */
+ /* Convert newlines to nulls, just before we insert the file
+ * or execute the command. */
sunder(answer);
+ align(&answer);
#ifndef NANO_TINY
if (execute) {
}
#endif
- /* Convert nulls to newlines. answer_len is answer's real
- * length. */
- unsunder(answer, answer_len);
-
#ifdef ENABLE_MULTIBUFFER
if (ISSET(MULTIBUFFER))
/* Update the screen to account for the current
#endif
if (append == OVERWRITE) {
- char *full_answer = get_full_path(answer);
- char *full_filename = get_full_path(openfile->filename);
- bool different_name = (strcmp(full_answer,
- full_filename) != 0);
+ size_t answer_len = strlen(answer);
+ bool name_exists, different_name;
+ char *full_answer, *full_filename;
struct stat st;
- bool name_exists;
- free(full_filename);
- free(full_answer);
+ /* Convert newlines to nulls, just before we get the
+ * full path. */
+ sunder(answer);
name_exists = (stat(answer, &st) != -1);
+ full_answer = get_full_path(answer);
+
+ /* Convert nulls to newlines. answer_len is the
+ * string's real length. */
+ unsunder(answer, answer_len);
+
+ full_filename = get_full_path(openfile->filename);
+ different_name = (strcmp(full_answer,
+ full_filename) != 0);
+
+ free(full_filename);
+ free(full_answer);
if (different_name) {
if (name_exists) {
}
}
+ /* Convert newlines to nulls, just before we save the
+ * file. */
+ sunder(answer);
+ align(&answer);
+
#ifndef NANO_TINY
/* Here's where we allow the selected text to be written to
* a separate file. If we're using restricted mode, this is