Sophie

Sophie

distrib > Altlinux > 4.1 > i586 > media > core-src > by-pkgid > 4a5036422606065e77c6d542d52747e4 > files > 5

qtcl-1.2-alt6.src.rpm

diff -urN qtcl-1.2.orig/qtcl/QTclInterp.c qtcl-1.2/qtcl/QTclInterp.c
--- qtcl-1.2.orig/qtcl/QTclInterp.c	2005-11-01 23:48:43 +0200
+++ qtcl-1.2/qtcl/QTclInterp.c	2006-05-19 21:02:46 +0300
@@ -182,7 +182,7 @@
   if(len<0) len=strlen(name);
   for(QObject *p=it.current();p;++it,p=it.current()) {
     char buffer[100];
-    sprintf(buffer,"O0x%x",(unsigned int)p);
+    sprintf(buffer,p==NULL?"O0x0":"O%p",p);
     const char *oname=p->name(buffer);
     if(!strncmp(oname,name,len) && oname[len]==0) return p;
   }
@@ -214,7 +214,7 @@
     char namebuffer[100];
     const char *name=o->name(0);
     if(!name) {
-      sprintf(namebuffer,"O0x%x",(unsigned int)o);
+      sprintf(namebuffer,o==NULL?"O0x%x":"O%p",o);
       name=namebuffer;
     }
     int l=strlen(name);
diff -urN qtcl-1.2.orig/qtcl/QTclUtil.c qtcl-1.2/qtcl/QTclUtil.c
--- qtcl-1.2.orig/qtcl/QTclUtil.c	2005-10-19 09:43:56 +0300
+++ qtcl-1.2/qtcl/QTclUtil.c	2006-05-19 21:10:07 +0300
@@ -25,6 +25,12 @@
   Tcl_AppendElement(interp,buffer);
 }
 
+void Tcl_AppendPtrAsHex(Tcl_Interp *interp,void* val) {
+char buffer[50];
+  val==NULL?sprintf(buffer,"%0x.*x",sizeof(val)*2,0):sprintf(buffer,"%.*p",sizeof(val)*2,val);
+  Tcl_AppendElement(interp,buffer);
+}
+
 void Tcl_AppendHexByte(Tcl_Interp *interp,int val) {
 char buffer[50];
   sprintf(buffer,"%2.2x",(unsigned int)val);
diff -urN qtcl-1.2.orig/qtcl/QTclUtil.h qtcl-1.2/qtcl/QTclUtil.h
--- qtcl-1.2.orig/qtcl/QTclUtil.h	2005-03-10 15:43:56 +0200
+++ qtcl-1.2/qtcl/QTclUtil.h	2006-05-19 20:36:32 +0300
@@ -11,6 +11,7 @@
 void Tcl_AppendInt(Tcl_Interp *interp,int val);
 void Tcl_AppendBool(Tcl_Interp *interp,int val);
 void Tcl_AppendIntAsHex(Tcl_Interp *interp,int val);
+void Tcl_AppendPtrAsHex(Tcl_Interp *interp,void* val);
 void Tcl_AppendHexByte(Tcl_Interp *interp,int val);
 void Tcl_AppendQString(Tcl_Interp *interp,const QString &s);
 void Tcl_AppendQStringList(Tcl_Interp *interp,const QStringList &list);
diff -urN qtcl-1.2.orig/qtcl/QTclWidget.c qtcl-1.2/qtcl/QTclWidget.c
--- qtcl-1.2.orig/qtcl/QTclWidget.c	2005-11-01 23:48:43 +0200
+++ qtcl-1.2/qtcl/QTclWidget.c	2006-05-19 20:36:32 +0300
@@ -91,7 +91,7 @@
   } else if(!strcmp(argv[1],"widget")) {
     if(argc!=2) return Tcl_WrongArgs(interp,2,argv,0);
     Display *d=w->x11Display();
-    Tcl_AppendIntAsHex(interp,(int)d);
+    Tcl_AppendPtrAsHex(interp,d);
     return TCL_OK;
   } else if(!strcmp(argv[1],"tooltip")) {
     switch(argc) {