[Cmucl-cvs] [git] CMU Common Lisp branch rtoy-clm-text-callback created. 20f-55-g6c4a967

Raymond Toy rtoy at common-lisp.net
Sat Oct 25 19:30:46 UTC 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".

The branch, rtoy-clm-text-callback has been created
        at  6c4a96760e4fcd9a03c3a2ae2d4d41369d9caf39 (commit)

- Log -----------------------------------------------------------------
commit 6c4a96760e4fcd9a03c3a2ae2d4d41369d9caf39
Merge: 2dd94c9 b16eb20
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Sat Oct 25 10:50:05 2014 -0700

    Merge branch 'clm-text-callback' of /Volumes/share2/src/clnet/rkreuter/cmucl into rtoy-clm-text-callback


commit b16eb2050e77c6fba3eb438d7a2317aa64cee778
Author: Richard M Kreuter <kreuter at progn.net>
Date:   Wed Sep 17 20:41:06 2014 -0400

    Remove some printf debugging in write_text_callback.

diff --git a/src/motif/server/callbacks.c b/src/motif/server/callbacks.c
index 832b019..d6ded37 100644
--- a/src/motif/server/callbacks.c
+++ b/src/motif/server/callbacks.c
@@ -207,8 +207,6 @@ void write_text_callback(message_t reply,XmTextVerifyCallbackStruct *info)
         message_write_int(reply,info->endPos,int_tag);
         }
      else if( info->reason == XmCR_MODIFYING_TEXT_VALUE ) {
-        printf("modifying_text_value: %s ; length=%d\n",info->text->ptr,
-               info->text->length);
         message_write_int(reply,info->startPos,int_tag);
         message_write_int(reply,info->endPos,int_tag);
 	if (info->text->ptr==NULL)
@@ -217,9 +215,6 @@ void write_text_callback(message_t reply,XmTextVerifyCallbackStruct *info)
 	  really_write_string(reply,info->text->ptr,info->text->length+1);
         /* ***** Perhaps this should be an enumerated type ***** */
         message_write_int(reply,info->text->format,int_tag);
-	//        printf("modifying_text_value: %s ; length=%d\n",info->text->ptr,
-	//               info->text->length);
-        fflush(stdout);
         }
      }
 }

commit 3c56ee77a02d7379a1de77a8919375debfe856d3
Author: Richard M Kreuter <kreuter at progn.net>
Date:   Wed Sep 17 20:36:01 2014 -0400

    Fix bugs around XmTextField's callbacks.
    
    * On the motifd side, writing callbacks with reason
      XmCR_MODIFYING_TEXT_VALUE would segfault when the text was NULL
      (e.g., due to backspacing).
    
    * On the Lisp side, decoding of callbacks in READ-CALLBACK-INFO used
      the :TEXT for the widget-type, when the correct type is :TEXT-FIELD.

diff --git a/src/motif/lisp/callbacks.lisp b/src/motif/lisp/callbacks.lisp
index fe7c975..688a9c5 100644
--- a/src/motif/lisp/callbacks.lisp
+++ b/src/motif/lisp/callbacks.lisp
@@ -326,7 +326,7 @@
 	   (setf (list-callback-selection-type info)
 		 (toolkit-read-value reply)))
 	 info))
-      (:text
+      (:text-field
        (let ((info (make-text-callback reason event)))
 	 (when (member reason '(:cr-losing-focus :cr-modifying-text-value
 						 :cr-moving-insert-cursor))
diff --git a/src/motif/server/callbacks.c b/src/motif/server/callbacks.c
index d0852c4..832b019 100644
--- a/src/motif/server/callbacks.c
+++ b/src/motif/server/callbacks.c
@@ -207,13 +207,18 @@ void write_text_callback(message_t reply,XmTextVerifyCallbackStruct *info)
         message_write_int(reply,info->endPos,int_tag);
         }
      else if( info->reason == XmCR_MODIFYING_TEXT_VALUE ) {
+        printf("modifying_text_value: %s ; length=%d\n",info->text->ptr,
+               info->text->length);
         message_write_int(reply,info->startPos,int_tag);
         message_write_int(reply,info->endPos,int_tag);
-        really_write_string(reply,info->text->ptr,info->text->length+1);
+	if (info->text->ptr==NULL)
+	  really_write_string(reply,"",1);
+	else
+	  really_write_string(reply,info->text->ptr,info->text->length+1);
         /* ***** Perhaps this should be an enumerated type ***** */
         message_write_int(reply,info->text->format,int_tag);
-        printf("modifying_text_value: %s ; length=%d\n",info->text->ptr,
-               info->text->length);
+	//        printf("modifying_text_value: %s ; length=%d\n",info->text->ptr,
+	//               info->text->length);
         fflush(stdout);
         }
      }

-----------------------------------------------------------------------


hooks/post-receive
-- 
CMU Common Lisp




More information about the cmucl-cvs mailing list