Mercurial > emacs
comparison lisp/mail/rmailsort.el @ 101725:9e2e923d8eb3
(rmail-sort-messages): Use car-less-than-car if possible.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sun, 01 Feb 2009 03:28:33 +0000 |
parents | 69b1ad070444 |
children | 97184480e9dc |
comparison
equal
deleted
inserted
replaced
101724:b87c9a6e8490 | 101725:9e2e923d8eb3 |
---|---|
160 2nd argument KEYFUN is called with a message number, and should return a key." | 160 2nd argument KEYFUN is called with a message number, and should return a key." |
161 (with-current-buffer rmail-buffer | 161 (with-current-buffer rmail-buffer |
162 (let ((return-to-point | 162 (let ((return-to-point |
163 (if (rmail-buffers-swapped-p) | 163 (if (rmail-buffers-swapped-p) |
164 (point))) | 164 (point))) |
165 (predicate nil) ;< or string-lessp | |
166 (sort-lists nil)) | 165 (sort-lists nil)) |
167 (rmail-swap-buffers-maybe) | 166 (rmail-swap-buffers-maybe) |
168 (message "Finding sort keys...") | 167 (message "Finding sort keys...") |
169 (widen) | 168 (widen) |
170 (let ((msgnum 1)) | 169 (let ((msgnum 1)) |
177 sort-lists)) | 176 sort-lists)) |
178 (if (zerop (% msgnum 10)) | 177 (if (zerop (% msgnum 10)) |
179 (message "Finding sort keys...%d" msgnum)) | 178 (message "Finding sort keys...%d" msgnum)) |
180 (setq msgnum (1+ msgnum)))) | 179 (setq msgnum (1+ msgnum)))) |
181 (or reverse (setq sort-lists (nreverse sort-lists))) | 180 (or reverse (setq sort-lists (nreverse sort-lists))) |
182 ;; Decide predicate: < or string-lessp | |
183 (if (numberp (car (car sort-lists))) ;Is a key numeric? | |
184 (setq predicate (function <)) | |
185 (setq predicate (function string-lessp))) | |
186 (setq sort-lists | 181 (setq sort-lists |
187 (sort sort-lists | 182 (sort sort-lists |
188 (function | 183 ;; Decide predicate: < or string-lessp |
189 (lambda (a b) | 184 (if (numberp (car (car sort-lists))) ;Is a key numeric? |
190 (funcall predicate (car a) (car b)))))) | 185 'car-less-than-car |
186 (function | |
187 (lambda (a b) | |
188 (string-lessp (car a) (car b))))))) | |
191 (if reverse (setq sort-lists (nreverse sort-lists))) | 189 (if reverse (setq sort-lists (nreverse sort-lists))) |
192 ;; Now we enter critical region. So, keyboard quit is disabled. | 190 ;; Now we enter critical region. So, keyboard quit is disabled. |
193 (message "Reordering messages...") | 191 (message "Reordering messages...") |
194 (let ((inhibit-quit t) ;Inhibit quit | 192 (let ((inhibit-quit t) ;Inhibit quit |
195 (inhibit-read-only t) | 193 (inhibit-read-only t) |