[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: position on changing defaults?
From: |
Juri Linkov |
Subject: |
Re: position on changing defaults? |
Date: |
Tue, 11 Mar 2008 00:29:18 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (x86_64-unknown-linux-gnu) |
> 1. After typing C-x b: each M-n (or down-arrow) key will put the
> next buffer name to the minibuffer, starting with the most recent
> buffer and going in the order buffers are stored in the buffer list.
>
> That sounds nice -- and hurts nothing.
Below is a patch this implements the same to the small letter "b"
in the interactive specification. It keeps the original logic
of processing of "B" and "b", and doesn't skip the current buffer
in the buffer list for "b" if not in the minibuffer.
Index: src/callint.c
===================================================================
RCS file: /sources/emacs/emacs/src/callint.c,v
retrieving revision 1.161
diff -c -r1.161 callint.c
*** src/callint.c 19 Feb 2008 04:03:01 -0000 1.161
--- src/callint.c 10 Mar 2008 22:27:46 -0000
***************
*** 513,528 ****
break;
case 'b': /* Name of existing buffer */
- args[i] = Fcurrent_buffer ();
- if (EQ (selected_window, minibuf_window))
- args[i] = Fother_buffer (args[i], Qnil, Qnil);
- args[i] = Fread_buffer (callint_message, args[i], Qt);
- break;
-
case 'B': /* Name of buffer, possibly nonexistent */
! args[i] = Fread_buffer (callint_message,
! Fother_buffer (Fcurrent_buffer (), Qnil,
Qnil),
! Qnil);
break;
case 'c': /* Character */
--- 517,551 ----
break;
case 'b': /* Name of existing buffer */
case 'B': /* Name of buffer, possibly nonexistent */
! {
! Lisp_Object tema, temb, temc;
! int skip_current = 1;
!
! if (*tem == 'b' && !EQ (selected_window, minibuf_window))
! skip_current = 0;
!
! /* Get a list of buffer names (except the current buffer and
! internal buffers), and use this list for default values. */
! tema = Qnil;
! temc = Fcurrent_buffer ();
! teml = Fbuffer_list (selected_frame);
! for (; CONSP (teml); teml = XCDR (teml))
! {
! temb = XCAR (teml);
! if (skip_current && EQ (temb, temc))
! continue;
! if (NILP (temb))
! continue;
! if (NILP (XBUFFER (temb)->name))
! continue;
! if (SREF (XBUFFER (temb)->name, 0) == ' ')
! continue;
! tema = Fcons (XBUFFER (temb)->name, tema);
! }
! args[i] = Fread_buffer (callint_message, Fnreverse (tema),
! *tem == 'b' ? Qt : Qnil);
! }
break;
case 'c': /* Character */
--
Juri Linkov
http://www.jurta.org/emacs/
- RE: position on changing defaults?, (continued)
- RE: position on changing defaults?, Drew Adams, 2008/03/09
- Re: position on changing defaults?, Xavier Maillard, 2008/03/10
- Re: position on changing defaults?, Xavier Maillard, 2008/03/10
- Re: position on changing defaults?, Richard Stallman, 2008/03/09
- Re: position on changing defaults?, Dan Nicolaescu, 2008/03/08
- Re: position on changing defaults?, Juri Linkov, 2008/03/08
- Re: position on changing defaults?, Richard Stallman, 2008/03/09
- Re: position on changing defaults?, Juri Linkov, 2008/03/09
- Re: position on changing defaults?, Stefan Monnier, 2008/03/09
- Re: position on changing defaults?, Juri Linkov, 2008/03/09
- Re: position on changing defaults?,
Juri Linkov <=
- Re: position on changing defaults?, Andreas Schwab, 2008/03/08
- Re: position on changing defaults?, Dan Nicolaescu, 2008/03/08
- Re: position on changing defaults?, Andreas Schwab, 2008/03/08
- Re: position on changing defaults?, Dan Nicolaescu, 2008/03/08
- Re: position on changing defaults?, Andreas Schwab, 2008/03/08
- Re: position on changing defaults?, Kim F. Storm, 2008/03/08
- Re: position on changing defaults?, Andreas Schwab, 2008/03/08
- Re: position on changing defaults?, Stephen Eglen, 2008/03/08
- Re: position on changing defaults?, Xavier Maillard, 2008/03/10
- Re: position on changing defaults?, Kim F. Storm, 2008/03/11