touched all sources to ease import of readline-5.1
[deliverable/binutils-gdb.git] / readline / callback.c
index 9120969ca238f627341c8a1bbfeaead7af744048..a8f4323c929f467c905b4781e867c641908a1646 100644 (file)
@@ -1,6 +1,6 @@
 /* callback.c -- functions to use readline as an X `callback' mechanism. */
 
-/* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
 
    This file is part of the GNU Readline Library, a library for
    reading lines of text with interactive input and history editing.
 #include "readline.h"
 #include "rlprivate.h"
 
-/* Private data for callback registration functions.  See comments in
-   rl_callback_read_char for more details. */
-_rl_callback_func_t *_rl_callback_func = 0;
-_rl_callback_generic_arg *_rl_callback_data = 0;
-
 /* **************************************************************** */
 /*                                                                 */
-/*                     Callback Readline Functions              */
+/*                     Callback Readline Functions                 */
 /*                                                                 */
 /* **************************************************************** */
 
@@ -77,8 +72,7 @@ _rl_callback_newline ()
     {
       in_handler = 1;
 
-      if (rl_prep_term_function)
-       (*rl_prep_term_function) (_rl_meta_flag);
+      (*rl_prep_term_function) (_rl_meta_flag);
 
 #if defined (HANDLE_SIGNALS)
       rl_set_signals ();
@@ -95,7 +89,6 @@ rl_callback_handler_install (prompt, linefunc)
      rl_vcpfunc_t *linefunc;
 {
   rl_set_prompt (prompt);
-  RL_SETSTATE (RL_STATE_CALLBACK);
   rl_linefunc = linefunc;
   _rl_callback_newline ();
 }
@@ -105,8 +98,7 @@ void
 rl_callback_read_char ()
 {
   char *line;
-  int eof, jcode;
-  static procenv_t olevel;
+  int eof;
 
   if (rl_linefunc == NULL)
     {
@@ -114,79 +106,7 @@ rl_callback_read_char ()
       abort ();
     }
 
-  memcpy ((void *)olevel, (void *)readline_top_level, sizeof (procenv_t));
-  jcode = setjmp (readline_top_level);
-  if (jcode)
-    {
-      (*rl_redisplay_function) ();
-      _rl_want_redisplay = 0;
-      memcpy ((void *)readline_top_level, (void *)olevel, sizeof (procenv_t));
-      return;
-    }
-
-  if  (RL_ISSTATE (RL_STATE_ISEARCH))
-    {
-      eof = _rl_isearch_callback (_rl_iscxt);
-      if (eof == 0 && (RL_ISSTATE (RL_STATE_ISEARCH) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
-       rl_callback_read_char ();
-
-      return;
-    }
-  else if  (RL_ISSTATE (RL_STATE_NSEARCH))
-    {
-      eof = _rl_nsearch_callback (_rl_nscxt);
-      return;
-    }
-  else if (RL_ISSTATE (RL_STATE_NUMERICARG))
-    {
-      eof = _rl_arg_callback (_rl_argcxt);
-      if (eof == 0 && (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) && RL_ISSTATE (RL_STATE_INPUTPENDING))
-       rl_callback_read_char ();
-      /* XXX - this should handle _rl_last_command_was_kill better */
-      else if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
-       _rl_internal_char_cleanup ();
-
-      return;
-    }
-  else if (RL_ISSTATE (RL_STATE_MULTIKEY))
-    {
-      eof = _rl_dispatch_callback (_rl_kscxt); /* For now */
-      while ((eof == -1 || eof == -2) && RL_ISSTATE (RL_STATE_MULTIKEY) && _rl_kscxt && (_rl_kscxt->flags & KSEQ_DISPATCHED))
-       eof = _rl_dispatch_callback (_rl_kscxt);
-      if (RL_ISSTATE (RL_STATE_MULTIKEY) == 0)
-       {
-         _rl_internal_char_cleanup ();
-         _rl_want_redisplay = 1;
-       }
-    }
-  else if (_rl_callback_func)
-    {
-      /* This allows functions that simply need to read an additional character
-        (like quoted-insert) to register a function to be called when input is
-        available.  _rl_callback_data is simply a pointer to a struct that has
-        the argument count originally passed to the registering function and
-        space for any additional parameters.  */
-      eof = (*_rl_callback_func) (_rl_callback_data);
-      /* If the function `deregisters' itself, make sure the data is cleaned
-        up. */
-      if (_rl_callback_func == 0)
-       {
-         if (_rl_callback_data)        
-           {
-             _rl_callback_data_dispose (_rl_callback_data);
-             _rl_callback_data = 0;
-           }
-         _rl_internal_char_cleanup ();
-       }
-    }
-  else
-    eof = readline_internal_char ();
-
-  if (rl_done == 0 && _rl_want_redisplay)
-    {
-      (*rl_redisplay_function) ();
-      _rl_want_redisplay = 0;
-    }
+  eof = readline_internal_char ();
 
   /* We loop in case some function has pushed input back with rl_execute_next. */
   for (;;)
@@ -195,8 +115,7 @@ rl_callback_read_char ()
        {
          line = readline_internal_teardown (eof);
 
-         if (rl_deprep_term_function)
-           (*rl_deprep_term_function) ();
+         (*rl_deprep_term_function) ();
 #if defined (HANDLE_SIGNALS)
          rl_clear_signals ();
 #endif
@@ -212,10 +131,10 @@ rl_callback_read_char ()
          if (in_handler == 0 && rl_linefunc)
            _rl_callback_newline ();
        }
-      if (rl_pending_input || _rl_pushed_input_available () || RL_ISSTATE (RL_STATE_MACROINPUT))
+      if (rl_pending_input)
        eof = readline_internal_char ();
       else
-       break;
+        break;
     }
 }
 
@@ -224,37 +143,14 @@ void
 rl_callback_handler_remove ()
 {
   rl_linefunc = NULL;
-  RL_UNSETSTATE (RL_STATE_CALLBACK);
   if (in_handler)
     {
       in_handler = 0;
-      if (rl_deprep_term_function)
-       (*rl_deprep_term_function) ();
+      (*rl_deprep_term_function) ();
 #if defined (HANDLE_SIGNALS)
       rl_clear_signals ();
 #endif
     }
 }
 
-_rl_callback_generic_arg *
-_rl_callback_data_alloc (count)
-     int count;
-{
-  _rl_callback_generic_arg *arg;
-
-  arg = (_rl_callback_generic_arg *)xmalloc (sizeof (_rl_callback_generic_arg));
-  arg->count = count;
-
-  arg->i1 = arg->i2 = 0;
-
-  return arg;
-}
-
-void _rl_callback_data_dispose (arg)
-     _rl_callback_generic_arg *arg;
-{
-  if (arg)
-    free (arg);
-}
-
 #endif
This page took 0.025278 seconds and 4 git commands to generate.