]> granicus.if.org Git - graphviz/commitdiff
Add '-' to the list of characters that should not be followed by
authorEmden R. Gansner <erg@alum.mit.edu>
Wed, 20 Nov 2013 18:21:13 +0000 (13:21 -0500)
committerEmden R. Gansner <erg@alum.mit.edu>
Wed, 20 Nov 2013 18:21:13 +0000 (13:21 -0500)
a line break. This keeps numbers on the same line. This was the case
earlier, but was removed when the code for not quoting numbers was
added.

lib/cgraph/write.c

index 7e0ca9ccc942808ca0e53ba233ab71fbb75b1653..671819be46392abb2ddcf894cf329661b8f7138d 100644 (file)
@@ -60,9 +60,8 @@ static int strcasecmp(const char *s1, const char *s2)
 }
 #endif
 
-#define is_number_char(c) (isdigit(c) || ((c) == '.'))
-    /* alphanumeric, '.', or non-ascii; basically, non-punctuation */
-#define is_id_char(c) (isalnum(c) || ((c) == '.') || !isascii(c))
+    /* alphanumeric, '.', '-', or non-ascii; basically, chars used in unquoted ids */
+#define is_id_char(c) (isalnum(c) || ((c) == '.') || ((c) == '-') || !isascii(c))
 
 /* _agstrcanon:
  * Canonicalize ordinary strings. 
@@ -88,7 +87,7 @@ static char *_agstrcanon(char *arg, char *buf)
     p = buf;
     *p++ = '\"';
     uc = *(unsigned char *) s++;
-    maybe_num = is_number_char(uc) || (uc == '-');
+    maybe_num = isdigit(uc) || (uc == '.') || (uc == '-');
     while (uc) {
        if (uc == '\"') {
            *p++ = '\\';