-ifempty
-infloopsuncon
-internalglobs
--mods
-noeffect
-noeffectuncon
--nullpass
--nullret
+#-nullpass
-nullstate
-paramuse
-readonlytrans
char *sexpAlloc(int n)\r
{ char *c = (char *)malloc((unsigned int) n);\r
if (c == NULL) ErrorMessage(ERROR,"Error in sexpAlloc: out of memory!",0,0);\r
- return(c);\r
+/*@-nullret@*/\r
+ return c;\r
+/*@=nullret@*/\r
}\r
\r
/***********************************/\r
sexpSimpleString *newSimpleString(void)\r
{\r
sexpSimpleString *ss;\r
- ss = (sexpSimpleString *) sexpAlloc(sizeof(sexpSimpleString));\r
+ ss = (sexpSimpleString *) sexpAlloc(sizeof(*ss));\r
ss->length = 0;\r
ss->allocatedLength = 16;\r
ss->string = (octet *)sexpAlloc(16);\r
- return(ss);\r
+ return ss;\r
}\r
\r
/* simpleStringLength(ss)\r
* returns length of simple string \r
*/\r
long int simpleStringLength(sexpSimpleString *ss)\r
-{ return(ss->length); }\r
+{ return ss->length; }\r
\r
/* simpleStringString(ss)\r
* returns pointer to character array of simple string \r
*/\r
octet *simpleStringString(sexpSimpleString *ss)\r
-{ return(ss->string); }\r
+{ return ss->string; }\r
\r
/* reallocateSimpleString(ss)\r
* Changes space allocated to ss.\r
{\r
int newsize, i;\r
octet *newstring;\r
- if (ss==NULL) ss = newSimpleString();\r
+ if (ss == NULL) {\r
+ ss = newSimpleString();\r
+ if (ss == NULL) return NULL;\r
+ }\r
if (ss->string == NULL) \r
ss->string = (octet *)sexpAlloc(16);\r
else\r
ss->string = newstring;\r
ss->allocatedLength = newsize;\r
}\r
- return(ss);\r
+ return ss;\r
}\r
\r
/* appendCharToSimpleString(c,ss)\r
*/\r
void appendCharToSimpleString(int c, sexpSimpleString *ss)\r
{\r
- if (ss==NULL) ss = newSimpleString();\r
+ if (ss==NULL) {\r
+ ss = newSimpleString();\r
+ if (ss == NULL) return;\r
+ }\r
if (ss->string == NULL || ss->length == ss->allocatedLength )\r
ss = reallocateSimpleString(ss);\r
- ss->string[ss->length] = (octet) (c & 0xFF);\r
- ss->length++;\r
+ if (ss != NULL && ss->string != NULL) {\r
+ ss->string[ss->length] = (octet) (c & 0xFF);\r
+ ss->length++;\r
+ }\r
}\r
\r
/****************************/\r
s->type = SEXP_STRING;\r
s->presentationHint = NULL;\r
s->string = NULL;\r
- return(s);\r
+ return s;\r
}\r
\r
/* sexpStringPresentationHint()\r
* returns presentation hint field of the string \r
*/\r
sexpSimpleString *sexpStringPresentationHint(sexpString *s)\r
-{ return(s->presentationHint); }\r
+{ return s->presentationHint; }\r
\r
/* setSexpStringPresentationHint()\r
* assigns the presentation hint field of the string\r
* returns the string field of the string\r
*/\r
sexpSimpleString *sexpStringString(sexpString *s)\r
-{ return(s->string); }\r
+{ return s->string; }\r
\r
/* closeSexpString()\r
* finish up string computations after created \r
list->type = SEXP_LIST;\r
list->first = NULL;\r
list->rest = NULL;\r
- return(list);\r
+ return list;\r
}\r
\r
/* sexpAddSexpListObject()\r
{\r
if (list->first == NULL)\r
list->first = object;\r
- else\r
- { while (list->rest != NULL) list = list->rest;\r
- list->rest = newSexpList();\r
+ else {\r
+ while (list->rest != NULL)\r
list = list->rest;\r
+ list->rest = newSexpList();\r
+ if ((list = list->rest) != NULL)\r
list->first = object;\r
- }\r
+ }\r
}\r
\r
/* closeSexpList()\r
* return the iterator for going over a list \r
*/\r
sexpIter *sexpListIter(sexpList *list)\r
-{ return((sexpIter *)list); }\r
+{ return (sexpIter *)list; }\r
\r
/* sexpIterNext()\r
* advance iterator to next element of list, or else return null\r
*/\r
sexpIter *sexpIterNext(sexpIter *iter)\r
-{ if (iter == NULL) return(NULL);\r
- return((sexpIter *)(((sexpList *)iter)->rest));\r
+{ if (iter == NULL) return NULL;\r
+ return (sexpIter *)(((sexpList *)iter)->rest);\r
}\r
\r
/* sexpIterObject ()\r
* return object corresponding to current state of iterator\r
*/\r
sexpObject *sexpIterObject(sexpIter *iter)\r
-{ if (iter == NULL) return(NULL);\r
- return(((sexpList *)iter)->first);\r
+{ if (iter == NULL) return NULL;\r
+ return ((sexpList *)iter)->first;\r
}\r
\r
/****************************/\r
/****************************/\r
\r
int isObjectString(sexpObject *object)\r
-{ if (((sexpString *)object)->type == SEXP_STRING) return(TRUE);\r
- else return(FALSE);\r
+{ if (((sexpString *)object)->type == SEXP_STRING) return TRUE;\r
+ else return FALSE;\r
}\r
\r
int isObjectList(sexpObject *object)\r
-{ if (((sexpList *)object)->type == SEXP_LIST) return(TRUE);\r
- else return(FALSE);\r
+{ if (((sexpList *)object)->type == SEXP_LIST) return TRUE;\r
+ else return FALSE;\r
}\r
/* initializeCharacterTables\r
* initializes all of the above arrays\r
*/ \r
+/*@-mods@*/\r
void initializeCharacterTables(void)\r
{ int i;\r
for (i=0;i<256;i++) upper[i] = i;\r
tokenchar['+'] = TRUE;\r
tokenchar['='] = TRUE;\r
}\r
+/*@=mods@*/\r
\r
/* isWhiteSpace(c)\r
* Returns TRUE if c is a whitespace character (space, tab, etc. ).\r
is->bits = 0;\r
is->nBits = 0;\r
is->inputFile = stdin;\r
- return(is);\r
+ return is;\r
}\r
\r
/*****************************************/\r
appendCharToSimpleString(is->nextChar,ss);\r
is->getChar(is);\r
}\r
- return((sexpObject *)s);\r
+ return (sexpObject *)s;\r
}\r
\r
/* scanDecimal(is)\r
if (i++ > 8)\r
ErrorMessage(ERROR,"Decimal number %d... too long.",(int)value,0);\r
}\r
- return(value);\r
+ return value;\r
}\r
\r
/* scanVerbatimString(is,ss,length)\r
is->count, is->nextChar );\r
if (simpleStringLength(ss) == 0)\r
ErrorMessage(WARNING,"Simple string has zero length.",0,0);\r
- return(ss);\r
+ return ss;\r
}\r
\r
/* scanString(is)\r
ss = scanSimpleString(is);\r
setSexpStringString(s,ss);\r
closeSexpString(s);\r
- return(s);\r
+ return s;\r
}\r
\r
/* scanList(is)\r
{ \r
skipChar(is,')');\r
closeSexpList(list);\r
- return(list);\r
+ return list;\r
}\r
else \r
{ object = scanObject(is);\r
skipChar(is,'{'); /* important! */\r
object = scanObject(is);\r
skipChar(is,'}');\r
- return(object);\r
+ return object;\r
}\r
else\r
{ if (is->nextChar == '(')\r
object = (sexpObject *)scanList(is);\r
else\r
object = (sexpObject *)scanString(is);\r
- return(object);\r
+ return object;\r
}\r
}\r
\r
#include <stdlib.h>\r
#include "sexp.h"\r
\r
-char *help = \r
+static const char *help = \r
"The program `sexp' reads, parses, and prints out S-expressions.\n"\r
" INPUT:\n"\r
" Input is normally taken from stdin, but this can be changed:\n"\r
/*************************************************************************/\r
/* main(argc,argv)\r
*/\r
+/*@-mods@*/\r
+/*@-nullderef@*/\r
+/*@-nullpass@*/\r
int main(int argc, char **argv)\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/\r
{ char *c;\r
int swa = TRUE;\r
int swb = TRUE;\r
if (!swp) skipWhiteSpace(is);\r
else if (!swl) { printf("\n"); fflush(stdout); }\r
}\r
- return(0);\r
+ return 0;\r
}\r
+/*@=nullpass@*/\r
+/*@=nullderef@*/\r
+/*@=mods@*/\r
os->nBits = 0;\r
os->outputFile = stdout;\r
os->mode = CANONICAL;\r
- return(os);\r
+ return os;\r
}\r
\r
/*******************/\r
*/\r
void canonicalPrintVerbatimSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
{ \r
- long int len;\r
+ long int len = simpleStringLength(ss);\r
long int i;\r
- octet *c;\r
- len = simpleStringLength(ss);\r
- c = simpleStringString(ss);\r
+ octet * c = simpleStringString(ss);\r
+\r
if (c == NULL) \r
ErrorMessage(ERROR,"Can't print NULL string verbatim",0,0);\r
/* print out len: */\r
void canonicalPrintString(sexpOutputStream *os, sexpString *s)\r
{ sexpSimpleString *ph, *ss;\r
ph = sexpStringPresentationHint(s);\r
- if (ph != NULL) \r
- { varPutChar(os,'[');\r
- canonicalPrintVerbatimSimpleString(os,ph);\r
- varPutChar(os,']');\r
- }\r
+ if (ph != NULL) {\r
+ varPutChar(os,'[');\r
+ canonicalPrintVerbatimSimpleString(os,ph);\r
+ varPutChar(os,']');\r
+ }\r
ss = sexpStringString(s);\r
if (ss == NULL)\r
ErrorMessage(ERROR,"NULL string can't be printed.",0,0);\r
- canonicalPrintVerbatimSimpleString(os,ss);\r
+ else\r
+ canonicalPrintVerbatimSimpleString(os,ss);\r
}\r
\r
/* canonicalPrintList(os,list)\r
sexpObject *object;\r
varPutChar(os,'(');\r
iter = sexpListIter(list);\r
- while (iter != NULL)\r
- { object = sexpIterObject(iter);\r
- if (object != NULL) \r
- canonicalPrintObject(os,object);\r
- iter = sexpIterNext(iter);\r
- }\r
+ while (iter != NULL) {\r
+ object = sexpIterObject(iter);\r
+ if (object != NULL) \r
+ canonicalPrintObject(os,object);\r
+ iter = sexpIterNext(iter);\r
+ }\r
varPutChar(os,')');\r
}\r
\r
long int len;\r
len = simpleStringLength(ss);\r
c = simpleStringString(ss);\r
- if (len <= 0) return(FALSE);\r
- if (isDecDigit((int)*c)) return(FALSE);\r
+ if (c == NULL) return FALSE;\r
+ if (len <= 0) return FALSE;\r
+ if (isDecDigit((int)*c)) return FALSE;\r
if (os->maxcolumn > 0 && os->column + len >= os->maxcolumn)\r
- return(FALSE);\r
+ return FALSE;\r
for (i=0;i<len;i++)\r
- if (!isTokenChar((int)(*c++))) return(FALSE);\r
- return(TRUE);\r
+ if (!isTokenChar((int)(*c++))) return FALSE;\r
+ return TRUE;\r
}\r
\r
/* advancedPrintTokenSimpleString(os,ss)\r
* Returns length for printing simple string ss as a token \r
*/\r
int advancedLengthSimpleStringToken(sexpSimpleString *ss)\r
-{ return(simpleStringLength(ss)); }\r
+{ return simpleStringLength(ss); }\r
\r
\r
/* VERBATIM */ \r
{ long int len = simpleStringLength(ss);\r
int i = 1;\r
while (len > 9L) { i++; len = len / 10; }\r
- return(i+1+len);\r
+ return (i+1+len);\r
}\r
\r
/* BASE64 */\r
*/\r
int advancedLengthSimpleStringHexadecimal(sexpSimpleString *ss)\r
{ long int len = simpleStringLength(ss);\r
- return(1+2*len+1);\r
+ return (1+2*len+1);\r
}\r
\r
/* QUOTED STRING */\r
{\r
long int i, len;\r
octet *c = simpleStringString(ss);\r
+ if (c == NULL) return FALSE ;\r
len = simpleStringLength(ss);\r
- if (len < 0) return(FALSE);\r
+ if (len < 0) return FALSE;\r
for (i=0;i<len;i++,c++)\r
if (!isTokenChar((int)(*c)) && *c != ' ') \r
- return(FALSE);\r
- return(TRUE);\r
+ return FALSE;\r
+ return TRUE;\r
}\r
\r
/* advancedPrintQuotedStringSimpleString(os,ss)\r
*/\r
int advancedLengthSimpleStringQuotedString(sexpSimpleString *ss)\r
{ long int len = simpleStringLength(ss);\r
- return(1+len+1);\r
+ return (1+len+1);\r
}\r
\r
/* SIMPLE STRING */\r
}\r
if (ss == NULL)\r
ErrorMessage(ERROR,"NULL string can't be printed.",0,0);\r
- advancedPrintSimpleString(os,ss);\r
+ else\r
+ advancedPrintSimpleString(os,ss);\r
}\r
\r
/* advancedLengthSimpleStringBase64(ss)\r
* Returns length for printing simple string ss as a base64 string\r
*/\r
int advancedLengthSimpleStringBase64(sexpSimpleString *ss)\r
-{ return(2+4*((simpleStringLength(ss)+2)/3)); }\r
+{ return (2+4*((simpleStringLength(ss)+2)/3)); }\r
\r
/* advancedLengthSimpleString(os,ss)\r
* Returns length of printed image of s\r
int advancedLengthSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
{ long int len = simpleStringLength(ss);\r
if (canPrintAsToken(os,ss)) \r
- return(advancedLengthSimpleStringToken(ss));\r
+ return advancedLengthSimpleStringToken(ss);\r
else if (canPrintAsQuotedString(ss))\r
- return(advancedLengthSimpleStringQuotedString(ss));\r
+ return advancedLengthSimpleStringQuotedString(ss);\r
else if (len <= 4 && os->byteSize == 8) \r
- return(advancedLengthSimpleStringHexadecimal(ss));\r
+ return advancedLengthSimpleStringHexadecimal(ss);\r
else if (os->byteSize == 8)\r
- return(advancedLengthSimpleStringBase64(ss));\r
+ return advancedLengthSimpleStringBase64(ss);\r
else \r
- return(0); /* an error condition */\r
+ return 0; /* an error condition */\r
}\r
\r
/* advancedLengthString(os,s)\r
len += 2+advancedLengthSimpleString(os,ph);\r
if (ss != NULL)\r
len += advancedLengthSimpleString(os,ss);\r
- return(len);\r
+ return len;\r
}\r
\r
/* advancedLengthList(os,list)\r
}\r
iter = sexpIterNext(iter);\r
}\r
- return(len+1); /* for final paren */\r
+ return len+1; /* for final paren */\r
}\r
\r
/* advancedPrintList(os,list)\r
typedef struct sexp_simplestring { \r
long int length;\r
long int allocatedLength;\r
+/*@null@*/\r
octet *string;\r
} sexpSimpleString;\r
\r
/* sexpString */\r
typedef struct sexp_string {\r
int type;\r
+/*@null@*/\r
sexpSimpleString *presentationHint;\r
+/*@null@*/\r
sexpSimpleString *string;\r
} sexpString;\r
\r
/* If first is NULL, then rest must also be NULL; this is empty list */\r
typedef struct sexp_list { \r
char type;\r
+/*@null@*/\r
union sexp_object *first;\r
+/*@null@*/\r
struct sexp_list *rest;\r
} sexpList;\r
\r
\r
/* sexp-basic */\r
void ErrorMessage(int level, const char *msg, int c1, int c2)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/;\r
void initializeMemory(void)\r
/*@*/;\r
char *sexpAlloc(int n)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/;\r
sexpSimpleString *newSimpleString(void)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/;\r
long int simpleStringLength(sexpSimpleString *ss)\r
/*@*/;\r
+/*@null@*/\r
octet *simpleStringString(sexpSimpleString *ss)\r
/*@*/;\r
+/*@null@*/\r
sexpSimpleString *reallocateSimpleString(sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies ss, fileSystem @*/;\r
void appendCharToSimpleString(int c, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies ss, fileSystem @*/;\r
sexpString *newSexpString(void)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/;\r
+/*@null@*/\r
sexpSimpleString *sexpStringPresentationHint(sexpString *s)\r
/*@*/;\r
void setSexpStringPresentationHint(sexpString *s, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@modifies s @*/;\r
void setSexpStringString(sexpString *s, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@modifies s @*/;\r
+/*@null@*/\r
sexpSimpleString *sexpStringString(sexpString *s)\r
/*@*/;\r
void closeSexpString(sexpString *s)\r
/*@*/;\r
sexpList *newSexpList(void)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/;\r
void sexpAddSexpListObject(sexpList *list, sexpObject *object)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies list, fileSystem @*/;\r
void closeSexpList(sexpList *list)\r
/*@*/;\r
sexpIter *sexpListIter(sexpList *list)\r
/*@*/;\r
+/*@null@*/\r
sexpIter *sexpIterNext(sexpIter *iter)\r
/*@*/;\r
+/*@null@*/\r
sexpObject *sexpIterObject(sexpIter *iter)\r
/*@*/;\r
int isObjectString(sexpObject *object)\r
int isAlpha(int c)\r
/*@*/;\r
void changeInputByteSize(sexpInputStream *is, int newByteSize)\r
- /*@*/;\r
+ /*@modifies is @*/;\r
void getChar(sexpInputStream *is)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
sexpInputStream *newSexpInputStream(void)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/;\r
void skipWhiteSpace(sexpInputStream *is)\r
- /*@*/;\r
+ /*@modifies is @*/;\r
void skipChar(sexpInputStream *is, int c)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
void scanToken(sexpInputStream *is, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, ss, fileSystem @*/;\r
sexpObject *scanToEOF(sexpInputStream *is)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
unsigned long int scanDecimal(sexpInputStream *is)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
void scanVerbatimString(sexpInputStream *is, sexpSimpleString *ss, long int length)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, ss, fileSystem @*/;\r
void scanQuotedString(sexpInputStream *is, sexpSimpleString *ss, long int length)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, ss, fileSystem @*/;\r
void scanHexString(sexpInputStream *is, sexpSimpleString *ss, long int length)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, ss, fileSystem @*/;\r
void scanBase64String(sexpInputStream *is, sexpSimpleString *ss, long int length)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, ss, fileSystem @*/;\r
sexpSimpleString *scanSimpleString(sexpInputStream *is)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
sexpString *scanString(sexpInputStream *is)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
sexpList *scanList(sexpInputStream *is)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
sexpObject *scanObject(sexpInputStream *is)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies is, fileSystem @*/;\r
\r
/* sexp-output */\r
void putChar(sexpOutputStream *os, int c)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void varPutChar(sexpOutputStream *os, int c)\r
- /*@*/;\r
+ /*@modifies os @*/;\r
void changeOutputByteSize(sexpOutputStream *os, int newByteSize, int mode)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void flushOutput(sexpOutputStream * os)\r
- /*@*/;\r
+ /*@modifies os @*/;\r
void newLine(sexpOutputStream *os, int mode)\r
- /*@*/;\r
+ /*@modifies os @*/;\r
sexpOutputStream *newSexpOutputStream(void)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies fileSystem @*/;\r
void printDecimal(sexpOutputStream *os, long int n)\r
- /*@*/;\r
+ /*@modifies os @*/;\r
void canonicalPrintVerbatimSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void canonicalPrintString(sexpOutputStream *os, sexpString *s)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void canonicalPrintList(sexpOutputStream *os, sexpList *list)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void canonicalPrintObject(sexpOutputStream *os, sexpObject *object)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void base64PrintWholeObject(sexpOutputStream *os, sexpObject *object)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
int canPrintAsToken(sexpOutputStream *os, sexpSimpleString *ss)\r
/*@*/;\r
void advancedPrintTokenSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@modifies os @*/;\r
int advancedLengthSimpleStringToken(sexpSimpleString *ss)\r
/*@*/;\r
void advancedPrintVerbatimSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
int advancedLengthSimpleStringVerbatim(sexpSimpleString *ss)\r
/*@*/;\r
void advancedPrintBase64SimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void advancedPrintHexSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
int advancedLengthSimpleStringHexadecimal(sexpSimpleString *ss)\r
/*@*/;\r
int canPrintAsQuotedString(sexpSimpleString *ss)\r
/*@*/;\r
void advancedPrintQuotedStringSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@modifies os @*/;\r
int advancedLengthSimpleStringQuotedString(sexpSimpleString *ss)\r
/*@*/;\r
void advancedPrintSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void advancedPrintString(sexpOutputStream *os, sexpString *s)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
int advancedLengthSimpleStringBase64(sexpSimpleString *ss)\r
/*@*/;\r
int advancedLengthSimpleString(sexpOutputStream *os, sexpSimpleString *ss)\r
int advancedLengthList(sexpOutputStream *os, sexpList *list)\r
/*@*/;\r
void advancedPrintList(sexpOutputStream *os, sexpList *list)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r
void advancedPrintObject(sexpOutputStream *os, sexpObject *object)\r
- /*@*/;\r
+ /*@globals fileSystem @*/\r
+ /*@modifies os, fileSystem @*/;\r