mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-08 08:43:52 -08:00
(Fminibuffer_complete_and_exit): Catch errors in do_completion.
(complete_and_exit_1, complete_and_exit_2): New subroutines.
This commit is contained in:
parent
c66587feff
commit
e4c97a67e7
1 changed files with 26 additions and 1 deletions
|
|
@ -1237,6 +1237,26 @@ scroll the window of possible completions.")
|
|||
|
||||
return Qt;
|
||||
}
|
||||
|
||||
/* Subroutines of Fminibuffer_complete_and_exit. */
|
||||
|
||||
/* This one is called by internal_condition_case to do the real work. */
|
||||
|
||||
Lisp_Object
|
||||
complete_and_exit_1 ()
|
||||
{
|
||||
return make_number (do_completion ());
|
||||
}
|
||||
|
||||
/* This one is called by internal_condition_case if an error happens.
|
||||
Pretend the current value is an exact match. */
|
||||
|
||||
Lisp_Object
|
||||
complete_and_exit_2 (ignore)
|
||||
Lisp_Object ignore;
|
||||
{
|
||||
return make_number (1);
|
||||
}
|
||||
|
||||
DEFUN ("minibuffer-complete-and-exit", Fminibuffer_complete_and_exit,
|
||||
Sminibuffer_complete_and_exit, 0, 0, "",
|
||||
|
|
@ -1246,6 +1266,7 @@ a repetition of this command will exit.")
|
|||
()
|
||||
{
|
||||
register int i;
|
||||
Lisp_Object val;
|
||||
|
||||
/* Allow user to specify null string */
|
||||
if (BEGV == ZV)
|
||||
|
|
@ -1254,7 +1275,11 @@ a repetition of this command will exit.")
|
|||
if (!NILP (test_completion (Fbuffer_string ())))
|
||||
goto exit;
|
||||
|
||||
i = do_completion ();
|
||||
/* Call do_completion, but ignore errors. */
|
||||
val = internal_condition_case (complete_and_exit_1, Qerror,
|
||||
complete_and_exit_2);
|
||||
|
||||
i = XFASTINT (val);
|
||||
switch (i)
|
||||
{
|
||||
case 1:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue