ba820048c82c7bf818bd724f3b1ac64f8734be46
[elisp/apel.git] / emu-19.el
1 ;;; emu-19.el --- emu API implementation for Emacs 19.*
2
3 ;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc.
4
5 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
6 ;; Version: $Id: emu-19.el,v 7.16 1997/04/05 06:46:09 morioka Exp $
7 ;; Keywords: emulation, compatibility
8
9 ;; This file is part of emu.
10
11 ;; This program is free software; you can redistribute it and/or
12 ;; modify it under the terms of the GNU General Public License as
13 ;; published by the Free Software Foundation; either version 2, or (at
14 ;; your option) any later version.
15
16 ;; This program is distributed in the hope that it will be useful, but
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19 ;; General Public License for more details.
20
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 ;; Boston, MA 02111-1307, USA.
25
26 ;;; Code:
27
28 ;;; @ face
29 ;;;
30
31 (defun-maybe find-face (face)
32   (car (memq face (face-list)))
33   )
34
35
36 ;;; @ visible/invisible
37 ;;;
38
39 (defmacro enable-invisible ())
40
41 (defmacro end-of-invisible ())
42
43 (defun invisible-region (start end)
44   (if (save-excursion
45         (goto-char (1- end))
46         (eq (following-char) ?\n)
47         )
48       (setq end (1- end))
49     )
50   (put-text-property start end 'invisible t)
51   )
52
53 (defun visible-region (start end)
54   (put-text-property start end 'invisible nil)
55   )
56
57 (defun invisible-p (pos)
58   (get-text-property pos 'invisible)
59   )
60
61 (defun next-visible-point (pos)
62   (save-excursion
63     (goto-char (next-single-property-change pos 'invisible))
64     (if (eq (following-char) ?\n)
65         (forward-char)
66       )
67     (point)
68     ))
69
70
71 ;;; @ mouse
72 ;;;
73
74 (defvar mouse-button-1 [mouse-1])
75 (defvar mouse-button-2 [mouse-2])
76 (defvar mouse-button-3 [down-mouse-3])
77
78
79 ;;; @ string
80 ;;;
81
82 (defmacro char-list-to-string (char-list)
83   "Convert list of character CHAR-LIST to string. [emu-19.el]"
84   (` (mapconcat (function char-to-string)
85                 (, char-list)
86                 "")
87      ))
88
89
90 ;;; @ end
91 ;;;
92
93 (provide 'emu-19)
94
95 ;;; emu-19.el ends here