diff options
author | Rene Ladan <rene@FreeBSD.org> | 2019-05-09 15:03:38 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2019-05-09 15:03:38 +0000 |
commit | b8b8fa5aeb1df824ed5374149d0a7377dd0c1cd9 (patch) | |
tree | 67d5f350f6c92b847a528d27db9960acb190f10e /math | |
parent | Restore "hs-" package name prefix for Haskell packages. (diff) |
Remove expired ports:
2019-05-08 databases/ruby-odbc: Broken for more than 6 months
2019-05-08 databases/rubygem-dbd-odbc: Broken for more than 6 months
2019-05-08 devel/dlangui: Broken for more than 6 months
2019-05-08 editors/dlangide: Broken for more than 6 months
2019-05-08 emulators/desmume: Broken for more than 6 months
2019-05-08 emulators/yabause: Broken for more than 6 months
2019-05-08 emulators/yape: Broken for more than 6 months
2019-05-08 games/armagetron: Broken for more than 6 months
2019-05-08 games/boswars: Broken for more than 6 months
2019-05-08 games/ceferino: Broken for more than 6 months
2019-05-08 games/chanta: Broken for more than 6 months
2019-05-08 games/d2x-xl: Broken for more than 6 months
2019-05-08 games/drcreep: Broken for more than 6 months
2019-05-08 games/frobtads: Broken for more than 6 months
2019-05-08 games/paintown: Broken for more than 6 months
2019-05-08 games/pykawari: Broken for more than 6 months
2019-05-08 games/stepmania-devel: Broken for more than 6 months
2019-05-08 games/tinymux: Broken for more than 6 months
2019-05-08 games/voxelands: Broken for more than 6 months
2019-05-08 games/voxelands-server: Broken for more than 6 months
2019-05-08 games/warsow: Broken for more than 6 months
2019-05-08 graphics/appleseed: Broken for more than 6 months
2019-05-08 graphics/apvlv: Broken for more than 6 months
2019-05-08 graphics/qslim: Broken for more than 6 months
2019-05-08 graphics/rawstudio: Broken for more than 6 months
2019-05-08 graphics/tulip: Broken for more than 6 months
2019-05-08 lang/qore: Broken for more than 6 months
2019-05-08 mail/milter-manager: Broken for more than 6 months
2019-05-08 math/goblin: Broken for more than 6 months
2019-05-08 math/mosesdecoder: Broken for more than 6 months
2019-05-08 multimedia/asdcplib: Broken for more than 6 months
2019-05-08 net/crtmpserver: Broken for more than 6 months
2019-05-08 net/linuxigd: Abandonware; use net/miniupnpd instead
2019-05-08 net/openafs: Broken for more than 6 months
2019-05-08 security/quantis: Broken for more than 6 months
2019-05-08 sysutils/boxbackup: Broken for more than 6 months
2019-05-08 sysutils/grub2-efi: Broken for more than 6 months
2019-05-08 sysutils/grub2-pcbsd: Broken for more than 6 months
2019-05-08 sysutils/mdcp: Broken for more than 6 months
2019-05-08 sysutils/sbsigntool: Broken for more than 6 months
2019-05-08 www/py-cherrypy-old: Lates version is in tree and no dependent ports
Notes
Notes:
svn path=/head/; revision=501106
Diffstat (limited to 'math')
-rw-r--r-- | math/Makefile | 2 | ||||
-rw-r--r-- | math/goblin/Makefile | 78 | ||||
-rw-r--r-- | math/goblin/distinfo | 2 | ||||
-rw-r--r-- | math/goblin/files/patch-Makefile | 88 | ||||
-rw-r--r-- | math/goblin/files/patch-Makefile.conf | 20 | ||||
-rw-r--r-- | math/goblin/files/patch-destructors | 395 | ||||
-rw-r--r-- | math/goblin/files/patch-lib_src_indexSet.cpp | 10 | ||||
-rw-r--r-- | math/goblin/files/patch-managedObject | 364 | ||||
-rw-r--r-- | math/goblin/files/patch-tcl86 | 4214 | ||||
-rw-r--r-- | math/goblin/pkg-descr | 21 | ||||
-rw-r--r-- | math/goblin/pkg-plist | 230 | ||||
-rw-r--r-- | math/mosesdecoder/Makefile | 47 | ||||
-rw-r--r-- | math/mosesdecoder/distinfo | 2 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-Jamroot | 10 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-jam-files-sanity.jam | 11 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-lm-Jamfile | 11 | ||||
-rw-r--r-- | math/mosesdecoder/files/patch-util-Jamfile | 10 | ||||
-rw-r--r-- | math/mosesdecoder/pkg-descr | 7 | ||||
-rw-r--r-- | math/mosesdecoder/pkg-plist | 235 |
19 files changed, 0 insertions, 5757 deletions
diff --git a/math/Makefile b/math/Makefile index 4a6a1fb44abd..557c040c877f 100644 --- a/math/Makefile +++ b/math/Makefile @@ -260,7 +260,6 @@ SUBDIR += gnuplot SUBDIR += gnuplot-lite SUBDIR += gnuplot-tex-extras - SUBDIR += goblin SUBDIR += gotoblas SUBDIR += grace SUBDIR += gracetmpl @@ -355,7 +354,6 @@ SUBDIR += mlpack SUBDIR += moab SUBDIR += moo - SUBDIR += mosesdecoder SUBDIR += mpc SUBDIR += mpexpr SUBDIR += mpfr diff --git a/math/goblin/Makefile b/math/goblin/Makefile deleted file mode 100644 index d23e155ba80f..000000000000 --- a/math/goblin/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -# Created by: ijliao -# $FreeBSD$ - -PORTNAME= goblin -DISTVERSION= 2.8b30 -PORTREVISION= 1 -CATEGORIES= math -MASTER_SITES= SF/${PORTNAME}2/${PORTNAME}2/${PORTNAME}.${DISTVERSION} -DISTNAME= ${PORTNAME}.${DISTVERSION} - -MAINTAINER= ports@FreeBSD.org -COMMENT= Graph Object Library for Network Programming Problems - -LICENSE= LGPL21 GPLv2+ # GPLv2 for (optional) bundled glpk -LICENSE_COMB= multi -LICENSE_FILE_LGPL21= ${WRKSRC}/tcl/LGPL - -BROKEN= fails to build -DEPRECATED= Broken for more than 6 months -EXPIRATION_DATE= 2019-05-08 -CONFLICTS= glpk-[0-9]* - -USES= gmake tk tar:tgz -USE_LDCONFIG= yes -MAKE_ARGS= CC="${CC}" CCFLAGS="${CFLAGS}" \ - CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" \ - LD="${CXX}" LIBS="${LIBS}" \ - libtcl=${TCL_SHLIB_VER} libtk=${TK_SHLIB_VER} \ - prefix=${PREFIX} -ALL_TARGET= all shared -MAKE_JOBS_UNSAFE= yes - -CFLAGS+= -I${LOCALBASE}/include/tcl${TCL_VER} -I${LOCALBASE}/include/ \ - -I${LOCALBASE}/include/tk${TK_VER} -fPIC -CXXFLAGS+= -fPIC -LIBS+= -L${LOCALBASE}/lib -ltcl${TCL_SHLIB_VER} -ltk${TK_SHLIB_VER} -lm -pthread - -PORTDOCS= * -PORTEXAMPLES= * - -OPTIONS_DEFINE= DOCS EXAMPLES - -post-patch: - @${REINPLACE_CMD} -e 's|/usr/bin/wish|${WISH}|g' ${WRKSRC}/display - @${REINPLACE_CMD} -e \ - 's|%%WISH%%|${WISH}|g; \ - s|%%PREFIX%%|${PREFIX}|g' \ - ${WRKSRC}/Makefile.conf - @${REINPLACE_CMD} -e 's|\./gosh|${PREFIX}/bin/gosh|; \ - s|\[pwd\] tcl|${PREFIX}/lib/goblin|g' \ - ${WRKSRC}/goblet - @${GREP} -lR "malloc\.h" ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} -e \ - 's|malloc\.h|stdlib.h|g' - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/bin/gosh ${STAGEDIR}${PREFIX}/bin - ${INSTALL_SCRIPT} ${WRKSRC}/bin/goblet ${STAGEDIR}${PREFIX}/bin - ${INSTALL_SCRIPT} ${WRKSRC}/display ${STAGEDIR}${PREFIX}/bin/goblin-display - @${MKDIR} ${STAGEDIR}${PREFIX}/include/${PORTNAME} - (cd ${WRKSRC}/include && ${INSTALL_DATA} *.h ${STAGEDIR}${PREFIX}/include/${PORTNAME}) - ${INSTALL} -d ${STAGEDIR}${PREFIX}/lib/${PORTNAME} - (cd ${WRKSRC}/tcl && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/${PORTNAME}) - ${INSTALL_DATA} ${WRKSRC}/lib/libgoblin.a ${STAGEDIR}${PREFIX}/lib - ${INSTALL_LIB} ${WRKSRC}/libgoblin.so ${STAGEDIR}${PREFIX}/lib - ${INSTALL_DATA} ${WRKSRC}/lib/libglpk.a ${STAGEDIR}${PREFIX}/lib - ${INSTALL_LIB} ${WRKSRC}/libglpk.so ${STAGEDIR}${PREFIX}/lib - -do-install-DOCS-on: - @${MKDIR} ${STAGEDIR}${DOCSDIR} - @${MKDIR} ${STAGEDIR}${DOCSDIR}/html - (cd ${WRKSRC}/html && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/html) - (cd ${WRKSRC}/doku && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) - -do-install-EXAMPLES-on: - @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} - (cd ${WRKSRC}/samples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}) - -.include <bsd.port.mk> diff --git a/math/goblin/distinfo b/math/goblin/distinfo deleted file mode 100644 index 01e1ff9b10cb..000000000000 --- a/math/goblin/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (goblin.2.8b30.tgz) = 3ceec6e051911e494ec1003de08d7e519e4c1987cac0d04510fd4901a56fc050 -SIZE (goblin.2.8b30.tgz) = 1756142 diff --git a/math/goblin/files/patch-Makefile b/math/goblin/files/patch-Makefile deleted file mode 100644 index c9f1803b2aa8..000000000000 --- a/math/goblin/files/patch-Makefile +++ /dev/null @@ -1,88 +0,0 @@ ---- Makefile.orig 2009-10-11 02:10:45.000000000 +0200 -+++ Makefile 2013-10-01 11:00:03.000000000 +0200 -@@ -188,7 +188,6 @@ - .depend : - @rm -f .depend - @touch .depend --ifeq ($(CC),gcc) - @echo -e "$(lib_src_path)/\c" > dir.depend - @for srcfile in $(lib_sources); do \ - cat dir.depend >> .depend; \ -@@ -221,27 +220,6 @@ - done - @rm part.depend - @rm dir.depend --else -- @for srcfile in $(lib_sources); do \ -- makedepend -a -f'.depend' -I$(lib_incl_path) -I$(glpk_incl_path) $$srcfile; \ -- done -- @echo -e "$(glpk_src_path)/\c" > dir.depend; -- @for srcfile in $(glpk_sources); do \ -- makedepend -a -f'.depend' -I$(lib_incl_path) -I$(glpk_incl_path) $$srcfile; \ -- done -- @echo -e "$(glpk_wrap_path)/\c" > dir.depend -- @for srcfile in $(wrap_sources); do \ -- makedepend -a -f'.depend' -I$(lib_incl_path) -I$(glpk_incl_path) $$srcfile; \ -- done -- @echo -e "$(shell_src_path)/\c" > dir.depend -- @for srcfile in $(shell_sources); do \ -- makedepend -a -f'.depend' -I$(lib_incl_path) -I$(glpk_incl_path) $$srcfile; \ -- done -- @echo -e "$(main_src_path)/\c" > dir.depend -- @for srcfile in $(solve_sources); do \ -- makedepend -a -f'.depend' -I$(lib_incl_path) -I$(glpk_incl_path) $$srcfile; \ -- done --endif - @echo "...Dependencies generated" - - -@@ -335,19 +313,11 @@ - shared : intro $(shared_objects) - - libgoblin.$(so_suffix) : $(lib_objects) $(shell_objects) --ifeq ($(CC),gcc) - $(LD) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS) $(LIBS) --else -- $(LD) -G -o $@ $^ $(LDFLAGS) $(LIBS) --endif - @echo "...Shared object ($@) has been successfully linked" - - libglpk.$(so_suffix) : $(glpk_objects) $(wrap_objects) --ifeq ($(CC),gcc) - $(LD) -shared -Wl,-soname,$@ -o $@ $(shell_objects) $^ -L. $(LDFLAGS) $(LIBS) -lgoblin --else -- $(LD) -G -o $@ $(shell_objects) $^ -L. $(LDFLAGS) $(LIBS) -lgoblin --endif - @echo "...Shared object ($@) has been successfully linked" - - -@@ -367,11 +337,7 @@ - else - - gosh : $(gosh_objects) $(shared_objects) --ifeq ($(CC),gcc) - $(LD) -o $@ $(gosh_objects) -L. $(LDFLAGS) -lgoblin $(glpk) $(LIBS) --else -- $(LD) -G -o $@ $(gosh_objects) -L. $(LDFLAGS) -lgoblin $(glpk) $(LIBS) --endif - @echo "...Shell tool ($@) has been linked with shared object" - - endif -@@ -648,7 +618,7 @@ - mkdir -p bin - ifneq ($(link_mode),dynamic) - mv gosh$(exe_suffix) bin -- echo "#!$(PWD)/bin/gosh" > bin/goblet -+ echo "#!$(prefix)/bin/gosh" > bin/goblet - else - echo "#!$(wish_name)" > bin/goblet - echo "" >> bin/goblet -@@ -659,7 +629,7 @@ - endif - echo "" >> bin/goblet - echo "set GoblinVersion $(version)" >> bin/goblet -- echo "set GoblinTclPath [file join $(PWD) tcl]" \ -+ echo "set GoblinTclPath $(prefix)/lib/goblin" \ - >> bin/goblet - echo "" >> bin/goblet - cat goblet >> bin/goblet diff --git a/math/goblin/files/patch-Makefile.conf b/math/goblin/files/patch-Makefile.conf deleted file mode 100644 index eed8b2880fea..000000000000 --- a/math/goblin/files/patch-Makefile.conf +++ /dev/null @@ -1,20 +0,0 @@ ---- Makefile.conf.orig 2013-06-04 14:27:38.000000000 +0200 -+++ Makefile.conf 2013-06-04 14:27:57.000000000 +0200 -@@ -44,7 +44,7 @@ - ifeq ($(os),solaris) - wish_name = /opt/csw/bin/wish - else -- wish_name = /usr/bin/wish -+ wish_name = %%WISH%% - endif - - -@@ -126,7 +126,7 @@ - ifeq ($(os),solaris) - prefix = /opt/goblin/$(rel) - else -- prefix = /usr -+ prefix = %%PREFIX%% - endif - - goblin_include_path = $(prefix)/include diff --git a/math/goblin/files/patch-destructors b/math/goblin/files/patch-destructors deleted file mode 100644 index 9a15aae73dd5..000000000000 --- a/math/goblin/files/patch-destructors +++ /dev/null @@ -1,395 +0,0 @@ ---- include/investigator.h.orig 2013-06-04 14:33:44.000000000 +0200 -+++ include/investigator.h 2013-06-04 14:34:16.000000000 +0200 -@@ -69,6 +69,8 @@ - /// \retval true There are unvisited arcs in the incidence list of v - virtual bool Active(TNode v) const throw(ERRange) = 0; - -+ virtual ~investigator() throw() {} -+ - }; - - /// @} ---- include/mixedGraph.h.orig 2013-06-04 14:34:21.000000000 +0200 -+++ include/mixedGraph.h 2013-06-04 14:37:20.000000000 +0200 -@@ -79,6 +79,8 @@ - - lineGraph(abstractMixedGraph& G,TOption = LG_DIRECTED) throw(ERRejected); - -+ ~lineGraph() throw() {}; -+ - }; - - /// \brief Subgraph of a given mixed graph induced by a specified node or arc set -@@ -96,6 +98,7 @@ - inducedSubgraph(abstractMixedGraph&,const indexSet<TNode>&, - const indexSet<TArc>&,const TOption = OPT_PARALLELS) - throw(ERRejected); -+ ~inducedSubgraph() throw() {} - - }; - -@@ -110,6 +113,7 @@ - public: - - colourContraction(abstractMixedGraph&,const TOption = 0) throw(); -+ ~colourContraction () throw() {} - - }; - -@@ -125,6 +129,7 @@ - - explicitSurfaceGraph(abstractMixedGraph&,nestedFamily<TNode>&, - TFloat*,TArc*) throw(); -+ ~explicitSurfaceGraph () throw() {} - - }; - -@@ -136,6 +141,7 @@ - public: - - explicitSubdivision(abstractMixedGraph&,const TOption = 0) throw(); -+ ~explicitSubdivision () throw() {} - - }; - ---- include/sparseGraph.h.orig 2013-06-04 14:37:25.000000000 +0200 -+++ include/sparseGraph.h 2013-06-04 14:43:39.000000000 +0200 -@@ -77,6 +77,7 @@ - public: - - complementaryGraph(abstractMixedGraph& G,TOption = 0) throw(ERRejected); -+ ~complementaryGraph() throw() {} - - }; - -@@ -96,6 +97,7 @@ - public: - - planarLineGraph(abstractMixedGraph& G,TOption = 0) throw(ERRejected); -+ ~planarLineGraph() throw() {} - - }; - -@@ -112,6 +114,7 @@ - public: - - vertexTruncation(abstractMixedGraph& _G,TOption = 0) throw(ERRejected); -+ ~vertexTruncation() throw() {} - - }; - -@@ -135,6 +138,7 @@ - }; - - facetSeparation(abstractMixedGraph& G,TOptRotation mode = ROT_NONE) throw(ERRejected); -+ ~facetSeparation() throw() {} - - }; - -@@ -151,6 +155,7 @@ - public: - - dualGraph(abstractMixedGraph& G,TOption = 0) throw(ERRejected); -+ ~dualGraph() throw() {} - - }; - -@@ -170,6 +175,7 @@ - public: - - spreadOutRegular(abstractMixedGraph& G,TOption = 0) throw(ERRejected); -+ ~spreadOutRegular() throw() {} - - }; - -@@ -208,6 +214,8 @@ - /// \param _CT The controller to handle this object - mycielskianGraph(unsigned k,goblinController& _CT = goblinDefaultContext) throw(ERRejected); - -+ ~mycielskianGraph() throw() {} -+ - }; - - /// @} -@@ -256,6 +264,7 @@ - - triangularGraph(TNode cardinality, - goblinController& _CT = goblinDefaultContext) throw(); -+ ~triangularGraph() throw() {} - - }; - -@@ -300,6 +309,8 @@ - TNode minimumIntersection,TNode maximumIntersection, - goblinController& _CT = goblinDefaultContext) throw(); - -+ ~intersectionGraph() throw() {} -+ - }; - - -@@ -311,6 +322,7 @@ - - sierpinskiTriangle(TNode depth, - goblinController& _CT = goblinDefaultContext) throw(); -+ ~sierpinskiTriangle() throw() {} - }; - - -@@ -333,6 +345,7 @@ - /// \param _CT The controller object to manage the created graph - openGrid(TNode _k,TNode _l,TOptGrid shape, - goblinController& _CT = goblinDefaultContext) throw(ERRejected); -+ ~openGrid() throw() {} - - }; - -@@ -358,6 +371,8 @@ - polarGrid(TNode _k,TNode _l,TNode _p,TOptPolar facets,TOptPolar dim, - goblinController& _CT = goblinDefaultContext) throw(ERRejected); - -+ ~polarGrid() throw() {} -+ - }; - - -@@ -456,6 +471,8 @@ - toroidalGrid(unsigned short hSkew,unsigned short vSize,short vSkew,unsigned short hSize, - TOptTorus facets,goblinController& _CT = goblinDefaultContext) throw(ERRejected); - -+ ~toroidalGrid() throw() {} -+ - }; - - -@@ -467,6 +484,8 @@ - - moebiusLadder(TNode _k,goblinController& _CT = goblinDefaultContext) throw(ERRejected); - -+ ~moebiusLadder() throw() {} -+ - }; - - -@@ -508,6 +527,8 @@ - /// - <code>generalizedPetersen(10,3)</code> is known as the Desargues graph. - generalizedPetersen(TNode perimeter,TNode skew,goblinController& _CT = goblinDefaultContext) throw(ERRejected); - -+ ~generalizedPetersen() throw() {} -+ - }; - - -@@ -532,6 +553,8 @@ - gridCompletion(TNode dim,TOptShape shape, - goblinController& _CT = goblinDefaultContext) throw(ERRejected); - -+ ~gridCompletion() throw() {} -+ - }; - - -@@ -581,6 +604,8 @@ - /// interval [randMin,..,randMax] are assumed. - void GenerateThis(TFloat threshold,TFloat* nodeWeight,long randMin,long randMax) throw(); - -+ ~thresholdGraph() throw() {} -+ - }; - - -@@ -601,6 +626,8 @@ - /// is generated. - permutationGraph(TNode numNodes,TNode* map = NULL,goblinController& _CT = goblinDefaultContext) throw(); - -+ ~permutationGraph() throw() {} -+ - }; - - -@@ -650,6 +677,8 @@ - /// intervals are specified, random intervals are generated. - void GenerateThis(TFloat* minRange,TFloat* maxRange,TIndex valueRange) throw(); - -+ ~intervalGraph() throw() {} -+ - }; - - /// @} ---- include/sparseBigraph.h.orig 2013-06-04 14:43:47.000000000 +0200 -+++ include/sparseBigraph.h 2013-06-04 14:44:05.000000000 +0200 -@@ -80,6 +80,8 @@ - inducedBigraph(abstractMixedGraph&,const indexSet<TNode>&, - const indexSet<TNode>&,const TOption = OPT_PARALLELS) throw(ERRejected); - -+ ~inducedBigraph() throw() {} -+ - }; - - /// @} ---- include/sparseDigraph.h.orig 2013-06-04 14:44:29.000000000 +0200 -+++ include/sparseDigraph.h 2013-06-04 14:46:58.000000000 +0200 -@@ -116,6 +116,8 @@ - - inducedOrientation(abstractMixedGraph &G,TOption options = 0) throw(ERRejected); - -+ ~inducedOrientation() throw() {} -+ - }; - - -@@ -151,6 +153,8 @@ - /// non-adjacent. - void MapEdgeCut() throw(); - -+ ~nodeSplitting() throw() {} -+ - }; - - /// @} -@@ -168,6 +172,8 @@ - regularTree(TNode _depth,TNode deg,TNode _n = NoNode, - goblinController& thisContext = goblinDefaultContext) throw(ERRejected); - -+ ~regularTree() throw() {} -+ - }; - - -@@ -194,6 +200,8 @@ - /// \param thisContext The context to which this graph object is attached - butterflyGraph(TNode length,TNode base=2,goblinController& thisContext = goblinDefaultContext) throw(); - -+ ~butterflyGraph() throw() {} -+ - }; - - -@@ -215,6 +223,8 @@ - /// \param thisContext The context to which this graph object is attached - cyclicButterfly(TNode length,TNode base=2,goblinController& thisContext = goblinDefaultContext) throw(); - -+ ~cyclicButterfly() throw() {} -+ - }; - - /// @} -@@ -239,6 +249,8 @@ - - directedDual(abstractMixedGraph &G,TOption options = 0) throw(ERRejected); - -+ ~directedDual() throw() {} -+ - }; - - /// @} -@@ -258,6 +270,8 @@ - - transitiveClosure(abstractDiGraph &G,TOption options = 0) throw(ERRejected); - -+ ~transitiveClosure() throw() {} -+ - }; - - -@@ -272,6 +286,8 @@ - - intransitiveReduction(abstractDiGraph &G,TOption options = 0) throw(ERRejected); - -+ ~intransitiveReduction() throw() {} -+ - }; - - /// @} ---- include/balancedDigraph.h.orig 2013-06-04 14:47:05.000000000 +0200 -+++ include/balancedDigraph.h 2013-06-04 14:47:25.000000000 +0200 -@@ -72,6 +72,8 @@ - TNode DefaultSourceNode() const throw() {return n-1;}; - TNode DefaultTargetNode() const throw() {return n-2;}; - -+ ~splitGraph() throw() {} -+ - }; - - #endif ---- include/denseGraph.h.orig 2013-06-04 14:47:31.000000000 +0200 -+++ include/denseGraph.h 2013-06-04 14:47:50.000000000 +0200 -@@ -95,6 +95,8 @@ - - metricGraph(abstractGraph &G) throw(ERRejected); - -+ ~metricGraph() throw() {} -+ - }; - - /// @} ---- include/branchScheme.h.orig 2013-06-04 14:48:23.000000000 +0200 -+++ include/branchScheme.h 2013-06-04 14:48:43.000000000 +0200 -@@ -131,7 +131,9 @@ - { - public: - -- branchTree(goblinController &) throw(); -+ branchTree(goblinController &) throw(); -+ -+ ~branchTree() throw() {} - - }; - ---- include/abstractSubgraph.h.orig 2013-06-04 14:48:50.000000000 +0200 -+++ include/abstractSubgraph.h 2013-06-04 14:49:12.000000000 +0200 -@@ -102,7 +102,9 @@ - virtual TArc M() const throw() = 0; //!<returns the number of edges - virtual unsigned long Allocated() const throw(); - -- virtual TArc Reverse(TArc a) const throw(ERRange); -+ virtual TArc Reverse(TArc a) const throw(ERRange); -+ -+ ~abstractSubgraph() throw() {} - - }; - ---- include/denseDigraph.h.orig 2013-06-04 14:51:07.000000000 +0200 -+++ include/denseDigraph.h 2013-06-04 14:51:30.000000000 +0200 -@@ -92,6 +92,8 @@ - - distanceGraph(abstractMixedGraph &G) throw(ERRejected); - -+ ~distanceGraph() throw() {} -+ - }; - - /// @} ---- include/goblinQueue.h.orig 2013-06-05 09:19:40.000000000 +0200 -+++ include/goblinQueue.h 2013-06-05 09:22:11.000000000 +0200 -@@ -66,6 +66,8 @@ - /// \return The queue cardinality - virtual TItem Cardinality() const throw() = 0; - -+ ~goblinQueue() throw() {} -+ - }; - - /// @} ---- include/movingLineModel.h.orig 2013-06-05 09:41:41.000000000 +0200 -+++ include/movingLineModel.h 2013-06-05 09:42:12.000000000 +0200 -@@ -66,6 +66,8 @@ - /// \brief Modify the drawing of the original graph in terms of a closed walk in the stripe dissection model - void PerformBlockMove() throw(); - -+ ~movingLineModel() throw() {} -+ - }; - - /// @} ---- include/stripeDissectionModel.h.orig 2013-06-05 09:42:36.000000000 +0200 -+++ include/stripeDissectionModel.h 2013-06-05 09:42:48.000000000 +0200 -@@ -51,6 +51,8 @@ - /// \brief Update the drawing of the original graph in terms of an st-flow of the stripe dissection model - void UpdateDrawing() throw(); - -+ ~stripeDissectionModel() throw() {} -+ - }; - - /// @} diff --git a/math/goblin/files/patch-lib_src_indexSet.cpp b/math/goblin/files/patch-lib_src_indexSet.cpp deleted file mode 100644 index 076b648f5041..000000000000 --- a/math/goblin/files/patch-lib_src_indexSet.cpp +++ /dev/null @@ -1,10 +0,0 @@ ---- lib_src/indexSet.cpp.orig 2013-10-01 10:15:14.000000000 +0200 -+++ lib_src/indexSet.cpp 2013-10-01 10:15:03.000000000 +0200 -@@ -390,3 +390,7 @@ - - template class indexSetComplement<unsigned short>; - template class indexSetComplement<unsigned long>; -+template indexSet<unsigned long>::indexSet(unsigned long, goblinController &); -+template indexSet<unsigned long>::~indexSet(); -+template indexSet<unsigned short>::indexSet(unsigned short, goblinController &); -+template indexSet<unsigned short>::~indexSet(); diff --git a/math/goblin/files/patch-managedObject b/math/goblin/files/patch-managedObject deleted file mode 100644 index 2aab0444ebb0..000000000000 --- a/math/goblin/files/patch-managedObject +++ /dev/null @@ -1,364 +0,0 @@ ---- include/managedObject.h.orig 2013-06-05 09:27:06.000000000 +0200 -+++ include/managedObject.h 2013-06-05 09:27:19.000000000 +0200 -@@ -193,8 +193,8 @@ - }; - - --#define InternalError(scope,event) {sprintf(this->CT.logBuffer,"%s (%s, line: %d)",event,__FILE__,__LINE__); Error(ERR_INTERNAL,scope,this->CT.logBuffer);} --#define InternalError1(scope) {sprintf(this->CT.logBuffer,"%s (%s, line: %d)",this->CT.logBuffer,__FILE__,__LINE__); Error(ERR_INTERNAL,scope,this->CT.logBuffer);} -+#define InternalError(scope,event) {sprintf(this->CT.logBuffer,"%s (%s, line: %d)",event,__FILE__,__LINE__); this->Error(ERR_INTERNAL,scope,this->CT.logBuffer);} -+#define InternalError1(scope) {sprintf(this->CT.logBuffer,"%s (%s, line: %d)",this->CT.logBuffer,__FILE__,__LINE__); this->Error(ERR_INTERNAL,scope,this->CT.logBuffer);} - - - #endif ---- lib_src/dynamicStack.cpp.orig 2013-06-05 09:24:05.000000000 +0200 -+++ lib_src/dynamicStack.cpp 2013-06-05 09:23:48.000000000 +0200 -@@ -97,7 +97,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Insert",w); -+ if (w>=n) this->NoSuchItem("Insert",w); - - #endif - ---- lib_src/dynamicQueue.cpp.orig 2013-06-05 09:24:43.000000000 +0200 -+++ lib_src/dynamicQueue.cpp 2013-06-05 09:24:50.000000000 +0200 -@@ -97,7 +97,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Insert",w); -+ if (w>=n) this->NoSuchItem("Insert",w); - - #endif - ---- lib_src/fibonacciHeap.cpp.orig 2013-06-05 09:25:25.000000000 +0200 -+++ lib_src/fibonacciHeap.cpp 2013-06-05 09:29:46.000000000 +0200 -@@ -194,7 +194,7 @@ - { - #if defined(_FAILSAVE_) - -- if (v>=n || status[v]==NOT_QUEUED) NoSuchItem("Display",v); -+ if (v>=n || status[v]==NOT_QUEUED) this->NoSuchItem("Display",v); - - #endif - -@@ -267,7 +267,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Insert",w); -+ if (w>=n) this->NoSuchItem("Insert",w); - - #endif - -@@ -281,13 +281,13 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Insert",w); -+ if (w>=n) this->NoSuchItem("Insert",w); - - if (status[w]!=NOT_QUEUED) - { - sprintf(this->CT.logBuffer,"Already on queue: %lu", - static_cast<unsigned long>(w)); -- Error(ERR_REJECTED,"Insert",this->CT.logBuffer); -+ this->Error(ERR_REJECTED,"Insert",this->CT.logBuffer); - } - - #endif -@@ -394,7 +394,7 @@ - { - #if defined(_FAILSAVE_) - -- if (v>=n) NoSuchItem("Link",v); -+ if (v>=n) this->NoSuchItem("Link",v); - - if (status[v]!=ROOT_NODE) - { -@@ -403,7 +403,7 @@ - this -> Error(ERR_REJECTED,"Link",this->CT.logBuffer); - } - -- if (w>=n) NoSuchItem("Link",w); -+ if (w>=n) this->NoSuchItem("Link",w); - - if (status[w]!=ROOT_NODE) - { -@@ -459,7 +459,7 @@ - { - #if defined(_FAILSAVE_) - -- if (v>=n) NoSuchItem("Cut",v); -+ if (v>=n) this->NoSuchItem("Cut",v); - - if (status[v]!=UNMARKED_CHILD && status[v]!=MARKED_CHILD) - { -@@ -514,7 +514,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n || status[w]==NOT_QUEUED) NoSuchItem("Delete",w); -+ if (w>=n || status[w]==NOT_QUEUED) this->NoSuchItem("Delete",w); - - #endif - -@@ -586,7 +586,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n || status[w]==NOT_QUEUED) NoSuchItem("Key",w); -+ if (w>=n || status[w]==NOT_QUEUED) this->NoSuchItem("Key",w); - - #endif - -@@ -599,7 +599,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n || status[w]==NOT_QUEUED) NoSuchItem("ChangeKey",w); -+ if (w>=n || status[w]==NOT_QUEUED) this->NoSuchItem("ChangeKey",w); - - #endif - ---- lib_src/basicHeap.cpp.orig 2013-06-05 09:30:16.000000000 +0200 -+++ lib_src/basicHeap.cpp 2013-06-05 09:31:06.000000000 +0200 -@@ -140,7 +140,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Insert",w); -+ if (w>=n) this->NoSuchItem("Insert",w); - - if (maxIndex>=n) - this -> Error(ERR_REJECTED,"Insert","Buffer is full"); -@@ -187,7 +187,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Delete",w); -+ if (w>=n) this->NoSuchItem("Delete",w); - - #endif - -@@ -199,7 +199,7 @@ - { - sprintf(this->CT.logBuffer,"Not a member: %lu", - static_cast<unsigned long>(w)); -- Error(ERR_REJECTED,"Delete",this->CT.logBuffer); -+ this->Error(ERR_REJECTED,"Delete",this->CT.logBuffer); - } - - #endif -@@ -244,7 +244,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Key",w); -+ if (w>=n) this->NoSuchItem("Key",w); - - #endif - -@@ -257,13 +257,13 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("ChangeKey",w); -+ if (w>=n) this->NoSuchItem("ChangeKey",w); - - if (key[w]==InfFloat) - { - sprintf(this->CT.logBuffer,"Not a member: %lu", - static_cast<unsigned long>(w)); -- Error(ERR_REJECTED,"ChangeKey",this->CT.logBuffer); -+ this->Error(ERR_REJECTED,"ChangeKey",this->CT.logBuffer); - } - - #endif ---- lib_src/binaryHeap.cpp.orig 2013-06-05 09:31:39.000000000 +0200 -+++ lib_src/binaryHeap.cpp 2013-06-05 09:34:23.000000000 +0200 -@@ -142,7 +142,7 @@ - { - #if defined(_FAILSAVE_) - -- if (i>maxIndex || i==0) NoSuchIndex("Display",i); -+ if (i>maxIndex || i==0) this->NoSuchIndex("Display",i); - - if (i!=index[v[i]]) - { -@@ -201,7 +201,7 @@ - { - #if defined(_FAILSAVE_) - -- if (i>maxIndex || i==0) NoSuchIndex("UpHeap",i); -+ if (i>maxIndex || i==0) this->NoSuchIndex("UpHeap",i); - - #endif - -@@ -226,7 +226,7 @@ - { - #if defined(_FAILSAVE_) - -- if (i>maxIndex || i==0) NoSuchIndex("DownHeap",i); -+ if (i>maxIndex || i==0) this->NoSuchIndex("DownHeap",i); - - #endif - -@@ -262,7 +262,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchIndex("Insert",w); -+ if (w>=n) this->NoSuchIndex("Insert",w); - - if (maxIndex>=n) this -> Error(ERR_REJECTED,"Insert","Heap overflow"); - -@@ -299,7 +299,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n || index[w]==UITEM_MAX()) NoSuchItem("Delete",w); -+ if (w>=n || index[w]==UITEM_MAX()) this->NoSuchItem("Delete",w); - - #endif - -@@ -381,7 +381,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n || index[w]==UITEM_MAX()) NoSuchItem("Key",w); -+ if (w>=n || index[w]==UITEM_MAX()) this->NoSuchItem("Key",w); - - #endif - -@@ -394,7 +394,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n || index[w]==UITEM_MAX()) NoSuchItem("ChangeKey",w); -+ if (w>=n || index[w]==UITEM_MAX()) this->NoSuchItem("ChangeKey",w); - - #endif - ---- lib_src/matrix.cpp.orig 2013-06-05 09:34:55.000000000 +0200 -+++ lib_src/matrix.cpp 2013-06-05 09:36:49.000000000 +0200 -@@ -291,10 +291,10 @@ - { - #if defined(_FAILSAVE_) - -- if (!this->transp && i>=this->k) NoSuchIndex("Coeff",i); -- if (!this->transp && j>=this->l) NoSuchIndex("Coeff",j); -- if (this->transp && i>=this->l) NoSuchIndex("Coeff",i); -- if (this->transp && j>=this->k) NoSuchIndex("Coeff",j); -+ if (!this->transp && i>=this->k) this->NoSuchIndex("Coeff",i); -+ if (!this->transp && j>=this->l) this->NoSuchIndex("Coeff",j); -+ if (this->transp && i>=this->l) this->NoSuchIndex("Coeff",i); -+ if (this->transp && j>=this->k) this->NoSuchIndex("Coeff",j); - - #endif - -@@ -309,10 +309,10 @@ - { - #if defined(_FAILSAVE_) - -- if (!this->transp && i>=this->k) NoSuchIndex("Coeff",i); -- if (!this->transp && j>=this->l) NoSuchIndex("Coeff",j); -- if (this->transp && i>=this->l) NoSuchIndex("SetCoeff",i); -- if (this->transp && j>=this->k) NoSuchIndex("SetCoeff",j); -+ if (!this->transp && i>=this->k) this->NoSuchIndex("Coeff",i); -+ if (!this->transp && j>=this->l) this->NoSuchIndex("Coeff",j); -+ if (this->transp && i>=this->l) this->NoSuchIndex("SetCoeff",i); -+ if (this->transp && j>=this->k) this->NoSuchIndex("SetCoeff",j); - - if (a>=InfFloat || a<=-InfFloat) - this->Error(ERR_RANGE,"SetCoeff","Finite matrix coefficients required"); -@@ -388,10 +388,10 @@ - { - #if defined(_FAILSAVE_) - -- if (!this->transp && i>=this->k) NoSuchIndex("Coeff",i); -- if (!this->transp && j>=this->l) NoSuchIndex("Coeff",j); -- if (this->transp && i>=this->l) NoSuchIndex("Coeff",i); -- if (this->transp && j>=this->k) NoSuchIndex("Coeff",j); -+ if (!this->transp && i>=this->k) this->NoSuchIndex("Coeff",i); -+ if (!this->transp && j>=this->l) this->NoSuchIndex("Coeff",j); -+ if (this->transp && i>=this->l) this->NoSuchIndex("Coeff",i); -+ if (this->transp && j>=this->k) this->NoSuchIndex("Coeff",j); - - #endif - -@@ -406,10 +406,10 @@ - { - #if defined(_FAILSAVE_) - -- if (!this->transp && i>=this->k) NoSuchIndex("SetCoeff",i); -- if (!this->transp && j>=this->l) NoSuchIndex("SetCoeff",j); -- if (this->transp && i>=this->l) NoSuchIndex("SetCoeff",i); -- if (this->transp && j>=this->k) NoSuchIndex("SetCoeff",j); -+ if (!this->transp && i>=this->k) this->NoSuchIndex("SetCoeff",i); -+ if (!this->transp && j>=this->l) this->NoSuchIndex("SetCoeff",j); -+ if (this->transp && i>=this->l) this->NoSuchIndex("SetCoeff",i); -+ if (this->transp && j>=this->k) this->NoSuchIndex("SetCoeff",j); - - if (a>=InfFloat || a<=-InfFloat) - this->Error(ERR_RANGE,"SetCoeff","Finite matrix coefficients required"); ---- lib_src/staticStack.cpp.orig 2013-06-05 09:43:13.000000000 +0200 -+++ lib_src/staticStack.cpp 2013-06-05 09:44:06.000000000 +0200 -@@ -143,7 +143,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Insert",w); -+ if (w>=n) this->NoSuchItem("Insert",w); - - #endif - -@@ -246,7 +246,7 @@ - { - #if defined(_FAILSAVE_) - -- if (i>=n) NoSuchItem("IsMember",i); -+ if (i>=n) this->NoSuchItem("IsMember",i); - - #endif - -@@ -272,7 +272,7 @@ - { - #if defined(_FAILSAVE_) - -- if (i>=n) NoSuchItem("Successor",i); -+ if (i>=n) this->NoSuchItem("Successor",i); - - #endif - ---- lib_src/staticQueue.cpp.orig 2013-06-05 09:45:07.000000000 +0200 -+++ lib_src/staticQueue.cpp 2013-06-05 09:45:38.000000000 +0200 -@@ -143,7 +143,7 @@ - { - #if defined(_FAILSAVE_) - -- if (w>=n) NoSuchItem("Insert",w); -+ if (w>=n) this->NoSuchItem("Insert",w); - - #endif - -@@ -248,7 +248,7 @@ - { - #if defined(_FAILSAVE_) - -- if (i>=n) NoSuchItem("IsMember",i); -+ if (i>=n) this->NoSuchItem("IsMember",i); - - #endif - -@@ -272,7 +272,7 @@ - { - #if defined(_FAILSAVE_) - -- if (i>=n) NoSuchItem("Successor",i); -+ if (i>=n) this->NoSuchItem("Successor",i); - - #endif - diff --git a/math/goblin/files/patch-tcl86 b/math/goblin/files/patch-tcl86 deleted file mode 100644 index 6f874f39466a..000000000000 --- a/math/goblin/files/patch-tcl86 +++ /dev/null @@ -1,4214 +0,0 @@ ---- shell_src/goshGraph.cpp.orig 2013-06-04 14:51:44.000000000 +0200 -+++ shell_src/goshGraph.cpp 2013-06-04 16:26:04.000000000 +0200 -@@ -173,7 +173,7 @@ - { - TNode u = atol(argv[2]); - TNode v = G -> SwapNode(u); -- sprintf(interp->result,"%lu",static_cast<unsigned long>(v)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(v))); - return TCL_OK; - } - -@@ -384,12 +384,12 @@ - - try - { -- sprintf(interp->result,"%f",G->FlowValue(sourceNode,sourceNode^1)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->FlowValue(sourceNode,sourceNode^1))); - return TCL_OK; - } - catch (ERCheck) - { -- sprintf(interp->result,"Flow is corrupted"); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Flow is corrupted", -1)); - return TCL_ERROR; - } - } -@@ -400,12 +400,12 @@ - try - { - G -> FlowValue(sourceNode,sourceNode^1); -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - catch (ERCheck) - { -- interp->result = "Flow is corrupted"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Flow is corrupted", -1)); - return TCL_ERROR; - } - } -@@ -453,6 +453,8 @@ - int Goblin_Sparse_Cmd (abstractMixedGraph *G,Tcl_Interp* interp,int argc, - _CONST_QUAL_ char* argv[]) throw(ERRejected,ERRange) - { -+ Tcl_ResetResult(interp); -+ - if (strcmp(argv[1],"reorder")==0) - { - if (argc!=4) -@@ -466,29 +468,27 @@ - if (strcmp(argv[3],"-planar")==0) - { - if (G->PlanarizeIncidenceOrder()) -- interp->result = "1"; -- else interp->result = "0"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); - return GOSH_OK; - } - - if (strcmp(argv[3],"-shuffle")==0) - { - G -> RandomizeIncidenceOrder(); -- interp->result = ""; - return GOSH_OK; - } - - if (strcmp(argv[3],"-geometric")==0) - { - G -> IncidenceOrderFromDrawing(); -- interp->result = ""; - return GOSH_OK; - } - - if (strcmp(argv[3],"-outerplanar")==0) - { - G -> GrowExteriorFace(); -- interp->result = ""; - return GOSH_OK; - } - -@@ -517,14 +517,13 @@ - else - { - delete[] keyValue; -- interp->result = "Missing key value specification"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing key value specification", -1)); - return TCL_OK; - } - - GR -> ReorderNodeIndices(keyValue); - - delete[] keyValue; -- interp->result = ""; - return TCL_OK; - } - -@@ -550,18 +549,17 @@ - else - { - delete[] keyValue; -- interp->result = "Missing key value specification"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing key value specification", -1)); - return TCL_OK; - } - - GR -> ReorderEdgeIndices(keyValue); - - delete[] keyValue; -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s reorder %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " reorder ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -600,12 +598,11 @@ - sourceNode,targetNode) - ) - { -- interp->result = ""; - return GOSH_OK; - } - else - { -- interp->result = "Graph is not edge series parallel"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Graph is not edge series parallel", -1)); - return GOSH_ERROR; - } - } -@@ -625,7 +622,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>((G->N1()))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>((G->N1())))); - return TCL_OK; - } - -@@ -637,7 +634,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>((G->N2()))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>((G->N2())))); - return TCL_OK; - } - -@@ -648,9 +645,11 @@ - int Goblin_Undirected_Cmd (abstractGraph *G,Tcl_Interp* interp,int argc, - _CONST_QUAL_ char* argv[]) throw(ERRejected,ERRange) - { -+ Tcl_ResetResult(interp); -+ - if (argc<2) - { -- interp->result = "Missing arguments"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing arguments", -1)); - return TCL_ERROR; - } - -@@ -669,7 +668,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -687,7 +685,6 @@ - Goblin_Dense_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Dense_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -701,7 +698,7 @@ - - TFloat ret = G -> MaximumMatching(); - -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - -@@ -715,12 +712,12 @@ - - if (G -> MinCMatching()) - { -- sprintf(interp->result,"%f",G->Weight()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Weight())); - return TCL_OK; - } - else - { -- interp->result = "No such structure exists"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No such structure exists", -1)); - return TCL_ERROR; - } - } -@@ -735,7 +732,7 @@ - - TFloat ret = G -> MinCEdgeCover(); - -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - -@@ -750,12 +747,12 @@ - try - { - G -> MinCTJoin(demandNodes(*G)); -- sprintf(interp->result,"%f",G->Weight()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Weight())); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "No such structure exists"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No such structure exists", -1)); - return TCL_ERROR; - } - } -@@ -767,9 +764,11 @@ - int Goblin_Directed_Cmd (abstractDiGraph *G,Tcl_Interp* interp,int argc, - _CONST_QUAL_ char* argv[]) throw(ERRejected,ERRange) - { -+ Tcl_ResetResult(interp); -+ - if (argc<2) - { -- interp->result = "Missing arguments"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing arguments", -1)); - return TCL_ERROR; - } - -@@ -788,7 +787,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -806,7 +804,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -824,7 +821,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -842,7 +838,6 @@ - Goblin_Ilp_Cmd,reinterpret_cast<ClientData>(XLP), - (Tcl_CmdDeleteProc *)Goblin_Delete_Ilp); - -- interp->result = ""; - return TCL_OK; - } - -@@ -860,7 +855,6 @@ - Goblin_Balanced_FNW_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Balanced_FNW); - -- interp->result = ""; - return TCL_OK; - } - -@@ -876,11 +870,10 @@ - - if (v==NoNode) - { -- interp->result = "*"; - return TCL_OK; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(v)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(v))); - return TCL_OK; - } - -@@ -896,11 +889,11 @@ - - if (v==NoNode) - { -- interp->result = "Graph is not a DAG"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Graph is not a DAG", -1)); - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(v)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(v))); - return TCL_OK; - } - -@@ -916,7 +909,7 @@ - } - - TCap ret = G->TreePacking(rootNode); -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - -@@ -927,9 +920,11 @@ - int Goblin_Generic_Graph_Cmd (abstractMixedGraph *G,Tcl_Interp* interp,int argc, - _CONST_QUAL_ char* argv[]) throw(ERRejected,ERRange) - { -+ Tcl_ResetResult(interp); -+ - if (argc<2) - { -- interp->result = "Missing arguments"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing arguments", -1)); - return TCL_ERROR; - } - -@@ -947,7 +942,6 @@ - Goblin_Graph_Display_Proxy_Cmd,reinterpret_cast<ClientData>(DP), - (Tcl_CmdDeleteProc *)Goblin_Delete_Graph_Display_Proxy); - -- interp->result = ""; - return TCL_OK; - } - -@@ -966,7 +960,6 @@ - Goblin_Mixed_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Mixed_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1003,7 +996,6 @@ - (Tcl_CmdDeleteProc *)Goblin_Delete_Mixed_Graph); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1032,7 +1024,6 @@ - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1050,7 +1041,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1068,7 +1058,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1099,7 +1088,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1117,7 +1105,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1135,7 +1122,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1153,7 +1139,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1204,7 +1189,6 @@ - Goblin_Mixed_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Mixed_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1222,7 +1206,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1252,7 +1235,6 @@ - Goblin_Sparse_Bigraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Bigraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1270,7 +1252,6 @@ - Goblin_Mixed_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Mixed_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1288,7 +1269,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1306,7 +1286,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1324,7 +1303,6 @@ - Goblin_Mixed_Graph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Mixed_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1342,7 +1320,6 @@ - Goblin_Dense_Digraph_Cmd,reinterpret_cast<ClientData>(H), - (Tcl_CmdDeleteProc *)Goblin_Delete_Dense_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1361,7 +1338,6 @@ - Goblin_Ilp_Cmd,reinterpret_cast<ClientData>(XLP), - (Tcl_CmdDeleteProc *)Goblin_Delete_Ilp); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1378,7 +1354,7 @@ - - if (!X->IsGraphObject()) - { -- sprintf(interp->result,"Not a graph object ID: %s",argv[argc-1]); -+ Tcl_AppendResult(interp, "Not a graph object ID: ", argv[argc-1], (char *)NULL); - return TCL_ERROR; - } - -@@ -1386,7 +1362,7 @@ - - if (Y==NULL || !(Y->IsSparse())) - { -- interp->result = "Unhandled object type"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Unhandled object type", -1)); - return TCL_ERROR; - } - -@@ -1417,7 +1393,6 @@ - G -> AddGraphByNodes(*Y,mergeLayoutMode); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1443,7 +1418,7 @@ - { - if (argc==5) - { -- interp->result = "Missing coordinate values"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing coordinate values", -1)); - return TCL_ERROR; - } - -@@ -1454,7 +1429,6 @@ - G->Representation() -> SetC(p,TDim(i-5),pos); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1462,13 +1436,13 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - - sparseRepresentation* GR = static_cast<sparseRepresentation*>(G->Representation()); - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(GR->InsertThreadSuccessor(p))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(GR->InsertThreadSuccessor(p)))); - return TCL_OK; - } - -@@ -1476,27 +1450,27 @@ - { - if (strcmp(argv[5],"-cx")==0) - { -- sprintf(interp->result,"%f",G->C(p,0)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->C(p,0))); - } - else if (strcmp(argv[5],"-cy")==0) - { -- sprintf(interp->result,"%f",G->C(p,1)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->C(p,1))); - } - else if (strcmp(argv[5],"-successor")==0) - { - if (G->ThreadSuccessor(p)!=NoNode) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->ThreadSuccessor(p))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->ThreadSuccessor(p)))); - } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[5],"-hidden")==0) - { -- sprintf(interp->result,"%d",G->HiddenNode(p)); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->HiddenNode(p))); - } - else - { -- sprintf(interp->result,"Unknown layout point attribute: %s",argv[5]); -+ Tcl_AppendResult(interp, "Unknown layout point attribute: ", argv[5], (char *)NULL); - return TCL_ERROR; - } - -@@ -1507,13 +1481,12 @@ - if (strcmp(argv[2],"alignWithOrigin")==0) - { - G -> Layout_AlignWithOrigin(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"#points")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->L())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->L()))); - return TCL_OK; - } - -@@ -1522,21 +1495,18 @@ - if (strcmp(argv[3],"freeze")==0) - { - G -> Layout_FreezeBoundingBox(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[3],"default")==0) - { - G -> Layout_DefaultBoundingBox(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[3],"release")==0) - { - G -> Layout_ReleaseBoundingBox(); -- interp->result = ""; - return TCL_OK; - } - -@@ -1546,7 +1516,7 @@ - - if (pos<=0 || pos>=argc-1) - { -- interp->result = "Missing value for parameter \"-coordinate\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing value for parameter \"-coordinate\"", -1)); - return TCL_ERROR; - } - -@@ -1554,7 +1524,7 @@ - - if (coordinate>=G->Dim()) - { -- interp->result = "Invalid coordinate index"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Invalid coordinate index", -1)); - return TCL_ERROR; - } - -@@ -1564,7 +1534,7 @@ - - if (pos<=0 || pos>=argc-2) - { -- interp->result = "Missing values for parameter \"-range\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing values for parameter \"-range\"", -1)); - return TCL_ERROR; - } - -@@ -1572,7 +1542,6 @@ - TFloat cMax = TFloat(atol(argv[pos+2])); - - G -> Layout_TransformCoordinate(coordinate,cMin,cMax); -- interp->result = ""; - return TCL_OK; - } - -@@ -1585,7 +1554,7 @@ - - if (pos>0 && pos<argc) - { -- sprintf(interp->result,"%f",cMax); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(cMax)); - return TCL_OK; - } - -@@ -1593,7 +1562,7 @@ - - if (pos>0 && pos<argc) - { -- sprintf(interp->result,"%f",cMin); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(cMin)); - return TCL_OK; - } - -@@ -1603,15 +1572,15 @@ - { - TFloat spacing = 1.0; - G -> GetLayoutParameter(TokLayoutBendSpacing,spacing); -- sprintf(interp->result,"%lu",static_cast<unsigned long>((cMax-cMin)/spacing)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>((cMax-cMin)/spacing))); - return TCL_OK; - } - -- interp->result = "Missing parameter specification"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing parameter specification", -1)); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s layout boundingBox %s",argv[0],argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " layout boundingBox ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -1630,15 +1599,14 @@ - if ( argv[keyCount][0]!='-' - || !G->SetLayoutParameter(&(argv[keyCount][1]),argv[keyCount+1])) - { -- sprintf(interp->result,"Invalid assignment: %s layout configure %s %s", -- argv[0],argv[keyCount],argv[keyCount+1]); -+ Tcl_AppendResult(interp, "Invalid assignment: ", argv[0], " layout configure ", -+ argv[keyCount], argv[keyCount+1], (char *)NULL); - return TCL_ERROR; - } - - keyCount += 2; - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1654,16 +1622,16 @@ - { - if (G->Dim()>0 && G->CMax(0)>-100000 && G->CMax(1)>-100000) - { -- interp->result = "1"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); - } - else - { -- interp->result = "0"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); - } - } -- else if (!G->GetLayoutParameter(&(argv[3][1]),interp->result)) -+ else if (!G->GetLayoutParameter(&(argv[3][1]),(char *)Tcl_GetStringResult(interp))) - { -- sprintf(interp->result,"Unknown layout parameter %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown layout parameter ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -1681,7 +1649,7 @@ - } - else - { -- interp->result = "Missing value for parameter \"-spacing\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing value for parameter \"-spacing\"", -1)); - return TCL_ERROR; - } - } -@@ -1690,13 +1658,12 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - - static_cast<sparseRepresentation*>(G->Representation()) -> Layout_ArcRouting(spacing); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1715,7 +1682,7 @@ - } - else - { -- interp->result = "Missing value for parameter \"-dx\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing value for parameter \"-dx\"", -1)); - return TCL_ERROR; - } - } -@@ -1730,7 +1697,7 @@ - } - else - { -- interp->result = "Missing value for parameter \"-dy\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing value for parameter \"-dy\"", -1)); - return TCL_ERROR; - } - } -@@ -1761,7 +1728,6 @@ - } - catch (ERRejected) {} - -- interp->result = ""; - return TCL_OK; - } - -@@ -1800,7 +1766,6 @@ - abstractMixedGraph::FDP_DEFAULT,int(spacing)); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1869,7 +1834,6 @@ - G -> Layout_Layered(method,dx,dy); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1887,7 +1851,7 @@ - { - if (!(G->Layout_Outerplanar(spacing))) - { -- interp->result = "No outerplanar embedding given"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No outerplanar embedding given", -1)); - return TCL_ERROR; - } - } -@@ -1896,7 +1860,6 @@ - G -> Layout_Circular(spacing); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1904,7 +1867,6 @@ - { - G -> Layout_Equilateral(spacing); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1916,7 +1878,7 @@ - if (pos<argc-1) grid = atol(argv[pos+1]); - else - { -- interp->result = "Missing value for parameter \"-grid\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing value for parameter \"-grid\"", -1)); - return TCL_ERROR; - } - } -@@ -1932,7 +1894,7 @@ - if (pos<argc-1) aBasis = atol(argv[pos+1]); - else - { -- interp->result = "Missing value for parameter \"-basis\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing value for parameter \"-basis\"", -1)); - return TCL_ERROR; - } - } -@@ -1946,7 +1908,6 @@ - G -> Layout_StraightLineDrawing(aBasis,grid); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1963,7 +1924,7 @@ - if (pos<argc-1) rootNode = atol(argv[pos+1]); - else - { -- interp->result = "Missing value for parameter \"-rootNode\""; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing value for parameter \"-rootNode\"", -1)); - return TCL_ERROR; - } - } -@@ -1995,7 +1956,6 @@ - G -> Layout_Kandinsky(abstractMixedGraph::ORTHO_DEFAULT,grid); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -2024,11 +1984,10 @@ - abstractMixedGraph::ORTHO_VISIBILITY_TRIM,grid); - } - -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s layout %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " layout ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -2054,11 +2013,11 @@ - try - { - G -> ExtractTree(rootNode); -- interp->result = "1"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); - } - catch (ERCheck) - { -- interp->result = "Invalid input data"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Invalid input data", -1)); - return TCL_ERROR; - } - -@@ -2087,11 +2046,11 @@ - try - { - G -> ExtractPath(sourceNode,targetNode); -- interp->result = "1"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); - } - catch (ERCheck) - { -- interp->result = "Invalid input data"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Invalid input data", -1)); - return TCL_ERROR; - } - -@@ -2108,11 +2067,11 @@ - { - try - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->ExtractCycles())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->ExtractCycles()))); - } - catch (ERCheck) - { -- interp->result = "Invalid input data"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Invalid input data", -1)); - return TCL_ERROR; - } - -@@ -2121,7 +2080,7 @@ - - try - { -- interp->result = "1"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); - - if (strcmp(argv[2],"matching")==0) - { -@@ -2159,20 +2118,20 @@ - return TCL_OK; - } - -- interp->result = "1"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); - } - catch (ERCheck) - { -- interp->result = "Invalid input data"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Invalid input data", -1)); - return TCL_ERROR; - } - catch (ERRejected) - { -- interp->result = "Invalid input data"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Invalid input data", -1)); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s extract %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " extract ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -2185,7 +2144,6 @@ - } - - Tcl_DeleteCommand(interp,argv[0]); -- interp->result = ""; - return TCL_OK; - } - -@@ -2223,12 +2181,11 @@ - } - else - { -- sprintf(interp->result,"Unknown register attribute: %s",argv[i]); -+ Tcl_AppendResult(interp, "Unknown register attribute: ", argv[1], (char *)NULL); - return TCL_ERROR; - } - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -2240,7 +2197,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->N())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->N()))); - return TCL_OK; - } - -@@ -2252,7 +2209,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->M())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->M()))); - return TCL_OK; - } - -@@ -2270,74 +2227,83 @@ - { - TNode s = G->DefaultSourceNode(); - -- if (s==NoNode) interp->result = "*"; -- else sprintf(interp->result,"%lu",static_cast<unsigned long>(s)); -+ if (s==NoNode) { -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ } else { -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(s))); -+ } - } - else if (strcmp(argv[2],"-targetNode")==0) - { - TNode t = G->DefaultTargetNode(); - -- if (t==NoNode) interp->result = "*"; -- else sprintf(interp->result,"%lu",static_cast<unsigned long>(t)); -+ if (t==NoNode) { -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ } else { -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(t))); -+ } - } - else if (strcmp(argv[2],"-rootNode")==0) - { - TNode r = G->DefaultRootNode(); - -- if (r==NoNode) interp->result = "*"; -- else sprintf(interp->result,"%lu",static_cast<unsigned long>(r)); -+ if (r==NoNode) { -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ } else { -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(r))); -+ } - } - else if (strcmp(argv[2],"-metricType")==0) - { -- sprintf(interp->result,"%d",G->MetricType()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->MetricType())); - } - else if (strcmp(argv[2],"-sparse")==0) - { -- sprintf(interp->result,"%s", (G->IsSparse()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsSparse() ? 1 : 0)); - } - else if (strcmp(argv[2],"-directed")==0) - { -- sprintf(interp->result,"%s", (G->IsDirected()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsDirected() ? 1 : 0)); - } - else if (strcmp(argv[2],"-undirected")==0) - { -- sprintf(interp->result,"%s", (G->IsUndirected()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsUndirected() ? 1 : 0)); - } - else if (strcmp(argv[2],"-bipartite")==0) - { -- sprintf(interp->result,"%s", (G->IsBipartite()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsBipartite() ? 1 : 0)); - } - else if (strcmp(argv[2],"-planar")==0) - { -- sprintf(interp->result,"%s", (G->IsPlanar()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsPlanar() ? 1 : 0)); - } - else if (strcmp(argv[2],"-chordal")==0) - { -- sprintf(interp->result,"%s", (G->IsChordal()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsChordal() ? 1 : 0)); - } - else if (strcmp(argv[2],"-co-chordal")==0) - { -- sprintf(interp->result,"%s", (G->IsChordal(abstractMixedGraph::PERFECT_COMPLEMENT)) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsChordal(abstractMixedGraph::PERFECT_COMPLEMENT) ? 1 : 0)); - } - else if (strcmp(argv[2],"-balanced")==0) - { -- sprintf(interp->result,"%s", (G->IsBalanced()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->IsBalanced() ? 1 : 0)); - } - else if (strcmp(argv[2],"-graphObject")==0) - { -- interp->result = "1"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); - } - else if (strcmp(argv[2],"-cardinality")==0) - { -- sprintf(interp->result,"%f",G->Cardinality()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Cardinality())); - } - else if (strcmp(argv[2],"-edgeLength")==0) - { -- sprintf(interp->result,"%f",G->Length()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Length())); - } - else if (strcmp(argv[2],"-subgraphWeight")==0) - { -- sprintf(interp->result,"%f",G->Weight()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Weight())); - } - else - { -@@ -2354,12 +2320,11 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - - static_cast<sparseRepresentation*>(G->Representation()) -> ExplicitParallels(); -- interp->result = ""; - return TCL_OK; - } - -@@ -2471,7 +2436,6 @@ - } - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -2484,7 +2448,6 @@ - } - - G -> Write(argv[2]); -- interp->result = ""; - return TCL_OK; - } - -@@ -2531,18 +2494,17 @@ - - if (targetNode!=NoNode && G->Dist(targetNode)<InfFloat) - { -- sprintf(interp->result,"%f",G->Dist(targetNode)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Dist(targetNode))); - return TCL_OK; - } - else - { -- interp->result = "*"; - return TCL_OK; - } - } - catch (...) {} - -- interp->result = "Unable to assign distance labels"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Unable to assign distance labels", -1)); - return TCL_ERROR; - } - -@@ -2609,7 +2571,7 @@ - } - } - -- sprintf(interp->result,"%f",retCap); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(retCap)); - return TCL_OK; - } - -@@ -2632,11 +2594,11 @@ - - if (strongConnnectivity) - { -- sprintf(interp->result,"%d",G->StronglyEdgeConnected(kappa)); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->StronglyEdgeConnected(kappa))); - } - else - { -- sprintf(interp->result,"%d",G->EdgeConnected(kappa)); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->EdgeConnected(kappa))); - } - - return TCL_OK; -@@ -2680,12 +2642,11 @@ - - if (feasible) - { -- interp->result = ""; - return TCL_OK; - } - else - { -- interp->result = "Graph is not 2-connected"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Graph is not 2-connected", -1)); - return TCL_ERROR; - } - } -@@ -2702,7 +2663,7 @@ - - if (threshold<=0) - { -- sprintf(interp->result,"Invalid bound specification: %s",argv[pos+1]); -+ Tcl_AppendResult(interp, "Invalid bound specification: ", argv[pos+1], (char *)NULL); - return TCL_ERROR; - } - -@@ -2712,12 +2673,12 @@ - - if (chi>0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(chi)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(chi))); - return TCL_OK; - } - else - { -- interp->result = "No such structure exists"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No such structure exists", -1)); - return TCL_ERROR; - } - } -@@ -2734,7 +2695,7 @@ - - if (threshold<=0) - { -- sprintf(interp->result,"Invalid bound specification: %s",argv[pos+1]); -+ Tcl_AppendResult(interp, "Invalid bound specification: ", argv[pos+1], (char *)NULL); - return TCL_ERROR; - } - -@@ -2744,12 +2705,12 @@ - - if (chi>0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(chi)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(chi))); - return TCL_OK; - } - else - { -- interp->result = "No such structure exists"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No such structure exists", -1)); - return TCL_ERROR; - } - } -@@ -2766,7 +2727,7 @@ - - if (threshold<=0) - { -- sprintf(interp->result,"Invalid bound specification: %s",argv[pos+1]); -+ Tcl_AppendResult(interp, "Invalid bound specification: ", argv[pos+1], (char *)NULL); - return TCL_ERROR; - } - -@@ -2776,12 +2737,12 @@ - - if (chi>0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(chi)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(chi))); - return TCL_OK; - } - else - { -- interp->result = "No such structure exists"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No such structure exists", -1)); - return TCL_ERROR; - } - } -@@ -2794,7 +2755,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->StableSet())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->StableSet()))); - return TCL_OK; - } - -@@ -2806,7 +2767,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->Clique())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->Clique()))); - return TCL_OK; - } - -@@ -2818,7 +2779,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->VertexCover())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->VertexCover()))); - return TCL_OK; - } - -@@ -2830,13 +2791,13 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%d",G->EulerianCycle()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->EulerianCycle())); - return TCL_OK; - } - - if (strcmp(argv[1],"feedbackArcSet")==0) - { -- sprintf(interp->result,"%f",G->FeedbackArcSet()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->FeedbackArcSet())); - return TCL_OK; - } - -@@ -2855,12 +2816,12 @@ - - if (ret!=InfFloat) - { -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - else - { -- interp->result = "Graph is non-Hamiltonian"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Graph is non-Hamiltonian", -1)); - return TCL_ERROR; - } - } -@@ -2892,12 +2853,12 @@ - - if (ret!=InfFloat) - { -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - else - { -- interp->result = "Graph is disconnected"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Graph is disconnected", -1)); - return TCL_ERROR; - } - } -@@ -2917,12 +2878,12 @@ - - if (ret!=InfFloat) - { -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - else - { -- interp->result = "Terminal nodes are disconnected"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Terminal nodes are disconnected", -1)); - return TCL_ERROR; - } - } -@@ -2949,12 +2910,11 @@ - { - if (G->AdmissibleBFlow()) - { -- interp->result = ""; - return TCL_OK; - } - else - { -- interp->result = "No such structure exists"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No such structure exists", -1)); - return TCL_ERROR; - } - } -@@ -2964,12 +2924,12 @@ - - try - { -- sprintf(interp->result,"%f",flowValue); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(flowValue)); - return TCL_OK; - } - catch (ERCheck) - { -- sprintf(interp->result,"Flow is corrupted"); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("FLow is corrupted", -1)); - return TCL_ERROR; - } - } -@@ -2978,12 +2938,12 @@ - try - { - TFloat ret = G->MinCostBFlow(); -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "No such structure exists"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No such structure exists", -1)); - return TCL_ERROR; - } - } -@@ -2992,12 +2952,12 @@ - try - { - TFloat ret = G -> MinCostSTFlow(sourceNode,targetNode); -- sprintf(interp->result,"%f",ret); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(ret)); - return TCL_OK; - } - catch (ERCheck) - { -- interp->result = "Flow is corrupted"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Flow is corrupted", -1)); - return TCL_ERROR; - } - } -@@ -3013,7 +2973,7 @@ - } - - G -> ChinesePostman(adjustUCap); -- sprintf(interp->result,"%f",G->Weight()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Weight())); - return TCL_OK; - } - -@@ -3034,7 +2994,7 @@ - targetNode = atol(argv[pos+1]); - } - -- sprintf(interp->result,"%f",G->MaxCut(sourceNode,targetNode)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->MaxCut(sourceNode,targetNode))); - - G -> InitSubgraph(); - -@@ -3068,40 +3028,44 @@ - if (G->MaxDemand()!=InfCap) - { - if (G->MaxDemand()!=(long int)(G->MaxDemand())) -- sprintf(interp->result,"%f",G->MaxDemand()); -- else sprintf(interp->result,"%ld",(long int)G->MaxDemand()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->MaxDemand())); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(G->MaxDemand())); - } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[2],"-lowerBound")==0) - { - if (G->MaxLCap()!=(long int)(G->MaxLCap())) -- sprintf(interp->result,"%f",G->MaxLCap()); -- else sprintf(interp->result,"%ld",(long int)G->MaxLCap()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->MaxLCap())); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(G->MaxLCap())); - } - else if (strcmp(argv[2],"-upperBound")==0) - { - if (G->MaxUCap()!=InfCap) - { - if (G->MaxUCap()!=(long int)(G->MaxUCap())) -- sprintf(interp->result,"%f",G->MaxUCap()); -- else sprintf(interp->result,"%ld",(long int)G->MaxUCap()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->MaxUCap())); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(G->MaxUCap())); - } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[2],"-edgeLength")==0) - { - if (G->MaxLength()!=InfFloat) - { - if (G->MaxLength()!=(long int)(G->MaxLength())) -- sprintf(interp->result,"%f",G->MaxLength()); -- else sprintf(interp->result,"%ld",(long int)G->MaxLength()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->MaxLength())); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(G->MaxLength())); - } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else - { -- sprintf(interp->result,"Unknown graph attribute: %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown graph attribute: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -3119,23 +3083,23 @@ - - if (strcmp(argv[2],"-nodeDemand")==0) - { -- sprintf(interp->result,"%d",G->CDemand()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->CDemand())); - } - else if (strcmp(argv[2],"-lowerBound")==0) - { -- sprintf(interp->result,"%d",G->CLCap()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->CLCap())); - } - else if (strcmp(argv[2],"-upperBound")==0) - { -- sprintf(interp->result,"%d",G->CUCap()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->CUCap())); - } - else if (strcmp(argv[2],"-edgeLength")==0) - { -- sprintf(interp->result,"%d",G->CLength()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->CLength())); - } - else - { -- sprintf(interp->result,"Unknown graph attribute: %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown graph attribute: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -3219,7 +3183,7 @@ - } - else - { -- sprintf(interp->result,"Unknown metric type: %s",argv[i+1]); -+ Tcl_AppendResult(interp, "Unknown metric type: ", argv[i+1], (char *)NULL); - return TCL_ERROR; - } - -@@ -3229,17 +3193,15 @@ - { - TArc a = (strcmp(argv[i+1],"*")!=0) ? TArc(atol(argv[i+1])) : NoArc; - G -> MarkExteriorFace(a); -- interp->result = ""; - return GOSH_OK; - } - else - { -- sprintf(interp->result,"Unknown graph attribute: %s",argv[i]); -+ Tcl_AppendResult(interp, "Unknown graph attribute: ", argv[i], (char *)NULL); - return TCL_ERROR; - } - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -3248,7 +3210,7 @@ - { - if (argc!=4) - { -- interp->result = "Missing end nodes"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing end nodes", -1)); - return TCL_ERROR; - } - -@@ -3256,8 +3218,8 @@ - TNode v = (TArc)atol(argv[3]); - TArc a = G->Adjacency(u,v); - -- if (a==NoArc) interp->result = "*"; -- else sprintf(interp->result,"%lu",static_cast<unsigned long>(a)); -+ if (a==NoArc) Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(a))); - - return TCL_OK; - } -@@ -3275,6 +3237,8 @@ - int Goblin_Node_Cmd (abstractMixedGraph *G,Tcl_Interp* interp,int argc, - _CONST_QUAL_ char* argv[]) throw(ERRejected,ERRange) - { -+ Tcl_ResetResult(interp); -+ - if (argc<3) - { - WrongNumberOfArguments(interp,argc,argv); -@@ -3289,7 +3253,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->InsertNode())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->InsertNode()))); - return TCL_OK; - } - -@@ -3304,7 +3268,6 @@ - if (strcmp(argv[3],"delete")==0) - { - G->DeleteNode(v); -- interp->result = ""; - return TCL_OK; - } - -@@ -3313,62 +3276,58 @@ - if (strcmp(argv[4],"-firstIncidence")==0) - { - if (G->First(v)!=NoArc) -- { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->First(v))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->First(v)))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-nodeDemand")==0) - { -- sprintf(interp->result,"%g",static_cast<double>(G->Demand(v))); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(G->Demand(v)))); - } - else if (strcmp(argv[4],"-cx")==0) - { -- sprintf(interp->result,"%f",static_cast<double>(G->C(v,0))); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(G->C(v,0)))); - } - else if (strcmp(argv[4],"-cy")==0) - { -- sprintf(interp->result,"%f",static_cast<double>(G->C(v,1))); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(G->C(v,1)))); - } - else if (strcmp(argv[4],"-distance")==0) - { - if (G->Dist(v)!=InfFloat) -- { -- sprintf(interp->result,"%g",static_cast<double>(G->Dist(v))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(G->Dist(v)))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-potential")==0) - { -- sprintf(interp->result,"%g",static_cast<double>(G->Pi(v))); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(G->Pi(v)))); - } - else if (strcmp(argv[4],"-nodeColour")==0) - { - if (G->NodeColour(v)!=NoNode) -- { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->NodeColour(v))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->NodeColour(v)))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-predecessorArc")==0) - { - if (G->Pred(v)!=NoArc) -- { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->Pred(v))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->Pred(v)))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-degree")==0) - { -- sprintf(interp->result,"%g",G->Deg(v)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Deg(v))); - } - else if (strcmp(argv[4],"-hidden")==0) - { -- sprintf(interp->result,"%d",G->HiddenNode(v)); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->HiddenNode(v))); - } - else - { -- sprintf(interp->result,"Unknown node attribute: %s",argv[4]); -+ Tcl_AppendResult(interp, "Unknown node attribute: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -@@ -3383,7 +3342,7 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - -@@ -3422,16 +3381,15 @@ - } - else - { -- sprintf(interp->result,"Unknown node attribute: %s",argv[i]); -+ Tcl_AppendResult(interp, "Unknown node attribute: ", argv[i], (char *)NULL); - return TCL_ERROR; - } - } - -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s node %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " node ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -3449,14 +3407,14 @@ - { - if (argc!=5) - { -- interp->result = "Missing end nodes"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing end nodes", -1)); - return TCL_ERROR; - } - - TNode u = TArc(atol(argv[3])); - TNode v = TArc(atol(argv[4])); - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->InsertArc(u,v))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->InsertArc(u,v)))); - return TCL_OK; - } - -@@ -3466,12 +3424,11 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - - static_cast<sparseRepresentation*>(G->Representation()) -> DeleteArc(a); -- interp->result = ""; - return TCL_OK; - } - -@@ -3479,12 +3436,11 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - - static_cast<sparseRepresentation*>(G->Representation()) -> ContractArc(a); -- interp->result = ""; - return TCL_OK; - } - -@@ -3492,12 +3448,11 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - - static_cast<sparseRepresentation*>(G->Representation()) -> ReleaseEdgeControlPoints(a); -- interp->result = ""; - return TCL_OK; - } - -@@ -3505,12 +3460,11 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - - static_cast<sparseRepresentation*>(G->Representation()) -> FlipArc(a); -- interp->result = ""; - return TCL_OK; - } - -@@ -3518,75 +3472,70 @@ - { - if (strcmp(argv[4],"-righthandArc")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->Right(a,G->StartNode(a)))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->Right(a,G->StartNode(a))))); - } - else if (strcmp(argv[4],"-endNode")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->EndNode(a))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->EndNode(a)))); - } - else if (strcmp(argv[4],"-startNode")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->StartNode(a))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->StartNode(a)))); - } - else if (strcmp(argv[4],"-directed")==0) - { -- sprintf(interp->result,"%d",G->Orientation(a)); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->Orientation(a))); - } - else if (strcmp(argv[4],"-upperBound")==0) - { - if (G->UCap(a)!=InfCap) -- { -- sprintf(interp->result,"%g",static_cast<double>(G->UCap(a))); -- } -- else sprintf(interp->result,"*"); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->UCap(a))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-lowerBound")==0) - { -- sprintf(interp->result,"%g",static_cast<double>(G->LCap(a))); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(G->LCap(a)))); - } - else if (strcmp(argv[4],"-edgeLength")==0) - { - if (G->Length(a)!=InfFloat) -- { -- sprintf(interp->result,"%g",static_cast<double>(G->Length(a))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Length(a))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-edgeColour")==0) - { - if (G->EdgeColour(a)!=NoArc) -- { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->EdgeColour(a))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->EdgeColour(a)))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-subgraph")==0) - { -- sprintf(interp->result,"%g",static_cast<double>(G->Sub(a))); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(G->Sub(a))); - } - else if (strcmp(argv[4],"-labelAnchorPoint")==0) - { - if (G->ArcLabelAnchor(a)!=NoNode) -- { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->ArcLabelAnchor(a))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->ArcLabelAnchor(a)))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-portNode")==0) - { - if (G->PortNode(a)!=NoNode) -- { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(G->PortNode(a))); -- } -- else interp->result = "*"; -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(G->PortNode(a)))); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); - } - else if (strcmp(argv[4],"-hidden")==0) - { -- sprintf(interp->result,"%d",G->HiddenArc(a)); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(G->HiddenArc(a))); - } - else - { -- sprintf(interp->result,"Unknown node attribute: %s",argv[4]); -+ Tcl_AppendResult(interp, "Unknown node attribute: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -@@ -3619,7 +3568,7 @@ - { - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - -@@ -3644,12 +3593,11 @@ - } - else - { -- sprintf(interp->result,"Unknown arc attribute: %s",argv[i]); -+ Tcl_AppendResult(interp, "Unknown arc attribute: ", argv[i], (char *)NULL); - return TCL_ERROR; - } - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -3663,7 +3611,7 @@ - - if (!G->IsSparse()) - { -- interp->result = "Operation applies to sparse graphs only"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Operation applies to sparse graphs only", -1)); - return TCL_ERROR; - } - -@@ -3671,20 +3619,20 @@ - - if (strcmp(argv[4],"-labelAnchorPoint")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(GR->ProvideArcLabelAnchor(a))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(GR->ProvideArcLabelAnchor(a)))); - return TCL_OK; - } - - if (strcmp(argv[4],"-portNode")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(GR->ProvidePortNode(a))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(GR->ProvidePortNode(a)))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown layout point type: %s",argv[4]); -+ Tcl_AppendResult(interp, "Unknown layout point type: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s arc %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " arc ", argv[2], (char *)NULL); - return TCL_ERROR; - } ---- shell_src/goshLin.cpp.orig 2013-06-04 16:26:29.000000000 +0200 -+++ shell_src/goshLin.cpp 2013-06-04 16:49:40.000000000 +0200 -@@ -16,6 +16,8 @@ - int Goblin_Ilp_Cmd (ClientData clientData,Tcl_Interp* interp, - int argc,_CONST_QUAL_ char* argv[]) - { -+ Tcl_ResetResult(interp); -+ - mipInstance* XLP = reinterpret_cast<mipInstance*>(clientData); - - if (setjmp(goblinThreadData[Goblin_MyThreadIndex()].jumpBuffer) != 0) -@@ -27,14 +29,12 @@ - if (argc==2 && strcmp(argv[1],"delete")==0) - { - Tcl_DeleteCommand(interp,argv[0]); -- interp->result = ""; - return TCL_OK; - } - - if (argc==2 && strcmp(argv[1],"reset")==0) - { - XLP -> ResetBasis(); -- interp->result = ""; - return TCL_OK; - } - -@@ -59,7 +59,6 @@ - - XLP -> Write(argv[argc-1],f); - -- interp->result = ""; - return TCL_OK; - } - -@@ -74,7 +73,6 @@ - if (strcmp(argv[2],"bas")==0 || strcmp(argv[2],"basis")==0) - { - XLP -> ReadBASFile(argv[3]); -- interp->result = ""; - return TCL_OK; - } - -@@ -82,17 +80,15 @@ - { - if (XLP->K()>0 || XLP->L()>0) - { -- interp->result = "Instance must be initial"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Instance must be initial", -1)); - return TCL_ERROR; - } - - XLP -> ReadMPSFile(argv[3]); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s read %s", -- argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " read ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -104,7 +100,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(XLP->K())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(XLP->K()))); - return TCL_OK; - } - -@@ -116,7 +112,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%lu",static_cast<unsigned long>(XLP->L())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(XLP->L()))); - return TCL_OK; - } - -@@ -130,7 +126,7 @@ - - if (strcmp(argv[2],"-mipObject")==0) - { -- interp->result = "1"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); - return TCL_OK; - } - -@@ -149,8 +145,9 @@ - mipFactory *theMipFactory = (mipFactory*)CT->pMipFactory; - - if (theMipFactory->Orientation()==mipFactory::ROW_ORIENTED) -- interp->result = "row"; -- else interp->result = "column"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("row", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("column", -1)); - - return TCL_OK; - } -@@ -164,10 +161,11 @@ - } - - if (XLP->ObjectSense()==managedObject::MAXIMIZE) -- interp->result = "maximize"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("maximize", -1)); - else if (XLP->ObjectSense()==managedObject::MINIMIZE) -- interp->result = "minimize"; -- else interp->result = "flat"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("minimize", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("flat", -1)); - - return TCL_OK; - } -@@ -181,7 +179,6 @@ - } - - XLP -> SetObjectSense(managedObject::MAXIMIZE); -- interp->result = ""; - return TCL_OK; - } - -@@ -194,7 +191,6 @@ - } - - XLP -> SetObjectSense(managedObject::MINIMIZE); -- interp->result = ""; - return TCL_OK; - } - -@@ -207,7 +203,6 @@ - } - - XLP -> FlipObjectSense(); -- interp->result = ""; - return TCL_OK; - } - -@@ -220,7 +215,6 @@ - } - - XLP -> SetObjectSense(managedObject::NO_OBJECTIVE); -- interp->result = ""; - return TCL_OK; - } - -@@ -233,7 +227,6 @@ - } - - XLP -> Strip(); -- interp->result = ""; - return TCL_OK; - } - -@@ -249,7 +242,6 @@ - TIndex l = TIndex(atol(argv[3])); - TIndex nz = TIndex(atol(argv[4])); - XLP -> Resize(k,l,nz); -- interp->result = ""; - return TCL_OK; - } - -@@ -263,7 +255,7 @@ - - TIndex i = TIndex(atol(argv[2])); - TIndex j = TIndex(atol(argv[3])); -- sprintf(interp->result,"%g", XLP -> Coeff(i,j)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP -> Coeff(i,j))); - return TCL_OK; - } - -@@ -285,11 +277,11 @@ - - TIndex j = TIndex(atol(argv[3])); - TIndex i = TIndex(atol(argv[4])); -- sprintf(interp->result,"%g", XLP->Tableau(j,i)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->Tableau(j,i))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s tableau %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " tableau ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -311,11 +303,11 @@ - - TIndex i = TIndex(atol(argv[3])); - TIndex j = TIndex(atol(argv[4])); -- sprintf(interp->result,"%g", XLP->BaseInverse(i,j)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->BaseInverse(i,j))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s inverse %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " inverse ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -329,17 +321,17 @@ - - if (strcmp(argv[2],"primal")==0) - { -- sprintf(interp->result,"%d",XLP->PrimalFeasible()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(XLP->PrimalFeasible())); - return TCL_OK; - } - - if (strcmp(argv[2],"dual")==0) - { -- sprintf(interp->result,"%d",XLP->DualFeasible()); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(XLP->DualFeasible())); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s feasible %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " feasible ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -357,7 +349,6 @@ - TIndex j = TIndex(atol(argv[4])); - TFloat a = TFloat(atof(argv[5])); - XLP -> SetCoeff(i,j,a); -- interp->result = ""; - return TCL_OK; - } - -@@ -376,7 +367,6 @@ - XLP -> SetIndex(i,j,mipInstance::UPPER); - else XLP -> SetIndex(i,j,mipInstance::LOWER); - -- interp->result = ""; - return TCL_OK; - } - } -@@ -387,8 +377,10 @@ - { - TRestr i = XLP-> PivotRow(); - -- if (i==NoRestr) interp->result = "*"; -- else sprintf(interp->result,"%ld",i); -+ if (i==NoRestr) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(i)); - - return TCL_OK; - } -@@ -398,12 +390,12 @@ - TRestr i = XLP-> PivotRow(); - mipInstance::TLowerUpper tp = XLP-> PivotDirection(); - -- if (i==NoRestr) interp->result = ""; -- else -+ if (i!=NoRestr) - { - if (tp==mipInstance::LOWER) -- interp->result = "lower"; -- else interp->result = "upper"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("lower", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("upper", -1)); - } - - return TCL_OK; -@@ -413,8 +405,10 @@ - { - TVar i =XLP-> PivotColumn(); - -- if (i==NoVar) interp->result = "*"; -- else sprintf(interp->result,"%ld",i); -+ if (i==NoVar) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(i)); - - return TCL_OK; - } -@@ -433,7 +427,6 @@ - if (strcmp(argv[4],"lower")==0) tp = mipInstance::LOWER; - - XLP -> Pivot(i,j,tp); -- interp->result = ""; - return TCL_OK; - } - -@@ -441,7 +434,7 @@ - { - if (argc==2 || strcmp(argv[2],"primal")==0) - { -- sprintf(interp->result,"%g", XLP->ObjVal()); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->ObjVal())); - return TCL_OK; - } - -@@ -453,11 +446,11 @@ - - if (strcmp(argv[2],"dual")==0) - { -- interp->result = "Not implemented yet"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Not implemented yet", -1)); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s objective %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " objective ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -472,32 +465,28 @@ - if (strcmp(argv[2],"lp")==0) - { - XLP -> SolveLP(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"primal")==0) - { - XLP -> SolvePrimal(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"dual")==0) - { - XLP -> SolveDual(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"mixed")==0 || strcmp(argv[2],"mip")==0) - { - XLP -> SolveMIP(); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s solve %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " solve ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -512,18 +501,16 @@ - if (strcmp(argv[2],"primal")==0) - { - XLP -> StartPrimal(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"dual")==0) - { - XLP -> StartDual(); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s start %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " start ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -541,7 +528,6 @@ - Goblin_Ilp_Cmd,reinterpret_cast<ClientData>(YLP), - (Tcl_CmdDeleteProc *)Goblin_Delete_Ilp); - -- interp->result = ""; - return TCL_OK; - } - -@@ -559,7 +545,6 @@ - Goblin_Ilp_Cmd,reinterpret_cast<ClientData>(YLP), - (Tcl_CmdDeleteProc *)Goblin_Delete_Ilp); - -- interp->result = ""; - return TCL_OK; - } - -@@ -577,7 +562,6 @@ - Goblin_Ilp_Cmd,reinterpret_cast<ClientData>(YLP), - (Tcl_CmdDeleteProc *)Goblin_Delete_Ilp); - -- interp->result = ""; - return TCL_OK; - } - -@@ -618,7 +602,7 @@ - TFloat l = TFloat(atof(argv[3])); - TFloat u = TFloat(atof(argv[4])); - -- sprintf(interp->result,"%ld",XLP->AddRestr(l,u)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(XLP->AddRestr(l,u))); - return TCL_OK; - } - -@@ -632,8 +616,10 @@ - - TRestr i = XLP->RestrIndex((char*)argv[3]); - -- if (i==NoRestr) interp->result = "*"; -- else sprintf(interp->result,"%ld",i); -+ if (i==NoRestr) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(i)); - - return TCL_OK; - } -@@ -643,51 +629,55 @@ - if (strcmp(argv[3],"cancel")==0) - { - XLP -> DeleteRestr(i); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[3],"ubound")==0) - { -- if (XLP->UBound(i)==InfFloat) sprintf(interp->result,"*"); -- else sprintf(interp->result,"%g",XLP->UBound(i)); -+ if (XLP->UBound(i)==InfFloat) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->UBound(i))); - - return TCL_OK; - } - - if (strcmp(argv[3],"lbound")==0) - { -- if (XLP->LBound(i)==-InfFloat) sprintf(interp->result,"*"); -- else sprintf(interp->result,"%g",XLP->LBound(i)); -+ if (XLP->LBound(i)==-InfFloat) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->LBound(i))); - - return TCL_OK; - } - - if (strcmp(argv[3],"label")==0) - { -- sprintf(interp->result,"%s", -- XLP->RestrLabel(i,managedObject::OWNED_BY_RECEIVER)); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(XLP->RestrLabel(i,managedObject::OWNED_BY_RECEIVER), -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"type")==0) - { - if (XLP->RestrType(i)==mipInstance::NON_BASIC) -- interp->result = "non_basic"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("non_basic", -1)); - if (XLP->RestrType(i)==mipInstance::BASIC_UB) -- interp->result = "upper"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("upper", -1)); - if (XLP->RestrType(i)==mipInstance::BASIC_LB) -- interp->result = "lower"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("lower", -1)); - if (XLP->RestrType(i)==mipInstance::RESTR_CANCELED) -- interp->result = "canceled"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("canceled", -1)); - - return TCL_OK; - } - - if (strcmp(argv[3],"index")==0) - { -- if (XLP->RevIndex(i)==NoIndex) sprintf(interp->result,"*"); -- else sprintf(interp->result,"%ld",XLP->RevIndex(i)); -+ if (XLP->RevIndex(i)==NoIndex) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(XLP->RevIndex(i))); - - return TCL_OK; - } -@@ -702,18 +692,25 @@ - - if (strcmp(argv[4],"lower")==0) - { -- sprintf(interp->result,"%g",XLP->Y(i,mipInstance::LOWER)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->Y(i,mipInstance::LOWER))); - return TCL_OK; - } - - if (strcmp(argv[4],"upper")==0) - { -- sprintf(interp->result,"%g",XLP->Y(i,mipInstance::UPPER)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->Y(i,mipInstance::UPPER))); - return TCL_OK; - } - -+#if TCL_MAJOR_VERSION > 8 || (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION > 5) -+ Tcl_Obj *resObj = Tcl_NewObj(); -+ Tcl_AppendPrintfToObj(resObj, "Unknown option: %s row %ld value %s", -+ argv[0],i,argv[4]); -+ Tcl_SetObjResult(interp, resObj); -+#else - sprintf(interp->result,"Unknown option: %s row %ld value %s", - argv[0],i,argv[4]); -+#endif - return TCL_ERROR; - } - -@@ -727,18 +724,25 @@ - - if (strcmp(argv[4],"lower")==0) - { -- sprintf(interp->result,"%g",XLP->Slack(i,mipInstance::LOWER)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->Slack(i,mipInstance::LOWER))); - return TCL_OK; - } - - if (strcmp(argv[4],"upper")==0) - { -- sprintf(interp->result,"%g",XLP->Slack(i,mipInstance::UPPER)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->Slack(i,mipInstance::UPPER))); - return TCL_OK; - } - -+#if TCL_MAJOR_VERSION > 8 || (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION > 5) -+ Tcl_Obj *resObj = Tcl_NewObj(); -+ Tcl_AppendPrintfToObj(resObj, "Unknown option: %s rebound %ld value %s", -+ argv[0],i,argv[4]); -+ Tcl_SetObjResult(interp, resObj); -+#else - sprintf(interp->result,"Unknown option: %s redbound %ld value %s", - argv[0],i,argv[4]); -+#endif - return TCL_ERROR; - } - -@@ -757,7 +761,6 @@ - if (strcmp(argv[5],"*")!=0) uu = TFloat(atof(argv[5])); - - XLP -> SetUBound(i,uu); -- interp->result = ""; - return TCL_OK; - } - -@@ -768,22 +771,20 @@ - if (strcmp(argv[5],"*")!=0) ll = TFloat(atof(argv[5])); - - XLP -> SetLBound(i,ll); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[4],"label")==0) - { - XLP -> SetRestrLabel(i,(char*)argv[5],managedObject::OWNED_BY_SENDER); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s row %s set %s",argv[0],argv[2],argv[4]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " row ", argv[2], " set ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s row %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " row ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -815,12 +816,12 @@ - { - if (strcmp(argv[3],"float")!=0) - { -- interp->result = "Unknown variable type"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Unknown variable type", -1)); - return TCL_ERROR; - } - } - -- sprintf(interp->result,"%ld",XLP->AddVar(l,u,tp)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(XLP->AddVar(l,u,tp))); - return TCL_OK; - } - -@@ -834,8 +835,10 @@ - - TVar i = XLP->VarIndex((char*)argv[3]); - -- if (i==NoVar) interp->result = "*"; -- else sprintf(interp->result,"%ld",i); -+ if (i==NoVar) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(i)); - - return TCL_OK; - } -@@ -845,14 +848,15 @@ - if (strcmp(argv[3],"cancel")==0) - { - XLP -> DeleteVar(i); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[3],"urange")==0) - { -- if (XLP->URange(i)==InfFloat) sprintf(interp->result,"*"); -- else sprintf(interp->result,"%g",XLP->URange(i)); -+ if (XLP->URange(i)==InfFloat) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->URange(i))); - - return TCL_OK; - } -@@ -860,46 +864,47 @@ - - if (strcmp(argv[3],"lrange")==0) - { -- if (XLP->LRange(i)==-InfFloat) sprintf(interp->result,"*"); -- else sprintf(interp->result,"%g",XLP->LRange(i)); -+ if (XLP->LRange(i)==-InfFloat) -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("*", -1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->LRange(i))); - - return TCL_OK; - } - - if (strcmp(argv[3],"cost")==0) - { -- sprintf(interp->result,"%g",XLP->Cost(i)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->Cost(i))); - return TCL_OK; - } - - if (strcmp(argv[3],"type")==0) - { - if (XLP->VarType(i)==mipInstance::VAR_INT) -- interp->result = "integer"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("integer", -1)); - if (XLP->VarType(i)==mipInstance::VAR_FLOAT) -- interp->result = "float"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("float", -1)); - if (XLP->VarType(i)==mipInstance::VAR_CANCELED) -- interp->result = "canceled"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("canceled", -1)); - - return TCL_OK; - } - - if (strcmp(argv[3],"label")==0) - { -- sprintf(interp->result,"%s", -- XLP->VarLabel(i,managedObject::OWNED_BY_RECEIVER)); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(XLP->VarLabel(i,managedObject::OWNED_BY_RECEIVER), -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"index")==0) - { -- sprintf(interp->result,"%ld",XLP->Index(i)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(XLP->Index(i))); - return TCL_OK; - } - - if (strcmp(argv[3],"value")==0) - { -- sprintf(interp->result,"%g",XLP->X(i)); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(XLP->X(i))); - return TCL_OK; - } - -@@ -908,18 +913,16 @@ - if (strcmp(argv[4],"int")==0 || strcmp(argv[4],"integer")==0) - { - XLP -> SetVarType(i,mipInstance::VAR_INT); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[4],"float")==0) - { - XLP -> SetVarType(i,mipInstance::VAR_FLOAT); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s variable %s mark %s",argv[0],argv[2],argv[4]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " variable ", argv[2], " mark ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -@@ -938,7 +941,6 @@ - if (strcmp(argv[5],"*")!=0) uu = TFloat(atof(argv[5])); - - XLP -> SetURange(i,uu); -- interp->result = ""; - return TCL_OK; - } - -@@ -947,7 +949,6 @@ - TFloat ll = -InfFloat; - if (strcmp(argv[5],"*")!=0) ll = TFloat(atof(argv[5])); - XLP -> SetLRange(i,ll); -- interp->result = ""; - return TCL_OK; - } - -@@ -955,22 +956,20 @@ - { - TFloat cc = TFloat(atof(argv[5])); - XLP -> SetCost(i,cc); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[4],"label")==0) - { - XLP -> SetVarLabel(i,(char*)argv[5],managedObject::OWNED_BY_SENDER); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s variable %s set %s",argv[0],argv[2],argv[4]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " variable ", argv[2], " set ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s variable %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " variable ", argv[2], (char *)NULL); - return TCL_ERROR; - } - ---- shell_src/goshMain.cpp.orig 2013-06-04 17:06:23.000000000 +0200 -+++ shell_src/goshMain.cpp 2013-06-04 17:26:19.000000000 +0200 -@@ -298,7 +298,7 @@ - - if (Tcl_EvalFile(interp2,(char*)scriptName)==TCL_ERROR) - { -- sprintf(CT->logBuffer,"...Thread exit status: %s",interp2->result); -+ sprintf(CT->logBuffer,"...Thread exit status: %s",Tcl_GetStringResult(interp2)); - CT -> LogEntry(LOG_IO,NoHandle,CT->logBuffer); - } - -@@ -337,6 +337,8 @@ - int Goblin_Cmd (ClientData clientData,Tcl_Interp* interp,int argc, - _CONST_QUAL_ char* argv[]) - { -+ Tcl_ResetResult(interp); -+ - if (argc<2) - { - WrongNumberOfArguments(interp,argc,argv); -@@ -366,7 +368,6 @@ - Goblin_Mixed_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Mixed_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -384,7 +385,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -410,7 +410,6 @@ - Goblin_Sparse_Bigraph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Bigraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -428,7 +427,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -446,7 +444,6 @@ - Goblin_Dense_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Dense_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -470,7 +467,6 @@ - Goblin_Dense_Bigraph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Dense_Bigraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -488,7 +484,6 @@ - Goblin_Dense_Digraph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Dense_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -539,7 +534,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -589,7 +583,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -676,7 +669,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -739,7 +731,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -755,7 +746,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -773,7 +763,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -795,7 +784,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -818,7 +806,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -836,7 +823,6 @@ - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Digraph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -851,7 +837,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -866,7 +851,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -881,7 +865,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -921,7 +904,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -937,7 +919,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -962,7 +943,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -980,7 +960,6 @@ - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(G), - (Tcl_CmdDeleteProc *)Goblin_Delete_Sparse_Graph); - -- interp->result = ""; - return TCL_OK; - } - -@@ -990,7 +969,7 @@ - { - if (goblinController::pMipFactory==NULL) - { -- interp->result = "No LP solver loaded"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No LP solver loaded", -1)); - return TCL_ERROR; - } - -@@ -1016,7 +995,6 @@ - Goblin_Ilp_Cmd,reinterpret_cast<ClientData>(XLP), - (Tcl_CmdDeleteProc *)Goblin_Delete_Ilp); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1054,7 +1032,7 @@ - - if (!X) - { -- interp->result = "Unknown format specification"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Unknown format specification", -1)); - return TCL_ERROR; - } - -@@ -1141,7 +1119,6 @@ - (Tcl_CmdDeleteProc *)Goblin_Delete_Mixed_Graph); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1162,13 +1139,12 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Ilp_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - - if (!X->IsGraphObject()) - { -- sprintf(interp->result,"Not a graph object ID: %s",argv[3]); -+ Tcl_AppendResult(interp, "Not a graph object ID: ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -1179,7 +1155,6 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Mixed_Graph_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1190,7 +1165,6 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Sparse_Graph_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1201,7 +1175,6 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Dense_Graph_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1212,7 +1185,6 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Sparse_Bigraph_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1223,7 +1195,6 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Dense_Bigraph_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1234,7 +1205,6 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Sparse_Digraph_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1245,7 +1215,6 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Dense_Digraph_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1256,11 +1225,10 @@ - Tcl_CreateCommand(interp,const_cast<char*>(argv[2]), - Goblin_Balanced_FNW_Cmd,reinterpret_cast<ClientData>(Y),NULL); - -- interp->result = ""; - return TCL_OK; - } - -- interp->result = "Unknown object type"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Unknown object type", -1)); - return TCL_ERROR; - } - -@@ -1293,7 +1261,7 @@ - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: goblin export %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: goblin export ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -1316,7 +1284,6 @@ - else CT->LogEntry(MSG_ECHO,NoHandle,(char*)argv[2]); - } - -- interp->result = ""; - return TCL_OK; - } - -@@ -1334,7 +1301,7 @@ - - if (threadIndex>=MAX_NUM_THREADS) - { -- interp->result = "No more thread handle available"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No more thread handle available", -1)); - return TCL_ERROR; - } - -@@ -1344,7 +1311,6 @@ - pthread_create(&goblinThreadData[threadIndex].threadID, - NULL,Goblin_Thread,(void*)scriptName); - -- interp->result = ""; - return TCL_OK; - } - -@@ -1360,7 +1326,6 @@ - - sprintf(returnCode,"%s",argv[3]); - errorCode = TCL_OK; -- interp->result = ""; - return TCL_OK; - } - -@@ -1376,7 +1341,6 @@ - - sprintf(returnCode,"%s",argv[3]); - errorCode = TCL_ERROR; -- interp->result = ""; - return TCL_OK; - } - -@@ -1389,15 +1353,15 @@ - if (strcmp(argv[2],"stop")==0) - { - MSG -> SolverSignalStop(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"idle")==0) - { - if (MSG->SolverIdle()) -- interp->result = "1"; -- else interp->result = "0"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); - - return TCL_OK; - } -@@ -1405,8 +1369,9 @@ - if (strcmp(argv[2],"running")==0) - { - if (MSG->SolverRunning()) -- interp->result = "1"; -- else interp->result = "0"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(1)); -+ else -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); - - return TCL_OK; - } -@@ -1421,19 +1386,18 @@ - { - #if defined(_PROGRESS_) - -- sprintf(interp->result,"%g", -- static_cast<double>(CT->ProgressCounter())); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(CT->ProgressCounter()))); - - #else - -- interp->result = "1.0"; -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(1.0)); - - #endif - - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: goblin solver %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: goblin solver ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -1450,12 +1414,14 @@ - try - { - unsigned long lineNumber = atol(argv[3]); -- MSG->GetLineByNumber(transscriptName,interp->result, TCL_RESULT_SIZE,lineNumber); -+ const char *s = Tcl_GetStringResult(interp); -+ size_t slen = strlen(s); -+ MSG->GetLineByNumber(transscriptName,(char *)s,slen,lineNumber); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Could not access transcript file"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Could not access transcript file", -1)); - return TCL_ERROR; - } - } -@@ -1466,12 +1432,11 @@ - { - unsigned long lineNumber = atol(argv[3]); - MSG->LoadBuffer(transscriptName,lineNumber); -- interp->result = ""; - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Could not access transcript file"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Could not access transcript file", -1)); - return TCL_ERROR; - } - } -@@ -1484,39 +1449,37 @@ - - if (strcmp(argv[2],"#bufferSize")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(MSG->GetBufferSize())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(MSG->GetBufferSize()))); - return TCL_OK; - } - - if (strcmp(argv[2],"#numLines")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(MSG->GetNumLines(transscriptName))); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(MSG->GetNumLines(transscriptName)))); - return TCL_OK; - } - - if (strcmp(argv[2],"restart")==0) - { - MSG -> Restart(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"reset")==0) - { - MSG -> MsgReset(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"eof")==0) - { -- interp->result = const_cast<char*>((MSG->MsgEndOfBuffer()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(MSG->MsgEndOfBuffer() ? 1 : 0)); - return TCL_OK; - } - - if (strcmp(argv[2],"void")==0) - { -- interp->result = const_cast<char*>((MSG->MsgVoid()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(MSG->MsgVoid() ? 1 : 0)); - return TCL_OK; - } - -@@ -1525,12 +1488,11 @@ - try - { - MSG -> MsgSkip(); -- interp->result = ""; - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Message queue is empty"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Message queue is empty", -1)); - return TCL_ERROR; - } - } -@@ -1539,12 +1501,13 @@ - { - try - { -- MSG->MsgText(interp->result, TCL_RESULT_SIZE); -+ const char *s = Tcl_GetStringResult(interp); -+ MSG->MsgText((char *)s, strlen(s)); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Message queue is empty"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Message queue is empty", -1)); - return TCL_ERROR; - } - } -@@ -1554,12 +1517,12 @@ - try - { - msgType ret = MSG->MsgClass(); -- sprintf(interp->result,"%d",ret); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(ret)); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Message queue is empty"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Message queue is empty", -1)); - return TCL_ERROR; - } - } -@@ -1569,12 +1532,12 @@ - try - { - TModule ret = MSG->MsgModule(); -- sprintf(interp->result,"%lu",static_cast<unsigned long>(ret)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(ret))); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Message queue is empty"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Message queue is empty", -1)); - return TCL_ERROR; - } - } -@@ -1584,12 +1547,12 @@ - try - { - THandle ret = MSG->MsgHandle(); -- sprintf(interp->result,"%lu",static_cast<unsigned long>(ret)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(ret))); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Message queue is empty"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Message queue is empty", -1)); - return TCL_ERROR; - } - } -@@ -1599,12 +1562,12 @@ - try - { - int ret = MSG->MsgLevel(); -- sprintf(interp->result,"%d",ret); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(ret)); - return TCL_OK; - } - catch (ERRejected) - { -- interp->result = "Message queue is empty"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Message queue is empty", -1)); - return TCL_ERROR; - } - } -@@ -1617,16 +1580,18 @@ - return TCL_ERROR; - } - -- size_t numChars = MSG->TraceFilename(interp->result, TCL_RESULT_SIZE); -+ const char *s = Tcl_GetStringResult(interp); -+ size_t slen = strlen(s); -+ size_t numChars = MSG->TraceFilename((char *)s, slen); - - if (numChars==0) - { -- interp->result = "Tcl result size overflow"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Tcl result size overflow", -1)); - return TCL_ERROR; - } -- else if (numChars>=TCL_RESULT_SIZE) -+ else if (numChars>=slen) - { -- interp->result = "No more queued trace files"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("No more queued trace files", -1)); - return TCL_ERROR; - } - -@@ -1635,25 +1600,23 @@ - - if (strcmp(argv[2],"blocked")==0) - { -- interp->result = const_cast<char*>((MSG->TraceEvent()) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(MSG->TraceEvent() ? 1 : 0)); - return TCL_OK; - } - - if (strcmp(argv[2],"unblock")==0) - { - MSG -> TraceUnblock(); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: goblin messenger %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: goblin messenger ", argv[2], (char *)NULL); - return TCL_ERROR; - } - - if (strcmp(argv[1],"configure")==0) - { - CT->Configure(argc,(const char**)argv); -- interp->result = ""; - return TCL_OK; - } - -@@ -1670,7 +1633,6 @@ - if (strcmp(argv[2],"reset")==0) - { - CT -> ResetTimers(); -- interp->result = ""; - return TCL_OK; - } - -@@ -1678,7 +1640,7 @@ - - if (i>=NoTimer) - { -- sprintf(interp->result,"No such timer: %u",i); -+ Tcl_AppendResult(interp, "No such timer: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -1694,12 +1656,11 @@ - - if (j>=NoTimer) - { -- sprintf(interp->result,"No such Timer: %u",j); -+ Tcl_AppendResult(interp, "No such timer: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"%g", -- static_cast<double>(CT->globalTimer[i]->ChildTime(TTimer(j)))); -+ Tcl_SetObjResult(interp, Tcl_NewDoubleObj(static_cast<double>(CT->globalTimer[i]->ChildTime(TTimer(j))))); - return TCL_OK; - } - -@@ -1712,67 +1673,58 @@ - if (strcmp(argv[3],"reset")==0) - { - CT -> globalTimer[i] -> Reset(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[3],"enable")==0) - { - CT -> globalTimer[i] -> Enable(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[3],"disable")==0) - { - CT -> globalTimer[i] -> Disable(); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[3],"label")==0) - { -- sprintf(interp->result,"%s", -- listOfTimers[i].timerName); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfTimers[i].timerName, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"acc")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(CT->globalTimer[i]->AccTime())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(CT->globalTimer[i]->AccTime()))); - return TCL_OK; - } - - if (strcmp(argv[3],"av")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(CT->globalTimer[i]->AvTime())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(CT->globalTimer[i]->AvTime()))); - return TCL_OK; - } - - if (strcmp(argv[3],"max")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(CT->globalTimer[i]->MaxTime())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(CT->globalTimer[i]->MaxTime()))); - return TCL_OK; - } - - if (strcmp(argv[3],"min")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(CT->globalTimer[i]->MinTime())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(CT->globalTimer[i]->MinTime()))); - return TCL_OK; - } - - if (strcmp(argv[3],"prev")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(CT->globalTimer[i]->PrevTime())); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(CT->globalTimer[i]->PrevTime()))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: goblin timer <index> %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: goblin timer <index> ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -1790,71 +1742,65 @@ - - if (i>=NoModule) - { -- sprintf(interp->result,"No such module: %d",i); -+ Tcl_AppendResult(interp, "No such module: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - - if (strcmp(argv[3],"name")==0) - { -- sprintf(interp->result,"%s",listOfModules[i].moduleName); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfModules[i].moduleName, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"timer")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfModules[i].moduleTimer)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfModules[i].moduleTimer))); - return TCL_OK; - } - - if (strcmp(argv[3],"implementor1")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfModules[i].implementor1)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfModules[i].implementor1))); - return TCL_OK; - } - - if (strcmp(argv[3],"implementor2")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfModules[i].implementor2)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfModules[i].implementor2))); - return TCL_OK; - } - - if (strcmp(argv[3],"encoding_date")==0) - { -- sprintf(interp->result,"%s",listOfModules[i].encodingDate); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfModules[i].encodingDate, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"revision_date")==0) - { -- sprintf(interp->result,"%s",listOfModules[i].revisionDate); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfModules[i].revisionDate, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"original_reference")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfModules[i].originalReference)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfModules[i].originalReference))); - return TCL_OK; - } - - if (strcmp(argv[3],"authors_reference")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfModules[i].authorsReference)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfModules[i].authorsReference))); - return TCL_OK; - } - - if (strcmp(argv[3],"text_book")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfModules[i].textBook)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfModules[i].textBook))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: goblin module <index> %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: goblin module <index> ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -1870,29 +1816,29 @@ - - if (i>=NoAuthor) - { -- sprintf(interp->result,"No such author: %d",i); -+ Tcl_AppendResult(interp, "No such author: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - - if (strcmp(argv[3],"name")==0) - { -- sprintf(interp->result,"%s",listOfAuthors[i].name); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfAuthors[i].name, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"affiliation")==0) - { -- sprintf(interp->result,"%s",listOfAuthors[i].affiliation); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfAuthors[i].affiliation, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"e_mail")==0) - { -- sprintf(interp->result,"%s",listOfAuthors[i].e_mail); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfAuthors[i].e_mail, -1)); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: goblin author <index> %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: goblin author <index> ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -1908,67 +1854,65 @@ - - if (i>=NoReference) - { -- sprintf(interp->result,"No such reference: %d",i); -+ Tcl_AppendResult(interp, "No such reference: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - - if (strcmp(argv[3],"key")==0) - { -- sprintf(interp->result,"%s",listOfReferences[i].refKey); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfReferences[i].refKey, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"authors")==0) - { -- sprintf(interp->result,"%s",listOfReferences[i].authors); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfReferences[i].authors, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"title")==0) - { -- sprintf(interp->result,"%s",listOfReferences[i].title); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfReferences[i].title, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"type")==0) - { -- sprintf(interp->result,"%s",listOfReferences[i].type); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfReferences[i].type, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"collection")==0) - { -- sprintf(interp->result,"%s",listOfReferences[i].collection); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfReferences[i].collection, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"editors")==0) - { -- sprintf(interp->result,"%s",listOfReferences[i].editors); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfReferences[i].editors, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"volume")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfReferences[i].volume)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfReferences[i].volume))); - return TCL_OK; - } - - if (strcmp(argv[3],"publisher")==0) - { -- sprintf(interp->result,"%s",listOfReferences[i].publisher); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(listOfReferences[i].publisher, -1)); - return TCL_OK; - } - - if (strcmp(argv[3],"year")==0) - { -- sprintf(interp->result,"%lu", -- static_cast<unsigned long>(listOfReferences[i].year)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(listOfReferences[i].year))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: goblin reference <index> %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: goblin reference <index> ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -1982,31 +1926,31 @@ - - if (strcmp(argv[1],"size")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(goblinHeapSize)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(goblinHeapSize))); - return TCL_OK; - } - - if (strcmp(argv[1],"maxsize")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(goblinMaxSize)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(goblinMaxSize))); - return TCL_OK; - } - - if (strcmp(argv[1],"#allocs")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(goblinNAllocs)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(goblinNAllocs))); - return TCL_OK; - } - - if (strcmp(argv[1],"#objects")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(goblinNObjects)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(goblinNObjects))); - return TCL_OK; - } - - if (strcmp(argv[1],"#fragments")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(goblinNFragments)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(goblinNFragments))); - return TCL_OK; - } - -@@ -2014,25 +1958,25 @@ - - if (strcmp(argv[1],"#timers")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(NoTimer)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(NoTimer))); - return TCL_OK; - } - - if (strcmp(argv[1],"#authors")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(NoAuthor)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(NoAuthor))); - return TCL_OK; - } - - if (strcmp(argv[1],"#modules")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(NoModule)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(NoModule))); - return TCL_OK; - } - - if (strcmp(argv[1],"#references")==0) - { -- sprintf(interp->result,"%lu",static_cast<unsigned long>(NoReference)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(static_cast<unsigned long>(NoReference))); - return TCL_OK; - } - -@@ -2044,7 +1988,6 @@ - CT->logStream = new ofstream(transscriptName); - MSG -> Restart(); - -- interp->result = ""; - return TCL_OK; - } - } -@@ -2053,7 +1996,7 @@ - return Goblin_Propagate_Exception(interp); - } - -- sprintf(interp->result,"Unknown option: goblin %s",argv[1]); -+ Tcl_AppendResult(interp, "Unknown option: goblin ", argv[1], (char *)NULL); - return TCL_ERROR; - } - -@@ -2083,9 +2026,11 @@ - int Goblin_Generic_Cmd (managedObject *X,Tcl_Interp* interp,int argc, - _CONST_QUAL_ char* argv[]) throw(ERRejected,ERRange) - { -+ Tcl_ResetResult(interp); -+ - if (argc<2) - { -- interp->result = "Missing arguments"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing arguments", -1)); - return TCL_ERROR; - } - -@@ -2098,7 +2043,6 @@ - } - - CT -> SetMaster(X->Handle()); -- interp->result = ""; - return TCL_OK; - } - -@@ -2110,7 +2054,7 @@ - return TCL_ERROR; - } - -- sprintf(interp->result,"%ld",X->Handle()); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(X->Handle())); - return TCL_OK; - } - -@@ -2123,7 +2067,6 @@ - } - - X -> Display(); -- interp->result = ""; - return TCL_OK; - } - -@@ -2144,11 +2087,11 @@ - strcmp(argv[2],"-balanced")==0 - ) - { -- interp->result = "0"; -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(0)); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown object attribute: %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown object attribute: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -2163,11 +2106,10 @@ - if (strcmp(argv[2],"name")==0) - { - X -> SetLabel((char*)argv[3]); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s set %s",argv[0],argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[0], " set ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -2186,46 +2128,43 @@ - if (argc>4) opt = atol(argv[4]); - - X -> ExportToAscii(argv[3],opt); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"goblet")==0 || strcmp(argv[2],"tk")==0) - { - X -> ExportToTk(argv[3]); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"xfig")==0) - { - X -> ExportToXFig(argv[3]); -- interp->result = ""; - return TCL_OK; - } - - if (strcmp(argv[2],"dot")==0) - { - X -> ExportToDot(argv[3]); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown export format: %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown export format: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s",argv[1]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[1], (char *)NULL); - return TCL_ERROR; - } - - - int Goblin_Propagate_Exception (Tcl_Interp* interp) throw() - { -+ Tcl_ResetResult(interp); -+ - if (CT->savedErrorMsgType != NO_MSG) - { -- sprintf(interp->result,"%s - %s", -- CT->savedErrorMethodName,CT->savedErrorDescription); -+ Tcl_AppendResult(interp, CT->savedErrorMethodName, " - ", CT->savedErrorDescription, (char *)NULL); - - CT->savedErrorMsgType = NO_MSG; - } -@@ -2233,7 +2172,7 @@ - { - CT->Error(MSG_WARN,NoHandle,"Goblin_Propagate_Exception", - "An unknown exception has occured"); -- sprintf(interp->result,"An unknown exception has occured"); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("An unknown exception has occured", -1)); - } - - CT -> logLevel = 0; -@@ -2243,14 +2182,16 @@ - - void WrongNumberOfArguments(Tcl_Interp* interp,int argc,_CONST_QUAL_ char* argv[]) throw() - { -- sprintf(interp->result,"Wrong number of arguments for command \"%s",argv[0]); -+ Tcl_ResetResult(interp); -+ -+ Tcl_AppendResult(interp, "Wrong number of arguments for command \"", argv[0], (char *)NULL); - - for (int i=1;i<argc;++i) - { -- sprintf(interp->result + strlen(interp->result)," %s",argv[i]); -+ Tcl_AppendResult(interp, " ", argv[i], (char *)NULL); - } - -- sprintf(interp->result + strlen(interp->result),"\""); -+ Tcl_AppendResult(interp, "\"", (char *)NULL); - } - - -@@ -2264,7 +2205,7 @@ - } - else - { -- interp->result = "Missing number of graph nodes"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing number of graph nodes", -1)); - return NoNode; - } - } ---- shell_src/goshDisplayProxy.cpp.orig 2013-06-04 18:16:00.000000000 +0200 -+++ shell_src/goshDisplayProxy.cpp 2013-06-04 18:16:07.000000000 +0200 -@@ -17,6 +17,8 @@ - int Goblin_Graph_Display_Proxy_Cmd (ClientData clientData,Tcl_Interp* interp, - int argc,_CONST_QUAL_ char* argv[]) - { -+ Tcl_ResetResult(interp); -+ - graphDisplayProxy* DP = reinterpret_cast<graphDisplayProxy*>(clientData); - - if (setjmp(goblinThreadData[Goblin_MyThreadIndex()].jumpBuffer) != 0) -@@ -25,7 +27,7 @@ - } - else if (argc==1) - { -- interp->result = "Missing object command"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing object command", -1)); - return TCL_ERROR; - } - else try -@@ -33,7 +35,6 @@ - if (strcmp(argv[1],"synchronize")==0) - { - DP -> Synchronize(); -- interp->result = ""; - return TCL_OK; - } - -@@ -41,23 +42,23 @@ - { - if (strcmp(argv[2],"-canvasWidth")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasWidth()); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasWidth())); - return TCL_OK; - } - - if (strcmp(argv[2],"-canvasHeight")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasHeight()); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasHeight())); - return TCL_OK; - } - - if (strcmp(argv[2],"-canvasArrowSize")==0) - { -- sprintf(interp->result,"%g",DP->CanvasArrowSize()); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasArrowSize())); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s",argv[2]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[2], (char *)NULL); - return TCL_ERROR; - } - -@@ -65,7 +66,7 @@ - { - if (argc==2) - { -- interp->result = "Missing node index"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing node index", -1)); - return TCL_ERROR; - } - -@@ -73,7 +74,7 @@ - - if (argc<4) - { -- interp->result = "Missing command option"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing command option", -1)); - return TCL_ERROR; - } - -@@ -81,39 +82,43 @@ - { - if (strcmp(argv[4],"-mapped")==0) - { -- sprintf(interp->result,"%s",DP->IsNodeMapped(v) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(DP->IsNodeMapped(v) ? 1 : 0)); - return TCL_OK; - } - - if (strcmp(argv[4],"-canvasWidth")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasNodeWidth(v)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasNodeWidth(v))); - return TCL_OK; - } - - if (strcmp(argv[4],"-canvasHeight")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasNodeHeight(v)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasNodeHeight(v))); - return TCL_OK; - } - - if (strcmp(argv[4],"-label")==0) - { -- DP -> CompoundNodeLabel(interp->result,256,v); -+ char tmp[256]; -+ DP -> CompoundNodeLabel(tmp,256,v); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(tmp, -1)); - return TCL_OK; - } - - if (strcmp(argv[4],"-colour")==0) - { -- DP -> CanvasNodeColour(interp->result,v); -+ char tmp[256]; -+ DP -> CanvasNodeColour(tmp,v); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(tmp, -1)); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s",argv[4]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -121,7 +126,7 @@ - { - if (argc==2) - { -- interp->result = "Missing arc index"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing arc index", -1)); - return TCL_ERROR; - } - -@@ -129,7 +134,7 @@ - - if (argc<4) - { -- interp->result = "Missing command option"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing command option", -1)); - return TCL_ERROR; - } - -@@ -137,44 +142,48 @@ - { - if (strcmp(argv[4],"-mapped")==0) - { -- sprintf(interp->result,"%s",DP->IsArcMapped(a) ? "1" : "0"); -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(DP->IsArcMapped(a) ? 1 : 0)); - return TCL_OK; - } - - if (strcmp(argv[4],"-canvasPortX")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasCXOfPort(a)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasCXOfPort(a))); - return TCL_OK; - } - - if (strcmp(argv[4],"-canvasPortY")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasCYOfPort(a)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasCYOfPort(a))); - return TCL_OK; - } - - if (strcmp(argv[4],"-label")==0) - { -- DP -> CompoundArcLabel(interp->result,256,a); -+ char tmp[256]; -+ DP -> CompoundArcLabel(tmp,256,a); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(tmp, -1)); - return TCL_OK; - } - - if (strcmp(argv[4],"-colour")==0) - { -- DP -> CanvasArcColour(interp->result,a); -+ char tmp[256]; -+ DP -> CanvasArcColour(tmp,a); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(tmp, -1)); - return TCL_OK; - } - - if (strcmp(argv[4],"-width")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasArcWidth(a)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasArcWidth(a))); - return TCL_OK; - } - - if (strcmp(argv[4],"-dash")==0) - { - const char* dashMode[] = {""," -dash ."," -dash -"," -dash -."}; -- sprintf(interp->result,"%s",dashMode[DP->CanvasArcDashMode(a)]); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj(dashMode[DP->CanvasArcDashMode(a)], -1)); - return TCL_OK; - } - -@@ -184,35 +193,41 @@ - { - case ARROW_BOTH: - { -- interp->result = "both"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("both", -1)); - return TCL_OK; - } - case ARROW_FORWARD: - { -- interp->result = "last"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("last", -1)); - return TCL_OK; - } - case ARROW_BACKWARD: - { -- interp->result = "first"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("first", -1)); - return TCL_OK; - } - case ARROW_NONE: - { -- interp->result = "none"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("none", -1)); - return TCL_OK; - } - } - -+#if TCL_MAJOR_VERSION > 8 || (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION > 5) -+ Tcl_Obj *resObj = Tcl_NewObj(); -+ Tcl_AppendPrintfToObj(resObj, "Unknown arrow display mode: %d",DP->ArrowDirections(a)); -+ Tcl_SetObjResult(interp, resObj); -+#else - sprintf(interp->result,"Unknown arrow display mode: %d",DP->ArrowDirections(a)); -+#endif - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s",argv[4]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -220,7 +235,7 @@ - { - if (argc==2) - { -- interp->result = "Missing layout point index"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing layout point index", -1)); - return TCL_ERROR; - } - -@@ -228,7 +243,7 @@ - - if (argc<4) - { -- interp->result = "Missing command option"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing command option", -1)); - return TCL_ERROR; - } - -@@ -236,17 +251,17 @@ - { - if (strcmp(argv[4],"-canvasX")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasCXOfPoint(p)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasCXOfPoint(p))); - return TCL_OK; - } - - if (strcmp(argv[4],"-canvasY")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasCYOfPoint(p)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasCYOfPoint(p))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s",argv[4]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -@@ -254,16 +269,15 @@ - { - if (argc<6) - { -- interp->result = "Missing coordinate values"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing coordinate values", -1)); - return TCL_ERROR; - } - - DP -> PlaceLayoutPoint(p,atol(argv[4]),atol(argv[5])); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -@@ -271,7 +285,7 @@ - { - if (argc==2) - { -- interp->result = "Missing arc index"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing arc index", -1)); - return TCL_ERROR; - } - -@@ -279,7 +293,7 @@ - - if (argc<4) - { -- interp->result = "Missing command option"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing command option", -1)); - return TCL_ERROR; - } - -@@ -287,17 +301,17 @@ - { - if (strcmp(argv[4],"-canvasX")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasCXOfArcLabelAnchor(a)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasCXOfArcLabelAnchor(a))); - return TCL_OK; - } - - if (strcmp(argv[4],"-canvasY")==0) - { -- sprintf(interp->result,"%ld",DP->CanvasCYOfArcLabelAnchor(a)); -+ Tcl_SetObjResult(interp, Tcl_NewLongObj(DP->CanvasCYOfArcLabelAnchor(a))); - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s",argv[4]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[4], (char *)NULL); - return TCL_ERROR; - } - -@@ -305,20 +319,19 @@ - { - if (argc<6) - { -- interp->result = "Missing coordinate values"; -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("Missing coordinate values", -1)); - return TCL_ERROR; - } - - DP -> PlaceArcLabelAnchor(a,atol(argv[4]),atol(argv[5])); -- interp->result = ""; - return TCL_OK; - } - -- sprintf(interp->result,"Unknown option: %s",argv[3]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[3], (char *)NULL); - return TCL_ERROR; - } - -- sprintf(interp->result,"Unknown option: %s",argv[1]); -+ Tcl_AppendResult(interp, "Unknown option: ", argv[1], (char *)NULL); - return TCL_ERROR; - } - catch (...) ---- glpk_wrap/glpkInit.cpp.orig 2013-06-05 09:18:26.000000000 +0200 -+++ glpk_wrap/glpkInit.cpp 2013-06-05 09:19:08.000000000 +0200 -@@ -29,7 +29,7 @@ - - if (Tcl_PkgRequire(interp,"goblin","2.6",0)==NULL) - { -- sprintf(interp->result,"GOBLIN must be loaded before the GLPK plugin"); -+ Tcl_SetObjResult(interp, Tcl_NewStringObj("GOBLIN must be loaded before the GLPK plugin", -1)); - return TCL_ERROR; - } - diff --git a/math/goblin/pkg-descr b/math/goblin/pkg-descr deleted file mode 100644 index 20158fc1b2b2..000000000000 --- a/math/goblin/pkg-descr +++ /dev/null @@ -1,21 +0,0 @@ -GOBLIN is a C++ class library focussed on graph optimization and network -programming problems. It deals with all of the standard graph optimization -problems discussed by textbooks and in courses on combinatorial optimization. - -Today, GOBLIN provides strongly polynomial algorithms for the following graph -optimization problems: - - Shortest paths in graphs and digraphs with negative lengths. - - Negative cycles and minimum mean cycles. - - Strong and 2-connected components. - - Minimum spanning trees, arborescences and 1-trees. - - Maximum st-flows, feasible circulations and b-flows. - - Min-cost st-flows, b-flows and circulations. - - Assignment problems of any kind. - - 1-matchings, b-matchings, capacitated b-matchings, f-factors and - degree-constrained subgraphs. - - Directed and undirected Chinese postman problems, T-joins. - -The library also includes methods for NP-hard problems, namely TSP, ATSP, -stable sets and graph colouring. - -WWW: http://goblin2.sourceforge.net/ diff --git a/math/goblin/pkg-plist b/math/goblin/pkg-plist deleted file mode 100644 index a11afb77de52..000000000000 --- a/math/goblin/pkg-plist +++ /dev/null @@ -1,230 +0,0 @@ -bin/goblet -bin/goblin-display -bin/gosh -include/goblin/abstractBalanced.h -include/goblin/abstractBigraph.h -include/goblin/abstractDigraph.h -include/goblin/abstractGraph.h -include/goblin/abstractMixedGraph.h -include/goblin/abstractSubgraph.h -include/goblin/attribute.h -include/goblin/attributePool.h -include/goblin/auxiliaryNetwork.h -include/goblin/balancedDigraph.h -include/goblin/balancedToBalanced.h -include/goblin/basicHeap.h -include/goblin/bigraphToDigraph.h -include/goblin/binaryHeap.h -include/goblin/branchAsyTSP.h -include/goblin/branchColour.h -include/goblin/branchMIP.h -include/goblin/branchMaxCut.h -include/goblin/branchScheme.h -include/goblin/branchStable.h -include/goblin/branchSymmTSP.h -include/goblin/canvasBuilder.h -include/goblin/complement.h -include/goblin/configuration.h -include/goblin/denseBigraph.h -include/goblin/denseDigraph.h -include/goblin/denseGraph.h -include/goblin/denseInclude.h -include/goblin/denseRepresentation.h -include/goblin/dictionary.h -include/goblin/digraphToDigraph.h -include/goblin/disjointFamily.h -include/goblin/dynamicQueue.h -include/goblin/dynamicStack.h -include/goblin/exportToDot.h -include/goblin/exportToTk.h -include/goblin/exportToXFig.h -include/goblin/fibonacciHeap.h -include/goblin/fileExport.h -include/goblin/fileImport.h -include/goblin/globals.h -include/goblin/glpkWrapper.h -include/goblin/goblin.h -include/goblin/goblinController.h -include/goblin/goblinQueue.h -include/goblin/gosh.h -include/goblin/graphDisplayProxy.h -include/goblin/graphInclude.h -include/goblin/graphRepresentation.h -include/goblin/graphToBalanced.h -include/goblin/hashTable.h -include/goblin/ilpWrapper.h -include/goblin/incrementalGeometry.h -include/goblin/indexSet.h -include/goblin/investigator.h -include/goblin/lpSolver.h -include/goblin/managedObject.h -include/goblin/matrix.h -include/goblin/messenger.h -include/goblin/mixedGraph.h -include/goblin/moduleGuard.h -include/goblin/movingLineModel.h -include/goblin/nestedFamily.h -include/goblin/networkSimplex.h -include/goblin/orthogonalGrid.h -include/goblin/segment.h -include/goblin/sequentialQueue.h -include/goblin/sequentialStack.h -include/goblin/shrinkingNetwork.h -include/goblin/sparseBigraph.h -include/goblin/sparseDigraph.h -include/goblin/sparseGraph.h -include/goblin/sparseInclude.h -include/goblin/sparseRepresentation.h -include/goblin/staticQueue.h -include/goblin/staticStack.h -include/goblin/stripeDissectionModel.h -include/goblin/subgraph.h -include/goblin/surfaceGraph.h -include/goblin/switchBaseTypes.h -include/goblin/timers.h -include/goblin/treeView.h -include/goblin/version.h -lib/goblin/LGPL -lib/goblin/arrowDown.gif -lib/goblin/arrowUp.gif -lib/goblin/binocs.gif -lib/goblin/browseDelete.gif -lib/goblin/browseEnable.gif -lib/goblin/browseEnable.png -lib/goblin/browseFirst.gif -lib/goblin/browseLast.gif -lib/goblin/browseMinus.gif -lib/goblin/browseNext.gif -lib/goblin/browsePlus.gif -lib/goblin/browsePrev.gif -lib/goblin/browserDefaults.tk -lib/goblin/browserLogOpt.tk -lib/goblin/browserOptions.tk -lib/goblin/browserTraceOpt.tk -lib/goblin/camera.gif -lib/goblin/convertArchive.tk -lib/goblin/delButton.gif -lib/goblin/editArcLabels.tk -lib/goblin/editColours.gif -lib/goblin/editDelete.gif -lib/goblin/editDelete.tk -lib/goblin/editEnable.gif -lib/goblin/editEnable.png -lib/goblin/editIncidences.gif -lib/goblin/editLabel.gif -lib/goblin/editMove.gif -lib/goblin/editNewArc.gif -lib/goblin/editNewNode.gif -lib/goblin/editNodeLabels.tk -lib/goblin/editPivot.tk -lib/goblin/editPred.gif -lib/goblin/editRandom.tk -lib/goblin/editRedirect.gif -lib/goblin/editRow.tk -lib/goblin/editVar.tk -lib/goblin/eraseButton.gif -lib/goblin/fileChanges.tk -lib/goblin/fileConvert.tk -lib/goblin/fileExport.tk -lib/goblin/fileImport.tk -lib/goblin/fileNewObject.tk -lib/goblin/fileOpen.gif -lib/goblin/fileOpen.tk -lib/goblin/filePrint.gif -lib/goblin/fileReset.gif -lib/goblin/fileSave.gif -lib/goblin/fileSaveAs.tk -lib/goblin/fileSupportedFormats.tk -lib/goblin/foldClose.gif -lib/goblin/foldOpen.gif -lib/goblin/gobletIcon.gif -lib/goblin/gobletTitle.gif -lib/goblin/infoAuthors.tk -lib/goblin/infoBibliography.tk -lib/goblin/infoModules.tk -lib/goblin/infoRessources.tk -lib/goblin/infoStatistics.tk -lib/goblin/infoTimers.tk -lib/goblin/layoutArcs.tk -lib/goblin/layoutLPOpt.tk -lib/goblin/layoutNodes.tk -lib/goblin/layoutNodes.tk.orig -lib/goblin/lightsGreen.gif -lib/goblin/lightsRed.gif -lib/goblin/lightsYellow.gif -lib/goblin/linkButton.gif -lib/goblin/logDynamic.gif -lib/goblin/logDynamic.png -lib/goblin/logEnable.gif -lib/goblin/logEnable.png -lib/goblin/logFirst.gif -lib/goblin/logFirst.png -lib/goblin/logLast.gif -lib/goblin/logLast.png -lib/goblin/logNext.gif -lib/goblin/logNext.png -lib/goblin/logPartial.gif -lib/goblin/logPlain.gif -lib/goblin/logPlain.png -lib/goblin/logPrev.gif -lib/goblin/logPrev.png -lib/goblin/logReset.gif -lib/goblin/logReset.png -lib/goblin/logSave.gif -lib/goblin/logSave.png -lib/goblin/logSearch.gif -lib/goblin/logSearch.png -lib/goblin/mainEditor.tk -lib/goblin/mainGoblet.tk -lib/goblin/mainIconbars.tk -lib/goblin/mainMessenger.tk -lib/goblin/mainStatus.tk -lib/goblin/mainTitle.tk -lib/goblin/mainWorkspace.tk -lib/goblin/menuBrowser.tk -lib/goblin/menuCompose.tk -lib/goblin/menuEdit.tk -lib/goblin/menuFile.tk -lib/goblin/menuInfo.tk -lib/goblin/menuLayout.tk -lib/goblin/menuOptimize.tk -lib/goblin/msgStop.gif -lib/goblin/msgWarn.gif -lib/goblin/newButton.gif -lib/goblin/objectLoad.gif -lib/goblin/objectLoad.png -lib/goblin/objectSave.gif -lib/goblin/objectSave.png -lib/goblin/okButton.gif -lib/goblin/optimizeDataStruct.tk -lib/goblin/optimizeLevel.tk -lib/goblin/optimizeMethods.tk -lib/goblin/solverInterrupt.gif -lib/goblin/solverInterrupt.png -lib/goblin/solverRestart.gif -lib/goblin/solverRestart.png -lib/goblin/solverStopped.gif -lib/goblin/solverStopped.png -lib/goblin/stepAuto.gif -lib/goblin/stepClock.gif -lib/goblin/stepClock2.gif -lib/goblin/stepInto.gif -lib/goblin/stepOut.gif -lib/goblin/stepOver.gif -lib/goblin/stepOver2.gif -lib/goblin/stepSingle.gif -lib/goblin/stepSingle2.gif -lib/goblin/tableauCol.gif -lib/goblin/tableauObj.gif -lib/goblin/tableauPivot.gif -lib/goblin/tableauRHS.gif -lib/goblin/tableauRow.gif -lib/goblin/tclLogo.gif -lib/goblin/testAutomation.tk -lib/goblin/toggleBrowser.gif -lib/goblin/toggleEditor.gif -lib/goblin/toggleScript.gif -lib/libglpk.a -lib/libglpk.so -lib/libgoblin.a -lib/libgoblin.so diff --git a/math/mosesdecoder/Makefile b/math/mosesdecoder/Makefile deleted file mode 100644 index 009e7c98a038..000000000000 --- a/math/mosesdecoder/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -# Created by: Dmitry Sivachenko <demon@FreeBSD.org> -# $FreeBSD$ - -PORTNAME= mosesdecoder -PORTVERSION= 2.1.1 -DISTVERSIONPREFIX= RELEASE- -PORTREVISION= 16 -CATEGORIES= math - -MAINTAINER= demon@FreeBSD.org -COMMENT= Statistical machine translation system - -BROKEN= fails to build -DEPRECATED= Broken for more than 6 months -EXPIRATION_DATE= 2019-05-08 - -BUILD_DEPENDS= bash:shells/bash \ - bjam:devel/boost-jam -LIB_DEPENDS= libboost_thread.so:devel/boost-libs \ - libRandLM.so:textproc/randlm \ - libirstlm.so:textproc/irstlm -RUN_DEPENDS= lmplz:textproc/kenlm - -USES= compiler:c++11-lang python shebangfix -USE_GITHUB= yes -GH_ACCOUNT= moses-smt -SHEBANG_REGEX= ./scripts/.*\.(sh|pl|perl|cgi) -SHEBANG_FILES= scripts/analysis/extract-target-trees.py \ - scripts/ems/support/mml-filter.py \ - scripts/training/flexibility_score.py \ - scripts/training/filter-rule-table.py \ - scripts/training/create_count_tables.py - -MAKE_ENV+= BOOST_BUILD_PATH=${WRKSRC}/jam-files/boost-build - -do-build: - cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} bjam --with-boost=${LOCALBASE} --with-irstlm=${LOCALBASE} --with-randlm=${LOCALBASE} --without-tcmalloc --notrace --toolset=${CHOSEN_COMPILER_TYPE} debug-symbols=off ${_MAKE_JOBS} - -do-install: - @${MKDIR} ${STAGEDIR}${DATADIR} - cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} bjam --with-boost=${LOCALBASE} --with-irstlm=${LOCALBASE} --with-randlm=${LOCALBASE} --without-tcmalloc --notrace --prefix=${STAGEDIR}${PREFIX} --install-scripts=${STAGEDIR}${DATADIR} --toolset=${CHOSEN_COMPILER_TYPE} debug-symbols=off ${_MAKE_JOBS} release - cd ${STAGEDIR}${PREFIX}/bin && ${RM} build_binary filter fragment lmplz query - -post-install: - @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/* - -.include <bsd.port.mk> diff --git a/math/mosesdecoder/distinfo b/math/mosesdecoder/distinfo deleted file mode 100644 index 0be6f30108cf..000000000000 --- a/math/mosesdecoder/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (moses-smt-mosesdecoder-RELEASE-2.1.1_GH0.tar.gz) = 4949a52181c3d6fad7b6920ddd3f0ce4f04b760699405ee4bf5caf9c53136efc -SIZE (moses-smt-mosesdecoder-RELEASE-2.1.1_GH0.tar.gz) = 14935528 diff --git a/math/mosesdecoder/files/patch-Jamroot b/math/mosesdecoder/files/patch-Jamroot deleted file mode 100644 index 51e52e16286c..000000000000 --- a/math/mosesdecoder/files/patch-Jamroot +++ /dev/null @@ -1,10 +0,0 @@ ---- Jamroot.orig 2014-09-02 16:03:01.000000000 +0400 -+++ Jamroot 2014-09-02 16:04:17.000000000 +0400 -@@ -77,7 +77,6 @@ - external-lib z ; - - lib dl : : <runtime-link>static:<link>static <runtime-link>shared:<link>shared ; --requirements += <library>dl ; - - - if ! [ option.get "without-tcmalloc" : : "yes" ] && [ test_library "tcmalloc_minimal" ] { diff --git a/math/mosesdecoder/files/patch-jam-files-sanity.jam b/math/mosesdecoder/files/patch-jam-files-sanity.jam deleted file mode 100644 index 8e131d38baab..000000000000 --- a/math/mosesdecoder/files/patch-jam-files-sanity.jam +++ /dev/null @@ -1,11 +0,0 @@ ---- jam-files/sanity.jam.orig 2014-08-30 10:44:53.000000000 +0400 -+++ jam-files/sanity.jam 2014-08-30 20:33:46.000000000 +0400 -@@ -162,7 +162,7 @@ rule boost-lib ( name macro : deps * ) { - - #Argument is e.g. 103600 - rule boost ( min-version ) { -- local cmd = "bash -c \"g++ "$(I-boost-include)" -dM -x c++ -E /dev/null -include boost/version.hpp 2>/dev/null |grep '#define BOOST_'\"" ; -+ local cmd = "bash -c \"CC "$(I-boost-include)" -dM -x c++ -E /dev/null -include boost/version.hpp 2>/dev/null |grep '#define BOOST_'\"" ; - local boost-shell = [ SHELL "$(cmd)" : exit-status ] ; - if $(boost-shell[2]) != 0 && $(CLEANING) = no { - echo Failed to run "$(cmd)" ; diff --git a/math/mosesdecoder/files/patch-lm-Jamfile b/math/mosesdecoder/files/patch-lm-Jamfile deleted file mode 100644 index 70c7ddf2888c..000000000000 --- a/math/mosesdecoder/files/patch-lm-Jamfile +++ /dev/null @@ -1,11 +0,0 @@ ---- lm/Jamfile.orig 2014-03-03 19:07:02.000000000 +0400 -+++ lm/Jamfile 2014-09-02 16:09:24.000000000 +0400 -@@ -17,8 +17,6 @@ - - import testing ; - --run left_test.cc kenlm /top//boost_unit_test_framework : : test.arpa ; --run model_test.cc kenlm /top//boost_unit_test_framework : : test.arpa test_nounk.arpa ; - run partial_test.cc kenlm /top//boost_unit_test_framework : : test.arpa ; - - exes = ; diff --git a/math/mosesdecoder/files/patch-util-Jamfile b/math/mosesdecoder/files/patch-util-Jamfile deleted file mode 100644 index 82852cfd1402..000000000000 --- a/math/mosesdecoder/files/patch-util-Jamfile +++ /dev/null @@ -1,10 +0,0 @@ ---- util/Jamfile.orig 2014-09-02 16:01:51.000000000 +0400 -+++ util/Jamfile 2014-09-02 16:01:53.000000000 +0400 -@@ -26,7 +26,6 @@ - unit-test bit_packing_test : bit_packing_test.cc kenutil /top//boost_unit_test_framework ; - run file_piece_test.o kenutil /top//boost_unit_test_framework : : file_piece.cc ; - unit-test read_compressed_test : read_compressed_test.o kenutil /top//boost_unit_test_framework ; --unit-test joint_sort_test : joint_sort_test.cc kenutil /top//boost_unit_test_framework ; - unit-test probing_hash_table_test : probing_hash_table_test.cc kenutil /top//boost_unit_test_framework ; - unit-test sorted_uniform_test : sorted_uniform_test.cc kenutil /top//boost_unit_test_framework ; - unit-test tokenize_piece_test : tokenize_piece_test.cc kenutil /top//boost_unit_test_framework ; diff --git a/math/mosesdecoder/pkg-descr b/math/mosesdecoder/pkg-descr deleted file mode 100644 index 92ad7bfda3f5..000000000000 --- a/math/mosesdecoder/pkg-descr +++ /dev/null @@ -1,7 +0,0 @@ -Moses is a statistical machine translation system that allows you to -automatically train translation models for any language pair. All you -need is a collection of translated texts (parallel corpus). Once you have a -trained model, an efficient search algorithm quickly finds the highest -probability translation among the exponential number of choices. - -WWW: http://www.statmt.org/moses/ diff --git a/math/mosesdecoder/pkg-plist b/math/mosesdecoder/pkg-plist deleted file mode 100644 index d8217312968e..000000000000 --- a/math/mosesdecoder/pkg-plist +++ /dev/null @@ -1,235 +0,0 @@ -bin/CreateOnDiskPt -bin/biconcor -bin/consolidate -bin/consolidate-direct -bin/consolidate-reverse -bin/evaluator -bin/extract -bin/extract-ghkm -bin/extract-lex -bin/extract-rules -bin/extractor -bin/generateSequences -bin/kbmira -bin/lexical-reordering-score -bin/lmbrgrid -bin/mert -bin/mira -bin/moses -bin/moses_chart -bin/pcfg-extract -bin/pcfg-score -bin/pro -bin/processLexicalTable -bin/processPhraseTable -bin/queryLexicalTable -bin/queryOnDiskPt -bin/queryPhraseTable -bin/relax-parse -bin/score -bin/sentence-bleu -bin/statistics -bin/symal -lib/libmert_lib.a -lib/libmira_lib.a -lib/libmoses.a -lib/libpcfg_common.a -%%DATADIR%%/OSM/OSM-Train.perl -%%DATADIR%%/OSM/extract-singletons.perl -%%DATADIR%%/OSM/flipAlignment.perl -%%DATADIR%%/README -%%DATADIR%%/Transliteration/clean.pl -%%DATADIR%%/Transliteration/corpusCreator.pl -%%DATADIR%%/Transliteration/prepare-transliteration-phrase-table.pl -%%DATADIR%%/Transliteration/threshold.pl -%%DATADIR%%/Transliteration/train-transliteration-module.pl -%%DATADIR%%/analysis/README -%%DATADIR%%/analysis/bootstrap-hypothesis-difference-significance.pl -%%DATADIR%%/analysis/extract-target-trees.py -%%DATADIR%%/analysis/nontranslated_words.pl -%%DATADIR%%/analysis/oov.pl -%%DATADIR%%/analysis/perllib/Error.pm -%%DATADIR%%/analysis/sentence-by-sentence.pl -%%DATADIR%%/analysis/sg2dot.perl -%%DATADIR%%/analysis/show-phrases-used.pl -%%DATADIR%%/analysis/smtgui/Corpus.pm -%%DATADIR%%/analysis/smtgui/README -%%DATADIR%%/analysis/smtgui/file-descriptions -%%DATADIR%%/analysis/smtgui/file-factors -%%DATADIR%%/analysis/smtgui/filter-phrase-table.pl -%%DATADIR%%/analysis/smtgui/newsmtgui.cgi -%%DATADIR%%/analysis/suspicious_tokenization.pl -%%DATADIR%%/analysis/weight-scan-summarize.sh -%%DATADIR%%/analysis/weight-scan.pl -%%DATADIR%%/ems/example/config.basic -%%DATADIR%%/ems/example/config.factored -%%DATADIR%%/ems/example/config.hierarchical -%%DATADIR%%/ems/example/config.syntax -%%DATADIR%%/ems/example/config.toy -%%DATADIR%%/ems/example/data/config.hierarchical -%%DATADIR%%/ems/example/data/nc-5k.en -%%DATADIR%%/ems/example/data/nc-5k.fr -%%DATADIR%%/ems/example/data/run.hierarchical.sh -%%DATADIR%%/ems/example/data/test-ref.en.sgm -%%DATADIR%%/ems/example/data/test-src.fr.sgm -%%DATADIR%%/ems/example/data/weight.ini -%%DATADIR%%/ems/experiment.machines -%%DATADIR%%/ems/experiment.meta -%%DATADIR%%/ems/experiment.perl -%%DATADIR%%/ems/fix-info.perl -%%DATADIR%%/ems/support/analysis.perl -%%DATADIR%%/ems/support/berkeley-process.sh -%%DATADIR%%/ems/support/berkeley-train.sh -%%DATADIR%%/ems/support/build-domain-file-from-subcorpora.perl -%%DATADIR%%/ems/support/build-sparse-features.perl -%%DATADIR%%/ems/support/consolidate-training-data.perl -%%DATADIR%%/ems/support/defaultconfig.py -%%DATADIR%%/ems/support/generic-multicore-parallelizer.perl -%%DATADIR%%/ems/support/generic-parallelizer.perl -%%DATADIR%%/ems/support/input-from-sgm.perl -%%DATADIR%%/ems/support/interpolate-lm.perl -%%DATADIR%%/ems/support/mml-filter.perl -%%DATADIR%%/ems/support/mml-filter.py -%%DATADIR%%/ems/support/mml-score.perl -%%DATADIR%%/ems/support/mml-train.perl -%%DATADIR%%/ems/support/prepare-fast-align.perl -%%DATADIR%%/ems/support/reference-from-sgm.perl -%%DATADIR%%/ems/support/remove-segmentation-markup.perl -%%DATADIR%%/ems/support/report-experiment-scores.perl -%%DATADIR%%/ems/support/run-command-on-multiple-refsets.perl -%%DATADIR%%/ems/support/run-wade.perl -%%DATADIR%%/ems/support/split-sentences.perl -%%DATADIR%%/ems/support/substitute-filtered-tables-and-weights.perl -%%DATADIR%%/ems/support/substitute-filtered-tables.perl -%%DATADIR%%/ems/support/substitute-weights.perl -%%DATADIR%%/ems/support/symmetrize-fast-align.perl -%%DATADIR%%/ems/support/wrap-xml.perl -%%DATADIR%%/ems/web/analysis.php -%%DATADIR%%/ems/web/analysis_diff.php -%%DATADIR%%/ems/web/base64.js -%%DATADIR%%/ems/web/bilingual-concordance.css -%%DATADIR%%/ems/web/close.gif -%%DATADIR%%/ems/web/comment.php -%%DATADIR%%/ems/web/diff.php -%%DATADIR%%/ems/web/favicon.ico -%%DATADIR%%/ems/web/general.css -%%DATADIR%%/ems/web/hierarchical-segmentation.css -%%DATADIR%%/ems/web/hierarchical-segmentation.js -%%DATADIR%%/ems/web/index.php -%%DATADIR%%/ems/web/javascripts/builder.js -%%DATADIR%%/ems/web/javascripts/controls.js -%%DATADIR%%/ems/web/javascripts/dragdrop.js -%%DATADIR%%/ems/web/javascripts/effects.js -%%DATADIR%%/ems/web/javascripts/prototype.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/lib/prototype.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/builder.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/controls.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/dragdrop.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/effects.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/scriptaculous.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/slider.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/sound.js -%%DATADIR%%/ems/web/javascripts/scriptaculous-js-1.8.3/src/unittest.js -%%DATADIR%%/ems/web/javascripts/scriptaculous.js -%%DATADIR%%/ems/web/javascripts/slider.js -%%DATADIR%%/ems/web/javascripts/sound.js -%%DATADIR%%/ems/web/javascripts/unittest.js -%%DATADIR%%/ems/web/lib.php -%%DATADIR%%/ems/web/overview.php -%%DATADIR%%/ems/web/progress.perl -%%DATADIR%%/ems/web/setup -%%DATADIR%%/ems/web/sgviz.js -%%DATADIR%%/ems/web/sgviz.php -%%DATADIR%%/ems/web/spinner.gif -%%DATADIR%%/fuzzy-match/compile.sh -%%DATADIR%%/fuzzy-match/create_xml.perl -%%DATADIR%%/generic/compound-splitter.perl -%%DATADIR%%/generic/extract-factors.pl -%%DATADIR%%/generic/extract-parallel.perl -%%DATADIR%%/generic/fsa-sample.fsa -%%DATADIR%%/generic/fsa2plf.pl -%%DATADIR%%/generic/giza-parallel.perl -%%DATADIR%%/generic/lopar2pos.pl -%%DATADIR%%/generic/moses-parallel.pl -%%DATADIR%%/generic/mteval-v12.pl -%%DATADIR%%/generic/mteval-v13a.pl -%%DATADIR%%/generic/multi-bleu.perl -%%DATADIR%%/generic/ph_numbers.perl -%%DATADIR%%/generic/qsub-wrapper.pl -%%DATADIR%%/generic/reverse-alignment.perl -%%DATADIR%%/generic/score-parallel.perl -%%DATADIR%%/generic/strip-xml.perl -%%DATADIR%%/generic/trainlm-irst2.perl -%%DATADIR%%/generic/trainlm-lmplz.perl -%%DATADIR%%/recaser/detruecase.perl -%%DATADIR%%/recaser/recase.perl -%%DATADIR%%/recaser/train-recaser.perl -%%DATADIR%%/recaser/train-truecaser.perl -%%DATADIR%%/recaser/truecase.perl -%%DATADIR%%/share/nonbreaking_prefixes/README.txt -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.ca -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.cs -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.de -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.el -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.en -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.es -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.fr -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.hu -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.is -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.it -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.lv -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.nl -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.pl -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.pt -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.ro -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.ru -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.sk -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.sl -%%DATADIR%%/share/nonbreaking_prefixes/nonbreaking_prefix.sv -%%DATADIR%%/tokenizer/deescape-special-chars.perl -%%DATADIR%%/tokenizer/detokenizer.perl -%%DATADIR%%/tokenizer/escape-special-chars.perl -%%DATADIR%%/tokenizer/lowercase.perl -%%DATADIR%%/tokenizer/normalize-punctuation.perl -%%DATADIR%%/tokenizer/replace-unicode-punctuation.perl -%%DATADIR%%/tokenizer/tokenizer.perl -%%DATADIR%%/training/LexicalTranslationModel.pm -%%DATADIR%%/training/absolutize_moses_model.pl -%%DATADIR%%/training/analyse_moses_model.pl -%%DATADIR%%/training/binarize-model.perl -%%DATADIR%%/training/build-generation-table.perl -%%DATADIR%%/training/clean-corpus-n.perl -%%DATADIR%%/training/clone_moses_model.pl -%%DATADIR%%/training/combine_factors.pl -%%DATADIR%%/training/convert-moses-ini-to-v2.perl -%%DATADIR%%/training/corpus-sizes.perl -%%DATADIR%%/training/create_count_tables.py -%%DATADIR%%/training/exodus.perl -%%DATADIR%%/training/filter-model-given-input.pl -%%DATADIR%%/training/filter-rule-table.py -%%DATADIR%%/training/flexibility_score.py -%%DATADIR%%/training/get-lexical.perl -%%DATADIR%%/training/giza2bal.pl -%%DATADIR%%/training/mert-moses.pl -%%DATADIR%%/training/postprocess-lopar.perl -%%DATADIR%%/training/reduce-topt-count.pl -%%DATADIR%%/training/reduce_combine.pl -%%DATADIR%%/training/remove-orphan-phrase-pairs-from-reordering-table.perl -%%DATADIR%%/training/threshold-filter.perl -%%DATADIR%%/training/train-global-lexicon-model.perl -%%DATADIR%%/training/train-model.perl -%%DATADIR%%/training/wrappers/adam-suffix-array/suffix-array-create.sh -%%DATADIR%%/training/wrappers/adam-suffix-array/suffix-array-extract.sh -%%DATADIR%%/training/wrappers/berkeleyparsed2mosesxml.perl -%%DATADIR%%/training/wrappers/filter-excluded-lines.perl -%%DATADIR%%/training/wrappers/find-unparseable.perl -%%DATADIR%%/training/wrappers/mada-wrapper.perl -%%DATADIR%%/training/wrappers/make-factor-en-pos.mxpost.perl -%%DATADIR%%/training/wrappers/make-factor-pos.tree-tagger.perl -%%DATADIR%%/training/wrappers/make-factor-stem.perl -%%DATADIR%%/training/wrappers/make-factor-suffix.perl -%%DATADIR%%/training/wrappers/mosesxml2berkeleyparsed.perl -%%DATADIR%%/training/wrappers/parse-de-berkeley.perl -%%DATADIR%%/training/wrappers/parse-de-bitpar.perl -%%DATADIR%%/training/wrappers/parse-en-collins.perl -%%DATADIR%%/training/wrappers/syntax-hyphen-splitting.perl |