]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Latest upstream jimsh0.c for minor portability improvements and cleanups.
authorstephan <stephan@noemail.net>
Sun, 19 Jul 2026 12:56:34 +0000 (12:56 +0000)
committerstephan <stephan@noemail.net>
Sun, 19 Jul 2026 12:56:34 +0000 (12:56 +0000)
FossilOrigin-Name: 436cf63e941b3db936a01d4584c9e3cc9675ce9ef4b6689530218c27252c170d

autosetup/jimsh0.c
manifest
manifest.uuid

index 51b52968a8c5c0810d293b2ae44dd650594d0844..a8dbc761180e6fee8b35ff01af83469352eb81f0 100644 (file)
@@ -162,7 +162,6 @@ int utf8_fromunicode(char *p, unsigned uc);
 
 
 #define utf8_strlen(S, B) ((B) < 0 ? (int)strlen(S) : (B))
-#define utf8_strwidth(S, B) utf8_strlen((S), (B))
 #define utf8_tounicode(S, CP) (*(CP) = (unsigned char)*(S), 1)
 #define utf8_getchars(CP, C) (*(CP) = (C), 1)
 #define utf8_upper(C) toupper(C)
@@ -171,7 +170,6 @@ int utf8_fromunicode(char *p, unsigned uc);
 #define utf8_index(C, I) (I)
 #define utf8_charlen(C) 1
 #define utf8_prev_len(S, L) 1
-#define utf8_width(C) 1
 
 #else
 
