Refactoring in the small
authormarkus schnalke <meillo@marmaro.de>
Wed, 14 Jan 2015 07:08:07 +0000 (08:08 +0100)
committermarkus schnalke <meillo@marmaro.de>
Wed, 14 Jan 2015 07:08:07 +0000 (08:08 +0100)
Out-sorting failure cases instead of deep-nesting the success case.

uip/whatnow.c

index ff9d84c..914e298 100644 (file)
@@ -302,32 +302,28 @@ main(int argc, char **argv)
                        ** working directory to relative path names.
                        ** Add the attachment annotation to the draft.
                        */
-                       if ((f = popen_in_dir(cwd, buf, "r"))) {
-                               while (fgets(shell, sizeof(shell), f)) {
-                                       *(strchr(shell, '\n')) = '\0';
-
-                                       if (*shell == '/')
-                                               sprintf(file, "%s", shell);
-                                       else {
-                                               sprintf(file, "%s/%s", cwd,
-                                                               shell);
-                                       }
-                                       if (execprogl("anno", "anno",
-                                                       "-nodate",
-                                                       "-append", "-comp",
-                                                       attach_hdr, "-text",
-                                                       file, drft,
-                                                       (char *)NULL)
-                                                       != 0) {
-                                               advise(NULL, "Could not add attachment header.");
-                                       }
-                               }
-
-                               pclose(f);
-                       } else {
+                       if (!(f = popen_in_dir(cwd, buf, "r"))) {
                                advise("popen", "could not get file from shell");
+                               break;
                        }
 
+                       while (fgets(shell, sizeof(shell), f)) {
+                               *(strchr(shell, '\n')) = '\0';
+
+                               if (*shell == '/')
+                                       sprintf(file, "%s", shell);
+                               else {
+                                       sprintf(file, "%s/%s", cwd, shell);
+                               }
+                               if (execprogl("anno", "anno",
+                                               "-nodate", "-append",
+                                               "-comp", attach_hdr,
+                                               "-text", file,
+                                               drft, (char *)NULL) != 0) {
+                                       advise(NULL, "Could not add attachment header.");
+                               }
+                       }
+                       pclose(f);
                        break;
 
                case DETACHCMDSW: