Sync readline/ to version 7.0 alpha
[deliverable/binutils-gdb.git] / readline / macro.c
index c2fac8addbe9b552ab9c6a73ec327d46d5504623..c7017cc6b3dab6303d9278031b557bcfd0862f02 100644 (file)
@@ -121,6 +121,19 @@ _rl_next_macro_key ()
 #endif
 }
 
+int
+_rl_prev_macro_key ()
+{
+  if (rl_executing_macro == 0)
+    return (0);
+
+  if (executing_macro_index == 0)
+    return (0);
+
+  executing_macro_index--;
+  return (rl_executing_macro[executing_macro_index]);
+}
+
 /* Save the currently executing macro on a stack of saved macros. */
 void
 _rl_push_executing_macro ()
@@ -206,7 +219,7 @@ rl_start_kbd_macro (ignore1, ignore2)
   if (RL_ISSTATE (RL_STATE_MACRODEF))
     {
       _rl_abort_internal ();
-      return -1;
+      return 1;
     }
 
   if (rl_explicit_arg)
@@ -231,10 +244,10 @@ rl_end_kbd_macro (count, ignore)
   if (RL_ISSTATE (RL_STATE_MACRODEF) == 0)
     {
       _rl_abort_internal ();
-      return -1;
+      return 1;
     }
 
-  current_macro_index -= rl_key_sequence_length - 1;
+  current_macro_index -= rl_key_sequence_length;
   current_macro[current_macro_index] = '\0';
 
   RL_UNSETSTATE(RL_STATE_MACRODEF);
@@ -263,6 +276,29 @@ rl_call_last_kbd_macro (count, ignore)
   return 0;
 }
 
+int
+rl_print_last_kbd_macro (count, ignore)
+     int count, ignore;
+{
+  char *m;
+
+  if (current_macro == 0)
+    {
+      rl_ding ();
+      return 0;
+    }
+  m = _rl_untranslate_macro_value (current_macro, 1);
+  rl_crlf ();
+  printf ("%s", m);
+  fflush (stdout);
+  rl_crlf ();
+  FREE (m);
+  rl_forced_update_display ();
+  rl_display_fixed = 1;
+
+  return 0;
+}
+
 void
 rl_push_macro_input (macro)
      char *macro;
This page took 0.025075 seconds and 4 git commands to generate.