src: add loader src description
[openocd.git] / src / helper / jim.c
index 9d49e8714c5602d5d8ec750826b6d9dee0b4b08e..bb7483872413ca4f0fec5485eb90b5461b5c30a2 100644 (file)
@@ -2,26 +2,29 @@
  *
  * Copyright 2005 Salvatore Sanfilippo <antirez@invece.org>
  * Copyright 2005 Clemens Hintze <c.hintze@gmx.net>
- * Copyright 2005 patthoyts - Pat Thoyts <patthoyts@users.sf.net> 
- * Copyright 2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+ * Copyright 2005 patthoyts - Pat Thoyts <patthoyts@users.sf.net>
+ * Copyright 2008,2009 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
  * Copyright 2008 Andrew Lunn <andrew@lunn.ch>
  * Copyright 2008 Duane Ellis <openocd@duaneellis.com>
  * Copyright 2008 Uwe Klein <uklein@klein-messgeraete.de>
  * Copyright 2008 Steve Bennett <steveb@workware.net.au>
- * 
+ * Copyright 2009 Nico Coesel <ncoesel@dealogic.nl>
+ * 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.
 
 #ifdef __ECOS
 #include <pkgconf/jimtcl.h>
-#endif
-#ifndef JIM_ANSIC
-#define JIM_DYNLIB      /* Dynamic library support for UNIX and WIN32 */
-#endif /* JIM_ANSIC */
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE    /* for vasprintf() */
-#endif
 #include <stdio.h>
 #include <stdlib.h>
+
+typedef CYG_ADDRWORD intptr_t;
+
 #include <string.h>
 #include <stdarg.h>
 #include <ctype.h>
 #include <assert.h>
 #include <errno.h>
 #include <time.h>
-#if defined(WIN32)
-/* sys/time - need is different */
-#else
-#include <sys/time.h> // for gettimeofday()
 #endif
+#ifndef JIM_ANSIC
+#define JIM_DYNLIB      /* Dynamic library support for UNIX and WIN32 */
+#endif /* JIM_ANSIC */
 
-#include "replacements.h"
+#include <stdarg.h>
+#include <limits.h>
 
 /* Include the platform dependent libraries for
  * dynamic loading of libraries. */
 #endif /* WIN32 */
 #endif /* JIM_DYNLIB */
 
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
 #ifdef __ECOS
 #include <cyg/jimtcl/jim.h>
 #else
@@ -129,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);
@@ -155,7 +149,7 @@ jim_vasprintf_done( void *buf )
        free(buf);
 #endif
 }
-       
+
 
 /*
  * Convert a string to a jim_wide INTEGER.
@@ -210,7 +204,7 @@ static jim_wide JimStrtoll(const char *nptr, char **endptr, register int base)
      * digit.  For instance, if the range for quads is
      * [-9223372036854775808..9223372036854775807] and the input base
      * is 10, cutoff will be set to 922337203685477580 and cutlim to
-     * either 7 (neg==0) or 8 (neg==1), meaning that if we have
+     * either 7 (neg == 0) or 8 (neg == 1), meaning that if we have
      * accumulated a value > 922337203685477580, or equal but the
      * next digit is > 7 (or 8), the number is too big, and we will
      * return a range error.
@@ -257,8 +251,8 @@ static jim_wide JimStrtoll(const char *nptr, char **endptr, register int base)
 static int JimStringMatch(const char *pattern, int patternLen,
         const char *string, int stringLen, int nocase)
 {
-    while(patternLen) {
-        switch(pattern[0]) {
+    while (patternLen) {
+        switch (pattern[0]) {
         case '*':
             while (pattern[1] == '*') {
                 pattern++;
@@ -266,8 +260,8 @@ static int JimStringMatch(const char *pattern, int patternLen,
             }
             if (patternLen == 1)
                 return 1; /* match */
-            while(stringLen) {
-                if (JimStringMatch(pattern+1, patternLen-1,
+            while (stringLen) {
+                if (JimStringMatch(pattern + 1, patternLen-1,
                             string, stringLen, nocase))
                     return 1; /* match */
                 string++;
@@ -293,7 +287,7 @@ static int JimStringMatch(const char *pattern, int patternLen,
                 patternLen--;
             }
             match = 0;
-            while(1) {
+            while (1) {
                 if (pattern[0] == '\\') {
                     pattern++;
                     patternLen--;
@@ -364,7 +358,7 @@ static int JimStringMatch(const char *pattern, int patternLen,
         pattern++;
         patternLen--;
         if (stringLen == 0) {
-            while(*pattern == '*') {
+            while (*pattern == '*') {
                 pattern++;
                 patternLen--;
             }
@@ -376,13 +370,13 @@ 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;
 
     if (nocase == 0) {
-        while(l1 && l2) {
+        while (l1 && l2) {
             if (*u1 != *u2)
                 return (int)*u1-*u2;
             u1++; u2++; l1--; l2--;
@@ -390,7 +384,7 @@ int JimStringCompare(const char *s1, int l1, const char *s2, int l2,
         if (!l1 && !l2) return 0;
         return l1-l2;
     } else {
-        while(l1 && l2) {
+        while (l1 && l2) {
             if (tolower((int)*u1) != tolower((int)*u2))
                 return tolower((int)*u1)-tolower((int)*u2);
             u1++; u2++; l1--; l2--;
@@ -401,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++;
@@ -418,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;
 
@@ -433,10 +427,10 @@ 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) {
+        while (*endptr) {
             if (!isspace((int)*endptr))
                 return JIM_ERR;
             endptr++;
@@ -445,15 +439,15 @@ 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) {
+        while (*endptr) {
             if (!isspace((int)*endptr))
                 return JIM_ERR;
             endptr++;
@@ -469,7 +463,7 @@ int Jim_StringToIndex(const char *str, int *intPtr)
  * in length, this allows to avoid to check every object with a string
  * repr < 32, and usually there are many of this objects. */
 
-#define JIM_REFERENCE_SPACE (35+JIM_REFERENCE_TAGLEN)
+#define JIM_REFERENCE_SPACE (35 + JIM_REFERENCE_TAGLEN)
 
 static int JimFormatReference(char *buf, Jim_Reference *refPtr, jim_wide id)
 {
@@ -478,14 +472,14 @@ 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;
 
     len = sprintf(buf, "%.17g", doubleValue);
     s = buf;
-    while(*s) {
+    while (*s) {
         if (*s == '.') return len;
         s++;
     }
@@ -497,17 +491,17 @@ int Jim_DoubleToString(char *buf, double doubleValue)
         s[0] = '.';
         s[1] = '0';
         s[2] = '\0';
-        return len+2;
+        return len + 2;
     }
     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;
 }
@@ -515,8 +509,8 @@ int Jim_StringToDouble(const char *str, double *doublePtr)
 static jim_wide JimPowWide(jim_wide b, jim_wide e)
 {
     jim_wide i, res = 1;
-    if ((b==0 && e!=0) || (e<0)) return 0;
-    for(i=0; i<e; i++) {res *= b;}
+    if ((b == 0 && e != 0) || (e < 0)) return 0;
+    for (i = 0; i < e; i++) {res *= b;}
     return res;
 }
 
@@ -532,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: ");
@@ -554,12 +548,12 @@ void Jim_Panic(Jim_Interp *interp, const char *fmt, ...)
         fprintf(fp,"[backtrace] of 'nm <executable>' 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,8 +574,8 @@ void Jim_Panic(Jim_Interp *interp, const char *fmt, ...)
 void *Jim_Alloc(int size)
 {
        /* We allocate zero length arrayes, etc. to use a single orthogonal codepath */
-       if (size==0)
-               size=1;
+       if (size == 0)
+               size = 1;
     void *p = malloc(size);
     if (p == NULL)
         Jim_Panic(NULL,"malloc: Out of memory");
@@ -592,11 +586,11 @@ 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)
-               size=1;
+       if (size == 0)
+               size = 1;
     void *p = realloc(ptr, size);
     if (p == NULL)
         Jim_Panic(NULL,"realloc: Out of memory");
@@ -606,17 +600,17 @@ void *Jim_Realloc(void *ptr, int size)
 char *Jim_StrDup(const char *s)
 {
     int l = strlen(s);
-    char *copy = Jim_Alloc(l+1);
+    char *copy = Jim_Alloc(l + 1);
 
-    memcpy(copy, s, l+1);
+    memcpy(copy, s, l + 1);
     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);
+    char *copy = Jim_Alloc(l + 1);
+
+    memcpy(copy, s, l + 1);
     copy[l] = 0;    /* Just to be sure, original could be substring */
     return copy;
 }
@@ -651,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);
@@ -662,19 +656,13 @@ 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--)
-        h += (h<<3)+*buf++;
+    while (len--)
+        h += (h << 3)+*buf++;
     return h;
 }
 
@@ -738,10 +726,10 @@ 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) {
+        while (he) {
             unsigned int h;
 
             nextHe = he->next;
@@ -765,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);
@@ -814,7 +802,7 @@ int Jim_DeleteHashEntry(Jim_HashTable *ht, const void *key)
     he = ht->table[h];
 
     prevHe = NULL;
-    while(he) {
+    while (he) {
         if (Jim_CompareHashKeys(ht, key, he->key)) {
             /* Unlink the element from the list */
             if (prevHe)
@@ -843,7 +831,7 @@ int Jim_FreeHashTable(Jim_HashTable *ht)
         Jim_HashEntry *he, *nextHe;
 
         if ((he = ht->table[i]) == NULL) continue;
-        while(he) {
+        while (he) {
             nextHe = he->next;
             Jim_FreeEntryKey(ht, he);
             Jim_FreeEntryVal(ht, he);
@@ -867,7 +855,7 @@ Jim_HashEntry *Jim_FindHashEntry(Jim_HashTable *ht, const void *key)
     if (ht->size == 0) return NULL;
     h = Jim_HashKey(ht, key) & ht->sizemask;
     he = ht->table[h];
-    while(he) {
+    while (he) {
         if (Jim_CompareHashKeys(ht, key, he->key))
             return he;
         he = he->next;
@@ -928,7 +916,7 @@ static unsigned int JimHashTableNextPower(unsigned int size)
 
     if (size >= 2147483648U)
         return 2147483648U;
-    while(1) {
+    while (1) {
         if (i >= size)
             return i;
         i *= 2;
@@ -950,7 +938,7 @@ static int JimInsertHashEntry(Jim_HashTable *ht, const void *key)
     h = Jim_HashKey(ht, key) & ht->sizemask;
     /* Search if this slot does not already contain the given key */
     he = ht->table[h];
-    while(he) {
+    while (he) {
         if (Jim_CompareHashKeys(ht, key, he->key))
             return -1;
         he = he->next;
@@ -968,7 +956,7 @@ static unsigned int JimStringCopyHTHashFunction(const void *key)
 static const void *JimStringCopyHTKeyDup(void *privdata, const void *key)
 {
     int len = strlen(key);
-    char *copy = Jim_Alloc(len+1);
+    char *copy = Jim_Alloc(len + 1);
     JIM_NOTUSED(privdata);
 
     memcpy(copy, key, len);
@@ -979,7 +967,7 @@ static const void *JimStringCopyHTKeyDup(void *privdata, const void *key)
 static void *JimStringKeyValCopyHTValDup(void *privdata, const void *val)
 {
     int len = strlen(val);
-    char *copy = Jim_Alloc(len+1);
+    char *copy = Jim_Alloc(len + 1);
     JIM_NOTUSED(privdata);
 
     memcpy(copy, val, len);
@@ -1084,7 +1072,7 @@ int Jim_StackLen(Jim_Stack *stack)
 }
 
 void Jim_StackPush(Jim_Stack *stack, void *element) {
-    int neededLen = stack->len+1;
+    int neededLen = stack->len + 1;
     if (neededLen > stack->maxlen) {
         stack->maxlen = neededLen*2;
         stack->vector = Jim_Realloc(stack->vector, sizeof(void*)*stack->maxlen);
@@ -1174,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;
@@ -1192,7 +1180,7 @@ void JimParserInit(struct JimParserCtx *pc, const char *prg,
 
 int JimParseScript(struct JimParserCtx *pc)
 {
-    while(1) { /* the while is used to reiterate with continue if needed */
+    while (1) { /* the while is used to reiterate with continue if needed */
         if (!pc->len) {
             pc->tstart = pc->p;
             pc->tend = pc->p-1;
@@ -1201,9 +1189,9 @@ int JimParseScript(struct JimParserCtx *pc)
             pc->eof = 1;
             return JIM_OK;
         }
-        switch(*(pc->p)) {
+        switch (*(pc->p)) {
         case '\\':
-            if (*(pc->p+1) == '\n')
+            if (*(pc->p + 1) == '\n')
                 return JimParseSep(pc);
             else {
                 pc->comment = 0;
@@ -1263,7 +1251,7 @@ int JimParseSep(struct JimParserCtx *pc)
     pc->tstart = pc->p;
     pc->tline = pc->linenr;
     while (*pc->p == ' ' || *pc->p == '\t' || *pc->p == '\r' ||
-           (*pc->p == '\\' && *(pc->p+1) == '\n')) {
+           (*pc->p == '\\' && *(pc->p + 1) == '\n')) {
         if (*pc->p == '\\') {
             pc->p++; pc->len--;
             pc->linenr++;
@@ -1439,10 +1427,10 @@ int JimParseStr(struct JimParserCtx *pc)
             pc->tt = JIM_TT_ESC;
             return JIM_OK;
         }
-        switch(*pc->p) {
+        switch (*pc->p) {
         case '\\':
             if (pc->state == JIM_PS_DEF &&
-                *(pc->p+1) == '\n') {
+                *(pc->p + 1) == '\n') {
                 pc->tend = pc->p-1;
                 pc->tt = JIM_TT_ESC;
                 return JIM_OK;
@@ -1525,14 +1513,14 @@ static int JimEscape(char *dest, const char *s, int slen)
 {
     char *p = dest;
     int i, len;
-    
+
     if (slen == -1)
         slen = strlen(s);
 
     for (i = 0; i < slen; i++) {
-        switch(s[i]) {
+        switch (s[i]) {
         case '\\':
-            switch(s[i+1]) {
+            switch (s[i + 1]) {
             case 'a': *p++ = 0x7; i++; break;
             case 'b': *p++ = 0x8; i++; break;
             case 'f': *p++ = 0xc; i++; break;
@@ -1543,48 +1531,48 @@ static int JimEscape(char *dest, const char *s, int slen)
             case '\0': *p++ = '\\'; i++; break;
             case '\n': *p++ = ' '; i++; break;
             default:
-                  if (s[i+1] == 'x') {
+                  if (s[i + 1] == 'x') {
                     int val = 0;
-                    int c = xdigitval(s[i+2]);
+                    int c = xdigitval(s[i + 2]);
                     if (c == -1) {
                         *p++ = 'x';
                         i++;
                         break;
                     }
                     val = c;
-                    c = xdigitval(s[i+3]);
+                    c = xdigitval(s[i + 3]);
                     if (c == -1) {
                         *p++ = val;
                         i += 2;
                         break;
                     }
-                    val = (val*16)+c;
+                    val = (val*16) + c;
                     *p++ = val;
                     i += 3;
                     break;
-                  } else if (s[i+1] >= '0' && s[i+1] <= '7')
+                  } else if (s[i + 1] >= '0' && s[i + 1] <= '7')
                   {
                     int val = 0;
-                    int c = odigitval(s[i+1]);
+                    int c = odigitval(s[i + 1]);
                     val = c;
-                    c = odigitval(s[i+2]);
+                    c = odigitval(s[i + 2]);
                     if (c == -1) {
                         *p++ = val;
                         i ++;
                         break;
                     }
-                    val = (val*8)+c;
-                    c = odigitval(s[i+3]);
+                    val = (val*8) + c;
+                    c = odigitval(s[i + 3]);
                     if (c == -1) {
                         *p++ = val;
                         i += 2;
                         break;
                     }
-                    val = (val*8)+c;
+                    val = (val*8) + c;
                     *p++ = val;
                     i += 3;
                   } else {
-                    *p++ = s[i+1];
+                    *p++ = s[i + 1];
                     i++;
                   }
                   break;
@@ -1611,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:
@@ -1637,8 +1625,8 @@ char *JimParserGetToken(struct JimParserCtx *pc,
         token[0] = '\0';
         return token;
     }
-    len = (end-start)+1;
-    token = Jim_Alloc(len+1);
+    len = (end-start) + 1;
+    token = Jim_Alloc(len + 1);
     if (JimParserTtype(pc) != JIM_TT_ESC) {
         /* No escape conversion needed? Just copy it. */
         memcpy(token, start, len);
@@ -1669,7 +1657,7 @@ int Jim_ScriptIsComplete(const char *s, int len, char *stateCharPtr)
     int level = 0;
     int state = ' ';
 
-    while(len) {
+    while (len) {
         switch (*s) {
             case '\\':
                 if (len > 1)
@@ -1712,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;
@@ -1721,7 +1709,7 @@ int JimParseList(struct JimParserCtx *pc)
         pc->eof = 1;
         return JIM_OK;
     }
-    switch(*pc->p) {
+    switch (*pc->p) {
     case ' ':
     case '\n':
     case '\t':
@@ -1769,7 +1757,7 @@ int JimParseListStr(struct JimParserCtx *pc)
             pc->tt = JIM_TT_ESC;
             return JIM_OK;
         }
-        switch(*pc->p) {
+        switch (*pc->p) {
         case '\\':
             pc->p++; pc->len--;
             break;
@@ -1891,7 +1879,7 @@ void Jim_InitStringRep(Jim_Obj *objPtr, const char *bytes, int length)
         objPtr->bytes = JimEmptyStringRep;
         objPtr->length = 0;
     } else {
-        objPtr->bytes = Jim_Alloc(length+1);
+        objPtr->bytes = Jim_Alloc(length + 1);
         objPtr->length = length;
         memcpy(objPtr->bytes, bytes, length);
         objPtr->bytes[length] = '\0';
@@ -1999,7 +1987,7 @@ Jim_Obj *Jim_NewStringObj(Jim_Interp *interp, const char *s, int len)
         objPtr->bytes = JimEmptyStringRep;
         objPtr->length = 0;
     } else {
-        objPtr->bytes = Jim_Alloc(len+1);
+        objPtr->bytes = Jim_Alloc(len + 1);
         objPtr->length = len;
         memcpy(objPtr->bytes, s, len);
         objPtr->bytes[len] = '\0';
@@ -2025,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;
 
@@ -2035,27 +2023,17 @@ void StringAppendString(Jim_Obj *objPtr, const char *str, int len)
     if (objPtr->internalRep.strValue.maxLength < needlen ||
         objPtr->internalRep.strValue.maxLength == 0) {
         if (objPtr->bytes == JimEmptyStringRep) {
-            objPtr->bytes = Jim_Alloc((needlen*2)+1);
+            objPtr->bytes = Jim_Alloc((needlen*2) + 1);
         } else {
-            objPtr->bytes = Jim_Realloc(objPtr->bytes, (needlen*2)+1);
+            objPtr->bytes = Jim_Realloc(objPtr->bytes, (needlen*2) + 1);
         }
         objPtr->internalRep.strValue.maxLength = needlen*2;
     }
     memcpy(objPtr->bytes + objPtr->length, str, len);
-    objPtr->bytes[objPtr->length+len] = '\0';
+    objPtr->bytes[objPtr->length + len] = '\0';
     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)
@@ -2067,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);
        }
 }
@@ -2138,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;
@@ -2154,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(),
@@ -2175,7 +2153,7 @@ static void JimRelToAbsRange(int len, int first, int last,
     if (first > last) {
         rangeLen = 0;
     } else {
-        rangeLen = last-first+1;
+        rangeLen = last-first + 1;
         if (rangeLen) {
             if (first < 0) {
                 rangeLen += first;
@@ -2208,7 +2186,7 @@ Jim_Obj *Jim_StringRangeObj(Jim_Interp *interp,
     first = JimRelToAbsIndex(len, first);
     last = JimRelToAbsIndex(len, last);
     JimRelToAbsRange(len, first, last, &first, &last, &rangeLen);
-    return Jim_NewStringObj(interp, str+first, rangeLen);
+    return Jim_NewStringObj(interp, str + first, rangeLen);
 }
 
 static Jim_Obj *JimStringToLower(Jim_Interp *interp, Jim_Obj *strObjPtr)
@@ -2219,11 +2197,11 @@ static Jim_Obj *JimStringToLower(Jim_Interp *interp, Jim_Obj *strObjPtr)
         SetStringFromAny(interp, strObjPtr);
     }
 
-    buf = Jim_Alloc(strObjPtr->length+1);
+    buf = Jim_Alloc(strObjPtr->length + 1);
 
-    memcpy(buf, strObjPtr->bytes, strObjPtr->length+1);
+    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);
 }
 
@@ -2235,17 +2213,17 @@ static Jim_Obj *JimStringToUpper(Jim_Interp *interp, Jim_Obj *strObjPtr)
         SetStringFromAny(interp, strObjPtr);
     }
 
-    buf = Jim_Alloc(strObjPtr->length+1);
+    buf = Jim_Alloc(strObjPtr->length + 1);
 
-    memcpy(buf, strObjPtr->bytes, strObjPtr->length+1);
+    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,
@@ -2254,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;
@@ -2295,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 */
@@ -2311,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;
@@ -2337,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--;
@@ -2353,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 {
@@ -2368,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;
                        }
@@ -2394,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:
@@ -2407,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);
                }
@@ -2448,12 +2426,12 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
 
                /* here we do the work */
                /* actually - we make sprintf() do it for us */
-        switch(*fmt) {
+        switch (*fmt) {
         case 's':
                        *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';
@@ -2463,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':
@@ -2473,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':
@@ -2487,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';
@@ -2499,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] = '%';
@@ -2516,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++;
@@ -2533,10 +2511,10 @@ static Jim_Obj *Jim_FormatString_Inner(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
 Jim_Obj *Jim_FormatString(Jim_Interp *interp, Jim_Obj *fmtObjPtr,
         int objc, Jim_Obj *const *objv)
 {
-       char *sprintf_buf=malloc(JIM_MAX_FMT);
-       Jim_Obj *t=Jim_FormatString_Inner(interp, fmtObjPtr, objc, objv, sprintf_buf);
+       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;
 }
 
 /* -----------------------------------------------------------------------------
@@ -2585,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,11 +2596,11 @@ int Jim_GetEnum(Jim_Interp *interp, Jim_Obj *objPtr,
         memcpy(tablePtrSorted, tablePtr, sizeof(char*)*count);
         qsort(tablePtrSorted, count, sizeof(char*), qsortCompareStringPointers);
         for (i = 0; i < count; i++) {
-            if (i+1 == count && count > 1)
+            if (i + 1 == count && count > 1)
                 Jim_AppendString(interp, Jim_GetResult(interp), "or ", -1);
             Jim_AppendString(interp, Jim_GetResult(interp),
                     tablePtrSorted[i], -1);
-            if (i+1 != count)
+            if (i + 1 != count)
                 Jim_AppendString(interp, Jim_GetResult(interp), ", ", -1);
         }
         Jim_Free(tablePtrSorted);
@@ -2630,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;
@@ -2747,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
@@ -2840,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++) {
@@ -2900,7 +2881,7 @@ static void ScriptObjAddToken(Jim_Interp *interp, struct ScriptObj *script,
     script->token = Jim_Realloc(script->token,
             sizeof(ScriptToken)*script->len);
     /* Initialize the new token */
-    token = script->token+(script->len-1);
+    token = script->token + (script->len-1);
     token->type = type;
     /* Every object is intially as a string, but the
      * internal type may be specialized during execution of the
@@ -3041,13 +3022,13 @@ int SetScriptFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
     }
 
     JimParserInit(&parser, scriptText, scriptTextLen, initialLineNumber);
-    while(!JimParserEof(&parser)) {
-        char *token;
+    while (!JimParserEof(&parser)) {
+        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);
     }
@@ -3072,8 +3053,8 @@ int SetScriptFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
                     token[end-1].type == JIM_TT_EOL)
             {
                 if (token[end].type == JIM_TT_STR &&
-                    token[end+1].type != JIM_TT_SEP &&
-                    token[end+1].type != JIM_TT_EOL &&
+                    token[end + 1].type != JIM_TT_SEP &&
+                    token[end + 1].type != JIM_TT_EOL &&
                     (!strcmp(token[end].objPtr->bytes, "expand") ||
                      !strcmp(token[end].objPtr->bytes, "*")))
                     expand++;
@@ -3082,7 +3063,7 @@ int SetScriptFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
                 args++;
             end++;
         }
-        interpolation = !((end-start+1) == args*2);
+        interpolation = !((end-start + 1) == args*2);
         /* Add the 'number of arguments' info into cmdstruct.
          * Negative value if there is list expansion involved. */
         if (expand)
@@ -3135,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);
@@ -3233,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;
@@ -3244,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;
 
@@ -3331,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;
@@ -3633,7 +3614,7 @@ int Jim_SetVariableLink(Jim_Interp *interp, Jim_Obj *nameObjPtr,
         Jim_Obj *objPtr = targetNameObjPtr;
         Jim_Var *varPtr;
         /* Cycles are only possible with 'uplevel 0' */
-        while(1) {
+        while (1) {
             if (Jim_StringEqObj(objPtr, nameObjPtr, 0)) {
                 Jim_SetResultString(interp,
                     "can't upvar from variable to itself", -1);
@@ -3749,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)
@@ -3808,15 +3789,15 @@ static void JimDictSugarParseVarKey(Jim_Interp *interp, Jim_Obj *objPtr,
     str = Jim_GetString(objPtr, &len);
     p = strchr(str, '(');
     p++;
-    keyLen = len-((p-str)+1);
+    keyLen = len-((p-str) + 1);
     nameLen = (p-str)-1;
     /* Create the objects with the variable name and key. */
-    t = Jim_Alloc(nameLen+1);
+    t = Jim_Alloc(nameLen + 1);
     memcpy(t, str, nameLen);
     t[nameLen] = '\0';
     varObjPtr = Jim_NewStringObjNoAlloc(interp, t, nameLen);
 
-    t = Jim_Alloc(keyLen+1);
+    t = Jim_Alloc(keyLen + 1);
     memcpy(t, p, keyLen);
     t[keyLen] = '\0';
     keyObjPtr = Jim_NewStringObjNoAlloc(interp, t, keyLen);
@@ -3902,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;
@@ -4024,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;
@@ -4032,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);
@@ -4049,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);
@@ -4057,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);
 
@@ -4090,13 +4063,13 @@ static Jim_ObjType referenceObjType = {
 void UpdateStringOfReference(struct Jim_Obj *objPtr)
 {
     int len;
-    char buf[JIM_REFERENCE_SPACE+1];
+    char buf[JIM_REFERENCE_SPACE + 1];
     Jim_Reference *refPtr;
 
     refPtr = objPtr->internalRep.refValue.refPtr;
     len = JimFormatReference(buf, refPtr, objPtr->internalRep.refValue.id);
-    objPtr->bytes = Jim_Alloc(len+1);
-    memcpy(objPtr->bytes, buf, len+1);
+    objPtr->bytes = Jim_Alloc(len + 1);
+    memcpy(objPtr->bytes, buf, len + 1);
     objPtr->length = len;
 }
 
@@ -4109,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;
@@ -4124,19 +4097,19 @@ int SetReferenceFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
     if (len < JIM_REFERENCE_SPACE) goto badformat;
     /* Trim spaces */
     start = str;
-    end = str+len-1;
+    end = str + len-1;
     while (*start == ' ') start++;
     while (*end == ' ' && end > start) end--;
-    if (end-start+1 != JIM_REFERENCE_SPACE) goto badformat;
+    if (end-start + 1 != JIM_REFERENCE_SPACE) goto badformat;
     /* <reference.<1234567>.%020> */
     if (memcmp(start, "<reference.<", 12) != 0) goto badformat;
-    if (start[12+JIM_REFERENCE_TAGLEN] != '>' || end[0] != '>') goto badformat;
+    if (start[12 + JIM_REFERENCE_TAGLEN] != '>' || end[0] != '>') goto badformat;
     /* The tag can't contain chars other than a-zA-Z0-9 + '_'. */
     for (i = 0; i < JIM_REFERENCE_TAGLEN; i++) {
-        if (!isrefchar(start[12+i])) goto badformat;
+        if (!isrefchar(start[12 + i])) goto badformat;
     }
     /* Extract info from the refernece. */
-    memcpy(refId, start+14+JIM_REFERENCE_TAGLEN, 20);
+    memcpy(refId, start + 14 + JIM_REFERENCE_TAGLEN, 20);
     refId[20] = '\0';
     /* Try to convert the ID into a jim_wide */
     if (Jim_StringToWide(refId, &wideValue, 10) != JIM_OK) goto badformat;
@@ -4274,7 +4247,7 @@ int Jim_Collect(Jim_Interp *interp)
      * is of a type that can contain references. */
     Jim_InitHashTable(&marks, &JimRefMarkHashTableType, NULL);
     objPtr = interp->liveList;
-    while(objPtr) {
+    while (objPtr) {
         if (objPtr->typePtr == NULL ||
             objPtr->typePtr->flags & JIM_TYPE_REFERENCES) {
             const char *str, *p;
@@ -4287,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
@@ -4303,7 +4276,7 @@ int Jim_Collect(Jim_Interp *interp)
                 continue;
             }
             /* Extract references from the object string repr. */
-            while(1) {
+            while (1) {
                 int i;
                 jim_wide id;
                 char buf[21];
@@ -4317,7 +4290,7 @@ int Jim_Collect(Jim_Interp *interp)
                     if (!isdigit((int)p[i]))
                         break;
                 /* Get the ID */
-                memcpy(buf, p+21, 20);
+                memcpy(buf, p + 21, 20);
                 buf[20] = '\0';
                 Jim_StringToWide(buf, &id, 10);
 
@@ -4352,7 +4325,7 @@ int Jim_Collect(Jim_Interp *interp)
              * finalizer first if registered. */
             refPtr = he->val;
             if (refPtr->finalizerCmdNamePtr) {
-                char *refstr = Jim_Alloc(JIM_REFERENCE_SPACE+1);
+                char *refstr = Jim_Alloc(JIM_REFERENCE_SPACE + 1);
                 Jim_Obj *objv[3], *oldResult;
 
                 JimFormatReference(refstr, refPtr, *refId);
@@ -4397,7 +4370,7 @@ void Jim_CollectIfNeeded(Jim_Interp *interp)
 {
     jim_wide elapsedId;
     int elapsedTime;
-    
+
     elapsedId = interp->referenceNextId - interp->lastCollectId;
     elapsedTime = time(NULL) - interp->lastCollectTime;
 
@@ -4436,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
@@ -4500,7 +4473,7 @@ void Jim_FreeInterp(Jim_Interp *i)
     Jim_FreeHashTable(&i->packages);
     Jim_Free(i->prngState);
     /* Free the call frames list */
-    while(cf) {
+    while (cf) {
         prevcf = cf->parentCallFrame;
         JimFreeCallFrame(i, cf, JIM_FCF_NONE);
         cf = prevcf;
@@ -4508,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);
-        while(objPtr) {
+        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. */
@@ -4538,7 +4511,7 @@ void Jim_FreeInterp(Jim_Interp *i)
     }
     /* Free cached CallFrame structures */
     cf = i->freeFramesList;
-    while(cf) {
+    while (cf) {
         nextcf = cf->nextFramePtr;
         if (cf->vars.table != NULL)
             Jim_Free(cf->vars.table);
@@ -4587,7 +4560,7 @@ int Jim_GetCallFrameByLevel(Jim_Interp *interp, Jim_Obj *levelObjPtr,
                 return JIM_OK;
             }
 
-            level = strtol(str+1, &endptr, 0);
+            level = strtol(str + 1, &endptr, 0);
             if (str[1] == '\0' || endptr[0] != '\0' || level < 0)
                 goto badlevel;
             /* An 'absolute' level is converted into the
@@ -4760,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;
@@ -4770,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);
@@ -4804,11 +4777,11 @@ static Jim_ObjType intObjType = {
 void UpdateStringOfInt(struct Jim_Obj *objPtr)
 {
     int len;
-    char buf[JIM_INTEGER_SPACE+1];
+    char buf[JIM_INTEGER_SPACE + 1];
 
     len = Jim_WideToString(buf, objPtr->internalRep.wideValue);
-    objPtr->bytes = Jim_Alloc(len+1);
-    memcpy(objPtr->bytes, buf, len+1);
+    objPtr->bytes = Jim_Alloc(len + 1);
+    memcpy(objPtr->bytes, buf, len + 1);
     objPtr->length = len;
 }
 
@@ -4916,11 +4889,11 @@ static Jim_ObjType doubleObjType = {
 void UpdateStringOfDouble(struct Jim_Obj *objPtr)
 {
     int len;
-    char buf[JIM_DOUBLE_SPACE+1];
+    char buf[JIM_DOUBLE_SPACE + 1];
 
     len = Jim_DoubleToString(buf, objPtr->internalRep.doubleValue);
-    objPtr->bytes = Jim_Alloc(len+1);
-    memcpy(objPtr->bytes, buf, len+1);
+    objPtr->bytes = Jim_Alloc(len + 1);
+    memcpy(objPtr->bytes, buf, len + 1);
     objPtr->length = len;
 }
 
@@ -5042,7 +5015,7 @@ static int ListElementQuotingType(const char *s, int len)
         goto testbrace;
     }
     for (i = 0; i < len; i++) {
-        switch(s[i]) {
+        switch (s[i]) {
         case ' ':
         case '$':
         case '"':
@@ -5069,23 +5042,23 @@ testbrace:
         s[len-1] == ']') return JIM_ELESTR_QUOTE;
     level = 0;
     for (i = 0; i < len; i++) {
-        switch(s[i]) {
+        switch (s[i]) {
         case '{': level++; break;
         case '}': level--;
               if (level < 0) return JIM_ELESTR_QUOTE;
               break;
         case '\\':
-              if (s[i+1] == '\n')
+              if (s[i + 1] == '\n')
                   return JIM_ELESTR_QUOTE;
               else
-                  if (s[i+1] != '\0') i++;
+                  if (s[i + 1] != '\0') i++;
               break;
         }
     }
     if (level == 0) {
         if (!trySimple) return JIM_ELESTR_BRACE;
         for (i = 0; i < len; i++) {
-            switch(s[i]) {
+            switch (s[i]) {
             case ' ':
             case '$':
             case '"':
@@ -5109,12 +5082,12 @@ 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;
+    char *q = Jim_Alloc(len*2 + 1), *p;
 
     p = q;
-    while(*s) {
+    while (*s) {
         switch (*s) {
         case ' ':
         case '$':
@@ -5152,7 +5125,7 @@ void UpdateStringOfList(struct Jim_Obj *objPtr)
     Jim_Obj **ele = objPtr->internalRep.listValue.ele;
 
     /* (Over) Estimate the space needed. */
-    quotingType = Jim_Alloc(sizeof(int)*objPtr->internalRep.listValue.len+1);
+    quotingType = Jim_Alloc(sizeof(int)*objPtr->internalRep.listValue.len + 1);
     bufLen = 0;
     for (i = 0; i < objPtr->internalRep.listValue.len; i++) {
         int len;
@@ -5161,7 +5134,7 @@ void UpdateStringOfList(struct Jim_Obj *objPtr)
         quotingType[i] = ListElementQuotingType(strRep, len);
         switch (quotingType[i]) {
         case JIM_ELESTR_SIMPLE: bufLen += len; break;
-        case JIM_ELESTR_BRACE: bufLen += len+2; break;
+        case JIM_ELESTR_BRACE: bufLen += len + 2; break;
         case JIM_ELESTR_QUOTE: bufLen += len*2; break;
         }
         bufLen++; /* elements separator. */
@@ -5169,14 +5142,14 @@ void UpdateStringOfList(struct Jim_Obj *objPtr)
     bufLen++;
 
     /* Generate the string rep. */
-    p = objPtr->bytes = Jim_Alloc(bufLen+1);
+    p = objPtr->bytes = Jim_Alloc(bufLen + 1);
     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]) {
+        switch (quotingType[i]) {
         case JIM_ELESTR_SIMPLE:
             memcpy(p, strRep, len);
             p += len;
@@ -5187,7 +5160,7 @@ void UpdateStringOfList(struct Jim_Obj *objPtr)
             memcpy(p, strRep, len);
             p += len;
             *p++ = '}';
-            realLength += len+2;
+            realLength += len + 2;
             break;
         case JIM_ELESTR_QUOTE:
             q = BackslashQuoteString(strRep, len, &qlen);
@@ -5198,7 +5171,7 @@ void UpdateStringOfList(struct Jim_Obj *objPtr)
             break;
         }
         /* Add a separating space */
-        if (i+1 != objPtr->internalRep.listValue.len) {
+        if (i + 1 != objPtr->internalRep.listValue.len) {
             *p++ = ' ';
             realLength ++;
         }
@@ -5227,7 +5200,7 @@ int SetListFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
 
     /* Convert into a list */
     JimParserInit(&parser, str, strLen, 1);
-    while(!JimParserEof(&parser)) {
+    while (!JimParserEof(&parser)) {
         char *token;
         int tokenLen, type;
         Jim_Obj *elementPtr;
@@ -5243,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;
@@ -5360,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;
@@ -5376,9 +5349,9 @@ 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*));
-    for (i=0; i < elemc; ++i) {
+    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]);
     }
@@ -5387,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;
@@ -5403,7 +5376,7 @@ void ListAppendList(Jim_Obj *listPtr, Jim_Obj *appendListPtr)
     }
     for (i = 0; i < appendLen; i++) {
         Jim_Obj *objPtr = appendListPtr->internalRep.listValue.ele[i];
-        listPtr->internalRep.listValue.ele[oldLen+i] = objPtr;
+        listPtr->internalRep.listValue.ele[oldLen + i] = objPtr;
         Jim_IncrRefCount(objPtr);
     }
     listPtr->internalRep.listValue.len += appendLen;
@@ -5436,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;
 }
@@ -5498,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)
@@ -5507,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);
@@ -5564,7 +5537,7 @@ Jim_Obj *Jim_ConcatObj(Jim_Interp *interp, int objc, Jim_Obj *const *objv)
         }
         if (objc) len += objc-1;
         /* Create the string rep, and a stinrg object holding it. */
-        p = bytes = Jim_Alloc(len+1);
+        p = bytes = Jim_Alloc(len + 1);
         for (i = 0; i < objc; i++) {
             const char *s = Jim_GetString(objv[i], &objLen);
             while (objLen && (*s == ' ' || *s == '\t' || *s == '\n'))
@@ -5577,9 +5550,9 @@ Jim_Obj *Jim_ConcatObj(Jim_Interp *interp, int objc, Jim_Obj *const *objv)
             }
             memcpy(p, s, objLen);
             p += objLen;
-            if (objLen && i+1 != objc) {
+            if (objLen && i + 1 != objc) {
                 *p++ = ' ';
-            } else if (i+1 != objc) {
+            } else if (i + 1 != objc) {
                 /* Drop the space calcuated for this
                  * element that is instead null. */
                 len--;
@@ -5593,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;
@@ -5606,7 +5580,7 @@ Jim_Obj *Jim_ListRange(Jim_Interp *interp, Jim_Obj *listObjPtr, Jim_Obj *firstOb
     last = JimRelToAbsIndex(len, last);
     JimRelToAbsRange(len, first, last, &first, &last, &rangeLen);
     return Jim_NewListObj(interp,
-            listObjPtr->internalRep.listValue.ele+first, rangeLen);
+            listObjPtr->internalRep.listValue.ele + first, rangeLen);
 }
 
 /* -----------------------------------------------------------------------------
@@ -5621,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;
@@ -5632,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 +5710,7 @@ void UpdateStringOfDict(struct Jim_Obj *objPtr)
         quotingType[i] = ListElementQuotingType(strRep, len);
         switch (quotingType[i]) {
         case JIM_ELESTR_SIMPLE: bufLen += len; break;
-        case JIM_ELESTR_BRACE: bufLen += len+2; break;
+        case JIM_ELESTR_BRACE: bufLen += len + 2; break;
         case JIM_ELESTR_QUOTE: bufLen += len*2; break;
         }
         bufLen++; /* elements separator. */
@@ -5744,14 +5718,14 @@ void UpdateStringOfDict(struct Jim_Obj *objPtr)
     bufLen++;
 
     /* Generate the string rep. */
-    p = objPtr->bytes = Jim_Alloc(bufLen+1);
+    p = objPtr->bytes = Jim_Alloc(bufLen + 1);
     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]) {
+        switch (quotingType[i]) {
         case JIM_ELESTR_SIMPLE:
             memcpy(p, strRep, len);
             p += len;
@@ -5762,7 +5736,7 @@ void UpdateStringOfDict(struct Jim_Obj *objPtr)
             memcpy(p, strRep, len);
             p += len;
             *p++ = '}';
-            realLength += len+2;
+            realLength += len + 2;
             break;
         case JIM_ELESTR_QUOTE:
             q = BackslashQuoteString(strRep, len, &qlen);
@@ -5773,7 +5747,7 @@ void UpdateStringOfDict(struct Jim_Obj *objPtr)
             break;
         }
         /* Add a separating space */
-        if (i+1 != objc) {
+        if (i + 1 != objc) {
             *p++ = ' ';
             realLength ++;
         }
@@ -5806,7 +5780,7 @@ int SetDictFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
     /* Convert into a dict */
     JimParserInit(&parser, str, strLen, 1);
     i = 0;
-    while(!JimParserEof(&parser)) {
+    while (!JimParserEof(&parser)) {
         char *token;
         int tokenLen, type;
 
@@ -5870,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))
@@ -5898,7 +5872,7 @@ Jim_Obj *Jim_NewDictObj(Jim_Interp *interp, Jim_Obj *const *elements, int len)
     objPtr->internalRep.ptr = Jim_Alloc(sizeof(Jim_HashTable));
     Jim_InitHashTable(objPtr->internalRep.ptr, &JimDictHashTableType, interp);
     for (i = 0; i < len; i += 2)
-        DictAddElement(interp, objPtr, elements[i], elements[i+1]);
+        DictAddElement(interp, objPtr, elements[i], elements[i + 1]);
     return objPtr;
 }
 
@@ -5931,7 +5905,7 @@ int Jim_DictKey(Jim_Interp *interp, Jim_Obj *dictPtr, Jim_Obj *keyPtr,
 int Jim_DictKeysVector(Jim_Interp *interp, Jim_Obj *dictPtr,
         Jim_Obj *const *keyv, int keyc, Jim_Obj **objPtrPtr, int flags)
 {
-    Jim_Obj *objPtr;
+    Jim_Obj *objPtr = NULL;
     int i;
 
     if (keyc == 0) {
@@ -6037,37 +6011,37 @@ static Jim_ObjType indexObjType = {
 void UpdateStringOfIndex(struct Jim_Obj *objPtr)
 {
     int len;
-    char buf[JIM_INTEGER_SPACE+1];
+    char buf[JIM_INTEGER_SPACE + 1];
 
     if (objPtr->internalRep.indexValue >= 0)
         len = sprintf(buf, "%d", objPtr->internalRep.indexValue);
     else if (objPtr->internalRep.indexValue == -1)
         len = sprintf(buf, "end");
     else {
-        len = sprintf(buf, "end%d", objPtr->internalRep.indexValue+1);
+        len = sprintf(buf, "end%d", objPtr->internalRep.indexValue + 1);
     }
-    objPtr->bytes = Jim_Alloc(len+1);
-    memcpy(objPtr->bytes, buf, len+1);
+    objPtr->bytes = Jim_Alloc(len + 1);
+    memcpy(objPtr->bytes, buf, len + 1);
     objPtr->length = len;
 }
 
 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), "\": "
@@ -6076,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;
 }
 
@@ -6285,14 +6259,14 @@ 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) == ' ' ||
+    while (*(pc->p) == ' ' ||
           *(pc->p) == '\t' ||
           *(pc->p) == '\r' ||
           *(pc->p) == '\n' ||
-            (*(pc->p) == '\\' && *(pc->p+1) == '\n')) {
+            (*(pc->p) == '\\' && *(pc->p + 1) == '\n')) {
         pc->p++; pc->len--;
     }
 
@@ -6303,7 +6277,7 @@ int JimParseExpression(struct JimParserCtx *pc)
         pc->eof = 1;
         return JIM_OK;
     }
-    switch(*(pc->p)) {
+    switch (*(pc->p)) {
     case '(':
         pc->tstart = pc->tend = pc->p;
         pc->tline = pc->linenr;
@@ -6327,7 +6301,7 @@ int JimParseExpression(struct JimParserCtx *pc)
         break;
     case '-':
         if ((pc->tt == JIM_TT_NONE || pc->tt == JIM_TT_EXPR_OPERATOR) &&
-            isdigit((int)*(pc->p+1)))
+            isdigit((int)*(pc->p + 1)))
             return JimParseExprNumber(pc);
         else
             return JimParseExprOperator(pc);
@@ -6364,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;
@@ -6378,7 +6352,7 @@ int JimParseExprNumber(struct JimParserCtx *pc)
         if (*pc->p == '.')
             allowdot = 0;
         pc->p++; pc->len--;
-        if (!allowdot && *pc->p == 'e' && *(pc->p+1) == '-') {
+        if (!allowdot && *pc->p == 'e' && *(pc->p + 1) == '-') {
             pc->p += 2; pc->len -= 2;
         }
     }
@@ -6433,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++)
@@ -6443,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++)
@@ -6502,8 +6476,8 @@ void DupExprInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 static void ExprObjAddInstr(Jim_Interp *interp, ExprByteCode *expr,
         int opcode, char *str, int len)
 {
-    expr->opcode = Jim_Realloc(expr->opcode, sizeof(int)*(expr->len+1));
-    expr->obj = Jim_Realloc(expr->obj, sizeof(Jim_Obj*)*(expr->len+1));
+    expr->opcode = Jim_Realloc(expr->opcode, sizeof(int)*(expr->len + 1));
+    expr->obj = Jim_Realloc(expr->obj, sizeof(Jim_Obj*)*(expr->len + 1));
     expr->opcode[expr->len] = opcode;
     expr->obj[expr->len] = Jim_NewStringObjNoAlloc(interp, str, len);
     Jim_IncrRefCount(expr->obj[expr->len]);
@@ -6520,7 +6494,7 @@ static int ExprCheckCorrectness(ExprByteCode *expr)
      * and make sure at the end of the program there is
      * a single result on the stack. */
     for (i = 0; i < expr->len; i++) {
-        switch(expr->opcode[i]) {
+        switch (expr->opcode[i]) {
         case JIM_EXPROP_NUMBER:
         case JIM_EXPROP_STRING:
         case JIM_EXPROP_SUBST:
@@ -6620,23 +6594,23 @@ 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]) {
+        while (arity) {
+            switch (expr->opcode[leftindex]) {
             case JIM_EXPROP_NUMBER:
             case JIM_EXPROP_COMMAND:
             case JIM_EXPROP_VARIABLE:
@@ -6656,32 +6630,32 @@ static void ExprMakeLazy(Jim_Interp *interp, ExprByteCode *expr)
             leftindex--;
         }
         leftindex++;
-        expr->opcode = Jim_Realloc(expr->opcode, sizeof(int)*(expr->len+2));
-        expr->obj = Jim_Realloc(expr->obj, sizeof(Jim_Obj*)*(expr->len+2));
-        memmove(&expr->opcode[leftindex+2], &expr->opcode[leftindex],
+        expr->opcode = Jim_Realloc(expr->opcode, sizeof(int)*(expr->len + 2));
+        expr->obj = Jim_Realloc(expr->obj, sizeof(Jim_Obj*)*(expr->len + 2));
+        memmove(&expr->opcode[leftindex + 2], &expr->opcode[leftindex],
                 sizeof(int)*(expr->len-leftindex));
-        memmove(&expr->obj[leftindex+2], &expr->obj[leftindex],
+        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) {
-            expr->opcode[leftindex+1] = JIM_EXPROP_LOGICAND_LEFT;
-            expr->opcode[index] = JIM_EXPROP_LOGICAND_RIGHT;
-            expr->obj[leftindex+1] = Jim_NewStringObj(interp, "&L", -1);
-            expr->obj[index] = Jim_NewStringObj(interp, "&R", -1);
+        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_t] = JIM_EXPROP_LOGICAND_RIGHT;
+            expr->obj[leftindex + 1] = Jim_NewStringObj(interp, "&L", -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->obj[leftindex+1] = Jim_NewStringObj(interp, "|L", -1);
-            expr->obj[index] = Jim_NewStringObj(interp, "|R", -1);
+            expr->opcode[leftindex + 1] = JIM_EXPROP_LOGICOR_LEFT;
+            expr->opcode[index_t] = JIM_EXPROP_LOGICOR_RIGHT;
+            expr->obj[leftindex + 1] = Jim_NewStringObj(interp, "|L", -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]);
+        Jim_IncrRefCount(expr->obj[leftindex + 1]);
     }
 }
 
@@ -6709,7 +6683,7 @@ int SetExprFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
 
     Jim_InitStack(&stack);
     JimParserInit(&parser, exprText, exprTextLen, 1);
-    while(!JimParserEof(&parser)) {
+    while (!JimParserEof(&parser)) {
         char *token;
         int len, type;
 
@@ -6722,7 +6696,7 @@ int SetExprFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
             Jim_Free(token);
             break;
         }
-        switch(type) {
+        switch (type) {
         case JIM_TT_STR:
             ExprObjAddInstr(interp, expr, JIM_EXPROP_STRING, token, len);
             break;
@@ -6743,7 +6717,7 @@ int SetExprFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
             break;
         case JIM_TT_EXPR_OPERATOR:
             op = JimExprOperatorInfo(token);
-            while(1) {
+            while (1) {
                 Jim_ExprOperator *stackTopOp;
 
                 if (Jim_StackPeek(&stack) != NULL) {
@@ -6770,7 +6744,7 @@ int SetExprFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
         case JIM_TT_SUBEXPR_END:
             {
                 int found = 0;
-                while(Jim_StackLen(&stack)) {
+                while (Jim_StackLen(&stack)) {
                     char *opstr = Jim_StackPop(&stack);
                     if (!strcmp(opstr, "(")) {
                         Jim_Free(opstr);
@@ -6843,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)
@@ -6961,21 +6935,21 @@ int Jim_EvalExpression(Jim_Interp *interp, Jim_Obj *exprObjPtr,
             }
             Jim_DecrRefCount(interp, A);
             Jim_DecrRefCount(interp, B);
-            switch(expr->opcode[i]) {
-            case JIM_EXPROP_ADD: wC = wA+wB; break;
+            switch (expr->opcode[i]) {
+            case JIM_EXPROP_ADD: wC = wA + wB; break;
             case JIM_EXPROP_SUB: wC = wA-wB; break;
             case JIM_EXPROP_MUL: wC = wA*wB; break;
-            case JIM_EXPROP_LT: wC = wA<wB; break;
-            case JIM_EXPROP_GT: wC = wA>wB; break;
-            case JIM_EXPROP_LTE: wC = wA<=wB; break;
-            case JIM_EXPROP_GTE: wC = wA>=wB; break;
-            case JIM_EXPROP_LSHIFT: wC = wA<<wB; break;
-            case JIM_EXPROP_RSHIFT: wC = wA>>wB; break;
-            case JIM_EXPROP_NUMEQ: wC = wA==wB; break;
-            case JIM_EXPROP_NUMNE: wC = wA!=wB; break;
+            case JIM_EXPROP_LT: wC = wA < wB; break;
+            case JIM_EXPROP_GT: wC = wA > wB; break;
+            case JIM_EXPROP_LTE: wC = wA <= wB; break;
+            case JIM_EXPROP_GTE: wC = wA >= wB; break;
+            case JIM_EXPROP_LSHIFT: wC = wA << wB; break;
+            case JIM_EXPROP_RSHIFT: wC = wA >> wB; break;
+            case JIM_EXPROP_NUMEQ: wC = wA == wB; break;
+            case JIM_EXPROP_NUMNE: wC = wA != wB; break;
             case JIM_EXPROP_BITAND: wC = wA&wB; break;
             case JIM_EXPROP_BITXOR: wC = wA^wB; break;
-            case JIM_EXPROP_BITOR: wC = wA|wB; break;
+            case JIM_EXPROP_BITOR: wC = wA | wB; break;
             case JIM_EXPROP_POW: wC = JimPowWide(wA,wB); break;
             case JIM_EXPROP_LOGICAND_LEFT:
                 if (wA == 0) {
@@ -7008,7 +6982,7 @@ int Jim_EvalExpression(Jim_Interp *interp, Jim_Obj *exprObjPtr,
                 wC = _rotl(uA,(unsigned long)wB);
 #else
                 const unsigned int S = sizeof(unsigned long) * 8;
-                wC = (unsigned long)((uA<<wB)|(uA>>(S-wB)));
+                wC = (unsigned long)((uA << wB) | (uA >> (S-wB)));
 #endif
                 break;
             }
@@ -7018,7 +6992,7 @@ int Jim_EvalExpression(Jim_Interp *interp, Jim_Obj *exprObjPtr,
                 wC = _rotr(uA,(unsigned long)wB);
 #else
                 const unsigned int S = sizeof(unsigned long) * 8;
-                wC = (unsigned long)((uA>>wB)|(uA<<(S-wB)));
+                wC = (unsigned long)((uA >> wB) | (uA << (S-wB)));
 #endif
                 break;
             }
@@ -7052,7 +7026,7 @@ trydouble:
             }
             Jim_DecrRefCount(interp, A);
             Jim_DecrRefCount(interp, B);
-            switch(expr->opcode[i]) {
+            switch (expr->opcode[i]) {
             case JIM_EXPROP_ROTL:
             case JIM_EXPROP_ROTR:
             case JIM_EXPROP_LSHIFT:
@@ -7066,16 +7040,16 @@ 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_ADD: dC = dA + dB; break;
             case JIM_EXPROP_SUB: dC = dA-dB; break;
             case JIM_EXPROP_MUL: dC = dA*dB; break;
-            case JIM_EXPROP_LT: dC = dA<dB; break;
-            case JIM_EXPROP_GT: dC = dA>dB; break;
-            case JIM_EXPROP_LTE: dC = dA<=dB; break;
-            case JIM_EXPROP_GTE: dC = dA>=dB; break;
-            case JIM_EXPROP_NUMEQ: dC = dA==dB; break;
-            case JIM_EXPROP_NUMNE: dC = dA!=dB; break;
+            case JIM_EXPROP_LT: dC = dA < dB; break;
+            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:
                 if (dA == 0) {
                     i += (int)dB;
@@ -7109,7 +7083,7 @@ trydouble:
 retry_as_string:
             sA = Jim_GetString(A, &Alen);
             sB = Jim_GetString(B, &Blen);
-            switch(opcode) {
+            switch (opcode) {
             case JIM_EXPROP_STREQ:
                 if (Alen == Blen && memcmp(sA, sB, Alen) ==0)
                     wC = 1;
@@ -7146,7 +7120,7 @@ retry_as_string:
                 goto trydouble_unary;
             }
             Jim_DecrRefCount(interp, A);
-            switch(expr->opcode[i]) {
+            switch (expr->opcode[i]) {
             case JIM_EXPROP_NOT: wC = !wA; break;
             case JIM_EXPROP_BITNOT: wC = ~wA; break;
             case JIM_EXPROP_LOGICAND_RIGHT:
@@ -7167,7 +7141,7 @@ trydouble_unary:
                 goto err;
             }
             Jim_DecrRefCount(interp, A);
-            switch(expr->opcode[i]) {
+            switch (expr->opcode[i]) {
             case JIM_EXPROP_NOT: dC = !dA; break;
             case JIM_EXPROP_LOGICAND_RIGHT:
             case JIM_EXPROP_LOGICOR_RIGHT: dC = (dA != 0); break;
@@ -7247,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;
@@ -7347,7 +7321,7 @@ static int SetScanFmtFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
 
     Jim_FreeIntRep(interp, objPtr);
     /* Count how many conversions could take place maximally */
-    for (i=0, maxCount=0; i < maxFmtLen; ++i)
+    for (i = 0, maxCount = 0; i < maxFmtLen; ++i)
         if (fmt[i] == '%')
             ++maxCount;
     /* Calculate an approximation of the memory necessary */
@@ -7362,17 +7336,17 @@ static int SetScanFmtFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
     memset(fmtObj, 0, approxSize);
     fmtObj->size = approxSize;
     fmtObj->maxPos = 0;
-    fmtObj->scratch = (char*)&fmtObj->descr[maxCount+1];
+    fmtObj->scratch = (char*)&fmtObj->descr[maxCount + 1];
     fmtObj->stringRep = fmtObj->scratch + maxFmtLen + 3 + 1;
     memcpy(fmtObj->stringRep, fmt, maxFmtLen);
     buffer = fmtObj->stringRep + maxFmtLen + 1;
     objPtr->internalRep.ptr = fmtObj;
     objPtr->typePtr = &scanFmtStringObjType;
-    for (i=0, curr=0; fmt < fmtEnd; ++fmt) {
-        int width=0, skip;
+    for (i = 0, curr = 0; fmt < fmtEnd; ++fmt) {
+        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;
@@ -7385,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;
@@ -7413,7 +7387,7 @@ static int SetScanFmtFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
                     return JIM_ERR;
                 }
                 /* Look if this position was already used */
-                for (prev=0; prev < curr; ++prev) {
+                for (prev = 0; prev < curr; ++prev) {
                     if (fmtObj->descr[prev].pos == -1) continue;
                     if (fmtObj->descr[prev].pos == descr->pos) {
                         fmtObj->error = "same \"%n$\" conversion specifier "
@@ -7448,17 +7422,17 @@ 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 */
             while (swapped) {
                 swapped = 0;
-                for (j=beg+1; j < end-1; ++j) {
-                    if (buffer[j] == '-' && buffer[j-1] > buffer[j+1]) {
+                for (j = beg + 1; j < end-1; ++j) {
+                    if (buffer[j] == '-' && buffer[j-1] > buffer[j + 1]) {
                         char tmp = buffer[j-1];
-                        buffer[j-1] = buffer[j+1];
-                        buffer[j+1] = tmp;
+                        buffer[j-1] = buffer[j + 1];
+                        buffer[j + 1] = tmp;
                         swapped = 1;
                     }
                 }
@@ -7467,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";
@@ -7501,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)
 {
@@ -7537,15 +7511,15 @@ JimScanAString(Jim_Interp *interp, const char *sdescr, const char *str)
 {
     size_t i;
     Jim_Obj *result;
-    char charset[256/8+1];  /* A Charset may contain max 256 chars */
-    char *buffer = Jim_Alloc(strlen(str)+1), *anchor = buffer;
+    char charset[256/8 + 1];  /* A Charset may contain max 256 chars */
+    char *buffer = Jim_Alloc(strlen(str) + 1), *anchor = buffer;
 
     /* First init charset to nothing or all, depending if a specified
      * or an unspecified string has to be parsed */
     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? */
@@ -7561,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 */
@@ -7571,9 +7545,9 @@ 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)
+        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))
@@ -7594,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)                             \
@@ -7602,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;
@@ -7612,11 +7586,11 @@ static int ScanOneEntry(Jim_Interp *interp, const char *str, long pos,
     if (descr->prefix) {
         /* There was a prefix given before the conversion, skip it and adjust
          * the string-to-be-parsed accordingly */
-        for (i=0; str[pos] && descr->prefix[i]; ++i) {
+        for (i = 0; str[pos] && descr->prefix[i]; ++i) {
             /* 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 */
@@ -7654,14 +7628,14 @@ static int ScanOneEntry(Jim_Interp *interp, const char *str, long pos,
                 scanned += 1;
                 break;
             case 'd': case 'o': case 'x': case 'u': case 'i': {
-                jim_wide jwvalue;
-                long lvalue;
+                jim_wide jwvalue = 0;
+                long lvalue = 0;
                 char *endp;  /* Position where the number finished */
                 int base = descr->type == 'o' ? 8
                     : descr->type == 'x' ? 16
                     : descr->type == 'i' ? 0
                     : 10;
-                    
+
                 do {
                     /* Try to scan a number with the given base */
                     if (descr->modifier == 'l')
@@ -7683,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;
@@ -7748,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;
@@ -7769,12 +7743,12 @@ Jim_Obj *Jim_ScanString(Jim_Interp *interp, Jim_Obj *strObjPtr,
     /* Create a list and fill it with empty strings up to max specified XPG3 */
     resultList = Jim_NewListObj(interp, 0, 0);
     if (fmtObj->maxPos > 0) {
-        for (i=0; i < fmtObj->maxPos; ++i)
+        for (i = 0; i < fmtObj->maxPos; ++i)
             Jim_ListAppendElement(interp, resultList, emptyStr);
         JimListGetElements(interp, resultList, &resultc, &resultVec);
     }
     /* Now handle every partial format description */
-    for (i=0, pos=0; i < fmtObj->count; ++i) {
+    for (i = 0, pos = 0; i < fmtObj->count; ++i) {
         ScanFmtPartDescr *descr = &(fmtObj->descr[i]);
         Jim_Obj *value = 0;
         /* Only last type may be "literal" w/o conversion - skip it! */
@@ -7850,13 +7824,13 @@ static void JimRandomBytes(Jim_Interp *interp, void *dest, unsigned int len)
     prng = interp->prngState;
     /* generates 'len' bytes of pseudo-random numbers */
     for (x = 0; x < len; x++) {
-        prng->i = (prng->i+1) & 0xff;
+        prng->i = (prng->i + 1) & 0xff;
         si = prng->sbox[prng->i];
         prng->j = (prng->j + si) & 0xff;
         sj = prng->sbox[prng->j];
         prng->sbox[prng->i] = sj;
         prng->sbox[prng->j] = si;
-        *destByte++ = prng->sbox[(si+sj)&0xff];
+        *destByte++ = prng->sbox[(si + sj)&0xff];
     }
 }
 
@@ -7896,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);
 
@@ -7920,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;
@@ -7945,17 +7919,17 @@ 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)
                 continue;
             prefix = Jim_GetString(prefixObjPtr, &prefixlen);
-            if (prefixlen+strlen(pathName)+1 >= JIM_PATH_LEN)
+            if (prefixlen + strlen(pathName) + 1 >= JIM_PATH_LEN)
                 continue;
             if (*pathName == '/') {
                 strcpy(buf, pathName);
-            }    
+            }
             else if (prefixlen && prefix[prefixlen-1] == '/')
                 sprintf(buf, "%s%s", prefix, pathName);
             else
@@ -7995,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);
@@ -8012,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)
@@ -8031,12 +8005,12 @@ static int JimPackageVersionToInt(Jim_Interp *interp, const char *v,
     if (p == NULL) goto badfmt;
     *p = '\0';
     majorStr = copy;
-    minorStr = p+1;
+    minorStr = p + 1;
 
     if (Jim_StringToWide(majorStr, &major, 10) != JIM_OK ||
         Jim_StringToWide(minorStr, &minor, 10) != JIM_OK)
         goto badfmt;
-    *intPtr = (int)(major*100+minor);
+    *intPtr = (int)(major*100 + minor);
     Jim_Free(copy);
     return JIM_OK;
 
@@ -8050,7 +8024,7 @@ badfmt:
     return JIM_ERR;
 }
 
-#define JIM_MATCHVER_EXACT (1<<JIM_PRIV_FLAG_SHIFT)
+#define JIM_MATCHVER_EXACT (1 << JIM_PRIV_FLAG_SHIFT)
 static int JimPackageMatchVersion(int needed, int actual, int flags)
 {
     if (needed == JIM_PKG_ANY_VERSION) return 1;
@@ -8116,17 +8090,17 @@ DIR *opendir(const char *name)
 {
     DIR *dir = 0;
 
-    if(name && name[0]) {
+    if (name && name[0]) {
         size_t base_length = strlen(name);
         const char *all = /* search pattern must end with suitable wildcard */
             strchr("/\\", name[base_length - 1]) ? "*" : "/*";
 
-        if((dir = (DIR *) Jim_Alloc(sizeof *dir)) != 0 &&
+        if ((dir = (DIR *) Jim_Alloc(sizeof *dir)) != 0 &&
            (dir->name = (char *) Jim_Alloc(base_length + strlen(all) + 1)) != 0)
         {
             strcat(strcpy(dir->name, name), all);
 
-            if((dir->handle = (long) _findfirst(dir->name, &dir->info)) != -1)
+            if ((dir->handle = (long) _findfirst(dir->name, &dir->info)) != -1)
                 dir->result.d_name = 0;
             else { /* rollback */
                 Jim_Free(dir->name);
@@ -8148,13 +8122,13 @@ int closedir(DIR *dir)
 {
     int result = -1;
 
-    if(dir) {
-        if(dir->handle != -1)
+    if (dir) {
+        if (dir->handle != -1)
             result = _findclose(dir->handle);
         Jim_Free(dir->name);
         Jim_Free(dir);
     }
-    if(result == -1) /* map all errors to EBADF */
+    if (result == -1) /* map all errors to EBADF */
         errno = EBADF;
     return result;
 }
@@ -8163,8 +8137,8 @@ struct dirent *readdir(DIR *dir)
 {
     struct dirent *result = 0;
 
-    if(dir && dir->handle != -1) {
-        if(!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1) {
+    if (dir && dir->handle != -1) {
+        if (!dir->result.d_name || _findnext(dir->handle, &dir->info) != -1) {
             result         = &dir->result;
             result->d_name = dir->info.name;
         }
@@ -8202,20 +8176,20 @@ static char *JimFindBestPackage(Jim_Interp *interp, char **prefixes,
             int fileNameLen = strlen(fileName);
 
             if (strncmp(fileName, "jim-", 4) == 0 &&
-                strncmp(fileName+4, pkgName, pkgNameLen) == 0 &&
-                *(fileName+4+pkgNameLen) == '-' &&
+                strncmp(fileName + 4, pkgName, pkgNameLen) == 0 &&
+                *(fileName + 4+pkgNameLen) == '-' &&
                 fileNameLen > 4 && /* note that this is not really useful */
-                (strncmp(fileName+fileNameLen-4, ".tcl", 4) == 0 ||
-                 strncmp(fileName+fileNameLen-4, ".dll", 4) == 0 ||
-                 strncmp(fileName+fileNameLen-3, ".so", 3) == 0))
+                (strncmp(fileName + fileNameLen-4, ".tcl", 4) == 0 ||
+                 strncmp(fileName + fileNameLen-4, ".dll", 4) == 0 ||
+                 strncmp(fileName + fileNameLen-3, ".so", 3) == 0))
             {
-                char ver[6]; /* xx.yy<nulterm> */
+                char ver[6]; /* xx.yy < nulterm> */
                 char *p = strrchr(fileName, '.');
                 int verLen, fileVer;
 
-                verLen = p - (fileName+4+pkgNameLen+1);
+                verLen = p - (fileName + 4+pkgNameLen + 1);
                 if (verLen < 3 || verLen > 5) continue;
-                memcpy(ver, fileName+4+pkgNameLen+1, verLen);
+                memcpy(ver, fileName + 4+pkgNameLen + 1, verLen);
                 ver[verLen] = '\0';
                 if (JimPackageVersionToInt(interp, ver, &fileVer, JIM_NONE)
                         != JIM_OK) continue;
@@ -8224,7 +8198,7 @@ static char *JimFindBestPackage(Jim_Interp *interp, char **prefixes,
                 {
                     bestVer = fileVer;
                     Jim_Free(bestPackage);
-                    bestPackage = Jim_Alloc(strlen(buf)+strlen(fileName)+2);
+                    bestPackage = Jim_Alloc(strlen(buf) + strlen(fileName) + 2);
                     sprintf(bestPackage, "%s/%s", buf, fileName);
                 }
             }
@@ -8380,19 +8354,19 @@ static int JimUnknown(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
      * the "unknown" string, it is used in order to
      * avoid to lookup the unknown command every time
      * but instread to cache the result. */
-    if (argc+1 <= JIM_EVAL_SARGV_LEN)
+    if (argc + 1 <= JIM_EVAL_SARGV_LEN)
         v = sv;
     else
-        v = Jim_Alloc(sizeof(Jim_Obj*)*(argc+1));
+        v = Jim_Alloc(sizeof(Jim_Obj*)*(argc + 1));
     /* Make a copy of the arguments vector, but shifted on
      * the right of one position. The command name of the
      * command will be instead the first argument of the
      * [unknonw] call. */
-    memcpy(v+1, argv, sizeof(Jim_Obj*)*argc);
+    memcpy(v + 1, argv, sizeof(Jim_Obj*)*argc);
     v[0] = interp->unknown;
     /* Call it */
     interp->unknown_called++;
-    retCode = Jim_EvalObjVector(interp, argc+1, v);
+    retCode = Jim_EvalObjVector(interp, argc + 1, v);
     interp->unknown_called--;
 
     /* Clean up */
@@ -8466,7 +8440,7 @@ int Jim_InterpolateTokens(Jim_Interp *interp, ScriptToken *token,
     /* Compute every token forming the argument
      * in the intv objects vector. */
     for (i = 0; i < tokens; i++) {
-        switch(token[i].type) {
+        switch (token[i].type) {
         case JIM_TT_ESC:
         case JIM_TT_STR:
             intv[i] = token[i].objPtr;
@@ -8508,7 +8482,7 @@ int Jim_InterpolateTokens(Jim_Interp *interp, ScriptToken *token,
      * object. */
     objPtr = Jim_NewStringObjNoAlloc(interp,
             NULL, 0);
-    s = objPtr->bytes = Jim_Alloc(totlen+1);
+    s = objPtr->bytes = Jim_Alloc(totlen + 1);
     objPtr->length = totlen;
     for (i = 0; i < tokens; i++) {
         memcpy(s, intv[i]->bytes, intv[i]->length);
@@ -8535,11 +8509,11 @@ 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) {
-        (*argv) = Jim_Realloc(*argv, sizeof(Jim_Obj*)*((*argcPtr)+1));
+        (*argv) = Jim_Realloc(*argv, sizeof(Jim_Obj*)*((*argcPtr) + 1));
         /* refcount of objPtr not incremented because
          * we are actually transfering a reference from
          * the old 'argv' to the expanded one. */
@@ -8549,7 +8523,7 @@ void Jim_ExpandArgument(Jim_Interp *interp, Jim_Obj ***argv,
         int len, i;
 
         Jim_ListLength(interp, objPtr, &len);
-        (*argv) = Jim_Realloc(*argv, sizeof(Jim_Obj*)*((*argcPtr)+len));
+        (*argv) = Jim_Realloc(*argv, sizeof(Jim_Obj*)*((*argcPtr) + len));
         for (i = 0; i < len; i++) {
             (*argv)[*argcPtr] = objPtr->internalRep.listValue.ele[i];
             Jim_IncrRefCount(objPtr->internalRep.listValue.ele[i]);
@@ -8640,7 +8614,7 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr)
             if (tokens == 1) {
                 /* Fast path if the token does not
                  * need interpolation */
-                switch(token[i].type) {
+                switch (token[i].type) {
                 case JIM_TT_ESC:
                 case JIM_TT_STR:
                     argv[j] = token[i].objPtr;
@@ -8680,13 +8654,13 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr)
                 /* For interpolation we call an helper
                  * function doing the work for us. */
                 if ((retcode = Jim_InterpolateTokens(interp,
-                        token+i, tokens, &tmpObjPtr)) != JIM_OK)
+                        token + i, tokens, &tmpObjPtr)) != JIM_OK)
                 {
                     goto err;
                 }
                 argv[j] = tmpObjPtr;
                 Jim_IncrRefCount(argv[j]);
-                i += tokens+1;
+                i += tokens + 1;
             }
         }
         /* Handle {expand} expansion */
@@ -8696,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)
@@ -8832,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) {
@@ -8852,16 +8826,16 @@ int JimCallProcedure(Jim_Interp *interp, Jim_Cmd *cmd, int argc,
             Jim_ListIndex(interp, argObjPtr, 1, &valueObjPtr, JIM_NONE);
         }
         else {
-            valueObjPtr = argv[i+1];
+            valueObjPtr = argv[i + 1];
         }
         Jim_SetVariable(interp, nameObjPtr, valueObjPtr);
     }
     /* 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);
+        listObjPtr = Jim_NewListObj(interp, argv + i, argc-i);
         Jim_ListIndex(interp, cmd->argListObjPtr, num_args, &objPtr, JIM_NONE);
         Jim_SetVariable(interp, objPtr, listObjPtr);
     }
@@ -8906,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);
@@ -8917,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);
 }
 
 
@@ -8954,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]);
@@ -8970,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);
+       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,
@@ -8986,12 +8960,12 @@ int Jim_EvalFile(Jim_Interp *interp, const char *filename)
     buflen = 1024;
     maxlen = totread = 0;
     while (1) {
-        if (maxlen < totread+buflen+1) {
-            maxlen = totread+buflen+1;
+        if (maxlen < totread + buflen + 1) {
+            maxlen = totread + buflen + 1;
             prg = Jim_Realloc(prg, maxlen);
         }
                /* do not use Jim_fread() - this is really a file */
-        if ((nread = fread(prg+totread, 1, buflen, fp)) == 0) break;
+        if ((nread = fread(prg + totread, 1, buflen, fp)) == 0) break;
         totread += nread;
     }
     prg[totread] = '\0';
@@ -9032,7 +9006,7 @@ static int JimParseSubst(struct JimParserCtx *pc, int flags)
         pc->eof = 1;
         return JIM_OK;
     }
-    switch(*pc->p) {
+    switch (*pc->p) {
     case '[':
         retval = JimParseCmd(pc);
         if (flags & JIM_SUBST_NOCMD) {
@@ -9057,7 +9031,7 @@ static int JimParseSubst(struct JimParserCtx *pc, int flags)
                     pc->tt = JIM_TT_ESC;
                 if (*pc->tstart == '{') {
                     pc->tstart--;
-                    if (*(pc->tend+1))
+                    if (*(pc->tend + 1))
                         pc->tend++;
                 }
             }
@@ -9089,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);
@@ -9106,7 +9080,7 @@ int SetSubstFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr, int flags)
     script->fileName = NULL;
 
     JimParserInit(&parser, scriptText, scriptTextLen, 1);
-    while(1) {
+    while (1) {
         char *token;
         int len, type, linenr;
 
@@ -9123,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);
 
@@ -9149,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) {
@@ -9174,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). */
@@ -9182,7 +9156,7 @@ int Jim_SubstObj(Jim_Interp *interp, Jim_Obj *substObjPtr,
     for (i = 0; i < len; i++) {
         Jim_Obj *objPtr;
 
-        switch(token[i].type) {
+        switch (token[i].type) {
         case JIM_TT_STR:
         case JIM_TT_ESC:
             Jim_AppendObj(interp, resObjPtr, token[i].objPtr);
@@ -9322,6 +9296,7 @@ void JimRegisterCoreApi(Jim_Interp *interp)
   JIM_REGISTER_API(CollectIfNeeded);
   JIM_REGISTER_API(GetIndex);
   JIM_REGISTER_API(NewListObj);
+  JIM_REGISTER_API(ListInsertElements);
   JIM_REGISTER_API(ListAppendElement);
   JIM_REGISTER_API(ListAppendList);
   JIM_REGISTER_API(ListLength);
@@ -9371,12 +9346,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);
@@ -9397,7 +9372,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);
@@ -9407,7 +9382,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;
@@ -9416,7 +9391,7 @@ void Jim_WrongNumArgs(Jim_Interp *interp, int argc, Jim_Obj *const *argv,
     Jim_AppendString(interp, objPtr, "wrong # args: should be \"", -1);
     for (i = 0; i < argc; i++) {
         Jim_AppendObj(interp, objPtr, argv[i]);
-        if (!(i+1 == argc && msg[0] == '\0'))
+        if (!(i + 1 == argc && msg[0] == '\0'))
             Jim_AppendString(interp, objPtr, " ", 1);
     }
     Jim_AppendString(interp, objPtr, msg, -1);
@@ -9430,12 +9405,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,
@@ -9456,8 +9431,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);
@@ -9475,7 +9450,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,
@@ -9517,7 +9492,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;
@@ -9535,12 +9510,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;
@@ -9548,7 +9523,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;
@@ -9574,7 +9549,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;
@@ -9699,7 +9674,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;
@@ -9716,7 +9691,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;
@@ -9735,13 +9710,13 @@ static int Jim_IncrCoreCommand(Jim_Interp *interp, int argc,
     if (Jim_GetWide(interp, intObjPtr, &wideValue) != JIM_OK)
         return JIM_ERR;
     if (Jim_IsShared(intObjPtr)) {
-        intObjPtr = Jim_NewIntObj(interp, wideValue+increment);
+        intObjPtr = Jim_NewIntObj(interp, wideValue + increment);
         if (Jim_SetVariable(interp, argv[1], intObjPtr) != JIM_OK) {
             Jim_FreeNewObj(interp, intObjPtr);
             return JIM_ERR;
         }
     } else {
-        Jim_SetWide(interp, intObjPtr, wideValue+increment);
+        Jim_SetWide(interp, intObjPtr, wideValue + increment);
         /* The following step is required in order to invalidate the
          * string repr of "FOO" if the var name is on the form of "FOO(IDX)" */
         if (Jim_SetVariable(interp, argv[1], intObjPtr) != JIM_OK) {
@@ -9753,7 +9728,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) {
@@ -9782,10 +9757,10 @@ 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) {
+        switch (expr->len) {
         case 1:
             if (expr->opcode[0] != JIM_EXPROP_VARIABLE &&
                 expr->opcode[0] != JIM_EXPROP_NUMBER)
@@ -9801,7 +9776,7 @@ static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc,
                 (expr->opcode[1] != JIM_EXPROP_NUMBER &&
                  expr->opcode[1] != JIM_EXPROP_VARIABLE))
                 goto noopt;
-            switch(expr->opcode[2]) {
+            switch (expr->opcode[2]) {
             case JIM_EXPROP_LT:
             case JIM_EXPROP_LTE:
             case JIM_EXPROP_GT:
@@ -9825,7 +9800,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];
@@ -9846,7 +9821,7 @@ static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc,
                 }
                 if (!wideValue) break;
                 if ((retval = Jim_EvalObj(interp, argv[2])) != JIM_OK) {
-                    switch(retval) {
+                    switch (retval) {
                     case JIM_BREAK:
                         if (varAObjPtr)
                             Jim_DecrRefCount(interp, varAObjPtr);
@@ -9865,7 +9840,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];
@@ -9892,12 +9867,11 @@ 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;
                     }
                 }
-                switch(cmpType) {
+                switch (cmpType) {
                 case JIM_EXPROP_LT:
                     cmpRes = wideValueA < wideValueB; break;
                 case JIM_EXPROP_LTE:
@@ -9913,7 +9887,7 @@ static int Jim_WhileCoreCommand(Jim_Interp *interp, int argc,
                 }
                 if (!cmpRes) break;
                 if ((retval = Jim_EvalObj(interp, argv[2])) != JIM_OK) {
-                    switch(retval) {
+                    switch (retval) {
                     case JIM_BREAK:
                         Jim_DecrRefCount(interp, varAObjPtr);
                         if (varBObjPtr)
@@ -9946,14 +9920,14 @@ 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) {
+            switch (retval) {
             case JIM_BREAK:
                 goto out;
                 break;
@@ -9971,7 +9945,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;
@@ -9992,7 +9966,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;
@@ -10090,7 +10064,7 @@ static int Jim_ForCoreCommand(Jim_Interp *interp, int argc,
             }
             /* Eval body */
             if ((retval = Jim_EvalObj(interp, argv[4])) != JIM_OK) {
-                switch(retval) {
+                switch (retval) {
                 case JIM_BREAK:
                     if (stopVarNamePtr)
                         Jim_DecrRefCount(interp, stopVarNamePtr);
@@ -10128,7 +10102,7 @@ static int Jim_ForCoreCommand(Jim_Interp *interp, int argc,
                     Jim_DecrRefCount(interp, varNamePtr);
                     goto evalnext;
                 }
-                auxObjPtr = Jim_NewIntObj(interp, currentVal+1);
+                auxObjPtr = Jim_NewIntObj(interp, currentVal + 1);
                 if (Jim_SetVariable(interp, varNamePtr, auxObjPtr) == JIM_ERR) {
                     if (stopVarNamePtr)
                         Jim_DecrRefCount(interp, stopVarNamePtr);
@@ -10150,16 +10124,16 @@ 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) {
+            switch (retval) {
             case JIM_BREAK:
                 goto out;
                 break;
@@ -10173,7 +10147,7 @@ testcond:
 evalnext:
         /* Eval next */
         if ((retval = Jim_EvalObj(interp, argv[3])) != JIM_OK) {
-            switch(retval) {
+            switch (retval) {
             case JIM_BREAK:
                 goto out;
                 break;
@@ -10191,7 +10165,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;
@@ -10215,38 +10189,38 @@ static int JimForeachMapHelper(Jim_Interp *interp, int argc,
     /* Initialize iterators and remember max nbr elements each list */
     memset(listsIdx, 0, nbrOfLists * sizeof(int));
     /* Remember lengths of all lists and calculate how much rounds to loop */
-    for (i=0; i < nbrOfLists*2; i += 2) {
+    for (i = 0; i < nbrOfLists*2; i += 2) {
         div_t cnt;
         int count;
-        Jim_ListLength(interp, argv[i+1], &listsEnd[i]);
-        Jim_ListLength(interp, argv[i+2], &listsEnd[i+1]);
+        Jim_ListLength(interp, argv[i + 1], &listsEnd[i]);
+        Jim_ListLength(interp, argv[i + 2], &listsEnd[i + 1]);
         if (listsEnd[i] == 0) {
             Jim_SetResultString(interp, "foreach varlist is empty", -1);
             goto err;
         }
-        cnt = div(listsEnd[i+1], listsEnd[i]);
+        cnt = div(listsEnd[i + 1], listsEnd[i]);
         count = cnt.quot + (cnt.rem ? 1 : 0);
         if (count > nbrOfLoops)
             nbrOfLoops = count;
     }
-    for (; nbrOfLoops-- > 0; ) {
-        for (i=0; i < nbrOfLists; ++i) {
+    for (; nbrOfLoops-- > 0;) {
+        for (i = 0; i < nbrOfLists; ++i) {
             int varIdx = 0, var = i * 2;
             while (varIdx < listsEnd[var]) {
                 Jim_Obj *varName, *ele;
                 int lst = i * 2 + 1;
-                if (Jim_ListIndex(interp, argv[var+1], varIdx, &varName, JIM_ERRMSG)
+                if (Jim_ListIndex(interp, argv[var + 1], varIdx, &varName, JIM_ERRMSG)
                         != JIM_OK)
                         goto err;
                 if (listsIdx[i] < listsEnd[lst]) {
-                    if (Jim_ListIndex(interp, argv[lst+1], listsIdx[i], &ele, JIM_ERRMSG)
+                    if (Jim_ListIndex(interp, argv[lst + 1], listsIdx[i], &ele, JIM_ERRMSG)
                         != JIM_OK)
                         goto err;
                     if (Jim_SetVariable(interp, varName, ele) != JIM_OK) {
                         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;
@@ -10284,30 +10258,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? */
@@ -10316,11 +10290,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++;
@@ -10349,14 +10323,14 @@ 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;
+    int retcode = JIM_ERR, matchOpt = SWITCH_EXACT, opt = 1, patCount, i;
     Jim_Obj *command = 0, *const *caseList = 0, *strObj;
     Jim_Obj *script = 0;
     if (argc < 3) goto wrongnumargs;
-    for (opt=1; opt < argc; ++opt) {
+    for (opt = 1; opt < argc; ++opt) {
         const char *option = Jim_GetString(argv[opt], 0);
         if (*option != '-') break;
         else if (strncmp(option, "--", 2) == 0) { ++opt; break; }
@@ -10365,13 +10339,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;
     }
@@ -10384,18 +10358,18 @@ static int Jim_SwitchCoreCommand(Jim_Interp *interp, int argc,
     } else
         caseList = &argv[opt];
     if (patCount == 0 || patCount % 2 != 0) goto wrongnumargs;
-    for (i=0; script == 0 && i < patCount; i += 2) {
+    for (i = 0; script == 0 && i < patCount; i += 2) {
         Jim_Obj *patObj = caseList[i];
         if (!Jim_CompareStringImmediate(interp, patObj, "default")
             || i < (patCount-2)) {
             switch (matchOpt) {
                 case SWITCH_EXACT:
                     if (Jim_StringEqObj(strObj, patObj, 0))
-                        script = caseList[i+1];
+                        script = caseList[i + 1];
                     break;
                 case SWITCH_GLOB:
                     if (Jim_StringMatchObj(patObj, strObj, 0))
-                        script = caseList[i+1];
+                        script = caseList[i + 1];
                     break;
                 case SWITCH_RE:
                     command = Jim_NewStringObj(interp, "regexp", -1);
@@ -10424,7 +10398,7 @@ static int Jim_SwitchCoreCommand(Jim_Interp *interp, int argc,
                         goto err;
                     }
                     if (matching)
-                        script = caseList[i+1];
+                        script = caseList[i + 1];
                     break;
                 }
                 default:
@@ -10434,12 +10408,12 @@ static int Jim_SwitchCoreCommand(Jim_Interp *interp, int argc,
                     goto err;
             }
         } else {
-          script = caseList[i+1];
+          script = caseList[i + 1];
         }
     }
-    for(; i < patCount && Jim_CompareStringImmediate(interp, script, "-");
+    for (; i < patCount && Jim_CompareStringImmediate(interp, script, "-");
         i += 2)
-        script = caseList[i+1];
+        script = caseList[i + 1];
     if (script && Jim_CompareStringImmediate(interp, script, "-")) {
         Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
         Jim_AppendStrings(interp, Jim_GetResult(interp),
@@ -10457,27 +10431,27 @@ 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;
 
-    listObjPtr = Jim_NewListObj(interp, argv+1, argc-1);
+    listObjPtr = Jim_NewListObj(interp, argv + 1, argc-1);
     Jim_SetResult(interp, listObjPtr);
     return JIM_OK;
 }
 
 /* [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 ?...?");
@@ -10487,11 +10461,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. */
@@ -10508,7 +10482,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;
@@ -10523,7 +10497,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;
@@ -10557,10 +10531,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) {
@@ -10571,14 +10545,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:
@@ -10589,7 +10563,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) {
@@ -10601,7 +10575,7 @@ static int Jim_LsetCoreCommand(Jim_Interp *interp, int argc,
         Jim_SetResult(interp, argv[2]);
         return JIM_OK;
     }
-    if (Jim_SetListIndex(interp, argv[1], argv+2, argc-3, argv[argc-1])
+    if (Jim_SetListIndex(interp, argv[1], argv + 2, argc-3, argv[argc-1])
             == JIM_ERR) return JIM_ERR;
     return JIM_OK;
 }
@@ -10627,7 +10601,7 @@ static int Jim_LsortCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const arg
         if (Jim_GetEnum(interp, argv[i], options, &option, "option", JIM_ERRMSG)
                 != JIM_OK)
             return JIM_ERR;
-        switch(option) {
+        switch (option) {
         case OPT_ASCII: lsortType = JIM_LSORT_ASCII; break;
         case OPT_NOCASE: lsortType = JIM_LSORT_NOCASE; break;
         case OPT_INCREASING: decreasing = 0; break;
@@ -10635,7 +10609,7 @@ static int Jim_LsortCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const arg
         }
     }
     if (decreasing) {
-        switch(lsortType) {
+        switch (lsortType) {
         case JIM_LSORT_ASCII: lsortType = JIM_LSORT_ASCII_DECR; break;
         case JIM_LSORT_NOCASE: lsortType = JIM_LSORT_NOCASE_DECR; break;
         }
@@ -10647,7 +10621,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;
@@ -10687,7 +10661,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[] = {
@@ -10812,7 +10786,7 @@ static int Jim_DebugCoreCommand(Jim_Interp *interp, int argc,
             const char *type;
             Jim_ExprOperator *op;
 
-            switch(expr->opcode[i]) {
+            switch (expr->opcode[i]) {
             case JIM_EXPROP_NUMBER: type = "number"; break;
             case JIM_EXPROP_COMMAND: type = "command"; break;
             case JIM_EXPROP_VARIABLE: type = "variable"; break;
@@ -10844,7 +10818,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 +10827,7 @@ static int Jim_EvalCoreCommand(Jim_Interp *interp, int argc,
         Jim_Obj *objPtr;
         int retcode;
 
-        objPtr = Jim_ConcatObj(interp, argc-1, argv+1);
+        objPtr = Jim_ConcatObj(interp, argc-1, argv + 1);
         Jim_IncrRefCount(objPtr);
         retcode = Jim_EvalObj(interp, objPtr);
         Jim_DecrRefCount(interp, objPtr);
@@ -10865,7 +10839,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) {
@@ -10907,7 +10881,7 @@ static int Jim_UplevelCoreCommand(Jim_Interp *interp, int argc,
         if (argc == 2) {
             retcode = Jim_EvalObj(interp, argv[1]);
         } else {
-            objPtr = Jim_ConcatObj(interp, argc-1, argv+1);
+            objPtr = Jim_ConcatObj(interp, argc-1, argv + 1);
             Jim_IncrRefCount(objPtr);
             retcode = Jim_EvalObj(interp, objPtr);
             Jim_DecrRefCount(interp, objPtr);
@@ -10922,7 +10896,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;
@@ -10933,7 +10907,7 @@ static int Jim_ExprCoreCommand(Jim_Interp *interp, int argc,
     } else if (argc > 2) {
         Jim_Obj *objPtr;
 
-        objPtr = Jim_ConcatObj(interp, argc-1, argv+1);
+        objPtr = Jim_ConcatObj(interp, argc-1, argv + 1);
         Jim_IncrRefCount(objPtr);
         retcode = Jim_EvalExpression(interp, objPtr, &exprResultPtr);
         Jim_DecrRefCount(interp, objPtr);
@@ -10948,7 +10922,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) {
@@ -10970,7 +10944,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) {
@@ -11000,13 +10974,13 @@ static int Jim_TailcallCoreCommand(Jim_Interp *interp, int argc,
 {
     Jim_Obj *objPtr;
 
-    objPtr = Jim_NewListObj(interp, argv+1, argc-1);
+    objPtr = Jim_NewListObj(interp, argv + 1, argc-1);
     Jim_SetResult(interp, objPtr);
     return JIM_EVAL;
 }
 
 /* [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;
@@ -11017,13 +10991,13 @@ static int Jim_ProcCoreCommand(Jim_Interp *interp, int argc,
         return JIM_ERR;
     }
     Jim_ListLength(interp, argv[2], &argListLen);
-    arityMin = arityMax = argListLen+1;
+    arityMin = arityMax = argListLen + 1;
 
     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);
@@ -11034,7 +11008,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) {
@@ -11054,15 +11027,15 @@ 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));
+    Jim_SetResult(interp, Jim_ConcatObj(interp, argc-1, argv + 1));
     return JIM_OK;
 }
 
 /* [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;
@@ -11071,7 +11044,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],
@@ -11091,14 +11064,14 @@ static int Jim_UpvarCoreCommand(Jim_Interp *interp, int argc,
     }
     /* Now... for every other/local couple: */
     for (i = 1; i < argc; i += 2) {
-        if (Jim_SetVariableLink(interp, argv[i+1], argv[i],
+        if (Jim_SetVariableLink(interp, argv[i + 1], argv[i],
                 targetCallFrame) != JIM_OK) return JIM_ERR;
     }
     return JIM_OK;
 }
 
 /* [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;
@@ -11127,7 +11100,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,
@@ -11141,16 +11114,16 @@ 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]);
-        Jim_ListIndex(interp, mapListObjPtr, i*2+1, &eleObjPtr, JIM_NONE);
+        Jim_ListIndex(interp, mapListObjPtr, i*2 + 1, &eleObjPtr, JIM_NONE);
         value[i] = eleObjPtr;
     }
     str = Jim_GetString(objPtr, &strLen);
     /* Map it */
-    while(strLen) {
+    while (strLen) {
         for (i = 0; i < numMaps; i++) {
             if (strLen >= keyLen[i] && keyLen[i]) {
                 if (!JimStringCompare(str, keyLen[i], key[i], keyLen[i],
@@ -11186,7 +11159,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;
@@ -11308,27 +11281,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) {
@@ -11338,12 +11311,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) {
@@ -11362,7 +11335,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;
@@ -11395,7 +11368,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;
@@ -11413,7 +11386,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;
@@ -11433,7 +11406,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) {
@@ -11450,7 +11423,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;
@@ -11466,7 +11439,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;
@@ -11485,7 +11458,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) {
@@ -11497,7 +11470,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) {
@@ -11523,7 +11496,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;
@@ -11545,7 +11518,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;
@@ -11572,13 +11545,13 @@ static int Jim_DictCoreCommand(Jim_Interp *interp, int argc,
             Jim_WrongNumArgs(interp, 2, argv, "?key value ...?");
             return JIM_ERR;
         }
-        objPtr = Jim_NewDictObj(interp, argv+2, argc-2);
+        objPtr = Jim_NewDictObj(interp, argv + 2, argc-2);
         Jim_SetResult(interp, objPtr);
         return JIM_OK;
     } else if (option == OPT_GET) {
         Jim_Obj *objPtr;
 
-        if (Jim_DictKeysVector(interp, argv[2], argv+3, argc-3, &objPtr,
+        if (Jim_DictKeysVector(interp, argv[2], argv + 3, argc-3, &objPtr,
                 JIM_ERRMSG) != JIM_OK)
             return JIM_ERR;
         Jim_SetResult(interp, objPtr);
@@ -11588,20 +11561,20 @@ static int Jim_DictCoreCommand(Jim_Interp *interp, int argc,
             Jim_WrongNumArgs(interp, 2, argv, "varName key ?key ...? value");
             return JIM_ERR;
         }
-        return Jim_SetDictKeysVector(interp, argv[2], argv+3, argc-4,
+        return Jim_SetDictKeysVector(interp, argv[2], argv + 3, argc-4,
                     argv[argc-1]);
     } else if (option == OPT_UNSET) {
         if (argc < 4) {
             Jim_WrongNumArgs(interp, 2, argv, "varName key ?key ...?");
             return JIM_ERR;
         }
-        return Jim_SetDictKeysVector(interp, argv[2], argv+3, argc-3,
+        return Jim_SetDictKeysVector(interp, argv[2], argv + 3, argc-3,
                     NULL);
     } else if (option == OPT_EXIST) {
         Jim_Obj *objPtr;
         int exists;
 
-        if (Jim_DictKeysVector(interp, argv[2], argv+3, argc-3, &objPtr,
+        if (Jim_DictKeysVector(interp, argv[2], argv + 3, argc-3, &objPtr,
                 JIM_ERRMSG) == JIM_OK)
             exists = 1;
         else
@@ -11619,7 +11592,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) {
@@ -11630,7 +11603,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;
@@ -11642,20 +11615,20 @@ static int Jim_SubstCoreCommand(Jim_Interp *interp, int argc,
         return JIM_ERR;
     }
     i = argc-2;
-    while(i--) {
-        if (Jim_CompareStringImmediate(interp, argv[i+1],
+    while (i--) {
+        if (Jim_CompareStringImmediate(interp, argv[i + 1],
                     "-nobackslashes"))
             flags |= JIM_SUBST_NOESC;
-        else if (Jim_CompareStringImmediate(interp, argv[i+1],
+        else if (Jim_CompareStringImmediate(interp, argv[i + 1],
                     "-novariables"))
             flags |= JIM_SUBST_NOVAR;
-        else if (Jim_CompareStringImmediate(interp, argv[i+1],
+        else if (Jim_CompareStringImmediate(interp, argv[i + 1],
                     "-nocommands"))
             flags |= JIM_SUBST_NOCMD;
         else {
             Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
             Jim_AppendStrings(interp, Jim_GetResult(interp),
-                "bad option \"", Jim_GetString(argv[i+1], NULL),
+                "bad option \"", Jim_GetString(argv[i + 1], NULL),
                 "\": must be -nobackslashes, -nocommands, or "
                 "-novariables", NULL);
             return JIM_ERR;
@@ -11668,7 +11641,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;
@@ -11678,7 +11651,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;
@@ -11687,7 +11660,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?");
@@ -11759,7 +11732,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) {
@@ -11782,7 +11755,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;
@@ -11814,7 +11787,7 @@ static int Jim_SplitCoreCommand(Jim_Interp *interp, int argc,
                     objPtr = Jim_NewStringObj(interp, noMatchStart,
                             (str-noMatchStart));
                     Jim_ListAppendElement(interp, resObjPtr, objPtr);
-                    noMatchStart = str+1;
+                    noMatchStart = str + 1;
                     break;
                 }
             }
@@ -11831,9 +11804,9 @@ 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);
+                objCache[c] = Jim_NewStringObj(interp, (char*)u + i, 1);
             Jim_ListAppendElement(interp, resObjPtr, objCache[c]);
         }
     }
@@ -11842,7 +11815,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;
@@ -11864,11 +11837,11 @@ 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);
-        if (i+1 != listLen) {
+        if (i + 1 != listLen) {
             Jim_AppendString(interp, resObjPtr, joinStr, joinStrLen);
         }
     }
@@ -11886,7 +11859,7 @@ static int Jim_FormatCoreCommand(Jim_Interp *interp, int argc,
         Jim_WrongNumArgs(interp, 1, argv, "formatString ?arg arg ...?");
         return JIM_ERR;
     }
-    objPtr = Jim_FormatString(interp, argv[1], argc-2, argv+2);
+    objPtr = Jim_FormatString(interp, argv[1], argc-2, argv + 2);
     if (objPtr == NULL)
         return JIM_ERR;
     Jim_SetResult(interp, objPtr);
@@ -11903,7 +11876,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) {
@@ -11912,20 +11885,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;
@@ -11941,7 +11914,7 @@ static int Jim_ScanCoreCommand(Jim_Interp *interp, int argc,
         for (i = 0; i < outc; ++i) {
             if (Jim_Length(outVec[i]) > 0) {
                 ++count;
-                if (Jim_SetVariable(interp, argv[3+i], outVec[i]) != JIM_OK)
+                if (Jim_SetVariable(interp, argv[3 + i], outVec[i]) != JIM_OK)
                     goto err;
             }
         }
@@ -12119,7 +12092,7 @@ static int Jim_RangeCoreCommand(Jim_Interp *interp, int argc,
     }
     objPtr = Jim_NewListObj(interp, NULL, 0);
     for (i = 0; i < len; i++)
-        ListAppendElement(objPtr, Jim_NewIntObj(interp, start+i*step));
+        ListAppendElement(objPtr, Jim_NewIntObj(interp, start + i*step));
     Jim_SetResult(interp, objPtr);
     return JIM_OK;
 }
@@ -12128,7 +12101,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");
@@ -12156,13 +12129,13 @@ static int Jim_RandCoreCommand(Jim_Interp *interp, int argc,
         JimRandomBytes(interp, &r, sizeof(jim_wide));
         if (r < 0 || r >= maxMul) continue;
         r = (len == 0) ? 0 : r%len;
-        Jim_SetResult(interp, Jim_NewIntObj(interp, min+r));
+        Jim_SetResult(interp, Jim_NewIntObj(interp, min + r));
         return JIM_OK;
     }
 }
 
 /* [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;
@@ -12288,15 +12261,15 @@ static void Jim_RegisterCoreProcedures(Jim_Interp *interp)
 "proc lambdaFinalizer {name val} {\n"
 "    rename $name {}\n"
 "}\n"
-    );
+);
 }
 
 void Jim_RegisterCoreCommands(Jim_Interp *interp)
 {
     int i = 0;
 
-    while(Jim_CoreCommandsTable[i].name != NULL) {
-        Jim_CreateCommand(interp, 
+    while (Jim_CoreCommandsTable[i].name != NULL) {
+        Jim_CreateCommand(interp,
                 Jim_CoreCommandsTable[i].name,
                 Jim_CoreCommandsTable[i].cmdProc,
                 NULL, NULL);
@@ -12319,29 +12292,29 @@ 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);
         proc = Jim_GetString(objPtr, NULL);
-        Jim_ListIndex(interp, interp->stackTrace, i+1, &objPtr,
+        Jim_ListIndex(interp, interp->stackTrace, i + 1, &objPtr,
                 JIM_NONE);
         file = Jim_GetString(objPtr, NULL);
-        Jim_ListIndex(interp, interp->stackTrace, i+2, &objPtr,
+        Jim_ListIndex(interp, interp->stackTrace, i + 2, &objPtr,
                 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);
         }
     }
 }
@@ -12369,16 +12342,16 @@ 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) {
+        while (1) {
             const char *str;
             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;
             }
@@ -12386,8 +12359,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);
@@ -12398,8 +12371,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);
             }
         }
     }
@@ -12411,66 +12384,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++;
@@ -12479,10 +12452,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++;
@@ -12491,32 +12464,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;
@@ -12524,23 +12497,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;
@@ -12548,25 +12521,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++;
@@ -12575,18 +12548,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;
@@ -12595,9 +12568,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;
@@ -12606,37 +12579,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;
@@ -12644,17 +12617,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);
                }
@@ -12663,90 +12636,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)
 {
@@ -12754,103 +12727,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);
 }
-
-       
-
-/*
- * Local Variables: ***
- * c-basic-offset: 4 ***
- * tab-width: 4 ***
- * End: ***
- */

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)