comparison lisp/vm/vm-misc.el @ 120:cca96a509cfe r20-1b12

Import from CVS: tag r20-1b12
author cvs
date Mon, 13 Aug 2007 09:25:29 +0200
parents 7d55a9ba150c
children 585fb297b004
comparison
equal deleted inserted replaced
119:d101af7320b8 120:cca96a509cfe
186 (insert string) 186 (insert string)
187 ;; correct for VM's uses of this function--- 187 ;; correct for VM's uses of this function---
188 ;; writing out message separators 188 ;; writing out message separators
189 (setq buffer-file-type nil) 189 (setq buffer-file-type nil)
190 ;; Tell XEmacs/MULE to pick the correct newline conversion. 190 ;; Tell XEmacs/MULE to pick the correct newline conversion.
191 (and (vm-xemacs-mule-p) 191 (and vm-xemacs-mule-p
192 (set-file-coding-system 'no-conversion nil)) 192 (set-file-coding-system 'no-conversion nil))
193 (write-region (point-min) (point-max) where t 'quiet)) 193 (write-region (point-min) (point-max) where t 'quiet))
194 (and temp-buffer (kill-buffer temp-buffer)))))) 194 (and temp-buffer (kill-buffer temp-buffer))))))
195 195
196 (defmacro vm-marker (pos &optional buffer) 196 (defmacro vm-marker (pos &optional buffer)
421 ((vectorp object) (apply 'vector (mapcar 'vm-copy object))) 421 ((vectorp object) (apply 'vector (mapcar 'vm-copy object)))
422 ((stringp object) (copy-sequence object)) 422 ((stringp object) (copy-sequence object))
423 ((markerp object) (copy-marker object)) 423 ((markerp object) (copy-marker object))
424 (t object))) 424 (t object)))
425 425
426 (defun vm-xemacs-p ()
427 (let ((case-fold-search nil))
428 (string-match "XEmacs" emacs-version)))
429
430 (defun vm-xemacs-mule-p ()
431 (and (vm-xemacs-p)
432 (featurep 'mule)
433 (fboundp 'set-file-coding-system)
434 (fboundp 'get-coding-system)))
435
436 (defun vm-fsfemacs-19-p ()
437 (and (string-match "^19" emacs-version)
438 (not (string-match "XEmacs\\|Lucid" emacs-version))))
439
440 ;; make-frame might be defined and still not work. This would 426 ;; make-frame might be defined and still not work. This would
441 ;; be true since the user could be running on a tty and using 427 ;; be true since the user could be running on a tty and using
442 ;; XEmacs 19.12, or using FSF Emacs 19.28 (or prior FSF Emacs versions). 428 ;; XEmacs 19.12, or using FSF Emacs 19.28 (or prior FSF Emacs versions).
443 ;; 429 ;;
444 ;; make-frame works on ttys in FSF Emacs 19.29, but other than 430 ;; make-frame works on ttys in FSF Emacs 19.29, but other than
459 (eq window-system 'ns) ;; NextStep 445 (eq window-system 'ns) ;; NextStep
460 (eq window-system 'win32))) 446 (eq window-system 'win32)))
461 (and (fboundp 'device-type) (eq (device-type) 'x)))) 447 (and (fboundp 'device-type) (eq (device-type) 'x))))
462 448
463 (defun vm-toolbar-support-possible-p () 449 (defun vm-toolbar-support-possible-p ()
464 (and (vm-xemacs-p) 450 (and vm-xemacs-p
465 (vm-multiple-frames-possible-p) 451 (vm-multiple-frames-possible-p)
466 (featurep 'toolbar))) 452 (featurep 'toolbar)))
467 453
468 (defun vm-multiple-fonts-possible-p () 454 (defun vm-multiple-fonts-possible-p ()
469 (or (eq window-system 'x) 455 (or (eq window-system 'x)
577 (or (get-file-buffer file) 563 (or (get-file-buffer file)
578 (and (fboundp 'file-truename) 564 (and (fboundp 'file-truename)
579 (get-file-buffer (file-truename file))))) 565 (get-file-buffer (file-truename file)))))
580 566
581 (defun vm-set-region-face (start end face) 567 (defun vm-set-region-face (start end face)
582 (cond ((fboundp 'make-overlay) 568 (let ((e (vm-make-extent start end)))
583 (let ((o (make-overlay start end))) 569 (vm-set-extent-property e 'face face)))
584 (overlay-put o 'face face)))
585 ((fboundp 'make-extent)
586 (let ((o (make-extent start end)))
587 (set-extent-property o 'face face)))))
588 570
589 (defun vm-default-buffer-substring-no-properties (beg end &optional buffer) 571 (defun vm-default-buffer-substring-no-properties (beg end &optional buffer)
590 (let ((s (if buffer 572 (let ((s (if buffer
591 (save-excursion 573 (save-excursion
592 (set-buffer buffer) 574 (set-buffer buffer)
596 (copy-sequence s))) 578 (copy-sequence s)))
597 579
598 (fset 'vm-buffer-substring-no-properties 580 (fset 'vm-buffer-substring-no-properties
599 (cond ((fboundp 'buffer-substring-no-properties) 581 (cond ((fboundp 'buffer-substring-no-properties)
600 (function buffer-substring-no-properties)) 582 (function buffer-substring-no-properties))
601 ((vm-xemacs-p) 583 (vm-xemacs-p
602 (function buffer-substring)) 584 (function buffer-substring))
603 (t (function vm-default-buffer-substring-no-properties)))) 585 (t (function vm-default-buffer-substring-no-properties))))
604 586
605 (defun vm-buffer-string-no-properties () 587 (defun vm-buffer-string-no-properties ()
606 (vm-buffer-substring-no-properties (point-min) (point-max))) 588 (vm-buffer-substring-no-properties (point-min) (point-max)))
615 (set-buffer target-buffer) 597 (set-buffer target-buffer)
616 (insert-buffer-substring buffer start end) 598 (insert-buffer-substring buffer start end)
617 (set-buffer buffer)) 599 (set-buffer buffer))
618 (set-buffer target-buffer))) 600 (set-buffer target-buffer)))
619 601
620 (if (fboundp 'overlay-get) 602 (if (not (fboundp 'vm-extent-property))
621 (fset 'vm-extent-property 'overlay-get) 603 (if (fboundp 'overlay-get)
622 (fset 'vm-extent-property 'extent-property)) 604 (fset 'vm-extent-property 'overlay-get)
623 605 (fset 'vm-extent-property 'extent-property)))
624 (if (fboundp 'overlay-put) 606
625 (fset 'vm-set-extent-property 'overlay-put) 607 (if (not (fboundp 'vm-set-extent-property))
626 (fset 'vm-set-extent-property 'set-extent-property)) 608 (if (fboundp 'overlay-put)
627 609 (fset 'vm-set-extent-property 'overlay-put)
628 (if (fboundp 'move-overlay) 610 (fset 'vm-set-extent-property 'set-extent-property)))
629 (fset 'vm-set-extent-endpoints 'move-overlay) 611
630 (fset 'vm-set-extent-endpoints 'set-extent-endpoints)) 612 (if (not (fboundp 'vm-set-extent-endpoints))
631 613 (if (fboundp 'move-overlay)
632 (if (fboundp 'make-overlay) 614 (fset 'vm-set-extent-endpoints 'move-overlay)
633 (fset 'vm-make-extent 'make-overlay) 615 (fset 'vm-set-extent-endpoints 'set-extent-endpoints)))
634 (fset 'vm-make-extent 'make-extent)) 616
635 617 (if (not (fboundp 'vm-make-extent))
636 (if (fboundp 'overlay-end) 618 (if (fboundp 'make-overlay)
637 (fset 'vm-extent-end-position 'overlay-end) 619 (fset 'vm-make-extent 'make-overlay)
638 (fset 'vm-extent-end-position 'extent-end-position)) 620 (fset 'vm-make-extent 'make-extent)))
639 621
640 (if (fboundp 'overlay-start) 622 (if (not (fboundp 'vm-extent-end-position))
641 (fset 'vm-extent-start-position 'overlay-start) 623 (if (fboundp 'overlay-end)
642 (fset 'vm-extent-start-position 'extent-start-position)) 624 (fset 'vm-extent-end-position 'overlay-end)
643 625 (fset 'vm-extent-end-position 'extent-end-position)))
644 (if (fboundp 'delete-overlay) 626
645 (fset 'vm-detach-extent 'delete-overlay) 627 (if (not (fboundp 'vm-extent-start-position))
646 (fset 'vm-detach-extent 'detach-extent)) 628 (if (fboundp 'overlay-start)
647 629 (fset 'vm-extent-start-position 'overlay-start)
648 (if (fboundp 'overlay-properties) 630 (fset 'vm-extent-start-position 'extent-start-position)))
649 (fset 'vm-extent-properties 'overlay-properties) 631
650 (fset 'vm-extent-properties 'extent-properties)) 632 (if (not (fboundp 'vm-detach-extent))
633 (if (fboundp 'delete-overlay)
634 (fset 'vm-detach-extent 'delete-overlay)
635 (fset 'vm-detach-extent 'detach-extent)))
636
637 (if (not (fboundp 'vm-extent-properties))
638 (if (fboundp 'overlay-properties)
639 (fset 'vm-extent-properties 'overlay-properties)
640 (fset 'vm-extent-properties 'extent-properties)))
651 641
652 (defun vm-copy-extent (e) 642 (defun vm-copy-extent (e)
653 (let ((props (vm-extent-properties e)) 643 (let ((props (vm-extent-properties e))
654 (ee (vm-make-extent (vm-extent-start-position e) 644 (ee (vm-make-extent (vm-extent-start-position e)
655 (vm-extent-end-position e)))) 645 (vm-extent-end-position e))))