emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: completing-read case problem


From: Markus Rost
Subject: Re: completing-read case problem
Date: Sun, 21 Nov 2004 00:18:20 -0500

> I installed the patch that Stefan sent, since the report
> is that it worked well.
> 

The installed patch doesn't work well for me.

I think that one additional bogus line "goto exit;" slipped into it,
see the following patch.  This patch looks rather obvious to me, but
since I am not a C programmer, I didn't install it myself.

The second patch is Stefan's, which worked fine for me.


===Buffer *vc-diff*=========================================
*** minibuf.c.~1.275.~  Sat Nov 20 23:37:08 2004
--- minibuf.c   Sat Nov 20 23:55:30 2004
***************
*** 2105,2112 ****
        goto exit;
      }
  
-     goto exit;
- 
    /* Call do_completion, but ignore errors.  */
    SET_PT (ZV);
    val = internal_condition_case (complete_and_exit_1, Qerror,
--- 2105,2110 ----
============================================================



===Buffer minibuf.diff======================================
*** minibuf.c.~1.273.~  Sun Nov 14 00:59:52 2004
--- minibuf.c   Mon Nov 15 22:29:45 2004
***************
*** 2076,2085 ****
    if (XINT (Fminibuffer_prompt_end ()) == ZV)
      goto exit;
  
!   if (!NILP (Ftest_completion (Fminibuffer_contents (),
                               Vminibuffer_completion_table,
                               Vminibuffer_completion_predicate)))
!     goto exit;
  
    /* Call do_completion, but ignore errors.  */
    SET_PT (ZV);
--- 2076,2102 ----
    if (XINT (Fminibuffer_prompt_end ()) == ZV)
      goto exit;
  
!   if (!NILP (Ftest_completion (val = Fminibuffer_contents (),
                               Vminibuffer_completion_table,
                               Vminibuffer_completion_predicate)))
!     {
!       if (completion_ignore_case)
!       { /* Fixup case of the field, if necessary. */
!         Lisp_Object compl
!           = Ftry_completion (val,
!                              Vminibuffer_completion_table,
!                              Vminibuffer_completion_predicate);
!         if (STRINGP (compl)
!             /* If it weren't for this piece of paranoia, I'd replace
!                the whole thing with a call to do_completion. */
!             && EQ (Flength (val), Flength (compl)))
!           {
!             del_range (XINT (Fminibuffer_prompt_end ()), ZV);
!             Finsert (1, &compl);
!           }
!       }
!       goto exit;
!     }
  
    /* Call do_completion, but ignore errors.  */
    SET_PT (ZV);
============================================================





reply via email to

[Prev in Thread] Current Thread [Next in Thread]