r1309 - in trunk: . readline

jim at linuxfromscratch.org jim at linuxfromscratch.org
Thu Dec 22 00:27:34 PST 2005


Author: jim
Date: 2005-12-22 01:27:33 -0700 (Thu, 22 Dec 2005)
New Revision: 1309

Added:
   trunk/readline/readline-5.1-fixes-1.patch
Modified:
   trunk/
Log:
 r1608 at server:  jim | 2005-12-22 00:24:19 -0800
 Added: readline-5.1-fixes-1.patch



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - cc2644d5-6cf8-0310-b111-c40428001e49:/patches:1606
   + cc2644d5-6cf8-0310-b111-c40428001e49:/patches:1608

Added: trunk/readline/readline-5.1-fixes-1.patch
===================================================================
--- trunk/readline/readline-5.1-fixes-1.patch	2005-12-22 08:16:28 UTC (rev 1308)
+++ trunk/readline/readline-5.1-fixes-1.patch	2005-12-22 08:27:33 UTC (rev 1309)
@@ -0,0 +1,56 @@
+Submitted By: Jim Gifford (patches at jg555 dot com)
+Date: 2005-12-22
+Initial Package Version: 5.1
+Origin: Upstream
+Upstream Status: Applied 
+Description: Contains Patch 001 from Upstream
+001 -	A problem with the readline callback interface can result in segmentation
+	faults when using the delete-char function via a multiple-key sequence.
+	Two consecutive calls to delete-char will crash the application calling
+	readline.
+ 
+diff -Naur readline-5.1.orig/readline.c readline-5.1/readline.c
+--- readline-5.1.orig/readline.c	2005-07-05 02:29:35.000000000 +0000
++++ readline-5.1/readline.c	2005-12-22 08:22:37.000000000 +0000
+@@ -714,7 +714,7 @@
+ 
+ 	  rl_dispatching = 1;
+ 	  RL_SETSTATE(RL_STATE_DISPATCHING);
+-	  r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
++	  (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
+ 	  RL_UNSETSTATE(RL_STATE_DISPATCHING);
+ 	  rl_dispatching = 0;
+ 
+diff -Naur readline-5.1.orig/text.c readline-5.1/text.c
+--- readline-5.1.orig/text.c	2005-09-24 23:06:07.000000000 +0000
++++ readline-5.1/text.c	2005-12-22 08:22:37.000000000 +0000
+@@ -1071,8 +1071,6 @@
+ rl_delete (count, key)
+      int count, key;
+ {
+-  int r;
+-
+   if (count < 0)
+     return (_rl_rubout_char (-count, key));
+ 
+@@ -1090,17 +1088,17 @@
+       else
+ 	rl_forward_byte (count, key);
+ 
+-      r = rl_kill_text (orig_point, rl_point);
++      rl_kill_text (orig_point, rl_point);
+       rl_point = orig_point;
+-      return r;
+     }
+   else
+     {
+       int new_point;
+ 
+       new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
+-      return (rl_delete_text (rl_point, new_point));
++      rl_delete_text (rl_point, new_point);
+     }
++  return 0;
+ }
+ 
+ /* Delete the character under the cursor, unless the insertion




More information about the patches mailing list