summaryrefslogtreecommitdiff
path: root/math/goblin
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2019-05-09 15:03:38 +0000
committerRene Ladan <rene@FreeBSD.org>2019-05-09 15:03:38 +0000
commitb8b8fa5aeb1df824ed5374149d0a7377dd0c1cd9 (patch)
tree67d5f350f6c92b847a528d27db9960acb190f10e /math/goblin
parentRestore "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/goblin')
-rw-r--r--math/goblin/Makefile78
-rw-r--r--math/goblin/distinfo2
-rw-r--r--math/goblin/files/patch-Makefile88
-rw-r--r--math/goblin/files/patch-Makefile.conf20
-rw-r--r--math/goblin/files/patch-destructors395
-rw-r--r--math/goblin/files/patch-lib_src_indexSet.cpp10
-rw-r--r--math/goblin/files/patch-managedObject364
-rw-r--r--math/goblin/files/patch-tcl864214
-rw-r--r--math/goblin/pkg-descr21
-rw-r--r--math/goblin/pkg-plist230
10 files changed, 0 insertions, 5422 deletions
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