aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jim.c56
-rw-r--r--jim.h234
2 files changed, 161 insertions, 129 deletions
diff --git a/jim.c b/jim.c
index b3e489c..2a9f017 100644
--- a/jim.c
+++ b/jim.c
@@ -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[] = {
diff --git a/jim.h b/jim.h
index 77b3e46..5441da7 100644
--- a/jim.h
+++ b/jim.h
@@ -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 */