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
