[blt] Fix for tcl8.6
Dmitrij S. Kryzhevich
krege at fedoraproject.org
Fri May 30 04:16:58 UTC 2014
commit 7323f5481568668842ad254a1848869201a3dc95
Author: Dmitrij S. Kryzhevich <krege at land.ru>
Date: Fri May 30 11:16:56 2014 +0700
Fix for tcl8.6
blt.spec | 7 +++-
blt2.4z-tcl8.6.patch | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 111 insertions(+), 1 deletions(-)
---
diff --git a/blt.spec b/blt.spec
index 2ccb242..fc432c5 100644
--- a/blt.spec
+++ b/blt.spec
@@ -5,7 +5,7 @@
Summary: Widget extension to the Tcl/Tk scripting language
Name: blt
Version: 2.4
-Release: 39.z%{?dist}
+Release: 40.z%{?dist}
License: MIT
Group: Development/Libraries
@@ -20,6 +20,7 @@ Patch4: blt2.4z-norpath.patch
Patch5: blt2.4z-noexactversion.patch
Patch6: blt2.4z-zoomstack.patch
Patch7: blt2.4z-tk8.5.6-patch
+Patch8: blt2.4z-tcl8.6.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
@@ -72,6 +73,7 @@ This package provides the html documentation for BLT
%patch5 -p0
%patch6 -p0
%patch7 -p1
+%patch8 -p1
# Fix bad interpreter path
sed -i -e 's#/usr/local/bin/tclsh#/usr/bin/tclsh#' demos/scripts/page.tcl
@@ -132,6 +134,9 @@ rm -rf $RPM_BUILD_ROOT
%{_includedir}/%{name}
%changelog
+* Fri May 30 2014 Dmitrij S. Kryzhevich <krege at land.ru> - 2.4-40.z
+- Fix for tcl-8.6.
+
* Fri May 30 2014 Dmitrij S. Kryzhevich <krege at land.ru> - 2.4-39.z
- Changed requires to require tcl-8.6.
diff --git a/blt2.4z-tcl8.6.patch b/blt2.4z-tcl8.6.patch
new file mode 100644
index 0000000..a006be0
--- /dev/null
+++ b/blt2.4z-tcl8.6.patch
@@ -0,0 +1,105 @@
+diff -urp blt2.4z/src/bltInt.h blt2.4z-tcl8.6/src/bltInt.h
+--- blt2.4z/src/bltInt.h 2002-08-22 03:13:12.000000000 +0700
++++ blt2.4z-tcl8.6/src/bltInt.h 2014-05-30 11:07:01.453354590 +0700
+@@ -26,6 +26,11 @@
+ #ifndef _BLT_INT_H
+ #define _BLT_INT_H
+
++#if (TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION < 6)
++#define Tcl_GetStringResult(interp) interp->result
++#define Tcl_SetResult(interp,val,val2) interp->result = val
++#endif
++
+ #ifdef WIN32
+ #define STRICT
+ #define WIN32_LEAN_AND_MEAN
+diff -urp blt2.4z/src/bltScrollbar.c blt2.4z-tcl8.6/src/bltScrollbar.c
+--- blt2.4z/src/bltScrollbar.c 2002-07-18 05:38:54.000000000 +0700
++++ blt2.4z-tcl8.6/src/bltScrollbar.c 2014-05-30 11:11:20.816689753 +0700
+@@ -534,7 +534,7 @@ ScrollbarWidgetCmd(clientData, interp, a
+ } else {
+ fraction = ((double)pixels / (double)barWidth);
+ }
+- sprintf(interp->result, "%g", fraction);
++ sprintf(Tcl_GetStringResult(interp), "%g", fraction);
+ } else if ((c == 'f') && (strncmp(argv[1], "fraction", length) == 0)) {
+ int x, y, pos, barWidth;
+ double fraction;
+diff -urp blt2.4z/src/bltTed.c blt2.4z-tcl8.6/src/bltTed.c
+--- blt2.4z/src/bltTed.c 2002-05-17 03:46:00.000000000 +0700
++++ blt2.4z-tcl8.6/src/bltTed.c 2014-05-30 11:10:17.774560163 +0700
+@@ -1504,7 +1504,7 @@ EditOp(dataPtr, interp, argc, argv)
+ tablePtr->flags |= ARRANGE_PENDING;
+ Tcl_DoWhenIdle(tablePtr->arrangeProc, tablePtr);
+ }
+- interp->result = Tk_PathName(tedPtr->tkwin);
++ Tcl_SetResult(interp, Tk_PathName(tedPtr->tkwin), TCL_STATIC);
+ tedPtr->flags |= LAYOUT_PENDING;
+ EventuallyRedraw(tedPtr);
+ return TCL_OK;
+@@ -1678,7 +1678,7 @@ SelectOp(dataPtr, interp, argc, argv)
+ tedPtr->activeRectArr[4].width = grip - 1;
+ tedPtr->activeRectArr[4].height = grip - 1;
+
+- interp->result = Tk_PathName(entryPtr->tkwin);
++ Tcl_SetResult(interp, Tk_PathName(tedPtr->tkwin), TCL_STATIC);
+ active = 1;
+ break;
+ }
+@@ -1751,7 +1751,7 @@ RepOp(dataPtr, interp, argc, argv)
+ tablePtr->flags |= ARRANGE_PENDING;
+ Tcl_DoWhenIdle(tablePtr->arrangeProc, tablePtr);
+ }
+- interp->result = Tk_PathName(tedPtr->tkwin);
++ Tcl_SetResult(interp, Tk_PathName(tedPtr->tkwin), TCL_STATIC);
+ tedPtr->flags |= LAYOUT_PENDING;
+ EventuallyRedraw(tedPtr);
+ return TCL_OK;
+diff -urp blt2.4z/src/bltVecMath.c blt2.4z-tcl8.6/src/bltVecMath.c
+--- blt2.4z/src/bltVecMath.c 2002-09-10 12:12:33.000000000 +0700
++++ blt2.4z-tcl8.6/src/bltVecMath.c 2014-05-30 11:12:53.846381976 +0700
+@@ -764,20 +764,20 @@ MathError(interp, value)
+ if ((errno == EDOM) || (value != value)) {
+ Tcl_AppendResult(interp, "domain error: argument not in valid range",
+ (char *)NULL);
+- Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", interp->result,
++ Tcl_SetErrorCode(interp, "ARITH", "DOMAIN", Tcl_GetStringResult(interp),
+ (char *)NULL);
+ } else if ((errno == ERANGE) || IS_INF(value)) {
+ if (value == 0.0) {
+ Tcl_AppendResult(interp,
+ "floating-point value too small to represent",
+ (char *)NULL);
+- Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", interp->result,
++ Tcl_SetErrorCode(interp, "ARITH", "UNDERFLOW", Tcl_GetStringResult(interp),
+ (char *)NULL);
+ } else {
+ Tcl_AppendResult(interp,
+ "floating-point value too large to represent",
+ (char *)NULL);
+- Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", interp->result,
++ Tcl_SetErrorCode(interp, "ARITH", "OVERFLOW", Tcl_GetStringResult(interp),
+ (char *)NULL);
+ }
+ } else {
+@@ -786,7 +786,7 @@ MathError(interp, value)
+ sprintf(buf, "%d", errno);
+ Tcl_AppendResult(interp, "unknown floating-point error, ",
+ "errno = ", buf, (char *)NULL);
+- Tcl_SetErrorCode(interp, "ARITH", "UNKNOWN", interp->result,
++ Tcl_SetErrorCode(interp, "ARITH", "UNKNOWN", Tcl_GetStringResult(interp),
+ (char *)NULL);
+ }
+ }
+diff -urp blt2.4z/src/tkScrollbar.c blt2.4z-tcl8.6/src/tkScrollbar.c
+--- blt2.4z/src/tkScrollbar.c 2002-05-17 03:46:01.000000000 +0700
++++ blt2.4z-tcl8.6/src/tkScrollbar.c 2014-05-30 11:13:40.004747237 +0700
+@@ -533,7 +533,7 @@ ScrollbarWidgetCmd(clientData, interp, a
+ } else {
+ fraction = ((double)pixels / (double)barWidth);
+ }
+- sprintf(interp->result, "%g", fraction);
++ sprintf(Tcl_GetStringResult(interp), "%g", fraction);
+ } else if ((c == 'f') && (strncmp(argv[1], "fraction", length) == 0)) {
+ int x, y, pos, barWidth;
+ double fraction;
More information about the scm-commits
mailing list