@@ -227,6 +225,7 @@ extern "C" {
 #  endif
 #endif
 
+
 #define UCHAR(c) ((unsigned char)(c))
 
 
@@ -281,6 +280,7 @@ extern "C" {
 #define JIM_PATH_LEN 1024
 
 
+
 #define JIM_NOTUSED(V) ((void) V)
 
 #define JIM_LIBPATH "auto_path"
@@ -334,10 +334,12 @@ typedef struct Jim_HashTableIterator {
 #define JIM_HT_INITIAL_SIZE     16
 
 
+
 #define Jim_FreeEntryVal(ht, entry) \
     if ((ht)->type->valDestructor) \
         (ht)->type->valDestructor((ht)->privdata, (entry)->u.val)
 
+
 #define Jim_SetHashVal(ht, entry, _val_) do { \
     if ((ht)->type->valDup) \
         (entry)->u.val = (ht)->type->valDup((ht)->privdata, (_val_)); \
@@ -345,12 +347,15 @@ typedef struct Jim_HashTableIterator {
         (entry)->u.val = (_val_); \
 } while(0)
 
+
 #define Jim_SetHashIntVal(ht, entry, _val_) (entry)->u.intval = (_val_)
 
+
 #define Jim_FreeEntryKey(ht, entry) \
     if ((ht)->type->keyDestructor) \
         (ht)->type->keyDestructor((ht)->privdata, (entry)->key)
 
+
 #define Jim_SetHashKey(ht, entry, _key_) do { \
     if ((ht)->type->keyDup) \
         (entry)->key = (ht)->type->keyDup((ht)->privdata, (_key_)); \
@@ -358,18 +363,26 @@ typedef struct Jim_HashTableIterator {
         (entry)->key = (void *)(_key_); \
 } while(0)
 
+
 #define Jim_CompareHashKeys(ht, key1, key2) \
     (((ht)->type->keyCompare) ? \
         (ht)->type->keyCompare((ht)->privdata, (key1), (key2)) : \
         (key1) == (key2))
 
+
 #define Jim_HashKey(ht, key) ((ht)->type->hashFunction(key) + (ht)->uniq)
 
+
 #define Jim_GetHashEntryKey(he) ((he)->key)
+
 #define Jim_GetHashEntryVal(he) ((he)->u.val)
+
 #define Jim_GetHashEntryIntVal(he) ((he)->u.intval)
+
 #define Jim_GetHashTableCollisions(ht) ((ht)->collisions)
+
 #define Jim_GetHashTableSize(ht) ((ht)->size)
+
 #define Jim_GetHashTableUsed(ht) ((ht)->used)
 
 
@@ -450,24 +463,30 @@ typedef struct Jim_Obj {
 } Jim_Obj;
 
 
+
 #define Jim_IncrRefCount(objPtr) \
     ++(objPtr)->refCount
+
 #define Jim_DecrRefCount(interp, objPtr) \
     if (--(objPtr)->refCount <= 0) Jim_FreeObj(interp, objPtr)
+
 #define Jim_IsShared(objPtr) \
     ((objPtr)->refCount > 1)
 
 #define Jim_FreeNewObj Jim_FreeObj
 
 
+
 #define Jim_FreeIntRep(i,o) \
     if ((o)->typePtr && (o)->typePtr->freeIntRepProc) \
         (o)->typePtr->freeIntRepProc(i, o)
 
 
+
 #define Jim_GetIntRepPtr(o) (o)->internalRep.ptr
 
 
+
 #define Jim_SetIntRepPtr(o, p) \
     (o)->internalRep.ptr = (p)
 
@@ -660,14 +679,21 @@ typedef struct Jim_Interp {
     unsigned taint;
 } Jim_Interp;
 
+
 #define Jim_SetResultString(i,s,l) Jim_SetResult(i, Jim_NewStringObj(i,s,l))
+
 #define Jim_SetResultInt(i,intval) Jim_SetResult(i, Jim_NewIntObj(i,intval))
 
+
 #define Jim_SetResultBool(i,b) Jim_SetResultInt(i, b)
+
 #define Jim_SetEmptyResult(i) Jim_SetResult(i, (i)->emptyObj)
+
 #define Jim_GetResult(i) ((i)->result)
+
 #define Jim_CmdPrivData(i) ((i)->cmdPrivData)
 
+
 #define Jim_SetResult(i,o) do {     \
     Jim_Obj *_resultObjPtr_ = (o);    \
     Jim_IncrRefCount(_resultObjPtr_); \
@@ -676,6 +702,7 @@ typedef struct Jim_Interp {
 } while(0)
 
 
+
 #define Jim_GetId(i) (++(i)->id)
 
 
@@ -688,7 +715,9 @@ typedef struct Jim_Reference {
 } Jim_Reference;
 
 
+
 #define Jim_NewEmptyStringObj(i) Jim_NewStringObj(i, "", 0)
+
 #define Jim_FreeHashTableIterator(iter) Jim_Free(iter)
 
 #define JIM_EXPORT extern
@@ -697,15 +726,23 @@ typedef struct Jim_Reference {
 
 JIM_EXPORT void *(*Jim_Allocator)(void *ptr, size_t size);
 
+
 #define Jim_Free(P) Jim_Allocator((P), 0)
+
 #define Jim_Realloc(P, S) Jim_Allocator((P), (S))
+
 #define Jim_Alloc(S) Jim_Allocator(NULL, (S))
+
 JIM_EXPORT char * Jim_StrDup (const char *s);
+
 JIM_EXPORT char *Jim_StrDupLen(const char *s, int l);
 
 
+
 JIM_EXPORT char **Jim_GetEnviron(void);
+
 JIM_EXPORT void Jim_SetEnviron(char **env);
+
 JIM_EXPORT int Jim_MakeTempFile(Jim_Interp *interp, const char *filename_template, int unlink_file);
 #ifndef CLOCK_REALTIME
 #  define CLOCK_REALTIME 0
@@ -716,116 +753,174 @@ JIM_EXPORT int Jim_MakeTempFile(Jim_Interp *interp, const char *filename_templat
 #ifndef CLOCK_MONOTONIC_RAW
 #  define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC
 #endif
+
 JIM_EXPORT jim_wide Jim_GetTimeUsec(unsigned type);
 
 
+
 JIM_EXPORT int Jim_Eval(Jim_Interp *interp, const char *script);
 
 
+
 JIM_EXPORT int Jim_EvalSource(Jim_Interp *interp, const char *filename, int lineno, const char *script);
 
+
 #define Jim_Eval_Named(I, S, F, L) Jim_EvalSource((I), (F), (L), (S))
 
+
 JIM_EXPORT int Jim_EvalGlobal(Jim_Interp *interp, const char *script);
+
 JIM_EXPORT int Jim_EvalFile(Jim_Interp *interp, const char *filename);
+
 JIM_EXPORT int Jim_EvalFileGlobal(Jim_Interp *interp, const char *filename);
+
 JIM_EXPORT int Jim_EvalObj (Jim_Interp *interp, Jim_Obj *scriptObjPtr);
+
 JIM_EXPORT int Jim_EvalObjVector (Jim_Interp *interp, int objc,
         Jim_Obj *const *objv);
+
 JIM_EXPORT int Jim_EvalObjList(Jim_Interp *interp, Jim_Obj *listObj);
+
 JIM_EXPORT int Jim_EvalObjPrefix(Jim_Interp *interp, Jim_Obj *prefix,
         int objc, Jim_Obj *const *objv);
+
 #define Jim_EvalPrefix(i, p, oc, ov) Jim_EvalObjPrefix((i), Jim_NewStringObj((i), (p), -1), (oc), (ov))
+
 JIM_EXPORT int Jim_EvalNamespace(Jim_Interp *interp, Jim_Obj *scriptObj, Jim_Obj *nsObj);
 JIM_EXPORT int Jim_SubstObj (Jim_Interp *interp, Jim_Obj *substObjPtr,
         Jim_Obj **resObjPtrPtr, int flags);
 
 
+
 JIM_EXPORT Jim_Obj *Jim_GetSourceInfo(Jim_Interp *interp, Jim_Obj *objPtr,
         int *lineptr);
 
+
 JIM_EXPORT void Jim_SetSourceInfo(Jim_Interp *interp, Jim_Obj *objPtr,
         Jim_Obj *fileNameObj, int lineNumber);
 
 
 
+
 JIM_EXPORT void Jim_StackInit(Jim_Stack *stack, void (*freefunc) (void *ptr));
+
 JIM_EXPORT void Jim_StackFree(Jim_Stack *stack);
+
 JIM_EXPORT void Jim_StackPush(Jim_Stack *stack, void *element);
+
 JIM_EXPORT void *Jim_StackPop(Jim_Stack *stack);
 
 
+
 JIM_EXPORT int Jim_InitHashTable (Jim_HashTable *ht,
         const Jim_HashTableType *type, void *privdata);
+
 JIM_EXPORT void Jim_ExpandHashTable (Jim_HashTable *ht,
         unsigned int size);
+
 JIM_EXPORT int Jim_AddHashEntry (Jim_HashTable *ht, const void *key,
         void *val);
+
 JIM_EXPORT int Jim_ReplaceHashEntry (Jim_HashTable *ht,
         const void *key, void *val);
+
 JIM_EXPORT int Jim_DeleteHashEntry (Jim_HashTable *ht,
         const void *key);
+
 JIM_EXPORT int Jim_FreeHashTable (Jim_HashTable *ht);
+
 JIM_EXPORT Jim_HashEntry * Jim_FindHashEntry (Jim_HashTable *ht,
         const void *key);
+
 JIM_EXPORT Jim_HashTableIterator *Jim_GetHashTableIterator
         (Jim_HashTable *ht);
+
 JIM_EXPORT Jim_HashEntry * Jim_NextHashEntry
         (Jim_HashTableIterator *iter);
 
 
+
 JIM_EXPORT Jim_Obj * Jim_NewObj (Jim_Interp *interp);
+
 JIM_EXPORT void Jim_FreeObj (Jim_Interp *interp, Jim_Obj *objPtr);
+
 JIM_EXPORT void Jim_InvalidateStringRep (Jim_Obj *objPtr);
+
 JIM_EXPORT Jim_Obj * Jim_DuplicateObj (Jim_Interp *interp,
         Jim_Obj *objPtr);
+
 JIM_EXPORT const char * Jim_GetString(Jim_Obj *objPtr,
         int *lenPtr);
+
 JIM_EXPORT const char *Jim_String(Jim_Obj *objPtr);
+
 JIM_EXPORT int Jim_Length(Jim_Obj *objPtr);
 
 
+
 JIM_EXPORT Jim_Obj * Jim_NewStringObj (Jim_Interp *interp,
         const char *s, int len);
+
 JIM_EXPORT Jim_Obj *Jim_NewStringObjUtf8(Jim_Interp *interp,
         const char *s, int charlen);
+
 JIM_EXPORT Jim_Obj * Jim_NewStringObjNoAlloc (Jim_Interp *interp,
         char *s, int len);
+
 JIM_EXPORT void Jim_AppendString (Jim_Interp *interp, Jim_Obj *objPtr,
         const char *str, int len);
+
 JIM_EXPORT void Jim_AppendObj (Jim_Interp *interp, Jim_Obj *objPtr,
         Jim_Obj *appendObjPtr);
+
 JIM_EXPORT void Jim_AppendStrings (Jim_Interp *interp,
         Jim_Obj *objPtr, ...);
+
 JIM_EXPORT int Jim_StringEqObj(Jim_Obj *aObjPtr, Jim_Obj *bObjPtr);
+
 JIM_EXPORT int Jim_StringMatchObj (Jim_Interp *interp, Jim_Obj *patternObjPtr,
         Jim_Obj *objPtr, int nocase);
+
 JIM_EXPORT Jim_Obj * Jim_StringRangeObj (Jim_Interp *interp,
         Jim_Obj *strObjPtr, Jim_Obj *firstObjPtr,
         Jim_Obj *lastObjPtr);
+
 JIM_EXPORT Jim_Obj * Jim_FormatString (Jim_Interp *interp,
         Jim_Obj *fmtObjPtr, int objc, Jim_Obj *const *objv);
+
 JIM_EXPORT Jim_Obj * Jim_ScanString (Jim_Interp *interp, Jim_Obj *strObjPtr,
         Jim_Obj *fmtObjPtr, int flags);
+
 JIM_EXPORT int Jim_CompareStringImmediate (Jim_Interp *interp,
         Jim_Obj *objPtr, const char *str);
+
 JIM_EXPORT int Jim_StringCompareObj(Jim_Interp *interp, Jim_Obj *firstObjPtr,
         Jim_Obj *secondObjPtr, int nocase);
+
 JIM_EXPORT int Jim_Utf8Length(Jim_Interp *interp, Jim_Obj *objPtr);
 
 
+
 JIM_EXPORT Jim_Obj * Jim_NewReference (Jim_Interp *interp,
         Jim_Obj *objPtr, Jim_Obj *tagPtr, Jim_Obj *cmdNamePtr);
+
 JIM_EXPORT Jim_Reference * Jim_GetReference (Jim_Interp *interp,
         Jim_Obj *objPtr);
+
 JIM_EXPORT int Jim_SetFinalizer (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *cmdNamePtr);
+
 JIM_EXPORT int Jim_GetFinalizer (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj **cmdNamePtrPtr);
 
 
+
 JIM_EXPORT Jim_Interp * Jim_CreateInterp (void);
+
 JIM_EXPORT void Jim_FreeInterp (Jim_Interp *i);
+
 JIM_EXPORT int Jim_GetExitCode (Jim_Interp *interp);
+
 JIM_EXPORT const char *Jim_ReturnCode(int code);
+
 JIM_EXPORT void Jim_SetResultFormatted(Jim_Interp *interp, const char *format, ...);
 
 
@@ -848,134 +943,190 @@ JIM_EXPORT int Jim_CreateCommand (Jim_Interp *interp,
 #define Jim_RegisterCmd(interp, name, usage, minargs, maxargs, cmdproc, delproc, privdata, flags) \
         Jim_RegisterCommand(interp, Jim_NewStringObj(interp, name, -1), cmdproc, delproc, usage, NULL, minargs, maxargs, flags, privdata)
 
+
 JIM_EXPORT void Jim_RegisterCoreCommands (Jim_Interp *interp);
+
+JIM_EXPORT int Jim_CreateCommand (Jim_Interp *interp,
+        const char *cmdName, Jim_CmdProc *cmdProc, void *privData,
+         Jim_DelCmdProc *delProc);
+
 JIM_EXPORT int Jim_DeleteCommand (Jim_Interp *interp,
         Jim_Obj *cmdNameObj);
+
 JIM_EXPORT int Jim_RenameCommand (Jim_Interp *interp,
         Jim_Obj *oldNameObj, Jim_Obj *newNameObj);
+
 JIM_EXPORT Jim_Cmd * Jim_GetCommand (Jim_Interp *interp,
         Jim_Obj *objPtr, int flags);
 
+
 JIM_EXPORT int Jim_SetVariable (Jim_Interp *interp,
         Jim_Obj *nameObjPtr, Jim_Obj *valObjPtr);
+
 JIM_EXPORT int Jim_SetVariableStr (Jim_Interp *interp,
         const char *name, Jim_Obj *objPtr);
+
 JIM_EXPORT int Jim_SetGlobalVariableStr (Jim_Interp *interp,
         const char *name, Jim_Obj *objPtr);
+
 JIM_EXPORT int Jim_SetVariableStrWithStr (Jim_Interp *interp,
         const char *name, const char *val);
+
 JIM_EXPORT int Jim_SetVariableLink (Jim_Interp *interp,
         Jim_Obj *nameObjPtr, Jim_Obj *targetNameObjPtr,
         Jim_CallFrame *targetCallFrame);
+
 JIM_EXPORT Jim_Obj * Jim_MakeGlobalNamespaceName(Jim_Interp *interp,
         Jim_Obj *nameObjPtr);
 JIM_EXPORT Jim_Obj * Jim_GetVariable (Jim_Interp *interp,
         Jim_Obj *nameObjPtr, int flags);
+
 JIM_EXPORT Jim_Obj * Jim_GetGlobalVariable (Jim_Interp *interp,
         Jim_Obj *nameObjPtr, int flags);
+
 JIM_EXPORT Jim_Obj * Jim_GetVariableStr (Jim_Interp *interp,
         const char *name, int flags);
+
 JIM_EXPORT Jim_Obj * Jim_GetGlobalVariableStr (Jim_Interp *interp,
         const char *name, int flags);
+
 JIM_EXPORT int Jim_UnsetVariable (Jim_Interp *interp,
         Jim_Obj *nameObjPtr, int flags);
 
 
+
 JIM_EXPORT Jim_CallFrame *Jim_GetCallFrameByLevel(Jim_Interp *interp,
         Jim_Obj *levelObjPtr);
 
 
+
 JIM_EXPORT int Jim_Collect (Jim_Interp *interp);
+
 JIM_EXPORT void Jim_CollectIfNeeded (Jim_Interp *interp);
 
 
+
 JIM_EXPORT int Jim_GetIndex (Jim_Interp *interp, Jim_Obj *objPtr,
         int *indexPtr);
 
 
+
 JIM_EXPORT Jim_Obj * Jim_NewListObj (Jim_Interp *interp,
         Jim_Obj *const *elements, int len);
+
 JIM_EXPORT void Jim_ListInsertElements (Jim_Interp *interp,
         Jim_Obj *listPtr, int listindex, int objc, Jim_Obj *const *objVec);
+
 JIM_EXPORT void Jim_ListAppendElement (Jim_Interp *interp,
         Jim_Obj *listPtr, Jim_Obj *objPtr);
+
 JIM_EXPORT void Jim_ListAppendList (Jim_Interp *interp,
         Jim_Obj *listPtr, Jim_Obj *appendListPtr);
+
 JIM_EXPORT int Jim_ListLength (Jim_Interp *interp, Jim_Obj *objPtr);
+
 JIM_EXPORT int Jim_ListIndex (Jim_Interp *interp, Jim_Obj *listPrt,
         int listindex, Jim_Obj **objPtrPtr, int seterr);
+
 JIM_EXPORT Jim_Obj *Jim_ListGetIndex(Jim_Interp *interp, Jim_Obj *listPtr, int idx);
+
 JIM_EXPORT int Jim_SetListIndex (Jim_Interp *interp,
         Jim_Obj *varNamePtr, Jim_Obj *const *indexv, int indexc,
         Jim_Obj *newObjPtr);
+
 JIM_EXPORT Jim_Obj * Jim_ConcatObj (Jim_Interp *interp, int objc,
         Jim_Obj *const *objv);
+
 JIM_EXPORT Jim_Obj *Jim_ListJoin(Jim_Interp *interp,
         Jim_Obj *listObjPtr, const char *joinStr, int joinStrLen);
 
 
+
 JIM_EXPORT Jim_Obj * Jim_NewDictObj (Jim_Interp *interp,
         Jim_Obj *const *elements, int len);
+
 JIM_EXPORT int Jim_DictKey (Jim_Interp *interp, Jim_Obj *dictPtr,
         Jim_Obj *keyPtr, Jim_Obj **objPtrPtr, int flags);
+
 JIM_EXPORT int Jim_DictKeysVector (Jim_Interp *interp,
         Jim_Obj *dictPtr, Jim_Obj *const *keyv, int keyc,
         Jim_Obj **objPtrPtr, int flags);
 JIM_EXPORT int Jim_SetDictKeysVector (Jim_Interp *interp,
         Jim_Obj *varNamePtr, Jim_Obj *const *keyv, int keyc,
         Jim_Obj *newObjPtr, int flags);
+
 JIM_EXPORT Jim_Obj **Jim_DictPairs(Jim_Interp *interp,
         Jim_Obj *dictPtr, int *len);
+
 JIM_EXPORT int Jim_DictAddElement(Jim_Interp *interp, Jim_Obj *objPtr,
         Jim_Obj *keyObjPtr, Jim_Obj *valueObjPtr);
 
 #define JIM_DICTMATCH_KEYS 0x0001
 #define JIM_DICTMATCH_VALUES 0x002
 
+
 JIM_EXPORT int Jim_DictMatchTypes(Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *patternObj, int match_type, int return_types);
+
 JIM_EXPORT int Jim_DictSize(Jim_Interp *interp, Jim_Obj *objPtr);
+
 JIM_EXPORT int Jim_DictInfo(Jim_Interp *interp, Jim_Obj *objPtr);
+
 JIM_EXPORT Jim_Obj *Jim_DictMerge(Jim_Interp *interp, int objc, Jim_Obj *const *objv);
 
 
+
 JIM_EXPORT int Jim_GetReturnCode (Jim_Interp *interp, Jim_Obj *objPtr,
         int *intPtr);
 
 
+
 JIM_EXPORT int Jim_EvalExpression (Jim_Interp *interp,
         Jim_Obj *exprObjPtr);
+
 JIM_EXPORT int Jim_GetBoolFromExpr (Jim_Interp *interp,
         Jim_Obj *exprObjPtr, int *boolPtr);
 
 
+
 JIM_EXPORT int Jim_GetBoolean(Jim_Interp *interp, Jim_Obj *objPtr,
         int *booleanPtr);
 
 
+
 JIM_EXPORT int Jim_GetWide (Jim_Interp *interp, Jim_Obj *objPtr,
         jim_wide *widePtr);
+
 JIM_EXPORT int Jim_GetWideExpr(Jim_Interp *interp, Jim_Obj *objPtr,
         jim_wide *widePtr);
+
 JIM_EXPORT int Jim_GetLong (Jim_Interp *interp, Jim_Obj *objPtr,
         long *longPtr);
+
 #define Jim_NewWideObj  Jim_NewIntObj
+
 JIM_EXPORT Jim_Obj * Jim_NewIntObj (Jim_Interp *interp,
         jim_wide wideValue);
 
 
+
 JIM_EXPORT int Jim_GetDouble(Jim_Interp *interp, Jim_Obj *objPtr,
         double *doublePtr);
+
 JIM_EXPORT void Jim_SetDouble(Jim_Interp *interp, Jim_Obj *objPtr,
         double doubleValue);
+
 JIM_EXPORT Jim_Obj * Jim_NewDoubleObj(Jim_Interp *interp, double doubleValue);
 
 
+
 JIM_EXPORT void Jim_WrongNumArgs (Jim_Interp *interp, int argc,
         Jim_Obj *const *argv, const char *msg);
 JIM_EXPORT int Jim_GetEnum (Jim_Interp *interp, Jim_Obj *objPtr,
         const char * const *tablePtr, int *indexPtr, const char *name, int flags);
+
 JIM_EXPORT int Jim_CheckShowCommands(Jim_Interp *interp, Jim_Obj *objPtr,
         const char *const *tablePtr);
+
 JIM_EXPORT int Jim_ScriptIsComplete(Jim_Interp *interp,
         Jim_Obj *scriptObj, char *stateCharPtr);
 
@@ -983,55 +1134,82 @@ JIM_EXPORT int Jim_FindByName(const char *name, const char * const array[], size
 
 
 typedef void (Jim_InterpDeleteProc)(Jim_Interp *interp, void *data);
+
 JIM_EXPORT void * Jim_GetAssocData(Jim_Interp *interp, const char *key);
+
 JIM_EXPORT int Jim_SetAssocData(Jim_Interp *interp, const char *key,
         Jim_InterpDeleteProc *delProc, void *data);
+
 JIM_EXPORT int Jim_DeleteAssocData(Jim_Interp *interp, const char *key);
+
 JIM_EXPORT int Jim_CheckAbiVersion(Jim_Interp *interp, int abi_version);
 
 
 
 
+
 JIM_EXPORT int Jim_PackageProvide (Jim_Interp *interp,
         const char *name, const char *ver, int flags);
+
 JIM_EXPORT int Jim_PackageRequire (Jim_Interp *interp,
         const char *name, int flags);
+
 #define Jim_PackageProvideCheck(INTERP, NAME) \
         if (Jim_CheckAbiVersion(INTERP, JIM_ABI_VERSION) == JIM_ERR || Jim_PackageProvide(INTERP, NAME, "1.0", JIM_ERRMSG)) \
                 return JIM_ERR
 
 
+
 JIM_EXPORT void Jim_MakeErrorMessage (Jim_Interp *interp);
 
 
+
 JIM_EXPORT int Jim_InteractivePrompt (Jim_Interp *interp);
+
 JIM_EXPORT void Jim_HistoryLoad(const char *filename);
+
 JIM_EXPORT void Jim_HistorySave(const char *filename);
+
 JIM_EXPORT char *Jim_HistoryGetline(Jim_Interp *interp, const char *prompt);
+
 JIM_EXPORT void Jim_HistorySetCompletion(Jim_Interp *interp, Jim_Obj *completionCommandObj);
+
 JIM_EXPORT void Jim_HistorySetHints(Jim_Interp *interp, Jim_Obj *hintsCommandObj);
+
 JIM_EXPORT void Jim_HistoryAdd(const char *line);
+
 JIM_EXPORT void Jim_HistoryShow(void);
+
 JIM_EXPORT void Jim_HistorySetMaxLen(int length);
+
 JIM_EXPORT int Jim_HistoryGetMaxLen(void);
 
 
+
 JIM_EXPORT int Jim_InitStaticExtensions(Jim_Interp *interp);
+
 JIM_EXPORT int Jim_StringToWide(const char *str, jim_wide *widePtr, int base);
+
 JIM_EXPORT int Jim_IsBigEndian(void);
 
 #define Jim_CheckSignal(i) ((i)->signal_level && (i)->sigmask)
+
 JIM_EXPORT void Jim_SignalSetIgnored(jim_wide mask);
 
 
+
 JIM_EXPORT int Jim_LoadLibrary(Jim_Interp *interp, const char *pathName);
+
 JIM_EXPORT void Jim_FreeLoadHandles(Jim_Interp *interp);
 
 
+
 JIM_EXPORT int Jim_AioFilehandle(Jim_Interp *interp, Jim_Obj *command);
 
 
+
 JIM_EXPORT int Jim_IsDict(Jim_Obj *objPtr);
+
 JIM_EXPORT int Jim_IsList(Jim_Obj *objPtr);
 
 
@@ -7378,6 +7556,7 @@ static int JimCallNative(Jim_Interp *interp, Jim_Cmd *cmd, int argc, Jim_Obj *co
 
 #define JimObjTypeName(O) ((O)->typePtr ? (O)->typePtr->name : "none")
 
+
 static int utf8_tounicode_case(const char *s, int *uc, int upper)
 {
     int l = utf8_tounicode(s, uc);
@@ -7759,6 +7938,7 @@ int Jim_StringToDouble(const char *str, double *doublePtr)
     return JimCheckConversion(str, endptr);
 }
 
+
 static jim_wide JimPowWide(jim_wide b, jim_wide e)
 {
     jim_wide res = 1;
@@ -7786,6 +7966,7 @@ static jim_wide JimPowWide(jim_wide b, jim_wide e)
 }
 
 #ifdef JIM_DEBUG_PANIC
+
 static void JimPanicDump(int condition, const char *fmt, ...)
 {
     va_list ap;
@@ -7923,6 +8104,7 @@ static void JimResetHashTable(Jim_HashTable *ht)
 #endif
 }
 
+
 static void JimInitHashTableIterator(Jim_HashTable *ht, Jim_HashTableIterator *iter)
 {
     iter->ht = ht;
@@ -8192,16 +8374,19 @@ static unsigned int JimStringCopyHTHashFunction(const void *key)
     return Jim_GenHashFunction(key, strlen(key));
 }
 
+
 static void *JimStringCopyHTDup(void *privdata, const void *key)
 {
     return Jim_StrDup(key);
 }
 
+
 static int JimStringCopyHTKeyCompare(void *privdata, const void *key1, const void *key2)
 {
     return strcmp(key1, key2) == 0;
 }
 
+
 static void JimStringCopyHTKeyDestructor(void *privdata, void *key)
 {
     Jim_Free(key);
@@ -8222,6 +8407,7 @@ typedef struct AssocDataValue
     void *data;
 } AssocDataValue;
 
+
 static void JimAssocDataHashTableValueDestructor(void *privdata, void *data)
 {
     AssocDataValue *assocPtr = (AssocDataValue *) data;
@@ -8365,6 +8551,7 @@ static void JimParserInit(struct JimParserCtx *pc, const char *prg, int len, int
     pc->missing.line = linenr;
 }
 
+
 static int JimParseScript(struct JimParserCtx *pc)
 {
     while (1) {
@@ -8426,6 +8613,7 @@ static int JimParseScript(struct JimParserCtx *pc)
     }
 }
 
+
 static int JimParseSep(struct JimParserCtx *pc)
 {
     pc->tstart = pc->p;
@@ -8447,6 +8635,7 @@ static int JimParseSep(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseEol(struct JimParserCtx *pc)
 {
     pc->tstart = pc->p;
@@ -8615,6 +8804,7 @@ static void JimParseSubCmd(struct JimParserCtx *pc)
     pc->tend = pc->p - 1;
 }
 
+
 static int JimParseBrace(struct JimParserCtx *pc)
 {
     pc->tstart = pc->p + 1;
@@ -8624,6 +8814,7 @@ static int JimParseBrace(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseCmd(struct JimParserCtx *pc)
 {
     pc->tstart = pc->p + 1;
@@ -8633,6 +8824,7 @@ static int JimParseCmd(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseQuote(struct JimParserCtx *pc)
 {
     pc->tstart = pc->p + 1;
@@ -8641,6 +8833,7 @@ static int JimParseQuote(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseVar(struct JimParserCtx *pc)
 {
 
@@ -8742,6 +8935,7 @@ static int JimParseVar(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseStr(struct JimParserCtx *pc)
 {
     if (pc->tt == JIM_TT_SEP || pc->tt == JIM_TT_EOL ||
@@ -8845,6 +9039,7 @@ static int JimParseStr(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseComment(struct JimParserCtx *pc)
 {
     while (*pc->p) {
@@ -8883,6 +9078,7 @@ static int xdigitval(int c)
     return -1;
 }
 
+
 static int odigitval(int c)
 {
     if (c >= '0' && c <= '7')
@@ -9073,6 +9269,7 @@ static int JimParseListSep(struct JimParserCtx *pc);
 static int JimParseListStr(struct JimParserCtx *pc);
 static int JimParseListQuote(struct JimParserCtx *pc);
 
+
 static int JimParseList(struct JimParserCtx *pc)
 {
     if (isspace(UCHAR(*pc->p))) {
@@ -9099,6 +9296,7 @@ static int JimParseList(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseListSep(struct JimParserCtx *pc)
 {
     pc->tstart = pc->p;
@@ -9115,6 +9313,7 @@ static int JimParseListSep(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseListQuote(struct JimParserCtx *pc)
 {
     pc->p++;
@@ -9152,6 +9351,7 @@ static int JimParseListQuote(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseListStr(struct JimParserCtx *pc)
 {
     pc->tstart = pc->p;
@@ -9323,6 +9523,7 @@ const char *Jim_String(Jim_Obj *objPtr)
     return objPtr->bytes;
 }
 
+
 static void JimSetStringBytes(Jim_Obj *objPtr, const char *str)
 {
     objPtr->bytes = Jim_StrDup(str);
@@ -9351,11 +9552,13 @@ static const Jim_ObjType interpolatedObjType = {
     JIM_TYPE_NONE,
 };
 
+
 static void FreeInterpolatedInternalRep(Jim_Interp *interp, Jim_Obj *objPtr)
 {
     Jim_DecrRefCount(interp, objPtr->internalRep.dictSubstValue.indexObjPtr);
 }
 
+
 static void DupInterpolatedInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 {
 
@@ -9375,6 +9578,7 @@ static const Jim_ObjType stringObjType = {
     JIM_TYPE_REFERENCES,
 };
 
+
 static void DupStringInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 {
     JIM_NOTUSED(interp);
@@ -9383,6 +9587,7 @@ static void DupStringInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *d
     dupPtr->internalRep.strValue.charLength = srcPtr->internalRep.strValue.charLength;
 }
 
+
 static int SetStringFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
 {
     if (objPtr->typePtr != &stringObjType) {
@@ -9596,6 +9801,7 @@ static void JimRelToAbsRange(int len, int *firstPtr, int *lastPtr, int *rangeLen
     *rangeLenPtr = rangeLen;
 }
 
+
 static int JimStringGetRange(Jim_Interp *interp, Jim_Obj *firstObjPtr, Jim_Obj *lastObjPtr,
     int len, int *first, int *last, int *range)
 {
@@ -9817,6 +10023,7 @@ static const char default_trim_chars[] = " \t\n\r";
 
 static int default_trim_chars_len = sizeof(default_trim_chars);
 
+
 static Jim_Obj *JimStringTrimLeft(Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_Obj *trimcharsObjPtr)
 {
     int len;
@@ -9837,6 +10044,7 @@ static Jim_Obj *JimStringTrimLeft(Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_Ob
     return Jim_NewStringObj(interp, newstr, len - (newstr - str));
 }
 
+
 static Jim_Obj *JimStringTrimRight(Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_Obj *trimcharsObjPtr)
 {
     int len;
@@ -9874,6 +10082,7 @@ static Jim_Obj *JimStringTrimRight(Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_O
     return strObjPtr;
 }
 
+
 static Jim_Obj *JimStringTrim(Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_Obj *trimcharsObjPtr)
 {
 
@@ -9895,12 +10104,14 @@ static Jim_Obj *JimStringTrim(Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_Obj *t
 #ifdef HAVE_ISASCII
 #define jim_isascii isascii
 #else
+
 static int jim_isascii(int c)
 {
     return !(c & ~0x7f);
 }
 #endif
 
+
 static int JimStringIs(Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_Obj *strClass, int strict)
 {
     static const char * const strclassnames[] = {
@@ -10007,6 +10218,7 @@ int Jim_CompareStringImmediate(Jim_Interp *interp, Jim_Obj *objPtr, const char *
 }
 
 
+
 static int qsortCompareStringPointers(const void *a, const void *b)
 {
     char *const *sa = (char *const *)a;
@@ -10056,6 +10268,7 @@ static const Jim_ObjType scriptLineObjType = {
     JIM_NONE,
 };
 
+
 static Jim_Obj *JimNewScriptLineObj(Jim_Interp *interp, int argc, int line)
 {
     Jim_Obj *objPtr;
@@ -10150,6 +10363,7 @@ typedef struct
     ParseToken static_list[20];
 } ParseTokenList;
 
+
 static void ScriptTokenListInit(ParseTokenList *tokenlist)
 {
     tokenlist->list = tokenlist->static_list;
@@ -10157,6 +10371,7 @@ static void ScriptTokenListInit(ParseTokenList *tokenlist)
     tokenlist->count = 0;
 }
 
+
 static void ScriptTokenListFree(ParseTokenList *tokenlist)
 {
     if (tokenlist->list != tokenlist->static_list) {
@@ -10519,11 +10734,13 @@ void Jim_InterpIncrProcEpoch(Jim_Interp *interp)
     interp->oldCmdCacheSize = 0;
 }
 
+
 static void JimIncrCmdRefCount(Jim_Cmd *cmdPtr)
 {
     cmdPtr->inUse++;
 }
 
+
 static void JimDecrCmdRefCount(Jim_Interp *interp, Jim_Cmd *cmdPtr)
 {
     if (--cmdPtr->inUse == 0) {
@@ -10560,6 +10777,7 @@ static void JimIncrVarRef(Jim_VarVal *vv)
     vv->refCount++;
 }
 
+
 static void JimDecrVarRef(Jim_Interp *interp, Jim_VarVal *vv)
 {
     assert(vv->refCount > 0);
@@ -10571,11 +10789,13 @@ static void JimDecrVarRef(Jim_Interp *interp, Jim_VarVal *vv)
     }
 }
 
+
 static void JimVariablesHTValDestructor(void *interp, void *val)
 {
     JimDecrVarRef(interp, val);
 }
 
+
 static unsigned int JimObjectHTHashFunction(const void *key)
 {
     Jim_Obj *keyObj = (Jim_Obj *)key;
@@ -10611,6 +10831,7 @@ static unsigned int JimObjectHTHashFunction(const void *key)
     return Jim_GenHashFunction((const unsigned char *)string, length);
 }
 
+
 static int JimObjectHTKeyCompare(void *privdata, const void *key1, const void *key2)
 {
     return Jim_StringEqObj((Jim_Obj *)key1, (Jim_Obj *)key2);
@@ -10622,6 +10843,7 @@ static void *JimObjectHTKeyValDup(void *privdata, const void *val)
     return (void *)val;
 }
 
+
 static void JimObjectHTKeyValDestructor(void *interp, void *val)
 {
     Jim_DecrRefCount(interp, (Jim_Obj *)val);
@@ -10658,6 +10880,7 @@ static const char *Jim_GetStringNoQualifier(Jim_Obj *objPtr, int *length)
     return str;
 }
 
+
 static unsigned int JimCommandsHT_HashFunction(const void *key)
 {
     int len;
@@ -10665,6 +10888,7 @@ static unsigned int JimCommandsHT_HashFunction(const void *key)
     return Jim_GenHashFunction((const unsigned char *)str, len);
 }
 
+
 static int JimCommandsHT_KeyCompare(void *privdata, const void *key1, const void *key2)
 {
     int len1, len2;
@@ -10673,6 +10897,7 @@ static int JimCommandsHT_KeyCompare(void *privdata, const void *key1, const void
     return len1 == len2 && *str1 == *str2 && memcmp(str1, str2, len1) == 0;
 }
 
+
 static void JimCommandsHT_ValDestructor(void *interp, void *val)
 {
     JimDecrCmdRefCount(interp, val);
@@ -10787,6 +11012,7 @@ int Jim_CreateCommand(Jim_Interp *interp, const char *cmdNameStr,
     return JIM_OK;
 }
 
+
 static int JimCreateProcedureStatics(Jim_Interp *interp, Jim_Cmd *cmdPtr, Jim_Obj *staticsListObjPtr)
 {
     int len, i;
@@ -11086,6 +11312,7 @@ static void FreeCommandInternalRep(Jim_Interp *interp, Jim_Obj *objPtr)
     Jim_DecrRefCount(interp, objPtr->internalRep.cmdValue.nsObj);
 }
 
+
 static void DupCommandInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 {
     dupPtr->internalRep.cmdValue = srcPtr->internalRep.cmdValue;
@@ -11226,11 +11453,13 @@ static int SetVariableFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
 static int JimDictSugarSet(Jim_Interp *interp, Jim_Obj *ObjPtr, Jim_Obj *valObjPtr);
 static Jim_Obj *JimDictSugarGet(Jim_Interp *interp, Jim_Obj *objPtr, int flags);
 
+
 static int JimSetNewVariable(Jim_HashTable *ht, Jim_Obj *nameObjPtr, Jim_VarVal *vv)
 {
     return Jim_AddHashEntry(ht, nameObjPtr, vv);
 }
 
+
 static Jim_VarVal *JimFindVariable(Jim_HashTable *ht, Jim_Obj *nameObjPtr)
 {
     Jim_HashEntry *he = Jim_FindHashEntry(ht, nameObjPtr);
@@ -11240,11 +11469,13 @@ static Jim_VarVal *JimFindVariable(Jim_HashTable *ht, Jim_Obj *nameObjPtr)
     return NULL;
 }
 
+
 static int JimUnsetVariable(Jim_HashTable *ht, Jim_Obj *nameObjPtr)
 {
     return Jim_DeleteHashEntry(ht, nameObjPtr);
 }
 
+
 static Jim_VarVal *JimCreateVariable(Jim_Interp *interp, Jim_Obj *nameObjPtr, Jim_Obj *valObjPtr)
 {
     const char *name;
@@ -11688,6 +11919,7 @@ void FreeDictSubstInternalRep(Jim_Interp *interp, Jim_Obj *objPtr)
     Jim_DecrRefCount(interp, objPtr->internalRep.dictSubstValue.indexObjPtr);
 }
 
+
 static void DupDictSubstInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 {
 
@@ -11783,6 +12015,7 @@ static Jim_CallFrame *JimCreateCallFrame(Jim_Interp *interp, Jim_CallFrame *pare
     return cf;
 }
 
+
 static int JimDeleteLocalProcs(Jim_Interp *interp, Jim_Stack *localCommands)
 {
 
@@ -11864,6 +12097,7 @@ static int JimInvokeDefer(Jim_Interp *interp, int retcode)
 
 #define JIM_FCF_FULL 0
 #define JIM_FCF_REUSE 1
+
 static void JimFreeCallFrame(Jim_Interp *interp, Jim_CallFrame *cf, int action)
  {
     JimDeleteLocalProcs(interp, cf->localCommands);
@@ -12116,6 +12350,7 @@ static Jim_CallFrame *JimGetCallFrameByInteger(Jim_Interp *interp, long level)
     return NULL;
 }
 
+
 static Jim_EvalFrame *JimGetEvalFrameByProcLevel(Jim_Interp *interp, int proclevel)
 {
     Jim_EvalFrame *evalFrame;
@@ -12174,6 +12409,7 @@ static void JimAddStackFrame(Jim_Interp *interp, Jim_EvalFrame *frame, Jim_Obj *
     Jim_ListAppendElement(interp, listObj, Jim_NewListObj(interp, frame->argv, frame->argc));
 }
 
+
 static void JimSetStackTrace(Jim_Interp *interp, Jim_Obj *stackTraceObj)
 {
 
@@ -12183,6 +12419,7 @@ static void JimSetStackTrace(Jim_Interp *interp, Jim_Obj *stackTraceObj)
     interp->hasErrorStackTrace = 1;
 }
 
+
 static void JimSetErrorStack(Jim_Interp *interp, ScriptObj *script)
 {
     if (!interp->hasErrorStackTrace) {
@@ -12258,6 +12495,7 @@ static const Jim_ObjType coercedDoubleObjType = {
 };
 
 
+
 static void UpdateStringOfInt(struct Jim_Obj *objPtr)
 {
     char buf[JIM_INTEGER_SPACE + 1];
@@ -12293,6 +12531,7 @@ static void UpdateStringOfInt(struct Jim_Obj *objPtr)
     JimSetStringBytes(objPtr, buf);
 }
 
+
 static int SetIntFromAny(Jim_Interp *interp, Jim_Obj *objPtr, int flags)
 {
     jim_wide wideValue;
@@ -12325,6 +12564,7 @@ static int SetIntFromAny(Jim_Interp *interp, Jim_Obj *objPtr, int flags)
 }
 
 #ifdef JIM_OPTIMIZATION
+
 static int JimIsWide(Jim_Obj *objPtr)
 {
     return objPtr->typePtr == &intObjType;
@@ -12421,6 +12661,7 @@ static const Jim_ObjType doubleObjType = {
 #define isinf(X) (1.0 / (X) == 0.0)
 #endif
 
+
 static void UpdateStringOfDouble(struct Jim_Obj *objPtr)
 {
     double value = objPtr->internalRep.doubleValue;
@@ -12466,6 +12707,7 @@ static void UpdateStringOfDouble(struct Jim_Obj *objPtr)
     }
 }
 
+
 static int SetDoubleFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
 {
     double doubleValue;
@@ -12559,6 +12801,7 @@ static const int jim_true_false_lens[8] = {
     1, 5, 2, 3,
 };
 
+
 static int SetBooleanFromAny(Jim_Interp *interp, Jim_Obj *objPtr, int flags)
 {
     int index = Jim_FindByName(Jim_String(objPtr), jim_true_false_strings,
@@ -12624,6 +12867,7 @@ void DupListInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 #define JIM_ELESTR_SIMPLE 0
 #define JIM_ELESTR_BRACE 1
 #define JIM_ELESTR_QUOTE 2
+
 static unsigned char ListElementQuotingType(const char *s, int len)
 {
     int i, level, blevel, trySimple = 1;
@@ -12771,6 +13015,7 @@ static int BackslashQuoteString(const char *s, int len, char *q)
     return p - q;
 }
 
+
 static void JimMakeListStringRep(Jim_Obj *objPtr, Jim_Obj **objv, int objc)
 {
     #define STATIC_QUOTING_LEN 32
@@ -12857,11 +13102,13 @@ static void JimMakeListStringRep(Jim_Obj *objPtr, Jim_Obj **objv, int objc)
     }
 }
 
+
 static void UpdateStringOfList(struct Jim_Obj *objPtr)
 {
     JimMakeListStringRep(objPtr, objPtr->internalRep.listValue.ele, objPtr->internalRep.listValue.len);
 }
 
+
 static int SetListFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
 {
     struct JimParserCtx parser;
@@ -12984,6 +13231,7 @@ struct lsort_info {
 
 static struct lsort_info *sort_info;
 
+
 static int ListSortIndexHelper(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
 {
     Jim_Obj *lObj, *rObj;
@@ -13001,11 +13249,13 @@ static int ListSortString(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
     return Jim_StringCompareObj(sort_info->interp, *lhsObj, *rhsObj, 0) * sort_info->order;
 }
 
+
 static int ListSortStringNoCase(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
 {
     return Jim_StringCompareObj(sort_info->interp, *lhsObj, *rhsObj, 1) * sort_info->order;
 }
 
+
 static int ListSortDict(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
 {
 
@@ -13043,6 +13293,7 @@ static int ListSortDict(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
     }
 }
 
+
 static int ListSortInteger(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
 {
     jim_wide lhs = 0, rhs = 0;
@@ -13055,6 +13306,7 @@ static int ListSortInteger(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
     return JimSign(lhs - rhs) * sort_info->order;
 }
 
+
 static int ListSortReal(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
 {
     double lhs = 0, rhs = 0;
@@ -13072,6 +13324,7 @@ static int ListSortReal(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
     return -sort_info->order;
 }
 
+
 static int ListSortCommand(Jim_Obj **lhsObj, Jim_Obj **rhsObj)
 {
     Jim_Obj *compare_script;
@@ -13346,6 +13599,7 @@ err:
     return ret;
 }
 
+
 static int ListSetIndex(Jim_Interp *interp, Jim_Obj *listPtr, int idx,
     Jim_Obj *newObjPtr, int flags)
 {
@@ -13655,11 +13909,13 @@ static Jim_Dict *JimDictNew(Jim_Interp *interp, int table_size, int ht_size)
     return dict;
 }
 
+
 static void FreeDictInternalRep(Jim_Interp *interp, Jim_Obj *objPtr)
 {
     JimFreeDict(interp, objPtr->internalRep.dictValue);
 }
 
+
 static void DupDictInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 {
     Jim_Dict *oldDict = srcPtr->internalRep.dictValue;
@@ -13685,11 +13941,13 @@ static void DupDictInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dup
     dupPtr->typePtr = &dictObjType;
 }
 
+
 static void UpdateStringOfDict(struct Jim_Obj *objPtr)
 {
     JimMakeListStringRep(objPtr, objPtr->internalRep.dictValue->table, objPtr->internalRep.dictValue->len);
 }
 
+
 static int SetDictFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr)
 {
     int listlen;
@@ -13983,6 +14241,7 @@ static const Jim_ObjType indexObjType = {
     JIM_TYPE_NONE,
 };
 
+
 static void UpdateStringOfIndex(struct Jim_Obj *objPtr)
 {
     if (objPtr->internalRep.intValue == -1) {
@@ -14001,6 +14260,7 @@ static void UpdateStringOfIndex(struct Jim_Obj *objPtr)
     }
 }
 
+
 static int SetIndexFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
 {
     jim_wide idx;
@@ -14124,6 +14384,7 @@ const char *Jim_ReturnCode(int code)
     }
 }
 
+
 static int SetReturnCodeFromAny(Jim_Interp *interp, Jim_Obj *objPtr)
 {
     int returnCode;
@@ -14260,6 +14521,7 @@ static int JimExprGetTerm(Jim_Interp *interp, struct JimExprNode *node, Jim_Obj
 static int JimExprGetTermBoolean(Jim_Interp *interp, struct JimExprNode *node);
 static int JimExprEvalTermNode(Jim_Interp *interp, struct JimExprNode *node);
 
+
 static int JimExprOpNumUnary(Jim_Interp *interp, struct JimExprNode *node)
 {
     int intresult = 1;
@@ -14361,6 +14623,7 @@ static int JimExprOpNumUnary(Jim_Interp *interp, struct JimExprNode *node)
     return rc;
 }
 
+
 static double JimRandDouble(Jim_Interp *interp)
 {
     unsigned long x;
@@ -14369,6 +14632,7 @@ static double JimRandDouble(Jim_Interp *interp)
     return (double)x / (double)~0UL;
 }
 
+
 static int JimExprOpIntUnary(Jim_Interp *interp, struct JimExprNode *node)
 {
     jim_wide wA;
@@ -14399,6 +14663,7 @@ static int JimExprOpIntUnary(Jim_Interp *interp, struct JimExprNode *node)
     return rc;
 }
 
+
 static int JimExprOpNone(Jim_Interp *interp, struct JimExprNode *node)
 {
     JimPanic((node->type != JIM_EXPROP_FUNC_RAND, "JimExprOpNone only support rand()"));
@@ -14409,6 +14674,7 @@ static int JimExprOpNone(Jim_Interp *interp, struct JimExprNode *node)
 }
 
 #ifdef JIM_MATH_FUNCTIONS
+
 static int JimExprOpDoubleUnary(Jim_Interp *interp, struct JimExprNode *node)
 {
     int rc;
@@ -14755,6 +15021,7 @@ doubleresult:
     goto done;
 }
 
+
 static int JimSearchList(Jim_Interp *interp, Jim_Obj *listObjPtr, Jim_Obj *valObj)
 {
     int listlen;
@@ -14789,6 +15056,7 @@ static int JimRegexpMatch(Jim_Interp *interp, Jim_Obj *patternObj, Jim_Obj *objP
     return eq;
 }
 
+
 static int JimExprOpStrBin(Jim_Interp *interp, struct JimExprNode *node)
 {
     Jim_Obj *A, *B;
@@ -14854,6 +15122,7 @@ error:
     return rc;
 }
 
+
 static int ExprBool(Jim_Interp *interp, Jim_Obj *obj)
 {
     long l;
@@ -14878,6 +15147,7 @@ static int ExprBool(Jim_Interp *interp, Jim_Obj *obj)
     return ret;
 }
 
+
 static int JimExprOpAnd(Jim_Interp *interp, struct JimExprNode *node)
 {
 
@@ -14894,6 +15164,7 @@ static int JimExprOpAnd(Jim_Interp *interp, struct JimExprNode *node)
     return JIM_OK;
 }
 
+
 static int JimExprOpOr(Jim_Interp *interp, struct JimExprNode *node)
 {
 
@@ -14910,6 +15181,7 @@ static int JimExprOpOr(Jim_Interp *interp, struct JimExprNode *node)
     return JIM_OK;
 }
 
+
 static int JimExprOpTernary(Jim_Interp *interp, struct JimExprNode *node)
 {
 
@@ -15026,6 +15298,7 @@ static const struct Jim_ExprOperator Jim_ExprOperators[] = {
 #define JIM_EXPR_OPERATORS_NUM \
     (sizeof(Jim_ExprOperators)/sizeof(struct Jim_ExprOperator))
 
+
 static int JimParseExpression(struct JimParserCtx *pc)
 {
     pc->errmsg = NULL;
@@ -15125,6 +15398,7 @@ singlechar:
     return JIM_OK;
 }
 
+
 static int JimParseExprNumber(struct JimParserCtx *pc)
 {
     char *end;
@@ -15149,6 +15423,7 @@ static int JimParseExprNumber(struct JimParserCtx *pc)
     return JIM_OK;
 }
 
+
 static int JimParseExprIrrational(struct JimParserCtx *pc)
 {
     const char *irrationals[] = { "NaN", "nan", "NAN", "Inf", "inf", "INF", NULL };
@@ -15168,6 +15443,7 @@ static int JimParseExprIrrational(struct JimParserCtx *pc)
     return JIM_ERR;
 }
 
+
 static int JimParseExprBoolean(struct JimParserCtx *pc)
 {
     int i;
@@ -15192,6 +15468,7 @@ static const struct Jim_ExprOperator *JimExprOperatorInfoByOpcode(int opcode)
     return &Jim_ExprOperators[opcode - JIM_TT_EXPR_OP];
 }
 
+
 static int JimParseExprOperator(struct JimParserCtx *pc)
 {
     int i;
@@ -15259,6 +15536,7 @@ struct ExprTree
     int inUse;
 };
 
+
 static void ExprTreeFreeNodes(Jim_Interp *interp, struct JimExprNode *nodes, int num)
 {
     int i;
@@ -15270,12 +15548,14 @@ static void ExprTreeFreeNodes(Jim_Interp *interp, struct JimExprNode *nodes, int
     Jim_Free(nodes);
 }
 
+
 static void ExprTreeFree(Jim_Interp *interp, struct ExprTree *expr)
 {
     ExprTreeFreeNodes(interp, expr->nodes, expr->len);
     Jim_Free(expr);
 }
 
+
 static void FreeExprInternalRep(Jim_Interp *interp, Jim_Obj *objPtr)
 {
     struct ExprTree *expr = (void *)objPtr->internalRep.ptr;
@@ -15289,6 +15569,7 @@ static void FreeExprInternalRep(Jim_Interp *interp, Jim_Obj *objPtr)
     }
 }
 
+
 static void DupExprInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
 {
     JIM_NOTUSED(interp);
@@ -15311,6 +15592,7 @@ struct ExprBuilder {
 };
 
 #ifdef DEBUG_SHOW_EXPR
+
 static void JimShowExprNode(struct JimExprNode *node, int level)
 {
     int i;
@@ -15802,6 +16084,7 @@ static int JimExprEvalTermNode(Jim_Interp *interp, struct JimExprNode *node)
     }
 }
 
+
 static int JimExprGetTerm(Jim_Interp *interp, struct JimExprNode *node, Jim_Obj **objPtrPtr)
 {
     int rc = JimExprEvalTermNode(interp, node);
@@ -15812,6 +16095,7 @@ static int JimExprGetTerm(Jim_Interp *interp, struct JimExprNode *node, Jim_Obj
     return rc;
 }
 
+
 static int JimExprGetTermBoolean(Jim_Interp *interp, struct JimExprNode *node)
 {
     if (JimExprEvalTermNode(interp, node) == JIM_OK) {
@@ -15992,6 +16276,7 @@ void DupScanFmtInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr)
     dupPtr->typePtr = &scanFmtStringObjType;
 }
 
+
 static void UpdateStringOfScanFmt(Jim_Obj *objPtr)
 {
     JimSetStringBytes(objPtr, ((ScanFmtStringObj *) objPtr->internalRep.ptr)->stringRep);
@@ -16595,6 +16880,7 @@ static int JimUnknown(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
     return retcode;
 }
 
+
 static void JimPushEvalFrame(Jim_Interp *interp, Jim_EvalFrame *frame, Jim_Obj *scriptObj)
 {
     memset(frame, 0, sizeof(*frame));
@@ -16616,6 +16902,7 @@ static void JimPushEvalFrame(Jim_Interp *interp, Jim_EvalFrame *frame, Jim_Obj *
 #endif
 }
 
+
 static void JimPopEvalFrame(Jim_Interp *interp)
 {
     interp->evalFrame = interp->evalFrame->parent;
@@ -16758,6 +17045,7 @@ int Jim_EvalObjPrefix(Jim_Interp *interp, Jim_Obj *prefix, int objc, Jim_Obj *co
     return ret;
 }
 
+
 static int JimSubstOneToken(Jim_Interp *interp, const ScriptToken *token, Jim_Obj **objPtrPtr)
 {
     Jim_Obj *objPtr;
@@ -17236,6 +17524,7 @@ int Jim_EvalObj(Jim_Interp *interp, Jim_Obj *scriptObjPtr)
     return retcode;
 }
 
+
 static int JimSetProcArg(Jim_Interp *interp, Jim_Obj *argNameObj, Jim_Obj *argValObj)
 {
     int retcode;
@@ -17884,6 +18173,7 @@ static Jim_Obj *JimVariablesList(Jim_Interp *interp, Jim_Obj *patternObjPtr, int
     }
 }
 
+
 static int JimInfoLevel(Jim_Interp *interp, Jim_Obj *levelObjPtr, Jim_Obj **objPtrPtr)
 {
     long level;
@@ -17904,6 +18194,7 @@ static int JimInfoLevel(Jim_Interp *interp, Jim_Obj *levelObjPtr, Jim_Obj **objP
     return JIM_ERR;
 }
 
+
 static int JimInfoFrame(Jim_Interp *interp, Jim_Obj *levelObjPtr, Jim_Obj **objPtrPtr)
 {
     long level;
@@ -18649,7 +18940,7 @@ static int Jim_IfCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 }
 
 
-int Jim_CommandMatchObj(Jim_Interp *interp, Jim_Obj *commandObj, Jim_Obj *patternObj,
+static int JimCommandMatchObj(Jim_Interp *interp, Jim_Obj *commandObj, Jim_Obj *patternObj,
     Jim_Obj *stringObj, int flags)
 {
     Jim_Obj *parms[5];
@@ -18744,7 +19035,7 @@ static int Jim_SwitchCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *a
                     command = Jim_NewStringObj(interp, "regexp", -1);
 
                 case SWITCH_CMD:{
-                        int rc = Jim_CommandMatchObj(interp, command, patObj, strObj, match_flags);
+                        int rc = JimCommandMatchObj(interp, command, patObj, strObj, match_flags);
 
                         if (argc - opt == 1) {
                             JimListGetElements(interp, argv[opt], &patCount, &caseList);
@@ -18958,7 +19249,7 @@ static int Jim_LsearchCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *
 
             case OPT_REGEXP:
             case OPT_COMMAND:
-                eq = Jim_CommandMatchObj(interp, commandObj, argv[1], objPtr, match_flags);
+                eq = JimCommandMatchObj(interp, commandObj, argv[1], objPtr, match_flags);
                 if (eq < 0) {
                     Jim_DecrRefCount(interp, searchListObj);
                     rc = JIM_ERR;
@@ -19377,6 +19668,7 @@ static int Jim_ExprCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *arg
     return Jim_EvalExpression(interp, argv[1]);
 }
 
+
 static int JimBreakContinueHelper(Jim_Interp *interp, int argc, Jim_Obj *const *argv, int retcode)
 {
     if (argc == 2) {
@@ -19520,6 +19812,7 @@ static int Jim_TailcallCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const
     return JIM_OK;
 }
 
+
 static int JimAliasCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 {
     Jim_Obj *cmdList;
@@ -19532,12 +19825,14 @@ static int JimAliasCmd(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
     return JimEvalObjList(interp, cmdList);
 }
 
+
 static void JimAliasCmdDelete(Jim_Interp *interp, void *privData)
 {
     Jim_Obj *prefixListObj = privData;
     Jim_DecrRefCount(interp, prefixListObj);
 }
 
+
 static int Jim_AliasCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 {
     Jim_Obj *prefixListObj = Jim_NewListObj(interp, argv + 2, argc - 2);
@@ -20321,6 +20616,7 @@ static int Jim_ExitCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *arg
     return JIM_EXIT;
 }
 
+
 static int JimMatchReturnCodes(Jim_Interp *interp, Jim_Obj *retcodeListObj, int rc)
 {
     int len = Jim_ListLength(interp, retcodeListObj);
@@ -20684,6 +20980,7 @@ int Jim_DictInfo(Jim_Interp *interp, Jim_Obj *objPtr)
     return JIM_OK;
 }
 
+
 static int Jim_EvalEnsemble(Jim_Interp *interp, const char *basecmd, const char *subcmd, int argc, Jim_Obj *const *argv)
 {
     Jim_Obj *prefixObj = Jim_NewStringObj(interp, basecmd, -1);
@@ -20949,6 +21246,7 @@ static int Jim_LsubstCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *a
 }
 
 #ifdef jim_ext_namespace
+
 static int JimIsGlobalNamespace(Jim_Obj *objPtr)
 {
     int len;
@@ -21703,6 +22001,7 @@ static int Jim_LreverseCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const
     return JIM_OK;
 }
 
+
 static int JimRangeLen(jim_wide start, jim_wide end, jim_wide step)
 {
     jim_wide len;
@@ -24491,7 +24790,9 @@ int Jim_OpenForRead(const char *filename)
 int Jim_MakeTempFile(Jim_Interp *interp, const char *filename_template, int unlink_file)
 {
     int fd;
+#ifdef HAVE_UMASK
     mode_t mask;
+#endif
     Jim_Obj *filenameObj;
 
     if (filename_template == NULL) {
index 5ce9c0f5b42462c43a53717a4efb31fc9fe17aa2..0c8f7c60c63b2d5a1aa355019c0d5ea63d253ab0 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Disqualify\sthe\scount-of-view\soptimization\sif\sthe\sview\sis\sreally\na\scorrelated\ssubquery.\n[forum:/info/2026-07-18T10:23:43Z|Forum\spost\s2026-07-18T10:23:43Z].
-D 2026-07-18T17:47:25.063
+C Latest\supstream\sjimsh0.c\sfor\sminor\sportability\simprovements\sand\scleanups.
+D 2026-07-19T12:56:34.893
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -45,7 +45,7 @@ F autosetup/cc-lib.tcl 493c5935b5dd3bf9bd4eca89b07c8b1b1a9356d61783035144e21795f
 F autosetup/cc-shared.tcl 163eda58c14cd662fd8a504bd2ad8a716ef4db7015dc1de0095d5de8dd601a4b
 F autosetup/cc.tcl c0fcc50ca91deff8741e449ddad05bcd08268bc31177e613a6343bbd1fd3e45f
 F autosetup/find_tclconfig.tcl e64886ffe3b982d4df42cd28ed91fe0b5940c2c5785e126c1821baf61bc86a7e
-F autosetup/jimsh0.c 740dc8cbfaedaff1f27b54b32e0015b22fa6c1a439492b9795968d61e56bab75
+F autosetup/jimsh0.c daf13a86959fe2d055ed42d9417ceb63d698ae4b71bde959a0979ab729a83819
 F autosetup/pkg-config.tcl 4e635bf39022ff65e0d5434339dd41503ea48fc53822c9c5bde88b02d3d952ba
 F autosetup/proj.tcl 67683f214977a416baafc4c1020f9940ff047a7306b2292c5872d6287460b7d5
 F autosetup/sqlite-config.tcl a503f8b418547c2872348dbcb71abb09726f3970088625ec90d8000035b06b32
@@ -2215,8 +2215,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P b14c3f8fec5123b1faa6d88dee2740ee4acb10dd522207531567d46f4714e227
-R 6a7be0c63bdb75b04e2382e006b2cd5f
-U drh
-Z 474e172c65658296edc69a02e1046ccd
+P bb65c3adcd79581715f90d287807a3f03b375f69957c7d0202d31b23cf627da0
+R 07d5ed11feeeb19c0c15c9e258798cf2
+U stephan
+Z c0d6fb70c2f55c80d47dcabd81ae5f01
 # Remove this line to create a well-formed Fossil manifest.
index 7e16e7de07b528dbe86ebb258c8ddc3212029050..3aad1009494eb9c7efb7b9ab5557e2422e23a72d 100644 (file)
@@ -1 +1 @@
-bb65c3adcd79581715f90d287807a3f03b375f69957c7d0202d31b23cf627da0
+436cf63e941b3db936a01d4584c9e3cc9675ce9ef4b6689530218c27252c170d