deluser: the same code, but a bit less obfuscated.
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 27 Nov 2006 01:04:23 +0000 (01:04 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 27 Nov 2006 01:04:23 +0000 (01:04 -0000)
loginutils/deluser.c

index e337101755233f238e59f17dc8f6f8b6d5dc054c..869b22013d68d3331d58e510533e8c217d2ddb2b 100644 (file)
@@ -34,28 +34,29 @@ static void del_line_matching(const char *login, const char *filename)
                }
        }
 
-       if (!found) {
-               bb_error_msg("can't find '%s' in '%s'", login, filename);
-               if (!ENABLE_FEATURE_CLEAN_UP) return;
-               goto clean_up;
-       }
-
-       if (ENABLE_FEATURE_CLEAN_UP)
+       if (!ENABLE_FEATURE_CLEAN_UP) {
+               if (!found) {
+                       bb_error_msg("can't find '%s' in '%s'", login, filename);
+                       return;
+               }
+               passwd = fopen_or_warn(filename, "w");
+               if (passwd)
+                       while ((line = llist_pop(&plist)))
+                               fputs(line, passwd);
+       } else {
+               if (!found) {
+                       bb_error_msg("can't find '%s' in '%s'", login, filename);
+                       goto clean_up;
+               }
                fclose(passwd);
-
-       passwd = fopen_or_warn(filename, "w");
-       if (passwd) {
-               if (ENABLE_FEATURE_CLEAN_UP) {
+               passwd = fopen_or_warn(filename, "w");
+               if (passwd) {
  clean_up:
                        while ((line = llist_pop(&plist))) {
                                if (found) fputs(line, passwd);
                                free(line);
                        }
                        fclose(passwd);
-               } else {
-                       /* found != 0 here, no need to check */
-                       while ((line = llist_pop(&plist)))
-                               fputs(line, passwd);
                }
        }
 }