26
26
(vm-select-folder-buffer)
27
27
(vm-check-for-killed-summary)
28
;; get numbering of new messages done now
29
;; so that the sort code only has to worry about the
30
;; changes it needs to make.
31
(vm-update-summary-and-mode-line)
28
32
(vm-set-summary-redo-start-point t)
29
33
(setq vm-summary-show-threads (not vm-summary-show-threads))
30
34
(if vm-summary-show-threads
202
208
;; save the date of the oldest message in this thread
203
209
(setq root-date (get id-sym 'oldest-date))
204
210
(if (or (null root-date)
205
(string< (vm-so-sortable-datestring message) root-date))
206
(put id-sym 'oldest-date (vm-so-sortable-datestring message)))
211
(string< date root-date))
212
(put id-sym 'oldest-date date))
213
;; save the date of the youngest message in this thread
214
(setq youngest-date (get id-sym 'youngest-date))
215
(if (or (null root-date)
216
(string< youngest-date date))
217
(put id-sym 'youngest-date date))
207
218
(if (and (boundp id-sym) (symbol-value id-sym))
209
220
(setq id-sym (symbol-value id-sym)
254
265
m id-sym subject-sym vect p-sym)
256
267
(setq m (car mp))
257
(let ((inhibit-quit t))
258
(vm-set-thread-list-of m nil)
259
(vm-set-thread-indentation-of m nil)
260
(set-buffer (vm-buffer-of m))
261
(setq id-sym (intern (vm-su-message-id m) vm-thread-obarray)
262
subject-sym (intern (vm-so-sortable-subject m)
263
vm-thread-subject-obarray))
266
(put id-sym 'messages (delq m (get id-sym 'messages)))
267
(vm-thread-mark-for-summary-update (get id-sym 'children))
268
(setq p-sym (symbol-value id-sym))
269
(and p-sym (put p-sym 'children
270
(delq m (get p-sym 'children))))
273
(if (and (boundp subject-sym) (setq vect (symbol-value subject-sym)))
274
(if (not (eq id-sym (aref vect 0)))
275
(aset vect 2 (delq m (aref vect 2)))
277
(if (null (cdr (aref vect 3)))
278
(makunbound subject-sym)
279
(let ((p (aref vect 3))
280
oldest-msg oldest-date children)
281
(setq oldest-msg (car p)
282
oldest-date (vm-so-sortable-datestring (car p))
285
(if (and (string-lessp (vm-so-sortable-datestring (car p))
287
(not (eq m (car p))))
288
(setq oldest-msg (car p)
289
oldest-date (vm-so-sortable-datestring (car p))))
291
(aset vect 0 (intern (vm-su-message-id oldest-msg)
293
(aset vect 1 oldest-date)
294
(setq children (delq oldest-msg (aref vect 2)))
295
(aset vect 2 children)
296
(aset vect 3 (delq m (aref vect 3)))
297
;; I'm not sure there aren't situations
298
;; where this might loop forever.
299
(let ((inhibit-quit nil))
300
(vm-thread-mark-for-summary-update children))))))))
268
(set-buffer (vm-buffer-of m))
269
(if (not (vectorp vm-thread-obarray))
271
(let ((inhibit-quit t))
272
(vm-set-thread-list-of m nil)
273
(vm-set-thread-indentation-of m nil)
274
(setq id-sym (intern (vm-su-message-id m) vm-thread-obarray)
275
subject-sym (intern (vm-so-sortable-subject m)
276
vm-thread-subject-obarray))
279
(put id-sym 'messages (delq m (get id-sym 'messages)))
280
(vm-thread-mark-for-summary-update (get id-sym 'children))
281
(setq p-sym (symbol-value id-sym))
282
(and p-sym (put p-sym 'children
283
(delq m (get p-sym 'children))))
286
(if (and (boundp subject-sym) (setq vect (symbol-value subject-sym)))
287
(if (not (eq id-sym (aref vect 0)))
288
(aset vect 2 (delq m (aref vect 2)))
290
(if (null (cdr (aref vect 3)))
291
(makunbound subject-sym)
292
(let ((p (aref vect 3))
293
oldest-msg oldest-date children)
294
(setq oldest-msg (car p)
295
oldest-date (vm-so-sortable-datestring (car p))
298
(if (and (string-lessp (vm-so-sortable-datestring (car p))
300
(not (eq m (car p))))
301
(setq oldest-msg (car p)
302
oldest-date (vm-so-sortable-datestring (car p))))
304
(aset vect 0 (intern (vm-su-message-id oldest-msg)
306
(aset vect 1 oldest-date)
307
(setq children (delq oldest-msg (aref vect 2)))
308
(aset vect 2 children)
309
(aset vect 3 (delq m (aref vect 3)))
310
;; I'm not sure there aren't situations
311
;; where this might loop forever.
312
(let ((inhibit-quit nil))
313
(vm-thread-mark-for-summary-update children)))))))))
301
314
(setq mp (cdr mp))))))
303
316
(defun vm-th-references (m)