]> granicus.if.org Git - graphviz/commitdiff
gvpack: use 'std::string' to simplify dynamic string construction
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 17 Apr 2022 21:43:18 +0000 (14:43 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 25 Apr 2022 02:12:49 +0000 (19:12 -0700)
cmd/tools/gvpack.cpp

index fdb7854b9ef3f313d22ab3203f1d34e32152c7e4..023575e650e69ae6331a7784a19b6e228d8d0f59 100644 (file)
@@ -165,8 +165,6 @@ static Agsym_t *agedgeattr(Agraph_t *g, char *name, const char *value) {
 static void init(int argc, char *argv[], pack_info* pinfo)
 {
     int c;
-    char buf[BUFSIZ];
-    char* bp;
 
     agnodeattr(NULL, (char*)"label", NODENAME_ESC);
     pinfo->mode = l_clust;
@@ -179,15 +177,8 @@ static void init(int argc, char *argv[], pack_info* pinfo)
     while ((c = getopt(argc, argv, ":na:gvum:s:o:G:?")) != -1) {
        switch (c) {
        case 'a': {
-           size_t len = strlen(optarg) + 2;
-           if (len > BUFSIZ)
-               bp = N_GNEW(len, char);
-           else
-               bp = buf;
-           sprintf (bp, "a%s\n", optarg);
-           parsePackModeInfo (bp, pinfo->mode, pinfo);
-           if (bp != buf)
-               free (bp);
+           auto buf = std::string("a") + optarg + "\n";
+           parsePackModeInfo(buf.c_str(), pinfo->mode, pinfo);
            break;
        }
        case 'n':