aboutsummaryrefslogtreecommitdiff
path: root/jim.h
diff options
context:
space:
mode:
authorantirez <antirez>2005-03-03 15:30:47 +0000
committerantirez <antirez>2005-03-03 15:30:47 +0000
commitb529b8b718c67e29bbf03b6412e3a4f9cbd1b3aa (patch)
tree943a3e2381f8821284c3b890ff20ed25b091b09d /jim.h
parent3829249aa79806d52b89f1b07e12cfa7a983d190 (diff)
downloadjimtcl-b529b8b718c67e29bbf03b6412e3a4f9cbd1b3aa.zip
jimtcl-b529b8b718c67e29bbf03b6412e3a4f9cbd1b3aa.tar.gz
jimtcl-b529b8b718c67e29bbf03b6412e3a4f9cbd1b3aa.tar.bz2
Made exporting of symbols to the API less error prone
with JIM_REGISTER_API and JIM_GET_API macros.
Diffstat (limited to 'jim.h')
-rw-r--r--jim.h158
1 files changed, 81 insertions, 77 deletions
diff --git a/jim.h b/jim.h
index d7cbd20..4f7a0b5 100644
--- a/jim.h
+++ b/jim.h
@@ -680,87 +680,91 @@ JIM_STATIC int JIM_API(Jim_InteractivePrompt) (void);
JIM_STATIC void JIM_API(Jim_Panic) (const char *fmt, ...);
#ifndef __JIM_CORE__
+
+#define JIM_GET_API(name) \
+ Jim_ ## name = Jim_GetApi(interp, "Jim_" #name)
+
/* This must be included "inline" inside the extension */
static void Jim_InitExtension(Jim_Interp *interp, const char *version)
{
Jim_GetApi = interp->getApiFuncPtr;
-
- Jim_Alloc = Jim_GetApi(interp, "Jim_Alloc");
- Jim_Eval = Jim_GetApi(interp, "Jim_Eval");
- Jim_EvalFile = Jim_GetApi(interp, "Jim_EvalFile");
- Jim_EvalObj = Jim_GetApi(interp, "Jim_EvalObj");
- Jim_EvalObjVector = Jim_GetApi(interp, "Jim_EvalObjVector");
- Jim_InitHashTable = Jim_GetApi(interp, "Jim_InitHashTable");
- Jim_ExpandHashTable = Jim_GetApi(interp, "Jim_ExpandHashTable");
- Jim_AddHashEntry = Jim_GetApi(interp, "Jim_AddHashEntry");
- Jim_ReplaceHashEntry = Jim_GetApi(interp, "Jim_ReplaceHashEntry");
- Jim_DeleteHashEntry = Jim_GetApi(interp, "Jim_DeleteHashEntry");
- Jim_FreeHashTable = Jim_GetApi(interp, "Jim_FreeHashTable");
- Jim_FindHashEntry = Jim_GetApi(interp, "Jim_FindHashEntry");
- Jim_ResizeHashTable = Jim_GetApi(interp, "Jim_ResizeHashTable");
- Jim_GetHashTableIterator = Jim_GetApi(interp, "Jim_GetHashTableIterator");
- Jim_NextHashEntry = Jim_GetApi(interp, "Jim_NextHashEntry");
- Jim_NewObj = Jim_GetApi(interp, "Jim_NewObj");
- Jim_FreeObj = Jim_GetApi(interp, "Jim_FreeObj");
- Jim_InvalidateStringRep = Jim_GetApi(interp, "Jim_InvalidateStringRep");
- Jim_InitStringRep = Jim_GetApi(interp, "Jim_InitStringRep");
- Jim_DuplicateObj = Jim_GetApi(interp, "Jim_DuplicateObj");
- Jim_GetString = Jim_GetApi(interp, "Jim_GetString");
- Jim_InvalidateStringRep = Jim_GetApi(interp, "Jim_InvalidateStringRep");
- Jim_NewStringObj = Jim_GetApi(interp, "Jim_NewStringObj");
- Jim_NewStringObjNoAlloc = Jim_GetApi(interp, "Jim_NewStringObjNoAlloc");
- Jim_AppendString = Jim_GetApi(interp, "Jim_AppendString");
- Jim_AppendObj = Jim_GetApi(interp, "Jim_AppendObj");
- Jim_AppendStrings = Jim_GetApi(interp, "Jim_AppendStrings");
- Jim_StringEqObj = Jim_GetApi(interp, "Jim_StringEqObj");
- Jim_StringMatchObj = Jim_GetApi(interp, "Jim_StringMatchObj");
- Jim_StringRangeObj = Jim_GetApi(interp, "Jim_StringRangeObj");
- Jim_CompareStringImmediate = Jim_GetApi(interp, "Jim_CompareStringImmediate");
- Jim_NewReference = Jim_GetApi(interp, "Jim_NewReference");
- Jim_GetReference = Jim_GetApi(interp, "Jim_GetReference");
- Jim_CreateInterp = Jim_GetApi(interp, "Jim_CreateInterp");
- Jim_FreeInterp = Jim_GetApi(interp, "Jim_FreeInterp");
- Jim_RegisterCoreCommands = Jim_GetApi(interp, "Jim_RegisterCoreCommands");
- Jim_CreateCommand = Jim_GetApi(interp, "Jim_CreateCommand");
- Jim_CreateProcedure = Jim_GetApi(interp, "Jim_CreateProcedure");
- Jim_DeleteCommand = Jim_GetApi(interp, "Jim_DeleteCommand");
- Jim_RenameCommand = Jim_GetApi(interp, "Jim_RenameCommand");
- Jim_GetCommand = Jim_GetApi(interp, "Jim_GetCommand");
- Jim_SetVariable = Jim_GetApi(interp, "Jim_SetVariable");
- Jim_SetVariableLink = Jim_GetApi(interp, "Jim_SetVariableLink");
- Jim_GetVariable = Jim_GetApi(interp, "Jim_GetVariable");
- Jim_UnsetVariable = Jim_GetApi(interp, "Jim_UnsetVariable");
- Jim_GetCallFrameByLevel = Jim_GetApi(interp, "Jim_GetCallFrameByLevel");
- Jim_Collect = Jim_GetApi(interp, "Jim_Collect");
- Jim_CollectIfNeeded = Jim_GetApi(interp, "Jim_CollectIfNeeded");
- Jim_GetIndex = Jim_GetApi(interp, "Jim_GetIndex");
- Jim_NewListObj = Jim_GetApi(interp, "Jim_NewListObj");
- Jim_ListAppendElement = Jim_GetApi(interp, "Jim_ListAppendElement");
- Jim_ListAppendList = Jim_GetApi(interp, "Jim_ListAppendList");
- Jim_ListLength = Jim_GetApi(interp, "Jim_ListLength");
- Jim_ListIndex = Jim_GetApi(interp, "Jim_ListIndex");
- Jim_SetListIndex = Jim_GetApi(interp, "Jim_SetListIndex");
- Jim_ConcatObj = Jim_GetApi(interp, "Jim_ConcatObj");
- Jim_NewDictObj = Jim_GetApi(interp, "Jim_NewDictObj");
- Jim_DictKey = Jim_GetApi(interp, "Jim_DictKey");
- Jim_DictKeysVector = Jim_GetApi(interp, "Jim_DictKeysVector");
- Jim_GetIndex = Jim_GetApi(interp, "Jim_GetIndex");
- Jim_GetReturnCode = Jim_GetApi(interp, "Jim_GetReturnCode");
- Jim_EvalExpression = Jim_GetApi(interp, "Jim_EvalExpression");
- Jim_GetBoolFromExpr = Jim_GetApi(interp, "Jim_GetBoolFromExpr");
- Jim_GetWide = Jim_GetApi(interp, "Jim_GetWide");
- Jim_GetLong = Jim_GetApi(interp, "Jim_GetLong");
- Jim_SetWide = Jim_GetApi(interp, "Jim_SetWide");
- Jim_NewIntObj = Jim_GetApi(interp, "Jim_NewIntObj");
- Jim_GetDouble = Jim_GetApi(interp, "Jim_GetDouble");
- Jim_SetDouble = Jim_GetApi(interp, "Jim_SetDouble");
- Jim_NewDoubleObj = Jim_GetApi(interp, "Jim_NewDoubleObj");
- Jim_WrongNumArgs = Jim_GetApi(interp, "Jim_WrongNumArgs");
- Jim_SetDictKeysVector = Jim_GetApi(interp, "Jim_SetDictKeysVector");
- Jim_SubstObj = Jim_GetApi(interp, "Jim_SubstObj");
- Jim_RegisterApi = Jim_GetApi(interp, "Jim_RegisterApi");
- Jim_PrintErrorMessage = Jim_GetApi(interp, "Jim_PrintErrorMessage");
- Jim_InteractivePrompt = Jim_GetApi(interp, "Jim_InteractivePrompt");
+
+ // Jim_Alloc = Jim_GetApi(interp, "Jim_Alloc");
+ JIM_GET_API(Alloc);
+ JIM_GET_API(Eval);
+ JIM_GET_API(EvalFile);
+ JIM_GET_API(EvalObj);
+ JIM_GET_API(EvalObjVector);
+ JIM_GET_API(InitHashTable);
+ JIM_GET_API(ExpandHashTable);
+ JIM_GET_API(AddHashEntry);
+ JIM_GET_API(ReplaceHashEntry);
+ JIM_GET_API(DeleteHashEntry);
+ JIM_GET_API(FreeHashTable);
+ JIM_GET_API(FindHashEntry);
+ JIM_GET_API(ResizeHashTable);
+ JIM_GET_API(GetHashTableIterator);
+ JIM_GET_API(NextHashEntry);
+ JIM_GET_API(NewObj);
+ JIM_GET_API(FreeObj);
+ JIM_GET_API(InvalidateStringRep);
+ JIM_GET_API(InitStringRep);
+ JIM_GET_API(DuplicateObj);
+ JIM_GET_API(GetString);
+ JIM_GET_API(InvalidateStringRep);
+ JIM_GET_API(NewStringObj);
+ JIM_GET_API(NewStringObjNoAlloc);
+ JIM_GET_API(AppendString);
+ JIM_GET_API(AppendObj);
+ JIM_GET_API(AppendStrings);
+ JIM_GET_API(StringEqObj);
+ JIM_GET_API(StringMatchObj);
+ JIM_GET_API(StringRangeObj);
+ JIM_GET_API(CompareStringImmediate);
+ JIM_GET_API(NewReference);
+ JIM_GET_API(GetReference);
+ JIM_GET_API(CreateInterp);
+ JIM_GET_API(FreeInterp);
+ JIM_GET_API(CreateCommand);
+ JIM_GET_API(CreateProcedure);
+ JIM_GET_API(DeleteCommand);
+ JIM_GET_API(RenameCommand);
+ JIM_GET_API(GetCommand);
+ JIM_GET_API(SetVariable);
+ JIM_GET_API(SetVariableLink);
+ JIM_GET_API(GetVariable);
+ JIM_GET_API(GetCallFrameByLevel);
+ JIM_GET_API(Collect);
+ JIM_GET_API(CollectIfNeeded);
+ JIM_GET_API(GetIndex);
+ JIM_GET_API(NewListObj);
+ JIM_GET_API(ListAppendElement);
+ JIM_GET_API(ListAppendList);
+ JIM_GET_API(ListLength);
+ JIM_GET_API(ListIndex);
+ JIM_GET_API(SetListIndex);
+ JIM_GET_API(ConcatObj);
+ JIM_GET_API(NewDictObj);
+ JIM_GET_API(DictKey);
+ JIM_GET_API(DictKeysVector);
+ JIM_GET_API(GetIndex);
+ JIM_GET_API(GetReturnCode);
+ JIM_GET_API(EvalExpression);
+ JIM_GET_API(GetBoolFromExpr);
+ JIM_GET_API(GetWide);
+ JIM_GET_API(GetLong);
+ JIM_GET_API(SetWide);
+ JIM_GET_API(NewIntObj);
+ JIM_GET_API(GetDouble);
+ JIM_GET_API(SetDouble);
+ JIM_GET_API(NewDoubleObj);
+ JIM_GET_API(WrongNumArgs);
+ JIM_GET_API(SetDictKeysVector);
+ JIM_GET_API(SubstObj);
+ JIM_GET_API(RegisterApi);
+ JIM_GET_API(PrintErrorMessage);
+ JIM_GET_API(InteractivePrompt);
+
Jim_SetResultString(interp, version, -1);
}