Don't use 'make-temp-file', fixes FFI/PUI.
[sxemacs] / lisp / text-props.el
1 ;;; text-props.el --- implements properties of characters
2
3 ;; Copyright (C) 1993-4, 1997  Free Software Foundation, Inc.
4 ;; Copyright (C) 1995 Amdahl Corporation.
5 ;; Copyright (C) 1995 Ben Wing.
6
7 ;; Author: Jamie Zawinski <jwz@jwz.org>
8 ;; Maintainer: SXEmacs Development Team
9 ;; Keywords: extensions, wp, faces, dumped
10
11 ;; This file is part of SXEmacs.
12
13 ;; SXEmacs is free software: you can redistribute it and/or modify
14 ;; it under the terms of the GNU General Public License as published by
15 ;; the Free Software Foundation, either version 3 of the License, or
16 ;; (at your option) any later version.
17
18 ;; SXEmacs is distributed in the hope that it will be useful,
19 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 ;; GNU General Public License for more details.
22
23 ;; You should have received a copy of the GNU General Public License
24 ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
25
26 ;;; Synched up with: Not in FSF.
27
28 ;;; Commentary:
29
30 ;; This file is dumped with SXEmacs.
31
32 ;; This is a nearly complete implementation of the FSF19 text properties API.
33 ;; Please let me know if you notice any differences in behavior between
34 ;; this implementation and the FSF implementation.
35
36 ;; However, keep in mind that this interface has been implemented because it
37 ;; is useful.  Compatibility with code written for FSF19 is a secondary goal
38 ;; to having a clean and useful interface.
39
40 ;; The cruftier parts of the FSF API, such as the special handling of
41 ;; properties like `mouse-face', `front-sticky', and other properties whose
42 ;; value is a list of names of *other* properties set at this position, are
43 ;; not implemented.  The reason for this is that if you feel you need that
44 ;; kind of functionality, it's a good hint that you should be using extents
45 ;; instead of text properties.
46
47 ;; When should I use Text Properties, and when should I use Extents?
48 ;; ==================================================================
49
50 ;; If you are putting a `button' or `hyperlink' of some kind into a buffer,
51 ;; the most natural interface is one which deals with properties of regions
52 ;; with explicit endpoints that behave more-or-less like markers.  That is
53 ;; what `make-extent', `extent-at', and `extent-property' are for.
54
55 ;; If you are dealing with styl