22 |
|
|
23 |
(unless (fboundp 'set-keymap-parents) |
(unless (fboundp 'set-keymap-parents) |
24 |
(defun set-keymap-parents (m parents) |
(defun set-keymap-parents (m parents) |
25 |
|
(if (keymapp parents) (setq parents (list parents))) |
26 |
(set-keymap-parent |
(set-keymap-parent |
27 |
m (reduce (lambda (m1 m2) |
m |
28 |
|
(if (cdr parents) |
29 |
|
(reduce (lambda (m1 m2) |
30 |
(let ((m (copy-keymap m1))) |
(let ((m (copy-keymap m1))) |
31 |
(set-keymap-parent m m2) m)) |
(set-keymap-parent m m2) m)) |
32 |
parents)))) |
parents |
33 |
|
:from-end t) |
34 |
|
(car parents))))) |
35 |
|
|
36 |
|
;; for XEmacs |
37 |
|
(when (and (not (boundp 'temporary-file-directory)) (fboundp 'temp-directory)) |
38 |
|
(defvar temporary-file-directory (temp-directory))) |
39 |
|
|
40 |
|
(unless (fboundp 'make-temp-file) |
41 |
|
;; Copied from Emacs-21's subr.el |
42 |
|
(defun make-temp-file (prefix &optional dir-flag) |
43 |
|
"Create a temporary file. |
44 |
|
The returned file name (created by appending some random characters at the end |
45 |
|
of PREFIX, and expanding against `temporary-file-directory' if necessary, |
46 |
|
is guaranteed to point to a newly created empty file. |
47 |
|
You can then use `write-region' to write new data into the file. |
48 |
|
|
49 |
|
If DIR-FLAG is non-nil, create a new empty directory instead of a file." |
50 |
|
(let (file) |
51 |
|
(while (condition-case () |
52 |
|
(progn |
53 |
|
(setq file |
54 |
|
(make-temp-name |
55 |
|
(expand-file-name prefix temporary-file-directory))) |
56 |
|
(if dir-flag |
57 |
|
(make-directory file) |
58 |
|
(write-region "" nil file nil 'silent nil 'excl)) |
59 |
|
nil) |
60 |
|
(file-already-exists t)) |
61 |
|
;; the file was somehow created by someone else between |
62 |
|
;; `make-temp-name' and `write-region', let's try again. |
63 |
|
nil) |
64 |
|
file))) |
65 |
|
|
66 |
|
|
67 |
;; |
;; |
68 |
(provide 'sml-compat) |
(provide 'sml-compat) |