aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorEli Zaretskii2010-02-13 08:18:46 -0500
committerEli Zaretskii2010-02-13 08:18:46 -0500
commit36447e8d1f292611ce4db90e8fda8f3e25333747 (patch)
treeff731eb7f0b9651d55808eaa167e2e6dd5bc3fa1 /lisp
parent9a0d7cf1aaffb76aaf4a94f5124795dd9d7c8aed (diff)
parent98599f74d03c2dd4b6ac90d68266c508c5e0342e (diff)
downloademacs-36447e8d1f292611ce4db90e8fda8f3e25333747.tar.gz
emacs-36447e8d1f292611ce4db90e8fda8f3e25333747.zip
Merge from mainline.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog107
-rw-r--r--lisp/arc-mode.el5
-rw-r--r--lisp/bookmark.el36
-rw-r--r--lisp/erc/ChangeLog4
-rw-r--r--lisp/erc/erc-services.el6
-rw-r--r--lisp/eshell/em-ls.el50
-rw-r--r--lisp/eshell/esh-util.el9
-rw-r--r--lisp/faces.el4
-rw-r--r--lisp/ffap.el3
-rw-r--r--lisp/info.el2
-rw-r--r--lisp/international/mule-util.el2
-rw-r--r--lisp/iswitchb.el25
-rw-r--r--lisp/ls-lisp.el1
-rw-r--r--lisp/man.el9
-rw-r--r--lisp/progmodes/ada-mode.el5
-rw-r--r--lisp/progmodes/f90.el44
-rw-r--r--lisp/subr.el12
-rw-r--r--lisp/term/xterm.el1
-rw-r--r--lisp/textmodes/artist.el16
19 files changed, 231 insertions, 110 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cbada0d62c6..702f283a9ff 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,87 @@
12010-02-12 Juri Linkov <juri@jurta.org>
2
3 * arc-mode.el (archive-unique-fname): Make directories for nested
4 archives. (Bug#5540)
5
62010-02-12 Juri Linkov <juri@jurta.org>
7
8 * ffap.el (dired-at-point): Fix docstring. (Bug#5565)
9
102010-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
11
12 * subr.el (copy-overlay): Handle deleted overlays.
13
14 * man.el (Man-completion-table): Don't signal an error if we can't run
15 manual-program (bug#4056).
16
172010-02-10 Juanma Barranquero <lekktu@gmail.com>
18
19 * textmodes/artist.el (artist-mt): Fix typos in docstring.
20
212010-02-10 Thierry Volpiatto <thierry.volpiatto@gmail.com>
22
23 * info.el (Info-bookmark-jump): Simplify.
24
25 * bookmark.el (bookmark-handle-bookmark): Catch the right error.
26 (bookmark-default-handler): Accept new bookmark field `buffer'.
27
282010-02-10 Chong Yidong <cyd@stupidchicken.com>
29
30 * iswitchb.el (iswitchb-completions): Revert last change.
31
322010-02-10 Michael Albinus <michael.albinus@gmx.de>
33
34 * ls-lisp.el (ls-lisp-insert-directory): When WILDCARD-REGEXP and
35 FULL-DIRECTORY-P are nil, and FILE is absolute, expand it.
36 This prevents file names like "~/" being listed literally.
37
382010-02-10 Dan Nicolaescu <dann@ics.uci.edu>
39
40 * term/xterm.el (xterm-maybe-set-dark-background-mode):
41 Remove dead code. (Bug#5546)
42
432010-02-09 Chong Yidong <cyd@stupidchicken.com>
44
45 * eshell/em-ls.el (eshell-ls-applicable): Frob file attributes
46 correctly (Bug#5548).
47
482010-02-08 Jose E. Marchesi <jemarch@gnu.org>
49
50 * progmodes/ada-mode.el (ada-in-numeric-literal-p): New function.
51 (ada-adjust-case): Don't adjust case in hexadecimal number
52 literals.
53
542010-02-08 Kenichi Handa <handa@m17n.org>
55
56 * international/mule-util.el (with-coding-priority): Add autoload
57 cookie for putting `lisp-indent-function'.
58
592010-02-07 Glenn Morris <rgm@gnu.org>
60
61 * progmodes/f90.el (f90-font-lock-keywords-1, f90-font-lock-keywords-2):
62 Move F2003 named interfaces from keywords-2 to keywords-1, and
63 use function-name-face rather than constant-face.
64 Simplify "abstract interface" regexp.
65
662010-02-07 Chong Yidong <cyd@stupidchicken.com>
67
68 * eshell/esh-util.el (eshell-file-attributes): New optional arg
69 ID-FORMAT. Pass it to `file-attributes'.
70
71 * eshell/em-ls.el (eshell-do-ls): Use it (Bug#5528).
72
732010-02-07 sj <prime.wizard+emacs@gmail.com> (tiny change)
74
75 * faces.el (set-face-attribute): Allow calling
76 internal-set-lisp-face-attribute with 'unspecified family and
77 foundry argument (Bug#5536).
78
792010-02-07 Glenn Morris <rgm@gnu.org>
80
81 * progmodes/f90.el (f90-font-lock-keywords-2)
82 (f90-looking-at-type-like, f90-looking-at-program-block-end):
83 Handle F2003 named interfaces.
84
12010-02-06 Chong Yidong <cyd@stupidchicken.com> 852010-02-06 Chong Yidong <cyd@stupidchicken.com>
2 86
3 * progmodes/cc-mode.el (c-common-init): Bind temporary variables 87 * progmodes/cc-mode.el (c-common-init): Bind temporary variables
@@ -246,10 +330,9 @@
246 330
2472010-01-25 Mark A. Hershberger <mah@everybody.org> 3312010-01-25 Mark A. Hershberger <mah@everybody.org>
248 332
249 * progmodes/python.el: Replace reference to obsolete 333 * progmodes/python.el: Replace reference to obsolete c-subword-mode.
250 c-subward-mode.
251 334
252 * vc-bzr.el: (vc-bzr-revision-table) New function. 335 * vc-bzr.el (vc-bzr-revision-table): New function.
253 336
2542010-01-25 Eric Hanchrow <eric.hanchrow@gmail.com> (tiny change) 3372010-01-25 Eric Hanchrow <eric.hanchrow@gmail.com> (tiny change)
255 338
@@ -282,7 +365,7 @@
282 365
2832010-01-23 Stephen Leake <stephen_leake@member.fsf.org> 3662010-01-23 Stephen Leake <stephen_leake@member.fsf.org>
284 367
285 * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax 368 * progmodes/ada-mode.el (ada-in-paramlist-p): Pragma syntax
286 is the same as subprogram call, not declaration. (Bug#5435). 369 is the same as subprogram call, not declaration. (Bug#5435).
287 370
2882010-01-23 Michael Albinus <michael.albinus@gmx.de> 3712010-01-23 Michael Albinus <michael.albinus@gmx.de>
@@ -3678,7 +3761,7 @@
3678 (verilog-read-decls): Fix AUTOREG not detecting "assign {a,b}". 3761 (verilog-read-decls): Fix AUTOREG not detecting "assign {a,b}".
3679 Reported by Wade Smith. 3762 Reported by Wade Smith.
3680 3763
3681 (verilog-batch-execute-func) Comment on function usage. 3764 (verilog-batch-execute-func): Comment on function usage.
3682 3765
36832009-11-05 Michael McNamara <mac@mail.brushroad.com> 37662009-11-05 Michael McNamara <mac@mail.brushroad.com>
3684 3767
@@ -4335,7 +4418,7 @@
4335 (tramp-handle-file-truename): Use it. 4418 (tramp-handle-file-truename): Use it.
4336 (tramp-handle-file-exists-p): Check file-attributes cache, assume 4419 (tramp-handle-file-exists-p): Check file-attributes cache, assume
4337 file exists if cache value present. 4420 file exists if cache value present.
4338 (tramp-check-cached-permissions) New defun. 4421 (tramp-check-cached-permissions): New defun.
4339 (tramp-handle-file-readable-p): Use it. 4422 (tramp-handle-file-readable-p): Use it.
4340 (tramp-handle-file-writable-p): Likewise. 4423 (tramp-handle-file-writable-p): Likewise.
4341 (tramp-handle-file-executable-p): Likewise. 4424 (tramp-handle-file-executable-p): Likewise.
@@ -4566,7 +4649,7 @@
4566 from `rfn-eshadow-update-overlay-hook' when unloading. 4649 from `rfn-eshadow-update-overlay-hook' when unloading.
4567 (tramp-methods): Add `tramp-copy-keep-tmpfile' for "rsync" and 4650 (tramp-methods): Add `tramp-copy-keep-tmpfile' for "rsync" and
4568 "rsyncc". Adjust doc string. 4651 "rsyncc". Adjust doc string.
4569 (tramp-temp-buffer-file-name) New buffer-local defvar. 4652 (tramp-temp-buffer-file-name): New buffer-local defvar.
4570 (tramp-handle-insert-file-contents, tramp-handle-write-region): 4653 (tramp-handle-insert-file-contents, tramp-handle-write-region):
4571 Keep temporary file when indicated by method ("rsync" and 4654 Keep temporary file when indicated by method ("rsync" and
4572 "rsyncc"). 4655 "rsyncc").
@@ -7978,7 +8061,7 @@
7978 Don't modify last-coding-system-used by accident. 8061 Don't modify last-coding-system-used by accident.
7979 (tramp-completion-file-name-handler): Apply the checks here, 8062 (tramp-completion-file-name-handler): Apply the checks here,
7980 instead during registration. 8063 instead during registration.
7981 (tramp-register-file-name-handlers) Renamed from 8064 (tramp-register-file-name-handlers): Renamed from
7982 `tramp-register-file-name-handler'. Register both 8065 `tramp-register-file-name-handler'. Register both
7983 `tramp-file-name-handler' and `tramp-completion-file-name-handler'. 8066 `tramp-file-name-handler' and `tramp-completion-file-name-handler'.
7984 (tramp-register-completion-file-name-handler): Remove. (Bug#4260) 8067 (tramp-register-completion-file-name-handler): Remove. (Bug#4260)
@@ -10072,7 +10155,7 @@
10072 10155
10073 * net/tramp.el (tramp-do-copy-or-rename-file-directly): 10156 * net/tramp.el (tramp-do-copy-or-rename-file-directly):
10074 Handle also the 'rename case, when setting file modes. (Bug#3712) 10157 Handle also the 'rename case, when setting file modes. (Bug#3712)
10075 (tramp-default-file-modes) Remove execute permissions. 10158 (tramp-default-file-modes): Remove execute permissions.
10076 10159
10077 * net/tramp-gvfs.el (tramp-gvfs-methods): Add "synce" method. 10160 * net/tramp-gvfs.el (tramp-gvfs-methods): Add "synce" method.
10078 (top): Add a default for "synce" in `tramp-default-user-alist'. 10161 (top): Add a default for "synce" in `tramp-default-user-alist'.
@@ -10097,7 +10180,7 @@
10097 10180
10098 * language/chinese.el ("Chinese-GB", "Chinese-BIG5") 10181 * language/chinese.el ("Chinese-GB", "Chinese-BIG5")
10099 ("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"): Add a 10182 ("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"): Add a
10100 setup-funcion to make char-widht-table suitable for respective 10183 setup-function to make char-width-table suitable for respective
10101 environments, and an exit-function to cancel that. 10184 environments, and an exit-function to cancel that.
10102 10185
10103 * language/japan-util.el (setup-japanese-environment-internal): 10186 * language/japan-util.el (setup-japanese-environment-internal):
@@ -10157,7 +10240,7 @@
10157 to support safe execution at almost anyline. 10240 to support safe execution at almost anyline.
10158 (verilog-calc-1): Properly support indenting deep inside generate 10241 (verilog-calc-1): Properly support indenting deep inside generate
10159 blocks. 10242 blocks.
10160 (verilog-init-font) Remove definition & use of verilog-init-font, 10243 (verilog-init-font): Remove definition & use of verilog-init-font,
10161 as it is redundant with font-lock-defaults. 10244 as it is redundant with font-lock-defaults.
10162 (verilog-mode): Alter the definition of verilog-font-lock-defaults 10245 (verilog-mode): Alter the definition of verilog-font-lock-defaults
10163 to avoid circular calls if syntax-ppss is a function (as is the 10246 to avoid circular calls if syntax-ppss is a function (as is the
@@ -10171,7 +10254,7 @@
10171 (verilog-defun-level-not-generate-re, verilog-defun-level-re) 10254 (verilog-defun-level-not-generate-re, verilog-defun-level-re)
10172 (verilog-defun-level-generate-only-re): Really fix the defun-list 10255 (verilog-defun-level-generate-only-re): Really fix the defun-list
10173 compilation issue. 10256 compilation issue.
10174 (verilog-calc-1) (verilog-beg-of-statement): Enhance support for 10257 (verilog-calc-1, verilog-beg-of-statement): Enhance support for
10175 coverpoint, constraint and cross statements. 10258 coverpoint, constraint and cross statements.
10176 (verilog-defun-level-list, verilog-generate-defun-level-list) 10259 (verilog-defun-level-list, verilog-generate-defun-level-list)
10177 (verilog-all-defun-level-list): Redo these specifications - it is 10260 (verilog-all-defun-level-list): Redo these specifications - it is
diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el
index ee32d893654..5942e920a65 100644
--- a/lisp/arc-mode.el
+++ b/lisp/arc-mode.el
@@ -834,6 +834,11 @@ using `make-temp-file', and the generated name is returned."
834 ;; reconstructed in the temporary directory. 834 ;; reconstructed in the temporary directory.
835 (make-directory (file-name-directory tmpfile) t) 835 (make-directory (file-name-directory tmpfile) t)
836 (make-temp-file tmpfile)) 836 (make-temp-file tmpfile))
837 ;; Maked sure all the leading directories in `fullname' exist
838 ;; under archive-tmpdir. This is necessary for nested archives
839 ;; (`archive-extract' sets `archive-remote' to t in case
840 ;; an archive occurs inside another archive).
841 (make-directory (file-name-directory fullname) t)
837 fullname))) 842 fullname)))
838 843
839(defun archive-maybe-copy (archive) 844(defun archive-maybe-copy (archive)
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 5af6ab91cc3..49abea5d3e3 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1068,7 +1068,7 @@ that file no longer exists, then offer interactively to relocate BOOKMARK."
1068 (funcall (or (bookmark-get-handler bookmark) 1068 (funcall (or (bookmark-get-handler bookmark)
1069 'bookmark-default-handler) 1069 'bookmark-default-handler)
1070 (bookmark-get-bookmark bookmark)) 1070 (bookmark-get-bookmark bookmark))
1071 (file-error 1071 (bookmark-error-no-filename ;file-error
1072 ;; We were unable to find the marked file, so ask if user wants to 1072 ;; We were unable to find the marked file, so ask if user wants to
1073 ;; relocate the bookmark, else remind them to consider deletion. 1073 ;; relocate the bookmark, else remind them to consider deletion.
1074 (when (stringp bookmark) 1074 (when (stringp bookmark)
@@ -1116,24 +1116,28 @@ that file no longer exists, then offer interactively to relocate BOOKMARK."
1116BMK-RECORD is a bookmark record, not a bookmark name (i.e., not a string). 1116BMK-RECORD is a bookmark record, not a bookmark name (i.e., not a string).
1117Changes current buffer and point and returns nil, or signals a `file-error'." 1117Changes current buffer and point and returns nil, or signals a `file-error'."
1118 (let ((file (bookmark-get-filename bmk-record)) 1118 (let ((file (bookmark-get-filename bmk-record))
1119 (buf (bookmark-prop-get bmk-record 'buffer))
1119 (forward-str (bookmark-get-front-context-string bmk-record)) 1120 (forward-str (bookmark-get-front-context-string bmk-record))
1120 (behind-str (bookmark-get-rear-context-string bmk-record)) 1121 (behind-str (bookmark-get-rear-context-string bmk-record))
1121 (place (bookmark-get-position bmk-record))) 1122 (place (bookmark-get-position bmk-record)))
1122 (if (not file) 1123 (set-buffer
1123 (signal 'bookmark-error-no-filename (list 'stringp file)) 1124 (cond
1124 (set-buffer (find-file-noselect file)) 1125 ((and file (file-readable-p file) (not (buffer-live-p buf)))
1125 (if place (goto-char place)) 1126 (find-file-noselect file))
1126 ;; Go searching forward first. Then, if forward-str exists and 1127 ;; No file found. See if buffer BUF have been created.
1127 ;; was found in the file, we can search backward for behind-str. 1128 ((and buf (get-buffer buf)))
1128 ;; Rationale is that if text was inserted between the two in the 1129 (t ;; If not, raise error.
1129 ;; file, it's better to be put before it so you can read it, 1130 (signal 'bookmark-error-no-filename (list 'stringp file)))))
1130 ;; rather than after and remain perhaps unaware of the changes. 1131 (if place (goto-char place))
1131 (if forward-str 1132 ;; Go searching forward first. Then, if forward-str exists and
1132 (if (search-forward forward-str (point-max) t) 1133 ;; was found in the file, we can search backward for behind-str.
1133 (goto-char (match-beginning 0)))) 1134 ;; Rationale is that if text was inserted between the two in the
1134 (if behind-str 1135 ;; file, it's better to be put before it so you can read it,
1135 (if (search-backward behind-str (point-min) t) 1136 ;; rather than after and remain perhaps unaware of the changes.
1136 (goto-char (match-end 0))))) 1137 (when (and forward-str (search-forward forward-str (point-max) t))
1138 (goto-char (match-beginning 0)))
1139 (when (and behind-str (search-backward behind-str (point-min) t))
1140 (goto-char (match-end 0)))
1137 nil)) 1141 nil))
1138 1142
1139;;;###autoload 1143;;;###autoload
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index 8daf590ee89..c192b3400b4 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -1,3 +1,7 @@
12010-02-07 Vivek Dasmohapatra <vivek@etla.org>
2
3 * erc-services.el (erc-nickserv-alist): Fix defcustom type (Bug#5520).
4
12010-01-25 Vivek Dasmohapatra <vivek@etla.org> 52010-01-25 Vivek Dasmohapatra <vivek@etla.org>
2 6
3 * erc-backend.el (erc-session-connector): New var. 7 * erc-backend.el (erc-session-connector): New var.
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
index c917a5692b8..50a100d6932 100644
--- a/lisp/erc/erc-services.el
+++ b/lisp/erc/erc-services.el
@@ -303,7 +303,11 @@ The last two elements are optional."
303 (boolean :tag "Use current nick in identify message?") 303 (boolean :tag "Use current nick in identify message?")
304 (choice :tag "Command to use (optional)" 304 (choice :tag "Command to use (optional)"
305 (string :tag "Command") 305 (string :tag "Command")
306 (const :tag "No special command necessary" nil))))) 306 (const :tag "No special command necessary" nil))
307 (choice :tag "Detect Success"
308 (regexp :tag "Pattern to match")
309 (const :tag "Do not try to detect success" nil)))))
310
307 311
308(defsubst erc-nickserv-alist-sender (network &optional entry) 312(defsubst erc-nickserv-alist-sender (network &optional entry)
309 (nth 1 (or entry (assoc network erc-nickserv-alist)))) 313 (nth 1 (or entry (assoc network erc-nickserv-alist))))
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el
index 094f3ad9bb3..860ad5c77d8 100644
--- a/lisp/eshell/em-ls.el
+++ b/lisp/eshell/em-ls.el
@@ -225,18 +225,28 @@ really need to stick around for very long."
225 (eq (aref (nth 8 attrs) 0) type))) 225 (eq (aref (nth 8 attrs) 0) type)))
226 226
227(defmacro eshell-ls-applicable (attrs index func file) 227(defmacro eshell-ls-applicable (attrs index func file)
228 "Test whether, for ATTRS, the user UID can do what corresponds to INDEX. 228 "Test whether, for ATTRS, the user can do what corresponds to INDEX.
229This is really just for efficiency, to avoid having to stat the file 229ATTRS is a string of file modes. See `file-attributes'.
230yet again." 230If we cannot determine the answer using ATTRS (e.g., if we need
231 `(if (numberp (nth 2 ,attrs)) 231to know what group the user is in), compute the return value by
232 (if (= (user-uid) (nth 2 ,attrs)) 232calling FUNC with FILE as an argument."
233 (not (eq (aref (nth 8 ,attrs) ,index) ?-)) 233 `(let ((owner (nth 2 ,attrs))
234 (,(eval func) ,file)) 234 (modes (nth 8 ,attrs)))
235 (not (eq (aref (nth 8 ,attrs) 235 (cond ((cond ((numberp owner)
236 (+ ,index (if (member (nth 2 ,attrs) 236 (= owner (user-uid)))
237 (eshell-current-ange-uids)) 237 ((stringp owner)
238 0 6))) 238 (or (string-equal owner (user-login-name))
239 ?-)))) 239 (member owner (eshell-current-ange-uids)))))
240 ;; The user owns this file.
241 (not (eq (aref modes ,index) ?-)))
242 ((eq (aref modes (+ ,index 3))
243 (aref modes (+ ,index 6)))
244 ;; If the "group" and "other" fields give identical
245 ;; results, use that.
246 (not (eq (aref modes (+ ,index 3)) ?-)))
247 (t
248 ;; Otherwise call FUNC.
249 (,(eval func) ,file)))))
240 250
241(defcustom eshell-ls-highlight-alist nil 251(defcustom eshell-ls-highlight-alist nil
242 "*This alist correlates test functions to color. 252 "*This alist correlates test functions to color.
@@ -393,13 +403,13 @@ Sort entries alphabetically across.")
393 (eshell-glob-regexp ignore-pattern)))) 403 (eshell-glob-regexp ignore-pattern))))
394 ;; list the files! 404 ;; list the files!
395 (eshell-ls-entries 405 (eshell-ls-entries
396 (mapcar (function 406 (mapcar (lambda (arg)
397 (lambda (arg) 407 (cons (if (and (eshell-under-windows-p)
398 (cons (if (and (eshell-under-windows-p) 408 (file-name-absolute-p arg))
399 (file-name-absolute-p arg)) 409 (expand-file-name arg)
400 (expand-file-name arg) 410 arg)
401 arg) 411 (eshell-file-attributes
402 (eshell-file-attributes arg)))) 412 arg (if numeric-uid-gid 'integer 'string))))
403 args) 413 args)
404 t (expand-file-name default-directory))) 414 t (expand-file-name default-directory)))
405 (funcall flush-func))) 415 (funcall flush-func)))
@@ -710,7 +720,7 @@ Each member of FILES is either a string or a cons cell of the form
710 (funcall insert-func need-return "\n")))))) 720 (funcall insert-func need-return "\n"))))))
711 721
712(defun eshell-ls-entries (entries &optional separate root-dir) 722(defun eshell-ls-entries (entries &optional separate root-dir)
713 "Output PATH's directory ENTRIES, formatted according to OPTIONS. 723 "Output PATH's directory ENTRIES.
714Each member of ENTRIES may either be a string or a cons cell, the car 724Each member of ENTRIES may either be a string or a cons cell, the car
715of which is the file name, and the cdr of which is the list of 725of which is the file name, and the cdr of which is the list of
716attributes. 726attributes.
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index 7c21e2e3302..1a4c5e1021b 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -701,8 +701,11 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
701 (forward-line))) 701 (forward-line)))
702 entry)) 702 entry))
703 703
704(defun eshell-file-attributes (file) 704(defun eshell-file-attributes (file &optional id-format)
705 "Return the attributes of FILE, playing tricks if it's over ange-ftp." 705 "Return the attributes of FILE, playing tricks if it's over ange-ftp.
706The optional argument ID-FORMAT specifies the preferred uid and
707gid format. Valid values are 'string and 'integer, defaulting to
708'integer. See `file-attributes'."
706 (let* ((file (expand-file-name file)) 709 (let* ((file (expand-file-name file))
707 entry) 710 entry)
708 (if (string-equal (file-remote-p file 'method) "ftp") 711 (if (string-equal (file-remote-p file 'method) "ftp")
@@ -723,7 +726,7 @@ If NOSORT is non-nil, the list is not sorted--its order is unpredictable.
723 (setq entry (cdr fentry)) 726 (setq entry (cdr fentry))
724 (setq entry nil))))) 727 (setq entry nil)))))
725 entry) 728 entry)
726 (file-attributes file)))) 729 (file-attributes file id-format))))
727 730
728(defalias 'eshell-copy-tree 'copy-tree) 731(defalias 'eshell-copy-tree 'copy-tree)
729 732
diff --git a/lisp/faces.el b/lisp/faces.el
index 8edd2851b88..a5bc7b1c965 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -735,10 +735,10 @@ like an underlying face would be, with higher priority than underlying faces."
735 (unless foundry 735 (unless foundry
736 (setq foundry (match-string 1 family))) 736 (setq foundry (match-string 1 family)))
737 (setq family (match-string 2 family))) 737 (setq family (match-string 2 family)))
738 (when (stringp family) 738 (when (or (stringp family) (eq family 'unspecified))
739 (internal-set-lisp-face-attribute face :family (purecopy family) 739 (internal-set-lisp-face-attribute face :family (purecopy family)
740 where)) 740 where))
741 (when (stringp foundry) 741 (when (or (stringp foundry) (eq foundry 'unspecified))
742 (internal-set-lisp-face-attribute face :foundry (purecopy foundry) 742 (internal-set-lisp-face-attribute face :foundry (purecopy foundry)
743 where))) 743 where)))
744 (while args 744 (while args
diff --git a/lisp/ffap.el b/lisp/ffap.el
index 324094e334e..23caae74962 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -1796,7 +1796,8 @@ ffap most of the time."
1796 1796
1797;;;###autoload 1797;;;###autoload
1798(defun dired-at-point (&optional filename) 1798(defun dired-at-point (&optional filename)
1799 "Start Dired, defaulting to file at point. See `ffap'." 1799 "Start Dired, defaulting to file at point. See `ffap'.
1800If `dired-at-point-require-prefix' is set, the prefix meaning is reversed."
1800 (interactive) 1801 (interactive)
1801 (if (and (called-interactively-p 'interactive) 1802 (if (and (called-interactively-p 'interactive)
1802 (if dired-at-point-require-prefix 1803 (if dired-at-point-require-prefix
diff --git a/lisp/info.el b/lisp/info.el
index 4789d67e659..93001496b5c 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -4797,7 +4797,7 @@ type returned by `Info-bookmark-make-record', which see."
4797 ;; Use bookmark-default-handler to move to the appropriate location 4797 ;; Use bookmark-default-handler to move to the appropriate location
4798 ;; within the node. 4798 ;; within the node.
4799 (bookmark-default-handler 4799 (bookmark-default-handler
4800 (list* "" `(buffer . ,buf) (bookmark-get-bookmark-record bmk))))) 4800 `("" (buffer . ,buf) . ,(bookmark-get-bookmark-record bmk)))))
4801 4801
4802(provide 'info) 4802(provide 'info)
4803 4803
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el
index 74ef25e147b..da9baef266c 100644
--- a/lisp/international/mule-util.el
+++ b/lisp/international/mule-util.el
@@ -323,7 +323,7 @@ operations such as `find-coding-systems-region'."
323 (unwind-protect 323 (unwind-protect
324 (progn ,@body) 324 (progn ,@body)
325 (apply #'set-coding-system-priority ,current))))) 325 (apply #'set-coding-system-priority ,current)))))
326(put 'with-coding-priority 'lisp-indent-function 1) 326;;;###autoload(put 'with-coding-priority 'lisp-indent-function 1)
327(put 'with-coding-priority 'edebug-form-spec t) 327(put 'with-coding-priority 'edebug-form-spec t)
328 328
329;;;###autoload 329;;;###autoload
diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index ee06db6f78f..ea4b00dc90d 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -1274,7 +1274,7 @@ Modified from `icomplete-completions'."
1274 ;; consult the list of past visited files, to see if we can find 1274 ;; consult the list of past visited files, to see if we can find
1275 ;; the file which the user might thought was still open. 1275 ;; the file which the user might thought was still open.
1276 (when (and iswitchb-use-virtual-buffers (null comps) 1276 (when (and iswitchb-use-virtual-buffers (null comps)
1277 (or recentf-list bookmark-alist)) 1277 recentf-list)
1278 (setq iswitchb-virtual-buffers nil) 1278 (setq iswitchb-virtual-buffers nil)
1279 (let ((head recentf-list) name) 1279 (let ((head recentf-list) name)
1280 (while head 1280 (while head
@@ -1289,30 +1289,15 @@ Modified from `icomplete-completions'."
1289 (setq iswitchb-virtual-buffers 1289 (setq iswitchb-virtual-buffers
1290 (cons (cons name (car head)) 1290 (cons (cons name (car head))
1291 iswitchb-virtual-buffers))) 1291 iswitchb-virtual-buffers)))
1292 (setq head (cdr head)))) 1292 (setq head (cdr head)))
1293 (let ((head bookmark-alist) name path) 1293 (setq iswitchb-virtual-buffers (nreverse iswitchb-virtual-buffers)
1294 (while head 1294 comps (mapcar 'car iswitchb-virtual-buffers))
1295 (if (and (setq path (cdr (assq 'filename (cdar head))))
1296 (setq name (file-name-nondirectory path))
1297 (string-match (if iswitchb-regexp
1298 iswitchb-text
1299 (regexp-quote iswitchb-text)) name)
1300 (null (get-file-buffer path))
1301 (not (assoc name iswitchb-virtual-buffers))
1302 (not (iswitchb-ignore-buffername-p name))
1303 (file-exists-p path))
1304 (setq iswitchb-virtual-buffers
1305 (cons (cons name path)
1306 iswitchb-virtual-buffers)))
1307 (setq head (cdr head))))
1308 (setq iswitchb-virtual-buffers (nreverse iswitchb-virtual-buffers)
1309 comps (mapcar 'car iswitchb-virtual-buffers))
1310 (let ((comp comps)) 1295 (let ((comp comps))
1311 (while comp 1296 (while comp
1312 (put-text-property 0 (length (car comp)) 1297 (put-text-property 0 (length (car comp))
1313 'face 'iswitchb-virtual-matches 1298 'face 'iswitchb-virtual-matches
1314 (car comp)) 1299 (car comp))
1315 (setq comp (cdr comp))))) 1300 (setq comp (cdr comp))))))
1316 1301
1317 (cond ((null comps) (format " %sNo match%s" 1302 (cond ((null comps) (format " %sNo match%s"
1318 open-bracket-determined 1303 open-bracket-determined
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index 284e9db97ee..2e061558466 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -400,6 +400,7 @@ not contain `d', so that a full listing is expected."
400 ;; If not full-directory-p, FILE *must not* end in /, as 400 ;; If not full-directory-p, FILE *must not* end in /, as
401 ;; file-attributes will not recognize a symlink to a directory, 401 ;; file-attributes will not recognize a symlink to a directory,
402 ;; so must make it a relative filename as ls does: 402 ;; so must make it a relative filename as ls does:
403 (if (file-name-absolute-p file) (setq file (expand-file-name file)))
403 (if (eq (aref file (1- (length file))) ?/) 404 (if (eq (aref file (1- (length file))) ?/)
404 (setq file (substring file 0 -1))) 405 (setq file (substring file 0 -1)))
405 (let ((fattr (file-attributes file 'string))) 406 (let ((fattr (file-attributes file 'string)))
diff --git a/lisp/man.el b/lisp/man.el
index e729e11b6ca..dd64fbda574 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -771,8 +771,13 @@ POS defaults to `point'."
771 ;; quote anything. 771 ;; quote anything.
772 (let ((process-environment (copy-sequence process-environment))) 772 (let ((process-environment (copy-sequence process-environment)))
773 (setenv "COLUMNS" "999") ;; don't truncate long names 773 (setenv "COLUMNS" "999") ;; don't truncate long names
774 (call-process manual-program nil '(t nil) nil 774 ;; manual-program might not even exist. And since it's
775 "-k" (concat "^" prefix))) 775 ;; run differently in Man-getpage-in-background, an error
776 ;; here may not necessarily mean that we'll also get an
777 ;; error later.
778 (ignore-errors
779 (call-process manual-program nil '(t nil) nil
780 "-k" (concat "^" prefix))))
776 (goto-char (point-min)) 781 (goto-char (point-min))
777 (while (re-search-forward "^\\([^ \t\n]+\\)\\(?: ?\\((.+?)\\)\\(?:[ \t]+- \\(.*\\)\\)?\\)?" nil t) 782 (while (re-search-forward "^\\([^ \t\n]+\\)\\(?: ?\\((.+?)\\)\\(?:[ \t]+- \\(.*\\)\\)?\\)?" nil t)
778 (push (propertize (concat (match-string 1) (match-string 2)) 783 (push (propertize (concat (match-string 1) (match-string 2))
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index a08e31e2016..95f9f6babf3 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -1017,6 +1017,9 @@ If PARSE-RESULT is non-nil, use it instead of calling `parse-partial-sexp'."
1017 (line-beginning-position) (point)))) 1017 (line-beginning-position) (point))))
1018 (or (ada-in-string-p parse-result) (ada-in-comment-p parse-result))) 1018 (or (ada-in-string-p parse-result) (ada-in-comment-p parse-result)))
1019 1019
1020(defsubst ada-in-numeric-literal-p ()
1021 "Return t if point is after a prefix of a numeric literal."
1022 (looking-back "\\([0-9]+#[0-9a-fA-F_]+\\)"))
1020 1023
1021;;------------------------------------------------------------------ 1024;;------------------------------------------------------------------
1022;; Contextual menus 1025;; Contextual menus
@@ -1606,6 +1609,8 @@ If FORCE-IDENTIFIER is non-nil then also adjust keyword as identifier."
1606 (eq (char-syntax (char-before)) ?w) 1609 (eq (char-syntax (char-before)) ?w)
1607 ;; if in a string or a comment 1610 ;; if in a string or a comment
1608 (not (ada-in-string-or-comment-p)) 1611 (not (ada-in-string-or-comment-p))
1612 ;; if in a numeric literal
1613 (not (ada-in-numeric-literal-p))
1609 ) 1614 )
1610 (if (save-excursion 1615 (if (save-excursion
1611 (forward-word -1) 1616 (forward-word -1)
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index eda9f4e0155..21273359486 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -158,10 +158,8 @@
158;; 3. Support for align. 158;; 3. Support for align.
159;; Font-locking: 159;; Font-locking:
160;; 1. OpenMP, OpenMPI?, preprocessor highlighting. 160;; 1. OpenMP, OpenMPI?, preprocessor highlighting.
161;; 2. interface blah - Highlight "blah" in function-name face? 161;; 2. integer_name = 1
162;; Need to avoid "interface operator (+)" etc. 162;; 3. Labels for "else" statements (F2003)?
163;; 3. integer_name = 1
164;; 4. Labels for "else" statements (F2003)?
165 163
166(defvar comment-auto-fill-only-comments) 164(defvar comment-auto-fill-only-comments)
167(defvar font-lock-keywords) 165(defvar font-lock-keywords)
@@ -467,22 +465,21 @@ type-name parts, respectively."
467;;; (1 font-lock-keyword-face) (3 font-lock-function-name-face)) 465;;; (1 font-lock-keyword-face) (3 font-lock-function-name-face))
468 '(f90-typedef-matcher 466 '(f90-typedef-matcher
469 (1 font-lock-keyword-face) (2 font-lock-function-name-face)) 467 (1 font-lock-keyword-face) (2 font-lock-function-name-face))
470 ;; Other functions and declarations. 468 ;; F2003. Prevent operators being highlighted as functions.
469 '("\\<\\(\\(?:end[ \t]*\\)?interface[ \t]*\\(?:assignment\\|operator\\|\
470read\\|write\\)\\)[ \t]*(" (1 font-lock-keyword-face t))
471 ;; Other functions and declarations. Named interfaces = F2003.
471 '("\\<\\(\\(?:end[ \t]*\\)?\\(program\\|module\\|function\\|associate\\|\ 472 '("\\<\\(\\(?:end[ \t]*\\)?\\(program\\|module\\|function\\|associate\\|\
472subroutine\\)\\|use\\|call\\)\\>[ \t]*\\(\\sw+\\)?" 473subroutine\\|interface\\)\\|use\\|call\\)\\>[ \t]*\\(\\sw+\\)?"
473 (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) 474 (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t))
474 ;; F2003. 475 ;; F2003.
475 '("\\<\\(use\\)[ \t]*,[ \t]*\\(\\(?:non_\\)?intrinsic\\)[ \t]*::[ \t]*\ 476 '("\\<\\(use\\)[ \t]*,[ \t]*\\(\\(?:non_\\)?intrinsic\\)[ \t]*::[ \t]*\
476\\(\\sw+\\)" 477\\(\\sw+\\)"
477 (1 font-lock-keyword-face) (2 font-lock-keyword-face) 478 (1 font-lock-keyword-face) (2 font-lock-keyword-face)
478 (3 font-lock-function-name-face)) 479 (3 font-lock-function-name-face))
479 "\\<\\(\\(end[ \t]*\\)?block[ \t]*data\\|contains\\|\ 480 "\\<\\(\\(end[ \t]*\\)?block[ \t]*data\\|contains\\)\\>"
480end[ \t]*interface\\)\\>" 481 ;; "abstract interface" is F2003.
481 ;; "abstract interface" is F2003. Must come after previous entry. 482 '("\\<abstract[ \t]*interface\\>" (0 font-lock-keyword-face t)))
482 '("\\<\\(\\(?:abstract[ \t]*\\)?interface\\)\\>"
483 ;; [ \t]*\\(\\(\\sw+\\)[ \t]*[^(]\\)?"
484 ;; (2) messes up "interface operator ()", etc.
485 (1 font-lock-keyword-face))) ;(2 font-lock-function-name-face nil t)))
486 "This does fairly subdued highlighting of comments and function calls.") 483 "This does fairly subdued highlighting of comments and function calls.")
487 484
488;; NB not explicitly handling this, yet it seems to work. 485;; NB not explicitly handling this, yet it seems to work.
@@ -1229,7 +1226,7 @@ NAME is nil if the statement has no label."
1229 1226
1230(defsubst f90-looking-at-type-like () 1227(defsubst f90-looking-at-type-like ()
1231 "Return (KIND NAME) if a type/enum/interface/block-data starts after point. 1228 "Return (KIND NAME) if a type/enum/interface/block-data starts after point.
1232NAME is non-nil only for type." 1229NAME is non-nil only for type and certain interfaces."
1233 (cond 1230 (cond
1234 ((save-excursion 1231 ((save-excursion
1235 (and (looking-at "\\<type\\>[ \t]*") 1232 (and (looking-at "\\<type\\>[ \t]*")
@@ -1242,7 +1239,15 @@ NAME is non-nil only for type."
1242;;; ((and (not (looking-at f90-typeis-re)) 1239;;; ((and (not (looking-at f90-typeis-re))
1243;;; (looking-at f90-type-def-re)) 1240;;; (looking-at f90-type-def-re))
1244;;; (list (match-string 1) (match-string 2))) 1241;;; (list (match-string 1) (match-string 2)))
1245 ((looking-at "\\(enum\\|interface\\|block[ \t]*data\\)\\>") 1242 ((looking-at "\\<\\(interface\\)\\>[ \t]*")
1243 (list (match-string 1)
1244 (save-excursion
1245 (goto-char (match-end 0))
1246 (if (or (looking-at "\\(operator\\|assignment\\|read\\|\
1247write\\)[ \t]*([^)\n]*)")
1248 (looking-at "\\sw+"))
1249 (match-string 0)))))
1250 ((looking-at "\\(enum\\|block[ \t]*data\\)\\>")
1246 (list (match-string 1) nil)) 1251 (list (match-string 1) nil))
1247 ((looking-at "abstract[ \t]*\\(interface\\)\\>") 1252 ((looking-at "abstract[ \t]*\\(interface\\)\\>")
1248 (list (match-string 1) nil)))) 1253 (list (match-string 1) nil))))
@@ -1270,9 +1275,12 @@ NAME is non-nil only for type."
1270 1275
1271(defsubst f90-looking-at-program-block-end () 1276(defsubst f90-looking-at-program-block-end ()
1272 "Return (KIND NAME) if a block with name NAME ends after point." 1277 "Return (KIND NAME) if a block with name NAME ends after point."
1273 (if (looking-at (concat "end[ \t]*" f90-blocks-re 1278 (cond ((looking-at "end[ \t]*\\(interface\\)[ \t]*\\(\
1274 "?\\([ \t]+\\(\\sw+\\)\\)?\\>")) 1279\\(?:assignment\\|operator\\|read\\|write\\)[ \t]*([^)\n]*)\\)")
1275 (list (match-string 1) (match-string 3)))) 1280 (list (match-string 1) (match-string 2)))
1281 ((looking-at (concat "end[ \t]*" f90-blocks-re
1282 "?\\([ \t]+\\(\\sw+\\)\\)?\\>"))
1283 (list (match-string 1) (match-string 3)))))
1276 1284
1277(defsubst f90-comment-indent () 1285(defsubst f90-comment-indent ()
1278 "Return the indentation to be used for a comment starting at point. 1286 "Return the indentation to be used for a comment starting at point.
diff --git a/lisp/subr.el b/lisp/subr.el
index b80988ad723..d2363099b7c 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2232,10 +2232,14 @@ If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there."
2232 2232
2233(defun copy-overlay (o) 2233(defun copy-overlay (o)
2234 "Return a copy of overlay O." 2234 "Return a copy of overlay O."
2235 (let ((o1 (make-overlay (overlay-start o) (overlay-end o) 2235 (let ((o1 (if (overlay-buffer o)
2236 ;; FIXME: there's no easy way to find the 2236 (make-overlay (overlay-start o) (overlay-end o)
2237 ;; insertion-type of the two markers. 2237 ;; FIXME: there's no easy way to find the
2238 (overlay-buffer o))) 2238 ;; insertion-type of the two markers.
2239 (overlay-buffer o))
2240 (let ((o1 (make-overlay (point-min) (point-min))))
2241 (delete-overlay o1)
2242 o1)))
2239 (props (overlay-properties o))) 2243 (props (overlay-properties o)))
2240 (while props 2244 (while props
2241 (overlay-put o1 (pop props) (pop props))) 2245 (overlay-put o1 (pop props) (pop props)))
diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el
index d881e6fcc7d..ccedf4045e4 100644
--- a/lisp/term/xterm.el
+++ b/lisp/term/xterm.el
@@ -679,7 +679,6 @@ versions of xterm."
679 ;; Use the heuristic in `frame-set-background-mode' to decide if a 679 ;; Use the heuristic in `frame-set-background-mode' to decide if a
680 ;; frame is dark. 680 ;; frame is dark.
681 (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535))) 681 (when (< (+ redc greenc bluec) (* .6 (+ 65535 65535 65535)))
682 (setq xterm-background-mode-changed t)
683 (set-terminal-parameter nil 'background-mode 'dark) 682 (set-terminal-parameter nil 'background-mode 'dark)
684 t)) 683 t))
685 684
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index e1d7b053491..bc5f29482e7 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -859,15 +859,15 @@ ARROW-PRED is a function that is called to find out if the shape
859 can have arrows. The function is called with no arguments and 859 can have arrows. The function is called with no arguments and
860 must return nil or t. 860 must return nil or t.
861ARROW-SET-FN is a function that is called to set arrow end-points. 861ARROW-SET-FN is a function that is called to set arrow end-points.
862 Arguments and return values for this funcion are described below. 862 Arguments and return values for this function are described below.
863INIT-FN is, if non-nil, a function that is called when the first 863INIT-FN is, if non-nil, a function that is called when the first
864 point of the shape is set. Arguments and return values for 864 point of the shape is set. Arguments and return values for
865 this funcion are described below. 865 this function are described below.
866PREP-FILL-FN is, if non-nil, a function that is called after 866PREP-FILL-FN is, if non-nil, a function that is called after
867 the last point is set, but before the filling is done. 867 the last point is set, but before the filling is done.
868 Arguments and return values for this funcion are described below. 868 Arguments and return values for this function are described below.
869EXIT-FN is, if non-nil, a function that is called after filling 869EXIT-FN is, if non-nil, a function that is called after filling
870 is done. Arguments and return values for this funcion are 870 is done. Arguments and return values for this function are
871 described below. 871 described below.
872DRAW-HOW defines the kind of shape. The kinds of shapes are: 872DRAW-HOW defines the kind of shape. The kinds of shapes are:
873 `artist-do-continously' -- Do drawing operation continuously, 873 `artist-do-continously' -- Do drawing operation continuously,
@@ -876,7 +876,7 @@ DRAW-HOW defines the kind of shape. The kinds of shapes are:
876 1 -- Do drawing operation only once. 876 1 -- Do drawing operation only once.
877 2 -- The drawing operation requires two points. 877 2 -- The drawing operation requires two points.
878DRAW-FN is the function to call for drawing. Arguments and 878DRAW-FN is the function to call for drawing. Arguments and
879 return values for this funcion are described below. 879 return values for this function are described below.
880EXTRA-DRAW-INFO the layout of this depends on the value of DRAW-HOW: 880EXTRA-DRAW-INFO the layout of this depends on the value of DRAW-HOW:
881 If DRAW-HOW is `artist-do-continously': 881 If DRAW-HOW is `artist-do-continously':
882 882
@@ -894,20 +894,20 @@ EXTRA-DRAW-INFO the layout of this depends on the value of DRAW-HOW:
894 (UNDRAW-FN FILL-PRED FILL-FN) 894 (UNDRAW-FN FILL-PRED FILL-FN)
895 895
896 UNDRAW-FN is a function to call for undrawing the shape. 896 UNDRAW-FN is a function to call for undrawing the shape.
897 Arguments and return values for this funcion are 897 Arguments and return values for this function are
898 described below. 898 described below.
899 FILL-PRED is a function that is called to find out if the shape 899 FILL-PRED is a function that is called to find out if the shape
900 can have arrows. The function must take no arguments and 900 can have arrows. The function must take no arguments and
901 return nil or t. 901 return nil or t.
902 FILL-FN is a function to call for filling the shape. 902 FILL-FN is a function to call for filling the shape.
903 Arguments and return values for this funcion are 903 Arguments and return values for this function are
904 described below. 904 described below.
905 905
906 If DRAW-HOW is 1: 906 If DRAW-HOW is 1:
907 907
908 () 908 ()
909 909
910Note! All symbols and keywords (both in the `funcion-call' INFO-PART 910Note! All symbols and keywords (both in the `function-call' INFO-PART
911 as well as in the `graphics-operation' INFO-PART) must be unique. 911 as well as in the `graphics-operation' INFO-PART) must be unique.
912 912
913The following table describe function arguments and return value 913The following table describe function arguments and return value