rpms/tix/F-9 tix-8.4.2-color_handling.patch, NONE, 1.1 tix.spec, 1.27, 1.28

Vitezslav Crhonek vcrhonek at fedoraproject.org
Mon Oct 20 11:20:48 UTC 2008


Author: vcrhonek

Update of /cvs/extras/rpms/tix/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2726

Modified Files:
	tix.spec 
Added Files:
	tix-8.4.2-color_handling.patch 
Log Message:
Fix handling of #color in the -defaults class option

tix-8.4.2-color_handling.patch:

--- NEW FILE tix-8.4.2-color_handling.patch ---
diff -up Tix8.4.2/generic/tixClass.c_old Tix8.4.2/generic/tixClass.c
--- Tix8.4.2/generic/tixClass.c_old	2004-03-28 04:44:56.000000000 +0200
+++ Tix8.4.2/generic/tixClass.c	2008-02-28 05:29:47.000000000 +0100
@@ -10,7 +10,7 @@
  * redistribution of this file, and for a DISCLAIMER OF ALL
  * WARRANTIES.
  *
- * $Id: tixClass.c,v 1.5 2004/03/28 02:44:56 hobbs Exp $
+ * $Id: tixClass.c,v 1.7 2008/02/28 04:29:47 hobbs Exp $
  */
 
 /*
@@ -130,19 +130,19 @@ CreateClassByName(interp, classRec)
     CONST84 char * classRec;
 {
     TixClassRecord * cPtr;
-    TixInterpState state;
+    Tcl_SavedResult state;
 
-    TixSaveInterpState(interp, &state);
     cPtr = GetClassByName(interp, classRec);
     if (cPtr == NULL) {
+	Tcl_SaveResult(interp, &state);
 	if (Tix_GlobalVarEval(interp, classRec, ":AutoLoad", (char*)NULL)
 	        == TCL_ERROR){
 	    cPtr = NULL;
 	} else {
 	    cPtr = GetClassByName(interp, classRec);
 	}
+	Tcl_RestoreResult(interp, &state);
     }
-    TixRestoreInterpState(interp, &state);
 
     return cPtr;
 }
@@ -1036,6 +1036,7 @@ SetupDefault(interp, cPtr, s)
     TixClassRecord * scPtr = cPtr->superClass;
     Tix_ListIterator li;
     Tix_SubwidgetDef *defPtr;
+    Tcl_Obj *objv[5];
 
     if (s && *s) {
 	if (Tcl_SplitList(interp, s, &listArgc, &listArgv) != TCL_OK) {
@@ -1109,20 +1110,34 @@ SetupDefault(interp, cPtr, s)
 
     /*
      * Add the defaults into the options database.
+     * Be efficient with objects, reusing the middle 2.
      */
+
+    objv[0] = Tcl_NewStringObj("option", -1); Tcl_IncrRefCount(objv[0]);
+    objv[1] = Tcl_NewStringObj("add", -1); Tcl_IncrRefCount(objv[1]);
+    objv[4] = Tcl_NewStringObj("widgetDefault", -1); Tcl_IncrRefCount(objv[4]);
     Tix_SimpleListIteratorInit(&li);
     for (Tix_SimpleListStart(&cPtr->subWDefs, &li);
 	 !Tix_SimpleListDone(&li);
 	 Tix_SimpleListNext (&cPtr->subWDefs, &li)) {
-
 	Tix_SubwidgetDef * p = (Tix_SubwidgetDef*)li.curr;
 
-	if (Tix_GlobalVarEval(interp, "option add *", cPtr->ClassName, 
-		p->spec, " [list ", p->value, "] widgetDefault",
-		NULL) != TCL_OK) {
+	objv[2] = Tcl_NewStringObj("*", -1);
+	Tcl_AppendStringsToObj(objv[2], cPtr->ClassName, p->spec, NULL);
+	objv[3] = Tcl_NewStringObj(p->value, -1);
+	Tcl_IncrRefCount(objv[2]);
+	Tcl_IncrRefCount(objv[3]);
+
+	if (Tcl_EvalObjv(interp, 5, objv, TCL_EVAL_GLOBAL) != TCL_OK) {
+	    for (i = 0; i < 5; i++) { Tcl_DecrRefCount(objv[i]); }
 	    goto error;
 	}
+	Tcl_DecrRefCount(objv[2]);
+	Tcl_DecrRefCount(objv[3]);
     }
+    Tcl_DecrRefCount(objv[0]);
+    Tcl_DecrRefCount(objv[1]);
+    Tcl_DecrRefCount(objv[4]);
 
     if (listArgv) {
 	ckfree((char*)listArgv);


Index: tix.spec
===================================================================
RCS file: /cvs/extras/rpms/tix/F-9/tix.spec,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- tix.spec	6 Feb 2008 16:28:39 -0000	1.27
+++ tix.spec	20 Oct 2008 11:20:18 -0000	1.28
@@ -8,13 +8,14 @@
 Name: tix
 Epoch: 1
 Version: %{tixmajor}.2
-Release: 5%{?dist}
+Release: 6%{?dist}
 License: BSD
 Group: Development/Languages
 URL: http://tix.sourceforge.net/
 Source0: http://dl.sourceforge.net/sourceforge/tix/Tix%{version}-src.tar.gz
 Patch0: tix-8.4.2-link.patch
 Patch1: tix-8.4.2-tcl8.5.patch
+Patch2: tix-8.4.2-color_handling.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Requires: tcl(abi) = 8.5
 Requires: tcl >= %{tcltkver}, tk >= %{tcltkver}
@@ -59,6 +60,7 @@
 %setup -q -n Tix%{version}
 %patch0 -p1 -b .link
 %patch1 -p1 -b .err
+%patch2 -p1 -b .color_handling
 
 %build
 %configure --with-tcl=%{_libdir} --with-tk=%{_libdir} --libdir=%{tcl_sitearch}
@@ -127,6 +129,10 @@
 %doc %{tcl_sitelib}/Tix%{tixmajor}
 
 %changelog
+* Mon Oct 20 2008 Vitezslav Crhonek <vcrhonek at redhat.com> - 1:8.4.2-6
+- Fix handling of #color in the -defaults class option
+  Resolves: #467224
+
 * Wed Feb  6 2008 Tom "spot" Callaway <tcallawa at redhat.com> - 1:8.4.2-5
 - apps can't find libTix.so without an ld.so.conf.d file. It probably makes
   more sense to move this library back into %%{_libdir}, but I'll leave that to




More information about the scm-commits mailing list