X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=emu-xemacs.el;h=7815219b78abdcbef67e90135929a31b608618de;hb=b2b74cca50ed790f261e5f0139acb56fbdad7ac0;hp=f71e462c325dac4ae2d4c490d9b4ebbbcfa3685c;hpb=a0aec09f71b2a793ed996f1b37237d688e5c35b3;p=elisp%2Fapel.git diff --git a/emu-xemacs.el b/emu-xemacs.el index f71e462..7815219 100644 --- a/emu-xemacs.el +++ b/emu-xemacs.el @@ -1,33 +1,33 @@ -;;; -;;; emu-xemacs.el --- Emacs 19 emulation module for XEmacs -;;; -;;; Copyright (C) 1995 Free Software Foundation, Inc. -;;; Copyright (C) 1995 MORIOKA Tomohiko -;;; -;;; Author: MORIOKA Tomohiko -;;; Version: -;;; $Id: emu-xemacs.el,v 7.8 1996/05/26 02:13:21 morioka Exp $ -;;; Keywords: emulation, compatibility, XEmacs -;;; -;;; This file is part of tl (Tiny Library). -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with This program. If not, write to the Free Software -;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -;;; +;;; emu-xemacs.el --- emu API implementation for XEmacs + +;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995,1996,1997 MORIOKA Tomohiko + +;; Author: MORIOKA Tomohiko +;; Version: +;; $Id: emu-xemacs.el,v 7.19 1997/04/05 06:50:48 morioka Exp $ +;; Keywords: emulation, compatibility, XEmacs + +;; This file is part of XEmacs. + +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or (at +;; your option) any later version. + +;; This program is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +;; 02111-1307, USA. + ;;; Code: -;;; @ text property +;;; @ face ;;; (or (fboundp 'face-list) @@ -42,41 +42,32 @@ (or (face-differs-from-default-p 'underline) (set-face-underline-p 'underline t)) -(or (fboundp 'tl:set-text-properties) - (defun tl:set-text-properties (start end props &optional buffer) - (if (or (null buffer) (bufferp buffer)) - (if props - (while props - (put-text-property - start end (car props) (nth 1 props) buffer) - (setq props (nthcdr 2 props))) - (remove-text-properties start end ()) - ))) - ) - -(defun tl:add-text-properties (start end properties) - (add-text-properties start end - (append properties (list 'highlight t)) - ) - ) -(defalias 'tl:make-overlay 'make-extent) -(defalias 'tl:overlay-put 'set-extent-property) -(defalias 'tl:overlay-buffer 'extent-buffer) +;;; @ overlay +;;; -(defun tl:move-overlay (extent start end &optional buffer) - (set-extent-endpoints extent start end) - ) +(condition-case nil + (require 'overlay) + (error (defalias 'make-overlay 'make-extent) + (defalias 'overlay-put 'set-extent-property) + (defalias 'overlay-buffer 'extent-buffer) + (defun move-overlay (extent start end &optional buffer) + (set-extent-endpoints extent start end) + ) + )) -;;; @@ visible/invisible +;;; @ visible/invisible ;;; +(defmacro enable-invisible ()) + +(defmacro end-of-invisible ()) + (defun invisible-region (start end) (if (save-excursion (goto-char start) - (eq (following-char) ?\n) - ) + (eq (following-char) ?\n)) (setq start (1+ start)) ) (put-text-property start end 'invisible t) @@ -89,8 +80,7 @@ (defun invisible-p (pos) (if (save-excursion (goto-char pos) - (eq (following-char) ?\n) - ) + (eq (following-char) ?\n)) (setq pos (1+ pos)) ) (get-text-property pos 'invisible) @@ -100,12 +90,11 @@ (save-excursion (if (save-excursion (goto-char pos) - (eq (following-char) ?\n) - ) + (eq (following-char) ?\n)) (setq pos (1+ pos)) ) - (next-single-property-change pos 'invisible) - )) + (or (next-single-property-change pos 'invisible) + (point-max)))) ;;; @ mouse @@ -123,8 +112,7 @@ (defun dired-other-frame (dirname &optional switches) "\"Edit\" directory DIRNAME. Like `dired' but makes a new frame." (interactive (dired-read-dir-and-switches "in other frame ")) - (switch-to-buffer-other-frame (dired-noselect dirname switches)) - ) + (switch-to-buffer-other-frame (dired-noselect dirname switches))) ) @@ -136,6 +124,28 @@ `(mapconcat #'char-to-string ,char-list "")) +;;; @@ to avoid bug of XEmacs 19.14 +;;; + +(or (string-match "^../" + (file-relative-name "/usr/local/share" "/usr/local/lib")) + ;; This function was imported from Emacs 19.33. + (defun file-relative-name (filename &optional directory) + "Convert FILENAME to be relative to DIRECTORY +(default: default-directory). [emu-xemacs.el]" + (setq filename (expand-file-name filename) + directory (file-name-as-directory + (expand-file-name + (or directory default-directory)))) + (let ((ancestor "")) + (while (not (string-match (concat "^" (regexp-quote directory)) + filename)) + (setq directory (file-name-directory (substring directory 0 -1)) + ancestor (concat "../" ancestor))) + (concat ancestor (substring filename (match-end 0))))) + ) + + ;;; @ end ;;;