]> granicus.if.org Git - graphviz/commitdiff
gvplugin_load: use a 'strview_t' for 'reqtyp'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 26 Jun 2022 19:41:02 +0000 (12:41 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 2 Jul 2022 00:13:06 +0000 (17:13 -0700)
Slightly more readable and less error prone than doing this inline.

lib/gvc/gvplugin.c

index 38b2b871154e0be724bd8d9f6c960693d39f1a1f..6a3b2d07d73ee5f96f1043f0d62c73d0a2400177 100644 (file)
@@ -263,17 +263,14 @@ gvplugin_available_t *gvplugin_load(GVC_t * gvc, api_t api, const char *str)
     else
         apidep = api;
 
-    const char *reqtyp = str;
-    const char *reqtyp_end = strchr(reqtyp, ':');
-    size_t reqtyp_len =
-      reqtyp_end == NULL ? strlen(reqtyp) : (size_t)(reqtyp_end - reqtyp);
+    const strview_t reqtyp = strview(str, ':');
 
     strview_t reqdep = {NULL};
 
     strview_t reqpkg = {NULL};
 
-    if (reqtyp_end != NULL) {
-        reqdep = strview(reqtyp_end + strlen(":"), ':');
+    if (reqtyp.data[reqtyp.size] == ':') {
+        reqdep = strview(reqtyp.data + reqtyp.size + strlen(":"), ':');
         if (reqdep.data[reqdep.size] == ':') {
             reqpkg = strview(reqdep.data + reqdep.size + strlen(":"), '\0');
         }
@@ -288,7 +285,7 @@ gvplugin_available_t *gvplugin_load(GVC_t * gvc, api_t api, const char *str)
             dep = strview(typ.data + typ.size + strlen(":"), '\0');
         }
 
-        if (typ.size != reqtyp_len || strncmp(typ.data, reqtyp, reqtyp_len))
+        if (!strview_eq(typ, reqtyp))
             continue;           /* types empty or mismatched */
         if (dep.data && reqdep.data) {
             if (!strview_eq(dep, reqdep)) {