From: erg Date: Mon, 3 Jan 2011 23:01:57 +0000 (+0000) Subject: Make sure \\ is not generated when doing line breaks X-Git-Tag: LAST_LIBGRAPH~32^2~1122 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7926a69df8dbfbc04d2301afab2bf6b4ad1ea235;p=graphviz Make sure \\ is not generated when doing line breaks --- diff --git a/lib/cgraph/write.c b/lib/cgraph/write.c index b6bf2ec78..031dc41a2 100644 --- a/lib/cgraph/write.c +++ b/lib/cgraph/write.c @@ -101,14 +101,14 @@ static char *_agstrcanon(char *arg, char *buf) uc = *(unsigned char *) s++; cnt++; - if (uc && backslash_pending && !((is_number_char(p[-1]) || isalpha(p[-1])) && (is_number_char(uc) || isalpha(uc)))) { + if (uc && backslash_pending && !((is_number_char(p[-1]) || isalpha(p[-1]) || (p[-1] == '\\')) && (is_number_char(uc) || isalpha(uc)))) { *p++ = '\\'; *p++ = '\n'; needs_quotes = TRUE; backslash_pending = FALSE; cnt = 0; } else if (uc && (cnt >= MAX_OUTPUTLINE)) { - if (!((is_number_char(p[-1]) || isalpha(p[-1])) && (is_number_char(uc) || isalpha(uc)))) { + if (!((is_number_char(p[-1]) || isalpha(p[-1]) || (p[-1] == '\\')) && (is_number_char(uc) || isalpha(uc)))) { *p++ = '\\'; *p++ = '\n'; needs_quotes = TRUE; diff --git a/lib/graph/graphio.c b/lib/graph/graphio.c index 1a54e1502..48ea3e41b 100644 --- a/lib/graph/graphio.c +++ b/lib/graph/graphio.c @@ -129,13 +129,13 @@ _agstrcanon (char* arg, char* buf) *p++ = (char) uc; uc = *(unsigned char *) s++; cnt++; - if (uc && backslash_pending && !((_is_number_char(p[-1]) || isalpha(p[-1])) && (_is_number_char(uc) || isalpha(uc)))) { + if (uc && backslash_pending && !((_is_number_char(p[-1]) || isalpha(p[-1]) || (p[-1] == '\\')) && (_is_number_char(uc) || isalpha(uc)))) { *p++ = '\\'; *p++ = '\n'; has_special = TRUE; backslash_pending = FALSE; } else if (uc && cnt % SMALLBUF == 0) { - if (!((_is_number_char(p[-1]) || isalpha(p[-1])) && (_is_number_char(uc) || isalpha(uc)))) { + if (!((_is_number_char(p[-1]) || isalpha(p[-1]) || (p[-1] == '\\')) && (_is_number_char(uc) || isalpha(uc)))) { *p++ = '\\'; *p++ = '\n'; has_special = TRUE;