Mercurial > emacs
annotate lisp/mh-e/mh-compat.el @ 69598:15befdcdc4e9
*** empty log message ***
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 20 Mar 2006 06:26:23 +0000 |
parents | 822a6a9bb8c9 |
children | a0de53f6c617 e3bacb89536a |
rev | line source |
---|---|
68465 | 1 ;;; mh-compat.el --- make MH-E compatibile with various versions of Emacs |
2 | |
3 ;; Copyright (C) 2006 Free Software Foundation, Inc. | |
4 | |
5 ;; Author: Bill Wohler <wohler@newt.com> | |
6 ;; Maintainer: Bill Wohler <wohler@newt.com> | |
7 ;; Keywords: mail | |
8 ;; See: mh-e.el | |
9 | |
10 ;; This file is part of GNU Emacs. | |
11 | |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
13 ;; it under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
16 | |
17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
25 ;; Boston, MA 02110-1301, USA. | |
26 | |
27 ;;; Commentary: | |
28 | |
29 ;;; Change Log: | |
30 | |
31 ;;; Code: | |
32 | |
33 ;; This is a good place to gather code that is used for compatibility | |
34 ;; between different versions of Emacs. Please document which versions | |
35 ;; of Emacs that the defsubst, defalias, or defmacro applies. That | |
36 ;; way, it's easy to occasionally go through this file and see which | |
37 ;; macros we can retire. | |
38 | |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
39 ;; Please use mh-gnus.el when providing compatibility with different |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
40 ;; versions of Gnus. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
41 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
42 ;; Items are listed alphabetically (except for mh-require which is |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
43 ;; needed by a lesser character). |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
44 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
45 (require 'mh-acros) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
46 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
47 (mh-do-in-gnu-emacs |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
48 (defalias 'mh-require 'require)) |
68465 | 49 |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
50 (mh-do-in-xemacs |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
51 (defun mh-require (feature &optional filename noerror) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
52 "If feature FEATURE is not loaded, load it from FILENAME. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
53 If FEATURE is not a member of the list `features', then the feature |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
54 is not loaded; so load the file FILENAME. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
55 If FILENAME is omitted, the printname of FEATURE is used as the file name. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
56 If the optional third argument NOERROR is non-nil, |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
57 then return nil if the file is not found instead of signaling an error. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
58 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
59 Simulate NOERROR argument in XEmacs which lacks it." |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
60 (if (not (featurep feature)) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
61 (if filename |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
62 (load filename noerror t) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
63 (load (format "%s" feature) noerror t))))) |
68465 | 64 |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
65 (mh-defun-compat mh-assoc-string assoc-string (key list case-fold) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
66 "Like `assoc' but specifically for strings. |
68465 | 67 Case is ignored if CASE-FOLD is non-nil. |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
68 This function is used by Emacs versions that lack `assoc-string', |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
69 introduced in Emacs 22." |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
70 (if case-fold |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
71 (assoc-ignore-case key list) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
72 (assoc key list))) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
73 |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
74 ;; For XEmacs. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
75 (defalias 'mh-cancel-timer |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
76 (if (fboundp 'cancel-timer) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
77 'cancel-timer |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
78 'delete-itimer)) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
79 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
80 (mh-defun-compat mh-display-color-cells display-color-cells (&optional display) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
81 "Return the number of color cells supported by DISPLAY. |
69186
4eb7009c53f4
* mh-compat.el (mh-display-color-cells): Return 2 if
Bill Wohler <wohler@newt.com>
parents:
68929
diff
changeset
|
82 This function is used by XEmacs to return 2 when |
4eb7009c53f4
* mh-compat.el (mh-display-color-cells): Return 2 if
Bill Wohler <wohler@newt.com>
parents:
68929
diff
changeset
|
83 `device-color-cells' returns nil. This happens when compiling or |
4eb7009c53f4
* mh-compat.el (mh-display-color-cells): Return 2 if
Bill Wohler <wohler@newt.com>
parents:
68929
diff
changeset
|
84 running on a tty and causes errors since `display-color-cells' is |
4eb7009c53f4
* mh-compat.el (mh-display-color-cells): Return 2 if
Bill Wohler <wohler@newt.com>
parents:
68929
diff
changeset
|
85 expected to return an integer." |
4eb7009c53f4
* mh-compat.el (mh-display-color-cells): Return 2 if
Bill Wohler <wohler@newt.com>
parents:
68929
diff
changeset
|
86 (or (device-color-cells display) 2)) |
68465 | 87 |
88 (defmacro mh-display-completion-list (completions &optional common-substring) | |
89 "Display the list of COMPLETIONS. | |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
90 See documentation for `display-completion-list' for a description of the |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
91 arguments COMPLETIONS and perhaps COMMON-SUBSTRING. |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
92 This macro is used by Emacs versions that lack a COMMON-SUBSTRING |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
93 argument, introduced in Emacs 22." |
68465 | 94 (if (< emacs-major-version 22) |
95 `(display-completion-list ,completions) | |
96 `(display-completion-list ,completions ,common-substring))) | |
97 | |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
98 (defmacro mh-face-foreground (face &optional frame inherit) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
99 "Return the foreground color name of FACE, or nil if unspecified. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
100 See documentation for `face-foreground' for a description of the |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
101 arguments FACE, FRAME, and perhaps INHERIT. |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
102 This macro is used by Emacs versions that lack an INHERIT argument, |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
103 introduced in Emacs 22." |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
104 (if (< emacs-major-version 22) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
105 `(face-foreground ,face ,frame) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
106 `(face-foreground ,face ,frame ,inherit))) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
107 |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
108 (defmacro mh-face-background (face &optional frame inherit) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
109 "Return the background color name of face, or nil if unspecified. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
110 See documentation for `back-foreground' for a description of the |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
111 arguments FACE, FRAME, and INHERIT. |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
112 This macro is used by Emacs versions that lack an INHERIT argument, |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
113 introduced in Emacs 22." |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
114 (if (< emacs-major-version 22) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
115 `(face-background ,face ,frame) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
116 `(face-background ,face ,frame ,inherit))) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
117 |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
118 (mh-defun-compat mh-image-load-path-for-library |
69364
4117123b24f3
(mh-image-load-path-for-library): Merged changes from Reiner. Add
Bill Wohler <wohler@newt.com>
parents:
69363
diff
changeset
|
119 image-load-path-for-library (library image &optional path no-error) |
69570
822a6a9bb8c9
(mh-image-load-path-for-library): Shorten first line in docstring.
Bill Wohler <wohler@newt.com>
parents:
69536
diff
changeset
|
120 "Return a suitable search path for images used by LIBRARY. |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
121 |
69536
052139add0ff
(mh-image-load-path-for-library): Minor docstring fix.
Bill Wohler <wohler@newt.com>
parents:
69518
diff
changeset
|
122 It searches for IMAGE in `image-load-path' (excluding |
69518
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
123 \"`data-directory'/images\") and `load-path', followed by a path |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
124 suitable for LIBRARY, which includes \"../../etc/images\" and |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
125 \"../etc/images\" relative to the library file itself, and then |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
126 in \"`data-directory'/images\". |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
127 |
69472
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
128 Then this function returns a list of directories which contains |
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
129 first the directory in which IMAGE was found, followed by the |
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
130 value of `load-path'. If PATH is given, it is used instead of |
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
131 `load-path'. |
69364
4117123b24f3
(mh-image-load-path-for-library): Merged changes from Reiner. Add
Bill Wohler <wohler@newt.com>
parents:
69363
diff
changeset
|
132 |
69472
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
133 If NO-ERROR is non-nil and a suitable path can't be found, don't |
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
134 signal an error. Instead, return a list of directories as before, |
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
135 except that nil appears in place of the image directory. |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
136 |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
137 Here is an example that uses a common idiom to provide |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
138 compatibility with versions of Emacs that lack the variable |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
139 `image-load-path': |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
140 |
69492
6afc0d1f682b
* mh-compat.el (mh-image-load-path-for-library): Fix example by not
Bill Wohler <wohler@newt.com>
parents:
69472
diff
changeset
|
141 ;; Shush compiler. |
6afc0d1f682b
* mh-compat.el (mh-image-load-path-for-library): Fix example by not
Bill Wohler <wohler@newt.com>
parents:
69472
diff
changeset
|
142 (defvar image-load-path) |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
143 |
69472
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
144 (let* ((load-path (image-load-path-for-library \"mh-e\" \"mh-logo.xpm\")) |
69492
6afc0d1f682b
* mh-compat.el (mh-image-load-path-for-library): Fix example by not
Bill Wohler <wohler@newt.com>
parents:
69472
diff
changeset
|
145 (image-load-path (cons (car load-path) |
6afc0d1f682b
* mh-compat.el (mh-image-load-path-for-library): Fix example by not
Bill Wohler <wohler@newt.com>
parents:
69472
diff
changeset
|
146 (when (boundp 'image-load-path) |
6afc0d1f682b
* mh-compat.el (mh-image-load-path-for-library): Fix example by not
Bill Wohler <wohler@newt.com>
parents:
69472
diff
changeset
|
147 image-load-path)))) |
69472
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
148 (mh-tool-bar-folder-buttons-init))" |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
149 (unless library (error "No library specified")) |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
150 (unless image (error "No image specified")) |
69518
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
151 (let (image-directory image-directory-load-path) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
152 ;; Check for images in image-load-path or load-path. |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
153 (let ((img image) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
154 (dir (or |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
155 ;; Images in image-load-path. |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
156 (mh-image-search-load-path image) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
157 ;; Images in load-path. |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
158 (locate-library image))) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
159 parent) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
160 ;; Since the image might be in a nested directory (for |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
161 ;; example, mail/attach.pbm), adjust `image-directory' |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
162 ;; accordingly. |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
163 (when dir |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
164 (setq dir (file-name-directory dir)) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
165 (while (setq parent (file-name-directory img)) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
166 (setq img (directory-file-name parent) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
167 dir (expand-file-name "../" dir)))) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
168 (setq image-directory-load-path dir)) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
169 |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
170 ;; If `image-directory-load-path' isn't Emacs' image directory, |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
171 ;; it's probably a user preference, so use it. Then use a |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
172 ;; relative setting if possible; otherwise, use |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
173 ;; `image-directory-load-path'. |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
174 (cond |
69518
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
175 ;; User-modified image-load-path? |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
176 ((and image-directory-load-path |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
177 (not (equal image-directory-load-path |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
178 (file-name-as-directory |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
179 (expand-file-name "images" data-directory))))) |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
180 (setq image-directory image-directory-load-path)) |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
181 ;; Try relative setting. |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
182 ((let (library-name d1ei d2ei) |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
183 ;; First, find library in the load-path. |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
184 (setq library-name (locate-library library)) |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
185 (if (not library-name) |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
186 (error "Cannot find library %s in load-path" library)) |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
187 ;; And then set image-directory relative to that. |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
188 (setq |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
189 ;; Go down 2 levels. |
69518
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
190 d2ei (file-name-as-directory |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
191 (expand-file-name |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
192 (concat (file-name-directory library-name) "../../etc/images"))) |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
193 ;; Go down 1 level. |
69518
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
194 d1ei (file-name-as-directory |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
195 (expand-file-name |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
196 (concat (file-name-directory library-name) "../etc/images")))) |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
197 (setq image-directory |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
198 ;; Set it to nil if image is not found. |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
199 (cond ((file-exists-p (expand-file-name image d2ei)) d2ei) |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
200 ((file-exists-p (expand-file-name image d1ei)) d1ei))))) |
69518
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
201 ;; Use Emacs' image directory. |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
202 (image-directory-load-path |
2f7238ff01ad
(mh-image-load-path-for-library): Prefer user's images.
Bill Wohler <wohler@newt.com>
parents:
69492
diff
changeset
|
203 (setq image-directory image-directory-load-path)) |
69364
4117123b24f3
(mh-image-load-path-for-library): Merged changes from Reiner. Add
Bill Wohler <wohler@newt.com>
parents:
69363
diff
changeset
|
204 (no-error |
4117123b24f3
(mh-image-load-path-for-library): Merged changes from Reiner. Add
Bill Wohler <wohler@newt.com>
parents:
69363
diff
changeset
|
205 (message "Could not find image %s for library %s" image library)) |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
206 (t |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
207 (error "Could not find image %s for library %s" image library))) |
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
208 |
69472
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
209 ;; Return an augmented `path' or `load-path'. |
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
210 (nconc (list image-directory) |
5259cc742763
* mh-compat.el (mh-image-load-path-for-library): Incorporate changes
Bill Wohler <wohler@newt.com>
parents:
69364
diff
changeset
|
211 (delete image-directory (copy-sequence (or path load-path)))))) |
69278
ade4a047af1b
* mh-compat.el (mh-image-load-path-for-library): Move here from
Bill Wohler <wohler@newt.com>
parents:
69186
diff
changeset
|
212 |
68929
3f537f106072
mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68746
diff
changeset
|
213 (mh-defun-compat mh-image-search-load-path |
3f537f106072
mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68746
diff
changeset
|
214 image-search-load-path (file &optional path) |
3f537f106072
mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68746
diff
changeset
|
215 "Emacs 21 and XEmacs don't have `image-search-load-path'. |
3f537f106072
mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68746
diff
changeset
|
216 This function returns nil on those systems." |
3f537f106072
mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68746
diff
changeset
|
217 nil) |
3f537f106072
mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68746
diff
changeset
|
218 |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
219 ;; For XEmacs. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
220 (defalias 'mh-line-beginning-position |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
221 (if (fboundp 'line-beginning-position) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
222 'line-beginning-position |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
223 'point-at-bol)) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
224 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
225 ;; For XEmacs. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
226 (defalias 'mh-line-end-position |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
227 (if (fboundp 'line-end-position) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
228 'line-end-position |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
229 'point-at-eol)) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
230 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
231 (mh-require 'mailabbrev nil t) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
232 (mh-defun-compat mh-mail-abbrev-make-syntax-table |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
233 mail-abbrev-make-syntax-table () |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
234 "Emacs 21 and XEmacs don't have `mail-abbrev-make-syntax-table'. |
68929
3f537f106072
mh-compat.el (mh-image-search-load-path): Compatibility code. Emacs 21 and
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68746
diff
changeset
|
235 This function returns nil on those systems." |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
236 nil) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
237 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
238 (mh-defun-compat mh-match-string-no-properties |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
239 match-string-no-properties (num &optional string) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
240 "Return string of text matched by last search, without text properties. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
241 This function is used by XEmacs that lacks `match-string-no-properties'. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
242 The function `buffer-substring-no-properties' is used instead. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
243 The argument STRING is ignored." |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
244 (buffer-substring-no-properties |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
245 (match-beginning num) (match-end num))) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
246 |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
247 (mh-defun-compat mh-replace-regexp-in-string replace-regexp-in-string |
68746
3741bfb4402f
(mh-replace-regexp-in-string): Add missing regexp argument.
Bill Wohler <wohler@newt.com>
parents:
68595
diff
changeset
|
248 (regexp rep string &optional fixedcase literal subexp start) |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
249 "Replace REGEXP with REP everywhere in STRING and return result. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
250 This function is used by XEmacs that lacks `replace-regexp-in-string'. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
251 The function `replace-in-string' is used instead. |
69363
7b2d244e58fe
(mh-replace-regexp-in-string): Pass the literal flag to
Bill Wohler <wohler@newt.com>
parents:
69278
diff
changeset
|
252 The arguments FIXEDCASE, SUBEXP, and START, used by |
7b2d244e58fe
(mh-replace-regexp-in-string): Pass the literal flag to
Bill Wohler <wohler@newt.com>
parents:
69278
diff
changeset
|
253 `replace-in-string' are ignored." |
7b2d244e58fe
(mh-replace-regexp-in-string): Pass the literal flag to
Bill Wohler <wohler@newt.com>
parents:
69278
diff
changeset
|
254 (replace-in-string string regexp rep literal)) |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
255 |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
256 ;; Copy of constant from url-util.el in Emacs 22; needed by Emacs 21. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
257 (if (not (boundp 'url-unreserved-chars)) |
68595
37aca5dcac0c
(mh-url-unreserved-chars): Fix typo from `mh-url-unresrved-chars'.
Peter Galbraith <galbraith@mixing.qc.dfo.ca>
parents:
68529
diff
changeset
|
258 (defconst mh-url-unreserved-chars |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
259 '( |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
260 ?a ?b ?c ?d ?e ?f ?g ?h ?i ?j ?k ?l ?m ?n ?o ?p ?q ?r ?s ?t ?u ?v ?w ?x ?y ?z |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
261 ?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K ?L ?M ?N ?O ?P ?Q ?R ?S ?T ?U ?V ?W ?X ?Y ?Z |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
262 ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
263 ?- ?_ ?. ?! ?~ ?* ?' ?\( ?\)) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
264 "A list of characters that are _NOT_ reserved in the URL spec. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
265 This is taken from RFC 2396.")) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
266 |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
267 (mh-defun-compat mh-url-hexify-string url-hexify-string (str) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
268 "Escape characters in a string. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
269 This is a copy of `url-hexify-string' from url-util.el in Emacs |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
270 22; needed by Emacs 21." |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
271 (mapconcat |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
272 (lambda (char) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
273 ;; Fixme: use a char table instead. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
274 (if (not (memq char mh-url-unreserved-chars)) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
275 (if (> char 255) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
276 (error "Hexifying multibyte character %s" str) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
277 (format "%%%02X" char)) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
278 (char-to-string char))) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
279 str "")) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
280 |
68529
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
281 (mh-defun-compat mh-view-mode-enter |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
282 view-mode-enter (&optional return-to exit-action) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
283 "Enter View mode. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
284 This function is used by XEmacs that lacks `view-mode-enter'. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
285 The function `view-mode' is used instead. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
286 The arguments RETURN-TO and EXIT-ACTION are ignored." |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
287 ;; Shush compiler. |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
288 (if return-to nil) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
289 (if exit-action nil) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
290 (view-mode 1)) |
7daec5f4a289
* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents:
68520
diff
changeset
|
291 |
68520
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
292 (defmacro mh-write-file-functions () |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
293 "Return `write-file-functions' if it exists. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
294 Otherwise return `local-write-file-hooks'. |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
295 This macro exists purely for compatibility. The former symbol is used |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
296 in Emacs 22 onward while the latter is used in previous versions and |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
297 XEmacs." |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
298 (if (boundp 'write-file-functions) |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
299 ''write-file-functions ;Emacs 22 on |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
300 ''local-write-file-hooks)) ;XEmacs |
6a7173abcf59
* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name argument
Bill Wohler <wohler@newt.com>
parents:
68470
diff
changeset
|
301 |
68465 | 302 (provide 'mh-compat) |
303 | |
304 ;; Local Variables: | |
305 ;; no-byte-compile: t | |
306 ;; indent-tabs-mode: nil | |
307 ;; sentence-end-double-space: nil | |
308 ;; End: | |
309 | |
68470 | 310 ;; arch-tag: 577b0eab-a5cd-45e1-8d9f-c1a426f4d73c |
68465 | 311 ;;; mh-compat.el ends here |