comparison lisp/vm/vm-misc.el @ 24:4103f0995bd7 r19-15b95

Import from CVS: tag r19-15b95
author cvs
date Mon, 13 Aug 2007 08:51:03 +0200
parents 859a2309aef8
children 441bb1e64a06
comparison
equal deleted inserted replaced
23:0edd3412f124 24:4103f0995bd7
102 (unwind-protect 102 (unwind-protect
103 (save-excursion 103 (save-excursion
104 (setq temp-buffer (generate-new-buffer "*vm-work*")) 104 (setq temp-buffer (generate-new-buffer "*vm-work*"))
105 (set-buffer temp-buffer) 105 (set-buffer temp-buffer)
106 (insert string) 106 (insert string)
107 ;; correct for VM's uses of this function---
108 ;; writing out message separators
109 (setq buffer-file-type nil)
110 ;; Tell XEmacs/MULE to pick the correct newline conversion.
111 (and (fboundp 'set-file-coding-system)
112 (set-file-coding-system 'no-conversion nil))
107 (write-region (point-min) (point-max) where t 'quiet)) 113 (write-region (point-min) (point-max) where t 'quiet))
108 (and temp-buffer (kill-buffer temp-buffer)))))) 114 (and temp-buffer (kill-buffer temp-buffer))))))
109 115
110 (defmacro vm-marker (pos &optional buffer) 116 (defmacro vm-marker (pos &optional buffer)
111 (list 'set-marker '(make-marker) pos buffer)) 117 (list 'set-marker '(make-marker) pos buffer))
267 (while list 273 (while list
268 (setq sym-string 274 (setq sym-string
269 (if hack-addresses 275 (if hack-addresses
270 (nth 1 (funcall vm-chop-full-name-function (car list))) 276 (nth 1 (funcall vm-chop-full-name-function (car list)))
271 (car list)) 277 (car list))
278 sym-string (or sym-string "-unparseable-garbage-")
272 sym (intern sym-string hashtable)) 279 sym (intern sym-string hashtable))
273 (if (boundp sym) 280 (if (boundp sym)
274 (and all (setcar (symbol-value sym) nil)) 281 (and all (setcar (symbol-value sym) nil))
275 (setq new-list (cons (car list) new-list)) 282 (setq new-list (cons (car list) new-list))
276 (set sym new-list)) 283 (set sym new-list))
373 380
374 (defun vm-toolbar-support-possible-p () 381 (defun vm-toolbar-support-possible-p ()
375 (and (vm-xemacs-p) 382 (and (vm-xemacs-p)
376 (vm-multiple-frames-possible-p) 383 (vm-multiple-frames-possible-p)
377 (featurep 'toolbar))) 384 (featurep 'toolbar)))
385
386 (defun vm-multiple-fonts-possible-p ()
387 (or (eq window-system 'x)
388 (and (fboundp 'device-type)
389 (eq (device-type) 'x))))
378 390
379 (defun vm-run-message-hook (message &optional hook-variable) 391 (defun vm-run-message-hook (message &optional hook-variable)
380 (save-excursion 392 (save-excursion
381 (set-buffer (vm-buffer-of message)) 393 (set-buffer (vm-buffer-of message))
382 (vm-save-restriction 394 (vm-save-restriction
557 (let ((props (vm-extent-properties e)) 569 (let ((props (vm-extent-properties e))
558 (ee (vm-make-extent (vm-extent-start-position e) 570 (ee (vm-make-extent (vm-extent-start-position e)
559 (vm-extent-end-position e)))) 571 (vm-extent-end-position e))))
560 (while props 572 (while props
561 (vm-set-extent-property ee (car props) (car (cdr props))) 573 (vm-set-extent-property ee (car props) (car (cdr props)))
562 (setq props (cdr props))))) 574 (setq props (cdr (cdr props))))))
563 575
564 (defun vm-make-tempfile-name () 576 (defun vm-make-tempfile-name ()
565 (let ((done nil) (pid (emacs-pid)) filename) 577 (let ((done nil) (pid (emacs-pid)) filename)
566 (while (not done) 578 (while (not done)
567 (setq filename (format "%s/vm%d.%d" vm-temp-file-directory pid 579 (setq filename (format "%s/vm%d.%d" vm-temp-file-directory pid
596 608
597 (defun vm-set-buffer-variable (buffer var value) 609 (defun vm-set-buffer-variable (buffer var value)
598 (save-excursion 610 (save-excursion
599 (set-buffer buffer) 611 (set-buffer buffer)
600 (set var value))) 612 (set var value)))
613
614 (defun vm-buffer-variable-value (buffer var)
615 (save-excursion
616 (set-buffer buffer)
617 (symbol-value var)))
601 618
602 (defsubst vm-with-string-as-temp-buffer (string function) 619 (defsubst vm-with-string-as-temp-buffer (string function)
603 (let ((work-buffer nil)) 620 (let ((work-buffer nil))
604 (unwind-protect 621 (unwind-protect
605 (save-excursion 622 (save-excursion
607 (set-buffer work-buffer) 624 (set-buffer work-buffer)
608 (insert string) 625 (insert string)
609 (funcall function) 626 (funcall function)
610 (buffer-string)) 627 (buffer-string))
611 (and work-buffer (kill-buffer work-buffer))))) 628 (and work-buffer (kill-buffer work-buffer)))))
629
630 (defmacro vm-with-virtual-selector-variables (&rest forms)
631 (append '(let ((any 'vm-vs-any)
632 (and 'vm-vs-and)
633 (or 'vm-vs-or)
634 (not 'vm-vs-not)
635 (header 'vm-vs-header)
636 (label 'vm-vs-label)
637 (text 'vm-vs-text)
638 (recipient 'vm-vs-recipient)
639 (author 'vm-vs-author)
640 (subject 'vm-vs-subject)
641 (sent-before 'vm-vs-sent-before)
642 (sent-after 'vm-vs-sent-after)
643 (more-chars-than 'vm-vs-more-chars-than)
644 (less-chars-than 'vm-vs-less-chars-than)
645 (more-lines-than 'vm-vs-more-lines-than)
646 (less-lines-than 'vm-vs-less-lines-than)
647 (new 'vm-vs-new)
648 (unread 'vm-vs-unread)
649 (read 'vm-vs-read)
650 (deleted 'vm-vs-deleted)
651 (replied 'vm-vs-replied)
652 (forwarded 'vm-vs-forwarded)
653 (filed 'vm-vs-filed)
654 (written 'vm-vs-written)
655 (edited 'vm-vs-edited)
656 (marked 'vm-vs-marked)))
657 forms))
658
659 (defun vm-string-assoc (elt list)
660 (let ((case-fold-search t)
661 (found nil)
662 (elt (regexp-quote elt)))
663 (while (and list (not found))
664 (if (and (equal 0 (string-match elt (car (car list))))
665 (= (match-end 0) (length (car (car list)))))
666 (setq found t)
667 (setq list (cdr list))))
668 (car list)))
669
670 (defun vm-string-member (elt list)
671 (let ((case-fold-search t)
672 (found nil)
673 (elt (regexp-quote elt)))
674 (while (and list (not found))
675 (if (and (equal 0 (string-match elt (car list)))
676 (= (match-end 0) (length (car list))))
677 (setq found t)
678 (setq list (cdr list))))
679 list))