From f00ebac6780300a33d755335f80580847694ccf8 Mon Sep 17 00:00:00 2001 From: William Joye Date: Tue, 14 Jun 2016 15:40:59 -0400 Subject: fixes to stub support --- Makefile.in | 8 ++++---- configure | 29 +++++++++++++++++------------ configure.in | 9 +++++++-- src/tkblt.decl | 8 ++++++-- src/tkbltDecls.h | 22 ++++++++++++++-------- src/tkbltInt.C | 5 +---- src/tkbltStubInit.c | 7 ++++--- src/tkbltVecCmd.C | 2 +- src/tkbltVecInt.h | 1 + src/tkbltVecMath.C | 5 +++++ src/tkbltVector.C | 2 +- src/tkbltVector.h | 7 +++++++ 12 files changed, 68 insertions(+), 37 deletions(-) diff --git a/Makefile.in b/Makefile.in index 54d7278..2ed406c 100755 --- a/Makefile.in +++ b/Makefile.in @@ -34,7 +34,7 @@ #======================================================================== PKG_SOURCES = @PKG_SOURCES@ -PKG_OBJECTS = @PKG_OBJECTS@ @PKG_STUB_OBJECTS@ +PKG_OBJECTS = @PKG_OBJECTS@ PKG_STUB_SOURCES = @PKG_STUB_SOURCES@ PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@ @@ -60,7 +60,7 @@ PKG_HEADERS = @PKG_HEADERS@ PKG_LIB_FILE = @PKG_LIB_FILE@ PKG_STUB_LIB_FILE = @PKG_STUB_LIB_FILE@ -lib_BINARIES = $(PKG_LIB_FILE) $(PKG_STUB_LIB_FILE) +lib_BINARIES = $(PKG_LIB_FILE) $(PKG_STUB_LIB_FILE) BINARIES = $(lib_BINARIES) SHELL = @SHELL@ @@ -111,14 +111,14 @@ SHLIB_CFLAGS = @SHLIB_CFLAGS@ SHLIB_LD = @SHLIB_LD@ SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ STLIB_LD = @STLIB_LD@ -#TCL_DEFS = @TCL_DEFS@ +TCL_DEFS = @TCL_DEFS@ TCL_BIN_DIR = @TCL_BIN_DIR@ TCL_SRC_DIR = @TCL_SRC_DIR@ #TK_BIN_DIR = @TK_BIN_DIR@ #TK_SRC_DIR = @TK_SRC_DIR@ # Not used, but retained for reference of what libs Tcl required -#TCL_LIBS = @TCL_LIBS@ +TCL_LIBS = @TCL_LIBS@ #======================================================================== # TCLLIBPATH seeds the auto_path in Tcl's init.tcl so we can test our diff --git a/configure b/configure index 183e705..b41a81b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for tkblt 3.1. +# Generated by GNU Autoconf 2.69 for tkblt 3.2. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='tkblt' PACKAGE_TARNAME='tkblt' -PACKAGE_VERSION='3.1' -PACKAGE_STRING='tkblt 3.1' +PACKAGE_VERSION='3.2' +PACKAGE_STRING='tkblt 3.2' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1309,7 +1309,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures tkblt 3.1 to adapt to many kinds of systems. +\`configure' configures tkblt 3.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1374,7 +1374,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of tkblt 3.1:";; + short | recursive ) echo "Configuration of tkblt 3.2:";; esac cat <<\_ACEOF @@ -1478,7 +1478,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -tkblt configure 3.1 +tkblt configure 3.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1843,7 +1843,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by tkblt $as_me 3.1, which was +It was created by tkblt $as_me 3.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -5571,6 +5571,8 @@ src/tkbltInt.C src/tkbltNsUtil.C src/tkbltParse.C src/tkbltOp.C +src/tkbltStubInit.c +src/tkbltStubLib.C src/tkbltSwitch.C src/tkbltVecCmd.C src/tkbltVecOp.C @@ -5611,7 +5613,10 @@ src/tkbltVector.C - vars="src/tkbltVector.h" + vars=" +src/tkbltVector.h +src/tkbltDecls.h +" for i in $vars; do # check for existence, be strict because it is installed if test ! -f "${srcdir}/$i" ; then @@ -5644,7 +5649,7 @@ src/tkbltVector.C - vars="" + vars="src/tkbltStubLib.C" for i in $vars; do # check for existence - allows for generic/win/unix VPATH if test ! -f "${srcdir}/$i" -a ! -f "${srcdir}/generic/$i" \ @@ -5655,7 +5660,7 @@ src/tkbltVector.C fi PKG_STUB_SOURCES="$PKG_STUB_SOURCES $i" # this assumes it is in a VPATH dir - i=`basename $i` + #i=`basename $i` # handle user calling this before or after TEA_SETUP_COMPILER if test x"${OBJEXT}" != x ; then j="`echo $i | sed -e 's/\.[^.]*$//'`.${OBJEXT}" @@ -9996,7 +10001,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by tkblt $as_me 3.1, which was +This file was extended by tkblt $as_me 3.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10049,7 +10054,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -tkblt config.status 3.1 +tkblt config.status 3.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.in b/configure.in index fcf5455..85a02ed 100755 --- a/configure.in +++ b/configure.in @@ -19,7 +19,7 @@ dnl to configure the system for the local environment. # so that we create the export library with the dll. #----------------------------------------------------------------------- -AC_INIT([tkblt], [3.1]) +AC_INIT([tkblt], [3.2]) #-------------------------------------------------------------------- # Call TEA_INIT as the first TEA_ macro to set up initial vars. @@ -113,13 +113,18 @@ src/tkbltInt.C src/tkbltNsUtil.C src/tkbltParse.C src/tkbltOp.C +src/tkbltStubInit.c +src/tkbltStubLib.C src/tkbltSwitch.C src/tkbltVecCmd.C src/tkbltVecOp.C src/tkbltVecMath.C src/tkbltVector.C ]) -TEA_ADD_HEADERS([src/tkbltVector.h src/tkbltDecls.h]) +TEA_ADD_HEADERS([ +src/tkbltVector.h +src/tkbltDecls.h +]) TEA_ADD_INCLUDES([-I./src]) TEA_ADD_LIBS([-lstdc++]) TEA_ADD_CFLAGS([]) diff --git a/src/tkblt.decl b/src/tkblt.decl index 8354376..b4b5c67 100644 --- a/src/tkblt.decl +++ b/src/tkblt.decl @@ -75,14 +75,18 @@ declare 15 generic { } declare 16 generic { + int Blt_ExprVector(Tcl_Interp* interp, char *expr, Blt_Vector *vecPtr) +} + +declare 17 generic { void Blt_InstallIndexProc(Tcl_Interp* interp, const char *indexName, Blt_VectorIndexProc * procPtr) } -declare 17 generic { +declare 18 generic { double Blt_VecMin(Blt_Vector *vPtr) } -declare 18 generic { +declare 19 generic { double Blt_VecMax(Blt_Vector *vPtr) } diff --git a/src/tkbltDecls.h b/src/tkbltDecls.h index ca194cd..d50e207 100644 --- a/src/tkbltDecls.h +++ b/src/tkbltDecls.h @@ -57,12 +57,15 @@ EXTERN const char * Blt_NameOfVectorId(Blt_VectorId clientId); /* 15 */ EXTERN const char * Blt_NameOfVector(Blt_Vector *vecPtr); /* 16 */ +EXTERN int Blt_ExprVector(Tcl_Interp*interp, char *expr, + Blt_Vector *vecPtr); +/* 17 */ EXTERN void Blt_InstallIndexProc(Tcl_Interp*interp, const char *indexName, Blt_VectorIndexProc *procPtr); -/* 17 */ -EXTERN double Blt_VecMin(Blt_Vector *vPtr); /* 18 */ +EXTERN double Blt_VecMin(Blt_Vector *vPtr); +/* 19 */ EXTERN double Blt_VecMax(Blt_Vector *vPtr); typedef struct TkbltStubs { @@ -85,9 +88,10 @@ typedef struct TkbltStubs { void (*blt_FreeVectorId) (Blt_VectorId clientId); /* 13 */ const char * (*blt_NameOfVectorId) (Blt_VectorId clientId); /* 14 */ const char * (*blt_NameOfVector) (Blt_Vector *vecPtr); /* 15 */ - void (*blt_InstallIndexProc) (Tcl_Interp*interp, const char *indexName, Blt_VectorIndexProc *procPtr); /* 16 */ - double (*blt_VecMin) (Blt_Vector *vPtr); /* 17 */ - double (*blt_VecMax) (Blt_Vector *vPtr); /* 18 */ + int (*blt_ExprVector) (Tcl_Interp*interp, char *expr, Blt_Vector *vecPtr); /* 16 */ + void (*blt_InstallIndexProc) (Tcl_Interp*interp, const char *indexName, Blt_VectorIndexProc *procPtr); /* 17 */ + double (*blt_VecMin) (Blt_Vector *vPtr); /* 18 */ + double (*blt_VecMax) (Blt_Vector *vPtr); /* 19 */ } TkbltStubs; extern const TkbltStubs *tkbltStubsPtr; @@ -134,12 +138,14 @@ extern const TkbltStubs *tkbltStubsPtr; (tkbltStubsPtr->blt_NameOfVectorId) /* 14 */ #define Blt_NameOfVector \ (tkbltStubsPtr->blt_NameOfVector) /* 15 */ +#define Blt_ExprVector \ + (tkbltStubsPtr->blt_ExprVector) /* 16 */ #define Blt_InstallIndexProc \ - (tkbltStubsPtr->blt_InstallIndexProc) /* 16 */ + (tkbltStubsPtr->blt_InstallIndexProc) /* 17 */ #define Blt_VecMin \ - (tkbltStubsPtr->blt_VecMin) /* 17 */ + (tkbltStubsPtr->blt_VecMin) /* 18 */ #define Blt_VecMax \ - (tkbltStubsPtr->blt_VecMax) /* 18 */ + (tkbltStubsPtr->blt_VecMax) /* 19 */ #endif /* defined(USE_TKBLT_STUBS) */ diff --git a/src/tkbltInt.C b/src/tkbltInt.C index f5b0a60..5e9dde7 100644 --- a/src/tkbltInt.C +++ b/src/tkbltInt.C @@ -62,10 +62,7 @@ int Tkblt_Init(Tcl_Interp* interp) if (Blt_GraphCmdInitProc(interp) != TCL_OK) return TCL_ERROR; - if (Tcl_PkgProvide(interp, PACKAGE_NAME, PACKAGE_VERSION) != TCL_OK) - return TCL_ERROR; - - if (Tcl_PkgProvideEx(interp, PACKAGE_NAME, PACKAGE_VERSION, &tkbltStubs) != TCL_OK) + if (Tcl_PkgProvideEx(interp, PACKAGE_NAME, PACKAGE_VERSION, (ClientData)&tkbltStubs) != TCL_OK) return TCL_ERROR; return TCL_OK; diff --git a/src/tkbltStubInit.c b/src/tkbltStubInit.c index b54cc97..8d28789 100644 --- a/src/tkbltStubInit.c +++ b/src/tkbltStubInit.c @@ -21,9 +21,10 @@ const TkbltStubs tkbltStubs = { Blt_FreeVectorId, /* 13 */ Blt_NameOfVectorId, /* 14 */ Blt_NameOfVector, /* 15 */ - Blt_InstallIndexProc, /* 16 */ - Blt_VecMin, /* 17 */ - Blt_VecMax, /* 18 */ + Blt_ExprVector, /* 16 */ + Blt_InstallIndexProc, /* 17 */ + Blt_VecMin, /* 18 */ + Blt_VecMax, /* 19 */ }; /* !END!: Do not edit above this line. */ diff --git a/src/tkbltVecCmd.C b/src/tkbltVecCmd.C index 7d977d1..c113c08 100644 --- a/src/tkbltVecCmd.C +++ b/src/tkbltVecCmd.C @@ -1533,7 +1533,7 @@ static int SortOp(Vector *vPtr, Tcl_Interp* interp, static int InstExprOp(Vector *vPtr, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { - if (ExprVector(interp, Tcl_GetString(objv[2]), (Blt_Vector *)vPtr) != TCL_OK) + if (Blt_ExprVector(interp, Tcl_GetString(objv[2]), (Blt_Vector *)vPtr) != TCL_OK) return TCL_ERROR; if (vPtr->flush) diff --git a/src/tkbltVecInt.h b/src/tkbltVecInt.h index 8feedaa..cc516a1 100644 --- a/src/tkbltVecInt.h +++ b/src/tkbltVecInt.h @@ -185,6 +185,7 @@ namespace Blt { extern size_t *Vec_SortMap(Vector **vectors, int nVectors); extern double Vec_Max(Vector *vecObjPtr); extern double Vec_Min(Vector *vecObjPtr); + extern int ExprVector(Tcl_Interp* interp, char *string, Blt_Vector *vector); extern Tcl_ObjCmdProc Vec_InstCmd; extern Tcl_VarTraceProc Vec_VarTrace; diff --git a/src/tkbltVecMath.C b/src/tkbltVecMath.C index d5f1f84..b13e92d 100644 --- a/src/tkbltVecMath.C +++ b/src/tkbltVecMath.C @@ -198,6 +198,11 @@ double Blt_VecMin(Blt_Vector *vectorPtr) return Vec_Min(vPtr); } +int Blt_ExprVector(Tcl_Interp* interp, char *string, Blt_Vector *vector) +{ + return ExprVector(interp,string,vector); +} + static double Product(Blt_Vector *vectorPtr) { Vector *vPtr = (Vector *)vectorPtr; diff --git a/src/tkbltVector.C b/src/tkbltVector.C index d812d4d..7bc2016 100644 --- a/src/tkbltVector.C +++ b/src/tkbltVector.C @@ -1151,7 +1151,7 @@ static int VectorDestroyOp(ClientData clientData, Tcl_Interp* interp, static int VectorExprOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { - return ExprVector(interp, Tcl_GetString(objv[2]), (Blt_Vector* )NULL); + return Blt_ExprVector(interp, Tcl_GetString(objv[2]), (Blt_Vector* )NULL); } static Blt_OpSpec vectorCmdOps[] = diff --git a/src/tkbltVector.h b/src/tkbltVector.h index a59e542..fa317d3 100644 --- a/src/tkbltVector.h +++ b/src/tkbltVector.h @@ -87,11 +87,15 @@ typedef enum { #define Blt_VecSize(v) ((v)->arraySize) #define Blt_VecDirty(v) ((v)->dirty) +/* namespace Blt { extern int ExprVector(Tcl_Interp* interp, char *expr, Blt_Vector *vecPtr); }; +*/ +#ifdef __cplusplus extern "C" { +#endif int Blt_CreateVector(Tcl_Interp* interp, const char *vecName, int size, Blt_Vector** vecPtrPtr); int Blt_CreateVector2(Tcl_Interp* interp, const char *vecName, @@ -117,11 +121,14 @@ extern "C" { void Blt_FreeVectorId(Blt_VectorId clientId); const char *Blt_NameOfVectorId(Blt_VectorId clientId); const char *Blt_NameOfVector(Blt_Vector *vecPtr); + int Blt_ExprVector(Tcl_Interp* interp, char *expr, Blt_Vector *vecPtr); void Blt_InstallIndexProc(Tcl_Interp* interp, const char *indexName, Blt_VectorIndexProc * procPtr); double Blt_VecMin(Blt_Vector *vPtr); double Blt_VecMax(Blt_Vector *vPtr); +#ifdef __cplusplus } +#endif #include "tkbltDecls.h" -- cgit v0.12