]> granicus.if.org Git - graphviz/commitdiff
pack parsePackModeInfo: make some string prefix code more clear
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Fri, 23 Sep 2022 04:31:42 +0000 (21:31 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Fri, 23 Sep 2022 14:57:00 +0000 (07:57 -0700)
lib/pack/pack.c

index 940ced6133ec6eb8898e7d884a69d70fb57a2289..079b4e32e0bbcd6d24a9c6f5b60d084a92e38683 100644 (file)
 #include <math.h>
 #include <assert.h>
 #include <cgraph/alloc.h>
+#include <cgraph/startswith.h>
 #include <common/render.h>
 #include <pack/pack.h>
 #include <common/pointset.h>
 
-#define strneq(a,b,n)          (!strncmp(a,b,n))
-
 #define C 100                  /* Max. avg. polyomino size */
 
 #define MOVEPT(p) ((p).x += dx, (p).y += dy)
@@ -1182,10 +1181,6 @@ pack_graph(int ng, Agraph_t** gs, Agraph_t* root, bool *fixed)
     return ret;
 }
 
-#define ARRAY  "array"
-#define ASPECT "aspect"
-#define SLEN(s) (sizeof(s)/sizeof(char) - 1)
-
 static const char*chkFlags(const char *p, pack_info *pinfo) {
     int c, more;
 
@@ -1268,16 +1263,16 @@ parsePackModeInfo(const char* p, pack_mode dflt, pack_info* pinfo)
     if (p && *p) {
        switch (*p) {
        case 'a':
-           if (strneq(p, ARRAY, SLEN(ARRAY))) {
+           if (startswith(p, "array")) {
                pinfo->mode = l_array;
-               p += SLEN(ARRAY);
+               p += strlen("array");
                p = chkFlags (p, pinfo);
                if ((sscanf (p, "%d", &i)>0) && (i > 0))
                    pinfo->sz = i;
            }
-           else if (strneq(p, ASPECT, SLEN(ASPECT))) {
+           else if (startswith(p, "aspect")) {
                pinfo->mode = l_aspect;
-               if (sscanf(p + SLEN(ASPECT), "%f", &v) > 0 && v > 0)
+               if (sscanf(p + strlen("aspect"), "%f", &v) > 0 && v > 0)
                    pinfo->aspect = v;
                else
                    pinfo->aspect = 1;