From 09e60f3b73047020b51e7816d3ee6b7d915ac65e Mon Sep 17 00:00:00 2001 From: Pietro Cerutti Date: Mon, 13 May 2013 12:14:01 +0000 Subject: [PATCH] - Fix build with Tcl 8.6 Reported by: miwi (Tcl/Tk 86 exp-run) --- devel/gcvs/Makefile | 3 +- devel/gcvs/files/patch-common_TclGlue.cpp | 59 +++++++++++++++++++++++ 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 devel/gcvs/files/patch-common_TclGlue.cpp diff --git a/devel/gcvs/Makefile b/devel/gcvs/Makefile index 4bf6b3b5bafc..648adf0c9ba3 100644 --- a/devel/gcvs/Makefile +++ b/devel/gcvs/Makefile @@ -1,5 +1,4 @@ # $FreeBSD$ -# $MCom: ports/devel/gcvs/Makefile,v 1.1 2006/10/07 17:10:25 ahze Exp $ PORTNAME= gcvs PORTVERSION= 1.0 @@ -26,7 +25,7 @@ CXXFLAGS:= ${CXXFLAGS:N-std=*:N:} CONFIGURE_ARGS= --with-tclinclude=${TCL_INCLUDEDIR} \ --with-tcllib=${TCL_LIBDIR} MAKE_JOBS_SAFE= yes -EXTRACT_AFTER_ARGS= --exclude cvsunix --exclude 'getline.[ch]' --exclude 'getopt*.[ch]' +EXTRACT_AFTER_ARGS=--exclude cvsunix --exclude 'getline.[ch]' --exclude 'getopt*.[ch]' post-patch: ${REINPLACE_CMD} -E '/get(line|opt1?)\.[ch]/d' \ diff --git a/devel/gcvs/files/patch-common_TclGlue.cpp b/devel/gcvs/files/patch-common_TclGlue.cpp new file mode 100644 index 000000000000..2fdcce4659a7 --- /dev/null +++ b/devel/gcvs/files/patch-common_TclGlue.cpp @@ -0,0 +1,59 @@ +--- common/TclGlue.cpp.bak 2002-12-20 15:38:25.000000000 +0100 ++++ common/TclGlue.cpp 2013-05-13 14:10:28.000000000 +0200 +@@ -452,7 +452,7 @@ + { + EntnodeData* data = entry->GetData(); + CStr path, fname, value; +- entry->GetNormalized(path, fname); ++ entry->GetNormalized(path, fname); + const char *res = Tcl_SetVar2(interp, argv[3], "name", fname, 0); + if(res == 0L) + goto err1; +@@ -1161,17 +1161,18 @@ + if(bTclFileStarted) + gCvsPrefs.SetTclFileRunning(false); + +- size_t len = strlen(fInterp->result); ++ const char *res = Tcl_GetStringResult(fInterp); ++ size_t len = strlen(res); + if(exitc == TCL_ERROR) + { +- cvs_errstr(fInterp->result, len); +- if(len != 0 && fInterp->result[len - 1] != '\n') ++ cvs_errstr(res, len); ++ if(len != 0 && res[len - 1] != '\n') + cvs_errstr("\n", 1); + } + else + { +- cvs_outstr(fInterp->result, len); +- if(len != 0 && fInterp->result[len - 1] != '\n') ++ cvs_outstr(res, len); ++ if(len != 0 && res[len - 1] != '\n') + cvs_outstr("\n", 1); + } + +@@ -1207,17 +1208,18 @@ + return false; + + int exitc = Tcl_EvalFile(fInterp, (char *)file); +- size_t len = strlen(fInterp->result); ++ const char *res = Tcl_GetStringResult(fInterp); ++ size_t len = strlen(res); + if(exitc == TCL_ERROR) + { +- cvs_errstr(fInterp->result, len); +- if(len != 0 && fInterp->result[len - 1] != '\n') ++ cvs_errstr(res, len); ++ if(len != 0 && res[len - 1] != '\n') + cvs_errstr("\n", 1); + } + else + { +- cvs_outstr(fInterp->result, len); +- if(len != 0 && fInterp->result[len - 1] != '\n') ++ cvs_outstr(res, len); ++ if(len != 0 && res[len - 1] != '\n') + cvs_outstr("\n", 1); + } +