diff options
-rw-r--r-- | jim.c | 56 | ||||
-rw-r--r-- | jim.h | 234 |
2 files changed, 161 insertions, 129 deletions
@@ -17,6 +17,8 @@ * limitations under the License. */ +#define __JIM_CORE__ + #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -49,7 +51,7 @@ /* A shared empty string for the objects string representation. * Jim_InvalidateStringRep knows about it and don't try to free. */ -char *JimEmptyStringRep = ""; +static char *JimEmptyStringRep = ""; /* ----------------------------------------------------------------------------- * Required prototypes of not exported functions @@ -826,7 +828,7 @@ void Jim_StringCopyHT_KeyDestructor(void *privdata, void *key) Jim_Free(key); } -Jim_HashTableType Jim_StringCopyHashTableType = { +static Jim_HashTableType Jim_StringCopyHashTableType = { Jim_StringCopyHT_HashFunction, /* hash function */ Jim_StringCopyHT_KeyDup, /* key dup */ NULL, /* val dup */ @@ -837,7 +839,7 @@ Jim_HashTableType Jim_StringCopyHashTableType = { /* This is like StringCopy but does not auto-duplicate the key. * It's used for intepreter's shared strings. */ -Jim_HashTableType Jim_SharedStringsHashTableType = { +static Jim_HashTableType Jim_SharedStringsHashTableType = { Jim_StringCopyHT_HashFunction, /* hash function */ NULL, /* key dup */ NULL, /* val dup */ @@ -852,7 +854,8 @@ unsigned int Jim_IntHT_HashFunction(void *key) return Jim_IntHashFunction((unsigned int)key); } -Jim_HashTableType Jim_IntHashTableType = { +#if 0 +static Jim_HashTableType Jim_IntHashTableType = { Jim_IntHT_HashFunction, /* hash function */ NULL, /* key dup */ NULL, /* val dup */ @@ -860,6 +863,7 @@ Jim_HashTableType Jim_IntHashTableType = { NULL, /* key destructor */ NULL /* val destructor */ }; +#endif /* ---------------------------- Test & Benchmark ----------------------------*/ @@ -1737,7 +1741,7 @@ char *Jim_GetString(Jim_Obj *objPtr, int *lenPtr) static void DupStringInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr); static int SetStringFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); -Jim_ObjType stringObjType = { +static Jim_ObjType stringObjType = { "string", NULL, DupStringInternalRep, @@ -1961,7 +1965,7 @@ Jim_Obj *Jim_StringRangeObj(Jim_Interp *interp, * this works pretty well even if comparisons are at different places * inside the C code. */ -Jim_ObjType comparedStringObjType = { +static Jim_ObjType comparedStringObjType = { "compared-string", NULL, NULL, @@ -2014,7 +2018,7 @@ int Jim_CompareStringImmediate(Jim_Interp *interp, Jim_Obj *objPtr, char *str) static void FreeSourceInternalRep(Jim_Interp *interp, Jim_Obj *objPtr); static void DupSourceInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr); -Jim_ObjType sourceObjType = { +static Jim_ObjType sourceObjType = { "source", FreeSourceInternalRep, DupSourceInternalRep, @@ -2061,7 +2065,7 @@ static void FreeScriptInternalRep(Jim_Interp *interp, Jim_Obj *objPtr); static void DupScriptInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr); static int SetScriptFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); -Jim_ObjType scriptObjType = { +static Jim_ObjType scriptObjType = { "script", FreeScriptInternalRep, DupScriptInternalRep, @@ -2480,7 +2484,7 @@ static void Jim_CommandsHT_ValDestructor(void *interp, void *val) Jim_Free(val); } -Jim_HashTableType Jim_CommandsHashTableType = { +static Jim_HashTableType Jim_CommandsHashTableType = { Jim_StringCopyHT_HashFunction, /* hash function */ Jim_StringCopyHT_KeyDup, /* key dup */ NULL, /* val dup */ @@ -2600,7 +2604,7 @@ int Jim_RenameCommand(Jim_Interp *interp, char *oldName, char *newName) static int SetCommandFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); -Jim_ObjType commandObjType = { +static Jim_ObjType commandObjType = { "command", NULL, NULL, @@ -2664,7 +2668,7 @@ static void Jim_VariablesHT_ValDestructor(void *interp, void *val) Jim_Free(val); } -Jim_HashTableType Jim_VariablesHashTableType = { +static Jim_HashTableType Jim_VariablesHashTableType = { Jim_StringCopyHT_HashFunction, /* hash function */ Jim_StringCopyHT_KeyDup, /* key dup */ NULL, /* val dup */ @@ -2681,7 +2685,7 @@ Jim_HashTableType Jim_VariablesHashTableType = { static int SetVariableFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); -Jim_ObjType variableObjType = { +static Jim_ObjType variableObjType = { "variable", NULL, NULL, @@ -3040,7 +3044,7 @@ static void FreeDictSubstInternalRep(Jim_Interp *interp, Jim_Obj *objPtr); static void DupDictSubstInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr); -Jim_ObjType dictSubstObjType = { +static Jim_ObjType dictSubstObjType = { "dict-substitution", FreeDictSubstInternalRep, DupDictSubstInternalRep, @@ -3220,7 +3224,7 @@ void Jim_ReferencesHT_KeyDestructor(void *privdata, void *key) Jim_Free(key); } -Jim_HashTableType Jim_ReferencesHashTableType = { +static Jim_HashTableType Jim_ReferencesHashTableType = { Jim_ReferencesHT_HashFunction, /* hash function */ Jim_ReferencesHT_KeyDup, /* key dup */ NULL, /* val dup */ @@ -3235,7 +3239,7 @@ Jim_HashTableType Jim_ReferencesHashTableType = { static void UpdateStringOfReference(struct Jim_Obj *objPtr); -Jim_ObjType referenceObjType = { +static Jim_ObjType referenceObjType = { "reference", NULL, NULL, @@ -3344,7 +3348,7 @@ Jim_Reference *Jim_GetReference(Jim_Interp *interp, Jim_Obj *objPtr) * ---------------------------------------------------------------------------*/ /* This the hash table type for the "MARK" phase of the GC */ -Jim_HashTableType Jim_RefMarkHashTableType = { +static Jim_HashTableType Jim_RefMarkHashTableType = { Jim_ReferencesHT_HashFunction, /* hash function */ Jim_ReferencesHT_KeyDup, /* key dup */ NULL, /* val dup */ @@ -3768,7 +3772,7 @@ void Jim_ReleaseSharedString(Jim_Interp *interp, char *str) static void UpdateStringOfInt(struct Jim_Obj *objPtr); static int SetIntFromAny(Jim_Interp *interp, Jim_Obj *objPtr); -Jim_ObjType intObjType = { +static Jim_ObjType intObjType = { "int", NULL, NULL, @@ -3867,7 +3871,7 @@ Jim_Obj *Jim_NewIntObj(Jim_Interp *interp, jim_wide wideValue) static void UpdateStringOfDouble(struct Jim_Obj *objPtr); static int SetDoubleFromAny(Jim_Interp *interp, Jim_Obj *objPtr); -Jim_ObjType doubleObjType = { +static Jim_ObjType doubleObjType = { "double", NULL, NULL, @@ -3952,7 +3956,7 @@ static int SetListFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); * the list object itself can't. This basically means that the * list object string representation as a whole can't contain references * that are not presents in the single elements. */ -Jim_ObjType listObjType = { +static Jim_ObjType listObjType = { "list", FreeListInternalRep, DupListInternalRep, @@ -4482,7 +4486,7 @@ static void Jim_ObjectHT_KeyValDestructor(void *interp, void *val) Jim_DecrRefCount(interp, objPtr); } -Jim_HashTableType Jim_DictHashTableType = { +static Jim_HashTableType Jim_DictHashTableType = { Jim_ObjectHT_HashFunction, /* hash function */ NULL, /* key dup */ NULL, /* val dup */ @@ -4495,7 +4499,7 @@ Jim_HashTableType Jim_DictHashTableType = { * the list object itself can't. This basically means that the * dict object string representation as a whole can't contain references * that are not presents in the single elements. */ -Jim_ObjType dictObjType = { +static Jim_ObjType dictObjType = { "dict", FreeDictInternalRep, DupDictInternalRep, @@ -4870,7 +4874,7 @@ err: static void UpdateStringOfIndex(struct Jim_Obj *objPtr); static int SetIndexFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); -Jim_ObjType indexObjType = { +static Jim_ObjType indexObjType = { "index", NULL, NULL, @@ -4957,7 +4961,7 @@ int Jim_GetIndex(Jim_Interp *interp, Jim_Obj *objPtr, int *indexPtr) static int SetReturnCodeFromAny(Jim_Interp *interp, Jim_Obj *objPtr); -Jim_ObjType returnCodeObjType = { +static Jim_ObjType returnCodeObjType = { "return-code", NULL, NULL, @@ -5256,7 +5260,7 @@ static void FreeExprInternalRep(Jim_Interp *interp, Jim_Obj *objPtr); static void DupExprInternalRep(Jim_Interp *interp, Jim_Obj *srcPtr, Jim_Obj *dupPtr); static int SetExprFromAny(Jim_Interp *interp, struct Jim_Obj *objPtr); -Jim_ObjType exprObjType = { +static Jim_ObjType exprObjType = { "expression", FreeExprInternalRep, DupExprInternalRep, @@ -6649,7 +6653,7 @@ static int JimParseSubst(struct JimParserCtx *pc, int flags) * for what is needed for [subst]itution tasks, but the reuse helps to * deal with a single data structure at the cost of some more memory * usage for substitutions. */ -Jim_ObjType substObjType = { +static Jim_ObjType substObjType = { "subst", FreeScriptInternalRep, DupScriptInternalRep, @@ -8210,7 +8214,7 @@ int Jim_InfoCoreCommand(Jim_Interp *interp, int argc, Jim_Obj **argv) } } -struct { +static struct { char *name; Jim_CmdProc cmdProc; } Jim_CoreCommandsTable[] = { @@ -431,162 +431,190 @@ typedef struct Jim_Reference { * linked itself, and to load extensions compiled with different * versions of Jim (as long as the API is still compatible.) */ -#ifdef JIM_EXTENSION +/* Macros are common for core and extensions */ +#define Jim_Free free +#define Jim_FreeHashTableIterator(iter) Jim_Free(iter) + +#ifndef __JIM_CORE__ #define JIM_API(x) (*x) +#define JIM_STATIC #else #define JIM_API(x) x -#endif +#define JIM_STATIC static +#endif /* __JIM_CORE__ */ /* Memory allocation */ -void * JIM_API(Jim_Alloc) (int size); -char * JIM_API(Jim_StrDup) (char *s); -#define Jim_Free free +JIM_STATIC void * JIM_API(Jim_Alloc) (int size); +JIM_STATIC char * JIM_API(Jim_StrDup) (char *s); /* evaluation */ -int JIM_API(Jim_EvalObj) (Jim_Interp *interp, Jim_Obj *scriptObjPtr); -int JIM_API(Jim_EvalObjVector) (Jim_Interp *interp, int objc, Jim_Obj **objv); -int JIM_API(Jim_SubstObj) (Jim_Interp *interp, Jim_Obj *substObjPtr, +JIM_STATIC int JIM_API(Jim_EvalObj) (Jim_Interp *interp, Jim_Obj *scriptObjPtr); +JIM_STATIC int JIM_API(Jim_EvalObjVector) (Jim_Interp *interp, int objc, + Jim_Obj **objv); +JIM_STATIC int JIM_API(Jim_SubstObj) (Jim_Interp *interp, Jim_Obj *substObjPtr, Jim_Obj **resObjPtrPtr, int flags); /* hash table */ -int JIM_API(Jim_InitHashTable) (Jim_HashTable *ht, Jim_HashTableType *type, - void *privdata); -int JIM_API(Jim_ExpandHashTable) (Jim_HashTable *ht, unsigned int size); -int JIM_API(Jim_AddHashEntry) (Jim_HashTable *ht, void *key, void *val); -int JIM_API(Jim_ReplaceHashEntry) (Jim_HashTable *ht, void *key, void *val); -int JIM_API(Jim_DeleteHashEntry) (Jim_HashTable *ht, void *key); -int JIM_API(Jim_FreeHashTable) (Jim_HashTable *ht); -Jim_HashEntry * JIM_API(Jim_FindHashEntry) (Jim_HashTable *ht, void *key); -int JIM_API(Jim_ResizeHashTable) (Jim_HashTable *ht); -Jim_HashTableIterator *JIM_API(Jim_GetHashTableIterator) (Jim_HashTable *ht); -Jim_HashEntry * JIM_API(Jim_NextHashEntry) (Jim_HashTableIterator *iterator); -#define Jim_FreeHashTableIterator(iter) Jim_Free(iter) +JIM_STATIC int JIM_API(Jim_InitHashTable) (Jim_HashTable *ht, + Jim_HashTableType *type, void *privdata); +JIM_STATIC int JIM_API(Jim_ExpandHashTable) (Jim_HashTable *ht, + unsigned int size); +JIM_STATIC int JIM_API(Jim_AddHashEntry) (Jim_HashTable *ht, void *key, + void *val); +JIM_STATIC int JIM_API(Jim_ReplaceHashEntry) (Jim_HashTable *ht, void *key, + void *val); +JIM_STATIC int JIM_API(Jim_DeleteHashEntry) (Jim_HashTable *ht, void *key); +JIM_STATIC int JIM_API(Jim_FreeHashTable) (Jim_HashTable *ht); +JIM_STATIC Jim_HashEntry * JIM_API(Jim_FindHashEntry) (Jim_HashTable *ht, + void *key); +JIM_STATIC int JIM_API(Jim_ResizeHashTable) (Jim_HashTable *ht); +JIM_STATIC Jim_HashTableIterator *JIM_API(Jim_GetHashTableIterator) + (Jim_HashTable *ht); +JIM_STATIC Jim_HashEntry * JIM_API(Jim_NextHashEntry) + (Jim_HashTableIterator *iterator); /* objects */ -Jim_Obj * JIM_API(Jim_NewObj) (Jim_Interp *interp); -void JIM_API(Jim_FreeObj) (Jim_Interp *interp, Jim_Obj *objPtr); -void JIM_API(Jim_InvalidateStringRep) (Jim_Obj *objPtr); -void JIM_API(Jim_InitStringRep) (Jim_Obj *objPtr, char *bytes, int length); -Jim_Obj * JIM_API(Jim_DuplicateObj) (Jim_Interp *interp, Jim_Obj *objPtr); -char * JIM_API(Jim_GetString)(Jim_Obj *objPtr, int *lenPtr); -void JIM_API(Jim_InvalidateStringRep)(Jim_Obj *objPtr); +JIM_STATIC Jim_Obj * JIM_API(Jim_NewObj) (Jim_Interp *interp); +JIM_STATIC void JIM_API(Jim_FreeObj) (Jim_Interp *interp, Jim_Obj *objPtr); +JIM_STATIC void JIM_API(Jim_InvalidateStringRep) (Jim_Obj *objPtr); +JIM_STATIC void JIM_API(Jim_InitStringRep) (Jim_Obj *objPtr, char *bytes, + int length); +JIM_STATIC Jim_Obj * JIM_API(Jim_DuplicateObj) (Jim_Interp *interp, + Jim_Obj *objPtr); +JIM_STATIC char * JIM_API(Jim_GetString)(Jim_Obj *objPtr, int *lenPtr); +JIM_STATIC void JIM_API(Jim_InvalidateStringRep)(Jim_Obj *objPtr); /* string object */ -Jim_Obj * JIM_API(Jim_NewStringObj) (Jim_Interp *interp, const char *s, - int len); -Jim_Obj * JIM_API(Jim_NewStringObjNoAlloc) (Jim_Interp *interp, char *s, - int len); -void JIM_API(Jim_AppendString) (Jim_Interp *interp, Jim_Obj *objPtr, char *str, - int len); -void JIM_API(Jim_AppendObj) (Jim_Interp *interp, Jim_Obj *objPtr, +JIM_STATIC Jim_Obj * JIM_API(Jim_NewStringObj) (Jim_Interp *interp, + const char *s, int len); +JIM_STATIC Jim_Obj * JIM_API(Jim_NewStringObjNoAlloc) (Jim_Interp *interp, + char *s, int len); +JIM_STATIC void JIM_API(Jim_AppendString) (Jim_Interp *interp, Jim_Obj *objPtr, + char *str, int len); +JIM_STATIC void JIM_API(Jim_AppendObj) (Jim_Interp *interp, Jim_Obj *objPtr, Jim_Obj *appendObjPtr); -void JIM_API(Jim_AppendStrings) (Jim_Interp *interp, Jim_Obj *objPtr, ...); -int JIM_API(Jim_StringEqObj) (Jim_Obj *aObjPtr, Jim_Obj *bObjPtr, int nocase); -int JIM_API(Jim_StringMatchObj) (Jim_Obj *patternObjPtr, Jim_Obj *objPtr, int nocase); -Jim_Obj * JIM_API(Jim_StringRangeObj) (Jim_Interp *interp, +JIM_STATIC void JIM_API(Jim_AppendStrings) (Jim_Interp *interp, + Jim_Obj *objPtr, ...); +JIM_STATIC int JIM_API(Jim_StringEqObj) (Jim_Obj *aObjPtr, Jim_Obj *bObjPtr, + int nocase); +JIM_STATIC int JIM_API(Jim_StringMatchObj) (Jim_Obj *patternObjPtr, + Jim_Obj *objPtr, int nocase); +JIM_STATIC Jim_Obj * JIM_API(Jim_StringRangeObj) (Jim_Interp *interp, Jim_Obj *strObjPtr, Jim_Obj *firstObjPtr, Jim_Obj *lastObjPtr); -int JIM_API(Jim_CompareStringImmediate) (Jim_Interp *interp, Jim_Obj *objPtr, - char *str); +JIM_STATIC int JIM_API(Jim_CompareStringImmediate) (Jim_Interp *interp, + Jim_Obj *objPtr, char *str); /* reference object */ -Jim_Obj * JIM_API(Jim_NewReference) (Jim_Interp *interp, Jim_Obj *objPtr, - Jim_Obj *cmdNamePtr); -Jim_Reference * JIM_API(Jim_GetReference) (Jim_Interp *interp, Jim_Obj *objPtr); +JIM_STATIC Jim_Obj * JIM_API(Jim_NewReference) (Jim_Interp *interp, + Jim_Obj *objPtr, Jim_Obj *cmdNamePtr); +JIM_STATIC Jim_Reference * JIM_API(Jim_GetReference) (Jim_Interp *interp, + Jim_Obj *objPtr); /* interpreter */ -Jim_Interp * JIM_API(Jim_CreateInterp) (void); -void JIM_API(Jim_FreeInterp) (Jim_Interp *i); +JIM_STATIC Jim_Interp * JIM_API(Jim_CreateInterp) (void); +JIM_STATIC void JIM_API(Jim_FreeInterp) (Jim_Interp *i); /* commands */ -void JIM_API(Jim_RegisterCoreCommands) (Jim_Interp *interp); -int JIM_API(Jim_CreateCommand) (Jim_Interp *interp, char *cmdName, +JIM_STATIC void JIM_API(Jim_RegisterCoreCommands) (Jim_Interp *interp); +JIM_STATIC int JIM_API(Jim_CreateCommand) (Jim_Interp *interp, char *cmdName, Jim_CmdProc cmdProc, void *privData); -int JIM_API(Jim_CreateProcedure) (Jim_Interp *interp, char *cmdName, +JIM_STATIC int JIM_API(Jim_CreateProcedure) (Jim_Interp *interp, char *cmdName, Jim_Obj *argListObjPtr, Jim_Obj *bodyObjPtr, int arityMin, int arityMax); -int JIM_API(Jim_DeleteCommand) (Jim_Interp *interp, char *cmdName); -int JIM_API(Jim_RenameCommand) (Jim_Interp *interp, char *oldName, +JIM_STATIC int JIM_API(Jim_DeleteCommand) (Jim_Interp *interp, char *cmdName); +JIM_STATIC int JIM_API(Jim_RenameCommand) (Jim_Interp *interp, char *oldName, char *newName); -Jim_Cmd * JIM_API(Jim_GetCommand) (Jim_Interp *interp, Jim_Obj *objPtr, - int flags); -int JIM_API(Jim_SetVariable) (Jim_Interp *interp, Jim_Obj *nameObjPtr, - Jim_Obj *valObjPtr); -int JIM_API(Jim_SetVariableLink) (Jim_Interp *interp, Jim_Obj *nameObjPtr, - Jim_Obj *targetNameObjPtr, Jim_CallFrame *targetCallFrame); -Jim_Obj * JIM_API(Jim_GetVariable) (Jim_Interp *interp, Jim_Obj *nameObjPtr, - int flags); -int JIM_API(Jim_UnsetVariable) (Jim_Interp *interp, Jim_Obj *nameObjPtr, - int flags); +JIM_STATIC Jim_Cmd * JIM_API(Jim_GetCommand) (Jim_Interp *interp, + Jim_Obj *objPtr, int flags); +JIM_STATIC int JIM_API(Jim_SetVariable) (Jim_Interp *interp, + Jim_Obj *nameObjPtr, Jim_Obj *valObjPtr); +JIM_STATIC int JIM_API(Jim_SetVariableLink) (Jim_Interp *interp, + Jim_Obj *nameObjPtr, Jim_Obj *targetNameObjPtr, + Jim_CallFrame *targetCallFrame); +JIM_STATIC Jim_Obj * JIM_API(Jim_GetVariable) (Jim_Interp *interp, + Jim_Obj *nameObjPtr, int flags); +JIM_STATIC int JIM_API(Jim_UnsetVariable) (Jim_Interp *interp, + Jim_Obj *nameObjPtr, int flags); /* call frame */ -int JIM_API(Jim_GetCallFrameByLevel) (Jim_Interp *interp, Jim_Obj *levelObjPtr, - Jim_CallFrame **framePtrPtr, int *newLevelPtr); +JIM_STATIC int JIM_API(Jim_GetCallFrameByLevel) (Jim_Interp *interp, + Jim_Obj *levelObjPtr, Jim_CallFrame **framePtrPtr, + int *newLevelPtr); /* garbage collection */ -int JIM_API(Jim_Collect) (Jim_Interp *interp); -void JIM_API(Jim_CollectIfNeeded) (Jim_Interp *interp); +JIM_STATIC int JIM_API(Jim_Collect) (Jim_Interp *interp); +JIM_STATIC void JIM_API(Jim_CollectIfNeeded) (Jim_Interp *interp); /* index object */ -int JIM_API(Jim_GetIndex) (Jim_Interp *interp, Jim_Obj *objPtr, int *indexPtr); +JIM_STATIC int JIM_API(Jim_GetIndex) (Jim_Interp *interp, Jim_Obj *objPtr, + int *indexPtr); /* list object */ -Jim_Obj * JIM_API(Jim_NewListObj) (Jim_Interp *interp, Jim_Obj **elements, - int len); -void JIM_API(Jim_ListAppendElement) (Jim_Interp *interp, Jim_Obj *listPtr, - Jim_Obj *objPtr); -void JIM_API(Jim_ListAppendList) (Jim_Interp *interp, Jim_Obj *listPtr, - Jim_Obj *appendListPtr); -void JIM_API(Jim_ListLength) (Jim_Interp *interp, Jim_Obj *listPtr, +JIM_STATIC Jim_Obj * JIM_API(Jim_NewListObj) (Jim_Interp *interp, + Jim_Obj **elements, int len); +JIM_STATIC void JIM_API(Jim_ListAppendElement) (Jim_Interp *interp, + Jim_Obj *listPtr, Jim_Obj *objPtr); +JIM_STATIC void JIM_API(Jim_ListAppendList) (Jim_Interp *interp, + Jim_Obj *listPtr, Jim_Obj *appendListPtr); +JIM_STATIC void JIM_API(Jim_ListLength) (Jim_Interp *interp, Jim_Obj *listPtr, int *intPtr); -int JIM_API(Jim_ListIndex) (Jim_Interp *interp, Jim_Obj *listPrt, int index, - Jim_Obj **objPtrPtr, int seterr); -int JIM_API(Jim_SetListIndex) (Jim_Interp *interp, Jim_Obj *varNamePtr, - Jim_Obj **indexv, int indexc, Jim_Obj *newObjPtr); -Jim_Obj * JIM_API(Jim_ConcatObj) (Jim_Interp *interp, int objc, Jim_Obj **objv); +JIM_STATIC int JIM_API(Jim_ListIndex) (Jim_Interp *interp, Jim_Obj *listPrt, + int index, Jim_Obj **objPtrPtr, int seterr); +JIM_STATIC int JIM_API(Jim_SetListIndex) (Jim_Interp *interp, + Jim_Obj *varNamePtr, Jim_Obj **indexv, int indexc, + Jim_Obj *newObjPtr); +JIM_STATIC Jim_Obj * JIM_API(Jim_ConcatObj) (Jim_Interp *interp, int objc, + Jim_Obj **objv); /* dict object */ -Jim_Obj * JIM_API(Jim_NewDictObj) (Jim_Interp *interp, Jim_Obj **elements, - int len); -int JIM_API(Jim_DictKey) (Jim_Interp *interp, Jim_Obj *dictPtr, Jim_Obj *keyPtr, - Jim_Obj **objPtrPtr, int flags); -int JIM_API(Jim_DictKeysVector) (Jim_Interp *interp, Jim_Obj *dictPtr, - Jim_Obj **keyv, int keyc, Jim_Obj **objPtrPtr, int flags); -int JIM_API(Jim_GetIndex) (Jim_Interp *interp, Jim_Obj *objPtr, int *indexPtr); -int JIM_API(Jim_SetDictKeysVector) (Jim_Interp *interp, Jim_Obj *varNamePtr, - Jim_Obj **keyv, int keyc, Jim_Obj *newObjPtr); +JIM_STATIC Jim_Obj * JIM_API(Jim_NewDictObj) (Jim_Interp *interp, + Jim_Obj **elements, int len); +JIM_STATIC int JIM_API(Jim_DictKey) (Jim_Interp *interp, Jim_Obj *dictPtr, + Jim_Obj *keyPtr, Jim_Obj **objPtrPtr, int flags); +JIM_STATIC int JIM_API(Jim_DictKeysVector) (Jim_Interp *interp, + Jim_Obj *dictPtr, Jim_Obj **keyv, int keyc, + Jim_Obj **objPtrPtr, int flags); +JIM_STATIC int JIM_API(Jim_GetIndex) (Jim_Interp *interp, Jim_Obj *objPtr, + int *indexPtr); +JIM_STATIC int JIM_API(Jim_SetDictKeysVector) (Jim_Interp *interp, + Jim_Obj *varNamePtr, Jim_Obj **keyv, int keyc, + Jim_Obj *newObjPtr); /* return code object */ -int JIM_API(Jim_GetReturnCode) (Jim_Interp *interp, Jim_Obj *objPtr, +JIM_STATIC int JIM_API(Jim_GetReturnCode) (Jim_Interp *interp, Jim_Obj *objPtr, int *intPtr); /* expression object */ -int JIM_API(Jim_EvalExpression) (Jim_Interp *interp, Jim_Obj *exprObjPtr, - Jim_Obj **exprResultPtrPtr); -int JIM_API(Jim_GetBoolFromExpr) (Jim_Interp *interp, Jim_Obj *exprObjPtr, - int *boolPtr); +JIM_STATIC int JIM_API(Jim_EvalExpression) (Jim_Interp *interp, + Jim_Obj *exprObjPtr, Jim_Obj **exprResultPtrPtr); +JIM_STATIC int JIM_API(Jim_GetBoolFromExpr) (Jim_Interp *interp, + Jim_Obj *exprObjPtr, int *boolPtr); /* integer object */ -int JIM_API(Jim_GetWide) (Jim_Interp *interp, Jim_Obj *objPtr, +JIM_STATIC int JIM_API(Jim_GetWide) (Jim_Interp *interp, Jim_Obj *objPtr, jim_wide *widePtr); -int JIM_API(Jim_GetLong) (Jim_Interp *interp, Jim_Obj *objPtr, long *longPtr); -void JIM_API(Jim_SetWide) (Jim_Interp *interp, Jim_Obj *objPtr, +JIM_STATIC int JIM_API(Jim_GetLong) (Jim_Interp *interp, Jim_Obj *objPtr, + long *longPtr); +JIM_STATIC void JIM_API(Jim_SetWide) (Jim_Interp *interp, Jim_Obj *objPtr, + jim_wide wideValue); +JIM_STATIC Jim_Obj * JIM_API(Jim_NewIntObj) (Jim_Interp *interp, jim_wide wideValue); -Jim_Obj * JIM_API(Jim_NewIntObj) (Jim_Interp *interp, jim_wide wideValue); /* shared strings */ -char JIM_API(*Jim_GetSharedString) (Jim_Interp *interp, char *str); -void JIM_API(Jim_ReleaseSharedString) (Jim_Interp *interp, char *str); +JIM_STATIC char JIM_API(*Jim_GetSharedString) (Jim_Interp *interp, char *str); +JIM_STATIC void JIM_API(Jim_ReleaseSharedString) (Jim_Interp *interp, char *str); /* commands utilities */ -void JIM_API(Jim_WrongNumArgs) (Jim_Interp *interp, int argc, Jim_Obj **argv, - char *msg); +JIM_STATIC void JIM_API(Jim_WrongNumArgs) (Jim_Interp *interp, int argc, + Jim_Obj **argv, char *msg); /* API import/export functions */ -void* JIM_API(Jim_GetApi)(Jim_Interp *interp, char *funcname); -int JIM_API(Jim_RegisterApi)(Jim_Interp *interp, char *funcname, void *funcptr); +JIM_STATIC void* JIM_API(Jim_GetApi)(Jim_Interp *interp, char *funcname); +JIM_STATIC int JIM_API(Jim_RegisterApi)(Jim_Interp *interp, char *funcname, + void *funcptr); -#ifdef JIM_EXTENSION +#ifndef __JIM_CORE__ /* This must be included "inline" inside the extension */ static void Jim_InitExtension(Jim_Interp *interp, char *version) { @@ -663,6 +691,6 @@ static void Jim_InitExtension(Jim_Interp *interp, char *version) Jim_RegisterApi = Jim_GetApi(interp, "Jim_RegisterApi"); Jim_SetResultString(interp, version, -1); } -#endif /* JIM_EXTENSION */ +#endif /* __JIM_CORE__ */ #endif /* __JIM__H */ |