X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fhelper%2Fjim.c;h=071e5575b09958e1e80761c0f449118ad6721e95;hp=2bdf15a669e6386dd45f2a42ca041a5261b67bcf;hb=3f9d377ce788365844f9225064cb9b0f0b4542ef;hpb=6d1d58a1fc3dfd60e9cac89460b5a6e438d11efa diff --git a/src/helper/jim.c b/src/helper/jim.c index 2bdf15a669..071e5575b0 100644 --- a/src/helper/jim.c +++ b/src/helper/jim.c @@ -2,26 +2,29 @@ * * Copyright 2005 Salvatore Sanfilippo * Copyright 2005 Clemens Hintze - * Copyright 2005 patthoyts - Pat Thoyts - * Copyright 2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com + * Copyright 2005 patthoyts - Pat Thoyts + * Copyright 2008,2009 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com * Copyright 2008 Andrew Lunn * Copyright 2008 Duane Ellis * Copyright 2008 Uwe Klein * Copyright 2008 Steve Bennett - * + * Copyright 2009 Nico Coesel + * Copyright 2009 Zachary T Welch zw@superlucidity.net + * Copyright 2009 David Brownell + * * The FreeBSD license - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * + * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A @@ -34,7 +37,7 @@ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * * The views and conclusions contained in the software and documentation * are those of the authors and should not be interpreted as representing * official policies, either expressed or implied, of the Jim Tcl Project. @@ -50,6 +53,9 @@ #include #include #include + +typedef CYG_ADDRWORD intptr_t; + #include #include #include @@ -117,25 +123,25 @@ static Jim_HashTableType *getJimVariablesHashTableType(void); * ---------------------------------------------------------------------------*/ static char * -jim_vasprintf( const char *fmt, va_list ap ) +jim_vasprintf(const char *fmt, va_list ap) { #ifndef HAVE_VASPRINTF /* yucky way */ static char buf[2048]; - vsnprintf( buf, sizeof(buf), fmt, ap ); + vsnprintf(buf, sizeof(buf), fmt, ap); /* garentee termination */ buf[sizeof(buf)-1] = 0; #else char *buf; int result; - result = vasprintf( &buf, fmt, ap ); + result = vasprintf(&buf, fmt, ap); if (result < 0) exit(-1); #endif return buf; } static void -jim_vasprintf_done( void *buf ) +jim_vasprintf_done(void *buf) { #ifndef HAVE_VASPRINTF (void)(buf); @@ -143,7 +149,7 @@ jim_vasprintf_done( void *buf ) free(buf); #endif } - + /* * Convert a string to a jim_wide INTEGER. @@ -364,7 +370,7 @@ static int JimStringMatch(const char *pattern, int patternLen, return 0; } -int JimStringCompare(const char *s1, int l1, const char *s2, int l2, +static int JimStringCompare(const char *s1, int l1, const char *s2, int l2, int nocase) { unsigned char *u1 = (unsigned char*) s1, *u2 = (unsigned char*) s2; @@ -389,16 +395,16 @@ int JimStringCompare(const char *s1, int l1, const char *s2, int l2, } /* Search 's1' inside 's2', starting to search from char 'index' of 's2'. - * The index of the first occurrence of s1 in s2 is returned. + * The index of the first occurrence of s1 in s2 is returned. * If s1 is not found inside s2, -1 is returned. */ -int JimStringFirst(const char *s1, int l1, const char *s2, int l2, int index) +static int JimStringFirst(const char *s1, int l1, const char *s2, int l2, int index_t) { int i; if (!l1 || !l2 || l1 > l2) return -1; - if (index < 0) index = 0; - s2 += index; - for (i = index; i <= l2-l1; i++) { + if (index_t < 0) index_t = 0; + s2 += index_t; + for (i = index_t; i <= l2-l1; i++) { if (memcmp(s2, s1, l1) == 0) return i; s2++; @@ -406,13 +412,13 @@ int JimStringFirst(const char *s1, int l1, const char *s2, int l2, int index) return -1; } -int Jim_WideToString(char *buf, jim_wide wideValue) +static int Jim_WideToString(char *buf, jim_wide wideValue) { const char *fmt = "%" JIM_WIDE_MODIFIER; return sprintf(buf, fmt, wideValue); } -int Jim_StringToWide(const char *str, jim_wide *widePtr, int base) +static int Jim_StringToWide(const char *str, jim_wide *widePtr, int base) { char *endptr; @@ -421,7 +427,7 @@ int Jim_StringToWide(const char *str, jim_wide *widePtr, int base) #else *widePtr = strtol(str, &endptr, base); #endif - if ((str[0] == '\0') || (str == endptr) ) + if ((str[0] == '\0') || (str == endptr)) return JIM_ERR; if (endptr[0] != '\0') { while (*endptr) { @@ -433,12 +439,12 @@ int Jim_StringToWide(const char *str, jim_wide *widePtr, int base) return JIM_OK; } -int Jim_StringToIndex(const char *str, int *intPtr) +static int Jim_StringToIndex(const char *str, int *intPtr) { char *endptr; *intPtr = strtol(str, &endptr, 10); - if ( (str[0] == '\0') || (str == endptr) ) + if ((str[0] == '\0') || (str == endptr)) return JIM_ERR; if (endptr[0] != '\0') { while (*endptr) { @@ -466,7 +472,7 @@ static int JimFormatReference(char *buf, Jim_Reference *refPtr, jim_wide id) return JIM_REFERENCE_SPACE; } -int Jim_DoubleToString(char *buf, double doubleValue) +static int Jim_DoubleToString(char *buf, double doubleValue) { char *s; int len; @@ -490,12 +496,12 @@ int Jim_DoubleToString(char *buf, double doubleValue) return len; } -int Jim_StringToDouble(const char *str, double *doublePtr) +static int Jim_StringToDouble(const char *str, double *doublePtr) { char *endptr; *doublePtr = strtod(str, &endptr); - if (str[0] == '\0' || endptr[0] != '\0' || (str == endptr) ) + if (str[0] == '\0' || endptr[0] != '\0' || (str == endptr)) return JIM_ERR; return JIM_OK; } @@ -520,7 +526,7 @@ void Jim_Panic(Jim_Interp *interp, const char *fmt, ...) va_list ap; va_start(ap, fmt); - /* + /* * Send it here first.. Assuming STDIO still works */ fprintf(stderr, JIM_NL "JIM INTERPRETER PANIC: "); @@ -542,12 +548,12 @@ void Jim_Panic(Jim_Interp *interp, const char *fmt, ...) fprintf(fp,"[backtrace] of 'nm ' in the bug report." JIM_NL); } #endif - + /* This may actually crash... we do it last */ - if ( interp && interp->cookie_stderr ){ - Jim_fprintf( interp, interp->cookie_stderr, JIM_NL "JIM INTERPRETER PANIC: "); - Jim_vfprintf( interp, interp->cookie_stderr, fmt, ap ); - Jim_fprintf( interp, interp->cookie_stderr, JIM_NL JIM_NL ); + if (interp && interp->cookie_stderr) { + Jim_fprintf(interp, interp->cookie_stderr, JIM_NL "JIM INTERPRETER PANIC: "); + Jim_vfprintf(interp, interp->cookie_stderr, fmt, ap); + Jim_fprintf(interp, interp->cookie_stderr, JIM_NL JIM_NL); } abort(); } @@ -580,7 +586,7 @@ void Jim_Free(void *ptr) { free(ptr); } -void *Jim_Realloc(void *ptr, int size) +static void *Jim_Realloc(void *ptr, int size) { /* We allocate zero length arrayes, etc. to use a single orthogonal codepath */ if (size == 0) @@ -600,10 +606,10 @@ char *Jim_StrDup(const char *s) return copy; } -char *Jim_StrDupLen(const char *s, int l) +static char *Jim_StrDupLen(const char *s, int l) { char *copy = Jim_Alloc(l + 1); - + memcpy(copy, s, l + 1); copy[l] = 0; /* Just to be sure, original could be substring */ return copy; @@ -639,7 +645,7 @@ static int JimInsertHashEntry(Jim_HashTable *ht, const void *key); /* -------------------------- hash functions -------------------------------- */ /* Thomas Wang's 32 bit Mix Function */ -unsigned int Jim_IntHashFunction(unsigned int key) +static unsigned int Jim_IntHashFunction(unsigned int key) { key += ~(key << 15); key ^= (key >> 10); @@ -650,15 +656,9 @@ unsigned int Jim_IntHashFunction(unsigned int key) return key; } -/* Identity hash function for integer keys */ -unsigned int Jim_IdentityHashFunction(unsigned int key) -{ - return key; -} - /* Generic hash function (we are using to multiply by 9 and add the byte * as Tcl) */ -unsigned int Jim_GenHashFunction(const unsigned char *buf, int len) +static unsigned int Jim_GenHashFunction(const unsigned char *buf, int len) { unsigned int h = 0; while (len--) @@ -726,7 +726,7 @@ int Jim_ExpandHashTable(Jim_HashTable *ht, unsigned int size) Jim_HashEntry *he, *nextHe; if (ht->table[i] == NULL) continue; - + /* For each hash entry on this slot... */ he = ht->table[i]; while (he) { @@ -753,18 +753,18 @@ int Jim_ExpandHashTable(Jim_HashTable *ht, unsigned int size) /* Add an element to the target hash table */ int Jim_AddHashEntry(Jim_HashTable *ht, const void *key, void *val) { - int index; + int index_t; Jim_HashEntry *entry; /* Get the index of the new element, or -1 if * the element already exists. */ - if ((index = JimInsertHashEntry(ht, key)) == -1) + if ((index_t = JimInsertHashEntry(ht, key)) == -1) return JIM_ERR; /* Allocates the memory and stores key */ entry = Jim_Alloc(sizeof(*entry)); - entry->next = ht->table[index]; - ht->table[index] = entry; + entry->next = ht->table[index_t]; + ht->table[index_t] = entry; /* Set the hash entry fields. */ Jim_SetHashKey(ht, entry, key); @@ -1162,7 +1162,7 @@ static char *JimParserGetToken(struct JimParserCtx *pc, /* Initialize a parser context. * 'prg' is a pointer to the program text, linenr is the line * number of the first line contained in the program. */ -void JimParserInit(struct JimParserCtx *pc, const char *prg, +static void JimParserInit(struct JimParserCtx *pc, const char *prg, int len, int linenr) { pc->prg = prg; @@ -1513,7 +1513,7 @@ static int JimEscape(char *dest, const char *s, int slen) { char *p = dest; int i, len; - + if (slen == -1) slen = strlen(s); @@ -1599,7 +1599,7 @@ static int JimEscape(char *dest, const char *s, int slen) * For exmple the string: * * {expand}$a - * + * * will return as first token "expand", of type JIM_TT_STR * * While the string: @@ -1700,7 +1700,7 @@ int Jim_ScriptIsComplete(const char *s, int len, char *stateCharPtr) static int JimParseListSep(struct JimParserCtx *pc); static int JimParseListStr(struct JimParserCtx *pc); -int JimParseList(struct JimParserCtx *pc) +static int JimParseList(struct JimParserCtx *pc) { if (pc->len == 0) { pc->tstart = pc->tend = pc->p; @@ -2013,7 +2013,7 @@ Jim_Obj *Jim_NewStringObjNoAlloc(Jim_Interp *interp, char *s, int len) /* Low-level string append. Use it only against objects * of type "string". */ -void StringAppendString(Jim_Obj *objPtr, const char *str, int len) +static void StringAppendString(Jim_Obj *objPtr, const char *str, int len) { int needlen; @@ -2034,16 +2034,6 @@ void StringAppendString(Jim_Obj *objPtr, const char *str, int len) objPtr->length += len; } -/* Low-level wrapper to append an object. */ -void StringAppendObj(Jim_Obj *objPtr, Jim_Obj *appendObjPtr) -{ - int len; - const char *str; - - str = Jim_GetString(appendObjPtr, &len); - StringAppendString(objPtr, str, len); -} - /* Higher level API to append strings to objects. */ void Jim_AppendString(Jim_Interp *interp, Jim_Obj *objPtr, const char *str, int len) @@ -2055,17 +2045,17 @@ void Jim_AppendString(Jim_Interp *interp, Jim_Obj *objPtr, const char *str, StringAppendString(objPtr, str, len); } -void Jim_AppendString_sprintf( Jim_Interp *interp, Jim_Obj *objPtr, const char *fmt, ... ) +void Jim_AppendString_sprintf(Jim_Interp *interp, Jim_Obj *objPtr, const char *fmt, ...) { char *buf; va_list ap; - va_start( ap, fmt ); - buf = jim_vasprintf( fmt, ap ); + va_start(ap, fmt); + buf = jim_vasprintf(fmt, ap); va_end(ap); - if ( buf ){ - Jim_AppendString( interp, objPtr, buf, -1 ); + if (buf) { + Jim_AppendString(interp, objPtr, buf, -1); jim_vasprintf_done(buf); } } @@ -2126,7 +2116,7 @@ int Jim_StringMatchObj(Jim_Obj *patternObjPtr, Jim_Obj *objPtr, return JimStringMatch(pattern, patternLen, string, stringLen, nocase); } -int Jim_StringCompareObj(Jim_Obj *firstObjPtr, +static int Jim_StringCompareObj(Jim_Obj *firstObjPtr, Jim_Obj *secondObjPtr, int nocase) { const char *s1, *s2; @@ -2142,11 +2132,11 @@ int Jim_StringCompareObj(Jim_Obj *firstObjPtr, * This function may return negative values, or values * bigger or equal to the length of the list if the index * is out of range. */ -static int JimRelToAbsIndex(int len, int index) +static int JimRelToAbsIndex(int len, int index_t) { - if (index < 0) - return len + index; - return index; + if (index_t < 0) + return len + index_t; + return index_t; } /* Convert a pair of index as normalize by JimRelToAbsIndex(), @@ -2211,7 +2201,7 @@ static Jim_Obj *JimStringToLower(Jim_Interp *interp, Jim_Obj *strObjPtr) memcpy(buf, strObjPtr->bytes, strObjPtr->length + 1); for (i = 0; i < strObjPtr->length; i++) - buf[i] = tolower(buf[i]); + buf[i] = tolower((unsigned)buf[i]); return Jim_NewStringObjNoAlloc(interp, buf, strObjPtr->length); } @@ -2227,13 +2217,13 @@ static Jim_Obj *JimStringToUpper(Jim_Interp *interp, Jim_Obj *strObjPtr) memcpy(buf, strObjPtr->bytes, strObjPtr->length + 1); for (i = 0; i < strObjPtr->length; i++) - buf[i] = toupper(buf[i]); + buf[i] = toupper((unsigned)buf[i]); return Jim_NewStringObjNoAlloc(interp, buf, strObjPtr->length); } /* This is the core of the [format] command. * TODO: Lots of things work - via a hack - * However, no format item can be >= JIM_MAX_FMT + * However, no format item can be >= JIM_MAX_FMT */ #define JIM_MAX_FMT 2048 static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, @@ -2242,7 +2232,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, const char *fmt, *_fmt; int fmtLen; Jim_Obj *resObjPtr; - + fmt = Jim_GetString(fmtObjPtr, &fmtLen); _fmt = fmt; @@ -2283,10 +2273,10 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, haveprec = 0; prec = -1; /* not found yet */ next_fmt: - if ( fmtLen <= 0 ){ + if (fmtLen <= 0) { break; } - switch ( *fmt ){ + switch (*fmt) { /* terminals */ case 'b': /* binary - not all printfs() do this */ case 's': /* string */ @@ -2299,7 +2289,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, case 'u': /* unsigned */ case 'f': /* float */ break; - + /* non-terminals */ case '0': /* zero pad */ zpad = 1; @@ -2325,7 +2315,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, altfm = 1; fmt++; fmtLen--; goto next_fmt; - + case '.': inprec = 1; fmt++; fmtLen--; @@ -2341,11 +2331,11 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, case '8': case '9': accum = 0; - while ( isdigit(*fmt) && (fmtLen > 0) ){ + while (isdigit((unsigned)*fmt) && (fmtLen > 0)) { accum = (accum * 10) + (*fmt - '0'); fmt++; fmtLen--; } - if ( inprec ){ + if (inprec) { haveprec = 1; prec = accum; } else { @@ -2356,24 +2346,24 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, /* suck up the next item as an integer */ fmt++; fmtLen--; objc--; - if ( objc <= 0 ){ + if (objc <= 0) { goto not_enough_args; } - if ( Jim_GetWide(interp,objv[0],&wideValue )== JIM_ERR ){ - Jim_FreeNewObj(interp, resObjPtr ); + if (Jim_GetWide(interp,objv[0],&wideValue)== JIM_ERR) { + Jim_FreeNewObj(interp, resObjPtr); return NULL; } - if ( inprec ){ + if (inprec) { haveprec = 1; prec = wideValue; - if ( prec < 0 ){ + if (prec < 0) { /* man 3 printf says */ /* if prec is negative, it is zero */ prec = 0; } } else { width = wideValue; - if ( width < 0 ){ + if (width < 0) { ljust = 1; width = -width; } @@ -2382,8 +2372,8 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, goto next_fmt; break; } - - + + if (*fmt != '%') { if (objc == 0) { not_enough_args: @@ -2395,40 +2385,40 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, objc--; } } - + /* * Create the formatter * cause we cheat and use sprintf() */ cp = fmt_str; *cp++ = '%'; - if ( altfm ){ + if (altfm) { *cp++ = '#'; } - if ( forceplus ){ + if (forceplus) { *cp++ = '+'; - } else if ( spad ){ + } else if (spad) { /* PLUS overrides */ *cp++ = ' '; } - if ( ljust ){ + if (ljust) { *cp++ = '-'; } - if ( zpad ){ + if (zpad) { *cp++ = '0'; } - if ( width > 0 ){ - sprintf( cp, "%d", width ); + if (width > 0) { + sprintf(cp, "%d", width); /* skip ahead */ cp = strchr(cp,0); } /* did we find a period? */ - if ( inprec ){ + if (inprec) { /* then add it */ *cp++ = '.'; /* did something occur after the period? */ - if ( haveprec ){ - sprintf( cp, "%d", prec ); + if (haveprec) { + sprintf(cp, "%d", prec); } cp = strchr(cp,0); } @@ -2441,7 +2431,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, *cp++ = 's'; *cp = 0; /* BUG: we do not handled embeded NULLs */ - snprintf( sprintf_buf, JIM_MAX_FMT, fmt_str, Jim_GetString( objv[0], NULL )); + snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, Jim_GetString(objv[0], NULL)); break; case 'c': *cp++ = 'c'; @@ -2451,7 +2441,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, return NULL; } c = (char) wideValue; - snprintf( sprintf_buf, JIM_MAX_FMT, fmt_str, c ); + snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, c); break; case 'f': case 'F': @@ -2461,11 +2451,11 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, case 'E': *cp++ = *fmt; *cp = 0; - if ( Jim_GetDouble( interp, objv[0], &doubleValue ) == JIM_ERR ){ - Jim_FreeNewObj( interp, resObjPtr ); + if (Jim_GetDouble(interp, objv[0], &doubleValue) == JIM_ERR) { + Jim_FreeNewObj(interp, resObjPtr); return NULL; } - snprintf( sprintf_buf, JIM_MAX_FMT, fmt_str, doubleValue ); + snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, doubleValue); break; case 'b': case 'd': @@ -2475,8 +2465,8 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, case 'x': case 'X': /* jim widevaluse are 64bit */ - if ( sizeof(jim_wide) == sizeof(long long) ){ - *cp++ = 'l'; + if (sizeof(jim_wide) == sizeof(long long)) { + *cp++ = 'l'; *cp++ = 'l'; } else { *cp++ = 'l'; @@ -2487,7 +2477,7 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, Jim_FreeNewObj(interp, resObjPtr); return NULL; } - snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, wideValue ); + snprintf(sprintf_buf, JIM_MAX_FMT, fmt_str, wideValue); break; case '%': sprintf_buf[0] = '%'; @@ -2504,12 +2494,12 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr, } /* force terminate */ #if 0 - printf("FMT was: %s\n", fmt_str ); - printf("RES was: |%s|\n", sprintf_buf ); + printf("FMT was: %s\n", fmt_str); + printf("RES was: |%s|\n", sprintf_buf); #endif - + sprintf_buf[ JIM_MAX_FMT - 1] = 0; - Jim_AppendString( interp, resObjPtr, sprintf_buf, strlen(sprintf_buf) ); + Jim_AppendString(interp, resObjPtr, sprintf_buf, strlen(sprintf_buf)); /* next obj */ objv++; fmt++; @@ -2524,7 +2514,7 @@ Jim_Obj *Jim_FormatString(Jim_Interp *interp, Jim_Obj *fmtObjPtr, char *sprintf_buf = malloc(JIM_MAX_FMT); Jim_Obj *t = Jim_FormatString_Inner(interp, fmtObjPtr, objc, objv, sprintf_buf); free(sprintf_buf); - return t; + return t; } /* ----------------------------------------------------------------------------- @@ -2573,7 +2563,7 @@ int Jim_CompareStringImmediate(Jim_Interp *interp, Jim_Obj *objPtr, } } -int qsortCompareStringPointers(const void *a, const void *b) +static int qsortCompareStringPointers(const void *a, const void *b) { char * const *sa = (char * const *)a; char * const *sb = (char * const *)b; @@ -2618,21 +2608,21 @@ int Jim_GetEnum(Jim_Interp *interp, Jim_Obj *objPtr, return JIM_ERR; } -int Jim_GetNvp(Jim_Interp *interp, +int Jim_GetNvp(Jim_Interp *interp, Jim_Obj *objPtr, - const Jim_Nvp *nvp_table, + const Jim_Nvp *nvp_table, const Jim_Nvp ** result) { Jim_Nvp *n; int e; - e = Jim_Nvp_name2value_obj( interp, nvp_table, objPtr, &n ); - if ( e == JIM_ERR ){ + e = Jim_Nvp_name2value_obj(interp, nvp_table, objPtr, &n); + if (e == JIM_ERR) { return e; } /* Success? found? */ - if ( n->name ){ + if (n->name) { /* remove const */ *result = (Jim_Nvp *)n; return JIM_OK; @@ -2735,7 +2725,7 @@ typedef struct ScriptToken { * The command structure is a pre-computed representation of the * command length and arguments structure as a simple liner array * of integers. - * + * * For example the script: * * puts hello @@ -2828,6 +2818,9 @@ void FreeScriptInternalRep(Jim_Interp *interp, Jim_Obj *objPtr) int i; struct ScriptObj *script = (void*) objPtr->internalRep.ptr; + if (!script) + return; + script->inUse--; if (script->inUse != 0) return; for (i = 0; i < script->len; i++) { @@ -3030,12 +3023,12 @@ int SetScriptFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr) JimParserInit(&parser, scriptText, scriptTextLen, initialLineNumber); while (!JimParserEof(&parser)) { - char *token; + char *token_t; int len, type, linenr; JimParseScript(&parser); - token = JimParserGetToken(&parser, &len, &type, &linenr); - ScriptObjAddToken(interp, script, token, len, type, + token_t = JimParserGetToken(&parser, &len, &type, &linenr); + ScriptObjAddToken(interp, script, token_t, len, type, propagateSourceInfo ? script->fileName : NULL, linenr); } @@ -3123,7 +3116,7 @@ int SetScriptFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr) return JIM_OK; } -ScriptObj *Jim_GetScript(Jim_Interp *interp, Jim_Obj *objPtr) +static ScriptObj *Jim_GetScript(Jim_Interp *interp, Jim_Obj *objPtr) { if (objPtr->typePtr != &scriptObjType) { SetScriptFromAny(interp, objPtr); @@ -3221,7 +3214,7 @@ int Jim_CreateProcedure(Jim_Interp *interp, const char *cmdName, cmdPtr->arityMin = arityMin; cmdPtr->arityMax = arityMax; cmdPtr->staticVars = NULL; - + /* Create the statics hash table. */ if (staticsListObjPtr) { int len, i; @@ -3232,7 +3225,7 @@ int Jim_CreateProcedure(Jim_Interp *interp, const char *cmdName, Jim_InitHashTable(cmdPtr->staticVars, getJimVariablesHashTableType(), interp); for (i = 0; i < len; i++) { - Jim_Obj *objPtr, *initObjPtr, *nameObjPtr; + Jim_Obj *objPtr=NULL, *initObjPtr=NULL, *nameObjPtr=NULL; Jim_Var *varPtr; int subLen; @@ -3319,7 +3312,7 @@ int Jim_DeleteCommand(Jim_Interp *interp, const char *cmdName) return JIM_OK; } -int Jim_RenameCommand(Jim_Interp *interp, const char *oldName, +int Jim_RenameCommand(Jim_Interp *interp, const char *oldName, const char *newName) { Jim_Cmd *cmdPtr; @@ -3737,7 +3730,7 @@ int Jim_UnsetVariable(Jim_Interp *interp, Jim_Obj *nameObjPtr, int flags) const char *name; Jim_Var *varPtr; int err; - + if ((err = SetVariableFromAny(interp, nameObjPtr)) != JIM_OK) { /* Check for [dict] syntax sugar. */ if (err == JIM_DICT_SUGAR) @@ -3890,7 +3883,7 @@ void DupDictSubstInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, * object that is *guaranteed* to be in the form VARNAME(INDEX). * The 'index' part is [subst]ituted, and is used to lookup a key inside * the [dict]ionary contained in variable VARNAME. */ -Jim_Obj *Jim_ExpandDictSugar(Jim_Interp *interp, Jim_Obj *objPtr) +static Jim_Obj *Jim_ExpandDictSugar(Jim_Interp *interp, Jim_Obj *objPtr) { Jim_Obj *varObjPtr, *keyObjPtr, *dictObjPtr, *resObjPtr; Jim_Obj *substKeyObjPtr = NULL; @@ -4012,7 +4005,7 @@ static void JimReferencesHTValDestructor(void *interp, void *val) Jim_Free(val); } -unsigned int JimReferencesHTHashFunction(const void *key) +static unsigned int JimReferencesHTHashFunction(const void *key) { /* Only the least significant bits are used. */ const jim_wide *widePtr = key; @@ -4020,15 +4013,7 @@ unsigned int JimReferencesHTHashFunction(const void *key) return Jim_IntHashFunction(intValue); } -unsigned int JimReferencesHTDoubleHashFunction(const void *key) -{ - /* Only the least significant bits are used. */ - const jim_wide *widePtr = key; - unsigned int intValue = (unsigned int) *widePtr; - return intValue; /* identity function. */ -} - -const void *JimReferencesHTKeyDup(void *privdata, const void *key) +static const void *JimReferencesHTKeyDup(void *privdata, const void *key) { void *copy = Jim_Alloc(sizeof(jim_wide)); JIM_NOTUSED(privdata); @@ -4037,7 +4022,7 @@ const void *JimReferencesHTKeyDup(void *privdata, const void *key) return copy; } -int JimReferencesHTKeyCompare(void *privdata, const void *key1, +static int JimReferencesHTKeyCompare(void *privdata, const void *key1, const void *key2) { JIM_NOTUSED(privdata); @@ -4045,7 +4030,7 @@ int JimReferencesHTKeyCompare(void *privdata, const void *key1, return memcmp(key1, key2, sizeof(jim_wide)) == 0; } -void JimReferencesHTKeyDestructor(void *privdata, const void *key) +static void JimReferencesHTKeyDestructor(void *privdata, const void *key) { JIM_NOTUSED(privdata); @@ -4097,7 +4082,7 @@ static int isrefchar(int c) return 0; } -int SetReferenceFromAny(Jim_Interp *interp, Jim_Obj *objPtr) +static int SetReferenceFromAny(Jim_Interp *interp, Jim_Obj *objPtr) { jim_wide wideValue; int i, len; @@ -4275,7 +4260,7 @@ int Jim_Collect(Jim_Interp *interp) &objPtr->internalRep.refValue.id, NULL); #ifdef JIM_DEBUG_GC Jim_fprintf(interp,interp->cookie_stdout, - "MARK (reference): %d refcount: %d" JIM_NL, + "MARK (reference): %d refcount: %d" JIM_NL, (int) objPtr->internalRep.refValue.id, objPtr->refCount); #endif @@ -4385,7 +4370,7 @@ void Jim_CollectIfNeeded(Jim_Interp *interp) { jim_wide elapsedId; int elapsedTime; - + elapsedId = interp->referenceNextId - interp->lastCollectId; elapsedTime = time(NULL) - interp->lastCollectTime; @@ -4424,11 +4409,11 @@ Jim_Interp *Jim_CreateInterp(void) i->cookie_stdin = stdin; i->cookie_stdout = stdout; i->cookie_stderr = stderr; - i->cb_fwrite = ((size_t (*)( const void *, size_t, size_t, void *))(fwrite)); - i->cb_fread = ((size_t (*)( void *, size_t, size_t, void *))(fread)); - i->cb_vfprintf = ((int (*)( void *, const char *fmt, va_list ))(vfprintf)); - i->cb_fflush = ((int (*)( void *))(fflush)); - i->cb_fgets = ((char * (*)( char *, int, void *))(fgets)); + i->cb_fwrite = ((size_t (*)(const void *, size_t, size_t, void *))(fwrite)); + i->cb_fread = ((size_t (*)(void *, size_t, size_t, void *))(fread)); + i->cb_vfprintf = ((int (*)(void *, const char *fmt, va_list))(vfprintf)); + i->cb_fflush = ((int (*)(void *))(fflush)); + i->cb_fgets = ((char * (*)(char *, int, void *))(fgets)); /* Note that we can create objects only after the * interpreter liveList and freeList pointers are @@ -4496,25 +4481,25 @@ void Jim_FreeInterp(Jim_Interp *i) /* Check that the live object list is empty, otherwise * there is a memory leak. */ if (i->liveList != NULL) { - Jim_Obj *objPtr = i->liveList; - - Jim_fprintf( i, i->cookie_stdout,JIM_NL "-------------------------------------" JIM_NL); - Jim_fprintf( i, i->cookie_stdout,"Objects still in the free list:" JIM_NL); + objPtr = i->liveList; + + Jim_fprintf(i, i->cookie_stdout,JIM_NL "-------------------------------------" JIM_NL); + Jim_fprintf(i, i->cookie_stdout,"Objects still in the free list:" JIM_NL); while (objPtr) { const char *type = objPtr->typePtr ? objPtr->typePtr->name : ""; - Jim_fprintf( i, i->cookie_stdout,"%p \"%-10s\": '%.20s' (refCount: %d)" JIM_NL, + Jim_fprintf(i, i->cookie_stdout,"%p \"%-10s\": '%.20s' (refCount: %d)" JIM_NL, objPtr, type, objPtr->bytes ? objPtr->bytes : "(null)", objPtr->refCount); if (objPtr->typePtr == &sourceObjType) { - Jim_fprintf( i, i->cookie_stdout, "FILE %s LINE %d" JIM_NL, + Jim_fprintf(i, i->cookie_stdout, "FILE %s LINE %d" JIM_NL, objPtr->internalRep.sourceValue.fileName, objPtr->internalRep.sourceValue.lineNumber); } objPtr = objPtr->nextObjPtr; } - Jim_fprintf( i, i->cookie_stdout, "-------------------------------------" JIM_NL JIM_NL); + Jim_fprintf(i, i->cookie_stdout, "-------------------------------------" JIM_NL JIM_NL); Jim_Panic(i,"Live list non empty freeing the interpreter! Leak?"); } /* Free all the freed objects. */ @@ -4748,7 +4733,7 @@ const char *Jim_GetSharedString(Jim_Interp *interp, const char *str) Jim_AddHashEntry(&interp->sharedStrings, strCopy, (void*)1); return strCopy; } else { - long refCount = (long) he->val; + intptr_t refCount = (intptr_t) he->val; refCount++; he->val = (void*) refCount; @@ -4758,13 +4743,13 @@ const char *Jim_GetSharedString(Jim_Interp *interp, const char *str) void Jim_ReleaseSharedString(Jim_Interp *interp, const char *str) { - long refCount; + intptr_t refCount; Jim_HashEntry *he = Jim_FindHashEntry(&interp->sharedStrings, str); if (he == NULL) Jim_Panic(interp,"Jim_ReleaseSharedString called with " "unknown shared string '%s'", str); - refCount = (long) he->val; + refCount = (intptr_t) he->val; refCount--; if (refCount == 0) { Jim_DeleteHashEntry(&interp->sharedStrings, str); @@ -5097,7 +5082,7 @@ testbrace: /* Returns the malloc-ed representation of a string * using backslash to quote special chars. */ -char *BackslashQuoteString(const char *s, int len, int *qlenPtr) +static char *BackslashQuoteString(const char *s, int len, int *qlenPtr) { char *q = Jim_Alloc(len*2 + 1), *p; @@ -5161,7 +5146,7 @@ void UpdateStringOfList(struct Jim_Obj *objPtr) realLength = 0; for (i = 0; i < objPtr->internalRep.listValue.len; i++) { int len, qlen; - const char *strRep = Jim_GetString(ele[i], &len); + strRep = Jim_GetString(ele[i], &len); char *q; switch (quotingType[i]) { @@ -5231,7 +5216,7 @@ int SetListFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr) return JIM_OK; } -Jim_Obj *Jim_NewListObj(Jim_Interp *interp, Jim_Obj *const *elements, +Jim_Obj *Jim_NewListObj(Jim_Interp *interp, Jim_Obj *const *elements, int len) { Jim_Obj *objPtr; @@ -5348,7 +5333,7 @@ void ListAppendElement(Jim_Obj *listPtr, Jim_Obj *objPtr) * * NOTE: this function can be called only against objects * with internal type of List. */ -void ListInsertElements(Jim_Obj *listPtr, int index, int elemc, +static void ListInsertElements(Jim_Obj *listPtr, int index_t, int elemc, Jim_Obj *const *elemVec) { int currentLen = listPtr->internalRep.listValue.len; @@ -5364,8 +5349,8 @@ void ListInsertElements(Jim_Obj *listPtr, int index, int elemc, sizeof(Jim_Obj*)*maxLen); listPtr->internalRep.listValue.maxLen = maxLen; } - point = listPtr->internalRep.listValue.ele + index; - memmove(point + elemc, point, (currentLen-index) * sizeof(Jim_Obj*)); + point = listPtr->internalRep.listValue.ele + index_t; + memmove(point + elemc, point, (currentLen-index_t) * sizeof(Jim_Obj*)); for (i = 0; i < elemc; ++i) { point[i] = elemVec[i]; Jim_IncrRefCount(point[i]); @@ -5375,7 +5360,7 @@ void ListInsertElements(Jim_Obj *listPtr, int index, int elemc, /* Appends every element of appendListPtr into listPtr. * Both have to be of the list type. */ -void ListAppendList(Jim_Obj *listPtr, Jim_Obj *appendListPtr) +static void ListAppendList(Jim_Obj *listPtr, Jim_Obj *appendListPtr) { int i, oldLen = listPtr->internalRep.listValue.len; int appendLen = appendListPtr->internalRep.listValue.len; @@ -5424,57 +5409,57 @@ void Jim_ListLength(Jim_Interp *interp, Jim_Obj *listPtr, int *intPtr) *intPtr = listPtr->internalRep.listValue.len; } -void Jim_ListInsertElements(Jim_Interp *interp, Jim_Obj *listPtr, int index, +void Jim_ListInsertElements(Jim_Interp *interp, Jim_Obj *listPtr, int index_t, int objc, Jim_Obj *const *objVec) { if (Jim_IsShared(listPtr)) Jim_Panic(interp,"Jim_ListInsertElement called with shared object"); if (listPtr->typePtr != &listObjType) SetListFromAny(interp, listPtr); - if (index >= 0 && index > listPtr->internalRep.listValue.len) - index = listPtr->internalRep.listValue.len; - else if (index < 0 ) - index = 0; + if (index_t >= 0 && index_t > listPtr->internalRep.listValue.len) + index_t = listPtr->internalRep.listValue.len; + else if (index_t < 0) + index_t = 0; Jim_InvalidateStringRep(listPtr); - ListInsertElements(listPtr, index, objc, objVec); + ListInsertElements(listPtr, index_t, objc, objVec); } -int Jim_ListIndex(Jim_Interp *interp, Jim_Obj *listPtr, int index, +int Jim_ListIndex(Jim_Interp *interp, Jim_Obj *listPtr, int index_t, Jim_Obj **objPtrPtr, int flags) { if (listPtr->typePtr != &listObjType) SetListFromAny(interp, listPtr); - if ((index >= 0 && index >= listPtr->internalRep.listValue.len) || - (index < 0 && (-index-1) >= listPtr->internalRep.listValue.len)) { + if ((index_t >= 0 && index_t >= listPtr->internalRep.listValue.len) || + (index_t < 0 && (-index_t-1) >= listPtr->internalRep.listValue.len)) { if (flags & JIM_ERRMSG) { Jim_SetResultString(interp, "list index out of range", -1); } return JIM_ERR; } - if (index < 0) - index = listPtr->internalRep.listValue.len + index; - *objPtrPtr = listPtr->internalRep.listValue.ele[index]; + if (index_t < 0) + index_t = listPtr->internalRep.listValue.len + index_t; + *objPtrPtr = listPtr->internalRep.listValue.ele[index_t]; return JIM_OK; } -static int ListSetIndex(Jim_Interp *interp, Jim_Obj *listPtr, int index, +static int ListSetIndex(Jim_Interp *interp, Jim_Obj *listPtr, int index_t, Jim_Obj *newObjPtr, int flags) { if (listPtr->typePtr != &listObjType) SetListFromAny(interp, listPtr); - if ((index >= 0 && index >= listPtr->internalRep.listValue.len) || - (index < 0 && (-index-1) >= listPtr->internalRep.listValue.len)) { + if ((index_t >= 0 && index_t >= listPtr->internalRep.listValue.len) || + (index_t < 0 && (-index_t-1) >= listPtr->internalRep.listValue.len)) { if (flags & JIM_ERRMSG) { Jim_SetResultString(interp, - "list index out of range", -1); + "list index_t out of range", -1); } return JIM_ERR; } - if (index < 0) - index = listPtr->internalRep.listValue.len + index; - Jim_DecrRefCount(interp, listPtr->internalRep.listValue.ele[index]); - listPtr->internalRep.listValue.ele[index] = newObjPtr; + if (index_t < 0) + index_t = listPtr->internalRep.listValue.len + index_t; + Jim_DecrRefCount(interp, listPtr->internalRep.listValue.ele[index_t]); + listPtr->internalRep.listValue.ele[index_t] = newObjPtr; Jim_IncrRefCount(newObjPtr); return JIM_OK; } @@ -5486,7 +5471,7 @@ int Jim_SetListIndex(Jim_Interp *interp, Jim_Obj *varNamePtr, Jim_Obj *const *indexv, int indexc, Jim_Obj *newObjPtr) { Jim_Obj *varObjPtr, *objPtr, *listObjPtr; - int shared, i, index; + int shared, i, index_t; varObjPtr = objPtr = Jim_GetVariable(interp, varNamePtr, JIM_ERRMSG); if (objPtr == NULL) @@ -5495,21 +5480,21 @@ int Jim_SetListIndex(Jim_Interp *interp, Jim_Obj *varNamePtr, varObjPtr = objPtr = Jim_DuplicateObj(interp, objPtr); for (i = 0; i < indexc-1; i++) { listObjPtr = objPtr; - if (Jim_GetIndex(interp, indexv[i], &index) != JIM_OK) + if (Jim_GetIndex(interp, indexv[i], &index_t) != JIM_OK) goto err; - if (Jim_ListIndex(interp, listObjPtr, index, &objPtr, + if (Jim_ListIndex(interp, listObjPtr, index_t, &objPtr, JIM_ERRMSG) != JIM_OK) { goto err; } if (Jim_IsShared(objPtr)) { objPtr = Jim_DuplicateObj(interp, objPtr); - ListSetIndex(interp, listObjPtr, index, objPtr, JIM_NONE); + ListSetIndex(interp, listObjPtr, index_t, objPtr, JIM_NONE); } Jim_InvalidateStringRep(listObjPtr); } - if (Jim_GetIndex(interp, indexv[indexc-1], &index) != JIM_OK) + if (Jim_GetIndex(interp, indexv[indexc-1], &index_t) != JIM_OK) goto err; - if (ListSetIndex(interp, objPtr, index, newObjPtr, JIM_ERRMSG) == JIM_ERR) + if (ListSetIndex(interp, objPtr, index_t, newObjPtr, JIM_ERRMSG) == JIM_ERR) goto err; Jim_InvalidateStringRep(objPtr); Jim_InvalidateStringRep(varObjPtr); @@ -5581,7 +5566,8 @@ Jim_Obj *Jim_ConcatObj(Jim_Interp *interp, int objc, Jim_Obj *const *objv) /* Returns a list composed of the elements in the specified range. * first and start are directly accepted as Jim_Objects and * processed for the end?-index? case. */ -Jim_Obj *Jim_ListRange(Jim_Interp *interp, Jim_Obj *listObjPtr, Jim_Obj *firstObjPtr, Jim_Obj *lastObjPtr) +static Jim_Obj *Jim_ListRange(Jim_Interp *interp, Jim_Obj *listObjPtr, + Jim_Obj *firstObjPtr, Jim_Obj *lastObjPtr) { int first, last; int len, rangeLen; @@ -5609,7 +5595,7 @@ static int SetDictFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); * * Keys and Values are Jim objects. */ -unsigned int JimObjectHTHashFunction(const void *key) +static unsigned int JimObjectHTHashFunction(const void *key) { const char *str; Jim_Obj *objPtr = (Jim_Obj*) key; @@ -5620,7 +5606,7 @@ unsigned int JimObjectHTHashFunction(const void *key) return h; } -int JimObjectHTKeyCompare(void *privdata, const void *key1, const void *key2) +static int JimObjectHTKeyCompare(void *privdata, const void *key1, const void *key2) { JIM_NOTUSED(privdata); @@ -5736,7 +5722,7 @@ void UpdateStringOfDict(struct Jim_Obj *objPtr) realLength = 0; for (i = 0; i < objc; i++) { int len, qlen; - const char *strRep = Jim_GetString(objv[i], &len); + strRep = Jim_GetString(objv[i], &len); char *q; switch (quotingType[i]) { @@ -5858,7 +5844,7 @@ static void DictAddElement(Jim_Interp *interp, Jim_Obj *objPtr, /* Add an element, higher-level interface for DictAddElement(). * If valueObjPtr == NULL, the key is removed if it exists. */ -int Jim_DictAddElement(Jim_Interp *interp, Jim_Obj *objPtr, +static int Jim_DictAddElement(Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *keyObjPtr, Jim_Obj *valueObjPtr) { if (Jim_IsShared(objPtr)) @@ -6041,21 +6027,21 @@ void UpdateStringOfIndex(struct Jim_Obj *objPtr) int SetIndexFromAny(Jim_Interp *interp, Jim_Obj *objPtr) { - int index, end = 0; + int index_t, end = 0; const char *str; /* Get the string representation */ str = Jim_GetString(objPtr, NULL); /* Try to convert into an index */ if (!strcmp(str, "end")) { - index = 0; + index_t = 0; end = 1; } else { if (!strncmp(str, "end-", 4)) { str += 4; end = 1; } - if (Jim_StringToIndex(str, &index) != JIM_OK) { + if (Jim_StringToIndex(str, &index_t) != JIM_OK) { Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); Jim_AppendStrings(interp, Jim_GetResult(interp), "bad index \"", Jim_GetString(objPtr, NULL), "\": " @@ -6064,16 +6050,16 @@ int SetIndexFromAny(Jim_Interp *interp, Jim_Obj *objPtr) } } if (end) { - if (index < 0) - index = INT_MAX; + if (index_t < 0) + index_t = INT_MAX; else - index = -(index + 1); - } else if (!end && index < 0) - index = -INT_MAX; + index_t = -(index_t + 1); + } else if (index_t < 0) + index_t = -INT_MAX; /* Free the old internal repr and set the new one. */ Jim_FreeIntRep(interp, objPtr); objPtr->typePtr = &indexObjType; - objPtr->internalRep.indexValue = index; + objPtr->internalRep.indexValue = index_t; return JIM_OK; } @@ -6273,7 +6259,7 @@ static struct Jim_ExprOperator Jim_ExprOperators[] = { #define JIM_EXPR_OPERATORS_NUM \ (sizeof(Jim_ExprOperators)/sizeof(struct Jim_ExprOperator)) -int JimParseExpression(struct JimParserCtx *pc) +static int JimParseExpression(struct JimParserCtx *pc) { /* Discard spaces and quoted newline */ while (*(pc->p) == ' ' || @@ -6352,12 +6338,12 @@ int JimParseExprNumber(struct JimParserCtx *pc) if (*pc->p == '-') { pc->p++; pc->len--; } - while ( isdigit((int)*pc->p) - || (allowhex && isxdigit((int)*pc->p) ) - || (allowdot && *pc->p == '.') + while (isdigit((int)*pc->p) + || (allowhex && isxdigit((int)*pc->p)) + || (allowdot && *pc->p == '.') || (pc->p-pc->tstart == 1 && *pc->tstart == '0' && (*pc->p == 'x' || *pc->p == 'X')) - ) +) { if ((*pc->p == 'x') || (*pc->p == 'X')) { allowhex = 1; @@ -6421,7 +6407,7 @@ int JimParseExprOperator(struct JimParserCtx *pc) return JIM_OK; } -struct Jim_ExprOperator *JimExprOperatorInfo(const char *opname) +static struct Jim_ExprOperator *JimExprOperatorInfo(const char *opname) { int i; for (i = 0; i < (signed)JIM_EXPR_OPERATORS_NUM; i++) @@ -6431,7 +6417,7 @@ struct Jim_ExprOperator *JimExprOperatorInfo(const char *opname) return NULL; } -struct Jim_ExprOperator *JimExprOperatorInfoByOpcode(int opcode) +static struct Jim_ExprOperator *JimExprOperatorInfoByOpcode(int opcode) { int i; for (i = 0; i < (signed)JIM_EXPR_OPERATORS_NUM; i++) @@ -6608,20 +6594,20 @@ static void ExprShareLiterals(Jim_Interp *interp, ExprByteCode *expr, static void ExprMakeLazy(Jim_Interp *interp, ExprByteCode *expr) { while (1) { - int index = -1, leftindex, arity, i, offset; + int index_t = -1, leftindex, arity, i, offset; Jim_ExprOperator *op; /* Search for || or && */ for (i = 0; i < expr->len; i++) { if (expr->opcode[i] == JIM_EXPROP_LOGICAND || expr->opcode[i] == JIM_EXPROP_LOGICOR) { - index = i; + index_t = i; break; } } - if (index == -1) return; + if (index_t == -1) return; /* Search for the end of the first operator */ - leftindex = index-1; + leftindex = index_t-1; arity = 1; while (arity) { switch (expr->opcode[leftindex]) { @@ -6651,23 +6637,23 @@ static void ExprMakeLazy(Jim_Interp *interp, ExprByteCode *expr) memmove(&expr->obj[leftindex + 2], &expr->obj[leftindex], sizeof(Jim_Obj*)*(expr->len-leftindex)); expr->len += 2; - index += 2; - offset = (index-leftindex)-1; - Jim_DecrRefCount(interp, expr->obj[index]); - if (expr->opcode[index] == JIM_EXPROP_LOGICAND) { + index_t += 2; + offset = (index_t-leftindex)-1; + Jim_DecrRefCount(interp, expr->obj[index_t]); + if (expr->opcode[index_t] == JIM_EXPROP_LOGICAND) { expr->opcode[leftindex + 1] = JIM_EXPROP_LOGICAND_LEFT; - expr->opcode[index] = JIM_EXPROP_LOGICAND_RIGHT; + expr->opcode[index_t] = JIM_EXPROP_LOGICAND_RIGHT; expr->obj[leftindex + 1] = Jim_NewStringObj(interp, "&L", -1); - expr->obj[index] = Jim_NewStringObj(interp, "&R", -1); + expr->obj[index_t] = Jim_NewStringObj(interp, "&R", -1); } else { expr->opcode[leftindex + 1] = JIM_EXPROP_LOGICOR_LEFT; - expr->opcode[index] = JIM_EXPROP_LOGICOR_RIGHT; + expr->opcode[index_t] = JIM_EXPROP_LOGICOR_RIGHT; expr->obj[leftindex + 1] = Jim_NewStringObj(interp, "|L", -1); - expr->obj[index] = Jim_NewStringObj(interp, "|R", -1); + expr->obj[index_t] = Jim_NewStringObj(interp, "|R", -1); } expr->opcode[leftindex] = JIM_EXPROP_NUMBER; expr->obj[leftindex] = Jim_NewIntObj(interp, offset); - Jim_IncrRefCount(expr->obj[index]); + Jim_IncrRefCount(expr->obj[index_t]); Jim_IncrRefCount(expr->obj[leftindex]); Jim_IncrRefCount(expr->obj[leftindex + 1]); } @@ -6831,7 +6817,7 @@ err: /* we jump here on syntax/compile errors. */ return JIM_ERR; } -ExprByteCode *Jim_GetExpression(Jim_Interp *interp, Jim_Obj *objPtr) +static ExprByteCode *Jim_GetExpression(Jim_Interp *interp, Jim_Obj *objPtr) { if (objPtr->typePtr != &exprObjType) { if (SetExprFromAny(interp, objPtr) != JIM_OK) @@ -7054,7 +7040,6 @@ trydouble: "Got floating-point value where integer was expected", -1); error = 1; goto err; - break; case JIM_EXPROP_ADD: dC = dA + dB; break; case JIM_EXPROP_SUB: dC = dA-dB; break; case JIM_EXPROP_MUL: dC = dA*dB; break; @@ -7062,6 +7047,7 @@ trydouble: case JIM_EXPROP_GT: dC = dA > dB; break; case JIM_EXPROP_LTE: dC = dA <= dB; break; case JIM_EXPROP_GTE: dC = dA >= dB; break; + /* FIXME comparing floats for equality/inequality is bad juju */ case JIM_EXPROP_NUMEQ: dC = dA == dB; break; case JIM_EXPROP_NUMNE: dC = dA != dB; break; case JIM_EXPROP_LOGICAND_LEFT: @@ -7235,16 +7221,16 @@ int Jim_GetBoolFromExpr(Jim_Interp *interp, Jim_Obj *exprObjPtr, int *boolPtr) * to be parsed in its entirely first and then, if correct, can be used for * scanning. To avoid endless re-parsing, the parsed representation will be * stored in an internal representation and re-used for performance reason. */ - + /* A ScanFmtPartDescr will held the information of /one/ part of the whole * scanformat string. This part will later be used to extract information * out from the string to be parsed by Jim_ScanString */ - + typedef struct ScanFmtPartDescr { char type; /* Type of conversion (e.g. c, d, f) */ char modifier; /* Modify type (e.g. l - long, h - short */ size_t width; /* Maximal width of input to be converted */ - int pos; /* -1 - no assign, 0 - natural pos, >0 - XPG3 pos */ + int pos; /* -1 - no assign, 0 - natural pos, >0 - XPG3 pos */ char *arg; /* Specification of a CHARSET conversion */ char *prefix; /* Prefix to be scanned literally before conversion */ } ScanFmtPartDescr; @@ -7360,7 +7346,7 @@ static int SetScanFmtFromAny(Jim_Interp *interp, Jim_Obj *objPtr) int width = 0, skip; ScanFmtPartDescr *descr = &fmtObj->descr[curr]; fmtObj->count++; - descr->width = 0; /* Assume width unspecified */ + descr->width = 0; /* Assume width unspecified */ /* Overread and store any "literal" prefix */ if (*fmt != '%' || fmt[1] == '%') { descr->type = 0; @@ -7373,9 +7359,9 @@ static int SetScanFmtFromAny(Jim_Interp *interp, Jim_Obj *objPtr) buffer[i++] = *fmt; } buffer[i++] = 0; - } + } /* Skip the conversion introducing '%' sign */ - ++fmt; + ++fmt; /* End reached due to non-conversion literal only? */ if (fmt >= fmtEnd) goto done; @@ -7436,7 +7422,7 @@ static int SetScanFmtFromAny(Jim_Interp *interp, Jim_Obj *objPtr) if (*fmt != ']') { fmtObj->error = "unmatched [ in format string"; return JIM_ERR; - } + } end = i; buffer[i++] = 0; /* In case a range fence was given "backwards", swap it */ @@ -7455,7 +7441,7 @@ static int SetScanFmtFromAny(Jim_Interp *interp, Jim_Obj *objPtr) /* Remember any valid modifier if given */ if (strchr("hlL", *fmt) != 0) descr->modifier = tolower((int)*fmt++); - + descr->type = *fmt; if (strchr("efgcsndoxui", *fmt) == 0) { fmtObj->error = "bad scan conversion character"; @@ -7489,8 +7475,8 @@ done: ((ScanFmtStringObj*)((_fo_)->internalRep.ptr))->error /* Some Bit testing/setting/cleaning routines. For now only used in handling - * charsets ([a-z123]) within scanning. Later on perhaps a base for a - * bitvector implementation in Jim? */ + * charsets ([a-z123]) within scanning. Later on perhaps a base for a + * bitvector implementation in Jim? */ static int JimTestBit(const char *bitvec, char ch) { @@ -7533,7 +7519,7 @@ JimScanAString(Jim_Interp *interp, const char *sdescr, const char *str) memset(charset, (sdescr ? 0 : 255), sizeof(charset)); if (sdescr) { /* There was a set description given, that means we are parsing - * a specified string. So we have to build a corresponding + * a specified string. So we have to build a corresponding * charset reflecting the description */ int notFlag = 0; /* Should the set be negated at the end? */ @@ -7549,9 +7535,9 @@ JimScanAString(Jim_Interp *interp, const char *sdescr, const char *str) while (*sdescr) { if (sdescr[1] == '-' && sdescr[2] != 0) { /* Handle range definitions */ - int i; - for (i = sdescr[0]; i <= sdescr[2]; ++i) - JimSetBit(charset, (char)i); + int i_t; + for (i_t = sdescr[0]; i_t <= sdescr[2]; ++i_t) + JimSetBit(charset, (char)i_t); sdescr += 3; } else { /* Handle verbatim character definitions */ @@ -7561,7 +7547,7 @@ JimScanAString(Jim_Interp *interp, const char *sdescr, const char *str) /* Negate the charset if there was a NOT given */ for (i = 0; notFlag && i < sizeof(charset); ++i) charset[i] = ~charset[i]; - } + } /* And after all the mess above, the real work begin ... */ while (str && *str) { if (!sdescr && isspace((int)*str)) @@ -7582,7 +7568,7 @@ JimScanAString(Jim_Interp *interp, const char *sdescr, const char *str) * already scanned thru */ static int ScanOneEntry(Jim_Interp *interp, const char *str, long pos, - ScanFmtStringObj *fmtObj, long index, Jim_Obj **valObjPtr) + ScanFmtStringObj *fmtObj, long index_t, Jim_Obj **valObjPtr) { # define MAX_SIZE (sizeof(jim_wide) > sizeof(double) \ ? sizeof(jim_wide) \ @@ -7590,7 +7576,7 @@ static int ScanOneEntry(Jim_Interp *interp, const char *str, long pos, char buffer[MAX_SIZE]; char *value = buffer; const char *tok; - const ScanFmtPartDescr *descr = &fmtObj->descr[index]; + const ScanFmtPartDescr *descr = &fmtObj->descr[index_t]; size_t sLen = strlen(&str[pos]), scanned = 0; size_t anchor = pos; int i; @@ -7604,7 +7590,7 @@ static int ScanOneEntry(Jim_Interp *interp, const char *str, long pos, /* If prefix require, skip WS */ if (isspace((int)descr->prefix[i])) while (str[pos] && isspace((int)str[pos])) ++pos; - else if (descr->prefix[i] != str[pos]) + else if (descr->prefix[i] != str[pos]) break; /* Prefix do not match here, leave the loop */ else ++pos; /* Prefix matched so far, next round */ @@ -7649,7 +7635,7 @@ static int ScanOneEntry(Jim_Interp *interp, const char *str, long pos, : descr->type == 'x' ? 16 : descr->type == 'i' ? 0 : 10; - + do { /* Try to scan a number with the given base */ if (descr->modifier == 'l') @@ -7671,7 +7657,7 @@ static int ScanOneEntry(Jim_Interp *interp, const char *str, long pos, } /* If scanning failed, and base was undetermined, simply * put it to 10 and try once more. This should catch the - * case where %i begin to parse a number prefix (e.g. + * case where %i begin to parse a number prefix (e.g. * '0x' but no further digits follows. This will be * handled as a ZERO followed by a char 'x' by Tcl */ if (endp == tok && base == 0) base = 10; @@ -7736,7 +7722,7 @@ Jim_Obj *Jim_ScanString(Jim_Interp *interp, Jim_Obj *strObjPtr, int scanned = 1; const char *str = Jim_GetString(strObjPtr, 0); Jim_Obj *resultList = 0; - Jim_Obj **resultVec; + Jim_Obj **resultVec =NULL; int resultc; Jim_Obj *emptyStr = 0; ScanFmtStringObj *fmtObj; @@ -7884,7 +7870,7 @@ static void JimPrngSeed(Jim_Interp *interp, const unsigned char *seed, #ifdef JIM_DYNLIB #ifdef WIN32 #define RTLD_LAZY 0 -void * dlopen(const char *path, int mode) +void * dlopen(const char *path, int mode) { JIM_NOTUSED(mode); @@ -7908,7 +7894,7 @@ const char *dlerror(void) } #endif /* WIN32 */ -int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName) +static int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName) { Jim_Obj *libPathObjPtr; int prefixc, i; @@ -7933,7 +7919,7 @@ int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName) const char *prefix; int prefixlen; Jim_Obj *prefixObjPtr; - + buf[0] = '\0'; if (Jim_ListIndex(interp, libPathObjPtr, i, &prefixObjPtr, JIM_NONE) != JIM_OK) @@ -7943,7 +7929,7 @@ int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName) continue; if (*pathName == '/') { strcpy(buf, pathName); - } + } else if (prefixlen && prefix[prefixlen-1] == '/') sprintf(buf, "%s%s", prefix, pathName); else @@ -7983,7 +7969,7 @@ err: return JIM_ERR; } #else /* JIM_DYNLIB */ -int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName) +static int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName) { JIM_NOTUSED(interp); JIM_NOTUSED(pathName); @@ -8000,7 +7986,7 @@ int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName) #define JIM_PKG_ANY_VERSION -1 /* Convert a string of the type "1.2" into an integer. - * MAJOR.MINOR is converted as MAJOR*100 + MINOR, so "1.2" is converted + * MAJOR.MINOR is converted as MAJOR*100 + MINOR, so "1.2" is converted * to the integer with value 102 */ static int JimPackageVersionToInt(Jim_Interp *interp, const char *v, int *intPtr, int flags) @@ -8523,7 +8509,7 @@ err: * (and increments argc by reference accordingly), performing * expansion of the list object if 'expand' is non-zero, or * just adding objPtr to argv if 'expand' is zero. */ -void Jim_ExpandArgument(Jim_Interp *interp, Jim_Obj ***argv, +static void Jim_ExpandArgument(Jim_Interp *interp, Jim_Obj ***argv, int *argcPtr, int expand, Jim_Obj *objPtr) { if (!expand) { @@ -8684,7 +8670,7 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr) Jim_Obj **eargv = NULL; for (j = 0; j < argc; j++) { - Jim_ExpandArgument( interp, &eargv, &eargc, + Jim_ExpandArgument(interp, &eargv, &eargc, ecs[j] < 0, argv[j]); } if (argv != sargv) @@ -8820,9 +8806,9 @@ int JimCallProcedure(Jim_Interp *interp, Jim_Cmd *cmd, int argc, } for (i = 0; i < num_args; i++) { - Jim_Obj *argObjPtr; - Jim_Obj *nameObjPtr; - Jim_Obj *valueObjPtr; + Jim_Obj *argObjPtr=NULL; + Jim_Obj *nameObjPtr=NULL; + Jim_Obj *valueObjPtr=NULL; Jim_ListIndex(interp, cmd->argListObjPtr, i, &argObjPtr, JIM_NONE); if (i + 1 >= cmd->arityMin) { @@ -8846,7 +8832,7 @@ int JimCallProcedure(Jim_Interp *interp, Jim_Cmd *cmd, int argc, } /* Set optional arguments */ if (cmd->arityMax == -1) { - Jim_Obj *listObjPtr, *objPtr; + Jim_Obj *listObjPtr=NULL, *objPtr=NULL; i++; listObjPtr = Jim_NewListObj(interp, argv + i, argc-i); @@ -8894,8 +8880,8 @@ int Jim_Eval_Named(Jim_Interp *interp, const char *script, const char *filename, Jim_IncrRefCount(scriptObjPtr); - if ( filename ){ - JimSetSourceInfo( interp, scriptObjPtr, filename, lineno ); + if (filename) { + JimSetSourceInfo(interp, scriptObjPtr, filename, lineno); } retval = Jim_EvalObj(interp, scriptObjPtr); @@ -8905,7 +8891,7 @@ int Jim_Eval_Named(Jim_Interp *interp, const char *script, const char *filename, int Jim_Eval(Jim_Interp *interp, const char *script) { - return Jim_Eval_Named( interp, script, NULL, 0 ); + return Jim_Eval_Named(interp, script, NULL, 0); } @@ -8942,7 +8928,7 @@ int Jim_EvalObjBackground(Jim_Interp *interp, Jim_Obj *scriptObjPtr) Jim_IncrRefCount(objv[1]); if (Jim_EvalObjVector(interp, 2, objv) != JIM_OK) { /* Report the error to stderr. */ - Jim_fprintf( interp, interp->cookie_stderr, "Background error:" JIM_NL); + Jim_fprintf(interp, interp->cookie_stderr, "Background error:" JIM_NL); Jim_PrintErrorMessage(interp); } Jim_DecrRefCount(interp, objv[0]); @@ -8958,12 +8944,12 @@ int Jim_EvalFile(Jim_Interp *interp, const char *filename) int nread, totread, maxlen, buflen; int retval; Jim_Obj *scriptObjPtr; - + if ((fp = fopen(filename, "r")) == NULL) { const int cwd_len = 2048; char *cwd = malloc(cwd_len); Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); - if (!getcwd( cwd, cwd_len )) strcpy(cwd, "unknown"); + if (!getcwd(cwd, cwd_len)) strcpy(cwd, "unknown"); Jim_AppendStrings(interp, Jim_GetResult(interp), "Error loading script \"", filename, "\"", " cwd: ", cwd, @@ -9077,7 +9063,7 @@ static Jim_ObjType substObjType = { /* This method takes the string representation of an object * as a Tcl string where to perform [subst]itution, and generates * the pre-parsed internal representation. */ -int SetSubstFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr, int flags) +static int SetSubstFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr, int flags) { int scriptTextLen; const char *scriptText = Jim_GetString(objPtr, &scriptTextLen); @@ -9111,7 +9097,7 @@ int SetSubstFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr, int flags) return JIM_OK; } -ScriptObj *Jim_GetSubst(Jim_Interp *interp, Jim_Obj *objPtr, int flags) +static ScriptObj *Jim_GetSubst(Jim_Interp *interp, Jim_Obj *objPtr, int flags) { struct ScriptObj *script = Jim_GetIntRepPtr(objPtr); @@ -9137,7 +9123,7 @@ int Jim_SubstObj(Jim_Interp *interp, Jim_Obj *substObjPtr, * that's: $foo($bar) */ if (script->len == 1 && script->token[0].type == JIM_TT_VAR) { Jim_Obj *varObjPtr = script->token[0].objPtr; - + Jim_IncrRefCount(varObjPtr); resObjPtr = Jim_GetVariable(interp, varObjPtr, JIM_ERRMSG); if (resObjPtr == NULL) { @@ -9162,7 +9148,7 @@ int Jim_SubstObj(Jim_Interp *interp, Jim_Obj *substObjPtr, * to return. */ savedResultObjPtr = interp->result; Jim_IncrRefCount(savedResultObjPtr); - + /* Perform the substitution. Starts with an empty object * and adds every token (performing the appropriate * var/command/escape substitution). */ @@ -9359,12 +9345,12 @@ void JimRegisterCoreApi(Jim_Interp *interp) JIM_REGISTER_API(StackPop); JIM_REGISTER_API(StackPeek); JIM_REGISTER_API(FreeStackElements); - JIM_REGISTER_API(fprintf ); - JIM_REGISTER_API(vfprintf ); - JIM_REGISTER_API(fwrite ); - JIM_REGISTER_API(fread ); - JIM_REGISTER_API(fflush ); - JIM_REGISTER_API(fgets ); + JIM_REGISTER_API(fprintf); + JIM_REGISTER_API(vfprintf); + JIM_REGISTER_API(fwrite); + JIM_REGISTER_API(fread); + JIM_REGISTER_API(fflush); + JIM_REGISTER_API(fgets); JIM_REGISTER_API(GetNvp); JIM_REGISTER_API(Nvp_name2value); JIM_REGISTER_API(Nvp_name2value_simple); @@ -9385,7 +9371,7 @@ void JimRegisterCoreApi(Jim_Interp *interp) JIM_REGISTER_API(GetOpt_Nvp); JIM_REGISTER_API(GetOpt_NvpUnknown); JIM_REGISTER_API(GetOpt_Enum); - + JIM_REGISTER_API(Debug_ArgvString); JIM_REGISTER_API(SetResult_sprintf); JIM_REGISTER_API(SetResult_NvpUnknown); @@ -9395,7 +9381,7 @@ void JimRegisterCoreApi(Jim_Interp *interp) /* ----------------------------------------------------------------------------- * Core commands utility functions * ---------------------------------------------------------------------------*/ -void Jim_WrongNumArgs(Jim_Interp *interp, int argc, Jim_Obj *const *argv, +void Jim_WrongNumArgs(Jim_Interp *interp, int argc, Jim_Obj *const *argv, const char *msg) { int i; @@ -9418,12 +9404,12 @@ static Jim_Obj *JimCommandsList(Jim_Interp *interp, Jim_Obj *patternObjPtr) Jim_HashEntry *he; Jim_Obj *listObjPtr = Jim_NewListObj(interp, NULL, 0); const char *pattern; - int patternLen; - + int patternLen=0; + pattern = patternObjPtr ? Jim_GetString(patternObjPtr, &patternLen) : NULL; htiter = Jim_GetHashTableIterator(&interp->commands); while ((he = Jim_NextHashEntry(htiter)) != NULL) { - if (pattern && !JimStringMatch(pattern, patternLen, he->key, + if (pattern && !JimStringMatch(pattern, patternLen, he->key, strlen((const char*)he->key), 0)) continue; Jim_ListAppendElement(interp, listObjPtr, @@ -9444,8 +9430,8 @@ static Jim_Obj *JimVariablesList(Jim_Interp *interp, Jim_Obj *patternObjPtr, Jim_HashEntry *he; Jim_Obj *listObjPtr = Jim_NewListObj(interp, NULL, 0); const char *pattern; - int patternLen; - + int patternLen=0; + pattern = patternObjPtr ? Jim_GetString(patternObjPtr, &patternLen) : NULL; if (mode == JIM_VARLIST_GLOBALS) { htiter = Jim_GetHashTableIterator(&interp->topFramePtr->vars); @@ -9463,7 +9449,7 @@ static Jim_Obj *JimVariablesList(Jim_Interp *interp, Jim_Obj *patternObjPtr, if (varPtr->linkFramePtr != NULL) continue; } - if (pattern && !JimStringMatch(pattern, patternLen, he->key, + if (pattern && !JimStringMatch(pattern, patternLen, he->key, strlen((const char*)he->key), 0)) continue; Jim_ListAppendElement(interp, listObjPtr, @@ -9505,7 +9491,7 @@ static int Jim_PutsCoreCommand(Jim_Interp *interp, int argc, { const char *str; int len, nonewline = 0; - + if (argc != 2 && argc != 3) { Jim_WrongNumArgs(interp, 1, argv, "-nonewline string"); return JIM_ERR; @@ -9523,12 +9509,12 @@ static int Jim_PutsCoreCommand(Jim_Interp *interp, int argc, } str = Jim_GetString(argv[1], &len); Jim_fwrite(interp, str, 1, len, interp->cookie_stdout); - if (!nonewline) Jim_fprintf( interp, interp->cookie_stdout, JIM_NL); + if (!nonewline) Jim_fprintf(interp, interp->cookie_stdout, JIM_NL); return JIM_OK; } /* Helper for [+] and [*] */ -static int Jim_AddMulHelper(Jim_Interp *interp, int argc, +static int Jim_AddMulHelper(Jim_Interp *interp, int argc, Jim_Obj *const *argv, int op) { jim_wide wideValue, res; @@ -9536,7 +9522,7 @@ static int Jim_AddMulHelper(Jim_Interp *interp, int argc, int i; res = (op == JIM_EXPROP_ADD) ? 0 : 1; - + for (i = 1; i < argc; i++) { if (Jim_GetWide(interp, argv[i], &wideValue) != JIM_OK) goto trydouble; @@ -9562,7 +9548,7 @@ trydouble: } /* Helper for [-] and [/] */ -static int Jim_SubDivHelper(Jim_Interp *interp, int argc, +static int Jim_SubDivHelper(Jim_Interp *interp, int argc, Jim_Obj *const *argv, int op) { jim_wide wideValue, res = 0; @@ -9687,7 +9673,7 @@ static int Jim_SetCoreCommand(Jim_Interp *interp, int argc, } /* [unset] */ -static int Jim_UnsetCoreCommand(Jim_Interp *interp, int argc, +static int Jim_UnsetCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int i; @@ -9704,7 +9690,7 @@ static int Jim_UnsetCoreCommand(Jim_Interp *interp, int argc, } /* [incr] */ -static int Jim_IncrCoreCommand(Jim_Interp *interp, int argc, +static int Jim_IncrCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { jim_wide wideValue, increment = 1; @@ -9741,7 +9727,7 @@ static int Jim_IncrCoreCommand(Jim_Interp *interp, int argc, } /* [while] */ -static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc, +static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc != 3) { @@ -9770,7 +9756,7 @@ static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc, /* STEP 1 -- Check if there are the conditions to run the specialized * version of while */ - + if ((expr = Jim_GetExpression(interp, argv[1])) == NULL) goto noopt; if (expr->len <= 0 || expr->len > 3) goto noopt; switch (expr->len) { @@ -9813,7 +9799,7 @@ static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc, exprLen = expr->len; if (exprLen == 1) { - jim_wide wideValue; + jim_wide wideValue=0; if (expr->opcode[0] == JIM_EXPROP_VARIABLE) { varAObjPtr = expr->obj[0]; @@ -9853,7 +9839,7 @@ static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc, if (varAObjPtr) Jim_DecrRefCount(interp, varAObjPtr); } else if (exprLen == 3) { - jim_wide wideValueA, wideValueB, cmpRes = 0; + jim_wide wideValueA, wideValueB=0, cmpRes = 0; int cmpType = expr->opcode[2]; varAObjPtr = expr->obj[0]; @@ -9880,8 +9866,7 @@ static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc, Jim_GetWide(interp, objPtr, &wideValueB) != JIM_OK) { Jim_DecrRefCount(interp, varAObjPtr); - if (varBObjPtr) - Jim_DecrRefCount(interp, varBObjPtr); + Jim_DecrRefCount(interp, varBObjPtr); goto noopt; } } @@ -9934,12 +9919,12 @@ noopt: /* The general purpose implementation of while starts here */ while (1) { - int boolean, retval; + int local_boolean, retval; if ((retval = Jim_GetBoolFromExpr(interp, argv[1], - &boolean)) != JIM_OK) + &local_boolean)) != JIM_OK) return retval; - if (!boolean) break; + if (!local_boolean) break; if ((retval = Jim_EvalObj(interp, argv[2])) != JIM_OK) { switch (retval) { case JIM_BREAK: @@ -9959,7 +9944,7 @@ out: } /* [for] */ -static int Jim_ForCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ForCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int retval; @@ -9980,7 +9965,7 @@ static int Jim_ForCoreCommand(Jim_Interp *interp, int argc, { ScriptObj *initScript, *incrScript; ExprByteCode *expr; - jim_wide start, stop, currentVal; + jim_wide start, stop=0, currentVal; unsigned jim_wide procEpoch = interp->procEpoch; Jim_Obj *varNamePtr, *stopVarNamePtr = NULL, *objPtr; int cmpType; @@ -10138,13 +10123,13 @@ evalstart: if ((retval = Jim_EvalObj(interp, argv[1])) != JIM_OK) return retval; while (1) { - int boolean; + int local_boolean; testcond: /* Test the condition */ - if ((retval = Jim_GetBoolFromExpr(interp, argv[2], &boolean)) + if ((retval = Jim_GetBoolFromExpr(interp, argv[2], &local_boolean)) != JIM_OK) return retval; - if (!boolean) break; + if (!local_boolean) break; /* Eval body */ if ((retval = Jim_EvalObj(interp, argv[4])) != JIM_OK) { switch (retval) { @@ -10179,7 +10164,7 @@ out: } /* foreach + lmap implementation. */ -static int JimForeachMapHelper(Jim_Interp *interp, int argc, +static int JimForeachMapHelper(Jim_Interp *interp, int argc, Jim_Obj *const *argv, int doMap) { int result = JIM_ERR, i, nbrOfLists, *listsIdx, *listsEnd; @@ -10217,7 +10202,7 @@ static int JimForeachMapHelper(Jim_Interp *interp, int argc, if (count > nbrOfLoops) nbrOfLoops = count; } - for (; nbrOfLoops-- > 0; ) { + for (; nbrOfLoops-- > 0;) { for (i = 0; i < nbrOfLists; ++i) { int varIdx = 0, var = i * 2; while (varIdx < listsEnd[var]) { @@ -10234,7 +10219,7 @@ static int JimForeachMapHelper(Jim_Interp *interp, int argc, Jim_SetResultString(interp, "couldn't set loop variable: ", -1); goto err; } - ++listsIdx[i]; /* Remember next iterator of current list */ + ++listsIdx[i]; /* Remember next iterator of current list */ } else if (Jim_SetVariable(interp, varName, emptyStr) != JIM_OK) { Jim_SetResultString(interp, "couldn't set loop variable: ", -1); goto err; @@ -10272,30 +10257,30 @@ err: } /* [foreach] */ -static int Jim_ForeachCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ForeachCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { return JimForeachMapHelper(interp, argc, argv, 0); } /* [lmap] */ -static int Jim_LmapCoreCommand(Jim_Interp *interp, int argc, +static int Jim_LmapCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { return JimForeachMapHelper(interp, argc, argv, 1); } /* [if] */ -static int Jim_IfCoreCommand(Jim_Interp *interp, int argc, +static int Jim_IfCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { - int boolean, retval, current = 1, falsebody = 0; + int local_boolean, retval, current = 1, falsebody = 0; if (argc >= 3) { while (1) { /* Far not enough arguments given! */ if (current >= argc) goto err; if ((retval = Jim_GetBoolFromExpr(interp, - argv[current++], &boolean)) + argv[current++], &local_boolean)) != JIM_OK) return retval; /* There lacks something, isn't it? */ @@ -10304,11 +10289,11 @@ static int Jim_IfCoreCommand(Jim_Interp *interp, int argc, "then")) current++; /* Tsk tsk, no then-clause? */ if (current >= argc) goto err; - if (boolean) + if (local_boolean) return Jim_EvalObj(interp, argv[current]); /* Ok: no else-clause follows */ if (++current >= argc) { - Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); + Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); return JIM_OK; } falsebody = current++; @@ -10337,7 +10322,7 @@ err: enum {SWITCH_EXACT, SWITCH_GLOB, SWITCH_RE, SWITCH_CMD, SWITCH_UNKNOWN}; /* [switch] */ -static int Jim_SwitchCoreCommand(Jim_Interp *interp, int argc, +static int Jim_SwitchCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int retcode = JIM_ERR, matchOpt = SWITCH_EXACT, opt = 1, patCount, i; @@ -10353,13 +10338,13 @@ static int Jim_SwitchCoreCommand(Jim_Interp *interp, int argc, else if (strncmp(option, "-regexp", 2) == 0) matchOpt = SWITCH_RE; else if (strncmp(option, "-command", 2) == 0) { matchOpt = SWITCH_CMD; if ((argc - opt) < 2) goto wrongnumargs; - command = argv[++opt]; + command = argv[++opt]; } else { Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); Jim_AppendStrings(interp, Jim_GetResult(interp), "bad option \"", option, "\": must be -exact, -glob, " "-regexp, -command procname or --", 0); - goto err; + goto err; } if ((argc - opt) < 2) goto wrongnumargs; } @@ -10445,11 +10430,11 @@ wrongnumargs: "pattern body ... ?default body? or " "{pattern body ?pattern body ...?}"); err: - return retcode; + return retcode; } /* [list] */ -static int Jim_ListCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ListCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_Obj *listObjPtr; @@ -10460,12 +10445,12 @@ static int Jim_ListCoreCommand(Jim_Interp *interp, int argc, } /* [lindex] */ -static int Jim_LindexCoreCommand(Jim_Interp *interp, int argc, +static int Jim_LindexCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_Obj *objPtr, *listObjPtr; int i; - int index; + int index_t; if (argc < 3) { Jim_WrongNumArgs(interp, 1, argv, "list index ?...?"); @@ -10475,11 +10460,11 @@ static int Jim_LindexCoreCommand(Jim_Interp *interp, int argc, Jim_IncrRefCount(objPtr); for (i = 2; i < argc; i++) { listObjPtr = objPtr; - if (Jim_GetIndex(interp, argv[i], &index) != JIM_OK) { + if (Jim_GetIndex(interp, argv[i], &index_t) != JIM_OK) { Jim_DecrRefCount(interp, listObjPtr); return JIM_ERR; } - if (Jim_ListIndex(interp, listObjPtr, index, &objPtr, + if (Jim_ListIndex(interp, listObjPtr, index_t, &objPtr, JIM_NONE) != JIM_OK) { /* Returns an empty object if the index * is out of range. */ @@ -10496,7 +10481,7 @@ static int Jim_LindexCoreCommand(Jim_Interp *interp, int argc, } /* [llength] */ -static int Jim_LlengthCoreCommand(Jim_Interp *interp, int argc, +static int Jim_LlengthCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int len; @@ -10511,7 +10496,7 @@ static int Jim_LlengthCoreCommand(Jim_Interp *interp, int argc, } /* [lappend] */ -static int Jim_LappendCoreCommand(Jim_Interp *interp, int argc, +static int Jim_LappendCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_Obj *listObjPtr; @@ -10545,10 +10530,10 @@ static int Jim_LappendCoreCommand(Jim_Interp *interp, int argc, } /* [linsert] */ -static int Jim_LinsertCoreCommand(Jim_Interp *interp, int argc, +static int Jim_LinsertCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { - int index, len; + int index_t, len; Jim_Obj *listPtr; if (argc < 4) { @@ -10559,14 +10544,14 @@ static int Jim_LinsertCoreCommand(Jim_Interp *interp, int argc, listPtr = argv[1]; if (Jim_IsShared(listPtr)) listPtr = Jim_DuplicateObj(interp, listPtr); - if (Jim_GetIndex(interp, argv[2], &index) != JIM_OK) + if (Jim_GetIndex(interp, argv[2], &index_t) != JIM_OK) goto err; Jim_ListLength(interp, listPtr, &len); - if (index >= len) - index = len; - else if (index < 0) - index = len + index + 1; - Jim_ListInsertElements(interp, listPtr, index, argc-3, &argv[3]); + if (index_t >= len) + index_t = len; + else if (index_t < 0) + index_t = len + index_t + 1; + Jim_ListInsertElements(interp, listPtr, index_t, argc-3, &argv[3]); Jim_SetResult(interp, listPtr); return JIM_OK; err: @@ -10577,7 +10562,7 @@ err: } /* [lset] */ -static int Jim_LsetCoreCommand(Jim_Interp *interp, int argc, +static int Jim_LsetCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc < 3) { @@ -10635,7 +10620,7 @@ static int Jim_LsortCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const arg } /* [append] */ -static int Jim_AppendCoreCommand(Jim_Interp *interp, int argc, +static int Jim_AppendCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_Obj *stringObjPtr; @@ -10675,7 +10660,7 @@ static int Jim_AppendCoreCommand(Jim_Interp *interp, int argc, } /* [debug] */ -static int Jim_DebugCoreCommand(Jim_Interp *interp, int argc, +static int Jim_DebugCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { const char *options[] = { @@ -10832,7 +10817,7 @@ static int Jim_DebugCoreCommand(Jim_Interp *interp, int argc, } /* [eval] */ -static int Jim_EvalCoreCommand(Jim_Interp *interp, int argc, +static int Jim_EvalCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc == 2) { @@ -10853,7 +10838,7 @@ static int Jim_EvalCoreCommand(Jim_Interp *interp, int argc, } /* [uplevel] */ -static int Jim_UplevelCoreCommand(Jim_Interp *interp, int argc, +static int Jim_UplevelCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc >= 2) { @@ -10910,7 +10895,7 @@ static int Jim_UplevelCoreCommand(Jim_Interp *interp, int argc, } /* [expr] */ -static int Jim_ExprCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ExprCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_Obj *exprResultPtr; @@ -10936,7 +10921,7 @@ static int Jim_ExprCoreCommand(Jim_Interp *interp, int argc, } /* [break] */ -static int Jim_BreakCoreCommand(Jim_Interp *interp, int argc, +static int Jim_BreakCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc != 1) { @@ -10958,7 +10943,7 @@ static int Jim_ContinueCoreCommand(Jim_Interp *interp, int argc, } /* [return] */ -static int Jim_ReturnCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ReturnCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc == 1) { @@ -10994,7 +10979,7 @@ static int Jim_TailcallCoreCommand(Jim_Interp *interp, int argc, } /* [proc] */ -static int Jim_ProcCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ProcCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int argListLen; @@ -11010,8 +10995,8 @@ static int Jim_ProcCoreCommand(Jim_Interp *interp, int argc, if (argListLen) { const char *str; int len; - Jim_Obj *argPtr; - + Jim_Obj *argPtr=NULL; + /* Check for 'args' and adjust arityMin and arityMax if necessary */ Jim_ListIndex(interp, argv[2], argListLen-1, &argPtr, JIM_NONE); str = Jim_GetString(argPtr, &len); @@ -11022,7 +11007,6 @@ static int Jim_ProcCoreCommand(Jim_Interp *interp, int argc, /* Check for default arguments and reduce arityMin if necessary */ while (arityMin > 1) { - int len; Jim_ListIndex(interp, argv[2], arityMin - 2, &argPtr, JIM_NONE); Jim_ListLength(interp, argPtr, &len); if (len != 2) { @@ -11042,7 +11026,7 @@ static int Jim_ProcCoreCommand(Jim_Interp *interp, int argc, } /* [concat] */ -static int Jim_ConcatCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ConcatCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_SetResult(interp, Jim_ConcatObj(interp, argc-1, argv + 1)); @@ -11050,7 +11034,7 @@ static int Jim_ConcatCoreCommand(Jim_Interp *interp, int argc, } /* [upvar] */ -static int Jim_UpvarCoreCommand(Jim_Interp *interp, int argc, +static int Jim_UpvarCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { const char *str; @@ -11059,7 +11043,7 @@ static int Jim_UpvarCoreCommand(Jim_Interp *interp, int argc, /* Lookup the target frame pointer */ str = Jim_GetString(argv[1], NULL); - if (argc > 3 && + if (argc > 3 && ((str[0] >= '0' && str[0] <= '9') || str[0] == '#')) { if (Jim_GetCallFrameByLevel(interp, argv[1], @@ -11086,7 +11070,7 @@ static int Jim_UpvarCoreCommand(Jim_Interp *interp, int argc, } /* [global] */ -static int Jim_GlobalCoreCommand(Jim_Interp *interp, int argc, +static int Jim_GlobalCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int i; @@ -11115,7 +11099,7 @@ static Jim_Obj *JimStringMap(Jim_Interp *interp, Jim_Obj *mapListObjPtr, Jim_Obj **value; int *keyLen, strLen, i; Jim_Obj *resultObjPtr; - + Jim_ListLength(interp, mapListObjPtr, &numMaps); if (numMaps % 2) { Jim_SetResultString(interp, @@ -11129,7 +11113,7 @@ static Jim_Obj *JimStringMap(Jim_Interp *interp, Jim_Obj *mapListObjPtr, value = Jim_Alloc(sizeof(Jim_Obj*)*numMaps); resultObjPtr = Jim_NewStringObj(interp, "", 0); for (i = 0; i < numMaps; i++) { - Jim_Obj *eleObjPtr; + Jim_Obj *eleObjPtr=NULL; Jim_ListIndex(interp, mapListObjPtr, i*2, &eleObjPtr, JIM_NONE); key[i] = Jim_GetString(eleObjPtr, &keyLen[i]); @@ -11174,7 +11158,7 @@ static Jim_Obj *JimStringMap(Jim_Interp *interp, Jim_Obj *mapListObjPtr, } /* [string] */ -static int Jim_StringCoreCommand(Jim_Interp *interp, int argc, +static int Jim_StringCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int option; @@ -11296,27 +11280,27 @@ static int Jim_StringCoreCommand(Jim_Interp *interp, int argc, Jim_SetResult(interp, objPtr); return JIM_OK; } else if (option == OPT_INDEX) { - int index, len; + int index_t, len; const char *str; if (argc != 4) { Jim_WrongNumArgs(interp, 2, argv, "string index"); return JIM_ERR; } - if (Jim_GetIndex(interp, argv[3], &index) != JIM_OK) + if (Jim_GetIndex(interp, argv[3], &index_t) != JIM_OK) return JIM_ERR; str = Jim_GetString(argv[2], &len); - if (index != INT_MIN && index != INT_MAX) - index = JimRelToAbsIndex(len, index); - if (index < 0 || index >= len) { + if (index_t != INT_MIN && index_t != INT_MAX) + index_t = JimRelToAbsIndex(len, index_t); + if (index_t < 0 || index_t >= len) { Jim_SetResult(interp, Jim_NewEmptyStringObj(interp)); return JIM_OK; } else { - Jim_SetResult(interp, Jim_NewStringObj(interp, str + index, 1)); + Jim_SetResult(interp, Jim_NewStringObj(interp, str + index_t, 1)); return JIM_OK; } } else if (option == OPT_FIRST) { - int index = 0, l1, l2; + int index_t = 0, l1, l2; const char *s1, *s2; if (argc != 4 && argc != 5) { @@ -11326,12 +11310,12 @@ static int Jim_StringCoreCommand(Jim_Interp *interp, int argc, s1 = Jim_GetString(argv[2], &l1); s2 = Jim_GetString(argv[3], &l2); if (argc == 5) { - if (Jim_GetIndex(interp, argv[4], &index) != JIM_OK) + if (Jim_GetIndex(interp, argv[4], &index_t) != JIM_OK) return JIM_ERR; - index = JimRelToAbsIndex(l2, index); + index_t = JimRelToAbsIndex(l2, index_t); } Jim_SetResult(interp, Jim_NewIntObj(interp, - JimStringFirst(s1, l1, s2, l2, index))); + JimStringFirst(s1, l1, s2, l2, index_t))); return JIM_OK; } else if (option == OPT_TOLOWER) { if (argc != 3) { @@ -11350,7 +11334,7 @@ static int Jim_StringCoreCommand(Jim_Interp *interp, int argc, } /* [time] */ -static int Jim_TimeCoreCommand(Jim_Interp *interp, int argc, +static int Jim_TimeCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { long i, count = 1; @@ -11383,7 +11367,7 @@ static int Jim_TimeCoreCommand(Jim_Interp *interp, int argc, } /* [exit] */ -static int Jim_ExitCoreCommand(Jim_Interp *interp, int argc, +static int Jim_ExitCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { long exitCode = 0; @@ -11401,7 +11385,7 @@ static int Jim_ExitCoreCommand(Jim_Interp *interp, int argc, } /* [catch] */ -static int Jim_CatchCoreCommand(Jim_Interp *interp, int argc, +static int Jim_CatchCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int exitCode = 0; @@ -11421,7 +11405,7 @@ static int Jim_CatchCoreCommand(Jim_Interp *interp, int argc, } /* [ref] */ -static int Jim_RefCoreCommand(Jim_Interp *interp, int argc, +static int Jim_RefCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc != 3 && argc != 4) { @@ -11438,7 +11422,7 @@ static int Jim_RefCoreCommand(Jim_Interp *interp, int argc, } /* [getref] */ -static int Jim_GetrefCoreCommand(Jim_Interp *interp, int argc, +static int Jim_GetrefCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_Reference *refPtr; @@ -11454,7 +11438,7 @@ static int Jim_GetrefCoreCommand(Jim_Interp *interp, int argc, } /* [setref] */ -static int Jim_SetrefCoreCommand(Jim_Interp *interp, int argc, +static int Jim_SetrefCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { Jim_Reference *refPtr; @@ -11473,7 +11457,7 @@ static int Jim_SetrefCoreCommand(Jim_Interp *interp, int argc, } /* [collect] */ -static int Jim_CollectCoreCommand(Jim_Interp *interp, int argc, +static int Jim_CollectCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc != 1) { @@ -11485,7 +11469,7 @@ static int Jim_CollectCoreCommand(Jim_Interp *interp, int argc, } /* [finalize] reference ?newValue? */ -static int Jim_FinalizeCoreCommand(Jim_Interp *interp, int argc, +static int Jim_FinalizeCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc != 2 && argc != 3) { @@ -11511,7 +11495,7 @@ static int Jim_FinalizeCoreCommand(Jim_Interp *interp, int argc, /* [info references] (list of all the references/finalizers) */ /* [rename] */ -static int Jim_RenameCoreCommand(Jim_Interp *interp, int argc, +static int Jim_RenameCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { const char *oldName, *newName; @@ -11533,7 +11517,7 @@ static int Jim_RenameCoreCommand(Jim_Interp *interp, int argc, } /* [dict] */ -static int Jim_DictCoreCommand(Jim_Interp *interp, int argc, +static int Jim_DictCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int option; @@ -11607,7 +11591,7 @@ static int Jim_DictCoreCommand(Jim_Interp *interp, int argc, } /* [load] */ -static int Jim_LoadCoreCommand(Jim_Interp *interp, int argc, +static int Jim_LoadCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { if (argc < 2) { @@ -11618,7 +11602,7 @@ static int Jim_LoadCoreCommand(Jim_Interp *interp, int argc, } /* [subst] */ -static int Jim_SubstCoreCommand(Jim_Interp *interp, int argc, +static int Jim_SubstCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int i, flags = 0; @@ -11656,7 +11640,7 @@ static int Jim_SubstCoreCommand(Jim_Interp *interp, int argc, } /* [info] */ -static int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, +static int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int cmd, result = JIM_OK; @@ -11666,7 +11650,7 @@ static int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, }; enum {INFO_BODY, INFO_COMMANDS, INFO_EXISTS, INFO_GLOBALS, INFO_LEVEL, INFO_LOCALS, INFO_VARS, INFO_VERSION, INFO_COMPLETE, INFO_ARGS, INFO_HOSTNAME}; - + if (argc < 2) { Jim_WrongNumArgs(interp, 1, argv, "command ?args ...?"); return JIM_ERR; @@ -11675,7 +11659,7 @@ static int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, != JIM_OK) { return JIM_ERR; } - + if (cmd == INFO_COMMANDS) { if (argc != 2 && argc != 3) { Jim_WrongNumArgs(interp, 2, argv, "?pattern?"); @@ -11747,7 +11731,7 @@ static int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, Jim_SetResult(interp, cmdPtr->argListObjPtr); } else if (cmd == INFO_VERSION) { char buf[(JIM_INTEGER_SPACE * 2) + 1]; - sprintf(buf, "%d.%d", + sprintf(buf, "%d.%d", JIM_VERSION / 100, JIM_VERSION % 100); Jim_SetResultString(interp, buf, -1); } else if (cmd == INFO_COMPLETE) { @@ -11770,7 +11754,7 @@ static int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, } /* [split] */ -static int Jim_SplitCoreCommand(Jim_Interp *interp, int argc, +static int Jim_SplitCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { const char *str, *splitChars, *noMatchStart; @@ -11819,7 +11803,7 @@ static int Jim_SplitCoreCommand(Jim_Interp *interp, int argc, memset(objCache, 0, sizeof(objCache)); for (i = 0; i < strLen; i++) { int c = u[i]; - + if (objCache[c] == NULL) objCache[c] = Jim_NewStringObj(interp, (char*)u + i, 1); Jim_ListAppendElement(interp, resObjPtr, objCache[c]); @@ -11830,7 +11814,7 @@ static int Jim_SplitCoreCommand(Jim_Interp *interp, int argc, } /* [join] */ -static int Jim_JoinCoreCommand(Jim_Interp *interp, int argc, +static int Jim_JoinCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { const char *joinStr; @@ -11852,7 +11836,7 @@ static int Jim_JoinCoreCommand(Jim_Interp *interp, int argc, resObjPtr = Jim_NewStringObj(interp, NULL, 0); /* Split */ for (i = 0; i < listLen; i++) { - Jim_Obj *objPtr; + Jim_Obj *objPtr=NULL; Jim_ListIndex(interp, argv[1], i, &objPtr, JIM_NONE); Jim_AppendObj(interp, resObjPtr, objPtr); @@ -11891,7 +11875,7 @@ static int Jim_ScanCoreCommand(Jim_Interp *interp, int argc, if (argc < 3) { Jim_WrongNumArgs(interp, 1, argv, "string formatString ?varName ...?"); return JIM_ERR; - } + } if (argv[2]->typePtr != &scanFmtStringObjType) SetScanFmtFromAny(interp, argv[2]); if (FormatGetError(argv[2]) != 0) { @@ -11900,20 +11884,20 @@ static int Jim_ScanCoreCommand(Jim_Interp *interp, int argc, } if (argc > 3) { int maxPos = FormatGetMaxPos(argv[2]); - int count = FormatGetCnvCount(argv[2]); + int arg_count = FormatGetCnvCount(argv[2]); if (maxPos > argc-3) { Jim_SetResultString(interp, "\"%n$\" argument index out of range", -1); return JIM_ERR; - } else if (count != 0 && count < argc-3) { + } else if (arg_count != 0 && arg_count < argc-3) { Jim_SetResultString(interp, "variable is not assigned by any " "conversion specifiers", -1); return JIM_ERR; - } else if (count > argc-3) { + } else if (arg_count > argc-3) { Jim_SetResultString(interp, "different numbers of variable names and " "field specifiers", -1); return JIM_ERR; } - } + } listPtr = Jim_ScanString(interp, argv[1], argv[2], JIM_ERRMSG); if (listPtr == 0) return JIM_ERR; @@ -12116,7 +12100,7 @@ static int Jim_RangeCoreCommand(Jim_Interp *interp, int argc, static int Jim_RandCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { - jim_wide min = 0, max, len, maxMul; + jim_wide min = 0, max =0, len, maxMul; if (argc < 1 || argc > 3) { Jim_WrongNumArgs(interp, 1, argv, "?min? max"); @@ -12150,7 +12134,7 @@ static int Jim_RandCoreCommand(Jim_Interp *interp, int argc, } /* [package] */ -static int Jim_PackageCoreCommand(Jim_Interp *interp, int argc, +static int Jim_PackageCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int option; @@ -12276,7 +12260,7 @@ static void Jim_RegisterCoreProcedures(Jim_Interp *interp) "proc lambdaFinalizer {name val} {\n" " rename $name {}\n" "}\n" - ); +); } void Jim_RegisterCoreCommands(Jim_Interp *interp) @@ -12284,7 +12268,7 @@ void Jim_RegisterCoreCommands(Jim_Interp *interp) int i = 0; while (Jim_CoreCommandsTable[i].name != NULL) { - Jim_CreateCommand(interp, + Jim_CreateCommand(interp, Jim_CoreCommandsTable[i].name, Jim_CoreCommandsTable[i].cmdProc, NULL, NULL); @@ -12307,8 +12291,8 @@ void Jim_PrintErrorMessage(Jim_Interp *interp) Jim_fprintf(interp,interp->cookie_stderr, "%s" JIM_NL, Jim_GetString(interp->result, NULL)); Jim_ListLength(interp, interp->stackTrace, &len); - for (i = len-3; i >= 0; i-= 3) { - Jim_Obj *objPtr; + for (i = 0; i < len; i += 3) { + Jim_Obj *objPtr=NULL; const char *proc, *file, *line; Jim_ListIndex(interp, interp->stackTrace, i, &objPtr, JIM_NONE); @@ -12320,16 +12304,16 @@ void Jim_PrintErrorMessage(Jim_Interp *interp) JIM_NONE); line = Jim_GetString(objPtr, NULL); if (*proc) { - Jim_fprintf( interp, interp->cookie_stderr, + Jim_fprintf(interp, interp->cookie_stderr, "in procedure '%s' ", proc); } if (*file) { - Jim_fprintf( interp, interp->cookie_stderr, + Jim_fprintf(interp, interp->cookie_stderr, "called at file \"%s\", line %s", file, line); } if (*file || *proc) { - Jim_fprintf( interp, interp->cookie_stderr, JIM_NL); + Jim_fprintf(interp, interp->cookie_stderr, JIM_NL); } } } @@ -12357,8 +12341,8 @@ int Jim_InteractivePrompt(Jim_Interp *interp) else Jim_fprintf(interp,interp->cookie_stdout, "[%d] . ", retcode); } else - Jim_fprintf( interp, interp->cookie_stdout, ". "); - Jim_fflush( interp, interp->cookie_stdout); + Jim_fprintf(interp, interp->cookie_stdout, ". "); + Jim_fflush(interp, interp->cookie_stdout); scriptObjPtr = Jim_NewStringObj(interp, "", 0); Jim_IncrRefCount(scriptObjPtr); while (1) { @@ -12366,7 +12350,7 @@ int Jim_InteractivePrompt(Jim_Interp *interp) char state; int len; - if ( Jim_fgets(interp, buf, 1024, interp->cookie_stdin) == NULL) { + if (Jim_fgets(interp, buf, 1024, interp->cookie_stdin) == NULL) { Jim_DecrRefCount(interp, scriptObjPtr); goto out; } @@ -12374,8 +12358,8 @@ int Jim_InteractivePrompt(Jim_Interp *interp) str = Jim_GetString(scriptObjPtr, &len); if (Jim_ScriptIsComplete(str, len, &state)) break; - Jim_fprintf( interp, interp->cookie_stdout, "%c> ", state); - Jim_fflush( interp, interp->cookie_stdout); + Jim_fprintf(interp, interp->cookie_stdout, "%c> ", state); + Jim_fflush(interp, interp->cookie_stdout); } retcode = Jim_EvalObj(interp, scriptObjPtr); Jim_DecrRefCount(interp, scriptObjPtr); @@ -12386,8 +12370,8 @@ int Jim_InteractivePrompt(Jim_Interp *interp) exit(Jim_GetExitCode(interp)); } else { if (reslen) { - Jim_fwrite( interp, result, 1, reslen, interp->cookie_stdout); - Jim_fprintf( interp,interp->cookie_stdout, JIM_NL); + Jim_fwrite(interp, result, 1, reslen, interp->cookie_stdout); + Jim_fprintf(interp,interp->cookie_stdout, JIM_NL); } } } @@ -12399,66 +12383,66 @@ out: * Jim's idea of STDIO.. * ---------------------------------------------------------------------------*/ -int Jim_fprintf( Jim_Interp *interp, void *cookie, const char *fmt, ... ) +int Jim_fprintf(Jim_Interp *interp, void *cookie, const char *fmt, ...) { int r; va_list ap; va_start(ap,fmt); - r = Jim_vfprintf( interp, cookie, fmt,ap ); + r = Jim_vfprintf(interp, cookie, fmt,ap); va_end(ap); return r; } -int Jim_vfprintf( Jim_Interp *interp, void *cookie, const char *fmt, va_list ap ) +int Jim_vfprintf(Jim_Interp *interp, void *cookie, const char *fmt, va_list ap) { - if ( (interp == NULL) || (interp->cb_vfprintf == NULL) ){ + if ((interp == NULL) || (interp->cb_vfprintf == NULL)) { errno = ENOTSUP; return -1; } - return (*(interp->cb_vfprintf))( cookie, fmt, ap ); + return (*(interp->cb_vfprintf))(cookie, fmt, ap); } -size_t Jim_fwrite( Jim_Interp *interp, const void *ptr, size_t size, size_t n, void *cookie ) +size_t Jim_fwrite(Jim_Interp *interp, const void *ptr, size_t size, size_t n, void *cookie) { - if ( (interp == NULL) || (interp->cb_fwrite == NULL) ){ + if ((interp == NULL) || (interp->cb_fwrite == NULL)) { errno = ENOTSUP; return 0; } - return (*(interp->cb_fwrite))( ptr, size, n, cookie); + return (*(interp->cb_fwrite))(ptr, size, n, cookie); } -size_t Jim_fread( Jim_Interp *interp, void *ptr, size_t size, size_t n, void *cookie ) +size_t Jim_fread(Jim_Interp *interp, void *ptr, size_t size, size_t n, void *cookie) { - if ( (interp == NULL) || (interp->cb_fread == NULL) ){ + if ((interp == NULL) || (interp->cb_fread == NULL)) { errno = ENOTSUP; return 0; } - return (*(interp->cb_fread))( ptr, size, n, cookie); + return (*(interp->cb_fread))(ptr, size, n, cookie); } -int Jim_fflush( Jim_Interp *interp, void *cookie ) +int Jim_fflush(Jim_Interp *interp, void *cookie) { - if ( (interp == NULL) || (interp->cb_fflush == NULL) ){ + if ((interp == NULL) || (interp->cb_fflush == NULL)) { /* pretend all is well */ return 0; } - return (*(interp->cb_fflush))( cookie ); + return (*(interp->cb_fflush))(cookie); } -char* Jim_fgets( Jim_Interp *interp, char *s, int size, void *cookie ) +char* Jim_fgets(Jim_Interp *interp, char *s, int size, void *cookie) { - if ( (interp == NULL) || (interp->cb_fgets == NULL) ){ + if ((interp == NULL) || (interp->cb_fgets == NULL)) { errno = ENOTSUP; return NULL; } - return (*(interp->cb_fgets))( s, size, cookie ); + return (*(interp->cb_fgets))(s, size, cookie); } Jim_Nvp * -Jim_Nvp_name2value_simple( const Jim_Nvp *p, const char *name ) +Jim_Nvp_name2value_simple(const Jim_Nvp *p, const char *name) { - while ( p->name ){ - if ( 0 == strcmp( name, p->name ) ){ + while (p->name) { + if (0 == strcmp(name, p->name)) { break; } p++; @@ -12467,10 +12451,10 @@ Jim_Nvp_name2value_simple( const Jim_Nvp *p, const char *name ) } Jim_Nvp * -Jim_Nvp_name2value_nocase_simple( const Jim_Nvp *p, const char *name ) +Jim_Nvp_name2value_nocase_simple(const Jim_Nvp *p, const char *name) { - while ( p->name ){ - if ( 0 == strcasecmp( name, p->name ) ){ + while (p->name) { + if (0 == strcasecmp(name, p->name)) { break; } p++; @@ -12479,32 +12463,32 @@ Jim_Nvp_name2value_nocase_simple( const Jim_Nvp *p, const char *name ) } int -Jim_Nvp_name2value_obj( Jim_Interp *interp, - const Jim_Nvp *p, - Jim_Obj *o, - Jim_Nvp **result ) +Jim_Nvp_name2value_obj(Jim_Interp *interp, + const Jim_Nvp *p, + Jim_Obj *o, + Jim_Nvp **result) { - return Jim_Nvp_name2value( interp, p, Jim_GetString( o, NULL ), result ); + return Jim_Nvp_name2value(interp, p, Jim_GetString(o, NULL), result); } - -int -Jim_Nvp_name2value( Jim_Interp *interp, - const Jim_Nvp *_p, - const char *name, + +int +Jim_Nvp_name2value(Jim_Interp *interp, + const Jim_Nvp *_p, + const char *name, Jim_Nvp **result) { const Jim_Nvp *p; - p = Jim_Nvp_name2value_simple( _p, name ); + p = Jim_Nvp_name2value_simple(_p, name); /* result */ - if ( result ){ + if (result) { *result = (Jim_Nvp *)(p); } - + /* found? */ - if ( p->name ){ + if (p->name) { return JIM_OK; } else { return JIM_ERR; @@ -12512,23 +12496,23 @@ Jim_Nvp_name2value( Jim_Interp *interp, } int -Jim_Nvp_name2value_obj_nocase( Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **puthere ) +Jim_Nvp_name2value_obj_nocase(Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **puthere) { - return Jim_Nvp_name2value_nocase( interp, p, Jim_GetString( o, NULL ), puthere ); + return Jim_Nvp_name2value_nocase(interp, p, Jim_GetString(o, NULL), puthere); } int -Jim_Nvp_name2value_nocase( Jim_Interp *interp, const Jim_Nvp *_p, const char *name, Jim_Nvp **puthere ) +Jim_Nvp_name2value_nocase(Jim_Interp *interp, const Jim_Nvp *_p, const char *name, Jim_Nvp **puthere) { const Jim_Nvp *p; - p = Jim_Nvp_name2value_nocase_simple( _p, name ); + p = Jim_Nvp_name2value_nocase_simple(_p, name); - if ( puthere ){ + if (puthere) { *puthere = (Jim_Nvp *)(p); } /* found */ - if ( p->name ){ + if (p->name) { return JIM_OK; } else { return JIM_ERR; @@ -12536,25 +12520,25 @@ Jim_Nvp_name2value_nocase( Jim_Interp *interp, const Jim_Nvp *_p, const char *na } -int -Jim_Nvp_value2name_obj( Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **result ) +int +Jim_Nvp_value2name_obj(Jim_Interp *interp, const Jim_Nvp *p, Jim_Obj *o, Jim_Nvp **result) { int e;; jim_wide w; - e = Jim_GetWide( interp, o, &w ); - if ( e != JIM_OK ){ + e = Jim_GetWide(interp, o, &w); + if (e != JIM_OK) { return e; } - return Jim_Nvp_value2name( interp, p, w, result ); + return Jim_Nvp_value2name(interp, p, w, result); } Jim_Nvp * -Jim_Nvp_value2name_simple( const Jim_Nvp *p, int value ) +Jim_Nvp_value2name_simple(const Jim_Nvp *p, int value) { - while ( p->name ){ - if ( value == p->value ){ + while (p->name) { + if (value == p->value) { break; } p++; @@ -12563,18 +12547,18 @@ Jim_Nvp_value2name_simple( const Jim_Nvp *p, int value ) } -int -Jim_Nvp_value2name( Jim_Interp *interp, const Jim_Nvp *_p, int value, Jim_Nvp **result ) +int +Jim_Nvp_value2name(Jim_Interp *interp, const Jim_Nvp *_p, int value, Jim_Nvp **result) { const Jim_Nvp *p; - p = Jim_Nvp_value2name_simple( _p, value ); + p = Jim_Nvp_value2name_simple(_p, value); - if ( result ){ + if (result) { *result = (Jim_Nvp *)(p); } - if ( p->name ){ + if (p->name) { return JIM_OK; } else { return JIM_ERR; @@ -12583,9 +12567,9 @@ Jim_Nvp_value2name( Jim_Interp *interp, const Jim_Nvp *_p, int value, Jim_Nvp ** int -Jim_GetOpt_Setup( Jim_GetOptInfo *p, Jim_Interp *interp, int argc, Jim_Obj * const * argv) +Jim_GetOpt_Setup(Jim_GetOptInfo *p, Jim_Interp *interp, int argc, Jim_Obj * const * argv) { - memset( p, 0, sizeof(*p) ); + memset(p, 0, sizeof(*p)); p->interp = interp; p->argc = argc; p->argv = argv; @@ -12594,37 +12578,37 @@ Jim_GetOpt_Setup( Jim_GetOptInfo *p, Jim_Interp *interp, int argc, Jim_Obj * con } void -Jim_GetOpt_Debug( Jim_GetOptInfo *p ) +Jim_GetOpt_Debug(Jim_GetOptInfo *p) { int x; - Jim_fprintf( p->interp, p->interp->cookie_stderr, "---args---\n"); - for ( x = 0 ; x < p->argc ; x++ ){ - Jim_fprintf( p->interp, p->interp->cookie_stderr, - "%2d) %s\n", - x, - Jim_GetString( p->argv[x], NULL ) ); + Jim_fprintf(p->interp, p->interp->cookie_stderr, "---args---\n"); + for (x = 0 ; x < p->argc ; x++) { + Jim_fprintf(p->interp, p->interp->cookie_stderr, + "%2d) %s\n", + x, + Jim_GetString(p->argv[x], NULL)); } - Jim_fprintf( p->interp, p->interp->cookie_stderr, "-------\n"); + Jim_fprintf(p->interp, p->interp->cookie_stderr, "-------\n"); } int -Jim_GetOpt_Obj( Jim_GetOptInfo *goi, Jim_Obj **puthere ) +Jim_GetOpt_Obj(Jim_GetOptInfo *goi, Jim_Obj **puthere) { Jim_Obj *o; - - o = NULL; // failure - if ( goi->argc ){ - // success + + o = NULL; // failure + if (goi->argc) { + // success o = goi->argv[0]; goi->argc -= 1; goi->argv += 1; } - if ( puthere ){ + if (puthere) { *puthere = o; } - if ( o != NULL ){ + if (o != NULL) { return JIM_OK; } else { return JIM_ERR; @@ -12632,17 +12616,17 @@ Jim_GetOpt_Obj( Jim_GetOptInfo *goi, Jim_Obj **puthere ) } int -Jim_GetOpt_String( Jim_GetOptInfo *goi, char **puthere, int *len ) +Jim_GetOpt_String(Jim_GetOptInfo *goi, char **puthere, int *len) { int r; Jim_Obj *o; const char *cp; - r = Jim_GetOpt_Obj( goi, &o ); - if ( r == JIM_OK ){ - cp = Jim_GetString( o, len ); - if ( puthere ){ + r = Jim_GetOpt_Obj(goi, &o); + if (r == JIM_OK) { + cp = Jim_GetString(o, len); + if (puthere) { /* remove const */ *puthere = (char *)(cp); } @@ -12651,90 +12635,90 @@ Jim_GetOpt_String( Jim_GetOptInfo *goi, char **puthere, int *len ) } int -Jim_GetOpt_Double( Jim_GetOptInfo *goi, double *puthere ) +Jim_GetOpt_Double(Jim_GetOptInfo *goi, double *puthere) { int r; Jim_Obj *o; double _safe; - - if ( puthere == NULL ){ + + if (puthere == NULL) { puthere = &_safe; } - r = Jim_GetOpt_Obj( goi, &o ); - if ( r == JIM_OK ){ - r = Jim_GetDouble( goi->interp, o, puthere ); - if ( r != JIM_OK ){ - Jim_SetResult_sprintf( goi->interp, - "not a number: %s", - Jim_GetString( o, NULL ) ); + r = Jim_GetOpt_Obj(goi, &o); + if (r == JIM_OK) { + r = Jim_GetDouble(goi->interp, o, puthere); + if (r != JIM_OK) { + Jim_SetResult_sprintf(goi->interp, + "not a number: %s", + Jim_GetString(o, NULL)); } } return r; } int -Jim_GetOpt_Wide( Jim_GetOptInfo *goi, jim_wide *puthere ) +Jim_GetOpt_Wide(Jim_GetOptInfo *goi, jim_wide *puthere) { int r; Jim_Obj *o; jim_wide _safe; - if ( puthere == NULL ){ + if (puthere == NULL) { puthere = &_safe; } - r = Jim_GetOpt_Obj( goi, &o ); - if ( r == JIM_OK ){ - r = Jim_GetWide( goi->interp, o, puthere ); + r = Jim_GetOpt_Obj(goi, &o); + if (r == JIM_OK) { + r = Jim_GetWide(goi->interp, o, puthere); } return r; } -int Jim_GetOpt_Nvp( Jim_GetOptInfo *goi, - const Jim_Nvp *nvp, +int Jim_GetOpt_Nvp(Jim_GetOptInfo *goi, + const Jim_Nvp *nvp, Jim_Nvp **puthere) { Jim_Nvp *_safe; Jim_Obj *o; int e; - if ( puthere == NULL ){ + if (puthere == NULL) { puthere = &_safe; } - e = Jim_GetOpt_Obj( goi, &o ); - if ( e == JIM_OK ){ - e = Jim_Nvp_name2value_obj( goi->interp, - nvp, + e = Jim_GetOpt_Obj(goi, &o); + if (e == JIM_OK) { + e = Jim_Nvp_name2value_obj(goi->interp, + nvp, o, - puthere ); + puthere); } return e; } void -Jim_GetOpt_NvpUnknown( Jim_GetOptInfo *goi, +Jim_GetOpt_NvpUnknown(Jim_GetOptInfo *goi, const Jim_Nvp *nvptable, - int hadprefix ) + int hadprefix) { - if ( hadprefix ){ - Jim_SetResult_NvpUnknown( goi->interp, + if (hadprefix) { + Jim_SetResult_NvpUnknown(goi->interp, goi->argv[-2], goi->argv[-1], - nvptable ); + nvptable); } else { - Jim_SetResult_NvpUnknown( goi->interp, + Jim_SetResult_NvpUnknown(goi->interp, NULL, goi->argv[-1], - nvptable ); + nvptable); } } - -int -Jim_GetOpt_Enum( Jim_GetOptInfo *goi, + +int +Jim_GetOpt_Enum(Jim_GetOptInfo *goi, const char * const * lookup, int *puthere) { @@ -12742,94 +12726,94 @@ Jim_GetOpt_Enum( Jim_GetOptInfo *goi, Jim_Obj *o; int e; - if ( puthere == NULL ){ + if (puthere == NULL) { puthere = &_safe; } - e = Jim_GetOpt_Obj( goi, &o ); - if ( e == JIM_OK ){ - e = Jim_GetEnum( goi->interp, + e = Jim_GetOpt_Obj(goi, &o); + if (e == JIM_OK) { + e = Jim_GetEnum(goi->interp, o, lookup, puthere, "option", - JIM_ERRMSG ); + JIM_ERRMSG); } return e; } - + int -Jim_SetResult_sprintf( Jim_Interp *interp, const char *fmt,... ) +Jim_SetResult_sprintf(Jim_Interp *interp, const char *fmt,...) { va_list ap; char *buf; va_start(ap,fmt); - buf = jim_vasprintf( fmt, ap ); + buf = jim_vasprintf(fmt, ap); va_end(ap); - if ( buf ){ - Jim_SetResultString( interp, buf, -1 ); + if (buf) { + Jim_SetResultString(interp, buf, -1); jim_vasprintf_done(buf); } return JIM_OK; } - + void -Jim_SetResult_NvpUnknown( Jim_Interp *interp, +Jim_SetResult_NvpUnknown(Jim_Interp *interp, Jim_Obj *param_name, Jim_Obj *param_value, - const Jim_Nvp *nvp ) + const Jim_Nvp *nvp) { - if ( param_name ){ - Jim_SetResult_sprintf( interp, + if (param_name) { + Jim_SetResult_sprintf(interp, "%s: Unknown: %s, try one of: ", - Jim_GetString( param_name, NULL ), - Jim_GetString( param_value, NULL ) ); + Jim_GetString(param_name, NULL), + Jim_GetString(param_value, NULL)); } else { - Jim_SetResult_sprintf( interp, + Jim_SetResult_sprintf(interp, "Unknown param: %s, try one of: ", - Jim_GetString( param_value, NULL ) ); + Jim_GetString(param_value, NULL)); } - while ( nvp->name ){ + while (nvp->name) { const char *a; const char *b; - if ( (nvp + 1)->name ){ + if ((nvp + 1)->name) { a = nvp->name; b = ", "; } else { a = "or "; b = nvp->name; } - Jim_AppendStrings( interp, + Jim_AppendStrings(interp, Jim_GetResult(interp), - a, b, NULL ); + a, b, NULL); nvp++; } } - + static Jim_Obj *debug_string_obj; const char * -Jim_Debug_ArgvString( Jim_Interp *interp, int argc, Jim_Obj *const *argv ) +Jim_Debug_ArgvString(Jim_Interp *interp, int argc, Jim_Obj *const *argv) { int x; - if ( debug_string_obj ){ - Jim_FreeObj( interp, debug_string_obj ); + if (debug_string_obj) { + Jim_FreeObj(interp, debug_string_obj); } - debug_string_obj = Jim_NewEmptyStringObj( interp ); - for ( x = 0 ; x < argc ; x++ ){ - Jim_AppendStrings( interp, + debug_string_obj = Jim_NewEmptyStringObj(interp); + for (x = 0 ; x < argc ; x++) { + Jim_AppendStrings(interp, debug_string_obj, - Jim_GetString( argv[x], NULL ), + Jim_GetString(argv[x], NULL), " ", - NULL ); + NULL); } - return Jim_GetString( debug_string_obj, NULL ); + return Jim_GetString(debug_string_obj, NULL); }