[Top][All Lists]

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

bug#1432: marked as done (Sorting buffers with ibuffer)

From: Emacs bug Tracking System
Subject: bug#1432: marked as done (Sorting buffers with ibuffer)
Date: Thu, 4 Dec 2008 16:10:05 -0800

Your message dated Fri, 5 Dec 2008 01:03:07 +0100
with message-id <address@hidden>
and subject line 
has caused the Emacs bug report #1432,
regarding Sorting buffers with ibuffer
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact address@hidden

1432: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1432
Emacs Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: Re: Sorting buffers with ibuffer Date: Wed, 26 Nov 2008 11:28:39 +0100
Package: emacs
Severity: minor
X-Debbugs-CC: address@hidden

On Wed, Nov 26, 2008 at 04:29, z0d <address@hidden> wrote:

> shell: emacs -q .emacs .ssh/config .Emacs-lisp/init-lisp.el
> M-: (setq-default ibuffer-default-sorting-mode 'major-mode) <RET>
> M-x ibuffer <RET>
> produces:
>  MR Name                    Size Mode             Filename/Process
>  -- ----                    ---- ----             ----------------
> [ Default ]
>    asdf-skeleton.el        1052 Emacs-Lisp       ~/.Emacs-Lisp/asdf-
> skeleton.el
>    config                   488 Conf[Space]      ~/.ssh/config
>    .emacs                 13170 Emacs-Lisp       ~/.emacs
>    *scratch*                191 Lisp Interaction
>  *  *Messages*               142 Fundamental
>  % *GNU Emacs*              744 Fundamental
>    6 buffers              15787                  3 files, no
> processes

You're right.

What's happening is that, in fact, ibuffer is not sorting at all,
because there's a variable ibuffer-sorting-functions-alist that is
null at that point. That variable is initialized by code in
ibuf-ext.el; defaulting to 'recency works because that sorting order
is special-cased in ibuffer.el.

You can workaround the issue by making sure ibuf-ext is loaded, for example:

  emacs -q -l ibuf-ext .emacs .ssh/config .Emacs-lisp/init-lisp.el

but I think ibuffer should take care that the sorting functions' alist
is properly stuffed.

John, I've considered the attached patch, which checks in
ibuffer-sort-bufferlist. The alternative I see is to require 'ibuf-ext
in `ibuffer-mode' if the user modified `ibuffer-default-sorting-mode',

  (set (make-local-variable 'ibuffer-sorting-mode)
  (unless (eq ibuffer-sorting-mode 'recency)
    (require 'ibuf-ext))

Are you OK with one of these changes?


Index: lisp/ibuffer.el
RCS file: /sources/emacs/emacs/lisp/ibuffer.el,v
retrieving revision 1.110
diff -u -2 -r1.110 ibuffer.el
--- lisp/ibuffer.el     8 Oct 2008 05:02:09 -0000       1.110
+++ lisp/ibuffer.el     26 Nov 2008 09:56:30 -0000
@@ -2192,4 +2192,6 @@

 (defun ibuffer-sort-bufferlist (bmarklist)
+  (unless ibuffer-sorting-functions-alist
+    (require 'ibuf-ext))
   (let* ((sortdat (assq ibuffer-sorting-mode

--- End Message ---
--- Begin Message --- Subject: Date: Fri, 5 Dec 2008 01:03:07 +0100


--- End Message ---

reply via email to

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