commit 276ab2c85eed64c39615b05aad1da8ad0b80b881
parent 80686bb52583cba9783c28438852faf1879e03e5
Author: Benno Schulenberg <bensberg@telfort.nl>
Date: Sat, 5 Aug 2017 21:30:27 +0200
tweaks: reshuffle code and frob comments, to reduce the number of lines
Diffstat:
2 files changed, 11 insertions(+), 19 deletions(-)
diff --git a/src/files.c b/src/files.c
@@ -1411,12 +1411,9 @@ char *safe_tempfile(FILE **f)
}
#ifndef DISABLE_OPERATINGDIR
-/* Initialize full_operating_dir based on operating_dir. */
+/* Change to the specified operating directory, when it's valid. */
void init_operating_dir(void)
{
- if (operating_dir == NULL)
- return;
-
full_operating_dir = get_full_path(operating_dir);
/* If the operating directory is inaccessible, fail. */
@@ -1493,17 +1490,13 @@ int prompt_failed_backupwrite(const char *filename)
return response;
}
+/* Transform the specified backup directory to an absolute path. */
void init_backup_dir(void)
{
- char *full_backup_dir;
-
- if (backup_dir == NULL)
- return;
-
- full_backup_dir = get_full_path(backup_dir);
+ char *full_backup_dir = get_full_path(backup_dir);
- /* If get_full_path() failed or the backup directory is
- * inaccessible, unset backup_dir. */
+ /* When we can't get an absolute path, or it's not a directory,
+ * cancel the making of backups. */
if (full_backup_dir == NULL ||
full_backup_dir[strlen(full_backup_dir) - 1] != '/') {
free(full_backup_dir);
diff --git a/src/nano.c b/src/nano.c
@@ -2374,19 +2374,18 @@ int main(int argc, char **argv)
#endif /* !DISABLE_HISTORIES */
#ifndef NANO_TINY
- /* Set up the backup directory (unless we're using restricted mode,
- * in which case backups are disabled, since they would allow
- * reading from or writing to files not specified on the command
- * line). This entails making sure it exists and is a directory, so
- * that backup files will be saved there. */
- if (!ISSET(RESTRICTED))
+ /* If a backup directory was specified and we're not in restricted mode,
+ * make sure the path exists and is a directory, so that backup files can
+ * be saved there. */
+ if (backup_dir != NULL && !ISSET(RESTRICTED))
init_backup_dir();
#endif
#ifndef DISABLE_OPERATINGDIR
/* Set up the operating directory. This entails chdir()ing there,
* so that file reads and writes will be based there. */
- init_operating_dir();
+ if (operating_dir != NULL)
+ init_operating_dir();
#endif
#ifndef DISABLE_JUSTIFY