cursor: refactor xcursor_theme_inherits
authorSimon Ser <contact@emersion.fr>
Thu, 21 Apr 2022 09:53:24 +0000 (11:53 +0200)
committerSimon Ser <contact@emersion.fr>
Mon, 23 May 2022 08:59:05 +0000 (08:59 +0000)
Use early returns and breaks to avoid dealing with very long
indentation lines.

Signed-off-by: Simon Ser <contact@emersion.fr>
cursor/xcursor.c

index 0a7dfec..5aab4ef 100644 (file)
@@ -755,39 +755,43 @@ xcursor_theme_inherits(const char *full)
                return NULL;
 
        f = fopen(full, "r");
-       if (f) {
-               while (fgets(line, sizeof(line), f)) {
-                       if (!strncmp(line, "Inherits", 8)) {
-                               char *l = line + 8;
-                               char *r;
-                               while (*l == ' ')
-                                       l++;
-                               if (*l != '=')
-                                       continue;
+       if (!f)
+               return NULL;
+
+       while (fgets(line, sizeof(line), f)) {
+               if (strncmp(line, "Inherits", 8))
+                       continue;
+
+               char *l = line + 8;
+               char *r;
+               while (*l == ' ')
+                       l++;
+               if (*l != '=')
+                       continue;
+               l++;
+               while (*l == ' ')
+                       l++;
+               result = malloc(strlen(l) + 1);
+               if (!result)
+                       break;
+
+               r = result;
+               while (*l) {
+                       while (xcursor_sep(*l) || xcursor_white(*l))
                                l++;
-                               while (*l == ' ')
-                                       l++;
-                               result = malloc(strlen(l) + 1);
-                               if (result) {
-                                       r = result;
-                                       while (*l) {
-                                               while (xcursor_sep(*l) || xcursor_white(*l))
-                                                       l++;
-                                               if (!*l)
-                                                       break;
-                                               if (r != result)
-                                                       *r++ = ':';
-                                               while (*l && !xcursor_white(*l) &&
-                                                      !xcursor_sep(*l))
-                                                       *r++ = *l++;
-                                       }
-                                       *r++ = '\0';
-                               }
+                       if (!*l)
                                break;
-                       }
+                       if (r != result)
+                               *r++ = ':';
+                       while (*l && !xcursor_white(*l) && !xcursor_sep(*l))
+                               *r++ = *l++;
                }
-               fclose(f);
+               *r++ = '\0';
+
+               break;
        }
+
+       fclose(f);
        return result;
 }