comparison lisp/vm/vm-undo.el @ 30:ec9a17fef872 r19-15b98

Import from CVS: tag r19-15b98
author cvs
date Mon, 13 Aug 2007 08:52:29 +0200
parents 859a2309aef8
children 131b0175ea99
comparison
equal deleted inserted replaced
29:7976500f47f9 30:ec9a17fef872
358 (not (save-excursion 358 (not (save-excursion
359 (set-buffer 359 (set-buffer
360 (vm-buffer-of 360 (vm-buffer-of
361 (vm-real-message-of m))) 361 (vm-real-message-of m)))
362 vm-folder-read-only)))) 362 vm-folder-read-only))))
363 (aset (vm-attributes-of m) attr-index flag)
364 (vm-mark-for-summary-update m)
365 (cond 363 (cond
366 ((not norecord) 364 ((not norecord)
367 (if (eq vm-flush-interval t)
368 (vm-stuff-virtual-attributes m)
369 (vm-set-modflag-of m t))
370 (setq vmp (cons (vm-real-message-of m) (vm-virtual-messages-of m))) 365 (setq vmp (cons (vm-real-message-of m) (vm-virtual-messages-of m)))
371 (while vmp 366 (while vmp
372 (if (eq (vm-attributes-of m) (vm-attributes-of (car vmp))) 367 (if (eq (vm-attributes-of m) (vm-attributes-of (car vmp)))
373 (setq m-list (cons (car vmp) m-list))) 368 (setq m-list (cons (car vmp) m-list)))
374 (setq vmp (cdr vmp))) 369 (setq vmp (cdr vmp)))
381 (vm-set-buffer-modified-p t) 376 (vm-set-buffer-modified-p t)
382 (vm-undo-record (list 'vm-set-buffer-modified-p nil)))) 377 (vm-undo-record (list 'vm-set-buffer-modified-p nil))))
383 (vm-undo-record (list function (car m-list) (not flag))) 378 (vm-undo-record (list function (car m-list) (not flag)))
384 (vm-undo-boundary) 379 (vm-undo-boundary)
385 (vm-increment vm-modification-counter)) 380 (vm-increment vm-modification-counter))
386 (setq m-list (cdr m-list))))))))) 381 (setq m-list (cdr m-list)))))
382 (aset (vm-attributes-of m) attr-index flag)
383 (vm-mark-for-summary-update m)
384 (if (not norecord)
385 (if (eq vm-flush-interval t)
386 (vm-stuff-virtual-attributes m)
387 (vm-set-modflag-of m t)))))))
388
387 389
388 (defun vm-set-labels (m labels) 390 (defun vm-set-labels (m labels)
389 (let ((m-list nil) 391 (let ((m-list nil)
390 (old-labels (vm-labels-of m)) 392 (old-labels (vm-labels-of m))
391 vmp) 393 vmp)
395 (not (save-excursion 397 (not (save-excursion
396 (set-buffer 398 (set-buffer
397 (vm-buffer-of 399 (vm-buffer-of
398 (vm-real-message-of m))) 400 (vm-real-message-of m)))
399 vm-folder-read-only)))) 401 vm-folder-read-only))))
400 (vm-set-labels-of m labels)
401 (vm-set-label-string-of m nil)
402 (vm-mark-for-summary-update m)
403 (if (eq vm-flush-interval t)
404 (vm-stuff-virtual-attributes m)
405 (vm-set-modflag-of m t))
406 (setq vmp (cons (vm-real-message-of m) (vm-virtual-messages-of m))) 402 (setq vmp (cons (vm-real-message-of m) (vm-virtual-messages-of m)))
407 (while vmp 403 (while vmp
408 (if (eq (vm-attributes-of m) (vm-attributes-of (car vmp))) 404 (if (eq (vm-attributes-of m) (vm-attributes-of (car vmp)))
409 (setq m-list (cons (car vmp) m-list))) 405 (setq m-list (cons (car vmp) m-list)))
410 (setq vmp (cdr vmp))) 406 (setq vmp (cdr vmp)))
417 (vm-set-buffer-modified-p t) 413 (vm-set-buffer-modified-p t)
418 (vm-undo-record (list 'vm-set-buffer-modified-p nil)))) 414 (vm-undo-record (list 'vm-set-buffer-modified-p nil))))
419 (vm-undo-record (list 'vm-set-labels m old-labels)) 415 (vm-undo-record (list 'vm-set-labels m old-labels))
420 (vm-undo-boundary) 416 (vm-undo-boundary)
421 (vm-increment vm-modification-counter)) 417 (vm-increment vm-modification-counter))
422 (setq m-list (cdr m-list))))))) 418 (setq m-list (cdr m-list)))
419 (vm-set-labels-of m labels)
420 (vm-set-label-string-of m nil)
421 (vm-mark-for-summary-update m)
422 (if (eq vm-flush-interval t)
423 (vm-stuff-virtual-attributes m)
424 (vm-set-modflag-of m t))))))
425
423 426
424 (defun vm-set-new-flag (m flag &optional norecord) 427 (defun vm-set-new-flag (m flag &optional norecord)
425 (vm-set-xxxx-flag m flag norecord 'vm-set-new-flag 0)) 428 (vm-set-xxxx-flag m flag norecord 'vm-set-new-flag 0))
426 429
427 (defun vm-set-unread-flag (m flag &optional norecord) 430 (defun vm-set-unread-flag (m flag &optional norecord)