From 276ab2c85eed64c39615b05aad1da8ad0b80b881 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@telfort.nl>
Date: Sat, 5 Aug 2017 21:30:27 +0200
Subject: [PATCH] tweaks: reshuffle code and frob comments, to reduce the
 number of lines

---
 src/files.c | 17 +++++------------
 src/nano.c  | 13 ++++++-------
 2 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/src/files.c b/src/files.c
index 4ad0dc6c..573c449a 100644
--- 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
index 2266c543..44b83c9d 100644
--- 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
-- 
GitLab