X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/c59f5181c83cf156efc93a26de8f921c927b70ff..061ece7d6fedbde47030222fea74b575c12707dc:/src/cstring.c diff --git a/src/cstring.c b/src/cstring.c index c6e1f47..eeb5f2b 100644 --- a/src/cstring.c +++ b/src/cstring.c @@ -34,7 +34,6 @@ # include "splintMacros.nf" # include "basic.h" # include "osd.h" -# include "portab.h" /*@only@*/ /*@notnull@*/ cstring cstring_newEmpty (void) @@ -265,7 +264,7 @@ void cstring_stripChars (cstring s, const char *clist) for (i = 0; i < size_toInt (size); i++) { - /*drl bee: is*/ + char c = s[i]; if (strchr (clist, c) != NULL) @@ -277,10 +276,10 @@ void cstring_stripChars (cstring s, const char *clist) for (j = i; j < size_toInt (size); j++) { - /*drl bee: is*/ /*drl bee: is*/ s[j] = s[j+1]; + s[j] = s[j+1]; } - /*drl bee: is*/ s[size] = '\0'; + s[size] = '\0'; i--; } } @@ -375,8 +374,7 @@ cmpcode cstring_genericEqual (cstring s, cstring t, t++; } - /*drl bee: ib*/ - /*drl bee: ib*/ + if (*s == '\0' && *t != '\0') { return CGE_DISTINCT; @@ -592,7 +590,7 @@ cstring_clip (cstring s, size_t len) else { llassert (s != NULL); - /*drl bee: mrms*/ + *(s + len) = '\0'; } @@ -611,7 +609,7 @@ cstring_elide (cstring s, size_t len) cstring sc = cstring_create (len); strncpy (sc, s, len); - /*drl bee: mrms*/ + *(sc + len - 1) = '\0'; *(sc + len - 2) = '.'; *(sc + len - 3) = '.'; @@ -633,8 +631,7 @@ cstring_fill (cstring s, size_t n) /*@requires n >= 0 @*/ { for (i = 0; i < n; i++) { - /*drl bee: is*/ - /*drl bee: is*/ + *t++ = *s++; } *t = '\0'; @@ -643,13 +640,12 @@ cstring_fill (cstring s, size_t n) /*@requires n >= 0 @*/ { for (i = 0; i < len; i++) { - /*drl bee: is*/ -/*drl bee: is*/ + *t++ = *s++; } for (i = 0; i < n - len; i++) { -/*drl bee: is*/ + *t++ = ' '; } *t = '\0'; @@ -667,7 +663,7 @@ cstring_downcase (cstring s) cstring ot = t; char c; - /*drl bee: lhnt*/ while ((c = *s) != '\0') + while ((c = *s) != '\0') { if (c >= 'A' && c <= 'Z') { @@ -676,7 +672,7 @@ cstring_downcase (cstring s) *t++ = c; s++; } - /*drl bee: is*/ *t = '\0'; + *t = '\0'; return ot; } @@ -698,13 +694,13 @@ cstring_appendChar (/*@only@*/ cstring s1, char c) { strcpy (s, s1); *(s + l) = c; - /*drl bee: dm*/ *(s + l + 1) = '\0'; + *(s + l + 1) = '\0'; sfree (s1); } else { *(s) = c; - /*drl bee: dm*/ *(s + 1) = '\0'; + *(s + 1) = '\0'; } return s; @@ -753,7 +749,7 @@ cstring_concat (cstring s, cstring t) /*@requires maxSet(s) >= 0 @*/ if (cstring_isDefined (s)) { - /*drl bee: sl*/ strcpy (ret, s); + strcpy (ret, s); } if (cstring_isDefined (t)) { @@ -778,7 +774,7 @@ cstring_prependChar (char c, /*@temp@*/ cstring s1) size_t l = cstring_length (s1); char *s = (char *) dmalloc (sizeof (*s) * (l + 2)); -/*drl bee: dm*/ *(s) = c; + *(s) = c; if (cstring_isDefined (s1)) { @@ -787,7 +783,7 @@ cstring_prependChar (char c, /*@temp@*/ cstring s1) /*@=mayaliasunique@*/ } - /*drl bee: dm*/ *(s + l + 1) = '\0'; + *(s + l + 1) = '\0'; return s; } @@ -798,7 +794,7 @@ cstring_hasNonAlphaNumBar (cstring s) if (cstring_isUndefined (s)) return FALSE; -/*drl bee: lhnt*/ while ((c = (int) *s) != (int) '\0') + while ((c = (int) *s) != (int) '\0') { if ((isalnum (c) == 0) && (c != (int) '_') && (c != (int) '.') && (c != (int) CONNECTCHAR)) @@ -816,7 +812,7 @@ cstring_create (size_t n) { char *s = dmalloc (sizeof (*s) * (n + 1)); - /*drl bee: dm*/ *s = '\0'; + *s = '\0'; return s; } @@ -880,7 +876,7 @@ cstring cstring_bsearch (cstring key, char **table, int nentries) if (mid != 0 && mid < nentries - 1) { llassert (cstring_compare (key, table[mid - 1]) > 0); - /*drl bee: ndv*/ llassert (cstring_compare (key, table[mid + 1]) < 0); + llassert (cstring_compare (key, table[mid + 1]) < 0); } return res; @@ -894,7 +890,7 @@ extern /*@observer@*/ cstring cstring_advanceWhiteSpace (cstring s) if (cstring_isDefined (s)) { char *t = s; - /*drl bee: lhnt*/ while (*t != '\0' && isspace ((int) *t)) { + while (*t != '\0' && isspace ((int) *t)) { t++; } @@ -904,9 +900,6 @@ extern /*@observer@*/ cstring cstring_advanceWhiteSpace (cstring s) return cstring_undefined; } -/*@i3534 @*/ -/*@ignore@*/ /* !!! DRL don't ignore large segments like this without a good reason! */ - /* changes strings like "sdf" "sdfsd" into "sdfsdfsd"*/ /* This function understands that "sdf\" \"sdfsdf" is okay*/ static mstring doMergeString (cstring s) @@ -959,7 +952,8 @@ static mstring doMergeString (cstring s) retPtr++; *retPtr = '\0'; BADEXIT; - return ret; + + /*@notreached@*/ return ret; } else { @@ -975,7 +969,7 @@ static mstring doMergeString (cstring s) ptr++; }/* end while */ - retPtr = '\0'; + *retPtr = '\0'; return ret; } @@ -1117,7 +1111,8 @@ static mstring doExpandEscapes (cstring s, /*@out@*/ size_t *len) /* add the null character */ *retPtr = '\0'; - *len = retPtr - ret; + llassert( (retPtr-ret) >= 0 ); + *len = (size_t)(retPtr - ret); return ret; } @@ -1166,7 +1161,7 @@ cstring cstring_replaceChar(/*@returned@*/ cstring c, char oldChar, char newChar return c; } -/*@end@*/ +