diff options
| author | K. Handa | 2015-09-27 17:06:12 +0900 |
|---|---|---|
| committer | K. Handa | 2015-09-27 17:06:12 +0900 |
| commit | 52beda922d2cb523a03661bf74b8678c8b45e440 (patch) | |
| tree | 04617b37298746a61d5324a5b35c9b71f439d762 /lisp | |
| parent | 94ed5167557112fb00eeca05e62589db744206de (diff) | |
| parent | 1ac5a9c20cb22efb398fa18781c6b932dd4e54df (diff) | |
| download | emacs-52beda922d2cb523a03661bf74b8678c8b45e440.tar.gz emacs-52beda922d2cb523a03661bf74b8678c8b45e440.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Diffstat (limited to 'lisp')
319 files changed, 2303 insertions, 1864 deletions
diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index a40f8f3d67a..224e2a6da7f 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2015-09-20 Ken Manheimer <ken.manheimer@gmail.com> | ||
| 2 | |||
| 3 | * python.el (python-pdbtrack-set-tracked-buffer): Repair pdbtrack | ||
| 4 | so it follows transition from one remote file to another. | ||
| 5 | |||
| 1 | 2015-04-06 Alan Mackenzie <acm@muc.de> | 6 | 2015-04-06 Alan Mackenzie <acm@muc.de> |
| 2 | 7 | ||
| 3 | Fix miscellaneous glitches in cc-mode.el. (Bug#20245) | 8 | Fix miscellaneous glitches in cc-mode.el. (Bug#20245) |
diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 8bcb2d6dc5f..15d4d37f7ba 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in | |||
| @@ -103,7 +103,7 @@ BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) \ | |||
| 103 | # Files to compile before others during a bootstrap. This is done to | 103 | # Files to compile before others during a bootstrap. This is done to |
| 104 | # speed up the bootstrap process. They're ordered by size, so we use | 104 | # speed up the bootstrap process. They're ordered by size, so we use |
| 105 | # the slowest-compiler on the smallest file and move to larger files as the | 105 | # the slowest-compiler on the smallest file and move to larger files as the |
| 106 | # compiler gets faster. `autoload.elc' comes last because it is not used by | 106 | # compiler gets faster. 'autoload.elc' comes last because it is not used by |
| 107 | # the compiler (so its compilation does not speed up subsequent compilations), | 107 | # the compiler (so its compilation does not speed up subsequent compilations), |
| 108 | # it's only placed here so as to speed up generation of the loaddefs.el file. | 108 | # it's only placed here so as to speed up generation of the loaddefs.el file. |
| 109 | 109 | ||
| @@ -272,22 +272,22 @@ $(THEFILE)c: | |||
| 272 | 272 | ||
| 273 | compile-first: $(COMPILE_FIRST) | 273 | compile-first: $(COMPILE_FIRST) |
| 274 | 274 | ||
| 275 | # In `compile-main' we could directly do | 275 | # In 'compile-main' we could directly do |
| 276 | # ... | xargs $(MAKE) | 276 | # ... | xargs $(MAKE) |
| 277 | # and it works, but it generates a lot of messages like | 277 | # and it works, but it generates a lot of messages like |
| 278 | # make[2]: gnus/gnus-mlspl.elc is up to date. | 278 | # make[2]: gnus/gnus-mlspl.elc is up to date. |
| 279 | # so instead, we use "xargs echo" to split the list of file into manageable | 279 | # so instead, we use "xargs echo" to split the list of file into manageable |
| 280 | # chunks and then use an intermediate `compile-targets' target so the | 280 | # chunks and then use an intermediate 'compile-targets' target so the |
| 281 | # actual targets (the .elc files) are not mentioned as targets on the | 281 | # actual targets (the .elc files) are not mentioned as targets on the |
| 282 | # make command line. | 282 | # make command line. |
| 283 | 283 | ||
| 284 | 284 | ||
| 285 | .PHONY: compile-targets | 285 | .PHONY: compile-targets |
| 286 | # TARGETS is set dynamically in the recursive call from `compile-main'. | 286 | # TARGETS is set dynamically in the recursive call from 'compile-main'. |
| 287 | compile-targets: $(TARGETS) | 287 | compile-targets: $(TARGETS) |
| 288 | 288 | ||
| 289 | # Compile all the Elisp files that need it. Beware: it approximates | 289 | # Compile all the Elisp files that need it. Beware: it approximates |
| 290 | # `no-byte-compile', so watch out for false-positives! | 290 | # 'no-byte-compile', so watch out for false-positives! |
| 291 | compile-main: leim semantic compile-clean | 291 | compile-main: leim semantic compile-clean |
| 292 | @(cd $(lisp) && \ | 292 | @(cd $(lisp) && \ |
| 293 | els=`echo "${SUBDIRS_REL} " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \ | 293 | els=`echo "${SUBDIRS_REL} " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \ |
| @@ -326,7 +326,7 @@ semantic: | |||
| 326 | compile: $(LOADDEFS) autoloads compile-first | 326 | compile: $(LOADDEFS) autoloads compile-first |
| 327 | $(MAKE) compile-main | 327 | $(MAKE) compile-main |
| 328 | 328 | ||
| 329 | # Compile all Lisp files. This is like `compile' but compiles files | 329 | # Compile all Lisp files. This is like 'compile' but compiles files |
| 330 | # unconditionally. Some files don't actually get compiled because they | 330 | # unconditionally. Some files don't actually get compiled because they |
| 331 | # set the local variable no-byte-compile. | 331 | # set the local variable no-byte-compile. |
| 332 | compile-always: | 332 | compile-always: |
diff --git a/lisp/README b/lisp/README index e250a700426..b68ad5e30f9 100644 --- a/lisp/README +++ b/lisp/README | |||
| @@ -6,8 +6,7 @@ files are architecture-independent. | |||
| 6 | The term subdirectory contains Lisp files that customize Emacs for | 6 | The term subdirectory contains Lisp files that customize Emacs for |
| 7 | certain terminal types. When Emacs starts, it checks the TERM | 7 | certain terminal types. When Emacs starts, it checks the TERM |
| 8 | environment variable to get the terminal type and loads | 8 | environment variable to get the terminal type and loads |
| 9 | `term/${TERM}.el' if it exists. | 9 | 'term/${TERM}.el' if it exists. |
| 10 | 10 | ||
| 11 | The other subdirectories hold Lisp packages grouped by their general | 11 | The other subdirectories hold Lisp packages grouped by their general |
| 12 | purpose. | 12 | purpose. |
| 13 | |||
diff --git a/lisp/allout.el b/lisp/allout.el index f7055734961..5273fe2b433 100644 --- a/lisp/allout.el +++ b/lisp/allout.el | |||
| @@ -917,7 +917,7 @@ has been customized to enable this behavior), `allout-mode' will be | |||
| 917 | automatically activated. The layout dictated by the value will be used to | 917 | automatically activated. The layout dictated by the value will be used to |
| 918 | set the initial exposure when `allout-mode' is activated. | 918 | set the initial exposure when `allout-mode' is activated. |
| 919 | 919 | ||
| 920 | \*You should not setq-default this variable non-nil unless you want every | 920 | *You should not setq-default this variable non-nil unless you want every |
| 921 | visited file to be treated as an allout file.* | 921 | visited file to be treated as an allout file.* |
| 922 | 922 | ||
| 923 | The value would typically be set by a file local variable. For | 923 | The value would typically be set by a file local variable. For |
| @@ -1512,7 +1512,7 @@ already associated with a file. | |||
| 1512 | 1512 | ||
| 1513 | It consists of an encrypted random string useful only to verify that a | 1513 | It consists of an encrypted random string useful only to verify that a |
| 1514 | passphrase entered by the user is effective for decryption. The passphrase | 1514 | passphrase entered by the user is effective for decryption. The passphrase |
| 1515 | itself is \*not* recorded in the file anywhere, and the encrypted contents | 1515 | itself is *not* recorded in the file anywhere, and the encrypted contents |
| 1516 | are random binary characters to avoid exposing greater susceptibility to | 1516 | are random binary characters to avoid exposing greater susceptibility to |
| 1517 | search attacks. | 1517 | search attacks. |
| 1518 | 1518 | ||
| @@ -3721,7 +3721,7 @@ Nuances: | |||
| 3721 | (save-match-data | 3721 | (save-match-data |
| 3722 | (let* ((inhibit-field-text-motion t) | 3722 | (let* ((inhibit-field-text-motion t) |
| 3723 | (depth (+ (allout-current-depth) relative-depth)) | 3723 | (depth (+ (allout-current-depth) relative-depth)) |
| 3724 | (opening-on-blank (if (looking-at "^\$") | 3724 | (opening-on-blank (if (looking-at "^$") |
| 3725 | (not (setq before nil)))) | 3725 | (not (setq before nil)))) |
| 3726 | ;; bunch o vars set while computing ref-topic | 3726 | ;; bunch o vars set while computing ref-topic |
| 3727 | opening-numbered | 3727 | opening-numbered |
| @@ -5562,9 +5562,8 @@ Defaults: | |||
| 5562 | ;; Specified but not a buffer -- get it: | 5562 | ;; Specified but not a buffer -- get it: |
| 5563 | (let ((got (get-buffer frombuf))) | 5563 | (let ((got (get-buffer frombuf))) |
| 5564 | (if (not got) | 5564 | (if (not got) |
| 5565 | (error (concat "allout-process-exposed: source buffer " | 5565 | (error "allout-process-exposed: source buffer %s not found." |
| 5566 | frombuf | 5566 | frombuf) |
| 5567 | " not found.")) | ||
| 5568 | (setq frombuf got)))) | 5567 | (setq frombuf got)))) |
| 5569 | ;; not specified -- default it: | 5568 | ;; not specified -- default it: |
| 5570 | (setq frombuf (current-buffer))) | 5569 | (setq frombuf (current-buffer))) |
| @@ -5909,7 +5908,7 @@ file with topics pending encryption is saved, topics pending | |||
| 5909 | encryption are encrypted. See `allout-encrypt-unencrypted-on-saves' | 5908 | encryption are encrypted. See `allout-encrypt-unencrypted-on-saves' |
| 5910 | for auto-encryption specifics. | 5909 | for auto-encryption specifics. |
| 5911 | 5910 | ||
| 5912 | \*NOTE WELL* that automatic encryption that happens during saves will | 5911 | *NOTE WELL* that automatic encryption that happens during saves will |
| 5913 | default to symmetric encryption -- you must deliberately (re)encrypt key-pair | 5912 | default to symmetric encryption -- you must deliberately (re)encrypt key-pair |
| 5914 | encrypted topics if you want them to continue to use the key-pair cipher. | 5913 | encrypted topics if you want them to continue to use the key-pair cipher. |
| 5915 | 5914 | ||
diff --git a/lisp/bindings.el b/lisp/bindings.el index 3672812e5a1..8560871694d 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el | |||
| @@ -1265,9 +1265,9 @@ if `inhibit-field-text-motion' is non-nil." | |||
| 1265 | (define-key abbrev-map "e" 'expand-abbrev) | 1265 | (define-key abbrev-map "e" 'expand-abbrev) |
| 1266 | (define-key abbrev-map "'" 'expand-abbrev) | 1266 | (define-key abbrev-map "'" 'expand-abbrev) |
| 1267 | ;; (define-key ctl-x-map "\C-a" 'add-mode-abbrev) | 1267 | ;; (define-key ctl-x-map "\C-a" 'add-mode-abbrev) |
| 1268 | ;; (define-key ctl-x-map "\+" 'add-global-abbrev) | 1268 | ;; (define-key ctl-x-map "+" 'add-global-abbrev) |
| 1269 | ;; (define-key ctl-x-map "\C-h" 'inverse-add-mode-abbrev) | 1269 | ;; (define-key ctl-x-map "\C-h" 'inverse-add-mode-abbrev) |
| 1270 | ;; (define-key ctl-x-map "\-" 'inverse-add-global-abbrev) | 1270 | ;; (define-key ctl-x-map "-" 'inverse-add-global-abbrev) |
| 1271 | (define-key esc-map "'" 'abbrev-prefix-mark) | 1271 | (define-key esc-map "'" 'abbrev-prefix-mark) |
| 1272 | (define-key ctl-x-map "'" 'expand-abbrev) | 1272 | (define-key ctl-x-map "'" 'expand-abbrev) |
| 1273 | (define-key ctl-x-map "\C-b" 'list-buffers) | 1273 | (define-key ctl-x-map "\C-b" 'list-buffers) |
diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 035148120a4..e9310259e7e 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el | |||
| @@ -138,7 +138,7 @@ This is as opposed to inline text at the top of the buffer." | |||
| 138 | 138 | ||
| 139 | (defconst bookmark-bmenu-inline-header-height 2 | 139 | (defconst bookmark-bmenu-inline-header-height 2 |
| 140 | "Number of lines used for the *Bookmark List* header | 140 | "Number of lines used for the *Bookmark List* header |
| 141 | \(only significant when `bookmark-bmenu-use-header-line' is nil\).") | 141 | \(only significant when `bookmark-bmenu-use-header-line' is nil).") |
| 142 | 142 | ||
| 143 | (defconst bookmark-bmenu-marks-width 2 | 143 | (defconst bookmark-bmenu-marks-width 2 |
| 144 | "Number of columns (chars) used for the *Bookmark List* marks column, | 144 | "Number of columns (chars) used for the *Bookmark List* marks column, |
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el index cb6ab6f8ecc..933c446875e 100644 --- a/lisp/calc/calc-ext.el +++ b/lisp/calc/calc-ext.el | |||
| @@ -574,6 +574,7 @@ | |||
| 574 | (define-key calc-mode-map "uG" 'calc-vector-geometric-mean) | 574 | (define-key calc-mode-map "uG" 'calc-vector-geometric-mean) |
| 575 | (define-key calc-mode-map "uM" 'calc-vector-mean) | 575 | (define-key calc-mode-map "uM" 'calc-vector-mean) |
| 576 | (define-key calc-mode-map "uN" 'calc-vector-min) | 576 | (define-key calc-mode-map "uN" 'calc-vector-min) |
| 577 | (define-key calc-mode-map "uR" 'calc-vector-rms) | ||
| 577 | (define-key calc-mode-map "uS" 'calc-vector-sdev) | 578 | (define-key calc-mode-map "uS" 'calc-vector-sdev) |
| 578 | (define-key calc-mode-map "uU" 'calc-undo) | 579 | (define-key calc-mode-map "uU" 'calc-undo) |
| 579 | (define-key calc-mode-map "uX" 'calc-vector-max) | 580 | (define-key calc-mode-map "uX" 'calc-vector-max) |
| @@ -932,7 +933,7 @@ calc-preserve-point calc-replace-selections calc-replace-sub-formula | |||
| 932 | calc-roll-down-with-selections calc-roll-up-with-selections | 933 | calc-roll-down-with-selections calc-roll-up-with-selections |
| 933 | calc-sel-error) | 934 | calc-sel-error) |
| 934 | 935 | ||
| 935 | ("calc-stat" calc-vector-op calcFunc-agmean | 936 | ("calc-stat" calc-vector-op calcFunc-agmean calcFunc-rms |
| 936 | calcFunc-vcorr calcFunc-vcount calcFunc-vcov calcFunc-vflat | 937 | calcFunc-vcorr calcFunc-vcount calcFunc-vcov calcFunc-vflat |
| 937 | calcFunc-vgmean calcFunc-vhmean calcFunc-vmax calcFunc-vmean | 938 | calcFunc-vgmean calcFunc-vhmean calcFunc-vmax calcFunc-vmean |
| 938 | calcFunc-vmeane calcFunc-vmedian calcFunc-vmin calcFunc-vpcov | 939 | calcFunc-vmeane calcFunc-vmedian calcFunc-vmin calcFunc-vpcov |
| @@ -1147,8 +1148,8 @@ calc-vector-covariance calc-vector-geometric-mean | |||
| 1147 | calc-vector-harmonic-mean calc-vector-max calc-vector-mean | 1148 | calc-vector-harmonic-mean calc-vector-max calc-vector-mean |
| 1148 | calc-vector-mean-error calc-vector-median calc-vector-min | 1149 | calc-vector-mean-error calc-vector-median calc-vector-min |
| 1149 | calc-vector-pop-covariance calc-vector-pop-sdev | 1150 | calc-vector-pop-covariance calc-vector-pop-sdev |
| 1150 | calc-vector-pop-variance calc-vector-product calc-vector-sdev | 1151 | calc-vector-pop-variance calc-vector-product calc-vector-rms |
| 1151 | calc-vector-sum calc-vector-variance) | 1152 | calc-vector-sdev calc-vector-sum calc-vector-variance) |
| 1152 | 1153 | ||
| 1153 | ("calc-store" calc-assign calc-copy-special-constant | 1154 | ("calc-store" calc-assign calc-copy-special-constant |
| 1154 | calc-copy-variable calc-declare-variable | 1155 | calc-copy-variable calc-declare-variable |
| @@ -1292,6 +1293,7 @@ calc-kill calc-kill-region calc-yank)))) | |||
| 1292 | (define-key calc-help-map "?" 'calc-help-for-help) | 1293 | (define-key calc-help-map "?" 'calc-help-for-help) |
| 1293 | (define-key calc-help-map "\C-h" 'calc-help-for-help)) | 1294 | (define-key calc-help-map "\C-h" 'calc-help-for-help)) |
| 1294 | 1295 | ||
| 1296 | (defvar calc-prefix-help-retry nil) | ||
| 1295 | (defvar calc-prefix-help-phase 0) | 1297 | (defvar calc-prefix-help-phase 0) |
| 1296 | (defun calc-do-prefix-help (msgs group key) | 1298 | (defun calc-do-prefix-help (msgs group key) |
| 1297 | (if calc-full-help-flag | 1299 | (if calc-full-help-flag |
| @@ -1299,7 +1301,7 @@ calc-kill calc-kill-region calc-yank)))) | |||
| 1299 | (if (cdr msgs) | 1301 | (if (cdr msgs) |
| 1300 | (progn | 1302 | (progn |
| 1301 | (setq calc-prefix-help-phase | 1303 | (setq calc-prefix-help-phase |
| 1302 | (if (eq this-command last-command) | 1304 | (if calc-prefix-help-retry |
| 1303 | (% (1+ calc-prefix-help-phase) (1+ (length msgs))) | 1305 | (% (1+ calc-prefix-help-phase) (1+ (length msgs))) |
| 1304 | 0)) | 1306 | 0)) |
| 1305 | (let ((msg (nth calc-prefix-help-phase msgs))) | 1307 | (let ((msg (nth calc-prefix-help-phase msgs))) |
| @@ -1320,7 +1322,13 @@ calc-kill calc-kill-region calc-yank)))) | |||
| 1320 | (message "%s: %s: %c-" group (car msgs) key) | 1322 | (message "%s: %s: %c-" group (car msgs) key) |
| 1321 | (message "%s: (none) %c-" group key)) | 1323 | (message "%s: (none) %c-" group key)) |
| 1322 | (message "%s: %s" group (car msgs)))) | 1324 | (message "%s: %s" group (car msgs)))) |
| 1323 | (and key (calc-unread-command key)))) | 1325 | (let* ((chr (read-char)) |
| 1326 | (bnd (local-key-binding (if key (string key chr) (string chr))))) | ||
| 1327 | (setq calc-prefix-help-retry (= chr ??)) | ||
| 1328 | (if bnd | ||
| 1329 | (call-interactively bnd) | ||
| 1330 | (message "%s is undefined" | ||
| 1331 | (key-description (if key (vector key chr) (vector chr)))))))) | ||
| 1324 | 1332 | ||
| 1325 | ;;;; Commands. | 1333 | ;;;; Commands. |
| 1326 | 1334 | ||
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index 444bb5ef920..33cb1c1566c 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el | |||
| @@ -386,7 +386,7 @@ C-w Describe how there is no warranty for Calc." | |||
| 386 | (interactive) | 386 | (interactive) |
| 387 | (calc-quit) | 387 | (calc-quit) |
| 388 | (view-emacs-news) | 388 | (view-emacs-news) |
| 389 | (re-search-forward "^\*+ .*\\<Calc\\>" nil t)) | 389 | (re-search-forward "^\\*+ .*\\<Calc\\>" nil t)) |
| 390 | 390 | ||
| 391 | (defvar calc-help-long-names '((?b . "binary/business") | 391 | (defvar calc-help-long-names '((?b . "binary/business") |
| 392 | (?g . "graphics") | 392 | (?g . "graphics") |
diff --git a/lisp/calc/calc-map.el b/lisp/calc/calc-map.el index 3b5949c274b..d2c9da86a6f 100644 --- a/lisp/calc/calc-map.el +++ b/lisp/calc/calc-map.el | |||
| @@ -417,6 +417,7 @@ | |||
| 417 | ( ?G 1 calcFunc-vgmean ) | 417 | ( ?G 1 calcFunc-vgmean ) |
| 418 | ( ?M 1 calcFunc-vmean ) | 418 | ( ?M 1 calcFunc-vmean ) |
| 419 | ( ?N 1 calcFunc-vmin ) | 419 | ( ?N 1 calcFunc-vmin ) |
| 420 | ( ?R 1 calcFunc-rms ) | ||
| 420 | ( ?S 1 calcFunc-vsdev ) | 421 | ( ?S 1 calcFunc-vsdev ) |
| 421 | ( ?X 1 calcFunc-vmax ) ) | 422 | ( ?X 1 calcFunc-vmax ) ) |
| 422 | ( ( ?C 2 calcFunc-vpcov ) | 423 | ( ( ?C 2 calcFunc-vpcov ) |
diff --git a/lisp/calc/calc-menu.el b/lisp/calc/calc-menu.el index 44086872dd0..8610090c5d1 100644 --- a/lisp/calc/calc-menu.el +++ b/lisp/calc/calc-menu.el | |||
| @@ -863,6 +863,13 @@ | |||
| 863 | :keys "I u M" | 863 | :keys "I u M" |
| 864 | :active (>= (calc-stack-size) 1) | 864 | :active (>= (calc-stack-size) 1) |
| 865 | :help "The average (arithmetic mean) of the data values as an error form"] | 865 | :help "The average (arithmetic mean) of the data values as an error form"] |
| 866 | ["rms(1:)" | ||
| 867 | (progn | ||
| 868 | (require 'calc-stat) | ||
| 869 | (call-interactively 'calc-vector-rms)) | ||
| 870 | :keys "u R" | ||
| 871 | :active (>= (calc-stack-size) 1) | ||
| 872 | :help "The root mean square of the data values"] | ||
| 866 | ["sdev(1:)" | 873 | ["sdev(1:)" |
| 867 | (progn | 874 | (progn |
| 868 | (require 'calc-stat) | 875 | (require 'calc-stat) |
diff --git a/lisp/calc/calc-stat.el b/lisp/calc/calc-stat.el index cf0b3ea4a12..a797db2e67d 100644 --- a/lisp/calc/calc-stat.el +++ b/lisp/calc/calc-stat.el | |||
| @@ -71,6 +71,11 @@ | |||
| 71 | (calc-vector-op "meae" 'calcFunc-vmeane arg) | 71 | (calc-vector-op "meae" 'calcFunc-vmeane arg) |
| 72 | (calc-vector-op "mean" 'calcFunc-vmean arg))))) | 72 | (calc-vector-op "mean" 'calcFunc-vmean arg))))) |
| 73 | 73 | ||
| 74 | (defun calc-vector-rms (arg) | ||
| 75 | (interactive "P") | ||
| 76 | (calc-slow-wrapper | ||
| 77 | (calc-vector-op "rms" 'calcFunc-rms arg))) | ||
| 78 | |||
| 74 | (defun calc-vector-mean-error (arg) | 79 | (defun calc-vector-mean-error (arg) |
| 75 | (interactive "P") | 80 | (interactive "P") |
| 76 | (calc-invert-func) | 81 | (calc-invert-func) |
| @@ -318,6 +323,12 @@ | |||
| 318 | suminvsqrwts)) | 323 | suminvsqrwts)) |
| 319 | (math-div (calcFunc-reduce '(var add var-add) means) len))))))) | 324 | (math-div (calcFunc-reduce '(var add var-add) means) len))))))) |
| 320 | 325 | ||
| 326 | (defun calcFunc-rms (a) | ||
| 327 | "Return the root-mean-square of the vector A." | ||
| 328 | (math-sqrt | ||
| 329 | (calcFunc-vmean | ||
| 330 | (calcFunc-map '(var abssqr var-abssqr) a)))) | ||
| 331 | |||
| 321 | (defun math-fix-int-intv (x) | 332 | (defun math-fix-int-intv (x) |
| 322 | (if (math-floatp x) | 333 | (if (math-floatp x) |
| 323 | x | 334 | x |
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el index 3d8c865c7bf..21209c66677 100644 --- a/lisp/calc/calc-store.el +++ b/lisp/calc/calc-store.el | |||
| @@ -58,8 +58,8 @@ | |||
| 58 | (let ((msg | 58 | (let ((msg |
| 59 | (calc-store-value var (or calc-given-value (calc-top 1)) | 59 | (calc-store-value var (or calc-given-value (calc-top 1)) |
| 60 | "" calc-given-value-flag))) | 60 | "" calc-given-value-flag))) |
| 61 | (message (concat "Stored to variable \"%s\"" msg) | 61 | (message "Stored to variable \"%s\"%s" |
| 62 | (calc-var-name var))))) | 62 | (calc-var-name var) msg)))) |
| 63 | (setq var (calc-is-assignments (calc-top 1))) | 63 | (setq var (calc-is-assignments (calc-top 1))) |
| 64 | (if var | 64 | (if var |
| 65 | (while var | 65 | (while var |
| @@ -67,8 +67,8 @@ | |||
| 67 | (calc-store-value (car (car var)) (cdr (car var)) | 67 | (calc-store-value (car (car var)) (cdr (car var)) |
| 68 | (if (not (cdr var)) "") | 68 | (if (not (cdr var)) "") |
| 69 | (if (not (cdr var)) 1)))) | 69 | (if (not (cdr var)) 1)))) |
| 70 | (message (concat "Stored to variable \"%s\"" msg) | 70 | (message "Stored to variable \"%s\"%s" |
| 71 | (calc-var-name (car (car var))))) | 71 | (calc-var-name (car (car var))) msg)) |
| 72 | (setq var (cdr var)))))))) | 72 | (setq var (cdr var)))))))) |
| 73 | 73 | ||
| 74 | (defun calc-store-plus (&optional var) | 74 | (defun calc-store-plus (&optional var) |
| @@ -422,8 +422,8 @@ | |||
| 422 | (calc-var-name var1))))) | 422 | (calc-var-name var1))))) |
| 423 | (if var2 | 423 | (if var2 |
| 424 | (let ((msg (calc-store-value var2 value ""))) | 424 | (let ((msg (calc-store-value var2 value ""))) |
| 425 | (message (concat "Variable \"%s\" copied to \"%s\"" msg) | 425 | (message "Variable \"%s\" copied to \"%s\"%s" |
| 426 | (calc-var-name var1) (calc-var-name var2)))))))) | 426 | (calc-var-name var1) (calc-var-name var2) msg))))))) |
| 427 | 427 | ||
| 428 | (defvar calc-last-edited-variable nil) | 428 | (defvar calc-last-edited-variable nil) |
| 429 | (defun calc-edit-variable (&optional var) | 429 | (defun calc-edit-variable (&optional var) |
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el index bb7e97ea7f3..2c646456112 100644 --- a/lisp/calendar/time-date.el +++ b/lisp/calendar/time-date.el | |||
| @@ -52,7 +52,8 @@ Type 0 is the cons cell (HIGH . LOW), type 1 is the list (HIGH | |||
| 52 | LOW), type 2 is the list (HIGH LOW MICRO), and type 3 is the | 52 | LOW), type 2 is the list (HIGH LOW MICRO), and type 3 is the |
| 53 | list (HIGH LOW MICRO PICO)." | 53 | list (HIGH LOW MICRO PICO)." |
| 54 | (declare (indent 1) | 54 | (declare (indent 1) |
| 55 | (debug ((&rest (symbolp symbolp symbolp &or [symbolp form] form)) | 55 | (debug ((&rest (symbolp symbolp symbolp |
| 56 | &or [symbolp symbolp form] [symbolp form] form)) | ||
| 56 | body))) | 57 | body))) |
| 57 | (if varlist | 58 | (if varlist |
| 58 | (let* ((elt (pop varlist)) | 59 | (let* ((elt (pop varlist)) |
| @@ -178,7 +179,7 @@ If DATE lacks timezone information, GMT is assumed." | |||
| 178 | (defun time-to-seconds (&optional time) | 179 | (defun time-to-seconds (&optional time) |
| 179 | "Convert optional value TIME to a floating point number. | 180 | "Convert optional value TIME to a floating point number. |
| 180 | TIME defaults to the current time." | 181 | TIME defaults to the current time." |
| 181 | (with-decoded-time-value ((high low micro pico type | 182 | (with-decoded-time-value ((high low micro pico _type |
| 182 | (or time (current-time)))) | 183 | (or time (current-time)))) |
| 183 | (+ (* high 65536.0) | 184 | (+ (* high 65536.0) |
| 184 | low | 185 | low |
| @@ -261,8 +262,8 @@ Return the difference in the format of a time value." | |||
| 261 | 262 | ||
| 262 | (defun time-less-p (t1 t2) | 263 | (defun time-less-p (t1 t2) |
| 263 | "Return non-nil if time value T1 is earlier than time value T2." | 264 | "Return non-nil if time value T1 is earlier than time value T2." |
| 264 | (with-decoded-time-value ((high1 low1 micro1 pico1 type1 t1) | 265 | (with-decoded-time-value ((high1 low1 micro1 pico1 _type1 t1) |
| 265 | (high2 low2 micro2 pico2 type2 t2)) | 266 | (high2 low2 micro2 pico2 _type2 t2)) |
| 266 | (or (< high1 high2) | 267 | (or (< high1 high2) |
| 267 | (and (= high1 high2) | 268 | (and (= high1 high2) |
| 268 | (or (< low1 low2) | 269 | (or (< low1 low2) |
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index a04bf8237d9..27ca17b4e4f 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el | |||
| @@ -74,7 +74,7 @@ truenames (those with the extension \".toda\")." | |||
| 74 | (let ((files (if (file-exists-p todo-directory) | 74 | (let ((files (if (file-exists-p todo-directory) |
| 75 | (mapcar 'file-truename | 75 | (mapcar 'file-truename |
| 76 | (directory-files todo-directory t | 76 | (directory-files todo-directory t |
| 77 | (if archives "\.toda$" "\.todo$") t))))) | 77 | (if archives "\\.toda$" "\\.todo$") t))))) |
| 78 | (sort files (lambda (s1 s2) (let ((cis1 (upcase s1)) | 78 | (sort files (lambda (s1 s2) (let ((cis1 (upcase s1)) |
| 79 | (cis2 (upcase s2))) | 79 | (cis2 (upcase s2))) |
| 80 | (string< cis1 cis2)))))) | 80 | (string< cis1 cis2)))))) |
| @@ -1112,7 +1112,7 @@ these files, also rename them accordingly." | |||
| 1112 | (snname (todo-short-file-name nname)) | 1112 | (snname (todo-short-file-name nname)) |
| 1113 | (files (directory-files todo-directory t | 1113 | (files (directory-files todo-directory t |
| 1114 | (concat ".*" (regexp-quote soname) | 1114 | (concat ".*" (regexp-quote soname) |
| 1115 | ".*\.tod[aorty]$") t))) | 1115 | ".*\\.tod[aorty]$") t))) |
| 1116 | (dolist (f files) | 1116 | (dolist (f files) |
| 1117 | (let* ((sfname (todo-short-file-name f)) | 1117 | (let* ((sfname (todo-short-file-name f)) |
| 1118 | (fext (file-name-extension f t)) | 1118 | (fext (file-name-extension f t)) |
| @@ -3963,7 +3963,7 @@ regexp items." | |||
| 3963 | (defun todo-find-filtered-items-file () | 3963 | (defun todo-find-filtered-items-file () |
| 3964 | "Choose a filtered items file and visit it." | 3964 | "Choose a filtered items file and visit it." |
| 3965 | (interactive) | 3965 | (interactive) |
| 3966 | (let ((files (directory-files todo-directory t "\.tod[rty]$" t)) | 3966 | (let ((files (directory-files todo-directory t "\\.tod[rty]$" t)) |
| 3967 | falist file) | 3967 | falist file) |
| 3968 | (dolist (f files) | 3968 | (dolist (f files) |
| 3969 | (let ((type (cond ((equal (file-name-extension f) "todr") "regexp") | 3969 | (let ((type (cond ((equal (file-name-extension f) "todr") "regexp") |
| @@ -4892,7 +4892,7 @@ With nil or omitted CATEGORY, default to the current category." | |||
| 4892 | (widen) | 4892 | (widen) |
| 4893 | (goto-char (point-min)) | 4893 | (goto-char (point-min)) |
| 4894 | (setq todo-categories | 4894 | (setq todo-categories |
| 4895 | (if (looking-at "\(\(\"") | 4895 | (if (looking-at "((\"") |
| 4896 | (read (buffer-substring-no-properties | 4896 | (read (buffer-substring-no-properties |
| 4897 | (line-beginning-position) | 4897 | (line-beginning-position) |
| 4898 | (line-end-position))) | 4898 | (line-end-position))) |
| @@ -5643,9 +5643,10 @@ have been removed." | |||
| 5643 | (when deleted | 5643 | (when deleted |
| 5644 | (let ((pl (> (length deleted) 1)) | 5644 | (let ((pl (> (length deleted) 1)) |
| 5645 | (names (mapconcat (lambda (f) (concat "\"" f "\"")) deleted ", "))) | 5645 | (names (mapconcat (lambda (f) (concat "\"" f "\"")) deleted ", "))) |
| 5646 | (message (concat "File" (if pl "s" "") " " names " ha" (if pl "ve" "s") | 5646 | (message (concat "File" (if pl "s" "") " %s ha" (if pl "ve" "s") |
| 5647 | " been deleted and removed from\n" | 5647 | " been deleted and removed from\n" |
| 5648 | "the list of category completion files"))) | 5648 | "the list of category completion files") |
| 5649 | names)) | ||
| 5649 | (todo-reevaluate-category-completions-files-defcustom) | 5650 | (todo-reevaluate-category-completions-files-defcustom) |
| 5650 | (custom-set-default 'todo-category-completions-files | 5651 | (custom-set-default 'todo-category-completions-files |
| 5651 | (symbol-value 'todo-category-completions-files)) | 5652 | (symbol-value 'todo-category-completions-files)) |
| @@ -6022,7 +6023,7 @@ the empty string (i.e., no time string)." | |||
| 6022 | "The :set function for user option `todo-nondiary-marker'." | 6023 | "The :set function for user option `todo-nondiary-marker'." |
| 6023 | (let* ((oldvalue (symbol-value symbol)) | 6024 | (let* ((oldvalue (symbol-value symbol)) |
| 6024 | (files (append todo-files todo-archives | 6025 | (files (append todo-files todo-archives |
| 6025 | (directory-files todo-directory t "\.tod[rty]$" t)))) | 6026 | (directory-files todo-directory t "\\.tod[rty]$" t)))) |
| 6026 | (custom-set-default symbol value) | 6027 | (custom-set-default symbol value) |
| 6027 | ;; Need to reset these to get font-locking right. | 6028 | ;; Need to reset these to get font-locking right. |
| 6028 | (setq todo-nondiary-start (nth 0 todo-nondiary-marker) | 6029 | (setq todo-nondiary-start (nth 0 todo-nondiary-marker) |
| @@ -6075,7 +6076,7 @@ the empty string (i.e., no time string)." | |||
| 6075 | "The :set function for user option `todo-done-string'." | 6076 | "The :set function for user option `todo-done-string'." |
| 6076 | (let ((oldvalue (symbol-value symbol)) | 6077 | (let ((oldvalue (symbol-value symbol)) |
| 6077 | (files (append todo-files todo-archives | 6078 | (files (append todo-files todo-archives |
| 6078 | (directory-files todo-directory t "\.todr$" t)))) | 6079 | (directory-files todo-directory t "\\.todr$" t)))) |
| 6079 | (custom-set-default symbol value) | 6080 | (custom-set-default symbol value) |
| 6080 | ;; Need to reset this to get font-locking right. | 6081 | ;; Need to reset this to get font-locking right. |
| 6081 | (setq todo-done-string-start | 6082 | (setq todo-done-string-start |
| @@ -6104,7 +6105,7 @@ the empty string (i.e., no time string)." | |||
| 6104 | "The :set function for user option `todo-comment-string'." | 6105 | "The :set function for user option `todo-comment-string'." |
| 6105 | (let ((oldvalue (symbol-value symbol)) | 6106 | (let ((oldvalue (symbol-value symbol)) |
| 6106 | (files (append todo-files todo-archives | 6107 | (files (append todo-files todo-archives |
| 6107 | (directory-files todo-directory t "\.todr$" t)))) | 6108 | (directory-files todo-directory t "\\.todr$" t)))) |
| 6108 | (custom-set-default symbol value) | 6109 | (custom-set-default symbol value) |
| 6109 | (when (not (equal value oldvalue)) | 6110 | (when (not (equal value oldvalue)) |
| 6110 | (dolist (f files) | 6111 | (dolist (f files) |
| @@ -6130,7 +6131,7 @@ the empty string (i.e., no time string)." | |||
| 6130 | "The :set function for user option `todo-highlight-item'." | 6131 | "The :set function for user option `todo-highlight-item'." |
| 6131 | (let ((oldvalue (symbol-value symbol)) | 6132 | (let ((oldvalue (symbol-value symbol)) |
| 6132 | (files (append todo-files todo-archives | 6133 | (files (append todo-files todo-archives |
| 6133 | (directory-files todo-directory t "\.tod[rty]$" t)))) | 6134 | (directory-files todo-directory t "\\.tod[rty]$" t)))) |
| 6134 | (custom-set-default symbol value) | 6135 | (custom-set-default symbol value) |
| 6135 | (when (not (equal value oldvalue)) | 6136 | (when (not (equal value oldvalue)) |
| 6136 | (dolist (f files) | 6137 | (dolist (f files) |
diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el index b4fea421447..7c2a6b8dbf1 100644 --- a/lisp/cedet/ede/auto.el +++ b/lisp/cedet/ede/auto.el | |||
| @@ -155,9 +155,9 @@ into memory.") | |||
| 155 | Specifying this matcher object will allow EDE to perform a complex | 155 | Specifying this matcher object will allow EDE to perform a complex |
| 156 | check without loading the project. | 156 | check without loading the project. |
| 157 | 157 | ||
| 158 | NOTE: If you use dirmatch, you may need to set :root-only to `nil'. | 158 | NOTE: If you use dirmatch, you may need to set :root-only to nil. |
| 159 | While it may be a root based project, all subdirs will happen to return | 159 | While it may be a root based project, all subdirs will happen to return |
| 160 | true for the dirmatch, so for scanning purposes, set it to `nil'.") | 160 | true for the dirmatch, so for scanning purposes, set it to nil.") |
| 161 | (proj-root :initarg :proj-root | 161 | (proj-root :initarg :proj-root |
| 162 | :type function | 162 | :type function |
| 163 | :documentation "A function symbol to call for the project root. | 163 | :documentation "A function symbol to call for the project root. |
diff --git a/lisp/cedet/ede/generic.el b/lisp/cedet/ede/generic.el index 8d013245bb6..b865ff5028d 100644 --- a/lisp/cedet/ede/generic.el +++ b/lisp/cedet/ede/generic.el | |||
| @@ -302,6 +302,8 @@ CLASS is the EIEIO class that is used to track this project. It should subclass | |||
| 302 | ".svn" 'ede-generic-vc-project) | 302 | ".svn" 'ede-generic-vc-project) |
| 303 | (ede-generic-new-autoloader "generic-cvs" "Generic CVS" | 303 | (ede-generic-new-autoloader "generic-cvs" "Generic CVS" |
| 304 | "CVS" 'ede-generic-vc-project) | 304 | "CVS" 'ede-generic-vc-project) |
| 305 | (ede-generic-new-autoloader "generic-mtn" "Generic Monotone" | ||
| 306 | "_MTN/options" 'ede-generic-vc-project) | ||
| 305 | 307 | ||
| 306 | ;; Take advantage of existing 'projectile' based projects. | 308 | ;; Take advantage of existing 'projectile' based projects. |
| 307 | ;; @TODO - if projectile supports compile commands etc, can we | 309 | ;; @TODO - if projectile supports compile commands etc, can we |
diff --git a/lisp/cedet/ede/proj-obj.el b/lisp/cedet/ede/proj-obj.el index de06910f75e..34e302d3d2c 100644 --- a/lisp/cedet/ede/proj-obj.el +++ b/lisp/cedet/ede/proj-obj.el | |||
| @@ -126,7 +126,7 @@ file.") | |||
| 126 | (defvar ede-source-c++ | 126 | (defvar ede-source-c++ |
| 127 | (ede-sourcecode "ede-source-c++" | 127 | (ede-sourcecode "ede-source-c++" |
| 128 | :name "C++" | 128 | :name "C++" |
| 129 | :sourcepattern "\\.\\(c\\(pp?\\|c\\|xx\\|++\\)\\|C\\\(PP\\)?\\)$" | 129 | :sourcepattern "\\.\\(c\\(pp?\\|c\\|xx\\|++\\)\\|C\\(PP\\)?\\)$" |
| 130 | :auxsourcepattern "\\.\\(hpp?\\|hh?\\|hxx\\|H\\)$" | 130 | :auxsourcepattern "\\.\\(hpp?\\|hh?\\|hxx\\|H\\)$" |
| 131 | :garbagepattern '("*.o" "*.obj" ".deps/*.P" ".lo")) | 131 | :garbagepattern '("*.o" "*.obj" ".deps/*.P" ".lo")) |
| 132 | "C++ source code definition.") | 132 | "C++ source code definition.") |
diff --git a/lisp/cedet/ede/proj-shared.el b/lisp/cedet/ede/proj-shared.el index dfd44ac07c6..a8edbe8fbdf 100644 --- a/lisp/cedet/ede/proj-shared.el +++ b/lisp/cedet/ede/proj-shared.el | |||
| @@ -166,7 +166,7 @@ Use ldlibs to add addition libraries.") | |||
| 166 | "%.lo: %.c\n" | 166 | "%.lo: %.c\n" |
| 167 | "\t@echo '$(LTCOMPILE) -c $<'; \\\n" | 167 | "\t@echo '$(LTCOMPILE) -c $<'; \\\n" |
| 168 | "\t$(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<\n" | 168 | "\t$(LTCOMPILE) -Wp,-MD,.deps/$(*F).p -c $<\n" |
| 169 | "\t@-sed -e 's/^\([^:]*\)\.o:/\1.lo \1.o:/' \\\n" | 169 | "\t@-sed -e 's/^\\([^:]*\\)\\.o:/\\1.lo \\1.o:/' \\\n" |
| 170 | "\t < .deps/$(*F).p > .deps/$(*F).P\n" | 170 | "\t < .deps/$(*F).p > .deps/$(*F).P\n" |
| 171 | "\t@-rm -f .deps/$(*F).p\n\n")) | 171 | "\t@-rm -f .deps/$(*F).p\n\n")) |
| 172 | ) | 172 | ) |
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el index 64c1f08af22..8736a4ff93c 100644 --- a/lisp/cedet/mode-local.el +++ b/lisp/cedet/mode-local.el | |||
| @@ -604,7 +604,7 @@ PROMPT, INITIAL, HIST, and DEFAULT are the same as for `completing-read'." | |||
| 604 | ;; | 604 | ;; |
| 605 | (defun overload-docstring-extension (overload) | 605 | (defun overload-docstring-extension (overload) |
| 606 | "Return the doc string that augments the description of OVERLOAD." | 606 | "Return the doc string that augments the description of OVERLOAD." |
| 607 | (let ((doc "\n\This function can be overloaded\ | 607 | (let ((doc "\nThis function can be overloaded\ |
| 608 | with `define-mode-local-override'.") | 608 | with `define-mode-local-override'.") |
| 609 | (sym (overload-obsoleted-by overload))) | 609 | (sym (overload-obsoleted-by overload))) |
| 610 | (when sym | 610 | (when sym |
| @@ -677,7 +677,7 @@ SYMBOL is a function that can be overridden." | |||
| 677 | result)) | 677 | result)) |
| 678 | 678 | ||
| 679 | (defun xref-mode-local-overload (symbol) | 679 | (defun xref-mode-local-overload (symbol) |
| 680 | "For ‘elisp-xref-find-def-functions’; add overloads for SYMBOL." | 680 | "For `elisp-xref-find-def-functions'; add overloads for SYMBOL." |
| 681 | ;; Current buffer is the buffer where xref-find-definitions was invoked. | 681 | ;; Current buffer is the buffer where xref-find-definitions was invoked. |
| 682 | (when (get symbol 'mode-local-overload) | 682 | (when (get symbol 'mode-local-overload) |
| 683 | (let* ((symbol-file (find-lisp-object-file-name symbol (symbol-function symbol))) | 683 | (let* ((symbol-file (find-lisp-object-file-name symbol (symbol-function symbol))) |
| @@ -738,11 +738,11 @@ SYMBOL is a function that can be overridden." | |||
| 738 | 738 | ||
| 739 | (defconst xref-mode-local-find-overloadable-regexp | 739 | (defconst xref-mode-local-find-overloadable-regexp |
| 740 | "(\\(\\(define-overloadable-function\\)\\|\\(define-overload\\)\\) +%s" | 740 | "(\\(\\(define-overloadable-function\\)\\|\\(define-overload\\)\\) +%s" |
| 741 | "Regexp used by ‘xref-find-definitions’ when searching for a | 741 | "Regexp used by `xref-find-definitions' when searching for a |
| 742 | mode-local overloadable function definition.") | 742 | mode-local overloadable function definition.") |
| 743 | 743 | ||
| 744 | (defun xref-mode-local-find-override (meta-name) | 744 | (defun xref-mode-local-find-override (meta-name) |
| 745 | "Function used by ‘xref-find-definitions’ when searching for an | 745 | "Function used by `xref-find-definitions' when searching for an |
| 746 | override of a mode-local overloadable function. | 746 | override of a mode-local overloadable function. |
| 747 | META-NAME is a cons (OVERLOADABLE-SYMBOL . MAJOR-MODE)." | 747 | META-NAME is a cons (OVERLOADABLE-SYMBOL . MAJOR-MODE)." |
| 748 | (let* ((override (car meta-name)) | 748 | (let* ((override (car meta-name)) |
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index d32b2c4f001..9b7882c7acd 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el | |||
| @@ -156,7 +156,7 @@ Presumably if you call this you will insert something new there." | |||
| 156 | "Display the string FMT formatted with ARGS at the end of the minibuffer." | 156 | "Display the string FMT formatted with ARGS at the end of the minibuffer." |
| 157 | (if semantic-complete-inline-overlay | 157 | (if semantic-complete-inline-overlay |
| 158 | (apply 'message fmt args) | 158 | (apply 'message fmt args) |
| 159 | (message (concat (buffer-string) (apply #'format-message fmt args))))) | 159 | (apply 'message (concat "%s" fmt) (buffer-string) args))) |
| 160 | 160 | ||
| 161 | ;;; ------------------------------------------------------------ | 161 | ;;; ------------------------------------------------------------ |
| 162 | ;;; MINIBUFFER: Option Selection harnesses | 162 | ;;; MINIBUFFER: Option Selection harnesses |
diff --git a/lisp/cedet/semantic/tag.el b/lisp/cedet/semantic/tag.el index 6c6616d7009..34fc8ba92ce 100644 --- a/lisp/cedet/semantic/tag.el +++ b/lisp/cedet/semantic/tag.el | |||
| @@ -1212,7 +1212,7 @@ Returns a list of cooked tags. | |||
| 1212 | The parser returns raw tags with positional data START END at the | 1212 | The parser returns raw tags with positional data START END at the |
| 1213 | end of the tag data structure (a list for now). We convert it from | 1213 | end of the tag data structure (a list for now). We convert it from |
| 1214 | that to a cooked state that uses an overlay proxy, that is, a vector | 1214 | that to a cooked state that uses an overlay proxy, that is, a vector |
| 1215 | \[START END]. | 1215 | [START END]. |
| 1216 | 1216 | ||
| 1217 | The raw tag is changed with side effects and maybe expanded in | 1217 | The raw tag is changed with side effects and maybe expanded in |
| 1218 | several derived tags when the variable `semantic-tag-expand-function' | 1218 | several derived tags when the variable `semantic-tag-expand-function' |
diff --git a/lisp/cedet/semantic/wisent/comp.el b/lisp/cedet/semantic/wisent/comp.el index 6730e8e5bc7..585c11a05d3 100644 --- a/lisp/cedet/semantic/wisent/comp.el +++ b/lisp/cedet/semantic/wisent/comp.el | |||
| @@ -915,7 +915,7 @@ An NVARS by NRULES matrix of bits indicating which rules can help | |||
| 915 | derive the beginning of the data for each nonterminal. For example, | 915 | derive the beginning of the data for each nonterminal. For example, |
| 916 | if symbol 5 can be derived as the sequence of symbols 8 3 20, and one | 916 | if symbol 5 can be derived as the sequence of symbols 8 3 20, and one |
| 917 | of the rules for deriving symbol 8 is rule 4, then the | 917 | of the rules for deriving symbol 8 is rule 4, then the |
| 918 | \[5 - NTOKENS, 4] bit in FDERIVES is set." | 918 | [5 - NTOKENS, 4] bit in FDERIVES is set." |
| 919 | (let (i j k) | 919 | (let (i j k) |
| 920 | (setq fderives (make-vector nvars nil)) | 920 | (setq fderives (make-vector nvars nil)) |
| 921 | (setq i 0) | 921 | (setq i 0) |
diff --git a/lisp/cedet/semantic/wisent/wisent.el b/lisp/cedet/semantic/wisent/wisent.el index fb77cb36947..4c5274198dd 100644 --- a/lisp/cedet/semantic/wisent/wisent.el +++ b/lisp/cedet/semantic/wisent/wisent.el | |||
| @@ -364,7 +364,7 @@ automaton has only one entry point." | |||
| 364 | 364 | ||
| 365 | - START specify the start symbol (nonterminal) used by the parser as | 365 | - START specify the start symbol (nonterminal) used by the parser as |
| 366 | its goal. It defaults to the start symbol defined in the grammar | 366 | its goal. It defaults to the start symbol defined in the grammar |
| 367 | \(see also `wisent-compile-grammar')." | 367 | (see also `wisent-compile-grammar')." |
| 368 | (run-hooks 'wisent-pre-parse-hook) | 368 | (run-hooks 'wisent-pre-parse-hook) |
| 369 | (let* ((actions (aref automaton 0)) | 369 | (let* ((actions (aref automaton 0)) |
| 370 | (gotos (aref automaton 1)) | 370 | (gotos (aref automaton 1)) |
diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el index 7c5819d2126..724fc2bb7b0 100644 --- a/lisp/cmuscheme.el +++ b/lisp/cmuscheme.el | |||
| @@ -430,7 +430,7 @@ in the next one.") | |||
| 430 | (file-name-nondirectory file-name))) | 430 | (file-name-nondirectory file-name))) |
| 431 | (comint-send-string (scheme-proc) (concat "(load \"" | 431 | (comint-send-string (scheme-proc) (concat "(load \"" |
| 432 | file-name | 432 | file-name |
| 433 | "\"\)\n"))) | 433 | "\")\n"))) |
| 434 | 434 | ||
| 435 | (defun scheme-compile-file (file-name) | 435 | (defun scheme-compile-file (file-name) |
| 436 | "Compile a Scheme file FILE-NAME in the inferior Scheme process." | 436 | "Compile a Scheme file FILE-NAME in the inferior Scheme process." |
| @@ -444,7 +444,7 @@ in the next one.") | |||
| 444 | (file-name-nondirectory file-name))) | 444 | (file-name-nondirectory file-name))) |
| 445 | (comint-send-string (scheme-proc) (concat "(compile-file \"" | 445 | (comint-send-string (scheme-proc) (concat "(compile-file \"" |
| 446 | file-name | 446 | file-name |
| 447 | "\"\)\n"))) | 447 | "\")\n"))) |
| 448 | 448 | ||
| 449 | 449 | ||
| 450 | (defvar scheme-buffer nil "The current scheme process buffer. | 450 | (defvar scheme-buffer nil "The current scheme process buffer. |
diff --git a/lisp/comint.el b/lisp/comint.el index ead2757e6e8..e70fe88baf7 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -1581,7 +1581,7 @@ Go to the history element by the absolute history position HIST-POS." | |||
| 1581 | (defun comint-within-quotes (beg end) | 1581 | (defun comint-within-quotes (beg end) |
| 1582 | "Return t if the number of quotes between BEG and END is odd. | 1582 | "Return t if the number of quotes between BEG and END is odd. |
| 1583 | Quotes are single and double." | 1583 | Quotes are single and double." |
| 1584 | (let ((countsq (comint-how-many-region "\\(^\\|[^\\\\]\\)\'" beg end)) | 1584 | (let ((countsq (comint-how-many-region "\\(^\\|[^\\\\]\\)'" beg end)) |
| 1585 | (countdq (comint-how-many-region "\\(^\\|[^\\\\]\\)\"" beg end))) | 1585 | (countdq (comint-how-many-region "\\(^\\|[^\\\\]\\)\"" beg end))) |
| 1586 | (or (= (mod countsq 2) 1) (= (mod countdq 2) 1)))) | 1586 | (or (= (mod countsq 2) 1) (= (mod countdq 2) 1)))) |
| 1587 | 1587 | ||
diff --git a/lisp/custom.el b/lisp/custom.el index ea5ab7a4773..e212e32807d 100644 --- a/lisp/custom.el +++ b/lisp/custom.el | |||
| @@ -1214,13 +1214,11 @@ Return t if THEME was successfully loaded, nil otherwise." | |||
| 1214 | (put theme 'theme-documentation nil)) | 1214 | (put theme 'theme-documentation nil)) |
| 1215 | (let ((fn (locate-file (concat (symbol-name theme) "-theme.el") | 1215 | (let ((fn (locate-file (concat (symbol-name theme) "-theme.el") |
| 1216 | (custom-theme--load-path) | 1216 | (custom-theme--load-path) |
| 1217 | '("" "c"))) | 1217 | '("" "c")))) |
| 1218 | hash) | ||
| 1219 | (unless fn | 1218 | (unless fn |
| 1220 | (error "Unable to find theme file for `%s'" theme)) | 1219 | (error "Unable to find theme file for `%s'" theme)) |
| 1221 | (with-temp-buffer | 1220 | (with-temp-buffer |
| 1222 | (insert-file-contents fn) | 1221 | (insert-file-contents fn) |
| 1223 | (setq hash (secure-hash 'sha256 (current-buffer))) | ||
| 1224 | ;; Check file safety with `custom-safe-themes', prompting the | 1222 | ;; Check file safety with `custom-safe-themes', prompting the |
| 1225 | ;; user if necessary. | 1223 | ;; user if necessary. |
| 1226 | (when (or no-confirm | 1224 | (when (or no-confirm |
| @@ -1228,8 +1226,9 @@ Return t if THEME was successfully loaded, nil otherwise." | |||
| 1228 | (and (memq 'default custom-safe-themes) | 1226 | (and (memq 'default custom-safe-themes) |
| 1229 | (equal (file-name-directory fn) | 1227 | (equal (file-name-directory fn) |
| 1230 | (expand-file-name "themes/" data-directory))) | 1228 | (expand-file-name "themes/" data-directory))) |
| 1231 | (member hash custom-safe-themes) | 1229 | (let ((hash (secure-hash 'sha256 (current-buffer)))) |
| 1232 | (custom-theme-load-confirm hash)) | 1230 | (or (member hash custom-safe-themes) |
| 1231 | (custom-theme-load-confirm hash)))) | ||
| 1233 | (let ((custom--inhibit-theme-enable t) | 1232 | (let ((custom--inhibit-theme-enable t) |
| 1234 | (buffer-file-name fn)) ;For load-history. | 1233 | (buffer-file-name fn)) ;For load-history. |
| 1235 | (eval-buffer)) | 1234 | (eval-buffer)) |
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el index 42d7fd369ed..b32d115d499 100644 --- a/lisp/dabbrev.el +++ b/lisp/dabbrev.el | |||
| @@ -120,7 +120,7 @@ | |||
| 120 | 120 | ||
| 121 | Example: Set this to \"\\\\$\" for programming languages | 121 | Example: Set this to \"\\\\$\" for programming languages |
| 122 | in which variable names may appear with or without a leading `$'. | 122 | in which variable names may appear with or without a leading `$'. |
| 123 | \(For example, in Makefiles.\) | 123 | \(For example, in Makefiles.) |
| 124 | 124 | ||
| 125 | Set this to nil if no characters should be skipped." | 125 | Set this to nil if no characters should be skipped." |
| 126 | :type '(choice regexp | 126 | :type '(choice regexp |
diff --git a/lisp/emacs-lisp/advice.el b/lisp/emacs-lisp/advice.el index 62330fca71b..4ee830023fc 100644 --- a/lisp/emacs-lisp/advice.el +++ b/lisp/emacs-lisp/advice.el | |||
| @@ -168,7 +168,8 @@ | |||
| 168 | ;; "Switch to non-existing buffers only upon confirmation." | 168 | ;; "Switch to non-existing buffers only upon confirmation." |
| 169 | ;; (interactive "BSwitch to buffer: ") | 169 | ;; (interactive "BSwitch to buffer: ") |
| 170 | ;; (if (or (get-buffer (ad-get-arg 0)) | 170 | ;; (if (or (get-buffer (ad-get-arg 0)) |
| 171 | ;; (y-or-n-p (format "‘%s’ does not exist, create? " (ad-get-arg 0)))) | 171 | ;; (y-or-n-p (format-message "`%s' does not exist, create? " |
| 172 | ;; (ad-get-arg 0)))) | ||
| 172 | ;; ad-do-it)) | 173 | ;; ad-do-it)) |
| 173 | ;; | 174 | ;; |
| 174 | ;;(defadvice find-file (before existing-files-only activate) | 175 | ;;(defadvice find-file (before existing-files-only activate) |
| @@ -3106,7 +3107,7 @@ deactivation, which might run hooks and get into other trouble." | |||
| 3106 | "Define a piece of advice for FUNCTION (a symbol). | 3107 | "Define a piece of advice for FUNCTION (a symbol). |
| 3107 | The syntax of `defadvice' is as follows: | 3108 | The syntax of `defadvice' is as follows: |
| 3108 | 3109 | ||
| 3109 | \(defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) | 3110 | (defadvice FUNCTION (CLASS NAME [POSITION] [ARGLIST] FLAG...) |
| 3110 | [DOCSTRING] [INTERACTIVE-FORM] | 3111 | [DOCSTRING] [INTERACTIVE-FORM] |
| 3111 | BODY...) | 3112 | BODY...) |
| 3112 | 3113 | ||
diff --git a/lisp/emacs-lisp/avl-tree.el b/lisp/emacs-lisp/avl-tree.el index e3d83eb127f..99a329b021e 100644 --- a/lisp/emacs-lisp/avl-tree.el +++ b/lisp/emacs-lisp/avl-tree.el | |||
| @@ -615,7 +615,7 @@ is more efficient." | |||
| 615 | of all elements of TREE. | 615 | of all elements of TREE. |
| 616 | 616 | ||
| 617 | If REVERSE is non-nil, the stack is sorted in reverse order. | 617 | If REVERSE is non-nil, the stack is sorted in reverse order. |
| 618 | \(See also `avl-tree-stack-pop'\). | 618 | \(See also `avl-tree-stack-pop'). |
| 619 | 619 | ||
| 620 | Note that any modification to TREE *immediately* invalidates all | 620 | Note that any modification to TREE *immediately* invalidates all |
| 621 | avl-tree-stacks created before the modification (in particular, | 621 | avl-tree-stacks created before the modification (in particular, |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 279ffa37b7e..8699af60ea8 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -397,7 +397,7 @@ invoked interactively are excluded from this list." | |||
| 397 | "Alist of functions and their call tree. | 397 | "Alist of functions and their call tree. |
| 398 | Each element looks like | 398 | Each element looks like |
| 399 | 399 | ||
| 400 | \(FUNCTION CALLERS CALLS\) | 400 | (FUNCTION CALLERS CALLS) |
| 401 | 401 | ||
| 402 | where CALLERS is a list of functions that call FUNCTION, and CALLS | 402 | where CALLERS is a list of functions that call FUNCTION, and CALLS |
| 403 | is a list of functions for which calls were generated while compiling | 403 | is a list of functions for which calls were generated while compiling |
| @@ -1814,7 +1814,7 @@ The value is non-nil if there were no errors, nil if errors." | |||
| 1814 | ;; compile this file. | 1814 | ;; compile this file. |
| 1815 | (if (with-current-buffer input-buffer no-byte-compile) | 1815 | (if (with-current-buffer input-buffer no-byte-compile) |
| 1816 | (progn | 1816 | (progn |
| 1817 | ;; (message "%s not compiled because of ‘no-byte-compile: %s’" | 1817 | ;; (message "%s not compiled because of `no-byte-compile: %s'" |
| 1818 | ;; (byte-compile-abbreviate-file filename) | 1818 | ;; (byte-compile-abbreviate-file filename) |
| 1819 | ;; (with-current-buffer input-buffer no-byte-compile)) | 1819 | ;; (with-current-buffer input-buffer no-byte-compile)) |
| 1820 | (when (file-exists-p target-file) | 1820 | (when (file-exists-p target-file) |
| @@ -4196,7 +4196,7 @@ binding slots have been popped." | |||
| 4196 | ;; (consp (get condition | 4196 | ;; (consp (get condition |
| 4197 | ;; 'error-conditions))))) | 4197 | ;; 'error-conditions))))) |
| 4198 | ;; (byte-compile-warn | 4198 | ;; (byte-compile-warn |
| 4199 | ;; "‘%s’ is not a known condition name | 4199 | ;; "`%s' is not a known condition name |
| 4200 | ;; (in condition-case)" | 4200 | ;; (in condition-case)" |
| 4201 | ;; condition)) | 4201 | ;; condition)) |
| 4202 | ) | 4202 | ) |
| @@ -4235,7 +4235,7 @@ binding slots have been popped." | |||
| 4235 | ;; for the argument to `signal', not to `condition-case'. | 4235 | ;; for the argument to `signal', not to `condition-case'. |
| 4236 | ;;(unless (consp (get c 'error-conditions)) | 4236 | ;;(unless (consp (get c 'error-conditions)) |
| 4237 | ;; (byte-compile-warn | 4237 | ;; (byte-compile-warn |
| 4238 | ;; "‘%s’ is not a known condition name (in condition-case)" | 4238 | ;; "`%s' is not a known condition name (in condition-case)" |
| 4239 | ;; c)) | 4239 | ;; c)) |
| 4240 | ) | 4240 | ) |
| 4241 | (byte-compile-push-constant condition)) | 4241 | (byte-compile-push-constant condition)) |
| @@ -4529,11 +4529,11 @@ whose definitions have been compiled in this Emacs session, as well as | |||
| 4529 | all functions called by those functions. | 4529 | all functions called by those functions. |
| 4530 | 4530 | ||
| 4531 | The call graph does not include macros, inline functions, or | 4531 | The call graph does not include macros, inline functions, or |
| 4532 | primitives that the byte-code interpreter knows about directly \(eq, | 4532 | primitives that the byte-code interpreter knows about directly |
| 4533 | cons, etc.\). | 4533 | \(`eq', `cons', etc.). |
| 4534 | 4534 | ||
| 4535 | The call tree also lists those functions which are not known to be called | 4535 | The call tree also lists those functions which are not known to be called |
| 4536 | \(that is, to which no calls have been compiled\), and which cannot be | 4536 | \(that is, to which no calls have been compiled), and which cannot be |
| 4537 | invoked interactively." | 4537 | invoked interactively." |
| 4538 | (interactive) | 4538 | (interactive) |
| 4539 | (message "Generating call tree...") | 4539 | (message "Generating call tree...") |
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index 205ae6d711e..0f75f0a1664 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el | |||
| @@ -679,7 +679,7 @@ and updates the data stored in ENV." | |||
| 679 | 679 | ||
| 680 | ;; ((and `(quote ,v . ,_) (guard (assq v env))) | 680 | ;; ((and `(quote ,v . ,_) (guard (assq v env))) |
| 681 | ;; (byte-compile-log-warning | 681 | ;; (byte-compile-log-warning |
| 682 | ;; (format-message "Possible confusion variable/symbol for ‘%S’" v))) | 682 | ;; (format-message "Possible confusion variable/symbol for `%S'" v))) |
| 683 | 683 | ||
| 684 | (`(quote . ,_) nil) ; quote form | 684 | (`(quote . ,_) nil) ; quote form |
| 685 | (`(function . ,_) nil) ; same as quote | 685 | (`(function . ,_) nil) ; same as quote |
diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el index 3b69e959282..536e4186c41 100644 --- a/lisp/emacs-lisp/check-declare.el +++ b/lisp/emacs-lisp/check-declare.el | |||
| @@ -162,7 +162,7 @@ def\\(?:un\\|subst\\|foo\\|method\\|class\\|\ | |||
| 162 | ine-\\(?:derived\\|generic\\|\\(?:global\\(?:ized\\)?-\\)?minor\\)-mode\\|\ | 162 | ine-\\(?:derived\\|generic\\|\\(?:global\\(?:ized\\)?-\\)?minor\\)-mode\\|\ |
| 163 | \\(?:ine-obsolete-function-\\)?alias[ \t]+'\\|\ | 163 | \\(?:ine-obsolete-function-\\)?alias[ \t]+'\\|\ |
| 164 | ine-overloadable-function\\)\\)\ | 164 | ine-overloadable-function\\)\\)\ |
| 165 | \[ \t]*%s\\([ \t;]+\\|$\\)") | 165 | [ \t]*%s\\([ \t;]+\\|$\\)") |
| 166 | (regexp-opt (mapcar 'cadr fnlist) t))) | 166 | (regexp-opt (mapcar 'cadr fnlist) t))) |
| 167 | (while (re-search-forward re nil t) | 167 | (while (re-search-forward re nil t) |
| 168 | (skip-chars-forward " \t\n") | 168 | (skip-chars-forward " \t\n") |
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 4a9e16ae88e..bf1a21acaf1 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el | |||
| @@ -1663,7 +1663,7 @@ function,command,variable,option or symbol." ms1)))))) | |||
| 1663 | ;; (concat "\\<" (regexp-quote (car fp)) "\\>") | 1663 | ;; (concat "\\<" (regexp-quote (car fp)) "\\>") |
| 1664 | ;; newname)) | 1664 | ;; newname)) |
| 1665 | ;; (checkdoc-create-error | 1665 | ;; (checkdoc-create-error |
| 1666 | ;; "Flag variable names should normally end in ‘-flag’" s | 1666 | ;; "Flag variable names should normally end in `-flag'" s |
| 1667 | ;; (marker-position e))))) | 1667 | ;; (marker-position e))))) |
| 1668 | ;; Done with variables | 1668 | ;; Done with variables |
| 1669 | )) | 1669 | )) |
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index c012a30a41f..dd01ebe9dd8 100644 --- a/lisp/emacs-lisp/cl-generic.el +++ b/lisp/emacs-lisp/cl-generic.el | |||
| @@ -1069,8 +1069,11 @@ The value returned is a list of elements of the form | |||
| 1069 | (or | 1069 | (or |
| 1070 | (and (assq type cl--generic-typeof-types) | 1070 | (and (assq type cl--generic-typeof-types) |
| 1071 | (progn | 1071 | (progn |
| 1072 | (if (memq type '(vector array sequence)) | 1072 | ;; FIXME: While this wrinkle in the semantics can be occasionally |
| 1073 | (message "`%S' also matches CL structs and EIEIO classes" type)) | 1073 | ;; problematic, this warning is more often annoying than helpful. |
| 1074 | ;;(if (memq type '(vector array sequence)) | ||
| 1075 | ;; (message "`%S' also matches CL structs and EIEIO classes" | ||
| 1076 | ;; type)) | ||
| 1074 | (list cl--generic-typeof-generalizer))) | 1077 | (list cl--generic-typeof-generalizer))) |
| 1075 | (cl-call-next-method))) | 1078 | (cl-call-next-method))) |
| 1076 | 1079 | ||
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index eab22b67cd7..56f95111ab8 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el | |||
| @@ -136,7 +136,7 @@ BODY contains code to execute each time the mode is enabled or disabled. | |||
| 136 | :variable PLACE The location to use instead of the variable MODE to store | 136 | :variable PLACE The location to use instead of the variable MODE to store |
| 137 | the state of the mode. This can be simply a different | 137 | the state of the mode. This can be simply a different |
| 138 | named variable, or a generalized variable. | 138 | named variable, or a generalized variable. |
| 139 | PLACE can also be of the form \(GET . SET), where GET is | 139 | PLACE can also be of the form (GET . SET), where GET is |
| 140 | an expression that returns the current state, and SET is | 140 | an expression that returns the current state, and SET is |
| 141 | a function that takes one argument, the new state, and | 141 | a function that takes one argument, the new state, and |
| 142 | sets it. If you specify a :variable, this function does | 142 | sets it. If you specify a :variable, this function does |
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 0162a9a230a..a3e3b567cc4 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -3162,12 +3162,12 @@ Do this when stopped before the form or it will be too late. | |||
| 3162 | One side effect of using this command is that the next time the | 3162 | One side effect of using this command is that the next time the |
| 3163 | function or macro is called, Edebug will be called there as well." | 3163 | function or macro is called, Edebug will be called there as well." |
| 3164 | (interactive) | 3164 | (interactive) |
| 3165 | (if (not (looking-at "\(")) | 3165 | (if (not (looking-at "(")) |
| 3166 | (error "You must be before a list form") | 3166 | (error "You must be before a list form") |
| 3167 | (let ((func | 3167 | (let ((func |
| 3168 | (save-excursion | 3168 | (save-excursion |
| 3169 | (down-list 1) | 3169 | (down-list 1) |
| 3170 | (if (looking-at "\(") | 3170 | (if (looking-at "(") |
| 3171 | (edebug--form-data-name | 3171 | (edebug--form-data-name |
| 3172 | (edebug-get-form-data-entry (point))) | 3172 | (edebug-get-form-data-entry (point))) |
| 3173 | (read (current-buffer)))))) | 3173 | (read (current-buffer)))))) |
| @@ -3216,57 +3216,45 @@ This is useful for exiting even if `unwind-protect' code may be executed." | |||
| 3216 | (setq edebug-execution-mode 'Go-nonstop) | 3216 | (setq edebug-execution-mode 'Go-nonstop) |
| 3217 | (top-level)) | 3217 | (top-level)) |
| 3218 | 3218 | ||
| 3219 | |||
| 3220 | ;;(defun edebug-exit-out () | 3219 | ;;(defun edebug-exit-out () |
| 3221 | ;; "Go until the current function exits." | 3220 | ;; "Go until the current function exits." |
| 3222 | ;; (interactive) | 3221 | ;; (interactive) |
| 3223 | ;; (edebug-set-mode 'exiting "Exit...")) | 3222 | ;; (edebug-set-mode 'exiting "Exit...")) |
| 3224 | 3223 | ||
| 3225 | 3224 | (defconst edebug-initial-mode-alist | |
| 3226 | ;;; The following initial mode setting definitions are not used yet. | 3225 | '((edebug-step-mode . step) |
| 3227 | 3226 | (edebug-next-mode . next) | |
| 3228 | '(defconst edebug-initial-mode-alist | 3227 | (edebug-trace-mode . trace) |
| 3229 | '((edebug-Continue-fast . Continue-fast) | 3228 | (edebug-Trace-fast-mode . Trace-fast) |
| 3230 | (edebug-Trace-fast . Trace-fast) | 3229 | (edebug-go-mode . go) |
| 3231 | (edebug-continue . continue) | 3230 | (edebug-continue-mode . continue) |
| 3232 | (edebug-trace . trace) | 3231 | (edebug-Continue-fast-mode . Continue-fast) |
| 3233 | (edebug-go . go) | 3232 | (edebug-Go-nonstop-mode . Go-nonstop)) |
| 3234 | (edebug-step-through . step) | ||
| 3235 | (edebug-Go-nonstop . Go-nonstop) | ||
| 3236 | ) | ||
| 3237 | "Association list between commands and the modes they set.") | 3233 | "Association list between commands and the modes they set.") |
| 3238 | 3234 | ||
| 3235 | (defvar edebug-mode-map) ; will be defined fully later. | ||
| 3239 | 3236 | ||
| 3240 | '(defun edebug-set-initial-mode () | 3237 | (defun edebug-set-initial-mode () |
| 3241 | "Ask for the initial mode of the enclosing function. | 3238 | "Set the initial execution mode of Edebug. |
| 3242 | The mode is requested via the key that would be used to set the mode in | 3239 | The mode is requested via the key that would be used to set the mode in |
| 3243 | edebug-mode." | 3240 | edebug-mode." |
| 3244 | (interactive) | 3241 | (interactive) |
| 3245 | (let* ((this-function (edebug-which-function)) | 3242 | (let* ((old-mode edebug-initial-mode) |
| 3246 | (keymap (if (eq edebug-mode-map (current-local-map)) | ||
| 3247 | edebug-mode-map)) | ||
| 3248 | (old-mode (or (get this-function 'edebug-initial-mode) | ||
| 3249 | edebug-initial-mode)) | ||
| 3250 | (key (read-key-sequence | 3243 | (key (read-key-sequence |
| 3251 | (format | 3244 | (format |
| 3252 | "Change initial edebug mode for %s from %s (%s) to (enter key): " | 3245 | "Change initial edebug mode from %s (%c) to (enter key): " |
| 3253 | this-function | 3246 | old-mode |
| 3254 | old-mode | 3247 | (aref (where-is-internal |
| 3255 | (where-is-internal | 3248 | (car (rassq old-mode edebug-initial-mode-alist)) |
| 3256 | (car (rassq old-mode edebug-initial-mode-alist)) | 3249 | edebug-mode-map 'firstonly) |
| 3257 | keymap 'firstonly | 3250 | 0)))) |
| 3258 | )))) | 3251 | (mode (cdr (assq (lookup-key edebug-mode-map key) |
| 3259 | (mode (cdr (assq (key-binding key) edebug-initial-mode-alist))) | 3252 | edebug-initial-mode-alist)))) |
| 3260 | ) | 3253 | (if mode |
| 3261 | (if (and mode | ||
| 3262 | (or (get this-function 'edebug-initial-mode) | ||
| 3263 | (not (eq mode edebug-initial-mode)))) | ||
| 3264 | (progn | 3254 | (progn |
| 3265 | (put this-function 'edebug-initial-mode mode) | 3255 | (setq edebug-initial-mode mode) |
| 3266 | (message "Initial mode for %s is now: %s" | 3256 | (message "Edebug's initial mode is now: %s" mode)) |
| 3267 | this-function mode)) | 3257 | (error "Key must map to one of the mode changing commands")))) |
| 3268 | (error "Key must map to one of the mode changing commands") | ||
| 3269 | ))) | ||
| 3270 | 3258 | ||
| 3271 | ;;; Evaluation of expressions | 3259 | ;;; Evaluation of expressions |
| 3272 | 3260 | ||
| @@ -3425,7 +3413,9 @@ be installed in `emacs-lisp-mode-map'.") | |||
| 3425 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-s" 'edebug-step-mode) | 3413 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-s" 'edebug-step-mode) |
| 3426 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-n" 'edebug-next-mode) | 3414 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-n" 'edebug-next-mode) |
| 3427 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-c" 'edebug-go-mode) | 3415 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-c" 'edebug-go-mode) |
| 3428 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-l" 'edebug-where)) | 3416 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-l" 'edebug-where) |
| 3417 | ;; The following isn't a GUD binding. | ||
| 3418 | (define-key emacs-lisp-mode-map "\C-x\C-a\C-m" 'edebug-set-initial-mode)) | ||
| 3429 | 3419 | ||
| 3430 | (defvar edebug-mode-map | 3420 | (defvar edebug-mode-map |
| 3431 | (let ((map (copy-keymap emacs-lisp-mode-map))) | 3421 | (let ((map (copy-keymap emacs-lisp-mode-map))) |
| @@ -3790,10 +3780,10 @@ Otherwise call `debug' normally." | |||
| 3790 | (if t (progn | 3780 | (if t (progn |
| 3791 | 3781 | ||
| 3792 | ;; Delete interspersed edebug internals. | 3782 | ;; Delete interspersed edebug internals. |
| 3793 | (while (re-search-forward "^ \(?edebug" nil t) | 3783 | (while (re-search-forward "^ (?edebug" nil t) |
| 3794 | (beginning-of-line) | 3784 | (beginning-of-line) |
| 3795 | (cond | 3785 | (cond |
| 3796 | ((looking-at "^ \(edebug-after") | 3786 | ((looking-at "^ (edebug-after") |
| 3797 | ;; Previous lines may contain code, so just delete this line. | 3787 | ;; Previous lines may contain code, so just delete this line. |
| 3798 | (setq last-ok-point (point)) | 3788 | (setq last-ok-point (point)) |
| 3799 | (forward-line 1) | 3789 | (forward-line 1) |
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el index a2f5f8af8ea..e3f7b11bb64 100644 --- a/lisp/emacs-lisp/eieio-core.el +++ b/lisp/emacs-lisp/eieio-core.el | |||
| @@ -135,10 +135,10 @@ Currently under control of this var: | |||
| 135 | (or (cl--find-class class) class) | 135 | (or (cl--find-class class) class) |
| 136 | class)) | 136 | class)) |
| 137 | 137 | ||
| 138 | (defun class-p (class) | 138 | (defun class-p (x) |
| 139 | "Return non-nil if CLASS is a valid class vector. | 139 | "Return non-nil if X is a valid class vector. |
| 140 | CLASS is a symbol." ;FIXME: Is it a vector or a symbol? | 140 | X can also be is a symbol." |
| 141 | (and (symbolp class) (eieio--class-p (cl--find-class class)))) | 141 | (eieio--class-p (if (symbolp x) (cl--find-class x) x))) |
| 142 | 142 | ||
| 143 | (defun eieio--class-print-name (class) | 143 | (defun eieio--class-print-name (class) |
| 144 | "Return a printed representation of CLASS." | 144 | "Return a printed representation of CLASS." |
| @@ -769,7 +769,8 @@ Fills in OBJ's SLOT with its default value." | |||
| 769 | (cl-check-type obj (or eieio-object class)) | 769 | (cl-check-type obj (or eieio-object class)) |
| 770 | (cl-check-type slot symbol) | 770 | (cl-check-type slot symbol) |
| 771 | (let* ((cl (cond ((symbolp obj) (cl--find-class obj)) | 771 | (let* ((cl (cond ((symbolp obj) (cl--find-class obj)) |
| 772 | (t (eieio--object-class obj)))) | 772 | ((eieio-object-p obj) (eieio--object-class obj)) |
| 773 | (t obj))) | ||
| 773 | (c (eieio--slot-name-index cl slot))) | 774 | (c (eieio--slot-name-index cl slot))) |
| 774 | (if (not c) | 775 | (if (not c) |
| 775 | ;; It might be missing because it is a :class allocated slot. | 776 | ;; It might be missing because it is a :class allocated slot. |
| @@ -850,7 +851,7 @@ Fills in the default value in CLASS' in SLOT with VALUE." | |||
| 850 | ;; gnus/registry.el, so it might be used elsewhere as well, so let's | 851 | ;; gnus/registry.el, so it might be used elsewhere as well, so let's |
| 851 | ;; keep it for now. | 852 | ;; keep it for now. |
| 852 | ;; FIXME: Generate a compile-time warning for it! | 853 | ;; FIXME: Generate a compile-time warning for it! |
| 853 | ;; (error "Can't ‘oset-default’ an instance-allocated slot: %S of %S" | 854 | ;; (error "Can't `oset-default' an instance-allocated slot: %S of %S" |
| 854 | ;; slot class) | 855 | ;; slot class) |
| 855 | (eieio--validate-slot-value class c value slot) | 856 | (eieio--validate-slot-value class c value slot) |
| 856 | ;; Set this into the storage for defaults. | 857 | ;; Set this into the storage for defaults. |
diff --git a/lisp/emacs-lisp/ert-x.el b/lisp/emacs-lisp/ert-x.el index cae3fa2d460..f899f40fb80 100644 --- a/lisp/emacs-lisp/ert-x.el +++ b/lisp/emacs-lisp/ert-x.el | |||
| @@ -137,7 +137,7 @@ the name of the test and the result of NAME-FORM." | |||
| 137 | 137 | ||
| 138 | This effectively executes | 138 | This effectively executes |
| 139 | 139 | ||
| 140 | \(apply (car COMMAND) (cdr COMMAND)\) | 140 | (apply (car COMMAND) (cdr COMMAND)) |
| 141 | 141 | ||
| 142 | and returns the same value, but additionally runs hooks like | 142 | and returns the same value, but additionally runs hooks like |
| 143 | `pre-command-hook' and `post-command-hook', and sets variables | 143 | `pre-command-hook' and `post-command-hook', and sets variables |
| @@ -189,7 +189,7 @@ test for `called-interactively' in the command will fail." | |||
| 189 | "Return a copy of S with all matches of REGEXPS removed. | 189 | "Return a copy of S with all matches of REGEXPS removed. |
| 190 | 190 | ||
| 191 | Elements of REGEXPS may also be two-element lists \(REGEXP | 191 | Elements of REGEXPS may also be two-element lists \(REGEXP |
| 192 | SUBEXP\), where SUBEXP is the number of a subexpression in | 192 | SUBEXP), where SUBEXP is the number of a subexpression in |
| 193 | REGEXP. In that case, only that subexpression will be removed | 193 | REGEXP. In that case, only that subexpression will be removed |
| 194 | rather than the entire match." | 194 | rather than the entire match." |
| 195 | ;; Use a temporary buffer since replace-match copies strings, which | 195 | ;; Use a temporary buffer since replace-match copies strings, which |
| @@ -215,7 +215,7 @@ property list, or no properties if there is no plist before it. | |||
| 215 | As a simple example, | 215 | As a simple example, |
| 216 | 216 | ||
| 217 | \(ert-propertized-string \"foo \" \\='(face italic) \"bar\" \" baz\" nil \ | 217 | \(ert-propertized-string \"foo \" \\='(face italic) \"bar\" \" baz\" nil \ |
| 218 | \" quux\"\) | 218 | \" quux\") |
| 219 | 219 | ||
| 220 | would return the string \"foo bar baz quux\" where the substring | 220 | would return the string \"foo bar baz quux\" where the substring |
| 221 | \"bar baz\" has a `face' property with the value `italic'. | 221 | \"bar baz\" has a `face' property with the value `italic'. |
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el index d47e5d94b9d..2eba0216faf 100644 --- a/lisp/emacs-lisp/ert.el +++ b/lisp/emacs-lisp/ert.el | |||
| @@ -187,7 +187,7 @@ using :expected-result. See `ert-test-result-type-p' for a | |||
| 187 | description of valid values for RESULT-TYPE. | 187 | description of valid values for RESULT-TYPE. |
| 188 | 188 | ||
| 189 | \(fn NAME () [DOCSTRING] [:expected-result RESULT-TYPE] \ | 189 | \(fn NAME () [DOCSTRING] [:expected-result RESULT-TYPE] \ |
| 190 | \[:tags '(TAG...)] BODY...)" | 190 | [:tags '(TAG...)] BODY...)" |
| 191 | (declare (debug (&define :name test | 191 | (declare (debug (&define :name test |
| 192 | name sexp [&optional stringp] | 192 | name sexp [&optional stringp] |
| 193 | [&rest keywordp sexp] def-body)) | 193 | [&rest keywordp sexp] def-body)) |
| @@ -887,10 +887,10 @@ Valid result types: | |||
| 887 | nil -- Never matches. | 887 | nil -- Never matches. |
| 888 | t -- Always matches. | 888 | t -- Always matches. |
| 889 | :failed, :passed, :skipped -- Matches corresponding results. | 889 | :failed, :passed, :skipped -- Matches corresponding results. |
| 890 | \(and TYPES...\) -- Matches if all TYPES match. | 890 | \(and TYPES...) -- Matches if all TYPES match. |
| 891 | \(or TYPES...\) -- Matches if some TYPES match. | 891 | \(or TYPES...) -- Matches if some TYPES match. |
| 892 | \(not TYPE\) -- Matches if TYPE does not match. | 892 | \(not TYPE) -- Matches if TYPE does not match. |
| 893 | \(satisfies PREDICATE\) -- Matches if PREDICATE returns true when called with | 893 | \(satisfies PREDICATE) -- Matches if PREDICATE returns true when called with |
| 894 | RESULT." | 894 | RESULT." |
| 895 | ;; It would be easy to add `member' and `eql' types etc., but I | 895 | ;; It would be easy to add `member' and `eql' types etc., but I |
| 896 | ;; haven't bothered yet. | 896 | ;; haven't bothered yet. |
| @@ -946,7 +946,7 @@ a test -- (i.e., an object of the ert-test data-type) Selects that test. | |||
| 946 | a symbol -- Selects the test that the symbol names, errors if none. | 946 | a symbol -- Selects the test that the symbol names, errors if none. |
| 947 | \(member TESTS...) -- Selects the elements of TESTS, a list of tests | 947 | \(member TESTS...) -- Selects the elements of TESTS, a list of tests |
| 948 | or symbols naming tests. | 948 | or symbols naming tests. |
| 949 | \(eql TEST\) -- Selects TEST, a test or a symbol naming a test. | 949 | \(eql TEST) -- Selects TEST, a test or a symbol naming a test. |
| 950 | \(and SELECTORS...) -- Selects the tests that match all SELECTORS. | 950 | \(and SELECTORS...) -- Selects the tests that match all SELECTORS. |
| 951 | \(or SELECTORS...) -- Selects the tests that match any of the SELECTORS. | 951 | \(or SELECTORS...) -- Selects the tests that match any of the SELECTORS. |
| 952 | \(not SELECTOR) -- Selects all tests that do not match SELECTOR. | 952 | \(not SELECTOR) -- Selects all tests that do not match SELECTOR. |
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 026a4a749a9..69d545560d4 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el | |||
| @@ -62,7 +62,7 @@ ine\\(?:-global\\)?-minor-mode\\|ine-compilation-mode\\|un-cvs-mode\\|\ | |||
| 62 | foo\\|\\(?:[^icfgv]\\|g[^r]\\)\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\ | 62 | foo\\|\\(?:[^icfgv]\\|g[^r]\\)\\(\\w\\|\\s_\\)+\\*?\\)\\|easy-mmode-define-[a-z-]+\\|easy-menu-define\\|\ |
| 63 | menu-bar-make-toggle\\)" | 63 | menu-bar-make-toggle\\)" |
| 64 | find-function-space-re | 64 | find-function-space-re |
| 65 | "\\('\\|\(quote \\)?%s\\(\\s-\\|$\\|\(\\|\)\\)") | 65 | "\\('\\|(quote \\)?%s\\(\\s-\\|$\\|[()]\\)") |
| 66 | "The regexp used by `find-function' to search for a function definition. | 66 | "The regexp used by `find-function' to search for a function definition. |
| 67 | Note it must contain a `%s' at the place where `format' | 67 | Note it must contain a `%s' at the place where `format' |
| 68 | should insert the function name. The default value avoids `defconst', | 68 | should insert the function name. The default value avoids `defconst', |
diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index bbe6b36ab9a..94fe6c3d441 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el | |||
| @@ -233,7 +233,7 @@ turned into calls of the form (SETTER ARGS... VAL). | |||
| 233 | 233 | ||
| 234 | If FIX-RETURN is non-nil, then SETTER is not assumed to return VAL and | 234 | If FIX-RETURN is non-nil, then SETTER is not assumed to return VAL and |
| 235 | instead the assignment is turned into something equivalent to | 235 | instead the assignment is turned into something equivalent to |
| 236 | \(let ((temp VAL)) | 236 | (let ((temp VAL)) |
| 237 | (SETTER ARGS... temp) | 237 | (SETTER ARGS... temp) |
| 238 | temp) | 238 | temp) |
| 239 | so as to preserve the semantics of `setf'." | 239 | so as to preserve the semantics of `setf'." |
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el index 8aa34c7bef9..fec9467bbb7 100644 --- a/lisp/emacs-lisp/lisp-mode.el +++ b/lisp/emacs-lisp/lisp-mode.el | |||
| @@ -28,6 +28,8 @@ | |||
| 28 | 28 | ||
| 29 | ;;; Code: | 29 | ;;; Code: |
| 30 | 30 | ||
| 31 | (eval-when-compile (require 'cl-lib)) | ||
| 32 | |||
| 31 | (defvar font-lock-comment-face) | 33 | (defvar font-lock-comment-face) |
| 32 | (defvar font-lock-doc-face) | 34 | (defvar font-lock-doc-face) |
| 33 | (defvar font-lock-keywords-case-fold-search) | 35 | (defvar font-lock-keywords-case-fold-search) |
| @@ -87,6 +89,9 @@ | |||
| 87 | table) | 89 | table) |
| 88 | "Syntax table used in `lisp-mode'.") | 90 | "Syntax table used in `lisp-mode'.") |
| 89 | 91 | ||
| 92 | (eval-and-compile | ||
| 93 | (defconst lisp-mode-symbol-regexp "\\(?:\\sw\\|\\s_\\|\\\\.\\)+")) | ||
| 94 | |||
| 90 | (defvar lisp-imenu-generic-expression | 95 | (defvar lisp-imenu-generic-expression |
| 91 | (list | 96 | (list |
| 92 | (list nil | 97 | (list nil |
| @@ -110,7 +115,7 @@ | |||
| 110 | ;; CLOS and EIEIO | 115 | ;; CLOS and EIEIO |
| 111 | "defgeneric" "defmethod") | 116 | "defgeneric" "defmethod") |
| 112 | t)) | 117 | t)) |
| 113 | "\\s-+\\(\\(\\sw\\|\\s_\\)+\\)")) | 118 | "\\s-+\\(" lisp-mode-symbol-regexp "\\)")) |
| 114 | 2) | 119 | 2) |
| 115 | (list (purecopy "Variables") | 120 | (list (purecopy "Variables") |
| 116 | (purecopy (concat "^\\s-*(" | 121 | (purecopy (concat "^\\s-*(" |
| @@ -122,11 +127,11 @@ | |||
| 122 | "defconstant" | 127 | "defconstant" |
| 123 | "defparameter" "define-symbol-macro") | 128 | "defparameter" "define-symbol-macro") |
| 124 | t)) | 129 | t)) |
| 125 | "\\s-+\\(\\(\\sw\\|\\s_\\)+\\)")) | 130 | "\\s-+\\(" lisp-mode-symbol-regexp "\\)")) |
| 126 | 2) | 131 | 2) |
| 127 | ;; For `defvar', we ignore (defvar FOO) constructs. | 132 | ;; For `defvar', we ignore (defvar FOO) constructs. |
| 128 | (list (purecopy "Variables") | 133 | (list (purecopy "Variables") |
| 129 | (purecopy (concat "^\\s-*(defvar\\s-+\\(\\(\\sw\\|\\s_\\)+\\)" | 134 | (purecopy (concat "^\\s-*(defvar\\s-+\\(" lisp-mode-symbol-regexp "\\)" |
| 130 | "[[:space:]\n]+[^)]")) | 135 | "[[:space:]\n]+[^)]")) |
| 131 | 1) | 136 | 1) |
| 132 | (list (purecopy "Types") | 137 | (list (purecopy "Types") |
| @@ -143,7 +148,7 @@ | |||
| 143 | ;; CLOS and EIEIO | 148 | ;; CLOS and EIEIO |
| 144 | "defclass") | 149 | "defclass") |
| 145 | t)) | 150 | t)) |
| 146 | "\\s-+'?\\(\\(\\sw\\|\\s_\\)+\\)")) | 151 | "\\s-+'?\\(" lisp-mode-symbol-regexp "\\)")) |
| 147 | 2)) | 152 | 2)) |
| 148 | 153 | ||
| 149 | "Imenu generic expression for Lisp mode. See `imenu-generic-expression'.") | 154 | "Imenu generic expression for Lisp mode. See `imenu-generic-expression'.") |
| @@ -220,7 +225,10 @@ | |||
| 220 | (defun lisp--el-match-keyword (limit) | 225 | (defun lisp--el-match-keyword (limit) |
| 221 | ;; FIXME: Move to elisp-mode.el. | 226 | ;; FIXME: Move to elisp-mode.el. |
| 222 | (catch 'found | 227 | (catch 'found |
| 223 | (while (re-search-forward "(\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>" limit t) | 228 | (while (re-search-forward |
| 229 | (eval-when-compile | ||
| 230 | (concat "(\\(" lisp-mode-symbol-regexp "\\)\\_>")) | ||
| 231 | limit t) | ||
| 224 | (let ((sym (intern-soft (match-string 1)))) | 232 | (let ((sym (intern-soft (match-string 1)))) |
| 225 | (when (or (special-form-p sym) | 233 | (when (or (special-form-p sym) |
| 226 | (and (macrop sym) | 234 | (and (macrop sym) |
| @@ -229,6 +237,19 @@ | |||
| 229 | (match-beginning 0))))) | 237 | (match-beginning 0))))) |
| 230 | (throw 'found t)))))) | 238 | (throw 'found t)))))) |
| 231 | 239 | ||
| 240 | (defmacro let-when-compile (bindings &rest body) | ||
| 241 | "Like `let', but allow for compile time optimization. | ||
| 242 | Use BINDINGS as in regular `let', but in BODY each usage should | ||
| 243 | be wrapped in `eval-when-compile'. | ||
| 244 | This will generate compile-time constants from BINDINGS." | ||
| 245 | (declare (indent 1) (debug let)) | ||
| 246 | (cl-progv (mapcar #'car bindings) | ||
| 247 | (mapcar (lambda (x) (eval (cadr x))) bindings) | ||
| 248 | (macroexpand-all | ||
| 249 | (macroexp-progn | ||
| 250 | body) | ||
| 251 | macroexpand-all-environment))) | ||
| 252 | |||
| 232 | (let-when-compile | 253 | (let-when-compile |
| 233 | ((lisp-fdefs '("defmacro" "defun")) | 254 | ((lisp-fdefs '("defmacro" "defun")) |
| 234 | (lisp-vdefs '("defvar")) | 255 | (lisp-vdefs '("defvar")) |
| @@ -249,39 +270,13 @@ | |||
| 249 | (el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local" | 270 | (el-vdefs '("defconst" "defcustom" "defvaralias" "defvar-local" |
| 250 | "defface")) | 271 | "defface")) |
| 251 | (el-tdefs '("defgroup" "deftheme")) | 272 | (el-tdefs '("defgroup" "deftheme")) |
| 252 | (el-kw '("while-no-input" "letrec" "pcase" "pcase-exhaustive" | ||
| 253 | "pcase-lambda" "pcase-let" "pcase-let*" "save-restriction" | ||
| 254 | "save-excursion" "save-selected-window" | ||
| 255 | ;; "eval-after-load" "eval-next-after-load" | ||
| 256 | "save-window-excursion" "save-current-buffer" | ||
| 257 | "save-match-data" "combine-after-change-calls" | ||
| 258 | "condition-case-unless-debug" "track-mouse" | ||
| 259 | "eval-and-compile" "eval-when-compile" "with-case-table" | ||
| 260 | "with-category-table" "with-coding-priority" | ||
| 261 | "with-current-buffer" "with-demoted-errors" | ||
| 262 | "with-electric-help" "with-eval-after-load" | ||
| 263 | "with-file-modes" | ||
| 264 | "with-local-quit" "with-no-warnings" | ||
| 265 | "with-output-to-temp-buffer" "with-selected-window" | ||
| 266 | "with-selected-frame" "with-silent-modifications" | ||
| 267 | "with-syntax-table" "with-temp-buffer" "with-temp-file" | ||
| 268 | "with-temp-message" "with-timeout" | ||
| 269 | "with-timeout-handler")) | ||
| 270 | (el-errs '("user-error")) | 273 | (el-errs '("user-error")) |
| 271 | ;; Common-Lisp constructs supported by EIEIO. FIXME: namespace. | 274 | ;; Common-Lisp constructs supported by EIEIO. FIXME: namespace. |
| 272 | (eieio-fdefs '("defgeneric" "defmethod")) | 275 | (eieio-fdefs '("defgeneric" "defmethod")) |
| 273 | (eieio-tdefs '("defclass")) | 276 | (eieio-tdefs '("defclass")) |
| 274 | (eieio-kw '("with-slots")) | ||
| 275 | ;; Common-Lisp constructs supported by cl-lib. | 277 | ;; Common-Lisp constructs supported by cl-lib. |
| 276 | (cl-lib-fdefs '("defmacro" "defsubst" "defun" "defmethod")) | 278 | (cl-lib-fdefs '("defmacro" "defsubst" "defun" "defmethod" "defgeneric")) |
| 277 | (cl-lib-tdefs '("defstruct" "deftype")) | 279 | (cl-lib-tdefs '("defstruct" "deftype")) |
| 278 | (cl-lib-kw '("progv" "eval-when" "case" "ecase" "typecase" | ||
| 279 | "etypecase" "ccase" "ctypecase" "loop" "do" "do*" | ||
| 280 | "the" "locally" "proclaim" "declaim" "letf" "go" | ||
| 281 | ;; "lexical-let" "lexical-let*" | ||
| 282 | "symbol-macrolet" "flet" "flet*" "destructuring-bind" | ||
| 283 | "labels" "macrolet" "tagbody" "multiple-value-bind" | ||
| 284 | "block" "return" "return-from")) | ||
| 285 | (cl-lib-errs '("assert" "check-type")) | 280 | (cl-lib-errs '("assert" "check-type")) |
| 286 | ;; Common-Lisp constructs not supported by cl-lib. | 281 | ;; Common-Lisp constructs not supported by cl-lib. |
| 287 | (cl-fdefs '("defsetf" "define-method-combination" | 282 | (cl-fdefs '("defsetf" "define-method-combination" |
| @@ -290,14 +285,20 @@ | |||
| 290 | "define-compiler-macro" "define-modify-macro")) | 285 | "define-compiler-macro" "define-modify-macro")) |
| 291 | (cl-vdefs '("define-symbol-macro" "defconstant" "defparameter")) | 286 | (cl-vdefs '("define-symbol-macro" "defconstant" "defparameter")) |
| 292 | (cl-tdefs '("defpackage" "defstruct" "deftype")) | 287 | (cl-tdefs '("defpackage" "defstruct" "deftype")) |
| 293 | (cl-kw '("prog" "prog*" "handler-case" "handler-bind" | 288 | (cl-kw '("block" "break" "case" "ccase" "compiler-let" "ctypecase" |
| 294 | "in-package" "restart-case" ;; "inline" | 289 | "declaim" "destructuring-bind" "do" "do*" |
| 295 | "restart-bind" "break" "multiple-value-prog1" | 290 | "ecase" "etypecase" "eval-when" "flet" "flet*" |
| 296 | "compiler-let" "with-accessors" "with-compilation-unit" | 291 | "go" "handler-case" "handler-bind" "in-package" ;; "inline" |
| 292 | "labels" "letf" "locally" "loop" | ||
| 293 | "macrolet" "multiple-value-bind" "multiple-value-prog1" | ||
| 294 | "proclaim" "prog" "prog*" "progv" | ||
| 295 | "restart-case" "restart-bind" "return" "return-from" | ||
| 296 | "symbol-macrolet" "tagbody" "the" "typecase" | ||
| 297 | "with-accessors" "with-compilation-unit" | ||
| 297 | "with-condition-restarts" "with-hash-table-iterator" | 298 | "with-condition-restarts" "with-hash-table-iterator" |
| 298 | "with-input-from-string" "with-open-file" | 299 | "with-input-from-string" "with-open-file" |
| 299 | "with-open-stream" "with-package-iterator" | 300 | "with-open-stream" "with-package-iterator" |
| 300 | "with-simple-restart" "with-standard-io-syntax")) | 301 | "with-simple-restart" "with-slots" "with-standard-io-syntax")) |
| 301 | (cl-errs '("abort" "cerror"))) | 302 | (cl-errs '("abort" "cerror"))) |
| 302 | (let ((vdefs (eval-when-compile | 303 | (let ((vdefs (eval-when-compile |
| 303 | (append lisp-vdefs el-vdefs cl-vdefs))) | 304 | (append lisp-vdefs el-vdefs cl-vdefs))) |
| @@ -318,16 +319,9 @@ | |||
| 318 | eieio-fdefs eieio-tdefs | 319 | eieio-fdefs eieio-tdefs |
| 319 | cl-fdefs cl-vdefs cl-tdefs) | 320 | cl-fdefs cl-vdefs cl-tdefs) |
| 320 | t))) | 321 | t))) |
| 321 | ;; Elisp and Common Lisp keywords. | 322 | ;; Common Lisp keywords (Elisp keywords are handled dynamically). |
| 322 | ;; (el-kws-re (eval-when-compile | ||
| 323 | ;; (regexp-opt (append | ||
| 324 | ;; lisp-kw el-kw eieio-kw | ||
| 325 | ;; (cons "go" (mapcar (lambda (s) (concat "cl-" s)) | ||
| 326 | ;; (remove "go" cl-lib-kw)))) | ||
| 327 | ;; t))) | ||
| 328 | (cl-kws-re (eval-when-compile | 323 | (cl-kws-re (eval-when-compile |
| 329 | (regexp-opt (append lisp-kw cl-kw eieio-kw cl-lib-kw) | 324 | (regexp-opt (append lisp-kw cl-kw) t))) |
| 330 | t))) | ||
| 331 | ;; Elisp and Common Lisp "errors". | 325 | ;; Elisp and Common Lisp "errors". |
| 332 | (el-errs-re (eval-when-compile | 326 | (el-errs-re (eval-when-compile |
| 333 | (regexp-opt (append (mapcar (lambda (s) (concat "cl-" s)) | 327 | (regexp-opt (append (mapcar (lambda (s) (concat "cl-" s)) |
| @@ -349,7 +343,8 @@ | |||
| 349 | ;; Any whitespace and defined object. | 343 | ;; Any whitespace and defined object. |
| 350 | "[ \t']*" | 344 | "[ \t']*" |
| 351 | "\\(([ \t']*\\)?" ;; An opening paren. | 345 | "\\(([ \t']*\\)?" ;; An opening paren. |
| 352 | "\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?") | 346 | "\\(\\(setf\\)[ \t]+" lisp-mode-symbol-regexp |
| 347 | "\\|" lisp-mode-symbol-regexp "\\)?") | ||
| 353 | (1 font-lock-keyword-face) | 348 | (1 font-lock-keyword-face) |
| 354 | (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type))) | 349 | (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type))) |
| 355 | (cond ((eq type 'var) font-lock-variable-name-face) | 350 | (cond ((eq type 'var) font-lock-variable-name-face) |
| @@ -360,7 +355,8 @@ | |||
| 360 | ;; defmethod with (setf foo) as name. | 355 | ;; defmethod with (setf foo) as name. |
| 361 | ((or (not (match-string 2)) ;; Normal defun. | 356 | ((or (not (match-string 2)) ;; Normal defun. |
| 362 | (and (match-string 2) ;; Setf method. | 357 | (and (match-string 2) ;; Setf method. |
| 363 | (match-string 4))) font-lock-function-name-face))) | 358 | (match-string 4))) |
| 359 | font-lock-function-name-face))) | ||
| 364 | nil t)) | 360 | nil t)) |
| 365 | ;; Emacs Lisp autoload cookies. Supports the slightly different | 361 | ;; Emacs Lisp autoload cookies. Supports the slightly different |
| 366 | ;; forms used by mh-e, calendar, etc. | 362 | ;; forms used by mh-e, calendar, etc. |
| @@ -373,7 +369,8 @@ | |||
| 373 | ;; Any whitespace and defined object. | 369 | ;; Any whitespace and defined object. |
| 374 | "[ \t']*" | 370 | "[ \t']*" |
| 375 | "\\(([ \t']*\\)?" ;; An opening paren. | 371 | "\\(([ \t']*\\)?" ;; An opening paren. |
| 376 | "\\(\\(setf\\)[ \t]+\\(?:\\sw\\|\\s_\\)+\\|\\(?:\\sw\\|\\s_\\)+\\)?") | 372 | "\\(\\(setf\\)[ \t]+" lisp-mode-symbol-regexp |
| 373 | "\\|" lisp-mode-symbol-regexp "\\)?") | ||
| 377 | (1 font-lock-keyword-face) | 374 | (1 font-lock-keyword-face) |
| 378 | (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type))) | 375 | (3 (let ((type (get (intern-soft (match-string 1)) 'lisp-define-type))) |
| 379 | (cond ((eq type 'var) font-lock-variable-name-face) | 376 | (cond ((eq type 'var) font-lock-variable-name-face) |
| @@ -395,22 +392,25 @@ | |||
| 395 | (lisp--el-match-keyword . 1) | 392 | (lisp--el-match-keyword . 1) |
| 396 | ;; Exit/Feature symbols as constants. | 393 | ;; Exit/Feature symbols as constants. |
| 397 | (,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\_>" | 394 | (,(concat "(\\(catch\\|throw\\|featurep\\|provide\\|require\\)\\_>" |
| 398 | "[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?") | 395 | "[ \t']*\\(" lisp-mode-symbol-regexp "\\)?") |
| 399 | (1 font-lock-keyword-face) | 396 | (1 font-lock-keyword-face) |
| 400 | (2 font-lock-constant-face nil t)) | 397 | (2 font-lock-constant-face nil t)) |
| 401 | ;; Erroneous structures. | 398 | ;; Erroneous structures. |
| 402 | (,(concat "(" el-errs-re "\\_>") | 399 | (,(concat "(" el-errs-re "\\_>") |
| 403 | (1 font-lock-warning-face)) | 400 | (1 font-lock-warning-face)) |
| 404 | ;; Words inside \\[] tend to be for `substitute-command-keys'. | 401 | ;; Words inside \\[] tend to be for `substitute-command-keys'. |
| 405 | ("\\\\\\\\\\[\\(\\(?:\\sw\\|\\s_\\)+\\)\\]" | 402 | (,(concat "\\\\\\\\\\[\\(" lisp-mode-symbol-regexp "\\)\\]") |
| 406 | (1 font-lock-constant-face prepend)) | 403 | (1 font-lock-constant-face prepend)) |
| 407 | ;; Words inside ‘’ and '' and `' tend to be symbol names. | 404 | ;; Words inside ‘’ and '' and `' tend to be symbol names. |
| 408 | ("['`‘]\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)['’]" | 405 | (,(concat "['`‘]\\(\\(?:\\sw\\|\\s_\\|\\\\.\\)" |
| 406 | lisp-mode-symbol-regexp "\\)['’]") | ||
| 409 | (1 font-lock-constant-face prepend)) | 407 | (1 font-lock-constant-face prepend)) |
| 410 | ;; Constant values. | 408 | ;; Constant values. |
| 411 | ("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face) | 409 | (,(concat "\\_<:" lisp-mode-symbol-regexp "\\_>") |
| 410 | (0 font-lock-builtin-face)) | ||
| 412 | ;; ELisp and CLisp `&' keywords as types. | 411 | ;; ELisp and CLisp `&' keywords as types. |
| 413 | ("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face) | 412 | (,(concat "\\_<\\&" lisp-mode-symbol-regexp "\\_>") |
| 413 | . font-lock-type-face) | ||
| 414 | ;; ELisp regexp grouping constructs | 414 | ;; ELisp regexp grouping constructs |
| 415 | (,(lambda (bound) | 415 | (,(lambda (bound) |
| 416 | (catch 'found | 416 | (catch 'found |
| @@ -447,19 +447,22 @@ | |||
| 447 | (,(concat "(" cl-kws-re "\\_>") . 1) | 447 | (,(concat "(" cl-kws-re "\\_>") . 1) |
| 448 | ;; Exit/Feature symbols as constants. | 448 | ;; Exit/Feature symbols as constants. |
| 449 | (,(concat "(\\(catch\\|throw\\|provide\\|require\\)\\_>" | 449 | (,(concat "(\\(catch\\|throw\\|provide\\|require\\)\\_>" |
| 450 | "[ \t']*\\(\\(?:\\sw\\|\\s_\\)+\\)?") | 450 | "[ \t']*\\(" lisp-mode-symbol-regexp "\\)?") |
| 451 | (1 font-lock-keyword-face) | 451 | (1 font-lock-keyword-face) |
| 452 | (2 font-lock-constant-face nil t)) | 452 | (2 font-lock-constant-face nil t)) |
| 453 | ;; Erroneous structures. | 453 | ;; Erroneous structures. |
| 454 | (,(concat "(" cl-errs-re "\\_>") | 454 | (,(concat "(" cl-errs-re "\\_>") |
| 455 | (1 font-lock-warning-face)) | 455 | (1 font-lock-warning-face)) |
| 456 | ;; Words inside ‘’ and '' and `' tend to be symbol names. | 456 | ;; Words inside ‘’ and '' and `' tend to be symbol names. |
| 457 | ("['`‘]\\(\\(?:\\sw\\|\\s_\\)\\(?:\\sw\\|\\s_\\)+\\)['’]" | 457 | (,(concat "['`‘]\\(\\(?:\\sw\\|\\s_\\|\\\\.\\)" |
| 458 | lisp-mode-symbol-regexp "\\)['’]") | ||
| 458 | (1 font-lock-constant-face prepend)) | 459 | (1 font-lock-constant-face prepend)) |
| 459 | ;; Constant values. | 460 | ;; Constant values. |
| 460 | ("\\_<:\\(?:\\sw\\|\\s_\\)+\\_>" 0 font-lock-builtin-face) | 461 | (,(concat "\\_<:" lisp-mode-symbol-regexp "\\_>") |
| 462 | (0 font-lock-builtin-face)) | ||
| 461 | ;; ELisp and CLisp `&' keywords as types. | 463 | ;; ELisp and CLisp `&' keywords as types. |
| 462 | ("\\_<\\&\\(?:\\sw\\|\\s_\\)+\\_>" . font-lock-type-face) | 464 | (,(concat "\\_<\\&" lisp-mode-symbol-regexp "\\_>") |
| 465 | . font-lock-type-face) | ||
| 463 | ;; This is too general -- rms. | 466 | ;; This is too general -- rms. |
| 464 | ;; A user complained that he has functions whose names start with `do' | 467 | ;; A user complained that he has functions whose names start with `do' |
| 465 | ;; and that they get the wrong color. | 468 | ;; and that they get the wrong color. |
| @@ -482,7 +485,10 @@ | |||
| 482 | (let* ((firstsym (and listbeg | 485 | (let* ((firstsym (and listbeg |
| 483 | (save-excursion | 486 | (save-excursion |
| 484 | (goto-char listbeg) | 487 | (goto-char listbeg) |
| 485 | (and (looking-at "([ \t\n]*\\(\\(\\sw\\|\\s_\\)+\\)") | 488 | (and (looking-at |
| 489 | (eval-when-compile | ||
| 490 | (concat "([ \t\n]*\\(" | ||
| 491 | lisp-mode-symbol-regexp "\\)"))) | ||
| 486 | (match-string 1))))) | 492 | (match-string 1))))) |
| 487 | (docelt (and firstsym | 493 | (docelt (and firstsym |
| 488 | (function-get (intern-soft firstsym) | 494 | (function-get (intern-soft firstsym) |
| @@ -898,7 +904,7 @@ property `lisp-indent-function' (or the deprecated `lisp-indent-hook'), | |||
| 898 | it specifies how to indent. The property value can be: | 904 | it specifies how to indent. The property value can be: |
| 899 | 905 | ||
| 900 | * `defun', meaning indent `defun'-style | 906 | * `defun', meaning indent `defun'-style |
| 901 | \(this is also the case if there is no property and the function | 907 | (this is also the case if there is no property and the function |
| 902 | has a name that begins with \"def\", and three or more arguments); | 908 | has a name that begins with \"def\", and three or more arguments); |
| 903 | 909 | ||
| 904 | * an integer N, meaning indent the first N arguments specially | 910 | * an integer N, meaning indent the first N arguments specially |
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 7b7b48c66de..ca977db4b1d 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el | |||
| @@ -364,8 +364,7 @@ is called as a function to find the defun's beginning." | |||
| 364 | (arg-+ve (> arg 0))) | 364 | (arg-+ve (> arg 0))) |
| 365 | (save-restriction | 365 | (save-restriction |
| 366 | (widen) | 366 | (widen) |
| 367 | (let ((ppss (let (syntax-begin-function | 367 | (let ((ppss (let (syntax-begin-function) |
| 368 | font-lock-beginning-of-syntax-function) | ||
| 369 | (syntax-ppss))) | 368 | (syntax-ppss))) |
| 370 | ;; position of least enclosing paren, or nil. | 369 | ;; position of least enclosing paren, or nil. |
| 371 | encl-pos) | 370 | encl-pos) |
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el index 43fd4ef57a6..b8fb540d6cb 100644 --- a/lisp/emacs-lisp/map-ynp.el +++ b/lisp/emacs-lisp/map-ynp.el | |||
| @@ -44,7 +44,7 @@ Takes args PROMPTER ACTOR LIST, and optional args HELP and ACTION-ALIST. | |||
| 44 | LIST is a list of objects, or a function of no arguments to return the next | 44 | LIST is a list of objects, or a function of no arguments to return the next |
| 45 | object or nil. | 45 | object or nil. |
| 46 | 46 | ||
| 47 | If PROMPTER is a string, the prompt is \(format PROMPTER OBJECT\). If not | 47 | If PROMPTER is a string, the prompt is \(format PROMPTER OBJECT). If not |
| 48 | a string, PROMPTER is a function of one arg (an object from LIST), which | 48 | a string, PROMPTER is a function of one arg (an object from LIST), which |
| 49 | returns a string to be used as the prompt for that object. If the return | 49 | returns a string to be used as the prompt for that object. If the return |
| 50 | value is not a string, it may be nil to ignore the object or non-nil to act | 50 | value is not a string, it may be nil to ignore the object or non-nil to act |
| @@ -56,7 +56,7 @@ which gets called with each object that the user answers `yes' for. | |||
| 56 | If HELP is given, it is a list (OBJECT OBJECTS ACTION), | 56 | If HELP is given, it is a list (OBJECT OBJECTS ACTION), |
| 57 | where OBJECT is a string giving the singular noun for an elt of LIST; | 57 | where OBJECT is a string giving the singular noun for an elt of LIST; |
| 58 | OBJECTS is the plural noun for elts of LIST, and ACTION is a transitive | 58 | OBJECTS is the plural noun for elts of LIST, and ACTION is a transitive |
| 59 | verb describing ACTOR. The default is \(\"object\" \"objects\" \"act on\"\). | 59 | verb describing ACTOR. The default is \(\"object\" \"objects\" \"act on\"). |
| 60 | 60 | ||
| 61 | At the prompts, the user may enter y, Y, or SPC to act on that object; | 61 | At the prompts, the user may enter y, Y, or SPC to act on that object; |
| 62 | n, N, or DEL to skip that object; ! to act on all following objects; | 62 | n, N, or DEL to skip that object; ! to act on all following objects; |
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index b0d2ff96629..eb66e8f25a3 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el | |||
| @@ -1852,12 +1852,12 @@ add a call to it along with some explanatory comments." | |||
| 1852 | (save-restriction | 1852 | (save-restriction |
| 1853 | (widen) | 1853 | (widen) |
| 1854 | (goto-char (point-min)) | 1854 | (goto-char (point-min)) |
| 1855 | (search-forward "(package-initialize)" nil 'noerror)))) | 1855 | (re-search-forward "(package-initialize\\_>" nil 'noerror)))) |
| 1856 | ;; Don't visit the file if we don't have to. | 1856 | ;; Don't visit the file if we don't have to. |
| 1857 | (with-temp-buffer | 1857 | (with-temp-buffer |
| 1858 | (insert-file-contents user-init-file) | 1858 | (insert-file-contents user-init-file) |
| 1859 | (goto-char (point-min)) | 1859 | (goto-char (point-min)) |
| 1860 | (search-forward "(package-initialize)" nil 'noerror))))) | 1860 | (re-search-forward "(package-initialize\\_>" nil 'noerror))))) |
| 1861 | (unless contains-init | 1861 | (unless contains-init |
| 1862 | (with-current-buffer (or buffer | 1862 | (with-current-buffer (or buffer |
| 1863 | (let ((delay-mode-hooks t)) | 1863 | (let ((delay-mode-hooks t)) |
diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index 9888e920219..e315733e222 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el | |||
| @@ -143,7 +143,7 @@ If LAX non-nil, don't output parentheses if it doesn't require them. | |||
| 143 | Merges keywords to avoid backtracking in Emacs's regexp matcher." | 143 | Merges keywords to avoid backtracking in Emacs's regexp matcher." |
| 144 | ;; The basic idea is to find the shortest common prefix or suffix, remove it | 144 | ;; The basic idea is to find the shortest common prefix or suffix, remove it |
| 145 | ;; and recurse. If there is no prefix, we divide the list into two so that | 145 | ;; and recurse. If there is no prefix, we divide the list into two so that |
| 146 | ;; \(at least) one half will have at least a one-character common prefix. | 146 | ;; (at least) one half will have at least a one-character common prefix. |
| 147 | 147 | ||
| 148 | ;; Also we delay the addition of grouping parenthesis as long as possible | 148 | ;; Also we delay the addition of grouping parenthesis as long as possible |
| 149 | ;; until we're sure we need them, and try to remove one-character sequences | 149 | ;; until we're sure we need them, and try to remove one-character sequences |
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el index a21ac7a2835..a5ff9722698 100644 --- a/lisp/emacs-lisp/rx.el +++ b/lisp/emacs-lisp/rx.el | |||
| @@ -768,8 +768,8 @@ of all atomic regexps." | |||
| 768 | ((= l 3) (string-match "\\`\\(?:\\\\[cCsS_]\\|\\[[^^]\\]\\)" r)) | 768 | ((= l 3) (string-match "\\`\\(?:\\\\[cCsS_]\\|\\[[^^]\\]\\)" r)) |
| 769 | ((null lax) | 769 | ((null lax) |
| 770 | (cond | 770 | (cond |
| 771 | ((string-match "\\`\\[^?\]?\\(?:\\[:[a-z]+:]\\|[^\]]\\)*\\]\\'" r)) | 771 | ((string-match "\\`\\[^?\]?\\(?:\\[:[a-z]+:]\\|[^]]\\)*\\]\\'" r)) |
| 772 | ((string-match "\\`\\\\(\\(?:[^\\]\\|\\\\[^\)]\\)*\\\\)\\'" r))))))) | 772 | ((string-match "\\`\\\\(\\(?:[^\\]\\|\\\\[^)]\\)*\\\\)\\'" r))))))) |
| 773 | 773 | ||
| 774 | 774 | ||
| 775 | (defun rx-syntax (form) | 775 | (defun rx-syntax (form) |
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el index 8dc91471312..e0f17c0335d 100644 --- a/lisp/emacs-lisp/seq.el +++ b/lisp/emacs-lisp/seq.el | |||
| @@ -270,6 +270,19 @@ If so, return the non-nil value returned by PRED." | |||
| 270 | (throw 'seq--break result)))) | 270 | (throw 'seq--break result)))) |
| 271 | nil)) | 271 | nil)) |
| 272 | 272 | ||
| 273 | (cl-defgeneric seq-find (pred seq &optional default) | ||
| 274 | "Return the first element for which (PRED element) is non-nil in SEQ. | ||
| 275 | If no element is found, return DEFAULT. | ||
| 276 | |||
| 277 | Note that `seq-find' has an ambiguity if the found element is | ||
| 278 | identical to DEFAULT, as it cannot be known if an element was | ||
| 279 | found or not." | ||
| 280 | (catch 'seq--break | ||
| 281 | (seq-doseq (elt seq) | ||
| 282 | (when (funcall pred elt) | ||
| 283 | (throw 'seq--break elt))) | ||
| 284 | default)) | ||
| 285 | |||
| 273 | (cl-defgeneric seq-count (pred seq) | 286 | (cl-defgeneric seq-count (pred seq) |
| 274 | "Return the number of elements for which (PRED element) is non-nil in SEQ." | 287 | "Return the number of elements for which (PRED element) is non-nil in SEQ." |
| 275 | (let ((count 0)) | 288 | (let ((count 0)) |
| @@ -417,13 +430,7 @@ If no element is found, return nil." | |||
| 417 | (nreverse result))) | 430 | (nreverse result))) |
| 418 | 431 | ||
| 419 | (cl-defmethod seq-drop-while (pred (list list)) | 432 | (cl-defmethod seq-drop-while (pred (list list)) |
| 420 | "Optimized implementation of `seq-drop-while' for lists" | 433 | "Optimized implementation of `seq-drop-while' for lists." |
| 421 | (while (and list (funcall pred (car list))) | ||
| 422 | (setq list (cdr list))) | ||
| 423 | list) | ||
| 424 | |||
| 425 | (cl-defmethod seq-drop-while (pred (list list)) | ||
| 426 | "Optimized implementation of `seq-drop-while' for lists" | ||
| 427 | (while (and list (funcall pred (car list))) | 434 | (while (and list (funcall pred (car list))) |
| 428 | (setq list (cdr list))) | 435 | (setq list (cdr list))) |
| 429 | list) | 436 | list) |
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el index c7a95e4e5f3..17e3be7d3ff 100644 --- a/lisp/emacs-lisp/shadow.el +++ b/lisp/emacs-lisp/shadow.el | |||
| @@ -68,9 +68,9 @@ This is slower, but filters out some innocuous shadowing." | |||
| 68 | "Return a list of Emacs Lisp files that create shadows. | 68 | "Return a list of Emacs Lisp files that create shadows. |
| 69 | This function does the work for `list-load-path-shadows'. | 69 | This function does the work for `list-load-path-shadows'. |
| 70 | 70 | ||
| 71 | We traverse PATH looking for shadows, and return a \(possibly empty\) | 71 | We traverse PATH looking for shadows, and return a \(possibly empty) |
| 72 | even-length list of files. A file in this list at position 2i shadows | 72 | even-length list of files. A file in this list at position 2i shadows |
| 73 | the file in position 2i+1. Emacs Lisp file suffixes \(.el and .elc\) | 73 | the file in position 2i+1. Emacs Lisp file suffixes \(.el and .elc) |
| 74 | are stripped from the file names in the list. | 74 | are stripped from the file names in the list. |
| 75 | 75 | ||
| 76 | See the documentation for `list-load-path-shadows' for further information." | 76 | See the documentation for `list-load-path-shadows' for further information." |
diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el index 0c24f796d19..f305025f215 100644 --- a/lisp/emacs-lisp/smie.el +++ b/lisp/emacs-lisp/smie.el | |||
| @@ -213,7 +213,7 @@ one of those elements share the same precedence level and associativity." | |||
| 213 | (defun smie-bnf->prec2 (bnf &rest resolvers) | 213 | (defun smie-bnf->prec2 (bnf &rest resolvers) |
| 214 | "Convert the BNF grammar into a prec2 table. | 214 | "Convert the BNF grammar into a prec2 table. |
| 215 | BNF is a list of nonterminal definitions of the form: | 215 | BNF is a list of nonterminal definitions of the form: |
| 216 | \(NONTERM RHS1 RHS2 ...) | 216 | (NONTERM RHS1 RHS2 ...) |
| 217 | where each RHS is a (non-empty) list of terminals (aka tokens) or non-terminals. | 217 | where each RHS is a (non-empty) list of terminals (aka tokens) or non-terminals. |
| 218 | Not all grammars are accepted: | 218 | Not all grammars are accepted: |
| 219 | - an RHS cannot be an empty list (this is not needed, since SMIE allows all | 219 | - an RHS cannot be an empty list (this is not needed, since SMIE allows all |
| @@ -1136,6 +1136,8 @@ METHOD can be: | |||
| 1136 | - :elem, in which case the function should return either: | 1136 | - :elem, in which case the function should return either: |
| 1137 | - the offset to use to indent function arguments (ARG = `arg') | 1137 | - the offset to use to indent function arguments (ARG = `arg') |
| 1138 | - the basic indentation step (ARG = `basic'). | 1138 | - the basic indentation step (ARG = `basic'). |
| 1139 | - the token to use (when ARG = `empty-line-token') when we don't know how | ||
| 1140 | to indent an empty line. | ||
| 1139 | - :list-intro, in which case ARG is a token and the function should return | 1141 | - :list-intro, in which case ARG is a token and the function should return |
| 1140 | non-nil if TOKEN is followed by a list of expressions (not separated by any | 1142 | non-nil if TOKEN is followed by a list of expressions (not separated by any |
| 1141 | token) rather than an expression. | 1143 | token) rather than an expression. |
| @@ -1686,6 +1688,19 @@ should not be computed on the basis of the following token." | |||
| 1686 | (+ (smie-indent-virtual) (smie-indent--offset 'basic))) ; | 1688 | (+ (smie-indent-virtual) (smie-indent--offset 'basic))) ; |
| 1687 | (t (smie-indent-virtual)))))) ;An infix. | 1689 | (t (smie-indent-virtual)))))) ;An infix. |
| 1688 | 1690 | ||
| 1691 | (defun smie-indent-empty-line () | ||
| 1692 | "Indentation rule when there's nothing yet on the line." | ||
| 1693 | ;; Without this rule, SMIE assumes that an empty line will be filled with an | ||
| 1694 | ;; argument (since it falls back to smie-indent-sexps), which tends | ||
| 1695 | ;; to indent far too deeply. | ||
| 1696 | (when (eolp) | ||
| 1697 | (let ((token (or (funcall smie-rules-function :elem 'empty-line-token) | ||
| 1698 | ;; FIXME: Should we default to ";"? | ||
| 1699 | ;; ";" | ||
| 1700 | ))) | ||
| 1701 | (when (assoc token smie-grammar) | ||
| 1702 | (smie-indent-keyword token))))) | ||
| 1703 | |||
| 1689 | (defun smie-indent-exps () | 1704 | (defun smie-indent-exps () |
| 1690 | ;; Indentation of sequences of simple expressions without | 1705 | ;; Indentation of sequences of simple expressions without |
| 1691 | ;; intervening keywords or operators. E.g. "a b c" or "g (balbla) f". | 1706 | ;; intervening keywords or operators. E.g. "a b c" or "g (balbla) f". |
| @@ -1744,7 +1759,7 @@ should not be computed on the basis of the following token." | |||
| 1744 | smie-indent-comment smie-indent-comment-continue smie-indent-comment-close | 1759 | smie-indent-comment smie-indent-comment-continue smie-indent-comment-close |
| 1745 | smie-indent-comment-inside smie-indent-inside-string | 1760 | smie-indent-comment-inside smie-indent-inside-string |
| 1746 | smie-indent-keyword smie-indent-after-keyword | 1761 | smie-indent-keyword smie-indent-after-keyword |
| 1747 | smie-indent-exps) | 1762 | smie-indent-empty-line smie-indent-exps) |
| 1748 | "Functions to compute the indentation. | 1763 | "Functions to compute the indentation. |
| 1749 | Each function is called with no argument, shouldn't move point, and should | 1764 | Each function is called with no argument, shouldn't move point, and should |
| 1750 | return either nil if it has no opinion, or an integer representing the column | 1765 | return either nil if it has no opinion, or an integer representing the column |
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index 05dd7d57503..95ed775f6b4 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el | |||
| @@ -43,8 +43,6 @@ | |||
| 43 | 43 | ||
| 44 | (eval-when-compile (require 'cl-lib)) | 44 | (eval-when-compile (require 'cl-lib)) |
| 45 | 45 | ||
| 46 | (defvar font-lock-beginning-of-syntax-function) | ||
| 47 | |||
| 48 | ;;; Applying syntax-table properties where needed. | 46 | ;;; Applying syntax-table properties where needed. |
| 49 | 47 | ||
| 50 | (defvar syntax-propertize-function nil | 48 | (defvar syntax-propertize-function nil |
| @@ -106,10 +104,6 @@ Put first the functions more likely to cause a change and cheaper to compute.") | |||
| 106 | (point-max)))) | 104 | (point-max)))) |
| 107 | (cons beg end)) | 105 | (cons beg end)) |
| 108 | 106 | ||
| 109 | (defvar syntax-propertize--done -1 | ||
| 110 | "Position up to which syntax-table properties have been set.") | ||
| 111 | (make-variable-buffer-local 'syntax-propertize--done) | ||
| 112 | |||
| 113 | (defun syntax-propertize--shift-groups (re n) | 107 | (defun syntax-propertize--shift-groups (re n) |
| 114 | (replace-regexp-in-string | 108 | (replace-regexp-in-string |
| 115 | "\\\\(\\?\\([0-9]+\\):" | 109 | "\\\\(\\?\\([0-9]+\\):" |
| @@ -290,39 +284,59 @@ The return value is a function suitable for `syntax-propertize-function'." | |||
| 290 | 284 | ||
| 291 | (defun syntax-propertize (pos) | 285 | (defun syntax-propertize (pos) |
| 292 | "Ensure that syntax-table properties are set until POS." | 286 | "Ensure that syntax-table properties are set until POS." |
| 293 | (when (and syntax-propertize-function | 287 | (when (< syntax-propertize--done pos) |
| 294 | (< syntax-propertize--done pos)) | 288 | (if (null syntax-propertize-function) |
| 295 | ;; (message "Needs to syntax-propertize from %s to %s" | 289 | (setq syntax-propertize--done (max (point-max) pos)) |
| 296 | ;; syntax-propertize--done pos) | 290 | ;; (message "Needs to syntax-propertize from %s to %s" |
| 297 | (set (make-local-variable 'parse-sexp-lookup-properties) t) | 291 | ;; syntax-propertize--done pos) |
| 298 | (save-excursion | 292 | (set (make-local-variable 'parse-sexp-lookup-properties) t) |
| 299 | (with-silent-modifications | 293 | (save-excursion |
| 300 | (let* ((start (max syntax-propertize--done (point-min))) | 294 | (with-silent-modifications |
| 301 | (end (max pos | 295 | (make-local-variable 'syntax-propertize--done) ;Just in case! |
| 302 | (min (point-max) | 296 | (let* ((start (max (min syntax-propertize--done (point-max)) |
| 303 | (+ start syntax-propertize-chunk-size)))) | 297 | (point-min))) |
| 304 | (funs syntax-propertize-extend-region-functions)) | 298 | (end (max pos |
| 305 | (while funs | 299 | (min (point-max) |
| 306 | (let ((new (funcall (pop funs) start end))) | 300 | (+ start syntax-propertize-chunk-size)))) |
| 307 | (if (or (null new) | 301 | (funs syntax-propertize-extend-region-functions)) |
| 308 | (and (>= (car new) start) (<= (cdr new) end))) | 302 | (while funs |
| 309 | nil | 303 | (let ((new (funcall (pop funs) start end)) |
| 310 | (setq start (car new)) | 304 | ;; Avoid recursion! |
| 311 | (setq end (cdr new)) | 305 | (syntax-propertize--done most-positive-fixnum)) |
| 312 | ;; If there's been a change, we should go through the | 306 | (if (or (null new) |
| 313 | ;; list again since this new position may | 307 | (and (>= (car new) start) (<= (cdr new) end))) |
| 314 | ;; warrant a different answer from one of the funs we've | 308 | nil |
| 315 | ;; already seen. | 309 | (setq start (car new)) |
| 316 | (unless (eq funs | 310 | (setq end (cdr new)) |
| 317 | (cdr syntax-propertize-extend-region-functions)) | 311 | ;; If there's been a change, we should go through the |
| 318 | (setq funs syntax-propertize-extend-region-functions))))) | 312 | ;; list again since this new position may |
| 319 | ;; Move the limit before calling the function, so the function | 313 | ;; warrant a different answer from one of the funs we've |
| 320 | ;; can use syntax-ppss. | 314 | ;; already seen. |
| 321 | (setq syntax-propertize--done end) | 315 | (unless (eq funs |
| 322 | ;; (message "syntax-propertizing from %s to %s" start end) | 316 | (cdr syntax-propertize-extend-region-functions)) |
| 323 | (remove-text-properties start end | 317 | (setq funs syntax-propertize-extend-region-functions))))) |
| 324 | '(syntax-table nil syntax-multiline nil)) | 318 | ;; Move the limit before calling the function, so the function |
| 325 | (funcall syntax-propertize-function start end)))))) | 319 | ;; can use syntax-ppss. |
| 320 | (setq syntax-propertize--done end) | ||
| 321 | ;; (message "syntax-propertizing from %s to %s" start end) | ||
| 322 | (remove-text-properties start end | ||
| 323 | '(syntax-table nil syntax-multiline nil)) | ||
| 324 | ;; Avoid recursion! | ||
| 325 | (let ((syntax-propertize--done most-positive-fixnum)) | ||
| 326 | (funcall syntax-propertize-function start end)))))))) | ||
| 327 | |||
| 328 | ;;; Link syntax-propertize with syntax.c. | ||
| 329 | |||
| 330 | (defvar syntax-propertize-chunks | ||
| 331 | ;; We're not sure how far we'll go. In my tests, using chunks of 20000 | ||
| 332 | ;; brings to overhead to something negligible. Passing ‘charpos’ directly | ||
| 333 | ;; also works (basically works line-by-line) but results in an overhead which | ||
| 334 | ;; I thought was a bit too high (like around 50%). | ||
| 335 | 2000) | ||
| 336 | |||
| 337 | (defun internal--syntax-propertize (charpos) | ||
| 338 | ;; FIXME: Called directly from C. | ||
| 339 | (syntax-propertize (min (+ syntax-propertize-chunks charpos) (point-max)))) | ||
| 326 | 340 | ||
| 327 | ;;; Incrementally compute and memoize parser state. | 341 | ;;; Incrementally compute and memoize parser state. |
| 328 | 342 | ||
| @@ -360,6 +374,7 @@ from each other, to avoid keeping too much useless info.") | |||
| 360 | "Function to move back outside of any comment/string/paren. | 374 | "Function to move back outside of any comment/string/paren. |
| 361 | This function should move the cursor back to some syntactically safe | 375 | This function should move the cursor back to some syntactically safe |
| 362 | point (where the PPSS is equivalent to nil).") | 376 | point (where the PPSS is equivalent to nil).") |
| 377 | (make-obsolete-variable 'syntax-begin-function nil "25.1") | ||
| 363 | 378 | ||
| 364 | (defvar syntax-ppss-cache nil | 379 | (defvar syntax-ppss-cache nil |
| 365 | "List of (POS . PPSS) pairs, in decreasing POS order.") | 380 | "List of (POS . PPSS) pairs, in decreasing POS order.") |
| @@ -487,11 +502,6 @@ running the hook." | |||
| 487 | ;; - The function might be slow. | 502 | ;; - The function might be slow. |
| 488 | ;; - If this function almost always finds a safe nearby spot, | 503 | ;; - If this function almost always finds a safe nearby spot, |
| 489 | ;; the cache won't be populated, so consulting it is cheap. | 504 | ;; the cache won't be populated, so consulting it is cheap. |
| 490 | (when (and (not syntax-begin-function) | ||
| 491 | (boundp 'font-lock-beginning-of-syntax-function) | ||
| 492 | font-lock-beginning-of-syntax-function) | ||
| 493 | (set (make-local-variable 'syntax-begin-function) | ||
| 494 | font-lock-beginning-of-syntax-function)) | ||
| 495 | (when (and syntax-begin-function | 505 | (when (and syntax-begin-function |
| 496 | (progn (goto-char pos) | 506 | (progn (goto-char pos) |
| 497 | (funcall syntax-begin-function) | 507 | (funcall syntax-begin-function) |
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index dca459f2bf6..c9e3fbe4f7d 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el | |||
| @@ -205,7 +205,7 @@ timers). If nil, allocate a new cell." | |||
| 205 | "Insert TIMER into `timer-idle-list'. | 205 | "Insert TIMER into `timer-idle-list'. |
| 206 | This arranges to activate TIMER whenever Emacs is next idle. | 206 | This arranges to activate TIMER whenever Emacs is next idle. |
| 207 | If optional argument DONT-WAIT is non-nil, set TIMER to activate | 207 | If optional argument DONT-WAIT is non-nil, set TIMER to activate |
| 208 | immediately \(see below\), or at the right time, if Emacs is | 208 | immediately \(see below), or at the right time, if Emacs is |
| 209 | already idle. | 209 | already idle. |
| 210 | 210 | ||
| 211 | REUSE-CELL, if non-nil, is a cons cell to reuse when inserting | 211 | REUSE-CELL, if non-nil, is a cons cell to reuse when inserting |
| @@ -345,18 +345,26 @@ This function is called, by name, directly by the C code." | |||
| 345 | (defun run-at-time (time repeat function &rest args) | 345 | (defun run-at-time (time repeat function &rest args) |
| 346 | "Perform an action at time TIME. | 346 | "Perform an action at time TIME. |
| 347 | Repeat the action every REPEAT seconds, if REPEAT is non-nil. | 347 | Repeat the action every REPEAT seconds, if REPEAT is non-nil. |
| 348 | TIME should be one of: a string giving an absolute time like | 348 | REPEAT may be an integer or floating point number. |
| 349 | \"11:23pm\" (the acceptable formats are those recognized by | 349 | TIME should be one of: |
| 350 | `diary-entry-time'; note that such times are interpreted as times | 350 | - a string giving today's time like \"11:23pm\" |
| 351 | today, even if in the past); a string giving a relative time like | 351 | (the acceptable formats are HHMM, H:MM, HH:MM, HHam, HHAM, |
| 352 | \"2 hours 35 minutes\" (the acceptable formats are those | 352 | HHpm, HHPM, HH:MMam, HH:MMAM, HH:MMpm, or HH:MMPM; |
| 353 | recognized by `timer-duration'); nil meaning now; a number of | 353 | a period `.' can be used instead of a colon `:' to separate |
| 354 | seconds from now; a value from `encode-time'; or t (with non-nil | 354 | the hour and minute parts); |
| 355 | REPEAT) meaning the next integral multiple of REPEAT. REPEAT may | 355 | - a string giving a relative time like \"90\" or \"2 hours 35 minutes\" |
| 356 | be an integer or floating point number. The action is to call | 356 | (the acceptable forms are a number of seconds without units |
| 357 | FUNCTION with arguments ARGS. | 357 | or some combination of values using units in `timer-duration-words'); |
| 358 | - nil, meaning now; | ||
| 359 | - a number of seconds from now; | ||
| 360 | - a value from `encode-time'; | ||
| 361 | - or t (with non-nil REPEAT) meaning the next integral | ||
| 362 | multiple of REPEAT. | ||
| 358 | 363 | ||
| 359 | This function returns a timer object which you can use in `cancel-timer'." | 364 | The action is to call FUNCTION with arguments ARGS. |
| 365 | |||
| 366 | This function returns a timer object which you can use in | ||
| 367 | `cancel-timer'." | ||
| 360 | (interactive "sRun at time: \nNRepeat interval: \naFunction: ") | 368 | (interactive "sRun at time: \nNRepeat interval: \naFunction: ") |
| 361 | 369 | ||
| 362 | (or (null repeat) | 370 | (or (null repeat) |
diff --git a/lisp/emulation/edt-mapper.el b/lisp/emulation/edt-mapper.el index 9e3667e7a8f..c002ecfd2ff 100644 --- a/lisp/emulation/edt-mapper.el +++ b/lisp/emulation/edt-mapper.el | |||
| @@ -105,7 +105,7 @@ | |||
| 105 | ;;; Determine Window System, and X Server Vendor (if appropriate). | 105 | ;;; Determine Window System, and X Server Vendor (if appropriate). |
| 106 | ;;; | 106 | ;;; |
| 107 | (defconst edt-window-system (if (featurep 'xemacs) (console-type) window-system) | 107 | (defconst edt-window-system (if (featurep 'xemacs) (console-type) window-system) |
| 108 | "Indicates window system \(in GNU Emacs\) or console type \(in XEmacs\).") | 108 | "Indicates window system (in GNU Emacs) or console type (in XEmacs).") |
| 109 | 109 | ||
| 110 | (declare-function x-server-vendor "xfns.c" (&optional terminal)) | 110 | (declare-function x-server-vendor "xfns.c" (&optional terminal)) |
| 111 | 111 | ||
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el index 9bd1627ffeb..0c089698752 100644 --- a/lisp/emulation/edt.el +++ b/lisp/emulation/edt.el | |||
| @@ -213,23 +213,23 @@ use within the EDT emulation." | |||
| 213 | 213 | ||
| 214 | (defcustom edt-word-entities '(?\t) | 214 | (defcustom edt-word-entities '(?\t) |
| 215 | "Specifies the list of EDT word entity characters. | 215 | "Specifies the list of EDT word entity characters. |
| 216 | The default list, (\?\\t), contains just the TAB character, which | 216 | The default list, (?\\t), contains just the TAB character, which |
| 217 | emulates EDT. Characters are specified in the list using their | 217 | emulates EDT. Characters are specified in the list using their |
| 218 | decimal ASCII values. A question mark, followed by the actual | 218 | decimal ASCII values. A question mark, followed by the actual |
| 219 | character, can be used to indicate the numerical value of the | 219 | character, can be used to indicate the numerical value of the |
| 220 | character, instead of the actual decimal value. So, ?A means the | 220 | character, instead of the actual decimal value. So, ?A means the |
| 221 | numerical value for the letter A, \?/ means the numerical value for /, | 221 | numerical value for the letter A, ?/ means the numerical value for /, |
| 222 | etc. Several unprintable and special characters have special | 222 | etc. Several unprintable and special characters have special |
| 223 | representations, which you can also use: | 223 | representations, which you can also use: |
| 224 | 224 | ||
| 225 | \?\\b specifies BS, C-h | 225 | ?\\b specifies BS, C-h |
| 226 | \?\\t specifies TAB, C-i | 226 | ?\\t specifies TAB, C-i |
| 227 | \?\\n specifies LFD, C-j | 227 | ?\\n specifies LFD, C-j |
| 228 | \?\\v specifies VTAB, C-k | 228 | ?\\v specifies VTAB, C-k |
| 229 | \?\\f specifies FF, C-l | 229 | ?\\f specifies FF, C-l |
| 230 | \?\\r specifies CR, C-m | 230 | ?\\r specifies CR, C-m |
| 231 | \?\\e specifies ESC, C-[ | 231 | ?\\e specifies ESC, C-[ |
| 232 | \?\\\\ specifies \\ | 232 | ?\\\\ specifies \\ |
| 233 | 233 | ||
| 234 | In EDT Emulation movement-by-word commands, each character in the list | 234 | In EDT Emulation movement-by-word commands, each character in the list |
| 235 | will be treated as if it were a separate word." | 235 | will be treated as if it were a separate word." |
| @@ -311,10 +311,10 @@ This means that an edt-user.el file was found in the user's `load-path'.") | |||
| 311 | ;;; o edt-emulation-on o edt-load-keys | 311 | ;;; o edt-emulation-on o edt-load-keys |
| 312 | ;;; | 312 | ;;; |
| 313 | (defconst edt-emacs-variant (if (featurep 'emacs) "gnu" "xemacs") | 313 | (defconst edt-emacs-variant (if (featurep 'emacs) "gnu" "xemacs") |
| 314 | "Indicates Emacs variant: GNU Emacs or XEmacs \(aka Lucid Emacs\).") | 314 | "Indicates Emacs variant: GNU Emacs or XEmacs (aka Lucid Emacs).") |
| 315 | 315 | ||
| 316 | (defconst edt-window-system (if (featurep 'emacs) window-system (console-type)) | 316 | (defconst edt-window-system (if (featurep 'emacs) window-system (console-type)) |
| 317 | "Indicates window system \(in GNU Emacs\) or console type \(in XEmacs\).") | 317 | "Indicates window system (in GNU Emacs) or console type (in XEmacs).") |
| 318 | 318 | ||
| 319 | (declare-function x-server-vendor "xfns.c" (&optional terminal)) | 319 | (declare-function x-server-vendor "xfns.c" (&optional terminal)) |
| 320 | 320 | ||
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index 93fcec865a7..960ccedd4dd 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el | |||
| @@ -1536,7 +1536,7 @@ as a Meta key and any number of multiple escapes are allowed." | |||
| 1536 | (defun viper-repeat (arg) | 1536 | (defun viper-repeat (arg) |
| 1537 | "Re-execute last destructive command. | 1537 | "Re-execute last destructive command. |
| 1538 | Use the info in viper-d-com, which has the form | 1538 | Use the info in viper-d-com, which has the form |
| 1539 | \(com val ch reg inserted-text command-keys\), | 1539 | \(com val ch reg inserted-text command-keys), |
| 1540 | where `com' is the command to be re-executed, `val' is the | 1540 | where `com' is the command to be re-executed, `val' is the |
| 1541 | argument to `com', `ch' is a flag for repeat, and `reg' is optional; | 1541 | argument to `com', `ch' is a flag for repeat, and `reg' is optional; |
| 1542 | if it exists, it is the name of the register for `com'. | 1542 | if it exists, it is the name of the register for `com'. |
| @@ -3424,7 +3424,7 @@ controlled by the sign of prefix numeric value." | |||
| 3424 | ((re-search-backward "[][(){}]" beg-lim t)) | 3424 | ((re-search-backward "[][(){}]" beg-lim t)) |
| 3425 | (t | 3425 | (t |
| 3426 | (error "No matching character on line")))) | 3426 | (error "No matching character on line")))) |
| 3427 | (cond ((looking-at "[\(\[{]") | 3427 | (cond ((looking-at "[([{]") |
| 3428 | (if com (viper-move-marker-locally 'viper-com-point (point))) | 3428 | (if com (viper-move-marker-locally 'viper-com-point (point))) |
| 3429 | (forward-sexp 1) | 3429 | (forward-sexp 1) |
| 3430 | (if com | 3430 | (if com |
| @@ -3733,7 +3733,7 @@ With a prefix argument, this function unsets the macros. | |||
| 3733 | If the optional prefix argument is non-nil and specifies a valid major mode, | 3733 | If the optional prefix argument is non-nil and specifies a valid major mode, |
| 3734 | this sets the macros only in the macros in that major mode. Otherwise, | 3734 | this sets the macros only in the macros in that major mode. Otherwise, |
| 3735 | the macros are set in the current major mode. | 3735 | the macros are set in the current major mode. |
| 3736 | \(When unsetting the macros, the second argument has no effect.\)" | 3736 | \(When unsetting the macros, the second argument has no effect.)" |
| 3737 | (interactive "P") | 3737 | (interactive "P") |
| 3738 | (or noninteractive | 3738 | (or noninteractive |
| 3739 | (if (not unset) | 3739 | (if (not unset) |
| @@ -3980,7 +3980,7 @@ Null string will repeat previous search." | |||
| 3980 | (let (buffer buffer-name) | 3980 | (let (buffer buffer-name) |
| 3981 | (setq buffer-name | 3981 | (setq buffer-name |
| 3982 | (funcall viper-read-buffer-function | 3982 | (funcall viper-read-buffer-function |
| 3983 | (format "Kill buffer \(%s\): " | 3983 | (format "Kill buffer (%s): " |
| 3984 | (buffer-name (current-buffer))))) | 3984 | (buffer-name (current-buffer))))) |
| 3985 | (setq buffer | 3985 | (setq buffer |
| 3986 | (if (null buffer-name) | 3986 | (if (null buffer-name) |
| @@ -4588,7 +4588,7 @@ One can use \\=`\\=` and \\='\\=' to temporarily jump 1 step back." | |||
| 4588 | ;; Viewing registers | 4588 | ;; Viewing registers |
| 4589 | 4589 | ||
| 4590 | (defun viper-ket-function (arg) | 4590 | (defun viper-ket-function (arg) |
| 4591 | "Function called by \], the ket. View registers and call \]\]." | 4591 | "Function called by ], the ket. View registers and call ]]." |
| 4592 | (interactive "P") | 4592 | (interactive "P") |
| 4593 | (let ((reg (read-char))) | 4593 | (let ((reg (read-char))) |
| 4594 | (cond ((viper-valid-register reg '(letter Letter)) | 4594 | (cond ((viper-valid-register reg '(letter Letter)) |
| @@ -4605,7 +4605,7 @@ One can use \\=`\\=` and \\='\\=' to temporarily jump 1 step back." | |||
| 4605 | viper-InvalidRegister reg))))) | 4605 | viper-InvalidRegister reg))))) |
| 4606 | 4606 | ||
| 4607 | (defun viper-brac-function (arg) | 4607 | (defun viper-brac-function (arg) |
| 4608 | "Function called by \[, the brac. View textmarkers and call \[\[." | 4608 | "Function called by [, the brac. View textmarkers and call [[." |
| 4609 | (interactive "P") | 4609 | (interactive "P") |
| 4610 | (let ((reg (read-char))) | 4610 | (let ((reg (read-char))) |
| 4611 | (cond ((viper= ?\[ reg) | 4611 | (cond ((viper= ?\[ reg) |
| @@ -4981,7 +4981,7 @@ back trace of the execution that leads to the error. Please include this | |||
| 4981 | trace in your bug report. | 4981 | trace in your bug report. |
| 4982 | 4982 | ||
| 4983 | If you believe that one of Viper's commands goes into an infinite loop | 4983 | If you believe that one of Viper's commands goes into an infinite loop |
| 4984 | \(e.g., Emacs freezes\), type: | 4984 | \(e.g., Emacs freezes), type: |
| 4985 | 4985 | ||
| 4986 | M-x set-variable <Return> debug-on-quit <Return> t <Return> | 4986 | M-x set-variable <Return> debug-on-quit <Return> t <Return> |
| 4987 | 4987 | ||
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el index fb2c1792a41..6e55ac5b5d6 100644 --- a/lisp/emulation/viper-ex.el +++ b/lisp/emulation/viper-ex.el | |||
| @@ -396,7 +396,7 @@ reversed." | |||
| 396 | )) | 396 | )) |
| 397 | 397 | ||
| 398 | ;; Get an ex-token which is either an address or a command. | 398 | ;; Get an ex-token which is either an address or a command. |
| 399 | ;; A token has a type, \(command, address, end-mark\), and a value | 399 | ;; A token has a type, (command, address, end-mark), and a value |
| 400 | (defun viper-get-ex-token () | 400 | (defun viper-get-ex-token () |
| 401 | (save-window-excursion | 401 | (save-window-excursion |
| 402 | (setq viper-ex-work-buf (get-buffer-create viper-ex-work-buf-name)) | 402 | (setq viper-ex-work-buf (get-buffer-create viper-ex-work-buf-name)) |
| @@ -1658,7 +1658,7 @@ reversed." | |||
| 1658 | (if (and (not (string= ex-file (buffer-file-name))) | 1658 | (if (and (not (string= ex-file (buffer-file-name))) |
| 1659 | (buffer-modified-p) | 1659 | (buffer-modified-p) |
| 1660 | (not ex-variant)) | 1660 | (not ex-variant)) |
| 1661 | (error "No write since last change \(:rec! overrides\)")) | 1661 | (error "No write since last change (:rec! overrides)")) |
| 1662 | (recover-file ex-file)) | 1662 | (recover-file ex-file)) |
| 1663 | 1663 | ||
| 1664 | ;; Tell that `rewind' is obsolete and to use `:next count' instead | 1664 | ;; Tell that `rewind' is obsolete and to use `:next count' instead |
diff --git a/lisp/emulation/viper-init.el b/lisp/emulation/viper-init.el index 092de55e70e..f422a1354a9 100644 --- a/lisp/emulation/viper-init.el +++ b/lisp/emulation/viper-init.el | |||
| @@ -102,7 +102,7 @@ docstring. The variable becomes buffer-local whenever set." | |||
| 102 | (declare (indent defun)) | 102 | (declare (indent defun)) |
| 103 | `(progn | 103 | `(progn |
| 104 | (defvar ,var ,default-value | 104 | (defvar ,var ,default-value |
| 105 | ,(format "%s\n\(buffer local\)" documentation)) | 105 | ,(format "%s\n(buffer local)" documentation)) |
| 106 | (make-variable-buffer-local ',var))) | 106 | (make-variable-buffer-local ',var))) |
| 107 | 107 | ||
| 108 | ;; (viper-loop COUNT BODY) Execute BODY COUNT times. | 108 | ;; (viper-loop COUNT BODY) Execute BODY COUNT times. |
| @@ -778,7 +778,7 @@ Related buffers can be cycled through via :R and :P commands." | |||
| 778 | "^\\\\[sb][a-z]*{.*}\\s-*$\\|" ; latex | 778 | "^\\\\[sb][a-z]*{.*}\\s-*$\\|" ; latex |
| 779 | "^@node\\|@table\\|^@m?enu\\|^@itemize\\|^@if\\|" ; texinfo | 779 | "^@node\\|@table\\|^@m?enu\\|^@itemize\\|^@if\\|" ; texinfo |
| 780 | "^.+:-") ; prolog | 780 | "^.+:-") ; prolog |
| 781 | "Regexps for Headings. Used by \[\[ and \]\].") | 781 | "Regexps for Headings. Used by [[ and ]].") |
| 782 | 782 | ||
| 783 | (defvar viper-heading-end | 783 | (defvar viper-heading-end |
| 784 | (concat "^}\\|" ; C/C++ | 784 | (concat "^}\\|" ; C/C++ |
| @@ -786,7 +786,7 @@ Related buffers can be cycled through via :R and :P commands." | |||
| 786 | "^@end \\|" ; texinfo | 786 | "^@end \\|" ; texinfo |
| 787 | ")\n\n[ \t\n]*\\|" ; lisp | 787 | ")\n\n[ \t\n]*\\|" ; lisp |
| 788 | "\\.\\s-*$") ; prolog | 788 | "\\.\\s-*$") ; prolog |
| 789 | "*Regexps to end Headings/Sections. Used by \[\].") | 789 | "*Regexps to end Headings/Sections. Used by [].") |
| 790 | 790 | ||
| 791 | 791 | ||
| 792 | ;; These two vars control the interaction of jumps performed by ' and `. | 792 | ;; These two vars control the interaction of jumps performed by ' and `. |
diff --git a/lisp/emulation/viper-macs.el b/lisp/emulation/viper-macs.el index 4fa07792334..3aff0628b5f 100644 --- a/lisp/emulation/viper-macs.el +++ b/lisp/emulation/viper-macs.el | |||
| @@ -327,8 +327,8 @@ Can be used in `viper-custom-file-name' to define permanent macros. | |||
| 327 | MACRO-NAME is a string of characters or a vector of keys. STATE is | 327 | MACRO-NAME is a string of characters or a vector of keys. STATE is |
| 328 | either `vi-state' or `insert-state'. It specifies the Viper state in which to | 328 | either `vi-state' or `insert-state'. It specifies the Viper state in which to |
| 329 | define the macro. MACRO-BODY is a string that represents the keyboard macro. | 329 | define the macro. MACRO-BODY is a string that represents the keyboard macro. |
| 330 | Optional SCOPE says whether the macro should be global \(t\), mode-specific | 330 | Optional SCOPE says whether the macro should be global \(t), mode-specific |
| 331 | \(a major-mode symbol\), or buffer-specific \(buffer name, a string\). | 331 | \(a major-mode symbol), or buffer-specific \(buffer name, a string). |
| 332 | If SCOPE is nil, the user is asked to specify the scope." | 332 | If SCOPE is nil, the user is asked to specify the scope." |
| 333 | (let* (state-name keymap | 333 | (let* (state-name keymap |
| 334 | (macro-alist-var | 334 | (macro-alist-var |
| @@ -894,7 +894,7 @@ mistakes in macro names to be passed to this function is to use | |||
| 894 | (set-register reg last-kbd-macro)) | 894 | (set-register reg last-kbd-macro)) |
| 895 | 895 | ||
| 896 | (defun viper-register-macro (count) | 896 | (defun viper-register-macro (count) |
| 897 | "Keyboard macros in registers - a modified \@ command." | 897 | "Keyboard macros in registers - a modified @ command." |
| 898 | (interactive "P") | 898 | (interactive "P") |
| 899 | (let ((reg (downcase (read-char)))) | 899 | (let ((reg (downcase (read-char)))) |
| 900 | (cond ((or (and (<= ?a reg) (<= reg ?z))) | 900 | (cond ((or (and (<= ?a reg) (<= reg ?z))) |
diff --git a/lisp/emulation/viper-mous.el b/lisp/emulation/viper-mous.el index 4d5c86fd6aa..5c82bf1f55d 100644 --- a/lisp/emulation/viper-mous.el +++ b/lisp/emulation/viper-mous.el | |||
| @@ -145,7 +145,7 @@ If CLICK-COUNT is 2,then `word' is a Word in Vi sense. | |||
| 145 | If the character clicked on is a non-separator and is non-alphanumeric but | 145 | If the character clicked on is a non-separator and is non-alphanumeric but |
| 146 | is adjacent to an alphanumeric symbol, then it is considered alphanumeric | 146 | is adjacent to an alphanumeric symbol, then it is considered alphanumeric |
| 147 | for the purpose of this command. If this character has a matching | 147 | for the purpose of this command. If this character has a matching |
| 148 | character, such as `\(' is a match for `\)', then the matching character is | 148 | character, such as `(' is a match for `)', then the matching character is |
| 149 | also considered alphanumeric. | 149 | also considered alphanumeric. |
| 150 | For convenience, in Lisp modes, `-' is considered alphanumeric. | 150 | For convenience, in Lisp modes, `-' is considered alphanumeric. |
| 151 | 151 | ||
| @@ -250,7 +250,7 @@ On single or double click, returns the word as determined by | |||
| 250 | With prefix argument, N, insert that many words. | 250 | With prefix argument, N, insert that many words. |
| 251 | This command must be bound to a mouse click. | 251 | This command must be bound to a mouse click. |
| 252 | The double-click action of the same mouse button must not be bound | 252 | The double-click action of the same mouse button must not be bound |
| 253 | \(or it must be bound to the same function\). | 253 | \(or it must be bound to the same function). |
| 254 | See `viper-surrounding-word' for the definition of a word in this case." | 254 | See `viper-surrounding-word' for the definition of a word in this case." |
| 255 | (interactive "e\nP") | 255 | (interactive "e\nP") |
| 256 | (if viper-frame-of-focus ;; to handle clicks in another frame | 256 | (if viper-frame-of-focus ;; to handle clicks in another frame |
| @@ -339,7 +339,7 @@ See `viper-surrounding-word' for the definition of a word in this case." | |||
| 339 | "Find the word clicked or double-clicked on. Word may be in another window. | 339 | "Find the word clicked or double-clicked on. Word may be in another window. |
| 340 | With prefix argument, N, search for N-th occurrence. | 340 | With prefix argument, N, search for N-th occurrence. |
| 341 | This command must be bound to a mouse click. The double-click action of the | 341 | This command must be bound to a mouse click. The double-click action of the |
| 342 | same button must not be bound \(or it must be bound to the same function\). | 342 | same button must not be bound \(or it must be bound to the same function). |
| 343 | See `viper-surrounding-word' for the details on what constitutes a word for | 343 | See `viper-surrounding-word' for the details on what constitutes a word for |
| 344 | this command." | 344 | this command." |
| 345 | (interactive "e\nP") | 345 | (interactive "e\nP") |
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el index c4dc569efb3..8c2ad581a75 100644 --- a/lisp/emulation/viper-util.el +++ b/lisp/emulation/viper-util.el | |||
| @@ -379,7 +379,7 @@ Otherwise return the normal value." | |||
| 379 | 379 | ||
| 380 | ;; Append LIS2 to LIS1, both alists, by side-effect and returns LIS1 | 380 | ;; Append LIS2 to LIS1, both alists, by side-effect and returns LIS1 |
| 381 | ;; LIS2 is modified by filtering it: deleting its members of the form | 381 | ;; LIS2 is modified by filtering it: deleting its members of the form |
| 382 | ;; \(car elt\) such that (car elt') is in LIS1. | 382 | ;; (car elt) such that (car elt') is in LIS1. |
| 383 | (defun viper-append-filter-alist (lis1 lis2) | 383 | (defun viper-append-filter-alist (lis1 lis2) |
| 384 | (let ((temp lis1) | 384 | (let ((temp lis1) |
| 385 | elt) | 385 | elt) |
| @@ -426,7 +426,7 @@ Otherwise return the normal value." | |||
| 426 | ;; Issue an error, if no match. | 426 | ;; Issue an error, if no match. |
| 427 | (unless (eq 0 status) | 427 | (unless (eq 0 status) |
| 428 | (save-excursion | 428 | (save-excursion |
| 429 | (skip-chars-forward " \t\n\j") | 429 | (skip-chars-forward " \t\n") |
| 430 | (if (looking-at "ls:") | 430 | (if (looking-at "ls:") |
| 431 | (viper-forward-Word 1)) | 431 | (viper-forward-Word 1)) |
| 432 | (error "%s: %s" | 432 | (error "%s: %s" |
| @@ -859,7 +859,7 @@ Otherwise return the normal value." | |||
| 859 | 859 | ||
| 860 | (defsubst viper-is-in-minibuffer () | 860 | (defsubst viper-is-in-minibuffer () |
| 861 | (save-match-data | 861 | (save-match-data |
| 862 | (string-match "\*Minibuf-" (buffer-name)))) | 862 | (string-match "\\*Minibuf-" (buffer-name)))) |
| 863 | 863 | ||
| 864 | 864 | ||
| 865 | 865 | ||
| @@ -1330,7 +1330,7 @@ Works best when set in the hooks to various major modes. | |||
| 1330 | `strict-vi' means Viper words are (hopefully) exactly as in Vi. | 1330 | `strict-vi' means Viper words are (hopefully) exactly as in Vi. |
| 1331 | 1331 | ||
| 1332 | `reformed-vi' means Viper words are like Emacs words \(as determined using | 1332 | `reformed-vi' means Viper words are like Emacs words \(as determined using |
| 1333 | Emacs syntax tables, which are different for different major modes\) with two | 1333 | Emacs syntax tables, which are different for different major modes) with two |
| 1334 | exceptions: the symbol `_' is always part of a word and typical Vi non-word | 1334 | exceptions: the symbol `_' is always part of a word and typical Vi non-word |
| 1335 | symbols, such as `,',:,\",),{, etc., are excluded. | 1335 | symbols, such as `,',:,\",),{, etc., are excluded. |
| 1336 | This behaves very close to `strict-vi', but also works well with non-ASCII | 1336 | This behaves very close to `strict-vi', but also works well with non-ASCII |
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el index 0933c949df0..6398b476fad 100644 --- a/lisp/emulation/viper.el +++ b/lisp/emulation/viper.el | |||
| @@ -819,7 +819,7 @@ It also can't undo some Viper settings." | |||
| 819 | ;; fundamental | 819 | ;; fundamental |
| 820 | (defun viper-major-mode-change-sentinel () | 820 | (defun viper-major-mode-change-sentinel () |
| 821 | (save-match-data | 821 | (save-match-data |
| 822 | (or (string-match "\*Minibuf-" (buffer-name)) | 822 | (or (string-match "\\*Minibuf-" (buffer-name)) |
| 823 | (setq viper-new-major-mode-buffer-list | 823 | (setq viper-new-major-mode-buffer-list |
| 824 | (cons (current-buffer) viper-new-major-mode-buffer-list)))) | 824 | (cons (current-buffer) viper-new-major-mode-buffer-list)))) |
| 825 | ;; change the global value of hook | 825 | ;; change the global value of hook |
diff --git a/lisp/epg.el b/lisp/epg.el index ed71e966853..aa79c7d0fc2 100644 --- a/lisp/epg.el +++ b/lisp/epg.el | |||
| @@ -2199,7 +2199,7 @@ The return value is an alist mapping from types to values." | |||
| 2199 | (if (eq index (string-match "[ \t\n\r]*" string index)) | 2199 | (if (eq index (string-match "[ \t\n\r]*" string index)) |
| 2200 | (setq index (match-end 0))) | 2200 | (setq index (match-end 0))) |
| 2201 | (if (eq index (string-match | 2201 | (if (eq index (string-match |
| 2202 | "\\([0-9]+\\(\\.[0-9]+\\)*\\)\[ \t\n\r]*=[ \t\n\r]*" | 2202 | "\\([0-9]+\\(\\.[0-9]+\\)*\\)[ \t\n\r]*=[ \t\n\r]*" |
| 2203 | string index)) | 2203 | string index)) |
| 2204 | (setq type (match-string 1 string) | 2204 | (setq type (match-string 1 string) |
| 2205 | index (match-end 0)) | 2205 | index (match-end 0)) |
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el index 958c5ef8b62..ec45dcfcf24 100644 --- a/lisp/erc/erc-backend.el +++ b/lisp/erc/erc-backend.el | |||
| @@ -1541,7 +1541,7 @@ A server may send more than one 005 message." | |||
| 1541 | (while (erc-response.command-args parsed) | 1541 | (while (erc-response.command-args parsed) |
| 1542 | (let ((section (pop (erc-response.command-args parsed)))) | 1542 | (let ((section (pop (erc-response.command-args parsed)))) |
| 1543 | ;; fill erc-server-parameters | 1543 | ;; fill erc-server-parameters |
| 1544 | (when (string-match "^\\([A-Z]+\\)\=\\(.*\\)$\\|^\\([A-Z]+\\)$" | 1544 | (when (string-match "^\\([A-Z]+\\)=\\(.*\\)$\\|^\\([A-Z]+\\)$" |
| 1545 | section) | 1545 | section) |
| 1546 | (add-to-list 'erc-server-parameters | 1546 | (add-to-list 'erc-server-parameters |
| 1547 | `(,(or (match-string 1 section) | 1547 | `(,(or (match-string 1 section) |
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el index 55f298bbf69..0622b18ca7f 100644 --- a/lisp/erc/erc-match.el +++ b/lisp/erc/erc-match.el | |||
| @@ -84,7 +84,7 @@ Useful to mark nicks from dangerous hosts." | |||
| 84 | 84 | ||
| 85 | (defcustom erc-current-nick-highlight-type 'keyword | 85 | (defcustom erc-current-nick-highlight-type 'keyword |
| 86 | "Determines how to highlight text in which your current nickname appears | 86 | "Determines how to highlight text in which your current nickname appears |
| 87 | \(does not apply to text sent by you\). | 87 | \(does not apply to text sent by you). |
| 88 | 88 | ||
| 89 | The following values are allowed: | 89 | The following values are allowed: |
| 90 | 90 | ||
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el index 441663f3b3b..2891fe17be6 100644 --- a/lisp/erc/erc-networks.el +++ b/lisp/erc/erc-networks.el | |||
| @@ -588,7 +588,7 @@ PORTS is either a number, a list of numbers, or a list of port ranges." | |||
| 588 | (LagNet "lagnet.org.za") | 588 | (LagNet "lagnet.org.za") |
| 589 | (Librenet "librenet.net") | 589 | (Librenet "librenet.net") |
| 590 | (LinkNet "link-net.org") | 590 | (LinkNet "link-net.org") |
| 591 | (LinuxChix "cats\.meow\.at\\|linuxchix\.org") | 591 | (LinuxChix "cats\\.meow\\.at\\|linuxchix\\.org") |
| 592 | (Liquidized "liquidized.net") | 592 | (Liquidized "liquidized.net") |
| 593 | (M-IRC "m-sys.org") | 593 | (M-IRC "m-sys.org") |
| 594 | (MagicStar "magicstar.net") | 594 | (MagicStar "magicstar.net") |
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el index 2d2fa6230c3..274b01ffbd1 100644 --- a/lisp/erc/erc-services.el +++ b/lisp/erc/erc-services.el | |||
| @@ -280,7 +280,7 @@ Example of use: | |||
| 280 | "IDENTIFY" nil nil nil)) | 280 | "IDENTIFY" nil nil nil)) |
| 281 | "Alist of NickServer details, sorted by network. | 281 | "Alist of NickServer details, sorted by network. |
| 282 | Every element in the list has the form | 282 | Every element in the list has the form |
| 283 | \(SYMBOL NICKSERV REGEXP NICK KEYWORD USE-CURRENT ANSWER SUCCESS-REGEXP) | 283 | (SYMBOL NICKSERV REGEXP NICK KEYWORD USE-CURRENT ANSWER SUCCESS-REGEXP) |
| 284 | 284 | ||
| 285 | SYMBOL is a network identifier, a symbol, as used in `erc-networks-alist'. | 285 | SYMBOL is a network identifier, a symbol, as used in `erc-networks-alist'. |
| 286 | NICKSERV is the description of the nickserv in the form nick!user@host. | 286 | NICKSERV is the description of the nickserv in the form nick!user@host. |
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 62be63e9aa4..8e26db1d9d3 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el | |||
| @@ -258,20 +258,20 @@ If nil, only \"> \" will be shown." | |||
| 258 | 258 | ||
| 259 | (defcustom erc-hide-list nil | 259 | (defcustom erc-hide-list nil |
| 260 | "A global list of IRC message types to hide. | 260 | "A global list of IRC message types to hide. |
| 261 | A typical value would be '(\"JOIN\" \"PART\" \"QUIT\")." | 261 | A typical value would be \(\"JOIN\" \"PART\" \"QUIT\")." |
| 262 | :group 'erc-ignore | 262 | :group 'erc-ignore |
| 263 | :type 'erc-message-type) | 263 | :type 'erc-message-type) |
| 264 | 264 | ||
| 265 | (defcustom erc-network-hide-list nil | 265 | (defcustom erc-network-hide-list nil |
| 266 | "A list of IRC networks to hide message types from. | 266 | "A list of IRC networks to hide message types from. |
| 267 | A typical value would be '((\"freenode\" \"MODE\") | 267 | A typical value would be \((\"freenode\" \"MODE\") |
| 268 | (\"OFTC\" \"JOIN\" \"QUIT\"))." | 268 | (\"OFTC\" \"JOIN\" \"QUIT\"))." |
| 269 | :group 'erc-ignore | 269 | :group 'erc-ignore |
| 270 | :type 'erc-message-type) | 270 | :type 'erc-message-type) |
| 271 | 271 | ||
| 272 | (defcustom erc-channel-hide-list nil | 272 | (defcustom erc-channel-hide-list nil |
| 273 | "A list of IRC channels to hide message types from. | 273 | "A list of IRC channels to hide message types from. |
| 274 | A typical value would be '((\"#emacs\" \"QUIT\" \JOIN\") | 274 | A typical value would be \((\"#emacs\" \"QUIT\" \"JOIN\") |
| 275 | (\"#erc\" \"NICK\")." | 275 | (\"#erc\" \"NICK\")." |
| 276 | :group 'erc-ignore | 276 | :group 'erc-ignore |
| 277 | :type 'erc-message-type) | 277 | :type 'erc-message-type) |
| @@ -2503,7 +2503,7 @@ non-nil." | |||
| 2503 | (defcustom erc-lurker-hide-list nil | 2503 | (defcustom erc-lurker-hide-list nil |
| 2504 | "List of IRC type messages to hide when sent by lurkers. | 2504 | "List of IRC type messages to hide when sent by lurkers. |
| 2505 | 2505 | ||
| 2506 | A typical value would be '(\"JOIN\" \"PART\" \"QUIT\"). | 2506 | A typical value would be \(\"JOIN\" \"PART\" \"QUIT\"). |
| 2507 | See also `erc-lurker-p' and `erc-hide-list'." | 2507 | See also `erc-lurker-p' and `erc-hide-list'." |
| 2508 | :group 'erc-lurker | 2508 | :group 'erc-lurker |
| 2509 | :type 'erc-message-type) | 2509 | :type 'erc-message-type) |
| @@ -2973,7 +2973,7 @@ VERSION and so on. It is called with ARGS." | |||
| 2973 | If FUNC contains a valid function or variable, help about that | 2973 | If FUNC contains a valid function or variable, help about that |
| 2974 | will be displayed. If FUNC is empty, display an apropos about | 2974 | will be displayed. If FUNC is empty, display an apropos about |
| 2975 | ERC commands. Otherwise, do `apropos' in the ERC namespace | 2975 | ERC commands. Otherwise, do `apropos' in the ERC namespace |
| 2976 | \(\"erc-.*LINE\"\). | 2976 | \(\"erc-.*LINE\"). |
| 2977 | 2977 | ||
| 2978 | Examples: | 2978 | Examples: |
| 2979 | To find out about erc and bbdb, do | 2979 | To find out about erc and bbdb, do |
diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el index f2e67cc8c32..f0a85152382 100644 --- a/lisp/eshell/em-glob.el +++ b/lisp/eshell/em-glob.el | |||
| @@ -193,8 +193,8 @@ The basic syntax is: | |||
| 193 | * .* matches any group of characters (or none) | 193 | * .* matches any group of characters (or none) |
| 194 | # * matches zero or more occurrences of preceding | 194 | # * matches zero or more occurrences of preceding |
| 195 | ## + matches one or more occurrences of preceding | 195 | ## + matches one or more occurrences of preceding |
| 196 | (x) \(x\) makes `x' a regular expression group | 196 | (x) \\(x\\) makes `x' a regular expression group |
| 197 | | \| boolean OR within an expression group | 197 | | \\| boolean OR within an expression group |
| 198 | [a-b] [a-b] matches a character or range | 198 | [a-b] [a-b] matches a character or range |
| 199 | [^a] [^a] excludes a character or range | 199 | [^a] [^a] excludes a character or range |
| 200 | 200 | ||
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index 499eda40dc3..90dec596701 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el | |||
| @@ -639,7 +639,7 @@ matched." | |||
| 639 | ;; `!' | 639 | ;; `!' |
| 640 | ;; Start a history substitution, except when followed by a | 640 | ;; Start a history substitution, except when followed by a |
| 641 | ;; space, tab, the end of the line, = or (. | 641 | ;; space, tab, the end of the line, = or (. |
| 642 | (if (not (string-match "^![^ \t\n=\(]" reference)) | 642 | (if (not (string-match "^![^ \t\n=(]" reference)) |
| 643 | reference | 643 | reference |
| 644 | (setq eshell-history-index nil) | 644 | (setq eshell-history-index nil) |
| 645 | (let ((event (eshell-hist-parse-event-designator reference))) | 645 | (let ((event (eshell-hist-parse-event-designator reference))) |
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el index 76751e51dfd..ae6e0d3e886 100644 --- a/lisp/eshell/em-ls.el +++ b/lisp/eshell/em-ls.el | |||
| @@ -47,7 +47,7 @@ properties to colorize its output based on the setting of | |||
| 47 | (defcustom eshell-ls-date-format "%Y-%m-%d" | 47 | (defcustom eshell-ls-date-format "%Y-%m-%d" |
| 48 | "How to display time information in `eshell-ls-file'. | 48 | "How to display time information in `eshell-ls-file'. |
| 49 | This is passed to `format-time-string' as a format string. | 49 | This is passed to `format-time-string' as a format string. |
| 50 | To display the date using the current locale, use \"%b \%e\"." | 50 | To display the date using the current locale, use \"%b \ %e\"." |
| 51 | :version "24.1" | 51 | :version "24.1" |
| 52 | :type 'string) | 52 | :type 'string) |
| 53 | 53 | ||
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el index 8ae81df92e5..19597dfbc1f 100644 --- a/lisp/eshell/em-unix.el +++ b/lisp/eshell/em-unix.el | |||
| @@ -517,7 +517,7 @@ Remove the DIRECTORY(ies), if they are empty.") | |||
| 517 | :usage "[OPTION]... SOURCE DEST | 517 | :usage "[OPTION]... SOURCE DEST |
| 518 | or: mv [OPTION]... SOURCE... DIRECTORY | 518 | or: mv [OPTION]... SOURCE... DIRECTORY |
| 519 | Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. | 519 | Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. |
| 520 | \[OPTION] DIRECTORY...") | 520 | [OPTION] DIRECTORY...") |
| 521 | (let ((no-dereference t)) | 521 | (let ((no-dereference t)) |
| 522 | (eshell-mvcpln-template "mv" "moving" 'rename-file | 522 | (eshell-mvcpln-template "mv" "moving" 'rename-file |
| 523 | eshell-mv-interactive-query | 523 | eshell-mv-interactive-query |
diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index 22ccf4e91f9..3df820d5956 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el | |||
| @@ -627,10 +627,11 @@ newline." | |||
| 627 | (let ((proc-running-p (and (eshell-interactive-process) | 627 | (let ((proc-running-p (and (eshell-interactive-process) |
| 628 | (not queue-p))) | 628 | (not queue-p))) |
| 629 | (inhibit-point-motion-hooks t) | 629 | (inhibit-point-motion-hooks t) |
| 630 | after-change-functions) | 630 | (inhibit-modification-hooks t)) |
| 631 | (unless (and proc-running-p | 631 | (unless (and proc-running-p |
| 632 | (not (eq (process-status | 632 | (not (eq (process-status |
| 633 | (eshell-interactive-process)) 'run))) | 633 | (eshell-interactive-process)) |
| 634 | 'run))) | ||
| 634 | (if (or proc-running-p | 635 | (if (or proc-running-p |
| 635 | (>= (point) eshell-last-output-end)) | 636 | (>= (point) eshell-last-output-end)) |
| 636 | (goto-char (point-max)) | 637 | (goto-char (point-max)) |
| @@ -697,7 +698,7 @@ This is done after all necessary filtering has been done." | |||
| 697 | (let ((oprocbuf (if process (process-buffer process) | 698 | (let ((oprocbuf (if process (process-buffer process) |
| 698 | (current-buffer))) | 699 | (current-buffer))) |
| 699 | (inhibit-point-motion-hooks t) | 700 | (inhibit-point-motion-hooks t) |
| 700 | after-change-functions) | 701 | (inhibit-modification-hooks t)) |
| 701 | (let ((functions eshell-preoutput-filter-functions)) | 702 | (let ((functions eshell-preoutput-filter-functions)) |
| 702 | (while (and functions string) | 703 | (while (and functions string) |
| 703 | (setq string (funcall (car functions) string)) | 704 | (setq string (funcall (car functions) string)) |
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el index 2565842706e..f645702ac2b 100644 --- a/lisp/eshell/esh-util.el +++ b/lisp/eshell/esh-util.el | |||
| @@ -228,7 +228,7 @@ If N or M is nil, it means the end of the list." | |||
| 228 | 228 | ||
| 229 | (defvar eshell-path-env (getenv "PATH") | 229 | (defvar eshell-path-env (getenv "PATH") |
| 230 | "Content of $PATH. | 230 | "Content of $PATH. |
| 231 | It might be different from \(getenv \"PATH\"\), when | 231 | It might be different from \(getenv \"PATH\"), when |
| 232 | `default-directory' points to a remote host.") | 232 | `default-directory' points to a remote host.") |
| 233 | (make-variable-buffer-local 'eshell-path-env) | 233 | (make-variable-buffer-local 'eshell-path-env) |
| 234 | 234 | ||
diff --git a/lisp/expand.el b/lisp/expand.el index 4459c3ae960..97c8a259459 100644 --- a/lisp/expand.el +++ b/lisp/expand.el | |||
| @@ -213,7 +213,7 @@ | |||
| 213 | "for" ; foreach | 213 | "for" ; foreach |
| 214 | (concat | 214 | (concat |
| 215 | "for ( )\n" | 215 | "for ( )\n" |
| 216 | "{\n\n\}" | 216 | "{\n\n}" |
| 217 | ) | 217 | ) |
| 218 | (list 7 12)) | 218 | (list 7 12)) |
| 219 | 219 | ||
| @@ -221,7 +221,7 @@ | |||
| 221 | "whi" ; foreach | 221 | "whi" ; foreach |
| 222 | (concat | 222 | (concat |
| 223 | "while ( )\n" | 223 | "while ( )\n" |
| 224 | "{\n\n\}" | 224 | "{\n\n}" |
| 225 | ) | 225 | ) |
| 226 | (list 9 15)) | 226 | (list 9 15)) |
| 227 | 227 | ||
| @@ -233,7 +233,7 @@ | |||
| 233 | "iff" | 233 | "iff" |
| 234 | (concat | 234 | (concat |
| 235 | "if ( )\n" | 235 | "if ( )\n" |
| 236 | "{\n\n\}" | 236 | "{\n\n}" |
| 237 | ) | 237 | ) |
| 238 | (list 6 12)) | 238 | (list 6 12)) |
| 239 | 239 | ||
diff --git a/lisp/faces.el b/lisp/faces.el index 5485d80c926..4e7f1a42bff 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -433,7 +433,7 @@ completely specified)." | |||
| 433 | (defun face-attribute-merged-with (attribute value faces &optional frame) | 433 | (defun face-attribute-merged-with (attribute value faces &optional frame) |
| 434 | "Merges ATTRIBUTE, initially VALUE, with faces from FACES until absolute. | 434 | "Merges ATTRIBUTE, initially VALUE, with faces from FACES until absolute. |
| 435 | FACES may be either a single face or a list of faces. | 435 | FACES may be either a single face or a list of faces. |
| 436 | \[This is an internal function.]" | 436 | [This is an internal function.]" |
| 437 | (cond ((not (face-attribute-relative-p attribute value)) | 437 | (cond ((not (face-attribute-relative-p attribute value)) |
| 438 | value) | 438 | value) |
| 439 | ((null faces) | 439 | ((null faces) |
| @@ -2691,10 +2691,12 @@ It is used for characters of no fonts too." | |||
| 2691 | :background "turquoise") ; looks OK on tty (becomes cyan) | 2691 | :background "turquoise") ; looks OK on tty (becomes cyan) |
| 2692 | (((class color) (background dark)) | 2692 | (((class color) (background dark)) |
| 2693 | :background "steelblue3") ; looks OK on tty (becomes blue) | 2693 | :background "steelblue3") ; looks OK on tty (becomes blue) |
| 2694 | (((background dark)) | 2694 | (((background dark) (min-colors 4)) |
| 2695 | :background "grey50") | 2695 | :background "grey50") |
| 2696 | (((background light) (min-colors 4)) | ||
| 2697 | :background "gray") | ||
| 2696 | (t | 2698 | (t |
| 2697 | :background "gray")) | 2699 | :inherit underline)) |
| 2698 | "Face used for a matching paren." | 2700 | "Face used for a matching paren." |
| 2699 | :group 'paren-showing-faces) | 2701 | :group 'paren-showing-faces) |
| 2700 | 2702 | ||
diff --git a/lisp/filenotify.el b/lisp/filenotify.el index 5822cf0cc7e..a07f99adcbf 100644 --- a/lisp/filenotify.el +++ b/lisp/filenotify.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; filenotify.el --- watch files for changes on disk | 1 | ;;; filenotify.el --- watch files for changes on disk -*- lexical-binding:t -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2013-2015 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2013-2015 Free Software Foundation, Inc. |
| 4 | 4 | ||
| @@ -43,7 +43,7 @@ A key in this hash table is the descriptor as returned from | |||
| 43 | `gfilenotify', `inotify', `w32notify' or a file name handler. | 43 | `gfilenotify', `inotify', `w32notify' or a file name handler. |
| 44 | The value in the hash table is a list | 44 | The value in the hash table is a list |
| 45 | 45 | ||
| 46 | \(DIR (FILE . CALLBACK) (FILE . CALLBACK) ...) | 46 | (DIR (FILE . CALLBACK) (FILE . CALLBACK) ...) |
| 47 | 47 | ||
| 48 | Several values for a given DIR happen only for `inotify', when | 48 | Several values for a given DIR happen only for `inotify', when |
| 49 | different files from the same directory are watched.") | 49 | different files from the same directory are watched.") |
| @@ -54,7 +54,7 @@ different files from the same directory are watched.") | |||
| 54 | "Handle file system monitoring event. | 54 | "Handle file system monitoring event. |
| 55 | If EVENT is a filewatch event, call its callback. It has the format | 55 | If EVENT is a filewatch event, call its callback. It has the format |
| 56 | 56 | ||
| 57 | \(file-notify (DESCRIPTOR ACTIONS FILE [FILE1-OR-COOKIE]) CALLBACK) | 57 | (file-notify (DESCRIPTOR ACTIONS FILE [FILE1-OR-COOKIE]) CALLBACK) |
| 58 | 58 | ||
| 59 | Otherwise, signal a `file-notify-error'." | 59 | Otherwise, signal a `file-notify-error'." |
| 60 | (interactive "e") | 60 | (interactive "e") |
| @@ -161,7 +161,7 @@ EVENT is the cadr of the event in `file-notify-handle-event' | |||
| 161 | ((eq action 'attrib) 'attribute-changed) | 161 | ((eq action 'attrib) 'attribute-changed) |
| 162 | ((memq action '(create added)) 'created) | 162 | ((memq action '(create added)) 'created) |
| 163 | ((memq action '(modify modified)) 'changed) | 163 | ((memq action '(modify modified)) 'changed) |
| 164 | ((memq action '(delete 'delete-self move-self removed)) 'deleted) | 164 | ((memq action '(delete delete-self move-self removed)) 'deleted) |
| 165 | ;; Make the event pending. | 165 | ;; Make the event pending. |
| 166 | ((memq action '(moved-from renamed-from)) | 166 | ((memq action '(moved-from renamed-from)) |
| 167 | (setq file-notify--pending-event | 167 | (setq file-notify--pending-event |
| @@ -177,9 +177,9 @@ EVENT is the cadr of the event in `file-notify-handle-event' | |||
| 177 | (car file-notify--pending-event))) | 177 | (car file-notify--pending-event))) |
| 178 | ;; If the source is handled by another watch, we | 178 | ;; If the source is handled by another watch, we |
| 179 | ;; must fire the rename event there as well. | 179 | ;; must fire the rename event there as well. |
| 180 | (when (not (eq (file-notify--descriptor desc) | 180 | (when (not (equal (file-notify--descriptor desc) |
| 181 | (file-notify--descriptor | 181 | (file-notify--descriptor |
| 182 | (caar file-notify--pending-event)))) | 182 | (caar file-notify--pending-event)))) |
| 183 | (setq pending-event | 183 | (setq pending-event |
| 184 | `((,(caar file-notify--pending-event) | 184 | `((,(caar file-notify--pending-event) |
| 185 | renamed ,file ,file1) | 185 | renamed ,file ,file1) |
| @@ -291,7 +291,7 @@ FILE is the name of the file whose event is being reported." | |||
| 291 | 291 | ||
| 292 | ;; Determine respective flags. | 292 | ;; Determine respective flags. |
| 293 | (if (eq file-notify--library 'gfilenotify) | 293 | (if (eq file-notify--library 'gfilenotify) |
| 294 | (setq l-flags '(watch-mounts send-moved)) | 294 | (setq l-flags (append '(watch-mounts send-moved) flags)) |
| 295 | (when (memq 'change flags) | 295 | (when (memq 'change flags) |
| 296 | (setq | 296 | (setq |
| 297 | l-flags | 297 | l-flags |
| @@ -300,11 +300,10 @@ FILE is the name of the file whose event is being reported." | |||
| 300 | ((eq file-notify--library 'w32notify) | 300 | ((eq file-notify--library 'w32notify) |
| 301 | '(file-name directory-name size last-write-time))))) | 301 | '(file-name directory-name size last-write-time))))) |
| 302 | (when (memq 'attribute-change flags) | 302 | (when (memq 'attribute-change flags) |
| 303 | (add-to-list | 303 | (push (cond |
| 304 | 'l-flags | 304 | ((eq file-notify--library 'inotify) 'attrib) |
| 305 | (cond | 305 | ((eq file-notify--library 'w32notify) 'attributes)) |
| 306 | ((eq file-notify--library 'inotify) 'attrib) | 306 | l-flags))) |
| 307 | ((eq file-notify--library 'w32notify) 'attributes))))) | ||
| 308 | 307 | ||
| 309 | ;; Call low-level function. | 308 | ;; Call low-level function. |
| 310 | (setq desc (funcall func dir l-flags 'file-notify-callback))) | 309 | (setq desc (funcall func dir l-flags 'file-notify-callback))) |
| @@ -328,35 +327,64 @@ DESCRIPTOR should be an object returned by `file-notify-add-watch'." | |||
| 328 | (let* ((desc (if (consp descriptor) (car descriptor) descriptor)) | 327 | (let* ((desc (if (consp descriptor) (car descriptor) descriptor)) |
| 329 | (file (if (consp descriptor) (cdr descriptor))) | 328 | (file (if (consp descriptor) (cdr descriptor))) |
| 330 | (dir (car (gethash desc file-notify-descriptors))) | 329 | (dir (car (gethash desc file-notify-descriptors))) |
| 331 | handler registered) | 330 | (handler (and (stringp dir) |
| 331 | (find-file-name-handler dir 'file-notify-rm-watch))) | ||
| 332 | (registered (gethash desc file-notify-descriptors))) | ||
| 332 | 333 | ||
| 333 | (when (stringp dir) | 334 | (when (stringp dir) |
| 334 | (setq handler (find-file-name-handler dir 'file-notify-rm-watch)) | 335 | ;; Call low-level function. |
| 336 | (when (null (cdr registered)) | ||
| 337 | (condition-case nil | ||
| 338 | (if handler | ||
| 339 | ;; A file name handler could exist even if there is no local | ||
| 340 | ;; file notification support. | ||
| 341 | (funcall handler 'file-notify-rm-watch desc) | ||
| 342 | |||
| 343 | (funcall | ||
| 344 | (cond | ||
| 345 | ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch) | ||
| 346 | ((eq file-notify--library 'inotify) 'inotify-rm-watch) | ||
| 347 | ((eq file-notify--library 'w32notify) 'w32notify-rm-watch)) | ||
| 348 | desc)) | ||
| 349 | (file-notify-error nil))) | ||
| 335 | 350 | ||
| 336 | ;; Modify `file-notify-descriptors'. | 351 | ;; Modify `file-notify-descriptors'. |
| 337 | (if (not file) | 352 | (if (not file) |
| 338 | (remhash desc file-notify-descriptors) | 353 | (remhash desc file-notify-descriptors) |
| 339 | 354 | ||
| 340 | (setq registered (gethash desc file-notify-descriptors)) | ||
| 341 | (setcdr registered | 355 | (setcdr registered |
| 342 | (delete (assoc file (cdr registered)) (cdr registered))) | 356 | (delete (assoc file (cdr registered)) (cdr registered))) |
| 343 | (if (null (cdr registered)) | 357 | (if (null (cdr registered)) |
| 344 | (remhash desc file-notify-descriptors) | 358 | (remhash desc file-notify-descriptors) |
| 345 | (puthash desc registered file-notify-descriptors))) | 359 | (puthash desc registered file-notify-descriptors)))))) |
| 346 | 360 | ||
| 347 | ;; Call low-level function. | 361 | (defun file-notify-valid-p (descriptor) |
| 348 | (when (null (cdr registered)) | 362 | "Check a watch specified by its DESCRIPTOR. |
| 349 | (if handler | 363 | DESCRIPTOR should be an object returned by `file-notify-add-watch'." |
| 350 | ;; A file name handler could exist even if there is no local | 364 | (let* ((desc (if (consp descriptor) (car descriptor) descriptor)) |
| 351 | ;; file notification support. | 365 | (file (if (consp descriptor) (cdr descriptor))) |
| 352 | (funcall handler 'file-notify-rm-watch desc) | 366 | (registered (gethash desc file-notify-descriptors)) |
| 367 | (dir (car registered)) | ||
| 368 | handler) | ||
| 353 | 369 | ||
| 354 | (funcall | 370 | (when (stringp dir) |
| 355 | (cond | 371 | (setq handler (find-file-name-handler dir 'file-notify-valid-p)) |
| 356 | ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch) | 372 | |
| 357 | ((eq file-notify--library 'inotify) 'inotify-rm-watch) | 373 | (and (or ;; It is a directory. |
| 358 | ((eq file-notify--library 'w32notify) 'w32notify-rm-watch)) | 374 | (not file) |
| 359 | desc)))))) | 375 | ;; The file is registered. |
| 376 | (assoc file (cdr registered))) | ||
| 377 | (if handler | ||
| 378 | ;; A file name handler could exist even if there is no | ||
| 379 | ;; local file notification support. | ||
| 380 | (funcall handler 'file-notify-valid-p descriptor) | ||
| 381 | (funcall | ||
| 382 | (cond | ||
| 383 | ((eq file-notify--library 'gfilenotify) 'gfile-valid-p) | ||
| 384 | ((eq file-notify--library 'inotify) 'inotify-valid-p) | ||
| 385 | ((eq file-notify--library 'w32notify) 'w32notify-valid-p)) | ||
| 386 | desc)) | ||
| 387 | t)))) | ||
| 360 | 388 | ||
| 361 | ;; The end: | 389 | ;; The end: |
| 362 | (provide 'filenotify) | 390 | (provide 'filenotify) |
diff --git a/lisp/files.el b/lisp/files.el index c309f86f85b..8565aa83266 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -1057,7 +1057,7 @@ Tip: You can use this expansion of remote identifier components | |||
| 1057 | to derive a new remote file name from an existing one. For | 1057 | to derive a new remote file name from an existing one. For |
| 1058 | example, if FILE is \"/sudo::/path/to/file\" then | 1058 | example, if FILE is \"/sudo::/path/to/file\" then |
| 1059 | 1059 | ||
| 1060 | \(concat \(file-remote-p FILE) \"/bin/sh\") | 1060 | (concat (file-remote-p FILE) \"/bin/sh\") |
| 1061 | 1061 | ||
| 1062 | returns a remote file name for file \"/bin/sh\" that has the | 1062 | returns a remote file name for file \"/bin/sh\" that has the |
| 1063 | same remote identifier as FILE but expanded; a name such as | 1063 | same remote identifier as FILE but expanded; a name such as |
| @@ -3863,7 +3863,7 @@ directories." | |||
| 3863 | However, the mode will not be changed if | 3863 | However, the mode will not be changed if |
| 3864 | \(1) a local variables list or the `-*-' line specifies a major mode, or | 3864 | \(1) a local variables list or the `-*-' line specifies a major mode, or |
| 3865 | \(2) the current major mode is a \"special\" mode, | 3865 | \(2) the current major mode is a \"special\" mode, |
| 3866 | \ not suitable for ordinary files, or | 3866 | not suitable for ordinary files, or |
| 3867 | \(3) the new file name does not particularly specify any mode." | 3867 | \(3) the new file name does not particularly specify any mode." |
| 3868 | :type 'boolean | 3868 | :type 'boolean |
| 3869 | :group 'editing-basics) | 3869 | :group 'editing-basics) |
diff --git a/lisp/filesets.el b/lisp/filesets.el index 464c7c3eec5..ab332bbeff0 100644 --- a/lisp/filesets.el +++ b/lisp/filesets.el | |||
| @@ -415,10 +415,10 @@ at the last position. | |||
| 415 | Possible uses: If you don't want to save `filesets-data' in your normal | 415 | Possible uses: If you don't want to save `filesets-data' in your normal |
| 416 | configuration file, you can add a something like this | 416 | configuration file, you can add a something like this |
| 417 | 417 | ||
| 418 | \(lambda () | 418 | (lambda () |
| 419 | \(insert (format \"(setq-default filesets-data \\='%S)\" | 419 | (insert (format \"(setq-default filesets-data \\='%S)\" |
| 420 | filesets-data)) | 420 | filesets-data)) |
| 421 | \(newline 2)) | 421 | (newline 2)) |
| 422 | 422 | ||
| 423 | to this hook. | 423 | to this hook. |
| 424 | 424 | ||
| @@ -550,14 +550,14 @@ will be recursively added to the menu. `filesets-tree-max-level' tells up | |||
| 550 | to which level the directory structure should be scanned/listed, | 550 | to which level the directory structure should be scanned/listed, |
| 551 | i.e. how deep the menu should be. Try something like | 551 | i.e. how deep the menu should be. Try something like |
| 552 | 552 | ||
| 553 | \(\"HOME -- only one level\" | 553 | (\"HOME -- only one level\" |
| 554 | \(:tree \"~\" \"^[^.].*[^~]$\") | 554 | (:tree \"~\" \"^[^.].*[^~]$\") |
| 555 | \(:tree-max-level 1) | 555 | (:tree-max-level 1) |
| 556 | \(:filter-dirs-flag t)) | 556 | (:filter-dirs-flag t)) |
| 557 | \(\"HOME -- up to 3 levels\" | 557 | (\"HOME -- up to 3 levels\" |
| 558 | \(:tree \"~\" \"^[^.].*[^~]$\") | 558 | (:tree \"~\" \"^[^.].*[^~]$\") |
| 559 | \(:tree-max-level 3) | 559 | (:tree-max-level 3) |
| 560 | \(:filter-dirs-flag t)) | 560 | (:filter-dirs-flag t)) |
| 561 | 561 | ||
| 562 | and it should become clear what this option is about. In any case, | 562 | and it should become clear what this option is about. In any case, |
| 563 | including directory trees to the menu can take a lot of memory." | 563 | including directory trees to the menu can take a lot of memory." |
| @@ -679,20 +679,20 @@ variables my-ps-viewer, my-pdf-viewer, my-dvi-viewer, my-pic-viewer. | |||
| 679 | In order to view pdf or rtf files in an Emacs buffer, you could use these: | 679 | In order to view pdf or rtf files in an Emacs buffer, you could use these: |
| 680 | 680 | ||
| 681 | 681 | ||
| 682 | \(\"^.+\\\\.pdf\\\\\\='\" \"pdftotext\" | 682 | (\"^.+\\\\.pdf\\\\\\='\" \"pdftotext\" |
| 683 | \((:capture-output t) | 683 | ((:capture-output t) |
| 684 | \(:args (\"%S - | fmt -w \" window-width)) | 684 | (:args (\"%S - | fmt -w \" window-width)) |
| 685 | \(:ignore-on-read-text t) | 685 | (:ignore-on-read-text t) |
| 686 | \(:constraintp (lambda () | 686 | (:constraintp (lambda () |
| 687 | \(and \(filesets-which-command-p \"pdftotext\") | 687 | (and (filesets-which-command-p \"pdftotext\") |
| 688 | \(filesets-which-command-p \"fmt\")))))) | 688 | (filesets-which-command-p \"fmt\")))))) |
| 689 | \(\"^.+\\\\.rtf\\\\\\='\" \"rtf2htm\" | 689 | (\"^.+\\\\.rtf\\\\\\='\" \"rtf2htm\" |
| 690 | \((:capture-output t) | 690 | ((:capture-output t) |
| 691 | \(:args (\"%S 2> /dev/null | w3m -dump -T text/html\")) | 691 | (:args (\"%S 2> /dev/null | w3m -dump -T text/html\")) |
| 692 | \(:ignore-on-read-text t) | 692 | (:ignore-on-read-text t) |
| 693 | \(:constraintp (lambda () | 693 | (:constraintp (lambda () |
| 694 | \(and (filesets-which-command-p \"rtf2htm\") | 694 | (and (filesets-which-command-p \"rtf2htm\") |
| 695 | \(filesets-which-command-p \"w3m\"))))))" | 695 | (filesets-which-command-p \"w3m\"))))))" |
| 696 | :set (function filesets-set-default) | 696 | :set (function filesets-set-default) |
| 697 | :type '(repeat :tag "Viewer" | 697 | :type '(repeat :tag "Viewer" |
| 698 | (list :tag "Definition" | 698 | (list :tag "Definition" |
| @@ -756,7 +756,7 @@ In order to view pdf or rtf files in an Emacs buffer, you could use these: | |||
| 756 | (defcustom filesets-ingroup-patterns | 756 | (defcustom filesets-ingroup-patterns |
| 757 | '(("^.+\\.tex$" t | 757 | '(("^.+\\.tex$" t |
| 758 | (((:name "Package") | 758 | (((:name "Package") |
| 759 | (:pattern "\\\\usepackage\\W*\\(\\[[^\]]*\\]\\W*\\)?{\\W*\\(.+\\)\\W*}") | 759 | (:pattern "\\\\usepackage\\W*\\(\\[[^]]*\\]\\W*\\)?{\\W*\\(.+\\)\\W*}") |
| 760 | (:match-number 2) | 760 | (:match-number 2) |
| 761 | (:stub-flag t) | 761 | (:stub-flag t) |
| 762 | (:get-file-name (lambda (master file) | 762 | (:get-file-name (lambda (master file) |
| @@ -951,18 +951,18 @@ variable will take effect after rebuilding the menu. | |||
| 951 | Caveat: Fileset names have to be unique. | 951 | Caveat: Fileset names have to be unique. |
| 952 | 952 | ||
| 953 | Example definition: | 953 | Example definition: |
| 954 | \\='\(\(\"My Wiki\" | 954 | \\='((\"My Wiki\" |
| 955 | \(:ingroup \"~/Etc/My-Wiki/WikiContents\")) | 955 | (:ingroup \"~/Etc/My-Wiki/WikiContents\")) |
| 956 | \(\"My Homepage\" | 956 | (\"My Homepage\" |
| 957 | \(:pattern \"~/public_html/\" \"^.+\\\\.html$\") | 957 | (:pattern \"~/public_html/\" \"^.+\\\\.html$\") |
| 958 | \(:open filesets-find-file)) | 958 | (:open filesets-find-file)) |
| 959 | \(\"User Configuration\" | 959 | (\"User Configuration\" |
| 960 | \(:files \"~/.xinitrc\" | 960 | (:files \"~/.xinitrc\" |
| 961 | \"~/.bashrc\" | 961 | \"~/.bashrc\" |
| 962 | \"~/.bash_profile\")) | 962 | \"~/.bash_profile\")) |
| 963 | \(\"HOME\" | 963 | (\"HOME\" |
| 964 | \(:tree \"~\" \"^[^.].*[^~]$\") | 964 | (:tree \"~\" \"^[^.].*[^~]$\") |
| 965 | \(:filter-dirs-flag t))) | 965 | (:filter-dirs-flag t))) |
| 966 | 966 | ||
| 967 | `filesets-data' is a list of (NAME-AS-STRING . DEFINITION), DEFINITION | 967 | `filesets-data' is a list of (NAME-AS-STRING . DEFINITION), DEFINITION |
| 968 | being an association list with the fields: | 968 | being an association list with the fields: |
| @@ -2450,13 +2450,13 @@ and edit your startup file as shown below: | |||
| 2450 | 1. `filesets-data': Edit all :pattern filesets in your startup file and | 2450 | 1. `filesets-data': Edit all :pattern filesets in your startup file and |
| 2451 | transform all entries as shown in this example: | 2451 | transform all entries as shown in this example: |
| 2452 | 2452 | ||
| 2453 | \(\"Test\" (:pattern \"~/dir/^pattern$\")) | 2453 | (\"Test\" (:pattern \"~/dir/^pattern$\")) |
| 2454 | --> \(\"Test\" (:pattern \"~/dir/\" \"^pattern$\")) | 2454 | --> (\"Test\" (:pattern \"~/dir/\" \"^pattern$\")) |
| 2455 | 2455 | ||
| 2456 | 2. `filesets-data': Change all occurrences of \":document\" to \":ingroup\": | 2456 | 2. `filesets-data': Change all occurrences of \":document\" to \":ingroup\": |
| 2457 | 2457 | ||
| 2458 | \(\(\"Test\" \(:document \"~/dir/file\")) | 2458 | ((\"Test\" (:document \"~/dir/file\")) |
| 2459 | --> \(\(\"Test\" \(:ingroup \"~/dir/file\")) | 2459 | --> ((\"Test\" (:ingroup \"~/dir/file\")) |
| 2460 | 2460 | ||
| 2461 | 3. `filesets-subdocument-patterns': If you already modified the variable | 2461 | 3. `filesets-subdocument-patterns': If you already modified the variable |
| 2462 | previously called `filesets-subdocument-patterns', change its name to | 2462 | previously called `filesets-subdocument-patterns', change its name to |
diff --git a/lisp/find-cmd.el b/lisp/find-cmd.el index d78a0b35fab..71c7a9b9c77 100644 --- a/lisp/find-cmd.el +++ b/lisp/find-cmd.el | |||
| @@ -140,10 +140,10 @@ the string will be quoted).") | |||
| 140 | "Initiate the building of a find command. | 140 | "Initiate the building of a find command. |
| 141 | For example: | 141 | For example: |
| 142 | 142 | ||
| 143 | \(find-cmd \\='\(prune \(name \".svn\" \".git\" \".CVS\"\)\) | 143 | \(find-cmd \\='(prune (name \".svn\" \".git\" \".CVS\")) |
| 144 | \\='\(and \(or \(name \"*.pl\" \"*.pm\" \"*.t\"\) | 144 | \\='(and (or (name \"*.pl\" \"*.pm\" \"*.t\") |
| 145 | \(mtime \"+1\"\)\) | 145 | (mtime \"+1\")) |
| 146 | \(fstype \"nfs\" \"ufs\"\)\)\)\) | 146 | (fstype \"nfs\" \"ufs\")))) |
| 147 | 147 | ||
| 148 | `default-directory' is used as the initial search path. The | 148 | `default-directory' is used as the initial search path. The |
| 149 | result is a string that should be ready for the command line." | 149 | result is a string that should be ready for the command line." |
| @@ -159,9 +159,9 @@ result is a string that should be ready for the command line." | |||
| 159 | 159 | ||
| 160 | (defun find-and (form) | 160 | (defun find-and (form) |
| 161 | "And FORMs together, so: | 161 | "And FORMs together, so: |
| 162 | \(and \(mtime \"+1\"\) \(name \"something\"\)\) | 162 | (and (mtime \"+1\") (name \"something\")) |
| 163 | will produce: | 163 | will produce: |
| 164 | find . \\\( -mtime +1 -and -name something \\\)" | 164 | find . \\( -mtime +1 -and -name something \\)" |
| 165 | (if (< (length form) 2) | 165 | (if (< (length form) 2) |
| 166 | (find-to-string (car form)) | 166 | (find-to-string (car form)) |
| 167 | (concat "\\( " | 167 | (concat "\\( " |
| @@ -170,9 +170,9 @@ will produce: | |||
| 170 | 170 | ||
| 171 | (defun find-or (form) | 171 | (defun find-or (form) |
| 172 | "Or FORMs together, so: | 172 | "Or FORMs together, so: |
| 173 | \(or \(mtime \"+1\"\) \(name \"something\"\)\) | 173 | (or (mtime \"+1\") (name \"something\")) |
| 174 | will produce: | 174 | will produce: |
| 175 | find . \\\( -mtime +1 -or -name something \\\)" | 175 | find . \\( -mtime +1 -or -name something \\)" |
| 176 | (if (< (length form) 2) | 176 | (if (< (length form) 2) |
| 177 | (find-to-string (car form)) | 177 | (find-to-string (car form)) |
| 178 | (concat "\\( " | 178 | (concat "\\( " |
| @@ -181,21 +181,21 @@ will produce: | |||
| 181 | 181 | ||
| 182 | (defun find-not (form) | 182 | (defun find-not (form) |
| 183 | "Or FORMs together and prefix with a -not, so: | 183 | "Or FORMs together and prefix with a -not, so: |
| 184 | \(not \(mtime \"+1\"\) \(name \"something\"\)\) | 184 | (not (mtime \"+1\") (name \"something\")) |
| 185 | will produce: | 185 | will produce: |
| 186 | -not \\\( -mtime +1 -or -name something \\\) | 186 | -not \\( -mtime +1 -or -name something \\) |
| 187 | If you wanted the FORMs -and(ed) together instead then this would | 187 | If you wanted the FORMs -and(ed) together instead then this would |
| 188 | suffice: | 188 | suffice: |
| 189 | \(not \(and \(mtime \"+1\"\) \(name \"something\"\)\)\)" | 189 | (not (and (mtime \"+1\") (name \"something\")))" |
| 190 | (concat "-not " (find-or (mapcar #'find-to-string form)))) | 190 | (concat "-not " (find-or (mapcar #'find-to-string form)))) |
| 191 | 191 | ||
| 192 | (defun find-prune (form) | 192 | (defun find-prune (form) |
| 193 | "-or together FORMs postfix `-prune' and then -or that with a | 193 | "-or together FORMs postfix `-prune' and then -or that with a |
| 194 | -true, so: | 194 | -true, so: |
| 195 | \(\(prune \(name \".svn\" \".git\"\)\) \(name \"*.pm\"\)\) | 195 | ((prune (name \".svn\" \".git\")) (name \"*.pm\")) |
| 196 | will produce (unwrapped): | 196 | will produce (unwrapped): |
| 197 | \\\( \\\( \\\( -name .svn -or -name .git \\\) / | 197 | \\( \\( \\( -name .svn -or -name .git \\) / |
| 198 | -prune -or -true \\\) -and -name *.pm \\\)" | 198 | -prune -or -true \\) -and -name *.pm \\)" |
| 199 | (find-or | 199 | (find-or |
| 200 | (list | 200 | (list |
| 201 | (concat (find-or (mapcar #'find-to-string form)) (find-generic "prune")) | 201 | (concat (find-or (mapcar #'find-to-string form)) (find-generic "prune")) |
diff --git a/lisp/find-dired.el b/lisp/find-dired.el index b53c1da2a80..c4ef0fef229 100644 --- a/lisp/find-dired.el +++ b/lisp/find-dired.el | |||
| @@ -72,10 +72,10 @@ a file listing in the desired format. LS-SWITCHES is a set of | |||
| 72 | 72 | ||
| 73 | The two options must be set to compatible values. | 73 | The two options must be set to compatible values. |
| 74 | For example, to use human-readable file sizes with GNU ls: | 74 | For example, to use human-readable file sizes with GNU ls: |
| 75 | \(\"-exec ls -ldh {} +\" . \"-ldh\") | 75 | (\"-exec ls -ldh {} +\" . \"-ldh\") |
| 76 | 76 | ||
| 77 | To use GNU find's inbuilt \"-ls\" option to list files: | 77 | To use GNU find's inbuilt \"-ls\" option to list files: |
| 78 | \(\"-ls\" . \"-dilsb\") | 78 | (\"-ls\" . \"-dilsb\") |
| 79 | since GNU find's output has the same format as using GNU ls with | 79 | since GNU find's output has the same format as using GNU ls with |
| 80 | the options \"-dilsb\"." | 80 | the options \"-dilsb\"." |
| 81 | :version "24.1" ; add tests for -ls and -exec + support | 81 | :version "24.1" ; add tests for -ls and -exec + support |
diff --git a/lisp/find-file.el b/lisp/find-file.el index 97e95d206d8..5c2c5064453 100644 --- a/lisp/find-file.el +++ b/lisp/find-file.el | |||
| @@ -183,7 +183,7 @@ To override this, give an argument to `ff-find-other-file'." | |||
| 183 | ;;;###autoload | 183 | ;;;###autoload |
| 184 | (defcustom ff-special-constructs | 184 | (defcustom ff-special-constructs |
| 185 | ;; C/C++ include, for NeXTstep too | 185 | ;; C/C++ include, for NeXTstep too |
| 186 | `((,(purecopy "^\#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") . | 186 | `((,(purecopy "^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") . |
| 187 | (lambda () | 187 | (lambda () |
| 188 | (buffer-substring (match-beginning 2) (match-end 2))))) | 188 | (buffer-substring (match-beginning 2) (match-end 2))))) |
| 189 | ;; We include `ff-treat-as-special' documentation here so that autoload | 189 | ;; We include `ff-treat-as-special' documentation here so that autoload |
| @@ -678,7 +678,7 @@ name of the first file found." | |||
| 678 | (setq suffixes suffix-list) | 678 | (setq suffixes suffix-list) |
| 679 | 679 | ||
| 680 | ;; if dir does not contain '/*', look for the file | 680 | ;; if dir does not contain '/*', look for the file |
| 681 | (if (and dir (not (string-match "\\([^*]*\\)/\\\*\\(/.*\\)*" dir))) | 681 | (if (and dir (not (string-match "\\([^*]*\\)/\\*\\(/.*\\)*" dir))) |
| 682 | (progn | 682 | (progn |
| 683 | 683 | ||
| 684 | ;; suffixes is nil => fname-stub is the file we are looking for | 684 | ;; suffixes is nil => fname-stub is the file we are looking for |
diff --git a/lisp/foldout.el b/lisp/foldout.el index 64c0af451b8..0a401c77ddf 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el | |||
| @@ -250,7 +250,7 @@ An end marker of nil means the fold ends after (point-max).") | |||
| 250 | "Open the subtree under the current heading and narrow to it. | 250 | "Open the subtree under the current heading and narrow to it. |
| 251 | 251 | ||
| 252 | Normally the body and the immediate subheadings are exposed, but | 252 | Normally the body and the immediate subheadings are exposed, but |
| 253 | optional arg EXPOSURE \(interactively with prefix arg\) changes this:- | 253 | optional arg EXPOSURE \(interactively with prefix arg) changes this:- |
| 254 | 254 | ||
| 255 | EXPOSURE > 0 exposes n levels of subheadings (c.f. show-children) | 255 | EXPOSURE > 0 exposes n levels of subheadings (c.f. show-children) |
| 256 | EXPOSURE < 0 exposes only the body | 256 | EXPOSURE < 0 exposes only the body |
diff --git a/lisp/follow.el b/lisp/follow.el index d62d5577dab..938c59e8506 100644 --- a/lisp/follow.el +++ b/lisp/follow.el | |||
| @@ -347,6 +347,9 @@ Used by `follow-window-size-change'.") | |||
| 347 | (defvar follow-windows-start-end-cache nil | 347 | (defvar follow-windows-start-end-cache nil |
| 348 | "Cache used by `follow-window-start-end'.") | 348 | "Cache used by `follow-window-start-end'.") |
| 349 | 349 | ||
| 350 | (defvar follow-fixed-window nil | ||
| 351 | "If non-nil, the current window must not be scrolled. | ||
| 352 | This is typically set by explicit scrolling commands.") | ||
| 350 | ;;; Debug messages | 353 | ;;; Debug messages |
| 351 | 354 | ||
| 352 | ;; This inline function must be as small as possible! | 355 | ;; This inline function must be as small as possible! |
| @@ -439,6 +442,54 @@ Keys specific to Follow mode: | |||
| 439 | 442 | ||
| 440 | ;;; Scroll | 443 | ;;; Scroll |
| 441 | 444 | ||
| 445 | (defun follow-get-scrolled-point (dest windows) | ||
| 446 | "Calculate the correct value for point after a scrolling operation. | ||
| 447 | |||
| 448 | DEST is our default position, typically where point was before the scroll. | ||
| 449 | If `scroll-preserve-screen-position' is non-nil and active, DEST will be | ||
| 450 | in the same screen position as before the scroll. WINDOWS is the list of | ||
| 451 | windows in the follow chain. | ||
| 452 | |||
| 453 | This function attempts to duplicate the point placing from | ||
| 454 | `window_scroll_line_based' in the Emacs core source window.c. | ||
| 455 | |||
| 456 | Return the new position." | ||
| 457 | (if (and scroll-preserve-screen-position | ||
| 458 | (get this-command 'scroll-command)) | ||
| 459 | dest | ||
| 460 | (let ((dest-column | ||
| 461 | (save-excursion | ||
| 462 | (goto-char dest) | ||
| 463 | (- (current-column) | ||
| 464 | (progn (vertical-motion 0) (current-column))))) | ||
| 465 | (limit0 | ||
| 466 | (with-selected-window (car windows) | ||
| 467 | (save-excursion | ||
| 468 | (goto-char (window-start)) | ||
| 469 | (vertical-motion 0) | ||
| 470 | (point)))) | ||
| 471 | (limitn | ||
| 472 | (with-selected-window (car (reverse windows)) | ||
| 473 | (save-excursion | ||
| 474 | (goto-char (window-end nil t)) | ||
| 475 | (if (pos-visible-in-window-p) | ||
| 476 | (point) ; i.e. (point-max) | ||
| 477 | (1- (point))))))) | ||
| 478 | (cond | ||
| 479 | ((< dest limit0) | ||
| 480 | (with-selected-window (car windows) | ||
| 481 | (save-excursion | ||
| 482 | (goto-char limit0) | ||
| 483 | (vertical-motion (cons dest-column 0)) | ||
| 484 | (point)))) | ||
| 485 | ((> dest limitn) | ||
| 486 | (with-selected-window (car (reverse windows)) | ||
| 487 | (save-excursion | ||
| 488 | (goto-char limitn) | ||
| 489 | (vertical-motion (cons dest-column 0)) | ||
| 490 | (point)))) | ||
| 491 | (t dest))))) | ||
| 492 | |||
| 442 | ;; `scroll-up' and `-down', but for windows in Follow mode. | 493 | ;; `scroll-up' and `-down', but for windows in Follow mode. |
| 443 | ;; | 494 | ;; |
| 444 | ;; Almost like the real thing, except when the cursor ends up outside | 495 | ;; Almost like the real thing, except when the cursor ends up outside |
| @@ -454,6 +505,7 @@ Keys specific to Follow mode: | |||
| 454 | ;; position... (This would also be corrected if we would have had a | 505 | ;; position... (This would also be corrected if we would have had a |
| 455 | ;; good redisplay abstraction.) | 506 | ;; good redisplay abstraction.) |
| 456 | 507 | ||
| 508 | ;;;###autoload | ||
| 457 | (defun follow-scroll-up (&optional arg) | 509 | (defun follow-scroll-up (&optional arg) |
| 458 | "Scroll text in a Follow mode window chain up. | 510 | "Scroll text in a Follow mode window chain up. |
| 459 | 511 | ||
| @@ -467,22 +519,26 @@ Works like `scroll-up' when not in Follow mode." | |||
| 467 | (interactive "P") | 519 | (interactive "P") |
| 468 | (cond ((not follow-mode) | 520 | (cond ((not follow-mode) |
| 469 | (scroll-up arg)) | 521 | (scroll-up arg)) |
| 470 | (arg | 522 | ((eq arg '-) |
| 471 | (save-excursion (scroll-up arg)) | 523 | (follow-scroll-down)) |
| 472 | (setq follow-internal-force-redisplay t)) | ||
| 473 | (t | 524 | (t |
| 474 | (let* ((windows (follow-all-followers)) | 525 | (let ((opoint (point)) (owin (selected-window))) |
| 475 | (end (window-end (car (reverse windows))))) | 526 | (while |
| 476 | (if (eq end (point-max)) | 527 | ;; If we are too near EOB, try scrolling the previous window. |
| 477 | (signal 'end-of-buffer nil) | 528 | (condition-case nil (progn (scroll-up arg) nil) |
| 478 | (select-window (car windows)) | 529 | (end-of-buffer |
| 479 | ;; `window-end' might return nil. | 530 | (condition-case nil (progn (follow-previous-window) t) |
| 480 | (if end | 531 | (error |
| 481 | (goto-char end)) | 532 | (select-window owin) |
| 482 | (vertical-motion (- next-screen-context-lines)) | 533 | (goto-char opoint) |
| 483 | (set-window-start (car windows) (point))))))) | 534 | (signal 'end-of-buffer nil)))))) |
| 484 | 535 | (unless (and scroll-preserve-screen-position | |
| 536 | (get this-command 'scroll-command)) | ||
| 537 | (goto-char opoint)) | ||
| 538 | (setq follow-fixed-window t))))) | ||
| 539 | (put 'follow-scroll-up 'scroll-command t) | ||
| 485 | 540 | ||
| 541 | ;;;###autoload | ||
| 486 | (defun follow-scroll-down (&optional arg) | 542 | (defun follow-scroll-down (&optional arg) |
| 487 | "Scroll text in a Follow mode window chain down. | 543 | "Scroll text in a Follow mode window chain down. |
| 488 | 544 | ||
| @@ -492,27 +548,20 @@ the top window in the chain will be visible in the bottom window. | |||
| 492 | If called with an argument, scroll ARG lines down. | 548 | If called with an argument, scroll ARG lines down. |
| 493 | Negative ARG means scroll upward. | 549 | Negative ARG means scroll upward. |
| 494 | 550 | ||
| 495 | Works like `scroll-up' when not in Follow mode." | 551 | Works like `scroll-down' when not in Follow mode." |
| 496 | (interactive "P") | 552 | (interactive "P") |
| 497 | (cond ((not follow-mode) | 553 | (cond ((not follow-mode) |
| 498 | (scroll-up arg)) | 554 | (scroll-down arg)) |
| 499 | (arg | 555 | ((eq arg '-) |
| 500 | (save-excursion (scroll-down arg))) | 556 | (follow-scroll-up)) |
| 501 | (t | 557 | (t |
| 502 | (let* ((windows (follow-all-followers)) | 558 | (let ((opoint (point))) |
| 503 | (win (car (reverse windows))) | 559 | (scroll-down arg) |
| 504 | (start (window-start (car windows)))) | 560 | (unless (and scroll-preserve-screen-position |
| 505 | (if (eq start (point-min)) | 561 | (get this-command 'scroll-command)) |
| 506 | (signal 'beginning-of-buffer nil) | 562 | (goto-char opoint)) |
| 507 | (select-window win) | 563 | (setq follow-fixed-window t))))) |
| 508 | (goto-char start) | 564 | (put 'follow-scroll-down 'scroll-command t) |
| 509 | (vertical-motion (- (- (window-height win) | ||
| 510 | (if header-line-format 2 1) | ||
| 511 | next-screen-context-lines))) | ||
| 512 | (set-window-start win (point)) | ||
| 513 | (goto-char start) | ||
| 514 | (vertical-motion (- next-screen-context-lines 1)) | ||
| 515 | (setq follow-internal-force-redisplay t)))))) | ||
| 516 | 565 | ||
| 517 | (declare-function comint-adjust-point "comint" (window)) | 566 | (declare-function comint-adjust-point "comint" (window)) |
| 518 | (defvar comint-scroll-show-maximum-output) | 567 | (defvar comint-scroll-show-maximum-output) |
| @@ -766,15 +815,16 @@ from the selected window." | |||
| 766 | Return (END-POS END-OF-BUFFER). | 815 | Return (END-POS END-OF-BUFFER). |
| 767 | 816 | ||
| 768 | Actually, the position returned is the start of the line after | 817 | Actually, the position returned is the start of the line after |
| 769 | the last fully-visible line in WIN. If WIN is nil, the selected | 818 | the last fully-visible line in WIN. END-OF-BUFFER is t when EOB |
| 770 | window is used." | 819 | is fully-visible in WIN. If WIN is nil, the selected window is |
| 820 | used." | ||
| 771 | (let* ((win (or win (selected-window))) | 821 | (let* ((win (or win (selected-window))) |
| 772 | (edges (window-inside-pixel-edges win)) | 822 | (edges (window-inside-pixel-edges win)) |
| 773 | (ht (- (nth 3 edges) (nth 1 edges))) | 823 | (ht (- (nth 3 edges) (nth 1 edges))) |
| 774 | (last-line-pos (posn-point (posn-at-x-y 0 (1- ht) win)))) | 824 | (last-line-pos (posn-point (posn-at-x-y 0 (1- ht) win)))) |
| 775 | (if (pos-visible-in-window-p last-line-pos win) | 825 | (if (pos-visible-in-window-p last-line-pos win) |
| 776 | (let ((end (window-end win t))) | 826 | (let ((end (window-end win t))) |
| 777 | (list end (= end (point-max)))) | 827 | (list end (pos-visible-in-window-p (point-max) win))) |
| 778 | (list last-line-pos nil)))) | 828 | (list last-line-pos nil)))) |
| 779 | 829 | ||
| 780 | (defun follow-calc-win-start (windows pos win) | 830 | (defun follow-calc-win-start (windows pos win) |
| @@ -1008,7 +1058,7 @@ should be a member of WINDOWS, starts at position START." | |||
| 1008 | (goto-char start) | 1058 | (goto-char start) |
| 1009 | (vertical-motion 0 win) | 1059 | (vertical-motion 0 win) |
| 1010 | (dolist (w windows-before) | 1060 | (dolist (w windows-before) |
| 1011 | (vertical-motion (- 1 (window-text-height w)) w)) | 1061 | (vertical-motion (- (window-text-height w)) w)) |
| 1012 | (point)))) | 1062 | (point)))) |
| 1013 | 1063 | ||
| 1014 | 1064 | ||
| @@ -1130,138 +1180,144 @@ non-first windows in Follow mode." | |||
| 1130 | (cl-assert (eq (window-buffer win) (current-buffer))) | 1180 | (cl-assert (eq (window-buffer win) (current-buffer))) |
| 1131 | (when (and follow-mode | 1181 | (when (and follow-mode |
| 1132 | (not (window-minibuffer-p win))) | 1182 | (not (window-minibuffer-p win))) |
| 1133 | (let* ((dest (point)) | 1183 | (let ((windows (follow-all-followers win))) |
| 1134 | (windows (follow-all-followers win)) | 1184 | ;; If we've explicitly scrolled, align the windows first. |
| 1135 | (win-start-end (progn | 1185 | (when follow-fixed-window |
| 1136 | (follow-update-window-start (car windows)) | 1186 | (follow-debug-message "fixed") |
| 1137 | (follow-windows-start-end windows))) | 1187 | (follow-redisplay windows win) |
| 1138 | (aligned (follow-windows-aligned-p win-start-end)) | 1188 | (goto-char (follow-get-scrolled-point (point) windows)) |
| 1139 | (visible (follow-pos-visible dest win win-start-end)) | 1189 | (setq follow-fixed-window nil)) |
| 1140 | selected-window-up-to-date) | 1190 | (let* ((dest (point)) |
| 1141 | (unless (and aligned visible) | 1191 | (win-start-end (progn |
| 1142 | (setq follow-windows-start-end-cache nil)) | 1192 | (follow-update-window-start (car windows)) |
| 1143 | 1193 | (follow-windows-start-end windows))) | |
| 1144 | ;; Select a window to display point. | 1194 | (aligned (follow-windows-aligned-p win-start-end)) |
| 1145 | (unless follow-internal-force-redisplay | 1195 | (visible (follow-pos-visible dest win win-start-end)) |
| 1146 | (if (eq dest (point-max)) | 1196 | selected-window-up-to-date) |
| 1147 | ;; Be careful at point-max: the display can be aligned | 1197 | (unless (and aligned visible) |
| 1148 | ;; while DEST can be visible in several windows. | 1198 | (setq follow-windows-start-end-cache nil)) |
| 1149 | (cond | 1199 | |
| 1150 | ;; Select the current window, but only when the display | 1200 | ;; Select a window to display point. |
| 1151 | ;; is correct. (When inserting characters in a tail | 1201 | (unless follow-internal-force-redisplay |
| 1152 | ;; window, the display is not correct, as they are | 1202 | (if (eq dest (point-max)) |
| 1153 | ;; shown twice.) | 1203 | ;; Be careful at point-max: the display can be aligned |
| 1154 | ;; | 1204 | ;; while DEST can be visible in several windows. |
| 1155 | ;; Never stick to the current window after a deletion. | 1205 | (cond |
| 1156 | ;; Otherwise, when typing `DEL' in a window showing | 1206 | ;; Select the current window, but only when the display |
| 1157 | ;; only the end of the file, a character would be | 1207 | ;; is correct. (When inserting characters in a tail |
| 1158 | ;; removed from the window above, which is very | 1208 | ;; window, the display is not correct, as they are |
| 1159 | ;; unintuitive. | 1209 | ;; shown twice.) |
| 1160 | ((and visible | 1210 | ;; |
| 1161 | aligned | 1211 | ;; Never stick to the current window after a deletion. |
| 1162 | (not (memq this-command | 1212 | ;; Otherwise, when typing `DEL' in a window showing |
| 1163 | '(backward-delete-char | 1213 | ;; only the end of the file, a character would be |
| 1164 | delete-backward-char | 1214 | ;; removed from the window above, which is very |
| 1165 | backward-delete-char-untabify | 1215 | ;; unintuitive. |
| 1166 | kill-region)))) | 1216 | ((and visible |
| 1167 | (follow-debug-message "Max: same")) | 1217 | aligned |
| 1168 | ;; If the end is visible, and the window doesn't | 1218 | (not (memq this-command |
| 1169 | ;; seems like it just has been moved, select it. | 1219 | '(backward-delete-char |
| 1170 | ((follow-select-if-end-visible win-start-end) | 1220 | delete-backward-char |
| 1171 | (follow-debug-message "Max: end visible") | 1221 | backward-delete-char-untabify |
| 1172 | (setq visible t aligned nil) | 1222 | kill-region)))) |
| 1173 | (goto-char dest)) | 1223 | (follow-debug-message "Max: same")) |
| 1174 | ;; Just show the end... | 1224 | ;; If the end is visible, and the window doesn't |
| 1175 | (t | 1225 | ;; seems like it just has been moved, select it. |
| 1176 | (follow-debug-message "Max: default") | 1226 | ((follow-select-if-end-visible win-start-end) |
| 1177 | (select-window (car (last windows))) | 1227 | (follow-debug-message "Max: end visible") |
| 1178 | (goto-char dest) | 1228 | (setq visible t aligned nil) |
| 1179 | (setq visible nil aligned nil))) | 1229 | (goto-char dest)) |
| 1180 | 1230 | ;; Just show the end... | |
| 1181 | ;; We're not at the end, here life is much simpler. | 1231 | (t |
| 1182 | (cond | 1232 | (follow-debug-message "Max: default") |
| 1183 | ;; This is the normal case! | 1233 | (select-window (car (last windows))) |
| 1184 | ;; It should be optimized for speed. | 1234 | (goto-char dest) |
| 1185 | ((and visible aligned) | 1235 | (setq visible nil aligned nil))) |
| 1186 | (follow-debug-message "same")) | 1236 | |
| 1187 | ;; Pick a position in any window. If the display is ok, | 1237 | ;; We're not at the end, here life is much simpler. |
| 1188 | ;; this picks the `correct' window. | 1238 | (cond |
| 1189 | ((follow-select-if-visible dest win-start-end) | 1239 | ;; This is the normal case! |
| 1190 | (follow-debug-message "visible") | 1240 | ;; It should be optimized for speed. |
| 1191 | (goto-char dest) | 1241 | ((and visible aligned) |
| 1192 | ;; Perform redisplay, in case line is partially visible. | 1242 | (follow-debug-message "same")) |
| 1193 | (setq visible nil)) | 1243 | ;; Pick a position in any window. If the display is ok, |
| 1194 | ;; Not visible anywhere else, lets pick this one. | 1244 | ;; this picks the `correct' window. |
| 1195 | (visible | 1245 | ((follow-select-if-visible dest win-start-end) |
| 1196 | (follow-debug-message "visible in selected.")) | 1246 | (follow-debug-message "visible") |
| 1197 | ;; If DEST is before the first window start, select the | 1247 | (goto-char dest) |
| 1198 | ;; first window. | 1248 | ;; Perform redisplay, in case line is partially visible. |
| 1199 | ((< dest (nth 1 (car win-start-end))) | 1249 | (setq visible nil)) |
| 1200 | (follow-debug-message "before first") | 1250 | ;; Not visible anywhere else, lets pick this one. |
| 1201 | (select-window (car windows)) | 1251 | (visible |
| 1202 | (goto-char dest) | 1252 | (follow-debug-message "visible in selected.")) |
| 1203 | (setq visible nil aligned nil)) | 1253 | ;; If DEST is before the first window start, select the |
| 1204 | ;; If we can position the cursor without moving the first | 1254 | ;; first window. |
| 1205 | ;; window, do it. This is the case that catches `RET' at | 1255 | ((< dest (nth 1 (car win-start-end))) |
| 1206 | ;; the bottom of a window. | 1256 | (follow-debug-message "before first") |
| 1207 | ((follow-select-if-visible-from-first dest windows) | 1257 | (select-window (car windows)) |
| 1208 | (follow-debug-message "Below first") | 1258 | (goto-char dest) |
| 1209 | (setq visible t aligned t)) | 1259 | (setq visible nil aligned nil)) |
| 1210 | ;; None of the above. Stick to the selected window. | 1260 | ;; If we can position the cursor without moving the first |
| 1211 | (t | 1261 | ;; window, do it. This is the case that catches `RET' at |
| 1212 | (follow-debug-message "None") | 1262 | ;; the bottom of a window. |
| 1213 | (setq visible nil aligned nil)))) | 1263 | ((follow-select-if-visible-from-first dest windows) |
| 1214 | 1264 | (follow-debug-message "Below first") | |
| 1215 | ;; If a new window was selected, make sure that the old is | 1265 | (setq visible t aligned t)) |
| 1216 | ;; not scrolled when point is outside the window. | 1266 | ;; None of the above. Stick to the selected window. |
| 1217 | (unless (eq win (selected-window)) | 1267 | (t |
| 1218 | (let ((p (window-point win))) | 1268 | (follow-debug-message "None") |
| 1219 | (set-window-start win (window-start win) nil) | 1269 | (setq visible nil aligned nil)))) |
| 1220 | (set-window-point win p)))) | 1270 | |
| 1221 | 1271 | ;; If a new window was selected, make sure that the old is | |
| 1222 | (unless visible | 1272 | ;; not scrolled when point is outside the window. |
| 1223 | ;; If point may not be visible in the selected window, | 1273 | (unless (eq win (selected-window)) |
| 1224 | ;; perform a redisplay; this ensures scrolling. | 1274 | (let ((p (window-point win))) |
| 1225 | (let ((opoint (point))) | 1275 | (set-window-start win (window-start win) nil) |
| 1226 | (redisplay) | 1276 | (set-window-point win p)))) |
| 1227 | ;; If this `redisplay' moved point, we got clobbered by a | 1277 | |
| 1228 | ;; previous call to `set-window-start'. Try again. | 1278 | (unless visible |
| 1229 | (when (/= (point) opoint) | 1279 | ;; If point may not be visible in the selected window, |
| 1230 | (goto-char opoint) | 1280 | ;; perform a redisplay; this ensures scrolling. |
| 1231 | (redisplay))) | 1281 | (let ((opoint (point))) |
| 1232 | 1282 | (redisplay) | |
| 1233 | (setq selected-window-up-to-date t) | 1283 | ;; If this `redisplay' moved point, we got clobbered by a |
| 1234 | (follow-avoid-tail-recenter) | 1284 | ;; previous call to `set-window-start'. Try again. |
| 1235 | (setq win-start-end (follow-windows-start-end windows) | 1285 | (when (/= (point) opoint) |
| 1236 | follow-windows-start-end-cache nil | 1286 | (goto-char opoint) |
| 1237 | aligned nil)) | 1287 | (redisplay))) |
| 1238 | 1288 | ||
| 1239 | ;; Now redraw the windows around the selected window. | 1289 | (setq selected-window-up-to-date t) |
| 1240 | (unless (and (not follow-internal-force-redisplay) | 1290 | (follow-avoid-tail-recenter) |
| 1241 | (or aligned | 1291 | (setq win-start-end (follow-windows-start-end windows) |
| 1242 | (follow-windows-aligned-p win-start-end)) | 1292 | follow-windows-start-end-cache nil |
| 1243 | (follow-point-visible-all-windows-p win-start-end)) | 1293 | aligned nil)) |
| 1244 | (setq follow-internal-force-redisplay nil) | 1294 | |
| 1245 | (follow-redisplay windows (selected-window) | 1295 | ;; Now redraw the windows around the selected window. |
| 1246 | selected-window-up-to-date) | 1296 | (unless (and (not follow-internal-force-redisplay) |
| 1247 | (setq win-start-end (follow-windows-start-end windows) | 1297 | (or aligned |
| 1248 | follow-windows-start-end-cache nil) | 1298 | (follow-windows-aligned-p win-start-end)) |
| 1249 | ;; Point can end up in another window when DEST is at | 1299 | (follow-point-visible-all-windows-p win-start-end)) |
| 1250 | ;; the beginning of the buffer and the selected window is | 1300 | (setq follow-internal-force-redisplay nil) |
| 1251 | ;; not the first. It can also happen when long lines are | 1301 | (follow-redisplay windows (selected-window) |
| 1252 | ;; used and there is a big difference between the width of | 1302 | selected-window-up-to-date) |
| 1253 | ;; the windows. (When scrolling one line in a wide window | 1303 | (setq win-start-end (follow-windows-start-end windows) |
| 1254 | ;; which will cause a move larger that an entire small | 1304 | follow-windows-start-end-cache nil) |
| 1255 | ;; window.) | 1305 | ;; Point can end up in another window when DEST is at |
| 1256 | (unless (follow-pos-visible dest win win-start-end) | 1306 | ;; the beginning of the buffer and the selected window is |
| 1257 | (follow-select-if-visible dest win-start-end) | 1307 | ;; not the first. It can also happen when long lines are |
| 1258 | (goto-char dest))) | 1308 | ;; used and there is a big difference between the width of |
| 1259 | 1309 | ;; the windows. (When scrolling one line in a wide window | |
| 1260 | ;; If the region is visible, make it look good when spanning | 1310 | ;; which will cause a move larger that an entire small |
| 1261 | ;; multiple windows. | 1311 | ;; window.) |
| 1262 | (when (region-active-p) | 1312 | (unless (follow-pos-visible dest win win-start-end) |
| 1263 | (follow-maximize-region | 1313 | (follow-select-if-visible dest win-start-end) |
| 1264 | (selected-window) windows win-start-end))) | 1314 | (goto-char dest))) |
| 1315 | |||
| 1316 | ;; If the region is visible, make it look good when spanning | ||
| 1317 | ;; multiple windows. | ||
| 1318 | (when (region-active-p) | ||
| 1319 | (follow-maximize-region | ||
| 1320 | (selected-window) windows win-start-end)))) | ||
| 1265 | 1321 | ||
| 1266 | ;; Whether or not the buffer was in follow mode, update windows | 1322 | ;; Whether or not the buffer was in follow mode, update windows |
| 1267 | ;; displaying the tail so that Emacs won't recenter them. | 1323 | ;; displaying the tail so that Emacs won't recenter them. |
diff --git a/lisp/font-core.el b/lisp/font-core.el index 6d8588bfa33..2253204d9f7 100644 --- a/lisp/font-core.el +++ b/lisp/font-core.el | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | "Defaults for Font Lock mode specified by the major mode. | 30 | "Defaults for Font Lock mode specified by the major mode. |
| 31 | Defaults should be of the form: | 31 | Defaults should be of the form: |
| 32 | 32 | ||
| 33 | (KEYWORDS [KEYWORDS-ONLY [CASE-FOLD [SYNTAX-ALIST [SYNTAX-BEGIN ...]]]]) | 33 | (KEYWORDS [KEYWORDS-ONLY [CASE-FOLD [SYNTAX-ALIST ...]]]) |
| 34 | 34 | ||
| 35 | KEYWORDS may be a symbol (a variable or function whose value is the keywords | 35 | KEYWORDS may be a symbol (a variable or function whose value is the keywords |
| 36 | to use for fontification) or a list of symbols (specifying different levels | 36 | to use for fontification) or a list of symbols (specifying different levels |
| @@ -45,20 +45,9 @@ If SYNTAX-ALIST is non-nil, it should be a list of cons pairs of the form | |||
| 45 | \(CHAR-OR-STRING . STRING) used to set the local Font Lock syntax table, for | 45 | \(CHAR-OR-STRING . STRING) used to set the local Font Lock syntax table, for |
| 46 | keyword and syntactic fontification (see `modify-syntax-entry'). | 46 | keyword and syntactic fontification (see `modify-syntax-entry'). |
| 47 | 47 | ||
| 48 | If SYNTAX-BEGIN is non-nil, it should be a function with no args used to move | ||
| 49 | backwards outside any enclosing syntactic block, for syntactic fontification. | ||
| 50 | Typical values are `beginning-of-line' (i.e., the start of the line is known to | ||
| 51 | be outside a syntactic block), or `beginning-of-defun' for programming modes or | ||
| 52 | `backward-paragraph' for textual modes (i.e., the mode-dependent function is | ||
| 53 | known to move outside a syntactic block). If nil, the beginning of the buffer | ||
| 54 | is used as a position outside of a syntactic block, in the worst case. | ||
| 55 | |||
| 56 | \(See also Info node `(elisp)Font Lock Basics'.) | ||
| 57 | |||
| 58 | These item elements are used by Font Lock mode to set the variables | 48 | These item elements are used by Font Lock mode to set the variables |
| 59 | `font-lock-keywords', `font-lock-keywords-only', | 49 | `font-lock-keywords', `font-lock-keywords-only', |
| 60 | `font-lock-keywords-case-fold-search', `font-lock-syntax-table' and | 50 | `font-lock-keywords-case-fold-search', `font-lock-syntax-table'. |
| 61 | `font-lock-beginning-of-syntax-function', respectively. | ||
| 62 | 51 | ||
| 63 | Further item elements are alists of the form (VARIABLE . VALUE) and are in no | 52 | Further item elements are alists of the form (VARIABLE . VALUE) and are in no |
| 64 | particular order. Each VARIABLE is made buffer-local before set to VALUE. | 53 | particular order. Each VARIABLE is made buffer-local before set to VALUE. |
diff --git a/lisp/font-lock.el b/lisp/font-lock.el index cec95bf259c..e2660bfab91 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el | |||
| @@ -556,21 +556,6 @@ This is normally set via `font-lock-defaults'.") | |||
| 556 | If this is nil, the major mode's syntax table is used. | 556 | If this is nil, the major mode's syntax table is used. |
| 557 | This is normally set via `font-lock-defaults'.") | 557 | This is normally set via `font-lock-defaults'.") |
| 558 | 558 | ||
| 559 | (defvar font-lock-beginning-of-syntax-function nil | ||
| 560 | "Non-nil means use this function to move back outside all constructs. | ||
| 561 | When called with no args it should move point backward to a place which | ||
| 562 | is not in a string or comment and not within any bracket-pairs (or else, | ||
| 563 | a place such that any bracket-pairs outside it can be ignored for Emacs | ||
| 564 | syntax analysis and fontification). | ||
| 565 | |||
| 566 | If this is nil, Font Lock uses `syntax-begin-function' to move back | ||
| 567 | outside of any comment, string, or sexp. This variable is semi-obsolete; | ||
| 568 | we recommend setting `syntax-begin-function' instead. | ||
| 569 | |||
| 570 | This is normally set via `font-lock-defaults'.") | ||
| 571 | (make-obsolete-variable 'font-lock-beginning-of-syntax-function | ||
| 572 | 'syntax-begin-function "23.3" 'set) | ||
| 573 | |||
| 574 | (defvar font-lock-mark-block-function nil | 559 | (defvar font-lock-mark-block-function nil |
| 575 | "Non-nil means use this function to mark a block of text. | 560 | "Non-nil means use this function to mark a block of text. |
| 576 | When called with no args it should leave point at the beginning of any | 561 | When called with no args it should leave point at the beginning of any |
| @@ -1347,7 +1332,7 @@ no ARG is given and `font-lock-mark-block-function' is nil. | |||
| 1347 | If `font-lock-mark-block-function' non-nil and no ARG is given, it is used to | 1332 | If `font-lock-mark-block-function' non-nil and no ARG is given, it is used to |
| 1348 | delimit the region to fontify." | 1333 | delimit the region to fontify." |
| 1349 | (interactive "P") | 1334 | (interactive "P") |
| 1350 | (let ((inhibit-point-motion-hooks t) font-lock-beginning-of-syntax-function | 1335 | (let ((inhibit-point-motion-hooks t) |
| 1351 | deactivate-mark) | 1336 | deactivate-mark) |
| 1352 | ;; Make sure we have the right `font-lock-keywords' etc. | 1337 | ;; Make sure we have the right `font-lock-keywords' etc. |
| 1353 | (if (not font-lock-mode) (font-lock-set-defaults)) | 1338 | (if (not font-lock-mode) (font-lock-set-defaults)) |
| @@ -1765,11 +1750,10 @@ If SYNTACTIC-KEYWORDS is non-nil, it means these keywords are used for | |||
| 1765 | (cons t (cons keywords | 1750 | (cons t (cons keywords |
| 1766 | (mapcar #'font-lock-compile-keyword keywords)))) | 1751 | (mapcar #'font-lock-compile-keyword keywords)))) |
| 1767 | (if (and (not syntactic-keywords) | 1752 | (if (and (not syntactic-keywords) |
| 1768 | (let ((beg-function | 1753 | (let ((beg-function syntax-begin-function)) |
| 1769 | (or font-lock-beginning-of-syntax-function | ||
| 1770 | syntax-begin-function))) | ||
| 1771 | (or (eq beg-function 'beginning-of-defun) | 1754 | (or (eq beg-function 'beginning-of-defun) |
| 1772 | (get beg-function 'font-lock-syntax-paren-check))) | 1755 | (if (symbolp beg-function) |
| 1756 | (get beg-function 'font-lock-syntax-paren-check)))) | ||
| 1773 | (not beginning-of-defun-function)) | 1757 | (not beginning-of-defun-function)) |
| 1774 | ;; Try to detect when a string or comment contains something that | 1758 | ;; Try to detect when a string or comment contains something that |
| 1775 | ;; looks like a defun and would thus confuse font-lock. | 1759 | ;; looks like a defun and would thus confuse font-lock. |
| @@ -1890,17 +1874,14 @@ Sets various variables using `font-lock-defaults' and | |||
| 1890 | (list (car selem)) | 1874 | (list (car selem)) |
| 1891 | (mapcar 'identity (car selem)))) | 1875 | (mapcar 'identity (car selem)))) |
| 1892 | (modify-syntax-entry char syntax font-lock-syntax-table))))) | 1876 | (modify-syntax-entry char syntax font-lock-syntax-table))))) |
| 1893 | ;; Syntax function for syntactic fontification? | 1877 | ;; (nth 4 defaults) used to hold `font-lock-beginning-of-syntax-function', |
| 1894 | (if (nth 4 defaults) | 1878 | ;; but that was removed in 25.1, so if it's a cons cell, we assume that |
| 1895 | (set (make-local-variable 'font-lock-beginning-of-syntax-function) | 1879 | ;; it's part of the variable alist. |
| 1896 | (nth 4 defaults)) | ||
| 1897 | (kill-local-variable 'font-lock-beginning-of-syntax-function)) | ||
| 1898 | ;; Variable alist? | 1880 | ;; Variable alist? |
| 1899 | (dolist (x (nthcdr 5 defaults)) | 1881 | (dolist (x (nthcdr (if (consp (nth 4 defaults)) 4 5) defaults)) |
| 1900 | (set (make-local-variable (car x)) (cdr x))) | 1882 | (set (make-local-variable (car x)) (cdr x))) |
| 1901 | ;; Set up `font-lock-keywords' last because its value might depend | 1883 | ;; Set up `font-lock-keywords' last because its value might depend |
| 1902 | ;; on other settings (e.g. font-lock-compile-keywords uses | 1884 | ;; on other settings. |
| 1903 | ;; font-lock-beginning-of-syntax-function). | ||
| 1904 | (set (make-local-variable 'font-lock-keywords) | 1885 | (set (make-local-variable 'font-lock-keywords) |
| 1905 | (font-lock-eval-keywords keywords)) | 1886 | (font-lock-eval-keywords keywords)) |
| 1906 | ;; Local fontification? | 1887 | ;; Local fontification? |
diff --git a/lisp/format.el b/lisp/format.el index dbc814e5b01..8a756e3396c 100644 --- a/lisp/format.el +++ b/lisp/format.el | |||
| @@ -513,7 +513,7 @@ Optional args BEG and END specify a region of the buffer on which to operate." | |||
| 513 | (defun format-delq-cons (cons list) | 513 | (defun format-delq-cons (cons list) |
| 514 | "Remove the given CONS from LIST by side effect and return the new LIST. | 514 | "Remove the given CONS from LIST by side effect and return the new LIST. |
| 515 | Since CONS could be the first element of LIST, write | 515 | Since CONS could be the first element of LIST, write |
| 516 | `\(setq foo \(format-delq-cons element foo))' to be sure of changing | 516 | \(setq foo \(format-delq-cons element foo)) to be sure of changing |
| 517 | the value of `foo'." | 517 | the value of `foo'." |
| 518 | (if (eq cons list) | 518 | (if (eq cons list) |
| 519 | (cdr list) | 519 | (cdr list) |
| @@ -619,7 +619,7 @@ the rest of the arguments are any PARAMETERs found in that region. | |||
| 619 | Any annotations that are found by NEXT-FN but not defined by TRANSLATIONS | 619 | Any annotations that are found by NEXT-FN but not defined by TRANSLATIONS |
| 620 | are saved as values of the `unknown' text-property \(which is list-valued). | 620 | are saved as values of the `unknown' text-property \(which is list-valued). |
| 621 | The TRANSLATIONS list should usually contain an entry of the form | 621 | The TRANSLATIONS list should usually contain an entry of the form |
| 622 | \(unknown \(nil format-annotate-value)) | 622 | (unknown (nil format-annotate-value)) |
| 623 | to write these unknown annotations back into the file." | 623 | to write these unknown annotations back into the file." |
| 624 | (save-excursion | 624 | (save-excursion |
| 625 | (save-restriction | 625 | (save-restriction |
| @@ -827,7 +827,7 @@ in the region, it is treated as though it were DEFAULT." | |||
| 827 | Insert each element of the given LIST of buffer annotations at its | 827 | Insert each element of the given LIST of buffer annotations at its |
| 828 | appropriate place. Use second arg OFFSET if the annotations' locations are | 828 | appropriate place. Use second arg OFFSET if the annotations' locations are |
| 829 | not relative to the beginning of the buffer: annotations will be inserted | 829 | not relative to the beginning of the buffer: annotations will be inserted |
| 830 | at their location-OFFSET+1 \(ie, the offset is treated as the position of | 830 | at their location-OFFSET+1 \(i.e., the offset is treated as the position of |
| 831 | the first character in the buffer)." | 831 | the first character in the buffer)." |
| 832 | (if (not offset) | 832 | (if (not offset) |
| 833 | (setq offset 0) | 833 | (setq offset 0) |
| @@ -839,7 +839,7 @@ the first character in the buffer)." | |||
| 839 | (setq l (cdr l))))) | 839 | (setq l (cdr l))))) |
| 840 | 840 | ||
| 841 | (defun format-annotate-value (old new) | 841 | (defun format-annotate-value (old new) |
| 842 | "Return OLD and NEW as a \(CLOSE . OPEN) annotation pair. | 842 | "Return OLD and NEW as a (CLOSE . OPEN) annotation pair. |
| 843 | Useful as a default function for TRANSLATIONS alist when the value of the text | 843 | Useful as a default function for TRANSLATIONS alist when the value of the text |
| 844 | property is the name of the annotation that you want to use, as it is for the | 844 | property is the name of the annotation that you want to use, as it is for the |
| 845 | `unknown' text property." | 845 | `unknown' text property." |
diff --git a/lisp/gnus/ChangeLog.2 b/lisp/gnus/ChangeLog.2 index ce8e1b91e4f..29ab9788bba 100644 --- a/lisp/gnus/ChangeLog.2 +++ b/lisp/gnus/ChangeLog.2 | |||
| @@ -7711,7 +7711,7 @@ | |||
| 7711 | (gnus-agent-fetch-selected-article): New function for | 7711 | (gnus-agent-fetch-selected-article): New function for |
| 7712 | gnus-select-article-hook or gnus-mark-article-hook. | 7712 | gnus-select-article-hook or gnus-mark-article-hook. |
| 7713 | 7713 | ||
| 7714 | 2002-10-02 Peter von der Ahe <nospam2159@daimi.au.dk> | 7714 | 2002-10-02 Peter von der Ahé <nospam2159@daimi.au.dk> |
| 7715 | 7715 | ||
| 7716 | * gnus-ems.el (gnus-x-splash): Set coding-system-for-read to | 7716 | * gnus-ems.el (gnus-x-splash): Set coding-system-for-read to |
| 7717 | raw-text. | 7717 | raw-text. |
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 3f426bf95f6..f101ecdea08 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el | |||
| @@ -362,7 +362,7 @@ If the value is not a list, symmetric encryption will be used." | |||
| 362 | "Read one of CHOICES by `read-char-choice', or `read-char'. | 362 | "Read one of CHOICES by `read-char-choice', or `read-char'. |
| 363 | `dropdown-list' support is disabled because it doesn't work reliably. | 363 | `dropdown-list' support is disabled because it doesn't work reliably. |
| 364 | Only one of CHOICES will be returned. The PROMPT is augmented | 364 | Only one of CHOICES will be returned. The PROMPT is augmented |
| 365 | with \"[a/b/c] \" if CHOICES is '\(?a ?b ?c\)." | 365 | with \"[a/b/c] \" if CHOICES is \(?a ?b ?c)." |
| 366 | (when choices | 366 | (when choices |
| 367 | (let* ((prompt-choices | 367 | (let* ((prompt-choices |
| 368 | (apply 'concat (loop for c in choices | 368 | (apply 'concat (loop for c in choices |
| @@ -1557,20 +1557,20 @@ You'll get back all the properties of the token as a plist. | |||
| 1557 | Here's an example that looks for the first item in the `Login' | 1557 | Here's an example that looks for the first item in the `Login' |
| 1558 | Secrets collection: | 1558 | Secrets collection: |
| 1559 | 1559 | ||
| 1560 | \(let ((auth-sources \\='(\"secrets:Login\"))) | 1560 | (let ((auth-sources \\='(\"secrets:Login\"))) |
| 1561 | (auth-source-search :max 1) | 1561 | (auth-source-search :max 1) |
| 1562 | 1562 | ||
| 1563 | Here's another that looks for the first item in the `Login' | 1563 | Here's another that looks for the first item in the `Login' |
| 1564 | Secrets collection whose label contains `gnus': | 1564 | Secrets collection whose label contains `gnus': |
| 1565 | 1565 | ||
| 1566 | \(let ((auth-sources \\='(\"secrets:Login\"))) | 1566 | (let ((auth-sources \\='(\"secrets:Login\"))) |
| 1567 | (auth-source-search :max 1 :label \"gnus\") | 1567 | (auth-source-search :max 1 :label \"gnus\") |
| 1568 | 1568 | ||
| 1569 | And this one looks for the first item in the `Login' Secrets | 1569 | And this one looks for the first item in the `Login' Secrets |
| 1570 | collection that's a Google Chrome entry for the git.gnus.org site | 1570 | collection that's a Google Chrome entry for the git.gnus.org site |
| 1571 | authentication tokens: | 1571 | authentication tokens: |
| 1572 | 1572 | ||
| 1573 | \(let ((auth-sources \\='(\"secrets:Login\"))) | 1573 | (let ((auth-sources \\='(\"secrets:Login\"))) |
| 1574 | (auth-source-search :max 1 :signon_realm \"https://git.gnus.org/Git\")) | 1574 | (auth-source-search :max 1 :signon_realm \"https://git.gnus.org/Git\")) |
| 1575 | " | 1575 | " |
| 1576 | 1576 | ||
| @@ -1691,19 +1691,19 @@ field), :user maps to \"-a USER\", and :port maps to \"-s PORT\". | |||
| 1691 | Here's an example that looks for the first item in the default | 1691 | Here's an example that looks for the first item in the default |
| 1692 | generic MacOS Keychain: | 1692 | generic MacOS Keychain: |
| 1693 | 1693 | ||
| 1694 | \(let ((auth-sources \\='(macos-keychain-generic))) | 1694 | (let ((auth-sources \\='(macos-keychain-generic))) |
| 1695 | (auth-source-search :max 1) | 1695 | (auth-source-search :max 1) |
| 1696 | 1696 | ||
| 1697 | Here's another that looks for the first item in the internet | 1697 | Here's another that looks for the first item in the internet |
| 1698 | MacOS Keychain collection whose label is `gnus': | 1698 | MacOS Keychain collection whose label is `gnus': |
| 1699 | 1699 | ||
| 1700 | \(let ((auth-sources \\='(macos-keychain-internet))) | 1700 | (let ((auth-sources \\='(macos-keychain-internet))) |
| 1701 | (auth-source-search :max 1 :label \"gnus\") | 1701 | (auth-source-search :max 1 :label \"gnus\") |
| 1702 | 1702 | ||
| 1703 | And this one looks for the first item in the internet keychain | 1703 | And this one looks for the first item in the internet keychain |
| 1704 | entries for git.gnus.org: | 1704 | entries for git.gnus.org: |
| 1705 | 1705 | ||
| 1706 | \(let ((auth-sources \\='(macos-keychain-internet\"))) | 1706 | (let ((auth-sources \\='(macos-keychain-internet\"))) |
| 1707 | (auth-source-search :max 1 :host \"git.gnus.org\")) | 1707 | (auth-source-search :max 1 :host \"git.gnus.org\")) |
| 1708 | " | 1708 | " |
| 1709 | ;; TODO | 1709 | ;; TODO |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 8ad81c9fc3e..44aff772402 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -5516,7 +5516,7 @@ If no internal viewer is available, use an external viewer." | |||
| 5516 | (mm-display-part handle nil t)))))) | 5516 | (mm-display-part handle nil t)))))) |
| 5517 | 5517 | ||
| 5518 | (defun gnus-mime-action-on-part (&optional action) | 5518 | (defun gnus-mime-action-on-part (&optional action) |
| 5519 | "Do something with the MIME attachment at \(point\)." | 5519 | "Do something with the MIME attachment at (point)." |
| 5520 | (interactive | 5520 | (interactive |
| 5521 | (list (gnus-completing-read "Action" (mapcar 'car gnus-mime-action-alist) t))) | 5521 | (list (gnus-completing-read "Action" (mapcar 'car gnus-mime-action-alist) t))) |
| 5522 | (gnus-article-check-buffer) | 5522 | (gnus-article-check-buffer) |
| @@ -5992,7 +5992,7 @@ If t, it overrides nil values of | |||
| 5992 | "Display \"multipart/related\" parts as \"multipart/mixed\". | 5992 | "Display \"multipart/related\" parts as \"multipart/mixed\". |
| 5993 | 5993 | ||
| 5994 | If displaying \"text/html\" is discouraged \(see | 5994 | If displaying \"text/html\" is discouraged \(see |
| 5995 | `mm-discouraged-alternatives'\) images or other material inside a | 5995 | `mm-discouraged-alternatives') images or other material inside a |
| 5996 | \"multipart/related\" part might be overlooked when this variable is nil." | 5996 | \"multipart/related\" part might be overlooked when this variable is nil." |
| 5997 | :version "22.1" | 5997 | :version "22.1" |
| 5998 | :group 'gnus-article-mime | 5998 | :group 'gnus-article-mime |
| @@ -7545,7 +7545,7 @@ must return `mid', `mail', `invalid' or `ask'." | |||
| 7545 | (10.0 . "^[^0-9]+@") | 7545 | (10.0 . "^[^0-9]+@") |
| 7546 | (3.0 . "^[^0-9]+[0-9][0-9]?[0-9]?@") | 7546 | (3.0 . "^[^0-9]+[0-9][0-9]?[0-9]?@") |
| 7547 | ;; ^[^0-9]+[0-9]{1,3}\@ digits only at end of local part | 7547 | ;; ^[^0-9]+[0-9]{1,3}\@ digits only at end of local part |
| 7548 | (3.0 . "\@stud") | 7548 | (3.0 . "@stud") |
| 7549 | ;; | 7549 | ;; |
| 7550 | (2.0 . "[a-z][a-z][._-][A-Z][a-z].*@") | 7550 | (2.0 . "[a-z][a-z][._-][A-Z][a-z].*@") |
| 7551 | ;; | 7551 | ;; |
| @@ -7553,7 +7553,7 @@ must return `mid', `mail', `invalid' or `ask'." | |||
| 7553 | (0.5 . "^[A-Z][a-z][a-z]") | 7553 | (0.5 . "^[A-Z][a-z][a-z]") |
| 7554 | (1.5 . "^[A-Z][a-z][A-Z][a-z][^a-z]") ;; ^[A-Z][a-z]{3,3} | 7554 | (1.5 . "^[A-Z][a-z][A-Z][a-z][^a-z]") ;; ^[A-Z][a-z]{3,3} |
| 7555 | (2.0 . "^[A-Z][a-z][A-Z][a-z][a-z][^a-z]")) ;; ^[A-Z][a-z]{4,4} | 7555 | (2.0 . "^[A-Z][a-z][A-Z][a-z][a-z][^a-z]")) ;; ^[A-Z][a-z]{4,4} |
| 7556 | "An alist of \(RATE . REGEXP\) pairs for `gnus-button-mid-or-mail-heuristic'. | 7556 | "An alist of (RATE . REGEXP) pairs for `gnus-button-mid-or-mail-heuristic'. |
| 7557 | 7557 | ||
| 7558 | A negative RATE indicates a message IDs, whereas a positive indicates a mail | 7558 | A negative RATE indicates a message IDs, whereas a positive indicates a mail |
| 7559 | address. The REGEXP is processed with `case-fold-search' set to nil." | 7559 | address. The REGEXP is processed with `case-fold-search' set to nil." |
| @@ -7612,9 +7612,9 @@ address, `ask' if unsure and `invalid' if the string is invalid." | |||
| 7612 | (gnus-message | 7612 | (gnus-message |
| 7613 | 9 "Many digits in `%s', rate `%s', result `%s'." | 7613 | 9 "Many digits in `%s', rate `%s', result `%s'." |
| 7614 | mid-or-mail rate result)) | 7614 | mid-or-mail rate result)) |
| 7615 | ((string-match "[^aeiouy][^aeiouy][^aeiouy][^aeiouy]+.*\@" | 7615 | ((string-match "[^aeiouy][^aeiouy][^aeiouy][^aeiouy]+.*@" |
| 7616 | mid-or-mail) | 7616 | mid-or-mail) |
| 7617 | ;; Too few vowels [^aeiouy]{4,}.*\@ | 7617 | ;; Too few vowels [^aeiouy]{4,}.*@ |
| 7618 | (setq result (+ result -5.0)) | 7618 | (setq result (+ result -5.0)) |
| 7619 | (gnus-message | 7619 | (gnus-message |
| 7620 | 9 "Few vowels in `%s', rate `%s', result `%s'." | 7620 | 9 "Few vowels in `%s', rate `%s', result `%s'." |
| @@ -7724,7 +7724,7 @@ Calls `describe-variable' or `describe-function'." | |||
| 7724 | "Call `locate-library' when pushing the corresponding URL button." | 7724 | "Call `locate-library' when pushing the corresponding URL button." |
| 7725 | (gnus-message 9 "url=`%s'" url) | 7725 | (gnus-message 9 "url=`%s'" url) |
| 7726 | (let* ((lib (locate-library url)) | 7726 | (let* ((lib (locate-library url)) |
| 7727 | (file (gnus-replace-in-string (or lib "") "\.elc" ".el"))) | 7727 | (file (gnus-replace-in-string (or lib "") "\\.elc" ".el"))) |
| 7728 | (if (not lib) | 7728 | (if (not lib) |
| 7729 | (gnus-message 1 "Cannot locale library `%s'." url) | 7729 | (gnus-message 1 "Cannot locale library `%s'." url) |
| 7730 | (find-file-read-only file)))) | 7730 | (find-file-read-only file)))) |
| @@ -8113,7 +8113,7 @@ url is put as the `gnus-button-url' overlay property on the button." | |||
| 8113 | (< (match-end 0) start)) | 8113 | (< (match-end 0) start)) |
| 8114 | (regexp-quote (match-string 0))) | 8114 | (regexp-quote (match-string 0))) |
| 8115 | "\ | 8115 | "\ |
| 8116 | \[\t ]*\\(?:\\([^\t\n \">]+\\)[\t ]*$\\|\\([^\t\n \">]*\\)[\t ]*" | 8116 | [\t ]*\\(?:\\([^\t\n \">]+\\)[\t ]*$\\|\\([^\t\n \">]*\\)[\t ]*" |
| 8117 | delim "\\)")) | 8117 | delim "\\)")) |
| 8118 | (while (progn | 8118 | (while (progn |
| 8119 | (forward-line 1) | 8119 | (forward-line 1) |
diff --git a/lisp/gnus/gnus-bookmark.el b/lisp/gnus/gnus-bookmark.el index e26c78b65c5..3e4807cd7ce 100644 --- a/lisp/gnus/gnus-bookmark.el +++ b/lisp/gnus/gnus-bookmark.el | |||
| @@ -101,7 +101,7 @@ List of details is defined in `gnus-bookmark-bookmark-inline-details'. | |||
| 101 | This may result in truncated bookmark names. To disable this, put the | 101 | This may result in truncated bookmark names. To disable this, put the |
| 102 | following in your `.emacs' file: | 102 | following in your `.emacs' file: |
| 103 | 103 | ||
| 104 | \(setq gnus-bookmark-bmenu-toggle-infos nil\)" | 104 | \(setq gnus-bookmark-bmenu-toggle-infos nil)" |
| 105 | :type 'boolean | 105 | :type 'boolean |
| 106 | :group 'gnus-bookmark) | 106 | :group 'gnus-bookmark) |
| 107 | 107 | ||
| @@ -118,7 +118,7 @@ You can toggle whether details are shown with \\<gnus-bookmark-bmenu-mode-map>\\ | |||
| 118 | 118 | ||
| 119 | (defcustom gnus-bookmark-bookmark-inline-details '(author) | 119 | (defcustom gnus-bookmark-bookmark-inline-details '(author) |
| 120 | "Details to be shown with `gnus-bookmark-bmenu-toggle-infos'. | 120 | "Details to be shown with `gnus-bookmark-bmenu-toggle-infos'. |
| 121 | The default value is \(subject\)." | 121 | The default value is \(subject)." |
| 122 | :type '(list :tag "Gnus bookmark details" | 122 | :type '(list :tag "Gnus bookmark details" |
| 123 | (set :inline t | 123 | (set :inline t |
| 124 | (const :tag "Author" author) | 124 | (const :tag "Author" author) |
| @@ -131,7 +131,7 @@ The default value is \(subject\)." | |||
| 131 | (defcustom gnus-bookmark-bookmark-details | 131 | (defcustom gnus-bookmark-bookmark-details |
| 132 | '(author subject date group annotation) | 132 | '(author subject date group annotation) |
| 133 | "Details to be shown with `gnus-bookmark-bmenu-show-details'. | 133 | "Details to be shown with `gnus-bookmark-bmenu-show-details'. |
| 134 | The default value is \(author subject date group annotation\)." | 134 | The default value is \(author subject date group annotation)." |
| 135 | :type '(list :tag "Gnus bookmark details" | 135 | :type '(list :tag "Gnus bookmark details" |
| 136 | (set :inline t | 136 | (set :inline t |
| 137 | (const :tag "Author" author) | 137 | (const :tag "Author" author) |
| @@ -160,17 +160,17 @@ You should never need to change this.") | |||
| 160 | "Association list of Gnus bookmarks and their records. | 160 | "Association list of Gnus bookmarks and their records. |
| 161 | The format of the alist is | 161 | The format of the alist is |
| 162 | 162 | ||
| 163 | \(BMK1 BMK2 ...\) | 163 | (BMK1 BMK2 ...) |
| 164 | 164 | ||
| 165 | where each BMK is of the form | 165 | where each BMK is of the form |
| 166 | 166 | ||
| 167 | \(NAME | 167 | \(NAME |
| 168 | \(group . GROUP\) | 168 | (group . GROUP) |
| 169 | \(message-id . MESSAGE-ID\) | 169 | (message-id . MESSAGE-ID) |
| 170 | \(author . AUTHOR\) | 170 | (author . AUTHOR) |
| 171 | \(date . DATE\) | 171 | (date . DATE) |
| 172 | \(subject . SUBJECT\) | 172 | (subject . SUBJECT) |
| 173 | \(annotation . ANNOTATION\)\) | 173 | (annotation . ANNOTATION)) |
| 174 | 174 | ||
| 175 | So the cdr of each bookmark is an alist too.") | 175 | So the cdr of each bookmark is an alist too.") |
| 176 | 176 | ||
| @@ -432,7 +432,7 @@ That is, all information but the name." | |||
| 432 | (car (cdr (gnus-bookmark-get-bookmark bookmark)))) | 432 | (car (cdr (gnus-bookmark-get-bookmark bookmark)))) |
| 433 | 433 | ||
| 434 | (defun gnus-bookmark-name-from-full-record (full-record) | 434 | (defun gnus-bookmark-name-from-full-record (full-record) |
| 435 | "Return name of FULL-RECORD \(an alist element instead of a string\)." | 435 | "Return name of FULL-RECORD (an alist element instead of a string)." |
| 436 | (car full-record)) | 436 | (car full-record)) |
| 437 | 437 | ||
| 438 | (defvar gnus-bookmark-bmenu-bookmark-column nil) | 438 | (defvar gnus-bookmark-bmenu-bookmark-column nil) |
| @@ -484,7 +484,7 @@ Gnus bookmarks names preceded by a \"*\" have annotations. | |||
| 484 | Also show bookmarks marked using m in other windows. | 484 | Also show bookmarks marked using m in other windows. |
| 485 | \\[gnus-bookmark-bmenu-toggle-infos] -- toggle displaying of details (they may obscure long bookmark names). | 485 | \\[gnus-bookmark-bmenu-toggle-infos] -- toggle displaying of details (they may obscure long bookmark names). |
| 486 | \\[gnus-bookmark-bmenu-locate] -- display (in minibuffer) location of this bookmark. | 486 | \\[gnus-bookmark-bmenu-locate] -- display (in minibuffer) location of this bookmark. |
| 487 | \\[gnus-bookmark-bmenu-rename] -- rename this bookmark \(prompts for new name\). | 487 | \\[gnus-bookmark-bmenu-rename] -- rename this bookmark (prompts for new name). |
| 488 | \\[gnus-bookmark-bmenu-delete] -- mark this bookmark to be deleted, and move down. | 488 | \\[gnus-bookmark-bmenu-delete] -- mark this bookmark to be deleted, and move down. |
| 489 | \\[gnus-bookmark-bmenu-delete-backwards] -- mark this bookmark to be deleted, and move up. | 489 | \\[gnus-bookmark-bmenu-delete-backwards] -- mark this bookmark to be deleted, and move up. |
| 490 | \\[gnus-bookmark-bmenu-execute-deletions] -- delete bookmarks marked with `\\[gnus-bookmark-bmenu-delete]'. | 490 | \\[gnus-bookmark-bmenu-execute-deletions] -- delete bookmarks marked with `\\[gnus-bookmark-bmenu-delete]'. |
| @@ -806,7 +806,7 @@ command." | |||
| 806 | Removes only the first instance of a bookmark with that name. If | 806 | Removes only the first instance of a bookmark with that name. If |
| 807 | there are one or more other bookmarks with the same name, they will | 807 | there are one or more other bookmarks with the same name, they will |
| 808 | not be deleted. Defaults to the \"current\" bookmark \(that is, the | 808 | not be deleted. Defaults to the \"current\" bookmark \(that is, the |
| 809 | one most recently used in this file, if any\). | 809 | one most recently used in this file, if any). |
| 810 | Optional second arg BATCH means don't update the bookmark list buffer, | 810 | Optional second arg BATCH means don't update the bookmark list buffer, |
| 811 | probably because we were called from there." | 811 | probably because we were called from there." |
| 812 | (gnus-bookmark-maybe-load-default-file) | 812 | (gnus-bookmark-maybe-load-default-file) |
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el index 93b7a1ba635..9b8cbc3589d 100644 --- a/lisp/gnus/gnus-cus.el +++ b/lisp/gnus/gnus-cus.el | |||
| @@ -436,7 +436,7 @@ to the groups in this topic, then edit the value to suit your taste." | |||
| 436 | :greedy t | 436 | :greedy t |
| 437 | :tag "Agent Parameters" | 437 | :tag "Agent Parameters" |
| 438 | :format "%t:\n%h%v" | 438 | :format "%t:\n%h%v" |
| 439 | :doc "\ These agent parameters are | 439 | :doc "These agent parameters are |
| 440 | recognized by Gnus. They control article selection and expiration for | 440 | recognized by Gnus. They control article selection and expiration for |
| 441 | use in the unplugged cache. Check the [ ] for the parameters you want | 441 | use in the unplugged cache. Check the [ ] for the parameters you want |
| 442 | to apply to this group or to the groups in this topic, then edit the | 442 | to apply to this group or to the groups in this topic, then edit the |
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index ad49824f028..b1a4933ebf1 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el | |||
| @@ -155,7 +155,7 @@ list." | |||
| 155 | (function-item gnus-group-sort-by-rank) | 155 | (function-item gnus-group-sort-by-rank) |
| 156 | (function :tag "other" nil)))) | 156 | (function :tag "other" nil)))) |
| 157 | 157 | ||
| 158 | (defcustom gnus-group-line-format "%M\%S\%p\%P\%5y:%B%(%g%)\n" | 158 | (defcustom gnus-group-line-format "%M\ %S\ %p\ %P\ %5y:%B%(%g%)\n" |
| 159 | "*Format of group lines. | 159 | "*Format of group lines. |
| 160 | It works along the same lines as a normal formatting string, | 160 | It works along the same lines as a normal formatting string, |
| 161 | with some simple extensions. | 161 | with some simple extensions. |
| @@ -213,7 +213,7 @@ See Info node `(gnus)Formatting Variables'." | |||
| 213 | :group 'gnus-group-visual | 213 | :group 'gnus-group-visual |
| 214 | :type 'string) | 214 | :type 'string) |
| 215 | 215 | ||
| 216 | (defcustom gnus-group-mode-line-format "Gnus: %%b {%M\%:%S}" | 216 | (defcustom gnus-group-mode-line-format "Gnus: %%b {%M\ %:%S}" |
| 217 | "*The format specification for the group mode line. | 217 | "*The format specification for the group mode line. |
| 218 | It works along the same lines as a normal formatting string, | 218 | It works along the same lines as a normal formatting string, |
| 219 | with some simple extensions: | 219 | with some simple extensions: |
| @@ -445,7 +445,7 @@ If non-nil, the value should be a string or an alist. If it is a string, | |||
| 445 | e.g. \"nnml:\", in which case `gnus-group-jump-to-group' offers \"Group: | 445 | e.g. \"nnml:\", in which case `gnus-group-jump-to-group' offers \"Group: |
| 446 | nnml:\" in the minibuffer prompt. | 446 | nnml:\" in the minibuffer prompt. |
| 447 | 447 | ||
| 448 | If it is an alist, it must consist of \(NUMBER . PROMPT\) pairs, for example: | 448 | If it is an alist, it must consist of \(NUMBER . PROMPT) pairs, for example: |
| 449 | \((1 . \"\") (2 . \"nnfolder+archive:\")). The element with number 0 is | 449 | \((1 . \"\") (2 . \"nnfolder+archive:\")). The element with number 0 is |
| 450 | used when no prefix argument is given to `gnus-group-jump-to-group'." | 450 | used when no prefix argument is given to `gnus-group-jump-to-group'." |
| 451 | :version "22.1" | 451 | :version "22.1" |
| @@ -2174,7 +2174,7 @@ be permanent." | |||
| 2174 | (gnus-group-decoded-name group))) | 2174 | (gnus-group-decoded-name group))) |
| 2175 | (let ((regexp "[][\C-@-\t\v-*,/:-@\\^`{-\C-?]*\ | 2175 | (let ((regexp "[][\C-@-\t\v-*,/:-@\\^`{-\C-?]*\ |
| 2176 | \\(nn[a-z]+\\(?:\\+[^][\C-@-*,/:-@\\^`{-\C-?]+\\)?:\ | 2176 | \\(nn[a-z]+\\(?:\\+[^][\C-@-*,/:-@\\^`{-\C-?]+\\)?:\ |
| 2177 | \[^][\C-@-*,./:-@\\^`{-\C-?]+\\(?:\\.[^][\C-@-*,./:-@\\^`{-\C-?]+\\)*\ | 2177 | [^][\C-@-*,./:-@\\^`{-\C-?]+\\(?:\\.[^][\C-@-*,./:-@\\^`{-\C-?]+\\)*\ |
| 2178 | \\|[^][\C-@-*,./:-@\\^`{-\C-?]+\\(?:\\.[^][\C-@-*,./:-@\\^`{-\C-?]+\\)+\\)") | 2178 | \\|[^][\C-@-*,./:-@\\^`{-\C-?]+\\(?:\\.[^][\C-@-*,./:-@\\^`{-\C-?]+\\)+\\)") |
| 2179 | (start (point)) | 2179 | (start (point)) |
| 2180 | (case-fold-search nil)) | 2180 | (case-fold-search nil)) |
| @@ -2435,7 +2435,7 @@ Valid input formats include: | |||
| 2435 | ;; URLs providing `group', `start' and `range': | 2435 | ;; URLs providing `group', `start' and `range': |
| 2436 | ((string-match | 2436 | ((string-match |
| 2437 | ;; http://thread.gmane.org/gmane.emacs.devel/86326/focus=86525 | 2437 | ;; http://thread.gmane.org/gmane.emacs.devel/86326/focus=86525 |
| 2438 | "^http://thread\.gmane\.org/\\([^/]+\\)/\\([0-9]+\\)/focus=\\([0-9]+\\)$" | 2438 | "^http://thread\\.gmane\\.org/\\([^/]+\\)/\\([0-9]+\\)/focus=\\([0-9]+\\)$" |
| 2439 | url) | 2439 | url) |
| 2440 | (setq group (match-string 1 url) | 2440 | (setq group (match-string 1 url) |
| 2441 | start (string-to-number (match-string 2 url)) | 2441 | start (string-to-number (match-string 2 url)) |
| @@ -2446,15 +2446,15 @@ Valid input formats include: | |||
| 2446 | ;; URLs providing `group' and `start': | 2446 | ;; URLs providing `group' and `start': |
| 2447 | ((or (string-match | 2447 | ((or (string-match |
| 2448 | ;; http://article.gmane.org/gmane.comp.gnu.make.bugs/3584 | 2448 | ;; http://article.gmane.org/gmane.comp.gnu.make.bugs/3584 |
| 2449 | "^http://\\(?:thread\\|article\\|permalink\\)\.gmane\.org/\\([^/]+\\)/\\([0-9]+\\)" | 2449 | "^http://\\(?:thread\\|article\\|permalink\\)\\.gmane\\.org/\\([^/]+\\)/\\([0-9]+\\)" |
| 2450 | url) | 2450 | url) |
| 2451 | (string-match | 2451 | (string-match |
| 2452 | ;; Don't advertise these in the doc string yet: | 2452 | ;; Don't advertise these in the doc string yet: |
| 2453 | "^\\(?:nntp\\|news\\)://news\.gmane\.org/\\([^/]+\\)/\\([0-9]+\\)" | 2453 | "^\\(?:nntp\\|news\\)://news\\.gmane\\.org/\\([^/]+\\)/\\([0-9]+\\)" |
| 2454 | url) | 2454 | url) |
| 2455 | (string-match | 2455 | (string-match |
| 2456 | ;; http://news.gmane.org/group/gmane.emacs.gnus.general/thread=65099/force_load=t | 2456 | ;; http://news.gmane.org/group/gmane.emacs.gnus.general/thread=65099/force_load=t |
| 2457 | "^http://news\.gmane\.org/group/\\([^/]+\\)/thread=\\([0-9]+\\)" | 2457 | "^http://news\\.gmane\\.org/group/\\([^/]+\\)/thread=\\([0-9]+\\)" |
| 2458 | url)) | 2458 | url)) |
| 2459 | (setq group (match-string 1 url) | 2459 | (setq group (match-string 1 url) |
| 2460 | start (string-to-number (match-string 2 url)))) | 2460 | start (string-to-number (match-string 2 url)))) |
diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el index 56166f2fca2..37a5d6150db 100644 --- a/lisp/gnus/gnus-mlspl.el +++ b/lisp/gnus/gnus-mlspl.el | |||
| @@ -100,7 +100,7 @@ See `gnus-group-split-fancy' for more information. | |||
| 100 | "Uses information from group parameters in order to split mail. | 100 | "Uses information from group parameters in order to split mail. |
| 101 | It can be embedded into `nnmail-split-fancy' lists with the SPLIT | 101 | It can be embedded into `nnmail-split-fancy' lists with the SPLIT |
| 102 | 102 | ||
| 103 | \(: gnus-group-split-fancy GROUPS NO-CROSSPOST CATCH-ALL\) | 103 | \(: gnus-group-split-fancy GROUPS NO-CROSSPOST CATCH-ALL) |
| 104 | 104 | ||
| 105 | GROUPS may be a regular expression or a list of group names, that will | 105 | GROUPS may be a regular expression or a list of group names, that will |
| 106 | be used to select candidate groups. If it is omitted or nil, all | 106 | be used to select candidate groups. If it is omitted or nil, all |
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 23c79cbdb15..77ff428e1f1 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el | |||
| @@ -251,7 +251,7 @@ In order to prevent constant pruning, we prune back to a number | |||
| 251 | somewhat less than the maximum size. This option controls | 251 | somewhat less than the maximum size. This option controls |
| 252 | exactly how much less. For example, given a maximum size of | 252 | exactly how much less. For example, given a maximum size of |
| 253 | 50000 and a prune factor of 0.1, the pruning process will try to | 253 | 50000 and a prune factor of 0.1, the pruning process will try to |
| 254 | cut the registry back to \(- 50000 \(* 50000 0.1\)\) -> 45000 | 254 | cut the registry back to \(- 50000 \(* 50000 0.1)) -> 45000 |
| 255 | entries. The pruning process is constrained by the presence of | 255 | entries. The pruning process is constrained by the presence of |
| 256 | \"precious\" entries." | 256 | \"precious\" entries." |
| 257 | :version "25.1" | 257 | :version "25.1" |
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el index 5776b0a569f..bca5f43cd5f 100644 --- a/lisp/gnus/gnus-salt.el +++ b/lisp/gnus/gnus-salt.el | |||
| @@ -62,7 +62,7 @@ | |||
| 62 | :group 'gnus-summary-pick) | 62 | :group 'gnus-summary-pick) |
| 63 | 63 | ||
| 64 | (defcustom gnus-summary-pick-line-format | 64 | (defcustom gnus-summary-pick-line-format |
| 65 | "%-5P %U\%R\%z\%I\%(%[%4L: %-23,23n%]%) %s\n" | 65 | "%-5P %U\ %R\ %z\ %I\ %(%[%4L: %-23,23n%]%) %s\n" |
| 66 | "*The format specification of the lines in pick buffers. | 66 | "*The format specification of the lines in pick buffers. |
| 67 | It accepts the same format specs that `gnus-summary-line-format' does." | 67 | It accepts the same format specs that `gnus-summary-line-format' does." |
| 68 | :type 'string | 68 | :type 'string |
diff --git a/lisp/gnus/gnus-sieve.el b/lisp/gnus/gnus-sieve.el index cde93764cac..2a8ea3ed201 100644 --- a/lisp/gnus/gnus-sieve.el +++ b/lisp/gnus/gnus-sieve.el | |||
| @@ -80,7 +80,7 @@ formatting characters are recognized: | |||
| 80 | (defun gnus-sieve-update () | 80 | (defun gnus-sieve-update () |
| 81 | "Update the Sieve script in gnus-sieve-file, by replacing the region | 81 | "Update the Sieve script in gnus-sieve-file, by replacing the region |
| 82 | between gnus-sieve-region-start and gnus-sieve-region-end with | 82 | between gnus-sieve-region-start and gnus-sieve-region-end with |
| 83 | \(gnus-sieve-script gnus-sieve-select-method gnus-sieve-crosspost\), then | 83 | \(gnus-sieve-script gnus-sieve-select-method gnus-sieve-crosspost), then |
| 84 | execute gnus-sieve-update-shell-command. | 84 | execute gnus-sieve-update-shell-command. |
| 85 | See the documentation for these variables and functions for details." | 85 | See the documentation for these variables and functions for details." |
| 86 | (interactive) | 86 | (interactive) |
| @@ -97,7 +97,7 @@ See the documentation for these variables and functions for details." | |||
| 97 | (defun gnus-sieve-generate () | 97 | (defun gnus-sieve-generate () |
| 98 | "Generate the Sieve script in gnus-sieve-file, by replacing the region | 98 | "Generate the Sieve script in gnus-sieve-file, by replacing the region |
| 99 | between gnus-sieve-region-start and gnus-sieve-region-end with | 99 | between gnus-sieve-region-start and gnus-sieve-region-end with |
| 100 | \(gnus-sieve-script gnus-sieve-select-method gnus-sieve-crosspost\). | 100 | \(gnus-sieve-script gnus-sieve-select-method gnus-sieve-crosspost). |
| 101 | See the documentation for these variables and functions for details." | 101 | See the documentation for these variables and functions for details." |
| 102 | (interactive) | 102 | (interactive) |
| 103 | (require 'sieve) | 103 | (require 'sieve) |
| @@ -195,9 +195,9 @@ For example: | |||
| 195 | 195 | ||
| 196 | (defun gnus-sieve-script (&optional method crosspost) | 196 | (defun gnus-sieve-script (&optional method crosspost) |
| 197 | "Generate a Sieve script based on groups with select method METHOD | 197 | "Generate a Sieve script based on groups with select method METHOD |
| 198 | \(or all groups if nil\). Only groups having a `sieve' parameter are | 198 | \(or all groups if nil). Only groups having a `sieve' parameter are |
| 199 | considered. This parameter should contain an elisp test | 199 | considered. This parameter should contain an elisp test |
| 200 | \(see the documentation of gnus-sieve-test for details\). For each | 200 | \(see the documentation of gnus-sieve-test for details). For each |
| 201 | such group, a Sieve IF control structure is generated, having the | 201 | such group, a Sieve IF control structure is generated, having the |
| 202 | test as the condition and { fileinto \"group.name\"; } as the body. | 202 | test as the condition and { fileinto \"group.name\"; } as the body. |
| 203 | 203 | ||
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 215eac88aef..40e2dcf92fd 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el | |||
| @@ -1486,7 +1486,7 @@ sure of changing the value of `foo'." | |||
| 1486 | (defvar gnus-directory-sep-char-regexp "/" | 1486 | (defvar gnus-directory-sep-char-regexp "/" |
| 1487 | "The regexp of directory separator character. | 1487 | "The regexp of directory separator character. |
| 1488 | If you find some problem with the directory separator character, try | 1488 | If you find some problem with the directory separator character, try |
| 1489 | \"[/\\\\\]\" for some systems.") | 1489 | \"[/\\\\]\" for some systems.") |
| 1490 | 1490 | ||
| 1491 | (defun gnus-url-unhex (x) | 1491 | (defun gnus-url-unhex (x) |
| 1492 | (if (> x ?9) | 1492 | (if (> x ?9) |
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index ea26216faca..a2913ac9fdd 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el | |||
| @@ -1361,7 +1361,7 @@ group (or nil) as a parameter. | |||
| 1361 | If you want to save your mail in one group and the news articles you | 1361 | If you want to save your mail in one group and the news articles you |
| 1362 | write in another group, you could say something like: | 1362 | write in another group, you could say something like: |
| 1363 | 1363 | ||
| 1364 | \(setq gnus-message-archive-group | 1364 | (setq gnus-message-archive-group |
| 1365 | \\='((if (message-news-p) | 1365 | \\='((if (message-news-p) |
| 1366 | \"misc-news\" | 1366 | \"misc-news\" |
| 1367 | \"misc-mail\"))) | 1367 | \"misc-mail\"))) |
| @@ -2517,10 +2517,10 @@ This should be an alist for Emacs, or a plist for XEmacs." | |||
| 2517 | "Which information should be exposed in the User-Agent header. | 2517 | "Which information should be exposed in the User-Agent header. |
| 2518 | 2518 | ||
| 2519 | Can be a list of symbols or a string. Valid symbols are `gnus' | 2519 | Can be a list of symbols or a string. Valid symbols are `gnus' |
| 2520 | \(show Gnus version\) and `emacs' \(show Emacs version\). In | 2520 | \(show Gnus version) and `emacs' \(show Emacs version). In |
| 2521 | addition to the Emacs version, you can add `codename' \(show | 2521 | addition to the Emacs version, you can add `codename' \(show |
| 2522 | \(S\)XEmacs codename\) or either `config' \(show system | 2522 | \(S)XEmacs codename) or either `config' \(show system |
| 2523 | configuration\) or `type' \(show system type\). If you set it to | 2523 | configuration) or `type' \(show system type). If you set it to |
| 2524 | a string, be sure to use a valid format, see RFC 2616." | 2524 | a string, be sure to use a valid format, see RFC 2616." |
| 2525 | 2525 | ||
| 2526 | :version "22.1" | 2526 | :version "22.1" |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 5ede15b0538..1b693d77983 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -367,7 +367,7 @@ few false positives here." | |||
| 367 | 367 | ||
| 368 | (defcustom message-archive-header "X-No-Archive: Yes\n" | 368 | (defcustom message-archive-header "X-No-Archive: Yes\n" |
| 369 | "Header to insert when you don't want your article to be archived. | 369 | "Header to insert when you don't want your article to be archived. |
| 370 | Archives \(such as groups.google.com\) respect this header." | 370 | Archives \(such as groups.google.com) respect this header." |
| 371 | :version "22.1" | 371 | :version "22.1" |
| 372 | :type 'string | 372 | :type 'string |
| 373 | :link '(custom-manual "(message)Header Commands") | 373 | :link '(custom-manual "(message)Header Commands") |
| @@ -1200,7 +1200,7 @@ If stringp, use this; if non-nil, use no host name (user name only)." | |||
| 1200 | (defvar message-reply-headers nil | 1200 | (defvar message-reply-headers nil |
| 1201 | "The headers of the current replied article. | 1201 | "The headers of the current replied article. |
| 1202 | It is a vector of the following headers: | 1202 | It is a vector of the following headers: |
| 1203 | \[number subject from date id references chars lines xref extra].") | 1203 | [number subject from date id references chars lines xref extra].") |
| 1204 | (defvar message-newsreader nil) | 1204 | (defvar message-newsreader nil) |
| 1205 | (defvar message-mailer nil) | 1205 | (defvar message-mailer nil) |
| 1206 | (defvar message-sent-message-via nil) | 1206 | (defvar message-sent-message-via nil) |
| @@ -1303,7 +1303,7 @@ actually occur." | |||
| 1303 | "Alist of ways to send outgoing messages. | 1303 | "Alist of ways to send outgoing messages. |
| 1304 | Each element has the form | 1304 | Each element has the form |
| 1305 | 1305 | ||
| 1306 | \(TYPE PREDICATE FUNCTION) | 1306 | (TYPE PREDICATE FUNCTION) |
| 1307 | 1307 | ||
| 1308 | where TYPE is a symbol that names the method; PREDICATE is a function | 1308 | where TYPE is a symbol that names the method; PREDICATE is a function |
| 1309 | called without any parameters to determine whether the message is | 1309 | called without any parameters to determine whether the message is |
| @@ -8329,7 +8329,7 @@ From headers in the original article." | |||
| 8329 | (list message-hidden-headers) | 8329 | (list message-hidden-headers) |
| 8330 | message-hidden-headers)) | 8330 | message-hidden-headers)) |
| 8331 | (inhibit-point-motion-hooks t) | 8331 | (inhibit-point-motion-hooks t) |
| 8332 | (after-change-functions nil) | 8332 | (inhibit-modification-hooks t) |
| 8333 | (end-of-headers (point-min))) | 8333 | (end-of-headers (point-min))) |
| 8334 | (when regexps | 8334 | (when regexps |
| 8335 | (save-excursion | 8335 | (save-excursion |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 3d5a15afedb..327b0e6e86f 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -1419,7 +1419,7 @@ Return t if meta tag is added or replaced." | |||
| 1419 | (goto-char (point-min)) | 1419 | (goto-char (point-min)) |
| 1420 | (if (re-search-forward "\ | 1420 | (if (re-search-forward "\ |
| 1421 | <meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']\ | 1421 | <meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']\ |
| 1422 | text/\\(\\sw+\\)\\(?:\;\\s-*charset=\\([^\"'>]+\\)\\)?[^>]*>" nil t) | 1422 | text/\\(\\sw+\\)\\(?:;\\s-*charset=\\([^\"'>]+\\)\\)?[^>]*>" nil t) |
| 1423 | (if (and (not force-charset) | 1423 | (if (and (not force-charset) |
| 1424 | (match-beginning 2) | 1424 | (match-beginning 2) |
| 1425 | (string-match "\\`html\\'" (match-string 1))) | 1425 | (string-match "\\`html\\'" (match-string 1))) |
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el index 8304f6f6a38..3d1515e8473 100644 --- a/lisp/gnus/mm-uu.el +++ b/lisp/gnus/mm-uu.el | |||
| @@ -118,7 +118,7 @@ This can be either \"inline\" or \"attachment\".") | |||
| 118 | mm-uu-shar-extract) | 118 | mm-uu-shar-extract) |
| 119 | (forward | 119 | (forward |
| 120 | ;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and | 120 | ;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and |
| 121 | ;; Peter von der Ah\'e <pahe@daimi.au.dk> | 121 | ;; Peter von der Ahé <pahe@daimi.au.dk> |
| 122 | "^-+ \\(Start of \\)?Forwarded message" | 122 | "^-+ \\(Start of \\)?Forwarded message" |
| 123 | "^-+ End \\(of \\)?forwarded message" | 123 | "^-+ End \\(of \\)?forwarded message" |
| 124 | mm-uu-forward-extract | 124 | mm-uu-forward-extract |
| @@ -771,4 +771,8 @@ Assume text has been decoded if DECODED is non-nil." | |||
| 771 | 771 | ||
| 772 | (provide 'mm-uu) | 772 | (provide 'mm-uu) |
| 773 | 773 | ||
| 774 | ;; Local Variables: | ||
| 775 | ;; coding: utf-8 | ||
| 776 | ;; End: | ||
| 777 | |||
| 774 | ;;; mm-uu.el ends here | 778 | ;;; mm-uu.el ends here |
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el index 70d803faf54..cca341875e0 100644 --- a/lisp/gnus/nndoc.el +++ b/lisp/gnus/nndoc.el | |||
| @@ -742,7 +742,7 @@ from the document.") | |||
| 742 | nil t) | 742 | nil t) |
| 743 | (setq subject (concat (match-string 1) subject)) | 743 | (setq subject (concat (match-string 1) subject)) |
| 744 | (setq from (concat (match-string 2) " " from)))))) | 744 | (setq from (concat (match-string 2) " " from)))))) |
| 745 | (while (and from (string-match "(\[^)\]*)" from)) | 745 | (while (and from (string-match "([^)]*)" from)) |
| 746 | (setq from (replace-match "" t t from))) | 746 | (setq from (replace-match "" t t from))) |
| 747 | (insert "From: " (or from "unknown") | 747 | (insert "From: " (or from "unknown") |
| 748 | "\nSubject: " (or subject "(no subject)") "\n") | 748 | "\nSubject: " (or subject "(no subject)") "\n") |
diff --git a/lisp/gnus/nnheader.el b/lisp/gnus/nnheader.el index c88f4afa7dc..0d2d453df3e 100644 --- a/lisp/gnus/nnheader.el +++ b/lisp/gnus/nnheader.el | |||
| @@ -66,7 +66,7 @@ they will keep on jabbering all the time." | |||
| 66 | "*Max length of the head of articles. | 66 | "*Max length of the head of articles. |
| 67 | 67 | ||
| 68 | Value is an integer, nil, or t. nil means read in chunks of a file | 68 | Value is an integer, nil, or t. nil means read in chunks of a file |
| 69 | indefinitely until a complete head is found\; t means always read the | 69 | indefinitely until a complete head is found; t means always read the |
| 70 | entire file immediately, disregarding `nnheader-head-chop-length'. | 70 | entire file immediately, disregarding `nnheader-head-chop-length'. |
| 71 | 71 | ||
| 72 | Integer values will in effect be rounded up to the nearest multiple of | 72 | Integer values will in effect be rounded up to the nearest multiple of |
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el index 5b72b52079d..3d8926b6925 100644 --- a/lisp/gnus/nnmaildir.el +++ b/lisp/gnus/nnmaildir.el | |||
| @@ -147,7 +147,7 @@ by nnmaildir-request-article.") | |||
| 147 | 147 | ||
| 148 | ;; A NOV structure looks like this (must be prin1-able, so no defstruct): | 148 | ;; A NOV structure looks like this (must be prin1-able, so no defstruct): |
| 149 | ["subject\tfrom\tdate" | 149 | ["subject\tfrom\tdate" |
| 150 | "references\tchars\lines" | 150 | "references\tchars\tlines" |
| 151 | "To: you\tIn-Reply-To: <your.mess@ge>" | 151 | "To: you\tIn-Reply-To: <your.mess@ge>" |
| 152 | (12345 67890) ;; modtime of the corresponding article file | 152 | (12345 67890) ;; modtime of the corresponding article file |
| 153 | (to in-reply-to)] ;; contemporary value of nnmail-extra-headers | 153 | (to in-reply-to)] ;; contemporary value of nnmail-extra-headers |
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index 6c97cecdcdb..ec9a66614b4 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el | |||
| @@ -175,7 +175,7 @@ This variable is used by the various nntp-open-via-* methods.") | |||
| 175 | "*Whether both telnet client and server support the ENVIRON option. | 175 | "*Whether both telnet client and server support the ENVIRON option. |
| 176 | If non-nil, there will be no prompt for a login name.") | 176 | If non-nil, there will be no prompt for a login name.") |
| 177 | 177 | ||
| 178 | (defvoo nntp-via-shell-prompt "bash\\|\$ *\r?$\\|> *\r?" | 178 | (defvoo nntp-via-shell-prompt "bash\\|[$>] *\r?$" |
| 179 | "*Regular expression to match the shell prompt on an intermediate host. | 179 | "*Regular expression to match the shell prompt on an intermediate host. |
| 180 | This variable is used by the `nntp-open-via-telnet-and-telnet' method.") | 180 | This variable is used by the `nntp-open-via-telnet-and-telnet' method.") |
| 181 | 181 | ||
| @@ -1764,7 +1764,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the | |||
| 1764 | (defvoo nntp-open-telnet-envuser nil | 1764 | (defvoo nntp-open-telnet-envuser nil |
| 1765 | "*If non-nil, telnet session (client and server both) will support the ENVIRON option and not prompt for login name.") | 1765 | "*If non-nil, telnet session (client and server both) will support the ENVIRON option and not prompt for login name.") |
| 1766 | 1766 | ||
| 1767 | (defvoo nntp-telnet-shell-prompt "bash\\|\$ *\r?$\\|> *\r?" | 1767 | (defvoo nntp-telnet-shell-prompt "bash\\|[$>] *\r?$" |
| 1768 | "*Regular expression to match the shell prompt on the remote machine.") | 1768 | "*Regular expression to match the shell prompt on the remote machine.") |
| 1769 | 1769 | ||
| 1770 | (defvoo nntp-rlogin-program "rsh" | 1770 | (defvoo nntp-rlogin-program "rsh" |
diff --git a/lisp/gnus/registry.el b/lisp/gnus/registry.el index 783ff36172b..9f3f38175bc 100644 --- a/lisp/gnus/registry.el +++ b/lisp/gnus/registry.el | |||
| @@ -112,7 +112,7 @@ | |||
| 112 | :initform 0.1 | 112 | :initform 0.1 |
| 113 | :type float | 113 | :type float |
| 114 | :custom float | 114 | :custom float |
| 115 | :documentation "Prune to \(:max-size * :prune-factor\) less | 115 | :documentation "Prune to (:max-size * :prune-factor) less |
| 116 | than the :max-size limit. Should be a float between 0 and 1.") | 116 | than the :max-size limit. Should be a float between 0 and 1.") |
| 117 | (tracked :initarg :tracked | 117 | (tracked :initarg :tracked |
| 118 | :initform nil | 118 | :initform nil |
| @@ -222,9 +222,9 @@ When SET is not nil, set it for VAL (use t for an empty list)." | |||
| 222 | 222 | ||
| 223 | (defmethod registry-search ((db registry-db) &rest spec) | 223 | (defmethod registry-search ((db registry-db) &rest spec) |
| 224 | "Search for SPEC across the registry-db THIS. | 224 | "Search for SPEC across the registry-db THIS. |
| 225 | For example calling with :member \\='(a 1 2) will match entry \\='((a 3 1)). | 225 | For example calling with `:member \\='(a 1 2)' will match entry \((a 3 1)). |
| 226 | Calling with :all t (any non-nil value) will match all. | 226 | Calling with `:all t' (any non-nil value) will match all. |
| 227 | Calling with :regex \\='\(a \"h.llo\") will match entry \\='((a \"hullo\" \"bye\"). | 227 | Calling with `:regex \\='(a \"h.llo\")' will match entry \(a \"hullo\" \"bye\"). |
| 228 | The test order is to check :all first, then :member, then :regex." | 228 | The test order is to check :all first, then :member, then :regex." |
| 229 | (when db | 229 | (when db |
| 230 | (let ((all (plist-get spec :all)) | 230 | (let ((all (plist-get spec :all)) |
| @@ -331,7 +331,7 @@ Errors out if the key exists already." | |||
| 331 | "Prunes the registry-db object DB. | 331 | "Prunes the registry-db object DB. |
| 332 | 332 | ||
| 333 | Attempts to prune the number of entries down to \(* | 333 | Attempts to prune the number of entries down to \(* |
| 334 | :max-size :prune-factor\) less than the max-size limit, so | 334 | :max-size :prune-factor) less than the max-size limit, so |
| 335 | pruning doesn't need to happen on every save. Removes only | 335 | pruning doesn't need to happen on every save. Removes only |
| 336 | entries without the :precious keys, so it may not be possible to | 336 | entries without the :precious keys, so it may not be possible to |
| 337 | reach the target limit. | 337 | reach the target limit. |
diff --git a/lisp/gnus/rfc1843.el b/lisp/gnus/rfc1843.el index cab2f4e751c..83bda2af8a9 100644 --- a/lisp/gnus/rfc1843.el +++ b/lisp/gnus/rfc1843.el | |||
| @@ -46,11 +46,11 @@ | |||
| 46 | 46 | ||
| 47 | (defvar rfc1843-hzp-word-regexp | 47 | (defvar rfc1843-hzp-word-regexp |
| 48 | "~\\({\\([\041-\167][\041-\176]\\| \\)+\\|\ | 48 | "~\\({\\([\041-\167][\041-\176]\\| \\)+\\|\ |
| 49 | \[<>]\\([\041-\175][\041-\176]\\| \\)+\\)\\(~}\\|$\\)") | 49 | [<>]\\([\041-\175][\041-\176]\\| \\)+\\)\\(~}\\|$\\)") |
| 50 | 50 | ||
| 51 | (defvar rfc1843-hzp-word-regexp-strictly | 51 | (defvar rfc1843-hzp-word-regexp-strictly |
| 52 | "~\\({\\([\041-\167][\041-\176]\\)+\\|\ | 52 | "~\\({\\([\041-\167][\041-\176]\\)+\\|\ |
| 53 | \[<>]\\([\041-\175][\041-\176]\\)+\\)\\(~}\\|$\\)") | 53 | [<>]\\([\041-\175][\041-\176]\\)+\\)\\(~}\\|$\\)") |
| 54 | 54 | ||
| 55 | (defcustom rfc1843-decode-loosely nil | 55 | (defcustom rfc1843-decode-loosely nil |
| 56 | "Loosely check HZ encoding if non-nil. | 56 | "Loosely check HZ encoding if non-nil. |
diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el index ea558d75a20..e8a377979ff 100644 --- a/lisp/gnus/rfc2047.el +++ b/lisp/gnus/rfc2047.el | |||
| @@ -102,7 +102,7 @@ quoted-printable and base64 respectively.") | |||
| 102 | 102 | ||
| 103 | (eval-and-compile ;; Necessary to hard code them in `rfc2047-decode-region'. | 103 | (eval-and-compile ;; Necessary to hard code them in `rfc2047-decode-region'. |
| 104 | (defconst rfc2047-encoded-word-regexp | 104 | (defconst rfc2047-encoded-word-regexp |
| 105 | "=\\?\\([^][\000-\040()<>@,\;:*\\\"/?.=]+\\)\\(?:\\*[^?]+\\)?\\?\ | 105 | "=\\?\\([^][\000-\040()<>@,;:*\\\"/?.=]+\\)\\(?:\\*[^?]+\\)?\\?\ |
| 106 | \\(B\\?[+/0-9A-Za-z]*=*\ | 106 | \\(B\\?[+/0-9A-Za-z]*=*\ |
| 107 | \\|Q\\?[ ->@-~]*\ | 107 | \\|Q\\?[ ->@-~]*\ |
| 108 | \\)\\?=" | 108 | \\)\\?=" |
| @@ -112,7 +112,7 @@ quoted-printable and base64 respectively.") | |||
| 112 | ;; the characters that those encodings may generally use. | 112 | ;; the characters that those encodings may generally use. |
| 113 | ) | 113 | ) |
| 114 | (defconst rfc2047-encoded-word-regexp-loose | 114 | (defconst rfc2047-encoded-word-regexp-loose |
| 115 | "=\\?\\([^][\000-\040()<>@,\;:*\\\"/?.=]+\\)\\(?:\\*[^?]+\\)?\\?\ | 115 | "=\\?\\([^][\000-\040()<>@,;:*\\\"/?.=]+\\)\\(?:\\*[^?]+\\)?\\?\ |
| 116 | \\(B\\?[+/0-9A-Za-z]*=*\ | 116 | \\(B\\?[+/0-9A-Za-z]*=*\ |
| 117 | \\|Q\\?\\(?:\\?+[ -<>@-~]\\)?\\(?:[ ->@-~]+\\?+[ -<>@-~]\\)*[ ->@-~]*\\?*\ | 117 | \\|Q\\?\\(?:\\?+[ -<>@-~]\\)?\\(?:[ ->@-~]+\\?+[ -<>@-~]\\)*[ ->@-~]*\\?*\ |
| 118 | \\)\\?=" | 118 | \\)\\?=" |
diff --git a/lisp/gnus/spam-report.el b/lisp/gnus/spam-report.el index de680795a10..5871b08b35a 100644 --- a/lisp/gnus/spam-report.el +++ b/lisp/gnus/spam-report.el | |||
| @@ -43,7 +43,7 @@ If you are using spam.el, consider setting gnus-spam-process-newsgroups | |||
| 43 | or the gnus-group-spam-exit-processor-report-gmane group/topic parameter | 43 | or the gnus-group-spam-exit-processor-report-gmane group/topic parameter |
| 44 | instead." | 44 | instead." |
| 45 | :type '(radio (const nil) | 45 | :type '(radio (const nil) |
| 46 | (regexp :value "^nntp\+.*:gmane\.")) | 46 | (regexp :value "^nntp\\+.*:gmane\\.")) |
| 47 | :group 'spam-report) | 47 | :group 'spam-report) |
| 48 | 48 | ||
| 49 | (defcustom spam-report-gmane-use-article-number t | 49 | (defcustom spam-report-gmane-use-article-number t |
diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 77ef21d4af1..945b4d523cc 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el | |||
| @@ -178,7 +178,7 @@ if the variable `help-downcase-arguments' is non-nil." | |||
| 178 | (skip-chars-forward "^ ") | 178 | (skip-chars-forward "^ ") |
| 179 | (while next | 179 | (while next |
| 180 | (or opt (not (looking-at " &")) (setq opt t)) | 180 | (or opt (not (looking-at " &")) (setq opt t)) |
| 181 | (if (not (re-search-forward " \\([\\[(]*\\)\\([^] &)\.]+\\)" nil t)) | 181 | (if (not (re-search-forward " \\([\\[(]*\\)\\([^] &).]+\\)" nil t)) |
| 182 | (setq next nil) | 182 | (setq next nil) |
| 183 | (setq args (cons (match-string 2) args)) | 183 | (setq args (cons (match-string 2) args)) |
| 184 | (when (and opt (string= (match-string 1) "(")) | 184 | (when (and opt (string= (match-string 1) "(")) |
diff --git a/lisp/help.el b/lisp/help.el index 66df6b08037..3387628fb8a 100644 --- a/lisp/help.el +++ b/lisp/help.el | |||
| @@ -355,7 +355,7 @@ With argument, display info only for the selected version." | |||
| 355 | (while (re-search-forward | 355 | (while (re-search-forward |
| 356 | (if (member file '("NEWS.18" "NEWS.1-17")) | 356 | (if (member file '("NEWS.18" "NEWS.1-17")) |
| 357 | "Changes in \\(?:Emacs\\|version\\)?[ \t]*\\([0-9]+\\(?:\\.[0-9]+\\)?\\)" | 357 | "Changes in \\(?:Emacs\\|version\\)?[ \t]*\\([0-9]+\\(?:\\.[0-9]+\\)?\\)" |
| 358 | "^\* [^0-9\n]*\\([0-9]+\\.[0-9]+\\)") nil t) | 358 | "^\\* [^0-9\n]*\\([0-9]+\\.[0-9]+\\)") nil t) |
| 359 | (setq res (cons (match-string-no-properties 1) res))))) | 359 | (setq res (cons (match-string-no-properties 1) res))))) |
| 360 | (cons "NEWS" | 360 | (cons "NEWS" |
| 361 | (directory-files data-directory nil | 361 | (directory-files data-directory nil |
| @@ -392,7 +392,7 @@ With argument, display info only for the selected version." | |||
| 392 | (when (re-search-forward | 392 | (when (re-search-forward |
| 393 | (concat (if (< vn 19) | 393 | (concat (if (< vn 19) |
| 394 | "Changes in Emacs[ \t]*" | 394 | "Changes in Emacs[ \t]*" |
| 395 | "^\* [^0-9\n]*") version "$") | 395 | "^\\* [^0-9\n]*") version "$") |
| 396 | nil t) | 396 | nil t) |
| 397 | (beginning-of-line) | 397 | (beginning-of-line) |
| 398 | (narrow-to-region | 398 | (narrow-to-region |
| @@ -402,7 +402,7 @@ With argument, display info only for the selected version." | |||
| 402 | (re-search-forward | 402 | (re-search-forward |
| 403 | (if (< vn 19) | 403 | (if (< vn 19) |
| 404 | "Changes in \\(?:Emacs\\|version\\)?[ \t]*\\([0-9]+\\(?:\\.[0-9]+\\)?\\)" | 404 | "Changes in \\(?:Emacs\\|version\\)?[ \t]*\\([0-9]+\\(?:\\.[0-9]+\\)?\\)" |
| 405 | "^\* [^0-9\n]*\\([0-9]+\\.[0-9]+\\)") nil t)) | 405 | "^\\* [^0-9\n]*\\([0-9]+\\.[0-9]+\\)") nil t)) |
| 406 | (equal (match-string-no-properties 1) version))) | 406 | (equal (match-string-no-properties 1) version))) |
| 407 | (or res (goto-char (point-max))) | 407 | (or res (goto-char (point-max))) |
| 408 | (beginning-of-line) | 408 | (beginning-of-line) |
diff --git a/lisp/hfy-cmap.el b/lisp/hfy-cmap.el index b7d3b344aca..6b7f2caed1e 100644 --- a/lisp/hfy-cmap.el +++ b/lisp/hfy-cmap.el | |||
| @@ -810,7 +810,7 @@ Loads the variable `hfy-rgb-txt-colour-map', which is used by | |||
| 810 | `hfy-fallback-colour-values'." | 810 | `hfy-fallback-colour-values'." |
| 811 | (interactive | 811 | (interactive |
| 812 | (list | 812 | (list |
| 813 | (read-file-name "rgb.txt \(equivalent\) file: " "" nil t (hfy-rgb-file)))) | 813 | (read-file-name "rgb.txt (equivalent) file: " "" nil t (hfy-rgb-file)))) |
| 814 | (let ((rgb-buffer nil) | 814 | (let ((rgb-buffer nil) |
| 815 | (end-of-rgb 0) | 815 | (end-of-rgb 0) |
| 816 | (rgb-txt nil)) | 816 | (rgb-txt nil)) |
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index 74cdfe13f58..0a0a0b346c0 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el | |||
| @@ -1140,7 +1140,7 @@ See also `hfy-face-to-css'." | |||
| 1140 | 1140 | ||
| 1141 | (defvar hfy-face-to-css 'hfy-face-to-css-default | 1141 | (defvar hfy-face-to-css 'hfy-face-to-css-default |
| 1142 | "Handler for mapping faces to styles. | 1142 | "Handler for mapping faces to styles. |
| 1143 | The signature of the handler is of the form \(lambda (FN) ...\). | 1143 | The signature of the handler is of the form \(lambda (FN) ...). |
| 1144 | FN is a font or `defface' specification (cf | 1144 | FN is a font or `defface' specification (cf |
| 1145 | `face-attr-construct'). The handler should return a cons cell of | 1145 | `face-attr-construct'). The handler should return a cons cell of |
| 1146 | the form (STYLE-NAME . STYLE-SPEC). | 1146 | the form (STYLE-NAME . STYLE-SPEC). |
| @@ -1598,7 +1598,7 @@ information." | |||
| 1598 | (defvar hfy-begin-span-handler 'hfy-begin-span | 1598 | (defvar hfy-begin-span-handler 'hfy-begin-span |
| 1599 | "Handler to begin a span of text. | 1599 | "Handler to begin a span of text. |
| 1600 | The signature of the handler is \(lambda (STYLE TEXT-BLOCK | 1600 | The signature of the handler is \(lambda (STYLE TEXT-BLOCK |
| 1601 | TEXT-ID TEXT-BEGINS-BLOCK-P) ...\). The handler must insert | 1601 | TEXT-ID TEXT-BEGINS-BLOCK-P) ...). The handler must insert |
| 1602 | appropriate tags to begin a span of text. | 1602 | appropriate tags to begin a span of text. |
| 1603 | 1603 | ||
| 1604 | STYLE is the name of the style that begins at point. It is | 1604 | STYLE is the name of the style that begins at point. It is |
| @@ -1626,7 +1626,7 @@ The default handler is `hfy-begin-span'.") | |||
| 1626 | 1626 | ||
| 1627 | (defvar hfy-end-span-handler 'hfy-end-span | 1627 | (defvar hfy-end-span-handler 'hfy-end-span |
| 1628 | "Handler to end a span of text. | 1628 | "Handler to end a span of text. |
| 1629 | The signature of the handler is \(lambda () ...\). The handler | 1629 | The signature of the handler is \(lambda () ...). The handler |
| 1630 | must insert appropriate tags to end a span of text. | 1630 | must insert appropriate tags to end a span of text. |
| 1631 | 1631 | ||
| 1632 | The default handler is `hfy-end-span'.") | 1632 | The default handler is `hfy-end-span'.") |
| @@ -2412,7 +2412,7 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'." | |||
| 2412 | (load file 'NOERROR nil nil) )) | 2412 | (load file 'NOERROR nil nil) )) |
| 2413 | 2413 | ||
| 2414 | 2414 | ||
| 2415 | ;;;### (autoloads nil "hfy-cmap" "hfy-cmap.el" "ce07a28b93c09032fd6b225ad74be0df") | 2415 | ;;;### (autoloads nil "hfy-cmap" "hfy-cmap.el" "1fb78b15b18622256262c7246b2a3520") |
| 2416 | ;;; Generated autoloads from hfy-cmap.el | 2416 | ;;; Generated autoloads from hfy-cmap.el |
| 2417 | 2417 | ||
| 2418 | (autoload 'htmlfontify-load-rgb-file "hfy-cmap" "\ | 2418 | (autoload 'htmlfontify-load-rgb-file "hfy-cmap" "\ |
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 718471b7993..5065b661101 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el | |||
| @@ -1785,7 +1785,7 @@ If point is on a group name, this function operates on that group." | |||
| 1785 | (let ((procs 0) | 1785 | (let ((procs 0) |
| 1786 | (files 0)) | 1786 | (files 0)) |
| 1787 | (dolist (string strings) | 1787 | (dolist (string strings) |
| 1788 | (if (string-match "\\(\?:\\`(\[\[:ascii:\]\]\+)\\)" string) | 1788 | (if (string-match "\\(?:\\`([[:ascii:]]+)\\)" string) |
| 1789 | (progn (setq procs (1+ procs)) | 1789 | (progn (setq procs (1+ procs)) |
| 1790 | (if (< (match-end 0) (length string)) | 1790 | (if (< (match-end 0) (length string)) |
| 1791 | (setq files (1+ files)))) | 1791 | (setq files (1+ files)))) |
| @@ -2037,7 +2037,7 @@ the value of point at the beginning of the line for that buffer." | |||
| 2037 | (defun ibuffer-update-title-and-summary (format) | 2037 | (defun ibuffer-update-title-and-summary (format) |
| 2038 | (ibuffer-assert-ibuffer-mode) | 2038 | (ibuffer-assert-ibuffer-mode) |
| 2039 | ;; Don't do funky font-lock stuff here | 2039 | ;; Don't do funky font-lock stuff here |
| 2040 | (let ((after-change-functions nil)) | 2040 | (let ((inhibit-modification-hooks t)) |
| 2041 | (if (get-text-property (point-min) 'ibuffer-title) | 2041 | (if (get-text-property (point-min) 'ibuffer-title) |
| 2042 | (delete-region (point-min) | 2042 | (delete-region (point-min) |
| 2043 | (next-single-property-change | 2043 | (next-single-property-change |
| @@ -2244,7 +2244,7 @@ If optional arg SILENT is non-nil, do not display progress messages." | |||
| 2244 | (orig (count-lines (point-min) (point))) | 2244 | (orig (count-lines (point-min) (point))) |
| 2245 | ;; Inhibit font-lock caching tricks, since we're modifying the | 2245 | ;; Inhibit font-lock caching tricks, since we're modifying the |
| 2246 | ;; entire buffer at once | 2246 | ;; entire buffer at once |
| 2247 | (after-change-functions nil) | 2247 | (inhibit-modification-hooks t) |
| 2248 | (ext-loaded (featurep 'ibuf-ext)) | 2248 | (ext-loaded (featurep 'ibuf-ext)) |
| 2249 | (bgroups (if ext-loaded | 2249 | (bgroups (if ext-loaded |
| 2250 | (ibuffer-generate-filter-groups bmarklist) | 2250 | (ibuffer-generate-filter-groups bmarklist) |
diff --git a/lisp/ido.el b/lisp/ido.el index 13b6d52e75c..6ad354c58f2 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -3777,13 +3777,13 @@ frame, rather than all frames, regardless of value of `ido-all-frames'." | |||
| 3777 | (not (and (eq ido-cur-item 'buffer) | 3777 | (not (and (eq ido-cur-item 'buffer) |
| 3778 | ido-buffer-disable-smart-matches)) | 3778 | ido-buffer-disable-smart-matches)) |
| 3779 | (not ido-enable-regexp) | 3779 | (not ido-enable-regexp) |
| 3780 | (not (string-match "\$\\'" rex0)) | 3780 | (not (string-match "$\\'" rex0)) |
| 3781 | (concat "\\`" rex0 (if slash "/" "") "\\'"))) | 3781 | (concat "\\`" rex0 (if slash "/" "") "\\'"))) |
| 3782 | (suffix-re (and do-full slash | 3782 | (suffix-re (and do-full slash |
| 3783 | (not (and (eq ido-cur-item 'buffer) | 3783 | (not (and (eq ido-cur-item 'buffer) |
| 3784 | ido-buffer-disable-smart-matches)) | 3784 | ido-buffer-disable-smart-matches)) |
| 3785 | (not ido-enable-regexp) | 3785 | (not ido-enable-regexp) |
| 3786 | (not (string-match "\$\\'" rex0)) | 3786 | (not (string-match "$\\'" rex0)) |
| 3787 | (concat rex0 "/\\'"))) | 3787 | (concat rex0 "/\\'"))) |
| 3788 | (prefix-re (and full-re (not ido-enable-prefix) | 3788 | (prefix-re (and full-re (not ido-enable-prefix) |
| 3789 | (concat "\\`" rexq))) | 3789 | (concat "\\`" rexq))) |
diff --git a/lisp/image-dired.el b/lisp/image-dired.el index 013fc5ae393..c5efb338152 100644 --- a/lisp/image-dired.el +++ b/lisp/image-dired.el | |||
| @@ -1910,7 +1910,7 @@ overwritten. This confirmation can be turned off using | |||
| 1910 | (message "No image at point") | 1910 | (message "No image at point") |
| 1911 | (let ((file (image-dired-original-file-name)) | 1911 | (let ((file (image-dired-original-file-name)) |
| 1912 | command) | 1912 | command) |
| 1913 | (if (not (string-match "\.[jJ][pP[eE]?[gG]$" file)) | 1913 | (if (not (string-match "\\.[jJ][pP[eE]?[gG]$" file)) |
| 1914 | (error "Only JPEG images can be rotated!")) | 1914 | (error "Only JPEG images can be rotated!")) |
| 1915 | (setq command (format-spec | 1915 | (setq command (format-spec |
| 1916 | image-dired-cmd-rotate-original-options | 1916 | image-dired-cmd-rotate-original-options |
| @@ -1950,7 +1950,7 @@ for traceability. The format of the returned file name is | |||
| 1950 | YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from | 1950 | YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from |
| 1951 | `image-dired-copy-with-exif-file-name'." | 1951 | `image-dired-copy-with-exif-file-name'." |
| 1952 | (let (data no-exif-data-found) | 1952 | (let (data no-exif-data-found) |
| 1953 | (if (not (string-match "\.[Jj][Pp][Ee]?[Gg]$" (expand-file-name file))) | 1953 | (if (not (string-match "\\.[Jj][Pp][Ee]?[Gg]$" (expand-file-name file))) |
| 1954 | (progn | 1954 | (progn |
| 1955 | (setq no-exif-data-found t) | 1955 | (setq no-exif-data-found t) |
| 1956 | (setq data | 1956 | (setq data |
| @@ -2572,7 +2572,7 @@ tags to their respective image file. Internal function used by | |||
| 2572 | ;; (let ((fattribs (file-attributes f))) | 2572 | ;; (let ((fattribs (file-attributes f))) |
| 2573 | ;; ;; Get last access time and file size | 2573 | ;; ;; Get last access time and file size |
| 2574 | ;; `(,(nth 4 fattribs) ,(nth 7 fattribs) ,f))) | 2574 | ;; `(,(nth 4 fattribs) ,(nth 7 fattribs) ,f))) |
| 2575 | ;; (directory-files (image-dired-dir) t ".+\.thumb\..+$")) | 2575 | ;; (directory-files (image-dired-dir) t ".+\\.thumb\\..+$")) |
| 2576 | ;; ;; Sort function. Compare time between two files. | 2576 | ;; ;; Sort function. Compare time between two files. |
| 2577 | ;; (lambda (l1 l2) | 2577 | ;; (lambda (l1 l2) |
| 2578 | ;; (time-less-p (car l1) (car l2))))) | 2578 | ;; (time-less-p (car l1) (car l2))))) |
diff --git a/lisp/image.el b/lisp/image.el index 0c62088ca5d..d557e39aac2 100644 --- a/lisp/image.el +++ b/lisp/image.el | |||
| @@ -34,7 +34,7 @@ | |||
| 34 | 34 | ||
| 35 | (defconst image-type-header-regexps | 35 | (defconst image-type-header-regexps |
| 36 | `(("\\`/[\t\n\r ]*\\*.*XPM.\\*/" . xpm) | 36 | `(("\\`/[\t\n\r ]*\\*.*XPM.\\*/" . xpm) |
| 37 | ("\\`P[1-6]\\\(?:\ | 37 | ("\\`P[1-6]\\(?:\ |
| 38 | \\(?:\\(?:#[^\r\n]*[\r\n]\\)?[[:space:]]\\)+\ | 38 | \\(?:\\(?:#[^\r\n]*[\r\n]\\)?[[:space:]]\\)+\ |
| 39 | \\(?:\\(?:#[^\r\n]*[\r\n]\\)?[0-9]\\)+\ | 39 | \\(?:\\(?:#[^\r\n]*[\r\n]\\)?[0-9]\\)+\ |
| 40 | \\)\\{2\\}" . pbm) | 40 | \\)\\{2\\}" . pbm) |
diff --git a/lisp/info-look.el b/lisp/info-look.el index 6168a0c2660..70c30c3e7a6 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el | |||
| @@ -142,7 +142,7 @@ OTHER-MODES is a list of cross references to other help modes.") | |||
| 142 | "Add or update a help specification. | 142 | "Add or update a help specification. |
| 143 | Function arguments are specified as keyword/argument pairs: | 143 | Function arguments are specified as keyword/argument pairs: |
| 144 | 144 | ||
| 145 | \(KEYWORD . ARGUMENT) | 145 | (KEYWORD . ARGUMENT) |
| 146 | 146 | ||
| 147 | KEYWORD is either `:topic', `:mode', `:regexp', `:ignore-case', | 147 | KEYWORD is either `:topic', `:mode', `:regexp', `:ignore-case', |
| 148 | `:doc-spec', `:parse-rule', or `:other-modes'. | 148 | `:doc-spec', `:parse-rule', or `:other-modes'. |
diff --git a/lisp/info.el b/lisp/info.el index a5a2c559e0d..bd12d568291 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -3838,7 +3838,7 @@ START is a regular expression which will match the | |||
| 3838 | beginning of the tokens delimited string. | 3838 | beginning of the tokens delimited string. |
| 3839 | ALL is a regular expression with a single | 3839 | ALL is a regular expression with a single |
| 3840 | parenthesized subpattern which is the token to be | 3840 | parenthesized subpattern which is the token to be |
| 3841 | returned. E.g. `{\(.*\)}' would return any string | 3841 | returned. E.g. `{(.*)}' would return any string |
| 3842 | enclosed in braces around POS. | 3842 | enclosed in braces around POS. |
| 3843 | ERRORSTRING optional fourth argument, controls action on no match: | 3843 | ERRORSTRING optional fourth argument, controls action on no match: |
| 3844 | nil: return nil | 3844 | nil: return nil |
| @@ -4720,28 +4720,28 @@ first line or header line, and for breadcrumb links.") | |||
| 4720 | ;; Fontify titles | 4720 | ;; Fontify titles |
| 4721 | (goto-char (point-min)) | 4721 | (goto-char (point-min)) |
| 4722 | (when (and font-lock-mode not-fontified-p) | 4722 | (when (and font-lock-mode not-fontified-p) |
| 4723 | (while (and (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" | 4723 | (while (re-search-forward "\n\\([^ \t\n].+\\)\n\\(\\*\\*+\\|==+\\|--+\\|\\.\\.+\\)$" |
| 4724 | nil t) | 4724 | nil t) |
| 4725 | ;; Only consider it as an underlined title if the ASCII | 4725 | ;; Only consider it as an underlined title if the ASCII |
| 4726 | ;; underline has the same size as the text. A typical | 4726 | ;; underline has the same size as the text. A typical |
| 4727 | ;; counter example is when a continuation "..." is alone | 4727 | ;; counter example is when a continuation "..." is alone |
| 4728 | ;; on a line. | 4728 | ;; on a line. |
| 4729 | (= (string-width (match-string 1)) | 4729 | (when (= (string-width (match-string 1)) |
| 4730 | (string-width (match-string 2)))) | 4730 | (string-width (match-string 2))) |
| 4731 | (let* ((c (preceding-char)) | 4731 | (let* ((c (preceding-char)) |
| 4732 | (face | 4732 | (face |
| 4733 | (cond ((= c ?*) 'info-title-1) | 4733 | (cond ((= c ?*) 'info-title-1) |
| 4734 | ((= c ?=) 'info-title-2) | 4734 | ((= c ?=) 'info-title-2) |
| 4735 | ((= c ?-) 'info-title-3) | 4735 | ((= c ?-) 'info-title-3) |
| 4736 | (t 'info-title-4)))) | 4736 | (t 'info-title-4)))) |
| 4737 | (put-text-property (match-beginning 1) (match-end 1) | 4737 | (put-text-property (match-beginning 1) (match-end 1) |
| 4738 | 'font-lock-face face)) | 4738 | 'font-lock-face face)) |
| 4739 | ;; This is a serious problem for trying to handle multiple | 4739 | ;; This is a serious problem for trying to handle multiple |
| 4740 | ;; frame types at once. We want this text to be invisible | 4740 | ;; frame types at once. We want this text to be invisible |
| 4741 | ;; on frames that can display the font above. | 4741 | ;; on frames that can display the font above. |
| 4742 | (when (memq (framep (selected-frame)) '(x pc w32 ns)) | 4742 | (when (memq (framep (selected-frame)) '(x pc w32 ns)) |
| 4743 | (add-text-properties (1- (match-beginning 2)) (match-end 2) | 4743 | (add-text-properties (1- (match-beginning 2)) (match-end 2) |
| 4744 | '(invisible t front-sticky nil rear-nonsticky t))))) | 4744 | '(invisible t front-sticky nil rear-nonsticky t)))))) |
| 4745 | 4745 | ||
| 4746 | ;; Fontify cross references | 4746 | ;; Fontify cross references |
| 4747 | (goto-char (point-min)) | 4747 | (goto-char (point-min)) |
diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el index 31f841d7b56..92e55220375 100644 --- a/lisp/international/isearch-x.el +++ b/lisp/international/isearch-x.el | |||
| @@ -71,6 +71,7 @@ | |||
| 71 | 71 | ||
| 72 | (defun isearch-with-keyboard-coding () | 72 | (defun isearch-with-keyboard-coding () |
| 73 | (interactive) | 73 | (interactive) |
| 74 | ;; FIXME: What does this after-change-functions binding do here? | ||
| 74 | (let ((after-change-functions '(isearch-exit-recursive-edit))) | 75 | (let ((after-change-functions '(isearch-exit-recursive-edit))) |
| 75 | (recursive-edit)) | 76 | (recursive-edit)) |
| 76 | (exit-minibuffer)) | 77 | (exit-minibuffer)) |
diff --git a/lisp/international/iso-cvt.el b/lisp/international/iso-cvt.el index 61db03d9b76..d662699c17c 100644 --- a/lisp/international/iso-cvt.el +++ b/lisp/international/iso-cvt.el | |||
| @@ -46,7 +46,7 @@ | |||
| 46 | (defvar iso-spanish-trans-tab | 46 | (defvar iso-spanish-trans-tab |
| 47 | '( | 47 | '( |
| 48 | ("~n" "ñ") | 48 | ("~n" "ñ") |
| 49 | ("\([a-zA-Z]\)#" "\\1ñ") | 49 | ("([a-zA-Z])#" "\\1ñ") |
| 50 | ("~N" "Ñ") | 50 | ("~N" "Ñ") |
| 51 | ("\\([-a-zA-Z\"`]\\)\"u" "\\1ü") | 51 | ("\\([-a-zA-Z\"`]\\)\"u" "\\1ü") |
| 52 | ("\\([-a-zA-Z\"`]\\)\"U" "\\1Ü") | 52 | ("\\([-a-zA-Z\"`]\\)\"U" "\\1Ü") |
diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el index d598814a63a..29036ff796b 100644 --- a/lisp/international/latin1-disp.el +++ b/lisp/international/latin1-disp.el | |||
| @@ -2271,7 +2271,7 @@ isn't changed if the display can render Unicode characters." | |||
| 2271 | (?\∨ "OR") | 2271 | (?\∨ "OR") |
| 2272 | (?\∩ "(U") | 2272 | (?\∩ "(U") |
| 2273 | (?\∪ ")U") | 2273 | (?\∪ ")U") |
| 2274 | (?\∫ "\int ") | 2274 | (?\∫ "\\int ") |
| 2275 | (?\∬ "DI") | 2275 | (?\∬ "DI") |
| 2276 | (?\∮ "Io") | 2276 | (?\∮ "Io") |
| 2277 | (?\∴ ".:") | 2277 | (?\∴ ".:") |
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 4fd4b906b05..0904ff93e23 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el | |||
| @@ -159,7 +159,7 @@ | |||
| 159 | ;; very frequently while editing multilingual text. Now we can use | 159 | ;; very frequently while editing multilingual text. Now we can use |
| 160 | ;; only two such keys: "\C-\\" and "\C-^", but the latter is not | 160 | ;; only two such keys: "\C-\\" and "\C-^", but the latter is not |
| 161 | ;; convenient because it requires shifting on most keyboards. An | 161 | ;; convenient because it requires shifting on most keyboards. An |
| 162 | ;; alternative is "\C-\]" which is now bound to `abort-recursive-edit' | 162 | ;; alternative is "\C-]" which is now bound to `abort-recursive-edit' |
| 163 | ;; but it won't be used that frequently. | 163 | ;; but it won't be used that frequently. |
| 164 | (define-key global-map "\C-\\" 'toggle-input-method) | 164 | (define-key global-map "\C-\\" 'toggle-input-method) |
| 165 | 165 | ||
| @@ -397,7 +397,7 @@ A coding system that requires automatic detection of text+encoding | |||
| 397 | 397 | ||
| 398 | To prefer, for instance, utf-8, say the following: | 398 | To prefer, for instance, utf-8, say the following: |
| 399 | 399 | ||
| 400 | \(prefer-coding-system \\='utf-8)" | 400 | (prefer-coding-system \\='utf-8)" |
| 401 | (interactive "zPrefer coding system: ") | 401 | (interactive "zPrefer coding system: ") |
| 402 | (if (not (and coding-system (coding-system-p coding-system))) | 402 | (if (not (and coding-system (coding-system-p coding-system))) |
| 403 | (error "Invalid coding system `%s'" coding-system)) | 403 | (error "Invalid coding system `%s'" coding-system)) |
| @@ -1272,7 +1272,7 @@ This file contains a list of libraries of Emacs input methods (LEIM) | |||
| 1272 | in the format of Lisp expression for registering each input method. | 1272 | in the format of Lisp expression for registering each input method. |
| 1273 | Emacs loads this file at startup time.") | 1273 | Emacs loads this file at startup time.") |
| 1274 | 1274 | ||
| 1275 | (defconst leim-list-header (format | 1275 | (defconst leim-list-header (format-message |
| 1276 | ";;; %s -- list of LEIM (Library of Emacs Input Method) -*-coding: utf-8;-*- | 1276 | ";;; %s -- list of LEIM (Library of Emacs Input Method) -*-coding: utf-8;-*- |
| 1277 | ;; | 1277 | ;; |
| 1278 | ;; This file is automatically generated. | 1278 | ;; This file is automatically generated. |
| @@ -1286,9 +1286,9 @@ Emacs loads this file at startup time.") | |||
| 1286 | ;; INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC | 1286 | ;; INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC |
| 1287 | ;; TITLE DESCRIPTION | 1287 | ;; TITLE DESCRIPTION |
| 1288 | ;; ARG ...) | 1288 | ;; ARG ...) |
| 1289 | ;; See the function ‘register-input-method’ for the meanings of the arguments. | 1289 | ;; See the function `register-input-method' for the meanings of the arguments. |
| 1290 | ;; | 1290 | ;; |
| 1291 | ;; If this directory is included in ‘load-path’, Emacs automatically | 1291 | ;; If this directory is included in `load-path', Emacs automatically |
| 1292 | ;; loads this file at startup time. | 1292 | ;; loads this file at startup time. |
| 1293 | 1293 | ||
| 1294 | " | 1294 | " |
| @@ -2413,12 +2413,12 @@ See `set-language-info-alist' for use in programs." | |||
| 2413 | )) | 2413 | )) |
| 2414 | "Alist of locale regexps vs the corresponding languages and coding systems. | 2414 | "Alist of locale regexps vs the corresponding languages and coding systems. |
| 2415 | Each element has this form: | 2415 | Each element has this form: |
| 2416 | \(LOCALE-REGEXP LANG-ENV CODING-SYSTEM) | 2416 | (LOCALE-REGEXP LANG-ENV CODING-SYSTEM) |
| 2417 | The first element whose LOCALE-REGEXP matches the start of a | 2417 | The first element whose LOCALE-REGEXP matches the start of a |
| 2418 | downcased locale specifies the LANG-ENV \(language environment) | 2418 | downcased locale specifies the LANG-ENV \(language environment) |
| 2419 | and CODING-SYSTEM corresponding to that locale. If there is no | 2419 | and CODING-SYSTEM corresponding to that locale. If there is no |
| 2420 | appropriate language environment, the element may have this form: | 2420 | appropriate language environment, the element may have this form: |
| 2421 | \(LOCALE-REGEXP . LANG-ENV) | 2421 | (LOCALE-REGEXP . LANG-ENV) |
| 2422 | In this case, LANG-ENV is one of generic language environments for an | 2422 | In this case, LANG-ENV is one of generic language environments for an |
| 2423 | specific encoding such as \"Latin-1\" and \"UTF-8\".") | 2423 | specific encoding such as \"Latin-1\" and \"UTF-8\".") |
| 2424 | 2424 | ||
diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index f3aa70fd66c..b575c2b7db3 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el | |||
| @@ -273,43 +273,48 @@ per-character basis, this may not be accurate." | |||
| 273 | ((not enable-multibyte-characters) | 273 | ((not enable-multibyte-characters) |
| 274 | ;; Maybe there's a font for it, but we can't put it in the buffer. | 274 | ;; Maybe there's a font for it, but we can't put it in the buffer. |
| 275 | nil) | 275 | nil) |
| 276 | ((display-multi-font-p) | ||
| 277 | ;; On a window system, a character is displayable if we have | ||
| 278 | ;; a font for that character in the default face of the | ||
| 279 | ;; currently selected frame. | ||
| 280 | (car (internal-char-font nil char))) | ||
| 281 | (t | 276 | (t |
| 282 | ;; On a terminal, a character is displayable if the coding | 277 | (let ((font-glyph (internal-char-font nil char))) |
| 283 | ;; system for the terminal can encode it. | 278 | (if font-glyph |
| 284 | (let ((coding (terminal-coding-system))) | 279 | (if (consp font-glyph) |
| 285 | (when coding | 280 | ;; On a window system, a character is displayable |
| 286 | (let ((cs-list (coding-system-get coding :charset-list))) | 281 | ;; if a font for that character is in the default |
| 287 | (cond | 282 | ;; face of the currently selected frame. |
| 288 | ((listp cs-list) | 283 | (car font-glyph) |
| 289 | (catch 'tag | 284 | ;; On a text terminal supporting glyph codes, CHAR is |
| 290 | (mapc #'(lambda (charset) | 285 | ;; displayable if its glyph code is nonnegative. |
| 291 | (if (encode-char char charset) | 286 | (<= 0 font-glyph)) |
| 292 | (throw 'tag charset))) | 287 | ;; On a text terminal without glyph codes, CHAR is displayable |
| 293 | cs-list) | 288 | ;; if the coding system for the terminal can encode it. |
| 294 | nil)) | 289 | (let ((coding (terminal-coding-system))) |
| 295 | ((eq cs-list 'iso-2022) | 290 | (when coding |
| 296 | (catch 'tag2 | 291 | (let ((cs-list (coding-system-get coding :charset-list))) |
| 297 | (mapc #'(lambda (charset) | 292 | (cond |
| 298 | (if (and (plist-get (charset-plist charset) | 293 | ((listp cs-list) |
| 299 | :iso-final-char) | 294 | (catch 'tag |
| 300 | (encode-char char charset)) | 295 | (mapc #'(lambda (charset) |
| 301 | (throw 'tag2 charset))) | 296 | (if (encode-char char charset) |
| 302 | charset-list) | 297 | (throw 'tag charset))) |
| 303 | nil)) | 298 | cs-list) |
| 304 | ((eq cs-list 'emacs-mule) | 299 | nil)) |
| 305 | (catch 'tag3 | 300 | ((eq cs-list 'iso-2022) |
| 306 | (mapc #'(lambda (charset) | 301 | (catch 'tag2 |
| 307 | (if (and (plist-get (charset-plist charset) | 302 | (mapc #'(lambda (charset) |
| 308 | :emacs-mule-id) | 303 | (if (and (plist-get (charset-plist charset) |
| 309 | (encode-char char charset)) | 304 | :iso-final-char) |
| 310 | (throw 'tag3 charset))) | 305 | (encode-char char charset)) |
| 311 | charset-list) | 306 | (throw 'tag2 charset))) |
| 312 | nil))))))))) | 307 | charset-list) |
| 308 | nil)) | ||
| 309 | ((eq cs-list 'emacs-mule) | ||
| 310 | (catch 'tag3 | ||
| 311 | (mapc #'(lambda (charset) | ||
| 312 | (if (and (plist-get (charset-plist charset) | ||
| 313 | :emacs-mule-id) | ||
| 314 | (encode-char char charset)) | ||
| 315 | (throw 'tag3 charset))) | ||
| 316 | charset-list) | ||
| 317 | nil))))))))))) | ||
| 313 | 318 | ||
| 314 | (defun filepos-to-bufferpos--dos (byte f) | 319 | (defun filepos-to-bufferpos--dos (byte f) |
| 315 | (let ((eol-offset 0) | 320 | (let ((eol-offset 0) |
diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 946f793731b..af4c6e93e0b 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el | |||
| @@ -665,8 +665,8 @@ without any conversions. | |||
| 665 | 665 | ||
| 666 | VALUE is the EOL (end-of-line) format of the coding system. It must be | 666 | VALUE is the EOL (end-of-line) format of the coding system. It must be |
| 667 | one of `unix', `dos', `mac'. The symbol `unix' means Unix-like EOL | 667 | one of `unix', `dos', `mac'. The symbol `unix' means Unix-like EOL |
| 668 | \(i.e. a single LF character), `dos' means DOS-like EOL \(i.e. a sequence | 668 | \(i.e., a single LF character), `dos' means DOS-like EOL \(i.e., a sequence |
| 669 | of CR followed by LF), and `mac' means Mac-like EOL \(i.e. a single CR). | 669 | of CR followed by LF), and `mac' means Mac-like EOL \(i.e., a single CR). |
| 670 | If omitted, Emacs detects the EOL format automatically when decoding. | 670 | If omitted, Emacs detects the EOL format automatically when decoding. |
| 671 | 671 | ||
| 672 | `:charset-list' (required if `:coding-type' is `charset' or `shift-jis') | 672 | `:charset-list' (required if `:coding-type' is `charset' or `shift-jis') |
diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el index 01cbe1e5222..18ebf91d505 100644 --- a/lisp/international/ogonek.el +++ b/lisp/international/ogonek.el | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1997-1998, 2001-2015 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1997-1998, 2001-2015 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: W{\l}odek Bzyl | 5 | ;; Author: Włodek Bzyl |
| 6 | ;; Ryszard Kubiak | 6 | ;; Ryszard Kubiak |
| 7 | ;; Maintainer: Ryszard Kubiak <rysiek@ipipan.gda.pl> | 7 | ;; Maintainer: Ryszard Kubiak <rysiek@ipipan.gda.pl> |
| 8 | ;; Keywords: i18n | 8 | ;; Keywords: i18n |
diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el index 6a15bc41e50..f22b30e613b 100644 --- a/lisp/international/titdic-cnv.el +++ b/lisp/international/titdic-cnv.el | |||
| @@ -86,7 +86,7 @@ | |||
| 86 | '(("chinese-4corner" "$(0(?-F(B") | 86 | '(("chinese-4corner" "$(0(?-F(B") |
| 87 | ("chinese-array30" "$(0#R#O(B") | 87 | ("chinese-array30" "$(0#R#O(B") |
| 88 | ("chinese-ccdospy" "$AKuF4(B" | 88 | ("chinese-ccdospy" "$AKuF4(B" |
| 89 | "Pinyin base input method for Chinese charset GB2312 \(`chinese-gb2312'). | 89 | "Pinyin base input method for Chinese charset GB2312 (`chinese-gb2312'). |
| 90 | 90 | ||
| 91 | Pinyin is the standard Roman transliteration method for Chinese. | 91 | Pinyin is the standard Roman transliteration method for Chinese. |
| 92 | For the detail of Pinyin system, see the documentation of the input | 92 | For the detail of Pinyin system, see the documentation of the input |
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index 5f9196da645..4e8fa7b15cb 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el | |||
| @@ -382,14 +382,6 @@ Defaults to the whole buffer. END can be out of bounds." | |||
| 382 | (save-excursion | 382 | (save-excursion |
| 383 | (unless start (setq start (point-min))) | 383 | (unless start (setq start (point-min))) |
| 384 | (setq end (if end (min end (point-max)) (point-max))) | 384 | (setq end (if end (min end (point-max)) (point-max))) |
| 385 | ;; This did bind `font-lock-beginning-of-syntax-function' to | ||
| 386 | ;; nil at some point, for an unknown reason. Don't do this; it | ||
| 387 | ;; can make highlighting slow due to expensive calls to | ||
| 388 | ;; `parse-partial-sexp' in function | ||
| 389 | ;; `font-lock-fontify-syntactically-region'. Example: paging | ||
| 390 | ;; from the end of a buffer to its start, can do repeated | ||
| 391 | ;; `parse-partial-sexp' starting from `point-min', which can | ||
| 392 | ;; take a long time in a large buffer. | ||
| 393 | (let ((orig-start start) next) | 385 | (let ((orig-start start) next) |
| 394 | (save-match-data | 386 | (save-match-data |
| 395 | ;; Fontify chunks beginning at START. The end of a | 387 | ;; Fontify chunks beginning at START. The end of a |
| @@ -583,11 +575,13 @@ non-nil in a repeated invocation of this function." | |||
| 583 | 'fontified nil)) | 575 | 'fontified nil)) |
| 584 | (setq pos (next-single-property-change | 576 | (setq pos (next-single-property-change |
| 585 | pos 'fontified))))))))) | 577 | pos 'fontified))))))))) |
| 586 | (setq jit-lock-defer-buffers nil) | ||
| 587 | ;; Force fontification of the visible parts. | 578 | ;; Force fontification of the visible parts. |
| 588 | (let ((jit-lock-defer-timer nil)) | 579 | (let ((buffers jit-lock-defer-buffers) |
| 580 | (jit-lock-defer-timer nil)) | ||
| 581 | (setq jit-lock-defer-buffers nil) | ||
| 589 | ;; (message "Jit-Defer Now") | 582 | ;; (message "Jit-Defer Now") |
| 590 | (sit-for 0) | 583 | (unless (redisplay) ;FIXME: Should we `force'? |
| 584 | (setq jit-lock-defer-buffers buffers)) | ||
| 591 | ;; (message "Jit-Defer Done") | 585 | ;; (message "Jit-Defer Done") |
| 592 | ))) | 586 | ))) |
| 593 | 587 | ||
diff --git a/lisp/language/japan-util.el b/lisp/language/japan-util.el index 2871ec8f974..bdd8853d4dc 100644 --- a/lisp/language/japan-util.el +++ b/lisp/language/japan-util.el | |||
| @@ -102,7 +102,7 @@ HANKAKU-KATAKANA belongs to `japanese-jisx0201-kana'.") | |||
| 102 | (?$B!-(B ?') (?$B!.(B ?`) (?$B!0(B ?^) (?$B!2(B ?_) (?$B!<(B ?- ?(I0(B) (?$B!=(B ?-) (?$B!>(B ?-) | 102 | (?$B!-(B ?') (?$B!.(B ?`) (?$B!0(B ?^) (?$B!2(B ?_) (?$B!<(B ?- ?(I0(B) (?$B!=(B ?-) (?$B!>(B ?-) |
| 103 | (?$B!?(B ?/) (?$B!@(B ?\\) (?$B!A(B ?~) (?$B!C(B ?|) (?$B!F(B ?`) (?$B!G(B ?') (?$B!H(B ?\") (?$B!I(B ?\") | 103 | (?$B!?(B ?/) (?$B!@(B ?\\) (?$B!A(B ?~) (?$B!C(B ?|) (?$B!F(B ?`) (?$B!G(B ?') (?$B!H(B ?\") (?$B!I(B ?\") |
| 104 | (?\$B!J(B ?\() (?\$B!K(B ?\)) (?\$B!N(B ?[) (?\$B!O(B ?]) (?\$B!P(B ?{) (?\$B!Q(B ?}) | 104 | (?\$B!J(B ?\() (?\$B!K(B ?\)) (?\$B!N(B ?[) (?\$B!O(B ?]) (?\$B!P(B ?{) (?\$B!Q(B ?}) |
| 105 | (?$B!R(B ?<) (?$B!S(B ?>) (?\$B!V(B nil ?\(I"(B) (?\$B!W(B nil ?\(I#(B) | 105 | (?$B!R(B ?<) (?$B!S(B ?>) (?\$B!V(B nil ?\(I"(B) (?\$B!W(B nil ?\(I#(B) |
| 106 | (?$B!\(B ?+) (?$B!](B ?-) (?$B!a(B ?=) (?$B!c(B ?<) (?$B!d(B ?>) | 106 | (?$B!\(B ?+) (?$B!](B ?-) (?$B!a(B ?=) (?$B!c(B ?<) (?$B!d(B ?>) |
| 107 | (?$B!l(B ?') (?$B!m(B ?\") (?$B!o(B ?\\) (?$B!p(B ?$) (?$B!s(B ?%) (?$B!t(B ?#) (?$B!u(B ?&) (?$B!v(B ?*) | 107 | (?$B!l(B ?') (?$B!m(B ?\") (?$B!o(B ?\\) (?$B!p(B ?$) (?$B!s(B ?%) (?$B!t(B ?#) (?$B!u(B ?&) (?$B!v(B ?*) |
| 108 | (?$B!w(B ?@) | 108 | (?$B!w(B ?@) |
| @@ -175,9 +175,9 @@ belongs to `japanese-jisx0208', ASCII belongs to `ascii'.") | |||
| 175 | The argument may be a character or string. The result has the same type. | 175 | The argument may be a character or string. The result has the same type. |
| 176 | The argument object is not altered--the value is a copy. | 176 | The argument object is not altered--the value is a copy. |
| 177 | Optional argument HANKAKU t means to convert to `hankaku' Katakana | 177 | Optional argument HANKAKU t means to convert to `hankaku' Katakana |
| 178 | \(`japanese-jisx0201-kana'), in which case return value | 178 | \(`japanese-jisx0201-kana'), in which case return value |
| 179 | may be a string even if OBJ is a character if two Katakanas are | 179 | may be a string even if OBJ is a character if two Katakanas are |
| 180 | necessary to represent OBJ." | 180 | necessary to represent OBJ." |
| 181 | (if (stringp obj) | 181 | (if (stringp obj) |
| 182 | (japanese-string-conversion obj 'japanese-katakana-region hankaku) | 182 | (japanese-string-conversion obj 'japanese-katakana-region hankaku) |
| 183 | (or (get-char-code-property obj (if hankaku 'jisx0201 'katakana)) | 183 | (or (get-char-code-property obj (if hankaku 'jisx0201 'katakana)) |
diff --git a/lisp/leim/quail/cyrillic.el b/lisp/leim/quail/cyrillic.el index 7c443857d44..5d11e45b3f6 100644 --- a/lisp/leim/quail/cyrillic.el +++ b/lisp/leim/quail/cyrillic.el | |||
| @@ -1245,7 +1245,7 @@ This phonetic layout replaces all the Latin letters with Bulgarian | |||
| 1245 | \(Cyrillic) letters based on similarities in their pronunciation or look. | 1245 | \(Cyrillic) letters based on similarities in their pronunciation or look. |
| 1246 | 1246 | ||
| 1247 | Note that, since the letters `щ', `ь', `ю' and `я' are attached to the | 1247 | Note that, since the letters `щ', `ь', `ю' and `я' are attached to the |
| 1248 | `]', `\', `\\=`' and `[' keys respectively, Caps Lock does not affect them." | 1248 | `]', `\\', `\\=`' and `[' keys respectively, Caps Lock does not affect them." |
| 1249 | nil t t t t nil nil nil nil nil t) | 1249 | nil t t t t nil nil nil nil nil t) |
| 1250 | 1250 | ||
| 1251 | ;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ | 1251 | ;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ |
diff --git a/lisp/leim/quail/japanese.el b/lisp/leim/quail/japanese.el index 831725f8065..7741697286b 100644 --- a/lisp/leim/quail/japanese.el +++ b/lisp/leim/quail/japanese.el | |||
| @@ -231,7 +231,7 @@ | |||
| 231 | ("zk" "$B",(B") | 231 | ("zk" "$B",(B") |
| 232 | ("zl" "$B"*(B") | 232 | ("zl" "$B"*(B") |
| 233 | ("z;" "$B!+(B") ("z:" "$B!,(B") | 233 | ("z;" "$B!+(B") ("z:" "$B!,(B") |
| 234 | ("z\'" "$B!F(B") ("z\"" "$B!H(B") | 234 | ("z'" "$B!F(B") ("z\"" "$B!H(B") |
| 235 | 235 | ||
| 236 | ("zx" [":-"]) ("zX" [":-)"]) | 236 | ("zx" [":-"]) ("zX" [":-)"]) |
| 237 | ("zc" "$B!;(B") ("zC" "$B!n(B") | 237 | ("zc" "$B!;(B") ("zC" "$B!n(B") |
diff --git a/lisp/leim/quail/latin-alt.el b/lisp/leim/quail/latin-alt.el index 935a471dce8..a0697c48f7d 100644 --- a/lisp/leim/quail/latin-alt.el +++ b/lisp/leim/quail/latin-alt.el | |||
| @@ -1321,7 +1321,7 @@ Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\=' | |||
| 1321 | ("K" ?Ķ) | 1321 | ("K" ?Ķ) |
| 1322 | ("l" ?ļ) | 1322 | ("l" ?ļ) |
| 1323 | ("L" ?Ļ) | 1323 | ("L" ?Ļ) |
| 1324 | ("\'" ?“) | 1324 | ("'" ?“) |
| 1325 | ("\"" ?„) | 1325 | ("\"" ?„) |
| 1326 | ("z" ?ž) | 1326 | ("z" ?ž) |
| 1327 | ("Z" ?Ž) | 1327 | ("Z" ?Ž) |
diff --git a/lisp/leim/quail/latin-ltx.el b/lisp/leim/quail/latin-ltx.el index 3c84ba8348a..c63a758f198 100644 --- a/lisp/leim/quail/latin-ltx.el +++ b/lisp/leim/quail/latin-ltx.el | |||
| @@ -664,7 +664,7 @@ system, including many technical ones. Examples: | |||
| 664 | ;; Probably not useful enough: | 664 | ;; Probably not useful enough: |
| 665 | ;; ("\\Telefon" ?☎) ; there are other possibilities | 665 | ;; ("\\Telefon" ?☎) ; there are other possibilities |
| 666 | ;; ("\\Radioactivity" ?☢) | 666 | ;; ("\\Radioactivity" ?☢) |
| 667 | ;; ("\Biohazard" ?☣) | 667 | ;; ("\\Biohazard" ?☣) |
| 668 | ;; ("\\Male" ?♂) | 668 | ;; ("\\Male" ?♂) |
| 669 | ;; ("\\Female" ?♀) | 669 | ;; ("\\Female" ?♀) |
| 670 | ;; ("\\Lightning" ?☇) | 670 | ;; ("\\Lightning" ?☇) |
diff --git a/lisp/leim/quail/thai.el b/lisp/leim/quail/thai.el index 7d0949ee529..02f8b78d76b 100644 --- a/lisp/leim/quail/thai.el +++ b/lisp/leim/quail/thai.el | |||
| @@ -76,7 +76,7 @@ The difference from the ordinal Thai keyboard: | |||
| 76 | "๑" "ฤ" "ฺ" "ฉ" "ฏ" "ฎ" "โ" "ฌ" ; @ .. G | 76 | "๑" "ฤ" "ฺ" "ฉ" "ฏ" "ฎ" "โ" "ฌ" ; @ .. G |
| 77 | "็" "ณ" "๋" "ษ" "ศ" "?" "์" "ฯ" ; H .. O | 77 | "็" "ณ" "๋" "ษ" "ศ" "?" "์" "ฯ" ; H .. O |
| 78 | "ญ" "๐" "ฑ" "ฆ" "ธ" "๊" "ฮ" "\"" ; P .. W | 78 | "ญ" "๐" "ฑ" "ฆ" "ธ" "๊" "ฮ" "\"" ; P .. W |
| 79 | "\)" "ํ" "\(" "บ" "ฃ" "ล" "ู" "๘" ; X .. _ | 79 | ")" "ํ" "(" "บ" "ฃ" "ล" "ู" "๘" ; X .. _ |
| 80 | "_" "ฟ" "ิ" "แ" "ก" "ำ" "ด" "เ" ; ` .. g | 80 | "_" "ฟ" "ิ" "แ" "ก" "ำ" "ด" "เ" ; ` .. g |
| 81 | "้" "ร" "่" "า" "ส" "ท" "ื" "น" ; h .. o | 81 | "้" "ร" "่" "า" "ส" "ท" "ื" "น" ; h .. o |
| 82 | "ย" "ๆ" "พ" "ห" "ะ" "ี" "อ" "ไ" ; p .. w | 82 | "ย" "ๆ" "พ" "ห" "ะ" "ี" "อ" "ไ" ; p .. w |
diff --git a/lisp/loadhist.el b/lisp/loadhist.el index 52fd04736f6..4ea1bcb9f50 100644 --- a/lisp/loadhist.el +++ b/lisp/loadhist.el | |||
| @@ -123,7 +123,6 @@ from a file." | |||
| 123 | delete-frame-functions disabled-command-function | 123 | delete-frame-functions disabled-command-function |
| 124 | fill-nobreak-predicate find-directory-functions | 124 | fill-nobreak-predicate find-directory-functions |
| 125 | find-file-not-found-functions | 125 | find-file-not-found-functions |
| 126 | font-lock-beginning-of-syntax-function | ||
| 127 | font-lock-fontify-buffer-function | 126 | font-lock-fontify-buffer-function |
| 128 | font-lock-fontify-region-function | 127 | font-lock-fontify-region-function |
| 129 | font-lock-mark-block-function | 128 | font-lock-mark-block-function |
diff --git a/lisp/lpr.el b/lisp/lpr.el index 24c325cb263..11cc8f86cfd 100644 --- a/lisp/lpr.el +++ b/lisp/lpr.el | |||
| @@ -49,7 +49,7 @@ | |||
| 49 | (defcustom printer-name | 49 | (defcustom printer-name |
| 50 | (and (eq system-type 'ms-dos) "PRN") | 50 | (and (eq system-type 'ms-dos) "PRN") |
| 51 | "The name of a local printer to which data is sent for printing. | 51 | "The name of a local printer to which data is sent for printing. |
| 52 | \(Note that PostScript files are sent to `ps-printer-name', which see.\) | 52 | \(Note that PostScript files are sent to `ps-printer-name', which see.) |
| 53 | 53 | ||
| 54 | On Unix-like systems, a string value should be a name understood by | 54 | On Unix-like systems, a string value should be a name understood by |
| 55 | lpr's -P option; otherwise the value should be nil. | 55 | lpr's -P option; otherwise the value should be nil. |
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el index 368e2ab8982..aec93db3fa6 100644 --- a/lisp/mail/feedmail.el +++ b/lisp/mail/feedmail.el | |||
| @@ -438,7 +438,7 @@ shuttled robotically onward." | |||
| 438 | If a positive number, it's a timeout before sending. If a negative | 438 | If a positive number, it's a timeout before sending. If a negative |
| 439 | number, it's a timeout before not sending. This will not work if your | 439 | number, it's a timeout before not sending. This will not work if your |
| 440 | version of Emacs doesn't include the function `y-or-n-p-with-timeout' | 440 | version of Emacs doesn't include the function `y-or-n-p-with-timeout' |
| 441 | \(e.g., some versions of XEmacs\)." | 441 | \(e.g., some versions of XEmacs)." |
| 442 | :version "24.1" | 442 | :version "24.1" |
| 443 | :group 'feedmail-misc | 443 | :group 'feedmail-misc |
| 444 | :type '(choice (const nil) integer) | 444 | :type '(choice (const nil) integer) |
| @@ -449,7 +449,7 @@ version of Emacs doesn't include the function `y-or-n-p-with-timeout' | |||
| 449 | "If non-nil remove Bcc: lines from the message headers. | 449 | "If non-nil remove Bcc: lines from the message headers. |
| 450 | In any case, the Bcc: lines do participate in the composed address | 450 | In any case, the Bcc: lines do participate in the composed address |
| 451 | list. You may want to leave them in if you're using sendmail | 451 | list. You may want to leave them in if you're using sendmail |
| 452 | \(see `feedmail-buffer-eating-function'\)." | 452 | \(see `feedmail-buffer-eating-function')." |
| 453 | :group 'feedmail-headers | 453 | :group 'feedmail-headers |
| 454 | :type 'boolean | 454 | :type 'boolean |
| 455 | ) | 455 | ) |
| @@ -459,7 +459,7 @@ list. You may want to leave them in if you're using sendmail | |||
| 459 | "If non-nil remove Resent-Bcc: lines from the message headers. | 459 | "If non-nil remove Resent-Bcc: lines from the message headers. |
| 460 | In any case, the Resent-Bcc: lines do participate in the composed | 460 | In any case, the Resent-Bcc: lines do participate in the composed |
| 461 | address list. You may want to leave them in if you're using sendmail | 461 | address list. You may want to leave them in if you're using sendmail |
| 462 | \(see `feedmail-buffer-eating-function'\)." | 462 | \(see `feedmail-buffer-eating-function')." |
| 463 | :group 'feedmail-headers | 463 | :group 'feedmail-headers |
| 464 | :type 'boolean | 464 | :type 'boolean |
| 465 | ) | 465 | ) |
| @@ -645,7 +645,7 @@ is not an option for many users. As this is the default behavior of most | |||
| 645 | sendmail installations, one can mostly only wish it were otherwise. If feedmail | 645 | sendmail installations, one can mostly only wish it were otherwise. If feedmail |
| 646 | believes the sendmail program will sell you out this way, it won't use the \"-f\" | 646 | believes the sendmail program will sell you out this way, it won't use the \"-f\" |
| 647 | option when calling sendmail. If it doesn't think sendmail will sell you out, | 647 | option when calling sendmail. If it doesn't think sendmail will sell you out, |
| 648 | it will use the \"-f\" \(since it is a handy feature\). You control what | 648 | it will use the \"-f\" \(since it is a handy feature). You control what |
| 649 | feedmail thinks with this variable. The default is nil, meaning that feedmail | 649 | feedmail thinks with this variable. The default is nil, meaning that feedmail |
| 650 | will believe that sendmail will sell you out." | 650 | will believe that sendmail will sell you out." |
| 651 | :version "24.1" | 651 | :version "24.1" |
| @@ -861,7 +861,7 @@ as well." | |||
| 861 | "User-supplied specification for a crude form of mailmerge capability. | 861 | "User-supplied specification for a crude form of mailmerge capability. |
| 862 | When spraying is enabled, feedmail composes a list of envelope addresses. | 862 | When spraying is enabled, feedmail composes a list of envelope addresses. |
| 863 | In turn, `feedmail-spray-this-address' is temporarily set to each address | 863 | In turn, `feedmail-spray-this-address' is temporarily set to each address |
| 864 | \(stripped of any comments and angle brackets\) and a function is called which | 864 | \(stripped of any comments and angle brackets) and a function is called which |
| 865 | fiddles message headers according to this variable. See the documentation for | 865 | fiddles message headers according to this variable. See the documentation for |
| 866 | `feedmail-fiddle-plex-blurb', for an overview of fiddle-plex data structures. | 866 | `feedmail-fiddle-plex-blurb', for an overview of fiddle-plex data structures. |
| 867 | 867 | ||
| @@ -1313,7 +1313,7 @@ of `buffer-file-name' to nil because that will defeat feedmail's file | |||
| 1313 | management features. Instead, arrange for this variable to be set to | 1313 | management features. Instead, arrange for this variable to be set to |
| 1314 | the value of `buffer-file-name' before setting that to nil. An easy way | 1314 | the value of `buffer-file-name' before setting that to nil. An easy way |
| 1315 | to do that would be with defadvice on `mail-send' \(undoing the | 1315 | to do that would be with defadvice on `mail-send' \(undoing the |
| 1316 | assignments in a later advice\). | 1316 | assignments in a later advice). |
| 1317 | 1317 | ||
| 1318 | feedmail will pretend that `buffer-file-name', if nil, has the value | 1318 | feedmail will pretend that `buffer-file-name', if nil, has the value |
| 1319 | assigned of `feedmail-queue-buffer-file-name' and carry out its normal | 1319 | assigned of `feedmail-queue-buffer-file-name' and carry out its normal |
| @@ -1507,7 +1507,7 @@ The default action is an anonymous function which gets rid of the file | |||
| 1507 | from the queue directory. With a non-nil second argument, a brief | 1507 | from the queue directory. With a non-nil second argument, a brief |
| 1508 | message is give for each file deleted. You could replace this | 1508 | message is give for each file deleted. You could replace this |
| 1509 | function, for example, to archive all of your sent messages someplace | 1509 | function, for example, to archive all of your sent messages someplace |
| 1510 | \(though there are better ways to get that particular result\)." | 1510 | \(though there are better ways to get that particular result)." |
| 1511 | :group 'feedmail-queue | 1511 | :group 'feedmail-queue |
| 1512 | :type 'function | 1512 | :type 'function |
| 1513 | ) | 1513 | ) |
| @@ -1715,7 +1715,7 @@ for ACTION (default is `supplement'): | |||
| 1715 | VAL-LIKE is not used. Else, if VAL-LIKE is a function, | 1715 | VAL-LIKE is not used. Else, if VAL-LIKE is a function, |
| 1716 | it is called with two arguments: NAME and the | 1716 | it is called with two arguments: NAME and the |
| 1717 | aggregate like values. Else, if VAL-LIKE is a string, it is | 1717 | aggregate like values. Else, if VAL-LIKE is a string, it is |
| 1718 | used as a format string where a single \%s will be | 1718 | used as a format string where a single %s will be |
| 1719 | replaced by the aggregate values of like fields. | 1719 | replaced by the aggregate values of like fields. |
| 1720 | 1720 | ||
| 1721 | VAL-PRE, the results of using VAL-LIKE, and VAL-POST | 1721 | VAL-PRE, the results of using VAL-LIKE, and VAL-POST |
| @@ -1745,7 +1745,8 @@ applied to a file after you've just read it from disk: for example, a | |||
| 1745 | feedmail FQM message file from a queue. You could use something like | 1745 | feedmail FQM message file from a queue. You could use something like |
| 1746 | this: | 1746 | this: |
| 1747 | 1747 | ||
| 1748 | \(setq auto-mode-alist \(cons \\='\(\"\\\\.fqm$\" . feedmail-vm-mail-mode\) auto-mode-alist\)\) | 1748 | \(setq auto-mode-alist |
| 1749 | (cons \\='(\"\\\\.fqm$\" . feedmail-vm-mail-mode) auto-mode-alist)) | ||
| 1749 | " | 1750 | " |
| 1750 | (feedmail-say-debug ">in-> feedmail-vm-mail-mode") | 1751 | (feedmail-say-debug ">in-> feedmail-vm-mail-mode") |
| 1751 | (let ((the-buf (current-buffer))) | 1752 | (let ((the-buf (current-buffer))) |
| @@ -1894,26 +1895,26 @@ You're dispatching a message and feedmail queuing is enabled. | |||
| 1894 | Typing ? again will normally scroll this help buffer. | 1895 | Typing ? again will normally scroll this help buffer. |
| 1895 | 1896 | ||
| 1896 | Choices: | 1897 | Choices: |
| 1897 | q QUEUE for later sending \(via feedmail-run-the-queue\) | 1898 | q QUEUE for later sending (via feedmail-run-the-queue) |
| 1898 | Q QUEUE! like \"q\", but always make a new file | 1899 | Q QUEUE! like \"q\", but always make a new file |
| 1899 | i IMMEDIATELY send this \(but not the other queued messages\) | 1900 | i IMMEDIATELY send this (but not the other queued messages) |
| 1900 | I IMMEDIATELY! like \"i\", but skip following confirmation prompt | 1901 | I IMMEDIATELY! like \"i\", but skip following confirmation prompt |
| 1901 | d DRAFT queue in the draft directory | 1902 | d DRAFT queue in the draft directory |
| 1902 | D DRAFT! like \"d\", but always make a new file | 1903 | D DRAFT! like \"d\", but always make a new file |
| 1903 | e EDIT return to the message edit buffer \(don't send or queue\) | 1904 | e EDIT return to the message edit buffer (don't send or queue) |
| 1904 | * SPRAY toggle spray mode \(individual message transmissions\) | 1905 | * SPRAY toggle spray mode (individual message transmissions) |
| 1905 | > SCROLL UP scroll message up \(toward end of message\) | 1906 | > SCROLL UP scroll message up (toward end of message) |
| 1906 | < SCROLL DOWN scroll message down \(toward beginning of message\) | 1907 | < SCROLL DOWN scroll message down (toward beginning of message) |
| 1907 | ? HELP show or scroll this help buffer | 1908 | ? HELP show or scroll this help buffer |
| 1908 | 1909 | ||
| 1909 | Synonyms: | 1910 | Synonyms: |
| 1910 | s SEND immediately \(same as \"i\"\) | 1911 | s SEND immediately (same as \"i\") |
| 1911 | S SEND! immediately \(same as \"I\"\) | 1912 | S SEND! immediately (same as \"I\") |
| 1912 | r ROUGH draft \(same as \"d\"\) | 1913 | r ROUGH draft (same as \"d\") |
| 1913 | R ROUGH! draft \(same as \"D\"\) | 1914 | R ROUGH! draft (same as \"D\") |
| 1914 | n NOPE didn't mean it \(same as \"e\"\) | 1915 | n NOPE didn't mean it (same as \"e\") |
| 1915 | y YUP do the default behavior \(same as \"C-m\"\) | 1916 | y YUP do the default behavior (same as \"C-m\") |
| 1916 | SPC SCROLL UP \(same as \">\"\) | 1917 | SPC SCROLL UP (same as \">\") |
| 1917 | 1918 | ||
| 1918 | The user-configurable default is currently \"")) | 1919 | The user-configurable default is currently \"")) |
| 1919 | (princ d-string) | 1920 | (princ d-string) |
diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el index 5164ea1bfed..a7057ca21c8 100644 --- a/lisp/mail/mail-extr.el +++ b/lisp/mail/mail-extr.el | |||
| @@ -329,7 +329,7 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"." | |||
| 329 | ;; Matches an embedded or leading nickname that should be removed. | 329 | ;; Matches an embedded or leading nickname that should be removed. |
| 330 | ;; (defconst mail-extr-nickname-pattern | 330 | ;; (defconst mail-extr-nickname-pattern |
| 331 | ;; (purecopy | 331 | ;; (purecopy |
| 332 | ;; (format "\\([ .]\\|\\`\\)[\"'`\[\(]\\([ .%s]+\\)[\]\"'\)] " | 332 | ;; (format "\\([ .]\\|\\`\\)[\"'`[(]\\([ .%s]+\\)[]\"')] " |
| 333 | ;; mail-extr-all-letters))) | 333 | ;; mail-extr-all-letters))) |
| 334 | 334 | ||
| 335 | ;; Matches the occurrence of a generational name suffix, and the last | 335 | ;; Matches the occurrence of a generational name suffix, and the last |
| @@ -369,7 +369,7 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"." | |||
| 369 | ;; Matches a variety of trailing comments not including comma-delimited | 369 | ;; Matches a variety of trailing comments not including comma-delimited |
| 370 | ;; comments. | 370 | ;; comments. |
| 371 | (defconst mail-extr-trailing-comment-start-pattern | 371 | (defconst mail-extr-trailing-comment-start-pattern |
| 372 | (purecopy " [-{]\\|--\\|[+@#></\;]")) | 372 | (purecopy " [-{]\\|--\\|[+@#></;]")) |
| 373 | 373 | ||
| 374 | ;; Matches a name (not an initial). | 374 | ;; Matches a name (not an initial). |
| 375 | ;; This doesn't force a word boundary at the end because sometimes a | 375 | ;; This doesn't force a word boundary at the end because sometimes a |
| @@ -456,7 +456,7 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"." | |||
| 456 | ;; mode from GB back to ASCII. (Note that the escape-from-GB code '~}' | 456 | ;; mode from GB back to ASCII. (Note that the escape-from-GB code '~}' |
| 457 | ;; ($7E7D) is outside the defined GB range.) | 457 | ;; ($7E7D) is outside the defined GB range.) |
| 458 | (defconst mail-extr-hz-embedded-gb-encoded-chinese-pattern | 458 | (defconst mail-extr-hz-embedded-gb-encoded-chinese-pattern |
| 459 | (purecopy "~{\\([^~].\\|~[^\}]\\)+~}")) | 459 | (purecopy "~{\\([^~].\\|~[^}]\\)+~}")) |
| 460 | 460 | ||
| 461 | ;; The leading optional lowercase letters are for a bastardized version of | 461 | ;; The leading optional lowercase letters are for a bastardized version of |
| 462 | ;; the encoding, as is the optional nature of the final slash. | 462 | ;; the encoding, as is the optional nature of the final slash. |
| @@ -543,8 +543,8 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"." | |||
| 543 | (?\t " ") | 543 | (?\t " ") |
| 544 | (?\r " ") | 544 | (?\r " ") |
| 545 | (?\n " ") | 545 | (?\n " ") |
| 546 | (?\( "\(\)") | 546 | (?\( "()") |
| 547 | (?\) "\)\(") | 547 | (?\) ")(") |
| 548 | (?\\ "\\")) | 548 | (?\\ "\\")) |
| 549 | (mail-extr-address-domain-literal-syntax-table | 549 | (mail-extr-address-domain-literal-syntax-table |
| 550 | (?\000 ?\377 "w") | 550 | (?\000 ?\377 "w") |
| @@ -553,8 +553,8 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"." | |||
| 553 | (?\t " ") | 553 | (?\t " ") |
| 554 | (?\r " ") | 554 | (?\r " ") |
| 555 | (?\n " ") | 555 | (?\n " ") |
| 556 | (?\[ "\(\]") ;?????? | 556 | (?\[ "(]") ;?????? |
| 557 | (?\] "\)\[") ;?????? | 557 | (?\] ")[") ;?????? |
| 558 | (?\\ "\\")) | 558 | (?\\ "\\")) |
| 559 | (mail-extr-address-text-comment-syntax-table | 559 | (mail-extr-address-text-comment-syntax-table |
| 560 | (?\000 ?\377 "w") | 560 | (?\000 ?\377 "w") |
| @@ -563,16 +563,16 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"." | |||
| 563 | (?\t " ") | 563 | (?\t " ") |
| 564 | (?\r " ") | 564 | (?\r " ") |
| 565 | (?\n " ") | 565 | (?\n " ") |
| 566 | (?\( "\(\)") | 566 | (?\( "()") |
| 567 | (?\) "\)\(") | 567 | (?\) ")(") |
| 568 | (?\[ "\(\]") | 568 | (?\[ "(]") |
| 569 | (?\] "\)\[") | 569 | (?\] ")[") |
| 570 | (?\{ "\(\}") | 570 | (?\{ "(}") |
| 571 | (?\} "\)\{") | 571 | (?\} "){") |
| 572 | (?\\ "\\") | 572 | (?\\ "\\") |
| 573 | (?\" "\"") | 573 | (?\" "\"") |
| 574 | ;; (?\' "\)\`") | 574 | ;; (?\' ")`") |
| 575 | ;; (?\` "\(\'") | 575 | ;; (?\` "('") |
| 576 | ) | 576 | ) |
| 577 | (mail-extr-address-text-syntax-table | 577 | (mail-extr-address-text-syntax-table |
| 578 | (?\000 ?\177 ".") | 578 | (?\000 ?\177 ".") |
diff --git a/lisp/mail/mailclient.el b/lisp/mail/mailclient.el index 31da6ee2eb3..5bc1d3129ea 100644 --- a/lisp/mail/mailclient.el +++ b/lisp/mail/mailclient.el | |||
| @@ -62,10 +62,9 @@ supported. Defaults to non-nil on Windows, nil otherwise." | |||
| 62 | (mapcar | 62 | (mapcar |
| 63 | (lambda (char) | 63 | (lambda (char) |
| 64 | (cond | 64 | (cond |
| 65 | ((eq char ?\x20) "%20") ;; space | ||
| 66 | ((eq char ?\n) "%0D%0A") ;; newline | 65 | ((eq char ?\n) "%0D%0A") ;; newline |
| 67 | ((string-match "[-a-zA-Z0-9_:/.@]" (char-to-string char)) | 66 | ((string-match "[-a-zA-Z0-9._~]" (char-to-string char)) |
| 68 | (char-to-string char)) ;; printable | 67 | (char-to-string char)) ;; unreserved as per RFC 6068 |
| 69 | (t ;; everything else | 68 | (t ;; everything else |
| 70 | (format "%%%02x" char)))) ;; escape | 69 | (format "%%%02x" char)))) ;; escape |
| 71 | ;; Convert string to list of chars | 70 | ;; Convert string to list of chars |
| @@ -96,7 +95,7 @@ supported. Defaults to non-nil on Windows, nil otherwise." | |||
| 96 | recp))) | 95 | recp))) |
| 97 | (setq first nil)) | 96 | (setq first nil)) |
| 98 | (split-string | 97 | (split-string |
| 99 | (mail-strip-quoted-names field) "\, *")) | 98 | (mail-strip-quoted-names field) ", *")) |
| 100 | result))))) | 99 | result))))) |
| 101 | 100 | ||
| 102 | (declare-function clipboard-kill-ring-save "menu-bar.el" | 101 | (declare-function clipboard-kill-ring-save "menu-bar.el" |
| @@ -125,6 +124,13 @@ The mail client is taken to be the handler of mailto URLs." | |||
| 125 | (< (point) delimline)) | 124 | (< (point) delimline)) |
| 126 | (replace-match "\n")) | 125 | (replace-match "\n")) |
| 127 | (let ((case-fold-search t) | 126 | (let ((case-fold-search t) |
| 127 | (mime-charset-pattern | ||
| 128 | (concat | ||
| 129 | "^content-type:[ \t]*text/plain;" | ||
| 130 | "\\(?:[ \t\n]*\\(?:format\\|delsp\\)=\"?[-a-z0-9]+\"?;\\)*" | ||
| 131 | "[ \t\n]*charset=\"?\\([^ \t\n\";]+\\)\"?")) | ||
| 132 | coding-system | ||
| 133 | character-coding | ||
| 128 | ;; Use the external browser function to send the | 134 | ;; Use the external browser function to send the |
| 129 | ;; message. | 135 | ;; message. |
| 130 | (browse-url-mailto-function nil)) | 136 | (browse-url-mailto-function nil)) |
| @@ -135,6 +141,15 @@ The mail client is taken to be the handler of mailto URLs." | |||
| 135 | (concat | 141 | (concat |
| 136 | (save-excursion | 142 | (save-excursion |
| 137 | (narrow-to-region (point-min) delimline) | 143 | (narrow-to-region (point-min) delimline) |
| 144 | (goto-char (point-min)) | ||
| 145 | (setq coding-system | ||
| 146 | (if (re-search-forward mime-charset-pattern nil t) | ||
| 147 | (coding-system-from-name (match-string 1)) | ||
| 148 | 'undecided)) | ||
| 149 | (setq character-coding | ||
| 150 | (mail-fetch-field "content-transfer-encoding")) | ||
| 151 | (when character-coding | ||
| 152 | (setq character-coding (downcase character-coding))) | ||
| 138 | (concat | 153 | (concat |
| 139 | "mailto:" | 154 | "mailto:" |
| 140 | ;; some of the headers according to RFC822 | 155 | ;; some of the headers according to RFC822 |
| @@ -160,18 +175,31 @@ The mail client is taken to be the handler of mailto URLs." | |||
| 160 | (mailclient-encode-string-as-url subj)) | 175 | (mailclient-encode-string-as-url subj)) |
| 161 | "")))) | 176 | "")))) |
| 162 | ;; body | 177 | ;; body |
| 163 | (concat | 178 | (mailclient-url-delim) "body=" |
| 164 | (mailclient-url-delim) "body=" | 179 | (progn |
| 165 | (mailclient-encode-string-as-url | 180 | (delete-region (point-min) delimline) |
| 166 | (if mailclient-place-body-on-clipboard-flag | 181 | (unless (null character-coding) |
| 167 | (progn | 182 | ;; mailto: and clipboard need UTF-8 and cannot deal with |
| 168 | (clipboard-kill-ring-save | 183 | ;; Content-Transfer-Encoding or Content-Type. |
| 169 | (+ 1 delimline) (point-max)) | 184 | ;; FIXME: There is code duplication here with rmail.el. |
| 170 | (concat | 185 | (set-buffer-multibyte nil) |
| 171 | "*** E-Mail body has been placed on clipboard, " | 186 | (cond |
| 172 | "please paste it here! ***")) | 187 | ((string= character-coding "base64") |
| 173 | ;; else | 188 | (base64-decode-region (point-min) (point-max))) |
| 174 | (buffer-substring (+ 1 delimline) (point-max)))))))))))) | 189 | ((string= character-coding "quoted-printable") |
| 190 | (mail-unquote-printable-region (point-min) (point-max) | ||
| 191 | nil nil t)) | ||
| 192 | (t (error "unsupported Content-Transfer-Encoding: %s" | ||
| 193 | character-coding))) | ||
| 194 | (decode-coding-region (point-min) (point-max) coding-system)) | ||
| 195 | (mailclient-encode-string-as-url | ||
| 196 | (if mailclient-place-body-on-clipboard-flag | ||
| 197 | (progn | ||
| 198 | (clipboard-kill-ring-save (point-min) (point-max)) | ||
| 199 | (concat | ||
| 200 | "*** E-Mail body has been placed on clipboard, " | ||
| 201 | "please paste it here! ***")) | ||
| 202 | (buffer-string))))))))))) | ||
| 175 | 203 | ||
| 176 | (provide 'mailclient) | 204 | (provide 'mailclient) |
| 177 | 205 | ||
diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el index ddd5414de76..f22222ad552 100644 --- a/lisp/mail/mspools.el +++ b/lisp/mail/mspools.el | |||
| @@ -309,7 +309,7 @@ Buffer is not displayed if SHOW is non-nil." | |||
| 309 | ;; to file name. | 309 | ;; to file name. |
| 310 | ;(defun get-folder-from-spool-safe (name) | 310 | ;(defun get-folder-from-spool-safe (name) |
| 311 | ; "Return the folder name corresponding to the spool file NAME." | 311 | ; "Return the folder name corresponding to the spool file NAME." |
| 312 | ; (if (string-match "^\\(.*\\)\.spool$" name) | 312 | ; (if (string-match "^\\(.*\\)\\.spool$" name) |
| 313 | ; (substring name (match-beginning 1) (match-end 1)) | 313 | ; (substring name (match-beginning 1) (match-end 1)) |
| 314 | ; (error "Could not extract folder name from spool name %s" name))) | 314 | ; (error "Could not extract folder name from spool name %s" name))) |
| 315 | 315 | ||
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 67b04b56968..8e38564b14a 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -316,7 +316,7 @@ Currently known variants are 'emacs and 'mailutils." | |||
| 316 | If non-nil, this variable is used to identify the correspondent | 316 | If non-nil, this variable is used to identify the correspondent |
| 317 | when receiving new mail. If it matches the address of the sender, | 317 | when receiving new mail. If it matches the address of the sender, |
| 318 | the recipient is taken as correspondent of a mail. | 318 | the recipient is taken as correspondent of a mail. |
| 319 | If nil \(default value\), your `user-login-name' and `user-mail-address' | 319 | If nil \(default value), your `user-login-name' and `user-mail-address' |
| 320 | are used to exclude yourself as correspondent. | 320 | are used to exclude yourself as correspondent. |
| 321 | 321 | ||
| 322 | Usually you don't have to set this variable, except if you collect mails | 322 | Usually you don't have to set this variable, except if you collect mails |
| @@ -4778,7 +4778,7 @@ With prefix argument N moves forward N messages with these labels. | |||
| 4778 | 4778 | ||
| 4779 | ;;;*** | 4779 | ;;;*** |
| 4780 | 4780 | ||
| 4781 | ;;;### (autoloads nil "rmailmm" "rmailmm.el" "e5b89eed8afb278cc8881f2208382c7c") | 4781 | ;;;### (autoloads nil "rmailmm" "rmailmm.el" "36f518e036612a33eb436cb267fd39c7") |
| 4782 | ;;; Generated autoloads from rmailmm.el | 4782 | ;;; Generated autoloads from rmailmm.el |
| 4783 | 4783 | ||
| 4784 | (autoload 'rmail-mime "rmailmm" "\ | 4784 | (autoload 'rmail-mime "rmailmm" "\ |
| @@ -4922,7 +4922,7 @@ SENDERS is a regular expression. | |||
| 4922 | 4922 | ||
| 4923 | ;;;*** | 4923 | ;;;*** |
| 4924 | 4924 | ||
| 4925 | ;;;### (autoloads nil "undigest" "undigest.el" "912d4d3bf762991df5d4d02f42358025") | 4925 | ;;;### (autoloads nil "undigest" "undigest.el" "c0ddfad4fe34ef9c1e790c2cc72b571d") |
| 4926 | ;;; Generated autoloads from undigest.el | 4926 | ;;; Generated autoloads from undigest.el |
| 4927 | 4927 | ||
| 4928 | (autoload 'undigestify-rmail-message "undigest" "\ | 4928 | (autoload 'undigestify-rmail-message "undigest" "\ |
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el index 3dd57b9bab7..16f62154fbc 100644 --- a/lisp/mail/rmailmm.el +++ b/lisp/mail/rmailmm.el | |||
| @@ -172,7 +172,7 @@ The value is usually nil, and bound to non-nil while inserting | |||
| 172 | MIME entities.") | 172 | MIME entities.") |
| 173 | 173 | ||
| 174 | (defvar rmail-mime-searching nil | 174 | (defvar rmail-mime-searching nil |
| 175 | "Bound to T inside `rmail-search-mime-message' to suppress expensive | 175 | "Bound to T inside `rmail-search-mime-message' to suppress expensive |
| 176 | operations such as HTML decoding") | 176 | operations such as HTML decoding") |
| 177 | 177 | ||
| 178 | ;;; MIME-entity object | 178 | ;;; MIME-entity object |
| @@ -190,7 +190,7 @@ A MIME-entity is a vector of 10 elements: | |||
| 190 | TYPE and DISPOSITION correspond to MIME headers Content-Type and | 190 | TYPE and DISPOSITION correspond to MIME headers Content-Type and |
| 191 | Content-Disposition respectively, and have this format: | 191 | Content-Disposition respectively, and have this format: |
| 192 | 192 | ||
| 193 | \(VALUE (ATTRIBUTE . VALUE) (ATTRIBUTE . VALUE) ...) | 193 | (VALUE (ATTRIBUTE . VALUE) (ATTRIBUTE . VALUE) ...) |
| 194 | 194 | ||
| 195 | Each VALUE is a string and each ATTRIBUTE is a string. | 195 | Each VALUE is a string and each ATTRIBUTE is a string. |
| 196 | 196 | ||
| @@ -202,7 +202,7 @@ Content-Type: multipart/mixed; | |||
| 202 | The corresponding TYPE argument must be: | 202 | The corresponding TYPE argument must be: |
| 203 | 203 | ||
| 204 | \(\"multipart/mixed\" | 204 | \(\"multipart/mixed\" |
| 205 | \(\"boundary\" . \"----=_NextPart_000_0104_01C617E4.BDEC4C40\")) | 205 | (\"boundary\" . \"----=_NextPart_000_0104_01C617E4.BDEC4C40\")) |
| 206 | 206 | ||
| 207 | TRANSFER-ENCODING corresponds to MIME header | 207 | TRANSFER-ENCODING corresponds to MIME header |
| 208 | Content-Transfer-Encoding, and is a lower-case string. | 208 | Content-Transfer-Encoding, and is a lower-case string. |
| @@ -1119,11 +1119,11 @@ are the values of the respective parsed headers. The latter should | |||
| 1119 | be lower-case. The parsed headers for CONTENT-TYPE and CONTENT-DISPOSITION | 1119 | be lower-case. The parsed headers for CONTENT-TYPE and CONTENT-DISPOSITION |
| 1120 | have the form | 1120 | have the form |
| 1121 | 1121 | ||
| 1122 | \(VALUE . ALIST) | 1122 | (VALUE . ALIST) |
| 1123 | 1123 | ||
| 1124 | In other words: | 1124 | In other words: |
| 1125 | 1125 | ||
| 1126 | \(VALUE (ATTRIBUTE . VALUE) (ATTRIBUTE . VALUE) ...) | 1126 | (VALUE (ATTRIBUTE . VALUE) (ATTRIBUTE . VALUE) ...) |
| 1127 | 1127 | ||
| 1128 | VALUE is a string and ATTRIBUTE is a symbol. | 1128 | VALUE is a string and ATTRIBUTE is a symbol. |
| 1129 | 1129 | ||
| @@ -1135,7 +1135,7 @@ Content-Type: multipart/mixed; | |||
| 1135 | The parsed header value: | 1135 | The parsed header value: |
| 1136 | 1136 | ||
| 1137 | \(\"multipart/mixed\" | 1137 | \(\"multipart/mixed\" |
| 1138 | \(\"boundary\" . \"----=_NextPart_000_0104_01C617E4.BDEC4C40\"))" | 1138 | (\"boundary\" . \"----=_NextPart_000_0104_01C617E4.BDEC4C40\"))" |
| 1139 | ;; Handle the content transfer encodings we know. Unknown transfer | 1139 | ;; Handle the content transfer encodings we know. Unknown transfer |
| 1140 | ;; encodings will be passed on to the various handlers. | 1140 | ;; encodings will be passed on to the various handlers. |
| 1141 | (cond ((string= content-transfer-encoding "base64") | 1141 | (cond ((string= content-transfer-encoding "base64") |
diff --git a/lisp/mail/undigest.el b/lisp/mail/undigest.el index 6dd26062285..9fbbd94b083 100644 --- a/lisp/mail/undigest.el +++ b/lisp/mail/undigest.el | |||
| @@ -79,7 +79,7 @@ See rmail-digest-methods." | |||
| 79 | (rmail-digest-rfc1153 | 79 | (rmail-digest-rfc1153 |
| 80 | "^-\\{70\\}\n\n" | 80 | "^-\\{70\\}\n\n" |
| 81 | "^\n-\\{30\\}\n\n" | 81 | "^\n-\\{30\\}\n\n" |
| 82 | "^\n-\\{30\\}\n\nEnd of .* Digest.*\n\\*\\{15,\\}\n+\'")) | 82 | "^\n-\\{30\\}\n\nEnd of .* Digest.*\n\\*\\{15,\\}\n+\\'")) |
| 83 | 83 | ||
| 84 | (defun rmail-digest-parse-rfc1153sloppy () | 84 | (defun rmail-digest-parse-rfc1153sloppy () |
| 85 | "Parse using the method defined in RFC 1153, allowing for some sloppiness. | 85 | "Parse using the method defined in RFC 1153, allowing for some sloppiness. |
diff --git a/lisp/man.el b/lisp/man.el index 23b2110a4ec..fbfa6f0c7f7 100644 --- a/lisp/man.el +++ b/lisp/man.el | |||
| @@ -311,7 +311,7 @@ This regular expression should start with a `^' character.") | |||
| 311 | "Regular expression describing a reference to another manpage.") | 311 | "Regular expression describing a reference to another manpage.") |
| 312 | 312 | ||
| 313 | (defvar Man-apropos-regexp | 313 | (defvar Man-apropos-regexp |
| 314 | (concat "\\\[\\(" Man-name-regexp "\\)\\\][ \t]*(\\(" Man-section-regexp "\\))") | 314 | (concat "\\[\\(" Man-name-regexp "\\)\\][ \t]*(\\(" Man-section-regexp "\\))") |
| 315 | "Regular expression describing a reference to manpages in \"man -k output\".") | 315 | "Regular expression describing a reference to manpages in \"man -k output\".") |
| 316 | 316 | ||
| 317 | (defvar Man-synopsis-regexp "SYNOPSIS" | 317 | (defvar Man-synopsis-regexp "SYNOPSIS" |
diff --git a/lisp/mh-e/mh-alias.el b/lisp/mh-e/mh-alias.el index de0038a306a..04e9fef59eb 100644 --- a/lisp/mh-e/mh-alias.el +++ b/lisp/mh-e/mh-alias.el | |||
| @@ -417,7 +417,7 @@ string is converted to lower case." | |||
| 417 | 417 | ||
| 418 | (defun mh-alias-insert-file (&optional alias) | 418 | (defun mh-alias-insert-file (&optional alias) |
| 419 | "Return filename which should be used to add ALIAS. | 419 | "Return filename which should be used to add ALIAS. |
| 420 | The value of the option `mh-alias-insert-file' is used if non-nil\; | 420 | The value of the option `mh-alias-insert-file' is used if non-nil; |
| 421 | otherwise the value of the \"Aliasfile:\" profile component is used. | 421 | otherwise the value of the \"Aliasfile:\" profile component is used. |
| 422 | If the alias already exists, try to return the name of the file that | 422 | If the alias already exists, try to return the name of the file that |
| 423 | contains it." | 423 | contains it." |
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el index 700d22c3862..129e6857a4c 100644 --- a/lisp/mh-e/mh-comp.el +++ b/lisp/mh-e/mh-comp.el | |||
| @@ -269,7 +269,7 @@ RETURN-ACTION and any additional arguments are IGNORED." | |||
| 269 | 269 | ||
| 270 | When you are all through editing a message, you send it with this | 270 | When you are all through editing a message, you send it with this |
| 271 | command. You can give a prefix argument ARG to monitor the first stage | 271 | command. You can give a prefix argument ARG to monitor the first stage |
| 272 | of the delivery\; this output can be found in a buffer called \"*MH-E | 272 | of the delivery; this output can be found in a buffer called \"*MH-E |
| 273 | Mail Delivery*\". | 273 | Mail Delivery*\". |
| 274 | 274 | ||
| 275 | The hook `mh-before-send-letter-hook' is run at the beginning of | 275 | The hook `mh-before-send-letter-hook' is run at the beginning of |
| @@ -1064,7 +1064,7 @@ The versions of MH-E, Emacs, and MH are shown." | |||
| 1064 | (string-match "[0-9]+\\.[0-9]+\\(\\.[0-9]+\\)?" | 1064 | (string-match "[0-9]+\\.[0-9]+\\(\\.[0-9]+\\)?" |
| 1065 | emacs-version) | 1065 | emacs-version) |
| 1066 | (match-string 0 emacs-version)) | 1066 | (match-string 0 emacs-version)) |
| 1067 | ((string-match "[0-9.]*\\( +\([ a-z]+[0-9]+\)\\)?" | 1067 | ((string-match "[0-9.]*\\( +([ a-z]+[0-9]+)\\)?" |
| 1068 | emacs-version) | 1068 | emacs-version) |
| 1069 | (match-string 0 emacs-version)) | 1069 | (match-string 0 emacs-version)) |
| 1070 | (t (format "%s.%s" emacs-major-version | 1070 | (t (format "%s.%s" emacs-major-version |
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index 7cdf67cc150..96fe7d797c2 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el | |||
| @@ -112,7 +112,7 @@ | |||
| 112 | "\\(defgroup-mh\\)" | 112 | "\\(defgroup-mh\\)" |
| 113 | "\\)\\>" | 113 | "\\)\\>" |
| 114 | ;; Any whitespace and defined object. | 114 | ;; Any whitespace and defined object. |
| 115 | "[ \t'\(]*" | 115 | "[ \t'(]*" |
| 116 | "\\(setf[ \t]+\\sw+)\\|\\sw+\\)?") | 116 | "\\(setf[ \t]+\\sw+)\\|\\sw+\\)?") |
| 117 | (1 font-lock-keyword-face) | 117 | (1 font-lock-keyword-face) |
| 118 | (7 (cond ((match-beginning 2) font-lock-function-name-face) | 118 | (7 (cond ((match-beginning 2) font-lock-function-name-face) |
| @@ -1834,7 +1834,7 @@ message without line wrapping." | |||
| 1834 | "Default method to use in security tags. | 1834 | "Default method to use in security tags. |
| 1835 | 1835 | ||
| 1836 | This option is used to select between a variety of mail security | 1836 | This option is used to select between a variety of mail security |
| 1837 | mechanisms. The default is \"PGP (MIME)\" if it is supported\; | 1837 | mechanisms. The default is \"PGP (MIME)\" if it is supported; |
| 1838 | otherwise, the default is \"None\". Other mechanisms include | 1838 | otherwise, the default is \"None\". Other mechanisms include |
| 1839 | vanilla \"PGP\" and \"S/MIME\". | 1839 | vanilla \"PGP\" and \"S/MIME\". |
| 1840 | 1840 | ||
diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el index ae5e2bf1f3b..d21720ebe55 100644 --- a/lisp/mh-e/mh-folder.el +++ b/lisp/mh-e/mh-folder.el | |||
| @@ -755,7 +755,7 @@ You can enter the message NUMBER either before or after typing | |||
| 755 | 755 | ||
| 756 | In a program, optional non-nil second argument NO-ERROR-IF-NO-MESSAGE | 756 | In a program, optional non-nil second argument NO-ERROR-IF-NO-MESSAGE |
| 757 | means return nil instead of signaling an error if message does not | 757 | means return nil instead of signaling an error if message does not |
| 758 | exist\; in this case, the cursor is positioned near where the message | 758 | exist; in this case, the cursor is positioned near where the message |
| 759 | would have been. Non-nil third argument DONT-SHOW means not to show | 759 | would have been. Non-nil third argument DONT-SHOW means not to show |
| 760 | the message." | 760 | the message." |
| 761 | (interactive "NGo to message: ") | 761 | (interactive "NGo to message: ") |
diff --git a/lisp/mh-e/mh-letter.el b/lisp/mh-e/mh-letter.el index 62e9b4a357d..7a56427027e 100644 --- a/lisp/mh-e/mh-letter.el +++ b/lisp/mh-e/mh-letter.el | |||
| @@ -553,7 +553,7 @@ one space." | |||
| 553 | (defun mh-letter-confirm-address () | 553 | (defun mh-letter-confirm-address () |
| 554 | "Flash alias expansion. | 554 | "Flash alias expansion. |
| 555 | 555 | ||
| 556 | Addresses are separated by a comma\; when you press the comma, | 556 | Addresses are separated by a comma; when you press the comma, |
| 557 | this command flashes the alias expansion in the minibuffer if | 557 | this command flashes the alias expansion in the minibuffer if |
| 558 | `mh-alias-flash-on-comma' is turned on." | 558 | `mh-alias-flash-on-comma' is turned on." |
| 559 | (interactive) | 559 | (interactive) |
| @@ -932,7 +932,7 @@ Any match found replaces the text from BEGIN to END." | |||
| 932 | (and (stringp file) | 932 | (and (stringp file) |
| 933 | (file-exists-p file) | 933 | (file-exists-p file) |
| 934 | (or (and (not (mh-have-file-command)) | 934 | (or (and (not (mh-have-file-command)) |
| 935 | (not (null (string-match "\.vcf$" file)))) | 935 | (not (null (string-match "\\.vcf$" file)))) |
| 936 | (string-equal "text/x-vcard" (mh-file-mime-type file)))))) | 936 | (string-equal "text/x-vcard" (mh-file-mime-type file)))))) |
| 937 | 937 | ||
| 938 | ;;;###mh-autoload | 938 | ;;;###mh-autoload |
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index 60b796b1fdb..a1c0bebd289 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el | |||
| @@ -1715,7 +1715,7 @@ buffer, while END defaults to the end of the buffer." | |||
| 1715 | (defun mh-minibuffer-read-type (filename &optional default) | 1715 | (defun mh-minibuffer-read-type (filename &optional default) |
| 1716 | "Return the content type associated with the given FILENAME. | 1716 | "Return the content type associated with the given FILENAME. |
| 1717 | If the \"file\" command exists and recognizes the given file, | 1717 | If the \"file\" command exists and recognizes the given file, |
| 1718 | then its value is returned\; otherwise, the user is prompted for | 1718 | then its value is returned; otherwise, the user is prompted for |
| 1719 | a type (see `mailcap-mime-types'). | 1719 | a type (see `mailcap-mime-types'). |
| 1720 | Optional argument DEFAULT is returned if a type isn't entered." | 1720 | Optional argument DEFAULT is returned if a type isn't entered." |
| 1721 | (mailcap-parse-mimetypes) | 1721 | (mailcap-parse-mimetypes) |
| @@ -1756,21 +1756,21 @@ Returns nil if file command not on system." | |||
| 1756 | (kill-buffer tmp-buffer))))))) | 1756 | (kill-buffer tmp-buffer))))))) |
| 1757 | 1757 | ||
| 1758 | (defvar mh-file-mime-type-substitutions | 1758 | (defvar mh-file-mime-type-substitutions |
| 1759 | '(("application/msword" "\.xls" "application/ms-excel") | 1759 | '(("application/msword" "\\.xls" "application/ms-excel") |
| 1760 | ("application/msword" "\.ppt" "application/ms-powerpoint") | 1760 | ("application/msword" "\\.ppt" "application/ms-powerpoint") |
| 1761 | ("text/plain" "\.vcf" "text/x-vcard") | 1761 | ("text/plain" "\\.vcf" "text/x-vcard") |
| 1762 | ("text/rtf" "\.rtf" "application/rtf") | 1762 | ("text/rtf" "\\.rtf" "application/rtf") |
| 1763 | ("application/x-zip" "\.sxc" "application/vnd.sun.xml.calc") | 1763 | ("application/x-zip" "\\.sxc" "application/vnd.sun.xml.calc") |
| 1764 | ("application/x-zip" "\.sxd" "application/vnd.sun.xml.draw") | 1764 | ("application/x-zip" "\\.sxd" "application/vnd.sun.xml.draw") |
| 1765 | ("application/x-zip" "\.sxi" "application/vnd.sun.xml.impress") | 1765 | ("application/x-zip" "\\.sxi" "application/vnd.sun.xml.impress") |
| 1766 | ("application/x-zip" "\.sxw" "application/vnd.sun.xml.writer") | 1766 | ("application/x-zip" "\\.sxw" "application/vnd.sun.xml.writer") |
| 1767 | ("application/x-zip" "\.odg" "application/vnd.oasis.opendocument.graphics") | 1767 | ("application/x-zip" "\\.odg" "application/vnd.oasis.opendocument.graphics") |
| 1768 | ("application/x-zip" "\.odi" "application/vnd.oasis.opendocument.image") | 1768 | ("application/x-zip" "\\.odi" "application/vnd.oasis.opendocument.image") |
| 1769 | ("application/x-zip" "\.odp" | 1769 | ("application/x-zip" "\\.odp" |
| 1770 | "application/vnd.oasis.opendocument.presentation") | 1770 | "application/vnd.oasis.opendocument.presentation") |
| 1771 | ("application/x-zip" "\.ods" | 1771 | ("application/x-zip" "\\.ods" |
| 1772 | "application/vnd.oasis.opendocument.spreadsheet") | 1772 | "application/vnd.oasis.opendocument.spreadsheet") |
| 1773 | ("application/x-zip" "\.odt" "application/vnd.oasis.opendocument.text")) | 1773 | ("application/x-zip" "\\.odt" "application/vnd.oasis.opendocument.text")) |
| 1774 | "Substitutions to make for Content-Type returned from file command. | 1774 | "Substitutions to make for Content-Type returned from file command. |
| 1775 | The first element is the Content-Type returned by the file command. | 1775 | The first element is the Content-Type returned by the file command. |
| 1776 | The second element is a regexp matching the file name, usually the | 1776 | The second element is a regexp matching the file name, usually the |
diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el index 7d066b0b8dd..b6eef4ecfc6 100644 --- a/lisp/mh-e/mh-search.el +++ b/lisp/mh-e/mh-search.el | |||
| @@ -1247,7 +1247,7 @@ is used to search." | |||
| 1247 | (prog1 | 1247 | (prog1 |
| 1248 | (block nil | 1248 | (block nil |
| 1249 | (when (eobp) (return nil)) | 1249 | (when (eobp) (return nil)) |
| 1250 | (when (search-forward-regexp "^\+" (mh-line-end-position) t) | 1250 | (when (search-forward-regexp "^\\+" (mh-line-end-position) t) |
| 1251 | (setq mh-index-pick-folder | 1251 | (setq mh-index-pick-folder |
| 1252 | (buffer-substring-no-properties (mh-line-beginning-position) | 1252 | (buffer-substring-no-properties (mh-line-beginning-position) |
| 1253 | (mh-line-end-position))) | 1253 | (mh-line-end-position))) |
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el index 643674a4523..37fd1651c5e 100644 --- a/lisp/mh-e/mh-utils.el +++ b/lisp/mh-e/mh-utils.el | |||
| @@ -515,7 +515,7 @@ they will not be returned." | |||
| 515 | ;; folder is specified, ensure it is nil to avoid adding the | 515 | ;; folder is specified, ensure it is nil to avoid adding the |
| 516 | ;; folder to the folder-list and adding a slash to it. | 516 | ;; folder to the folder-list and adding a slash to it. |
| 517 | (when folder | 517 | (when folder |
| 518 | (setq folder (mh-replace-regexp-in-string "^\+" "" folder)) | 518 | (setq folder (mh-replace-regexp-in-string "^\\+" "" folder)) |
| 519 | (setq folder (mh-replace-regexp-in-string "/+$" "" folder)) | 519 | (setq folder (mh-replace-regexp-in-string "/+$" "" folder)) |
| 520 | (if (equal folder "") | 520 | (if (equal folder "") |
| 521 | (setq folder nil))) | 521 | (setq folder nil))) |
diff --git a/lisp/mh-e/mh-xface.el b/lisp/mh-e/mh-xface.el index b7b7febca26..d48a8b3d152 100644 --- a/lisp/mh-e/mh-xface.el +++ b/lisp/mh-e/mh-xface.el | |||
| @@ -366,7 +366,7 @@ filenames. In addition, replaces * with %2a. See URL | |||
| 366 | `http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iitemnamelimits/GetValidCharacters.asp'." | 366 | `http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/ifaces/iitemnamelimits/GetValidCharacters.asp'." |
| 367 | (format "%s/%s.png" mh-x-image-cache-directory | 367 | (format "%s/%s.png" mh-x-image-cache-directory |
| 368 | (mh-replace-regexp-in-string | 368 | (mh-replace-regexp-in-string |
| 369 | "\*" "%2a" | 369 | "\\*" "%2a" |
| 370 | (mh-url-hexify-string | 370 | (mh-url-hexify-string |
| 371 | (with-temp-buffer | 371 | (with-temp-buffer |
| 372 | (insert url) | 372 | (insert url) |
diff --git a/lisp/mouse.el b/lisp/mouse.el index 6584733a860..d6ce31a7a53 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -1111,12 +1111,12 @@ This does not delete the region; it acts like \\[kill-ring-save]." | |||
| 1111 | ;; Delete, but make the undo-list entry share with the kill ring. | 1111 | ;; Delete, but make the undo-list entry share with the kill ring. |
| 1112 | ;; First, delete just one char, so in case buffer is being modified | 1112 | ;; First, delete just one char, so in case buffer is being modified |
| 1113 | ;; for the first time, the undo list records that fact. | 1113 | ;; for the first time, the undo list records that fact. |
| 1114 | (let (before-change-functions after-change-functions) | 1114 | (let ((inhibit-modification-hooks t)) |
| 1115 | (delete-region beg | 1115 | (delete-region beg |
| 1116 | (+ beg (if (> end beg) 1 -1)))) | 1116 | (+ beg (if (> end beg) 1 -1)))) |
| 1117 | (let ((buffer-undo-list buffer-undo-list)) | 1117 | (let ((buffer-undo-list buffer-undo-list)) |
| 1118 | ;; Undo that deletion--but don't change the undo list! | 1118 | ;; Undo that deletion--but don't change the undo list! |
| 1119 | (let (before-change-functions after-change-functions) | 1119 | (let ((inhibit-modification-hooks t)) |
| 1120 | (primitive-undo 1 buffer-undo-list)) | 1120 | (primitive-undo 1 buffer-undo-list)) |
| 1121 | ;; Now delete the rest of the specified region, | 1121 | ;; Now delete the rest of the specified region, |
| 1122 | ;; but don't record it. | 1122 | ;; but don't record it. |
diff --git a/lisp/mpc.el b/lisp/mpc.el index b7c19a967fa..bc7d4733ee8 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el | |||
| @@ -268,7 +268,10 @@ defaults to 6600 and HOST defaults to localhost." | |||
| 268 | (if (string-match "[^[:digit:]]" v) | 268 | (if (string-match "[^[:digit:]]" v) |
| 269 | (string-to-number v) | 269 | (string-to-number v) |
| 270 | v))))) | 270 | v))))) |
| 271 | (when (string-prefix-p "/" host) ;FIXME: Use file-name-absolute-p? | 271 | (when (file-name-absolute-p host) |
| 272 | ;; Expand file name because `file-name-absolute-p' | ||
| 273 | ;; considers paths beginning with "~" as absolute | ||
| 274 | (setq host (expand-file-name host)) | ||
| 272 | (setq local t)) | 275 | (setq local t)) |
| 273 | 276 | ||
| 274 | (mpc--debug "Connecting to %s:%s..." host port) | 277 | (mpc--debug "Connecting to %s:%s..." host port) |
| @@ -909,8 +912,13 @@ If PLAYLIST is t or nil or missing, use the main playlist." | |||
| 909 | (defun mpc-file-local-copy (file) | 912 | (defun mpc-file-local-copy (file) |
| 910 | ;; Try to set mpc-mpd-music-directory. | 913 | ;; Try to set mpc-mpd-music-directory. |
| 911 | (when (and (null mpc-mpd-music-directory) | 914 | (when (and (null mpc-mpd-music-directory) |
| 912 | (string-match "\\`localhost" mpc-host)) | 915 | (or (string-match "\\`localhost" mpc-host) |
| 913 | (let ((files '("~/.mpdconf" "/etc/mpd.conf")) | 916 | (file-name-absolute-p mpc-host))) |
| 917 | (let ((files `(,(let ((xdg (getenv "XDG_CONFIG_HOME"))) | ||
| 918 | (concat (if (and xdg (file-name-absolute-p xdg)) | ||
| 919 | xdg "~/.config") | ||
| 920 | "/mpd/mpd.conf")) | ||
| 921 | "~/.mpdconf" "~/.mpd/mpd.conf" "/etc/mpd.conf")) | ||
| 914 | file) | 922 | file) |
| 915 | (while (and files (not file)) | 923 | (while (and files (not file)) |
| 916 | (if (file-exists-p (car files)) (setq file (car files))) | 924 | (if (file-exists-p (car files)) (setq file (car files))) |
diff --git a/lisp/msb.el b/lisp/msb.el index 0351bda0e42..fbc130174b8 100644 --- a/lisp/msb.el +++ b/lisp/msb.el | |||
| @@ -659,7 +659,7 @@ If the argument is left out or nil, then the current buffer is considered." | |||
| 659 | (defun msb--create-function-info (menu-cond-elt) | 659 | (defun msb--create-function-info (menu-cond-elt) |
| 660 | "Create a vector from an element MENU-COND-ELT of `msb-menu-cond'. | 660 | "Create a vector from an element MENU-COND-ELT of `msb-menu-cond'. |
| 661 | This takes the form: | 661 | This takes the form: |
| 662 | \[BUFFER-LIST-VARIABLE CONDITION MENU-SORT-KEY MENU-TITLE ITEM-HANDLER SORTER] | 662 | [BUFFER-LIST-VARIABLE CONDITION MENU-SORT-KEY MENU-TITLE ITEM-HANDLER SORTER] |
| 663 | See `msb-menu-cond' for a description of its elements." | 663 | See `msb-menu-cond' for a description of its elements." |
| 664 | (let* ((list-symbol (make-symbol "-msb-buffer-list")) | 664 | (let* ((list-symbol (make-symbol "-msb-buffer-list")) |
| 665 | (tmp-ih (and (> (length menu-cond-elt) 3) | 665 | (tmp-ih (and (> (length menu-cond-elt) 3) |
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index bb8351437d7..4f7fa3b8f39 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el | |||
| @@ -681,7 +681,7 @@ | |||
| 681 | '("\\`/\\(\\([^/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4)) | 681 | '("\\`/\\(\\([^/:]*\\)@\\)?\\([^@/:]*[^@/:.]\\):\\(.*\\)" . (3 2 4)) |
| 682 | "Format of a fully expanded remote file name. | 682 | "Format of a fully expanded remote file name. |
| 683 | 683 | ||
| 684 | This is a list of the form \(REGEXP HOST USER NAME\), | 684 | This is a list of the form \(REGEXP HOST USER NAME), |
| 685 | where REGEXP is a regular expression matching | 685 | where REGEXP is a regular expression matching |
| 686 | the full remote name, and HOST, USER, and NAME are the numbers of | 686 | the full remote name, and HOST, USER, and NAME are the numbers of |
| 687 | parenthesized expressions in REGEXP for the components (in that order)." | 687 | parenthesized expressions in REGEXP for the components (in that order)." |
| @@ -1366,8 +1366,8 @@ only return the directory part of FILE." | |||
| 1366 | (goto-char end))) | 1366 | (goto-char end))) |
| 1367 | 1367 | ||
| 1368 | ;; Read in ~/.netrc, if one exists. If ~/.netrc file exists and has | 1368 | ;; Read in ~/.netrc, if one exists. If ~/.netrc file exists and has |
| 1369 | ;; the correct permissions then extract the \`machine\', \`login\', | 1369 | ;; the correct permissions then extract the machine, login, |
| 1370 | ;; \`password\' and \`account\' information from within. | 1370 | ;; password and account information from within. |
| 1371 | 1371 | ||
| 1372 | (defun ange-ftp-parse-netrc () | 1372 | (defun ange-ftp-parse-netrc () |
| 1373 | ;; We set this before actually doing it to avoid the possibility | 1373 | ;; We set this before actually doing it to avoid the possibility |
| @@ -2511,7 +2511,7 @@ Works by doing a pwd and examining the directory syntax." | |||
| 2511 | ;;;; Remote file and directory listing support. | 2511 | ;;;; Remote file and directory listing support. |
| 2512 | ;;;; ------------------------------------------------------------ | 2512 | ;;;; ------------------------------------------------------------ |
| 2513 | 2513 | ||
| 2514 | ;; Returns whether HOST's FTP server doesn't like \'ls\' or \'dir\' commands | 2514 | ;; Returns whether HOST's FTP server doesn't like 'ls' or 'dir' commands |
| 2515 | ;; to take switch arguments. | 2515 | ;; to take switch arguments. |
| 2516 | (defun ange-ftp-dumb-unix-host (host) | 2516 | (defun ange-ftp-dumb-unix-host (host) |
| 2517 | (and host ange-ftp-dumb-unix-host-regexp | 2517 | (and host ange-ftp-dumb-unix-host-regexp |
diff --git a/lisp/net/dbus.el b/lisp/net/dbus.el index a7efaf81dbc..e8e6bc0cb6a 100644 --- a/lisp/net/dbus.el +++ b/lisp/net/dbus.el | |||
| @@ -380,7 +380,7 @@ Example: | |||
| 380 | \"org.freedesktop.Hal.Device\" \"GetPropertyString\" \\='message | 380 | \"org.freedesktop.Hal.Device\" \"GetPropertyString\" \\='message |
| 381 | \"system.kernel.machine\") | 381 | \"system.kernel.machine\") |
| 382 | 382 | ||
| 383 | => \(:serial :system 2) | 383 | => (:serial :system 2) |
| 384 | 384 | ||
| 385 | -| i686" | 385 | -| i686" |
| 386 | 386 | ||
| @@ -656,8 +656,8 @@ Example: | |||
| 656 | :system \"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\" | 656 | :system \"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\" |
| 657 | \"org.freedesktop.Hal.Manager\" \"DeviceAdded\" \\='my-signal-handler) | 657 | \"org.freedesktop.Hal.Manager\" \"DeviceAdded\" \\='my-signal-handler) |
| 658 | 658 | ||
| 659 | => \(\(:signal :system \"org.freedesktop.Hal.Manager\" \"DeviceAdded\") | 659 | => ((:signal :system \"org.freedesktop.Hal.Manager\" \"DeviceAdded\") |
| 660 | \(\"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\" my-signal-handler)) | 660 | (\"org.freedesktop.Hal\" \"/org/freedesktop/Hal/Manager\" my-signal-handler)) |
| 661 | 661 | ||
| 662 | `dbus-register-signal' returns an object, which can be used in | 662 | `dbus-register-signal' returns an object, which can be used in |
| 663 | `dbus-unregister-object' for removing the registration." | 663 | `dbus-unregister-object' for removing the registration." |
| @@ -1143,7 +1143,7 @@ Note, that this autoloads SERVICE if it is not running yet. If | |||
| 1143 | it shall be checked whether SERVICE is already running, one shall | 1143 | it shall be checked whether SERVICE is already running, one shall |
| 1144 | apply | 1144 | apply |
| 1145 | 1145 | ||
| 1146 | \(member service \(dbus-list-known-names bus))" | 1146 | (member service \(dbus-list-known-names bus))" |
| 1147 | ;; "Ping" raises a D-Bus error if SERVICE does not exist. | 1147 | ;; "Ping" raises a D-Bus error if SERVICE does not exist. |
| 1148 | ;; Otherwise, it returns silently with nil. | 1148 | ;; Otherwise, it returns silently with nil. |
| 1149 | (condition-case nil | 1149 | (condition-case nil |
| @@ -1631,22 +1631,22 @@ name, and the cdr is the list of properties as returned by | |||
| 1631 | 1631 | ||
| 1632 | \(dbus-get-all-managed-objects :session \"org.gnome.SettingsDaemon\" \"/\") | 1632 | \(dbus-get-all-managed-objects :session \"org.gnome.SettingsDaemon\" \"/\") |
| 1633 | 1633 | ||
| 1634 | => \(\(\"/org/gnome/SettingsDaemon/MediaKeys\" | 1634 | => ((\"/org/gnome/SettingsDaemon/MediaKeys\" |
| 1635 | \(\"org.gnome.SettingsDaemon.MediaKeys\") | 1635 | (\"org.gnome.SettingsDaemon.MediaKeys\") |
| 1636 | \(\"org.freedesktop.DBus.Peer\") | 1636 | (\"org.freedesktop.DBus.Peer\") |
| 1637 | \(\"org.freedesktop.DBus.Introspectable\") | 1637 | (\"org.freedesktop.DBus.Introspectable\") |
| 1638 | \(\"org.freedesktop.DBus.Properties\") | 1638 | (\"org.freedesktop.DBus.Properties\") |
| 1639 | \(\"org.freedesktop.DBus.ObjectManager\")) | 1639 | (\"org.freedesktop.DBus.ObjectManager\")) |
| 1640 | \(\"/org/gnome/SettingsDaemon/Power\" | 1640 | (\"/org/gnome/SettingsDaemon/Power\" |
| 1641 | \(\"org.gnome.SettingsDaemon.Power.Keyboard\") | 1641 | (\"org.gnome.SettingsDaemon.Power.Keyboard\") |
| 1642 | \(\"org.gnome.SettingsDaemon.Power.Screen\") | 1642 | (\"org.gnome.SettingsDaemon.Power.Screen\") |
| 1643 | \(\"org.gnome.SettingsDaemon.Power\" | 1643 | (\"org.gnome.SettingsDaemon.Power\" |
| 1644 | \(\"Icon\" . \". GThemedIcon battery-full-charged-symbolic \") | 1644 | (\"Icon\" . \". GThemedIcon battery-full-charged-symbolic \") |
| 1645 | \(\"Tooltip\" . \"Laptop battery is charged\")) | 1645 | (\"Tooltip\" . \"Laptop battery is charged\")) |
| 1646 | \(\"org.freedesktop.DBus.Peer\") | 1646 | (\"org.freedesktop.DBus.Peer\") |
| 1647 | \(\"org.freedesktop.DBus.Introspectable\") | 1647 | (\"org.freedesktop.DBus.Introspectable\") |
| 1648 | \(\"org.freedesktop.DBus.Properties\") | 1648 | (\"org.freedesktop.DBus.Properties\") |
| 1649 | \(\"org.freedesktop.DBus.ObjectManager\")) | 1649 | (\"org.freedesktop.DBus.ObjectManager\")) |
| 1650 | ...) | 1650 | ...) |
| 1651 | 1651 | ||
| 1652 | If possible, \"org.freedesktop.DBus.ObjectManager.GetManagedObjects\" | 1652 | If possible, \"org.freedesktop.DBus.ObjectManager.GetManagedObjects\" |
diff --git a/lisp/net/eww.el b/lisp/net/eww.el index f2f5ecb8e88..d44890f1b09 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el | |||
| @@ -263,7 +263,7 @@ word(s) will be searched for via `eww-search-prefix'." | |||
| 263 | ;; en.wikipedia.org/wiki/Free software | 263 | ;; en.wikipedia.org/wiki/Free software |
| 264 | (string-match "\\`[A-Za-z_]+\\.[A-Za-z._]+/" url) | 264 | (string-match "\\`[A-Za-z_]+\\.[A-Za-z._]+/" url) |
| 265 | (and (= (length (split-string url)) 1) | 265 | (and (= (length (split-string url)) 1) |
| 266 | (or (and (not (string-match-p "\\`[\"\'].*[\"\']\\'" url)) | 266 | (or (and (not (string-match-p "\\`[\"'].*[\"']\\'" url)) |
| 267 | (> (length (split-string url "[.:]")) 1)) | 267 | (> (length (split-string url "[.:]")) 1)) |
| 268 | (string-match eww-local-regex url)))) | 268 | (string-match eww-local-regex url)))) |
| 269 | (progn | 269 | (progn |
diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el index 418796a89c9..479c9a579f3 100644 --- a/lisp/net/gnutls.el +++ b/lisp/net/gnutls.el | |||
| @@ -111,9 +111,9 @@ specifying a port number to connect to. | |||
| 111 | 111 | ||
| 112 | Usage example: | 112 | Usage example: |
| 113 | 113 | ||
| 114 | \(with-temp-buffer | 114 | (with-temp-buffer |
| 115 | \(open-gnutls-stream \"tls\" | 115 | (open-gnutls-stream \"tls\" |
| 116 | \(current-buffer) | 116 | (current-buffer) |
| 117 | \"your server goes here\" | 117 | \"your server goes here\" |
| 118 | \"imaps\")) | 118 | \"imaps\")) |
| 119 | 119 | ||
diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el index eaf1d7e22c4..c6d40b62415 100644 --- a/lisp/net/net-utils.el +++ b/lisp/net/net-utils.el | |||
| @@ -204,7 +204,7 @@ This variable is only used if the variable | |||
| 204 | :group 'net-utils | 204 | :group 'net-utils |
| 205 | :type '(repeat string)) | 205 | :type '(repeat string)) |
| 206 | 206 | ||
| 207 | (defcustom smbclient-prompt-regexp "^smb: \>" | 207 | (defcustom smbclient-prompt-regexp "^smb: >" |
| 208 | "Regexp which matches the smbclient program's prompt. | 208 | "Regexp which matches the smbclient program's prompt. |
| 209 | 209 | ||
| 210 | This variable is only used if the variable | 210 | This variable is only used if the variable |
diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el index 6c80e627477..072fd015b60 100644 --- a/lisp/net/newst-backend.el +++ b/lisp/net/newst-backend.el | |||
| @@ -343,8 +343,8 @@ pattern-list is checked: The new headline will be marked as AGE | |||
| 343 | if REGEXP matches the headline's TITLE-OR-DESCRIPTION. | 343 | if REGEXP matches the headline's TITLE-OR-DESCRIPTION. |
| 344 | 344 | ||
| 345 | If, for example, `newsticker-auto-mark-filter-list' looks like | 345 | If, for example, `newsticker-auto-mark-filter-list' looks like |
| 346 | \((slashdot (\\='old \\='title \"^Forget me!$\") (\\='immortal \\='title \"Read me\") | 346 | ((slashdot (\\='old \\='title \"^Forget me!$\") (\\='immortal \\='title \"Read me\") |
| 347 | \(\\='immortal \\='all \"important\")))) | 347 | (\\='immortal \\='all \"important\")))) |
| 348 | 348 | ||
| 349 | then all articles from slashdot are marked as old if they have | 349 | then all articles from slashdot are marked as old if they have |
| 350 | the title \"Forget me!\". All articles with a title containing | 350 | the title \"Forget me!\". All articles with a title containing |
| @@ -562,7 +562,7 @@ If non-nil only the current headline is visible.") | |||
| 562 | "Return guid of ITEM." | 562 | "Return guid of ITEM." |
| 563 | (newsticker--guid-to-string (assoc 'guid (newsticker--extra item)))) | 563 | (newsticker--guid-to-string (assoc 'guid (newsticker--extra item)))) |
| 564 | (defsubst newsticker--enclosure (item) | 564 | (defsubst newsticker--enclosure (item) |
| 565 | "Return enclosure element of ITEM in the form \(...FIXME...\) or nil." | 565 | "Return enclosure element of ITEM in the form (...FIXME...) or nil." |
| 566 | (let ((enclosure (assoc 'enclosure (newsticker--extra item)))) | 566 | (let ((enclosure (assoc 'enclosure (newsticker--extra item)))) |
| 567 | (if enclosure | 567 | (if enclosure |
| 568 | (xml-node-attributes enclosure)))) | 568 | (xml-node-attributes enclosure)))) |
diff --git a/lisp/net/newst-reader.el b/lisp/net/newst-reader.el index be4179e4b11..105b36e14a3 100644 --- a/lisp/net/newst-reader.el +++ b/lisp/net/newst-reader.el | |||
| @@ -258,7 +258,7 @@ for formatting." | |||
| 258 | (defun newsticker--image-read (feed-name-symbol disabled &optional max-height) | 258 | (defun newsticker--image-read (feed-name-symbol disabled &optional max-height) |
| 259 | "Read the cached image for FEED-NAME-SYMBOL from disk. | 259 | "Read the cached image for FEED-NAME-SYMBOL from disk. |
| 260 | If DISABLED is non-nil the image will be converted to a disabled look | 260 | If DISABLED is non-nil the image will be converted to a disabled look |
| 261 | \(unless `newsticker-enable-logo-manipulations' is not t\). | 261 | \(unless `newsticker-enable-logo-manipulations' is not t). |
| 262 | Optional argument MAX-HEIGHT specifies the maximal image height. | 262 | Optional argument MAX-HEIGHT specifies the maximal image height. |
| 263 | Return the image." | 263 | Return the image." |
| 264 | (let ((image-name (concat (newsticker--images-dir) | 264 | (let ((image-name (concat (newsticker--images-dir) |
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index df0635066cc..d58f3ebd4ea 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el | |||
| @@ -2600,7 +2600,7 @@ If ARG is given, opens the URL in a new browser window." | |||
| 2600 | (cond ((rcirc-channel-p target) | 2600 | (cond ((rcirc-channel-p target) |
| 2601 | target) | 2601 | target) |
| 2602 | ;;; -ChanServ- [#gnu] Welcome... | 2602 | ;;; -ChanServ- [#gnu] Welcome... |
| 2603 | ((string-match "\\[\\(#[^\] ]+\\)\\]" message) | 2603 | ((string-match "\\[\\(#[^] ]+\\)\\]" message) |
| 2604 | (match-string 1 message)) | 2604 | (match-string 1 message)) |
| 2605 | (sender | 2605 | (sender |
| 2606 | (if (string= sender (rcirc-server-name process)) | 2606 | (if (string= sender (rcirc-server-name process)) |
diff --git a/lisp/net/rlogin.el b/lisp/net/rlogin.el index da46ec3f670..fead60eb8ab 100644 --- a/lisp/net/rlogin.el +++ b/lisp/net/rlogin.el | |||
| @@ -145,7 +145,7 @@ other arguments for `rlogin'. | |||
| 145 | Input is sent line-at-a-time to the remote connection. | 145 | Input is sent line-at-a-time to the remote connection. |
| 146 | 146 | ||
| 147 | Communication with the remote host is recorded in a buffer `*rlogin-HOST*' | 147 | Communication with the remote host is recorded in a buffer `*rlogin-HOST*' |
| 148 | \(or `*rlogin-USER@HOST*' if the remote username differs\). | 148 | \(or `*rlogin-USER@HOST*' if the remote username differs). |
| 149 | If a prefix argument is given and the buffer `*rlogin-HOST*' already exists, | 149 | If a prefix argument is given and the buffer `*rlogin-HOST*' already exists, |
| 150 | a new buffer with a different connection will be made. | 150 | a new buffer with a different connection will be made. |
| 151 | 151 | ||
diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el index c4102a18cef..5e0274029f1 100644 --- a/lisp/net/secrets.el +++ b/lisp/net/secrets.el | |||
| @@ -598,7 +598,7 @@ If successful, return the object path of the collection." | |||
| 598 | ATTRIBUTES are key-value pairs. The keys are keyword symbols, | 598 | ATTRIBUTES are key-value pairs. The keys are keyword symbols, |
| 599 | starting with a colon. Example: | 599 | starting with a colon. Example: |
| 600 | 600 | ||
| 601 | \(secrets-search-items \"Tramp collection\" :user \"joe\") | 601 | (secrets-search-items \"Tramp collection\" :user \"joe\") |
| 602 | 602 | ||
| 603 | The object labels of the found items are returned as list." | 603 | The object labels of the found items are returned as list." |
| 604 | (let ((collection-path (secrets-unlock-collection collection)) | 604 | (let ((collection-path (secrets-unlock-collection collection)) |
| @@ -635,8 +635,8 @@ The object labels of the found items are returned as list." | |||
| 635 | ATTRIBUTES are key-value pairs set for the created item. The | 635 | ATTRIBUTES are key-value pairs set for the created item. The |
| 636 | keys are keyword symbols, starting with a colon. Example: | 636 | keys are keyword symbols, starting with a colon. Example: |
| 637 | 637 | ||
| 638 | \(secrets-create-item \"Tramp collection\" \"item\" \"geheim\" | 638 | (secrets-create-item \"Tramp collection\" \"item\" \"geheim\" |
| 639 | :method \"sudo\" :user \"joe\" :host \"remote-host\"\) | 639 | :method \"sudo\" :user \"joe\" :host \"remote-host\") |
| 640 | 640 | ||
| 641 | The object path of the created item is returned." | 641 | The object path of the created item is returned." |
| 642 | (unless (member item (secrets-list-items collection)) | 642 | (unless (member item (secrets-list-items collection)) |
diff --git a/lisp/net/shr-color.el b/lisp/net/shr-color.el index 433254db929..482f829707d 100644 --- a/lisp/net/shr-color.el +++ b/lisp/net/shr-color.el | |||
| @@ -242,7 +242,7 @@ Like rgb() or hsl()." | |||
| 242 | "rgb(\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*)" | 242 | "rgb(\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*)" |
| 243 | color) | 243 | color) |
| 244 | (string-match | 244 | (string-match |
| 245 | "rgba(\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*[0-9]*\.?[0-9]+\s*%?\s*)" | 245 | "rgba(\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*\\([0-9]\\{1,3\\}\\(?:\s*%\\)?\\)\s*,\s*[0-9]*\\.?[0-9]+\s*%?\s*)" |
| 246 | color)) | 246 | color)) |
| 247 | (format "#%02X%02X%02X" | 247 | (format "#%02X%02X%02X" |
| 248 | (shr-color-relative-to-absolute (match-string-no-properties 1 color)) | 248 | (shr-color-relative-to-absolute (match-string-no-properties 1 color)) |
| @@ -253,7 +253,7 @@ Like rgb() or hsl()." | |||
| 253 | "hsl(\s*\\([0-9]\\{1,3\\}\\)\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*)" | 253 | "hsl(\s*\\([0-9]\\{1,3\\}\\)\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*)" |
| 254 | color) | 254 | color) |
| 255 | (string-match | 255 | (string-match |
| 256 | "hsla(\s*\\([0-9]\\{1,3\\}\\)\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*[0-9]*\.?[0-9]+\s*%?\s*)" | 256 | "hsla(\s*\\([0-9]\\{1,3\\}\\)\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*\\([0-9]\\{1,3\\}\\)\s*%\s*,\s*[0-9]*\\.?[0-9]+\s*%?\s*)" |
| 257 | color)) | 257 | color)) |
| 258 | (let ((h (/ (string-to-number (match-string-no-properties 1 color)) 360.0)) | 258 | (let ((h (/ (string-to-number (match-string-no-properties 1 color)) 360.0)) |
| 259 | (s (/ (string-to-number (match-string-no-properties 2 color)) 100.0)) | 259 | (s (/ (string-to-number (match-string-no-properties 2 color)) 100.0)) |
diff --git a/lisp/net/soap-client.el b/lisp/net/soap-client.el index ada2767a4d1..509c021c644 100644 --- a/lisp/net/soap-client.el +++ b/lisp/net/soap-client.el | |||
| @@ -167,7 +167,7 @@ namespace of LOCAL-NAME." | |||
| 167 | "Convert LOCAL-NAME into a fully qualified name. | 167 | "Convert LOCAL-NAME into a fully qualified name. |
| 168 | A fully qualified name is a cons of the namespace name and the | 168 | A fully qualified name is a cons of the namespace name and the |
| 169 | name of the element itself. For example \"xsd:string\" is | 169 | name of the element itself. For example \"xsd:string\" is |
| 170 | converted to \(\"http://www.w3.org/2001/XMLSchema\" . \"string\"\). | 170 | converted to \(\"http://www.w3.org/2001/XMLSchema\" . \"string\"). |
| 171 | 171 | ||
| 172 | The USE-TNS argument specifies what to do when LOCAL-NAME has no | 172 | The USE-TNS argument specifies what to do when LOCAL-NAME has no |
| 173 | namespace tag. If USE-TNS is non-nil, the `soap-target-xmlns' | 173 | namespace tag. If USE-TNS is non-nil, the `soap-target-xmlns' |
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index f818fcd61d6..595e0ef6722 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el | |||
| @@ -59,7 +59,7 @@ It is used for TCP/IP devices." | |||
| 59 | 59 | ||
| 60 | ;;;###tramp-autoload | 60 | ;;;###tramp-autoload |
| 61 | (defcustom tramp-adb-prompt | 61 | (defcustom tramp-adb-prompt |
| 62 | "^\\(?:[[:digit:]]*|?\\)?\\(?:[[:alnum:]\e;\[]*@[[:alnum:]]*[^#\\$]*\\)?[#\\$][[:space:]]" | 62 | "^\\(?:[[:digit:]]*|?\\)?\\(?:[[:alnum:]\e;[]*@[[:alnum:]]*[^#\\$]*\\)?[#\\$][[:space:]]" |
| 63 | "Regexp used as prompt in almquist shell." | 63 | "Regexp used as prompt in almquist shell." |
| 64 | :type 'string | 64 | :type 'string |
| 65 | :version "24.4" | 65 | :version "24.4" |
| @@ -132,6 +132,7 @@ It is used for TCP/IP devices." | |||
| 132 | (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) | 132 | (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) |
| 133 | (file-notify-add-watch . tramp-handle-file-notify-add-watch) | 133 | (file-notify-add-watch . tramp-handle-file-notify-add-watch) |
| 134 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) | 134 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) |
| 135 | (file-notify-valid-p . tramp-handle-file-notify-valid-p) | ||
| 135 | (file-ownership-preserved-p . ignore) | 136 | (file-ownership-preserved-p . ignore) |
| 136 | (file-readable-p . tramp-handle-file-exists-p) | 137 | (file-readable-p . tramp-handle-file-exists-p) |
| 137 | (file-regular-p . tramp-handle-file-regular-p) | 138 | (file-regular-p . tramp-handle-file-regular-p) |
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 4dfdcd76e66..b7b0a1c016f 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el | |||
| @@ -443,6 +443,7 @@ Every entry is a list (NAME ADDRESS).") | |||
| 443 | (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) | 443 | (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) |
| 444 | (file-notify-add-watch . tramp-gvfs-handle-file-notify-add-watch) | 444 | (file-notify-add-watch . tramp-gvfs-handle-file-notify-add-watch) |
| 445 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) | 445 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) |
| 446 | (file-notify-valid-p . tramp-handle-file-notify-valid-p) | ||
| 446 | (file-ownership-preserved-p . ignore) | 447 | (file-ownership-preserved-p . ignore) |
| 447 | (file-readable-p . tramp-gvfs-handle-file-readable-p) | 448 | (file-readable-p . tramp-gvfs-handle-file-readable-p) |
| 448 | (file-regular-p . tramp-handle-file-regular-p) | 449 | (file-regular-p . tramp-handle-file-regular-p) |
| @@ -1002,27 +1003,48 @@ file names." | |||
| 1002 | v (concat localname filename) | 1003 | v (concat localname filename) |
| 1003 | "file-name-all-completions" result)))))))) | 1004 | "file-name-all-completions" result)))))))) |
| 1004 | 1005 | ||
| 1005 | (defun tramp-gvfs-handle-file-notify-add-watch (file-name _flags _callback) | 1006 | (defun tramp-gvfs-handle-file-notify-add-watch (file-name flags _callback) |
| 1006 | "Like `file-notify-add-watch' for Tramp files." | 1007 | "Like `file-notify-add-watch' for Tramp files." |
| 1007 | (setq file-name (expand-file-name file-name)) | 1008 | (setq file-name (expand-file-name file-name)) |
| 1008 | (with-parsed-tramp-file-name file-name nil | 1009 | (with-parsed-tramp-file-name file-name nil |
| 1009 | (let ((p (start-process | 1010 | ;; We cannot watch directories, because `gvfs-monitor-dir' is not |
| 1010 | "gvfs-monitor-file" (generate-new-buffer " *gvfs-monitor-file*") | 1011 | ;; supported for gvfs-mounted directories. |
| 1011 | "gvfs-monitor-file" (tramp-gvfs-url-file-name file-name)))) | 1012 | (when (file-directory-p file-name) |
| 1013 | (tramp-error | ||
| 1014 | v 'file-notify-error "Monitoring not supported for `%s'" file-name)) | ||
| 1015 | (let* ((default-directory (file-name-directory file-name)) | ||
| 1016 | (events | ||
| 1017 | (cond | ||
| 1018 | ((and (memq 'change flags) (memq 'attribute-change flags)) | ||
| 1019 | '(created changed changes-done-hint moved deleted | ||
| 1020 | attribute-changed)) | ||
| 1021 | ((memq 'change flags) | ||
| 1022 | '(created changed changes-done-hint moved deleted)) | ||
| 1023 | ((memq 'attribute-change flags) '(attribute-changed)))) | ||
| 1024 | (p (start-process | ||
| 1025 | "gvfs-monitor-file" (generate-new-buffer " *gvfs-monitor-file*") | ||
| 1026 | "gvfs-monitor-file" (tramp-gvfs-url-file-name file-name)))) | ||
| 1012 | (if (not (processp p)) | 1027 | (if (not (processp p)) |
| 1013 | (tramp-error | 1028 | (tramp-error |
| 1014 | v 'file-notify-error "gvfs-monitor-file failed to start") | 1029 | v 'file-notify-error "Monitoring not supported for `%s'" file-name) |
| 1015 | (tramp-message | 1030 | (tramp-message |
| 1016 | v 6 "Run `%s', %S" (mapconcat 'identity (process-command p) " ") p) | 1031 | v 6 "Run `%s', %S" (mapconcat 'identity (process-command p) " ") p) |
| 1017 | (tramp-set-connection-property p "vector" v) | 1032 | (tramp-set-connection-property p "vector" v) |
| 1033 | (tramp-compat-process-put p 'events events) | ||
| 1034 | (tramp-compat-process-put p 'watch-name localname) | ||
| 1018 | (tramp-compat-set-process-query-on-exit-flag p nil) | 1035 | (tramp-compat-set-process-query-on-exit-flag p nil) |
| 1019 | (set-process-filter p 'tramp-gvfs-file-gvfs-monitor-file-process-filter) | 1036 | (set-process-filter p 'tramp-gvfs-monitor-file-process-filter) |
| 1020 | (with-current-buffer (process-buffer p) | 1037 | ;; There might be an error if the monitor is not supported. |
| 1021 | (setq default-directory (file-name-directory file-name))) | 1038 | ;; Give the filter a chance to read the output. |
| 1039 | (tramp-accept-process-output p 1) | ||
| 1040 | (unless (memq (process-status p) '(run open)) | ||
| 1041 | (tramp-error | ||
| 1042 | v 'file-notify-error "Monitoring not supported for `%s'" file-name)) | ||
| 1022 | p)))) | 1043 | p)))) |
| 1023 | 1044 | ||
| 1024 | (defun tramp-gvfs-file-gvfs-monitor-file-process-filter (proc string) | 1045 | (defun tramp-gvfs-monitor-file-process-filter (proc string) |
| 1025 | "Read output from \"gvfs-monitor-file\" and add corresponding file-notify events." | 1046 | "Read output from \"gvfs-monitor-file\" and add corresponding \ |
| 1047 | file-notify events." | ||
| 1026 | (let* ((rest-string (tramp-compat-process-get proc 'rest-string)) | 1048 | (let* ((rest-string (tramp-compat-process-get proc 'rest-string)) |
| 1027 | (dd (with-current-buffer (process-buffer proc) default-directory)) | 1049 | (dd (with-current-buffer (process-buffer proc) default-directory)) |
| 1028 | (ddu (regexp-quote (tramp-gvfs-url-file-name dd)))) | 1050 | (ddu (regexp-quote (tramp-gvfs-url-file-name dd)))) |
| @@ -1033,6 +1055,8 @@ file names." | |||
| 1033 | ;; Attribute change is returned in unused wording. | 1055 | ;; Attribute change is returned in unused wording. |
| 1034 | string (tramp-compat-replace-regexp-in-string | 1056 | string (tramp-compat-replace-regexp-in-string |
| 1035 | "ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string)) | 1057 | "ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string)) |
| 1058 | (when (string-match "Monitoring not supported" string) | ||
| 1059 | (delete-process proc)) | ||
| 1036 | 1060 | ||
| 1037 | (while (string-match | 1061 | (while (string-match |
| 1038 | (concat "^[\n\r]*" | 1062 | (concat "^[\n\r]*" |
| @@ -1040,10 +1064,10 @@ file names." | |||
| 1040 | "File = \\([^\n\r]+\\)[\n\r]+" | 1064 | "File = \\([^\n\r]+\\)[\n\r]+" |
| 1041 | "Event = \\([^[:blank:]]+\\)[\n\r]+") | 1065 | "Event = \\([^[:blank:]]+\\)[\n\r]+") |
| 1042 | string) | 1066 | string) |
| 1043 | (let ((action (intern-soft | 1067 | (let ((file (match-string 1 string)) |
| 1068 | (action (intern-soft | ||
| 1044 | (tramp-compat-replace-regexp-in-string | 1069 | (tramp-compat-replace-regexp-in-string |
| 1045 | "_" "-" (downcase (match-string 2 string))))) | 1070 | "_" "-" (downcase (match-string 2 string)))))) |
| 1046 | (file (match-string 1 string))) | ||
| 1047 | (setq string (replace-match "" nil nil string)) | 1071 | (setq string (replace-match "" nil nil string)) |
| 1048 | ;; File names are returned as URL paths. We must convert them. | 1072 | ;; File names are returned as URL paths. We must convert them. |
| 1049 | (when (string-match ddu file) | 1073 | (when (string-match ddu file) |
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 79b024e8310..433b2ba09c7 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el | |||
| @@ -1008,6 +1008,7 @@ of command line.") | |||
| 1008 | (file-newer-than-file-p . tramp-sh-handle-file-newer-than-file-p) | 1008 | (file-newer-than-file-p . tramp-sh-handle-file-newer-than-file-p) |
| 1009 | (file-notify-add-watch . tramp-sh-handle-file-notify-add-watch) | 1009 | (file-notify-add-watch . tramp-sh-handle-file-notify-add-watch) |
| 1010 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) | 1010 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) |
| 1011 | (file-notify-valid-p . tramp-handle-file-notify-valid-p) | ||
| 1011 | (file-ownership-preserved-p . tramp-sh-handle-file-ownership-preserved-p) | 1012 | (file-ownership-preserved-p . tramp-sh-handle-file-ownership-preserved-p) |
| 1012 | (file-readable-p . tramp-sh-handle-file-readable-p) | 1013 | (file-readable-p . tramp-sh-handle-file-readable-p) |
| 1013 | (file-regular-p . tramp-handle-file-regular-p) | 1014 | (file-regular-p . tramp-handle-file-regular-p) |
| @@ -3721,22 +3722,33 @@ Fall back to normal file name handler if no Tramp handler exists." | |||
| 3721 | "Like `file-notify-add-watch' for Tramp files." | 3722 | "Like `file-notify-add-watch' for Tramp files." |
| 3722 | (setq file-name (expand-file-name file-name)) | 3723 | (setq file-name (expand-file-name file-name)) |
| 3723 | (with-parsed-tramp-file-name file-name nil | 3724 | (with-parsed-tramp-file-name file-name nil |
| 3724 | (let* ((default-directory (file-name-directory file-name)) | 3725 | (let ((default-directory (file-name-directory file-name)) |
| 3725 | command events filter p sequence) | 3726 | command events filter p sequence) |
| 3726 | (cond | 3727 | (cond |
| 3727 | ;; gvfs-monitor-dir. | 3728 | ;; gvfs-monitor-dir. |
| 3728 | ((setq command (tramp-get-remote-gvfs-monitor-dir v)) | 3729 | ((setq command (tramp-get-remote-gvfs-monitor-dir v)) |
| 3729 | (setq filter 'tramp-sh-file-gvfs-monitor-dir-process-filter | 3730 | (setq filter 'tramp-sh-gvfs-monitor-dir-process-filter |
| 3731 | events | ||
| 3732 | (cond | ||
| 3733 | ((and (memq 'change flags) (memq 'attribute-change flags)) | ||
| 3734 | '(created changed changes-done-hint moved deleted | ||
| 3735 | attribute-changed)) | ||
| 3736 | ((memq 'change flags) | ||
| 3737 | '(created changed changes-done-hint moved deleted)) | ||
| 3738 | ((memq 'attribute-change flags) '(attribute-changed))) | ||
| 3730 | sequence `(,command ,localname))) | 3739 | sequence `(,command ,localname))) |
| 3731 | ;; inotifywait. | 3740 | ;; inotifywait. |
| 3732 | ((setq command (tramp-get-remote-inotifywait v)) | 3741 | ((setq command (tramp-get-remote-inotifywait v)) |
| 3733 | (setq filter 'tramp-sh-file-inotifywait-process-filter | 3742 | (setq filter 'tramp-sh-inotifywait-process-filter |
| 3734 | events | 3743 | events |
| 3735 | (cond | 3744 | (cond |
| 3736 | ((and (memq 'change flags) (memq 'attribute-change flags)) | 3745 | ((and (memq 'change flags) (memq 'attribute-change flags)) |
| 3737 | "create,modify,move,delete,attrib") | 3746 | (concat "create,modify,move,moved_from,moved_to,move_self," |
| 3738 | ((memq 'change flags) "create,modify,move,delete") | 3747 | "delete,delete_self,attrib,ignored")) |
| 3739 | ((memq 'attribute-change flags) "attrib")) | 3748 | ((memq 'change flags) |
| 3749 | (concat "create,modify,move,moved_from,moved_to,move_self," | ||
| 3750 | "delete,delete_self,ignored")) | ||
| 3751 | ((memq 'attribute-change flags) "attrib,ignored")) | ||
| 3740 | sequence `(,command "-mq" "-e" ,events ,localname))) | 3752 | sequence `(,command "-mq" "-e" ,events ,localname))) |
| 3741 | ;; None. | 3753 | ;; None. |
| 3742 | (t (tramp-error | 3754 | (t (tramp-error |
| @@ -3758,12 +3770,22 @@ Fall back to normal file name handler if no Tramp handler exists." | |||
| 3758 | (mapconcat 'identity sequence " ")) | 3770 | (mapconcat 'identity sequence " ")) |
| 3759 | (tramp-message v 6 "Run `%s', %S" (mapconcat 'identity sequence " ") p) | 3771 | (tramp-message v 6 "Run `%s', %S" (mapconcat 'identity sequence " ") p) |
| 3760 | (tramp-set-connection-property p "vector" v) | 3772 | (tramp-set-connection-property p "vector" v) |
| 3773 | ;; Needed for `tramp-sh-gvfs-monitor-dir-process-filter'. | ||
| 3774 | (tramp-compat-process-put p 'events events) | ||
| 3775 | (tramp-compat-process-put p 'watch-name localname) | ||
| 3761 | (tramp-compat-set-process-query-on-exit-flag p nil) | 3776 | (tramp-compat-set-process-query-on-exit-flag p nil) |
| 3762 | (set-process-filter p filter) | 3777 | (set-process-filter p filter) |
| 3778 | ;; There might be an error if the monitor is not supported. | ||
| 3779 | ;; Give the filter a chance to read the output. | ||
| 3780 | (tramp-accept-process-output p 1) | ||
| 3781 | (unless (memq (process-status p) '(run open)) | ||
| 3782 | (tramp-error | ||
| 3783 | v 'file-notify-error "Monitoring not supported for `%s'" file-name)) | ||
| 3763 | p)))) | 3784 | p)))) |
| 3764 | 3785 | ||
| 3765 | (defun tramp-sh-file-gvfs-monitor-dir-process-filter (proc string) | 3786 | (defun tramp-sh-gvfs-monitor-dir-process-filter (proc string) |
| 3766 | "Read output from \"gvfs-monitor-dir\" and add corresponding file-notify events." | 3787 | "Read output from \"gvfs-monitor-dir\" and add corresponding \ |
| 3788 | file-notify events." | ||
| 3767 | (let ((remote-prefix | 3789 | (let ((remote-prefix |
| 3768 | (with-current-buffer (process-buffer proc) | 3790 | (with-current-buffer (process-buffer proc) |
| 3769 | (file-remote-p default-directory))) | 3791 | (file-remote-p default-directory))) |
| @@ -3775,6 +3797,8 @@ Fall back to normal file name handler if no Tramp handler exists." | |||
| 3775 | ;; Attribute change is returned in unused wording. | 3797 | ;; Attribute change is returned in unused wording. |
| 3776 | string (tramp-compat-replace-regexp-in-string | 3798 | string (tramp-compat-replace-regexp-in-string |
| 3777 | "ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string)) | 3799 | "ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string)) |
| 3800 | (when (string-match "Monitoring not supported" string) | ||
| 3801 | (delete-process proc)) | ||
| 3778 | 3802 | ||
| 3779 | (while (string-match | 3803 | (while (string-match |
| 3780 | (concat "^[\n\r]*" | 3804 | (concat "^[\n\r]*" |
| @@ -3783,29 +3807,36 @@ Fall back to normal file name handler if no Tramp handler exists." | |||
| 3783 | "\\(Other = \\([^\n\r]+\\)[\n\r]+\\)?" | 3807 | "\\(Other = \\([^\n\r]+\\)[\n\r]+\\)?" |
| 3784 | "Event = \\([^[:blank:]]+\\)[\n\r]+") | 3808 | "Event = \\([^[:blank:]]+\\)[\n\r]+") |
| 3785 | string) | 3809 | string) |
| 3786 | (let ((object | 3810 | (let* ((file (match-string 1 string)) |
| 3787 | (list | 3811 | (file1 (match-string 3 string)) |
| 3788 | proc | 3812 | (object |
| 3789 | (intern-soft | 3813 | (list |
| 3790 | (tramp-compat-replace-regexp-in-string | 3814 | proc |
| 3791 | "_" "-" (downcase (match-string 4 string)))) | 3815 | (intern-soft |
| 3792 | ;; File names are returned as absolute paths. We must | 3816 | (tramp-compat-replace-regexp-in-string |
| 3793 | ;; add the remote prefix. | 3817 | "_" "-" (downcase (match-string 4 string)))) |
| 3794 | (concat remote-prefix (match-string 1 string)) | 3818 | ;; File names are returned as absolute paths. We must |
| 3795 | (when (match-string 3 string) | 3819 | ;; add the remote prefix. |
| 3796 | (concat remote-prefix (match-string 3 string)))))) | 3820 | (concat remote-prefix file) |
| 3821 | (when file1 (concat remote-prefix file1))))) | ||
| 3797 | (setq string (replace-match "" nil nil string)) | 3822 | (setq string (replace-match "" nil nil string)) |
| 3823 | ;; Remove watch when file or directory to be watched is deleted. | ||
| 3824 | (when (and (member (cadr object) '(moved deleted)) | ||
| 3825 | (string-equal | ||
| 3826 | file (tramp-compat-process-get proc 'watch-name))) | ||
| 3827 | (delete-process proc)) | ||
| 3798 | ;; Usually, we would add an Emacs event now. Unfortunately, | 3828 | ;; Usually, we would add an Emacs event now. Unfortunately, |
| 3799 | ;; `unread-command-events' does not accept several events at | 3829 | ;; `unread-command-events' does not accept several events at |
| 3800 | ;; once. Therefore, we apply the callback directly. | 3830 | ;; once. Therefore, we apply the callback directly. |
| 3801 | (tramp-compat-funcall 'file-notify-callback object))) | 3831 | (when (member (cadr object) (tramp-compat-process-get proc 'events)) |
| 3832 | (tramp-compat-funcall 'file-notify-callback object)))) | ||
| 3802 | 3833 | ||
| 3803 | ;; Save rest of the string. | 3834 | ;; Save rest of the string. |
| 3804 | (when (zerop (length string)) (setq string nil)) | 3835 | (when (zerop (length string)) (setq string nil)) |
| 3805 | (when string (tramp-message proc 10 "Rest string:\n%s" string)) | 3836 | (when string (tramp-message proc 10 "Rest string:\n%s" string)) |
| 3806 | (tramp-compat-process-put proc 'rest-string string))) | 3837 | (tramp-compat-process-put proc 'rest-string string))) |
| 3807 | 3838 | ||
| 3808 | (defun tramp-sh-file-inotifywait-process-filter (proc string) | 3839 | (defun tramp-sh-inotifywait-process-filter (proc string) |
| 3809 | "Read output from \"inotifywait\" and add corresponding file-notify events." | 3840 | "Read output from \"inotifywait\" and add corresponding file-notify events." |
| 3810 | (tramp-message proc 6 "%S\n%s" proc string) | 3841 | (tramp-message proc 6 "%S\n%s" proc string) |
| 3811 | (dolist (line (split-string string "[\n\r]+" 'omit-nulls)) | 3842 | (dolist (line (split-string string "[\n\r]+" 'omit-nulls)) |
| @@ -3827,6 +3858,9 @@ Fall back to normal file name handler if no Tramp handler exists." | |||
| 3827 | (tramp-compat-replace-regexp-in-string "_" "-" (downcase x)))) | 3858 | (tramp-compat-replace-regexp-in-string "_" "-" (downcase x)))) |
| 3828 | (split-string (match-string 1 line) "," 'omit-nulls)) | 3859 | (split-string (match-string 1 line) "," 'omit-nulls)) |
| 3829 | (match-string 3 line)))) | 3860 | (match-string 3 line)))) |
| 3861 | ;; Remove watch when file or directory to be watched is deleted. | ||
| 3862 | (when (equal (cadr object) 'ignored) | ||
| 3863 | (delete-process proc)) | ||
| 3830 | ;; Usually, we would add an Emacs event now. Unfortunately, | 3864 | ;; Usually, we would add an Emacs event now. Unfortunately, |
| 3831 | ;; `unread-command-events' does not accept several events at | 3865 | ;; `unread-command-events' does not accept several events at |
| 3832 | ;; once. Therefore, we apply the callback directly. | 3866 | ;; once. Therefore, we apply the callback directly. |
| @@ -4297,7 +4331,7 @@ process to set up. VEC specifies the connection." | |||
| 4297 | "List of local coding commands for inline transfer. | 4331 | "List of local coding commands for inline transfer. |
| 4298 | Each item is a list that looks like this: | 4332 | Each item is a list that looks like this: |
| 4299 | 4333 | ||
| 4300 | \(FORMAT ENCODING DECODING\) | 4334 | \(FORMAT ENCODING DECODING) |
| 4301 | 4335 | ||
| 4302 | FORMAT is symbol describing the encoding/decoding format. It can be | 4336 | FORMAT is symbol describing the encoding/decoding format. It can be |
| 4303 | `b64' for base64 encoding, `uu' for uu encoding, or `pack' for simple packing. | 4337 | `b64' for base64 encoding, `uu' for uu encoding, or `pack' for simple packing. |
| @@ -4335,7 +4369,7 @@ with the encoded or decoded results, respectively.") | |||
| 4335 | "List of remote coding commands for inline transfer. | 4369 | "List of remote coding commands for inline transfer. |
| 4336 | Each item is a list that looks like this: | 4370 | Each item is a list that looks like this: |
| 4337 | 4371 | ||
| 4338 | \(FORMAT ENCODING DECODING [TEST]\) | 4372 | \(FORMAT ENCODING DECODING [TEST]) |
| 4339 | 4373 | ||
| 4340 | FORMAT is a symbol describing the encoding/decoding format. It can be | 4374 | FORMAT is a symbol describing the encoding/decoding format. It can be |
| 4341 | `b64' for base64 encoding, `uu' for uu encoding, or `pack' for simple packing. | 4375 | `b64' for base64 encoding, `uu' for uu encoding, or `pack' for simple packing. |
| @@ -4508,7 +4542,7 @@ means discard it)." | |||
| 4508 | "List of compress and decompress commands for inline transfer. | 4542 | "List of compress and decompress commands for inline transfer. |
| 4509 | Each item is a list that looks like this: | 4543 | Each item is a list that looks like this: |
| 4510 | 4544 | ||
| 4511 | \(COMPRESS DECOMPRESS\) | 4545 | \(COMPRESS DECOMPRESS) |
| 4512 | 4546 | ||
| 4513 | COMPRESS or DECOMPRESS are strings with the respective commands.") | 4547 | COMPRESS or DECOMPRESS are strings with the respective commands.") |
| 4514 | 4548 | ||
| @@ -5519,7 +5553,7 @@ Return ATTR." | |||
| 5519 | (tramp-get-remote-id vec) | 5553 | (tramp-get-remote-id vec) |
| 5520 | (if (equal id-format 'integer) "" "n") | 5554 | (if (equal id-format 'integer) "" "n") |
| 5521 | (if (equal id-format 'integer) | 5555 | (if (equal id-format 'integer) |
| 5522 | "" "| sed -e s/^/\\\"/ -e s/\$/\\\"/")))) | 5556 | "" "| sed -e s/^/\\\"/ -e s/\\$/\\\"/")))) |
| 5523 | 5557 | ||
| 5524 | (defun tramp-get-remote-uid-with-perl (vec id-format) | 5558 | (defun tramp-get-remote-uid-with-perl (vec id-format) |
| 5525 | (tramp-send-command-and-read | 5559 | (tramp-send-command-and-read |
| @@ -5570,7 +5604,7 @@ Return ATTR." | |||
| 5570 | (tramp-get-remote-id vec) | 5604 | (tramp-get-remote-id vec) |
| 5571 | (if (equal id-format 'integer) "" "n") | 5605 | (if (equal id-format 'integer) "" "n") |
| 5572 | (if (equal id-format 'integer) | 5606 | (if (equal id-format 'integer) |
| 5573 | "" "| sed -e s/^/\\\"/ -e s/\$/\\\"/")))) | 5607 | "" "| sed -e s/^/\\\"/ -e s/\\$/\\\"/")))) |
| 5574 | 5608 | ||
| 5575 | (defun tramp-get-remote-gid-with-perl (vec id-format) | 5609 | (defun tramp-get-remote-gid-with-perl (vec id-format) |
| 5576 | (tramp-send-command-and-read | 5610 | (tramp-send-command-and-read |
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index c4f0f1f500a..5910d1fd3a4 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -247,6 +247,7 @@ See `tramp-actions-before-shell' for more info.") | |||
| 247 | (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) | 247 | (file-newer-than-file-p . tramp-handle-file-newer-than-file-p) |
| 248 | (file-notify-add-watch . tramp-handle-file-notify-add-watch) | 248 | (file-notify-add-watch . tramp-handle-file-notify-add-watch) |
| 249 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) | 249 | (file-notify-rm-watch . tramp-handle-file-notify-rm-watch) |
| 250 | (file-notify-valid-p . tramp-handle-file-notify-valid-p) | ||
| 250 | (file-ownership-preserved-p . ignore) | 251 | (file-ownership-preserved-p . ignore) |
| 251 | (file-readable-p . tramp-handle-file-exists-p) | 252 | (file-readable-p . tramp-handle-file-exists-p) |
| 252 | (file-regular-p . tramp-handle-file-regular-p) | 253 | (file-regular-p . tramp-handle-file-regular-p) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 0969048c433..fbb8c8a349e 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -110,9 +110,9 @@ Any level x includes messages for all levels 1 .. x-1. The levels are | |||
| 110 | Each element looks like (REGEXP . DIRECTORY), with the same meaning like | 110 | Each element looks like (REGEXP . DIRECTORY), with the same meaning like |
| 111 | in `backup-directory-alist'. If a Tramp file is backed up, and DIRECTORY | 111 | in `backup-directory-alist'. If a Tramp file is backed up, and DIRECTORY |
| 112 | is a local file name, the backup directory is prepended with Tramp file | 112 | is a local file name, the backup directory is prepended with Tramp file |
| 113 | name prefix \(method, user, host\) of file. | 113 | name prefix \(method, user, host) of file. |
| 114 | 114 | ||
| 115 | \(setq tramp-backup-directory-alist backup-directory-alist\) | 115 | \(setq tramp-backup-directory-alist backup-directory-alist) |
| 116 | 116 | ||
| 117 | gives the same backup policy for Tramp files on their hosts like the | 117 | gives the same backup policy for Tramp files on their hosts like the |
| 118 | policy for local files." | 118 | policy for local files." |
| @@ -129,9 +129,9 @@ policy for local files." | |||
| 129 | It has the same meaning like `bkup-backup-directory-info' from package | 129 | It has the same meaning like `bkup-backup-directory-info' from package |
| 130 | `backup-dir'. If a Tramp file is backed up, and BACKUP-DIR is a local | 130 | `backup-dir'. If a Tramp file is backed up, and BACKUP-DIR is a local |
| 131 | file name, the backup directory is prepended with Tramp file name prefix | 131 | file name, the backup directory is prepended with Tramp file name prefix |
| 132 | \(method, user, host\) of file. | 132 | \(method, user, host) of file. |
| 133 | 133 | ||
| 134 | \(setq tramp-bkup-backup-directory-info bkup-backup-directory-info\) | 134 | \(setq tramp-bkup-backup-directory-info bkup-backup-directory-info) |
| 135 | 135 | ||
| 136 | gives the same backup policy for Tramp files on their hosts like the | 136 | gives the same backup policy for Tramp files on their hosts like the |
| 137 | policy for local files." | 137 | policy for local files." |
| @@ -464,15 +464,15 @@ host runs a registered shell, it shall be added to this list, too." | |||
| 464 | (concat | 464 | (concat |
| 465 | "\\`" | 465 | "\\`" |
| 466 | (regexp-opt | 466 | (regexp-opt |
| 467 | (list "localhost" "localhost6" (system-name) "127\.0\.0\.1" "::1") t) | 467 | (list "localhost" "localhost6" (system-name) "127.0.0.1" "::1") t) |
| 468 | "\\'") | 468 | "\\'") |
| 469 | "Host names which are regarded as local host.") | 469 | "Host names which are regarded as local host.") |
| 470 | 470 | ||
| 471 | (defvar tramp-completion-function-alist nil | 471 | (defvar tramp-completion-function-alist nil |
| 472 | "Alist of methods for remote files. | 472 | "Alist of methods for remote files. |
| 473 | This is a list of entries of the form \(NAME PAIR1 PAIR2 ...\). | 473 | This is a list of entries of the form \(NAME PAIR1 PAIR2 ...). |
| 474 | Each NAME stands for a remote access method. Each PAIR is of the form | 474 | Each NAME stands for a remote access method. Each PAIR is of the form |
| 475 | \(FUNCTION FILE\). FUNCTION is responsible to extract user names and host | 475 | \(FUNCTION FILE). FUNCTION is responsible to extract user names and host |
| 476 | names from FILE for completion. The following predefined FUNCTIONs exists: | 476 | names from FILE for completion. The following predefined FUNCTIONs exists: |
| 477 | 477 | ||
| 478 | * `tramp-parse-rhosts' for \"~/.rhosts\" like files, | 478 | * `tramp-parse-rhosts' for \"~/.rhosts\" like files, |
| @@ -908,7 +908,7 @@ and is a bit too general, then some files might be considered Tramp | |||
| 908 | files which are not really Tramp files. | 908 | files which are not really Tramp files. |
| 909 | 909 | ||
| 910 | Please note that the entry in `file-name-handler-alist' is made when | 910 | Please note that the entry in `file-name-handler-alist' is made when |
| 911 | this file \(tramp.el\) is loaded. This means that this variable must be set | 911 | this file \(tramp.el) is loaded. This means that this variable must be set |
| 912 | before loading tramp.el. Alternatively, `file-name-handler-alist' can be | 912 | before loading tramp.el. Alternatively, `file-name-handler-alist' can be |
| 913 | updated after changing this variable. | 913 | updated after changing this variable. |
| 914 | 914 | ||
| @@ -940,7 +940,7 @@ See `tramp-file-name-structure' for more explanations.") | |||
| 940 | This regexp should match partial Tramp file names only. | 940 | This regexp should match partial Tramp file names only. |
| 941 | 941 | ||
| 942 | Please note that the entry in `file-name-handler-alist' is made when | 942 | Please note that the entry in `file-name-handler-alist' is made when |
| 943 | this file \(tramp.el\) is loaded. This means that this variable must be set | 943 | this file \(tramp.el) is loaded. This means that this variable must be set |
| 944 | before loading tramp.el. Alternatively, `file-name-handler-alist' can be | 944 | before loading tramp.el. Alternatively, `file-name-handler-alist' can be |
| 945 | updated after changing this variable. | 945 | updated after changing this variable. |
| 946 | 946 | ||
| @@ -993,18 +993,18 @@ checked via the following code: | |||
| 993 | 993 | ||
| 994 | In the Emacs normally running Tramp, evaluate the above code | 994 | In the Emacs normally running Tramp, evaluate the above code |
| 995 | \(replace \"xxx\" and \"yyy\" by the remote user and host name, | 995 | \(replace \"xxx\" and \"yyy\" by the remote user and host name, |
| 996 | respectively\). You can do this, for example, by pasting it into | 996 | respectively). You can do this, for example, by pasting it into |
| 997 | the `*scratch*' buffer and then hitting C-j with the cursor after the | 997 | the `*scratch*' buffer and then hitting C-j with the cursor after the |
| 998 | last closing parenthesis. Note that it works only if you have configured | 998 | last closing parenthesis. Note that it works only if you have configured |
| 999 | \"ssh\" to run without password query, see ssh-agent\(1\). | 999 | \"ssh\" to run without password query, see ssh-agent(1). |
| 1000 | 1000 | ||
| 1001 | You will see the number of bytes sent successfully to the remote host. | 1001 | You will see the number of bytes sent successfully to the remote host. |
| 1002 | If that number exceeds 1000, you can stop the execution by hitting | 1002 | If that number exceeds 1000, you can stop the execution by hitting |
| 1003 | C-g, because your Emacs is likely clean. | 1003 | C-g, because your Emacs is likely clean. |
| 1004 | 1004 | ||
| 1005 | When it is necessary to set `tramp-chunksize', you might consider to | 1005 | When it is necessary to set `tramp-chunksize', you might consider to |
| 1006 | use an out-of-the-band method \(like \"scp\"\) instead of an internal one | 1006 | use an out-of-the-band method \(like \"scp\") instead of an internal one |
| 1007 | \(like \"ssh\"\), because setting `tramp-chunksize' to non-nil decreases | 1007 | \(like \"ssh\"), because setting `tramp-chunksize' to non-nil decreases |
| 1008 | performance. | 1008 | performance. |
| 1009 | 1009 | ||
| 1010 | If your Emacs is buggy, the code stops and gives you an indication | 1010 | If your Emacs is buggy, the code stops and gives you an indication |
| @@ -2070,7 +2070,7 @@ ARGS are the arguments OPERATION has been called with." | |||
| 2070 | 'dired-print-file 'dired-shell-call-process)) | 2070 | 'dired-print-file 'dired-shell-call-process)) |
| 2071 | default-directory) | 2071 | default-directory) |
| 2072 | ;; PROC. | 2072 | ;; PROC. |
| 2073 | ((eq operation 'file-notify-rm-watch) | 2073 | ((member operation (list 'file-notify-rm-watch 'file-notify-valid-p)) |
| 2074 | (when (processp (nth 0 args)) | 2074 | (when (processp (nth 0 args)) |
| 2075 | (with-current-buffer (process-buffer (nth 0 args)) | 2075 | (with-current-buffer (process-buffer (nth 0 args)) |
| 2076 | default-directory))) | 2076 | default-directory))) |
| @@ -3407,7 +3407,7 @@ of." | |||
| 3407 | (defun tramp-handle-file-notify-add-watch (filename _flags _callback) | 3407 | (defun tramp-handle-file-notify-add-watch (filename _flags _callback) |
| 3408 | "Like `file-notify-add-watch' for Tramp files." | 3408 | "Like `file-notify-add-watch' for Tramp files." |
| 3409 | ;; This is the default handler. tramp-gvfs.el and tramp-sh.el have | 3409 | ;; This is the default handler. tramp-gvfs.el and tramp-sh.el have |
| 3410 | ;; its own one. | 3410 | ;; their own one. |
| 3411 | (setq filename (expand-file-name filename)) | 3411 | (setq filename (expand-file-name filename)) |
| 3412 | (with-parsed-tramp-file-name filename nil | 3412 | (with-parsed-tramp-file-name filename nil |
| 3413 | (tramp-error | 3413 | (tramp-error |
| @@ -3419,7 +3419,17 @@ of." | |||
| 3419 | (unless (processp proc) | 3419 | (unless (processp proc) |
| 3420 | (tramp-error proc 'file-notify-error "Not a valid descriptor %S" proc)) | 3420 | (tramp-error proc 'file-notify-error "Not a valid descriptor %S" proc)) |
| 3421 | (tramp-message proc 6 "Kill %S" proc) | 3421 | (tramp-message proc 6 "Kill %S" proc) |
| 3422 | (kill-process proc)) | 3422 | (delete-process proc)) |
| 3423 | |||
| 3424 | (defun tramp-handle-file-notify-valid-p (proc) | ||
| 3425 | "Like `file-notify-valid-p' for Tramp files." | ||
| 3426 | (and proc (processp proc) (memq (process-status proc) '(run open)) | ||
| 3427 | ;; Sometimes, the process is still in status `run' when the | ||
| 3428 | ;; file or directory to be watched is deleted already. | ||
| 3429 | (with-current-buffer (process-buffer proc) | ||
| 3430 | (file-exists-p | ||
| 3431 | (concat (file-remote-p default-directory) | ||
| 3432 | (tramp-compat-process-get proc 'watch-name)))))) | ||
| 3423 | 3433 | ||
| 3424 | ;;; Functions for establishing connection: | 3434 | ;;; Functions for establishing connection: |
| 3425 | 3435 | ||
| @@ -3615,7 +3625,7 @@ This is needed in order to hide `last-coding-system-used', which is set | |||
| 3615 | for process communication also." | 3625 | for process communication also." |
| 3616 | (with-current-buffer (process-buffer proc) | 3626 | (with-current-buffer (process-buffer proc) |
| 3617 | ;; FIXME: If there is a gateway process, we need communication | 3627 | ;; FIXME: If there is a gateway process, we need communication |
| 3618 | ;; between several processes. Too complicated to implement, so we | 3628 | ;; between several processes. Too complicate to implement, so we |
| 3619 | ;; read output from all processes. | 3629 | ;; read output from all processes. |
| 3620 | (let ((p (if (tramp-get-connection-property proc "gateway" nil) nil proc)) | 3630 | (let ((p (if (tramp-get-connection-property proc "gateway" nil) nil proc)) |
| 3621 | buffer-read-only last-coding-system-used) | 3631 | buffer-read-only last-coding-system-used) |
diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el index 7fae9e6acc6..794a4676a5e 100644 --- a/lisp/net/zeroconf.el +++ b/lisp/net/zeroconf.el | |||
| @@ -197,7 +197,7 @@ The key of an entry is the concatenation of the service name and | |||
| 197 | service type of a discovered service. The value is the service | 197 | service type of a discovered service. The value is the service |
| 198 | itself. The format of a service is | 198 | itself. The format of a service is |
| 199 | 199 | ||
| 200 | \(INTERFACE PROTOCOL NAME TYPE DOMAIN FLAGS\) | 200 | \(INTERFACE PROTOCOL NAME TYPE DOMAIN FLAGS) |
| 201 | 201 | ||
| 202 | The INTERFACE is a number, which represents the network interface | 202 | The INTERFACE is a number, which represents the network interface |
| 203 | the service is located at. The corresponding network interface | 203 | the service is located at. The corresponding network interface |
| @@ -233,7 +233,7 @@ The key of an entry is the concatenation of the service name and | |||
| 233 | service type of a resolved service. The value is the service | 233 | service type of a resolved service. The value is the service |
| 234 | itself. The format of a service is | 234 | itself. The format of a service is |
| 235 | 235 | ||
| 236 | \(INTERFACE PROTOCOL NAME TYPE DOMAIN HOST APROTOCOL ADDRESS PORT TXT FLAGS\) | 236 | (INTERFACE PROTOCOL NAME TYPE DOMAIN HOST APROTOCOL ADDRESS PORT TXT FLAGS) |
| 237 | 237 | ||
| 238 | INTERFACE, PROTOCOL, NAME, TYPE, DOMAIN and FLAGS have the same | 238 | INTERFACE, PROTOCOL, NAME, TYPE, DOMAIN and FLAGS have the same |
| 239 | meaning as in `zeroconf-services-hash'. | 239 | meaning as in `zeroconf-services-hash'. |
| @@ -275,7 +275,7 @@ supported keys depend on the service type.") | |||
| 275 | "Returns all discovered Avahi services for a given service type TYPE. | 275 | "Returns all discovered Avahi services for a given service type TYPE. |
| 276 | The service type is one of the returned values of | 276 | The service type is one of the returned values of |
| 277 | `zeroconf-list-service-types'. The return value is a list | 277 | `zeroconf-list-service-types'. The return value is a list |
| 278 | \(SERVICE1 SERVICE2 ...\). See `zeroconf-services-hash' for the | 278 | \(SERVICE1 SERVICE2 ...). See `zeroconf-services-hash' for the |
| 279 | format of SERVICE." | 279 | format of SERVICE." |
| 280 | (let (result) | 280 | (let (result) |
| 281 | (maphash | 281 | (maphash |
| @@ -385,7 +385,7 @@ type used when registering FUNCTION." | |||
| 385 | NAME must be a string. The service must be of service type | 385 | NAME must be a string. The service must be of service type |
| 386 | TYPE. The resulting list has the format | 386 | TYPE. The resulting list has the format |
| 387 | 387 | ||
| 388 | \(INTERFACE PROTOCOL NAME TYPE DOMAIN FLAGS\)." | 388 | (INTERFACE PROTOCOL NAME TYPE DOMAIN FLAGS)." |
| 389 | ;; Due to the service browser, all known services are kept in | 389 | ;; Due to the service browser, all known services are kept in |
| 390 | ;; `zeroconf-services-hash'. | 390 | ;; `zeroconf-services-hash'. |
| 391 | (gethash (concat name "/" type) zeroconf-services-hash nil)) | 391 | (gethash (concat name "/" type) zeroconf-services-hash nil)) |
| @@ -395,7 +395,7 @@ TYPE. The resulting list has the format | |||
| 395 | NAME must be a string. The service must be of service type | 395 | NAME must be a string. The service must be of service type |
| 396 | TYPE. The resulting list has the format | 396 | TYPE. The resulting list has the format |
| 397 | 397 | ||
| 398 | \(INTERFACE PROTOCOL NAME TYPE DOMAIN HOST APROTOCOL ADDRESS PORT TXT FLAGS\)." | 398 | (INTERFACE PROTOCOL NAME TYPE DOMAIN HOST APROTOCOL ADDRESS PORT TXT FLAGS)." |
| 399 | (let* ((name (zeroconf-service-name service)) | 399 | (let* ((name (zeroconf-service-name service)) |
| 400 | (type (zeroconf-service-type service)) | 400 | (type (zeroconf-service-type service)) |
| 401 | (key (concat name "/" type))) | 401 | (key (concat name "/" type))) |
diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 60f35c834b3..0c49211869e 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el | |||
| @@ -179,6 +179,11 @@ comments always start in column zero.") | |||
| 179 | "Non-nil if nested comments should be quoted. | 179 | "Non-nil if nested comments should be quoted. |
| 180 | This should be locally set by each major mode if needed.") | 180 | This should be locally set by each major mode if needed.") |
| 181 | 181 | ||
| 182 | (defvar comment-quote-nested-function #'comment-quote-nested-default | ||
| 183 | "Function to quote nested comments in a region. | ||
| 184 | It takes the same arguments as `comment-quote-nested-default', | ||
| 185 | and is called with the buffer narrowed to a single comment.") | ||
| 186 | |||
| 182 | (defvar comment-continue nil | 187 | (defvar comment-continue nil |
| 183 | "Continuation string to insert for multiline comments. | 188 | "Continuation string to insert for multiline comments. |
| 184 | This string will be added at the beginning of each line except the very | 189 | This string will be added at the beginning of each line except the very |
| @@ -382,7 +387,7 @@ function should first call this function explicitly." | |||
| 382 | (concat (unless (eq comment-use-syntax t) | 387 | (concat (unless (eq comment-use-syntax t) |
| 383 | ;; `syntax-ppss' will detect escaping. | 388 | ;; `syntax-ppss' will detect escaping. |
| 384 | "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)") | 389 | "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)") |
| 385 | "\\(\\s<+\\|" | 390 | "\\(?:\\s<+\\|" |
| 386 | (regexp-quote (comment-string-strip comment-start t t)) | 391 | (regexp-quote (comment-string-strip comment-start t t)) |
| 387 | ;; Let's not allow any \s- but only [ \t] since \n | 392 | ;; Let's not allow any \s- but only [ \t] since \n |
| 388 | ;; might be both a comment-end marker and \s-. | 393 | ;; might be both a comment-end marker and \s-. |
| @@ -412,28 +417,44 @@ function should first call this function explicitly." | |||
| 412 | If UNP is non-nil, unquote nested comment markers." | 417 | If UNP is non-nil, unquote nested comment markers." |
| 413 | (setq cs (comment-string-strip cs t t)) | 418 | (setq cs (comment-string-strip cs t t)) |
| 414 | (setq ce (comment-string-strip ce t t)) | 419 | (setq ce (comment-string-strip ce t t)) |
| 415 | (when (and comment-quote-nested (> (length ce) 0)) | 420 | (when (and comment-quote-nested |
| 416 | (let ((re (concat (comment-quote-re ce unp) | 421 | (> (length ce) 0)) |
| 417 | "\\|" (comment-quote-re cs unp)))) | 422 | (funcall comment-quote-nested-function cs ce unp))) |
| 418 | (goto-char (point-min)) | 423 | |
| 419 | (while (re-search-forward re nil t) | 424 | (defun comment-quote-nested-default (cs ce unp) |
| 420 | (goto-char (match-beginning 0)) | 425 | "Quote comment delimiters in the buffer. |
| 421 | (forward-char 1) | 426 | It expects to be called with the buffer narrowed to a single comment. |
| 422 | (if unp (delete-char 1) (insert "\\")) | 427 | It is used as a default for `comment-quote-nested-function'. |
| 423 | (when (= (length ce) 1) | 428 | |
| 424 | ;; If the comment-end is a single char, adding a \ after that | 429 | The arguments CS and CE are strings matching comment starting and |
| 425 | ;; "first" char won't deactivate it, so we turn such a CE | 430 | ending delimiters respectively. |
| 426 | ;; into !CS. I.e. for pascal, we turn } into !{ | 431 | |
| 427 | (if (not unp) | 432 | If UNP is non-nil, comments are unquoted instead. |
| 428 | (when (string= (match-string 0) ce) | 433 | |
| 429 | (replace-match (concat "!" cs) t t)) | 434 | To quote the delimiters, a \\ is inserted after the first |
| 430 | (when (and (< (point-min) (match-beginning 0)) | 435 | character of CS or CE. If CE is a single character it will |
| 431 | (string= (buffer-substring (1- (match-beginning 0)) | 436 | change CE into !CS." |
| 432 | (1- (match-end 0))) | 437 | (let ((re (concat (comment-quote-re ce unp) |
| 433 | (concat "!" cs))) | 438 | "\\|" (comment-quote-re cs unp)))) |
| 434 | (backward-char 2) | 439 | (goto-char (point-min)) |
| 435 | (delete-char (- (match-end 0) (match-beginning 0))) | 440 | (while (re-search-forward re nil t) |
| 436 | (insert ce)))))))) | 441 | (goto-char (match-beginning 0)) |
| 442 | (forward-char 1) | ||
| 443 | (if unp (delete-char 1) (insert "\\")) | ||
| 444 | (when (= (length ce) 1) | ||
| 445 | ;; If the comment-end is a single char, adding a \ after that | ||
| 446 | ;; "first" char won't deactivate it, so we turn such a CE | ||
| 447 | ;; into !CS. I.e. for pascal, we turn } into !{ | ||
| 448 | (if (not unp) | ||
| 449 | (when (string= (match-string 0) ce) | ||
| 450 | (replace-match (concat "!" cs) t t)) | ||
| 451 | (when (and (< (point-min) (match-beginning 0)) | ||
| 452 | (string= (buffer-substring (1- (match-beginning 0)) | ||
| 453 | (1- (match-end 0))) | ||
| 454 | (concat "!" cs))) | ||
| 455 | (backward-char 2) | ||
| 456 | (delete-char (- (match-end 0) (match-beginning 0))) | ||
| 457 | (insert ce))))))) | ||
| 437 | 458 | ||
| 438 | ;;;; | 459 | ;;;; |
| 439 | ;;;; Navigation | 460 | ;;;; Navigation |
diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el index 6c5c85b2fcc..0e2fca349a5 100644 --- a/lisp/nxml/nxml-mode.el +++ b/lisp/nxml/nxml-mode.el | |||
| @@ -546,6 +546,7 @@ Many aspects this mode can be customized using | |||
| 546 | (setq comment-end-skip "[ \t\r\n]*-->") | 546 | (setq comment-end-skip "[ \t\r\n]*-->") |
| 547 | (make-local-variable 'comment-line-break-function) | 547 | (make-local-variable 'comment-line-break-function) |
| 548 | (setq comment-line-break-function 'nxml-newline-and-indent) | 548 | (setq comment-line-break-function 'nxml-newline-and-indent) |
| 549 | (setq-local comment-quote-nested-function 'nxml-comment-quote-nested) | ||
| 549 | (use-local-map nxml-mode-map) | 550 | (use-local-map nxml-mode-map) |
| 550 | (save-excursion | 551 | (save-excursion |
| 551 | (save-restriction | 552 | (save-restriction |
| @@ -1350,6 +1351,18 @@ of the inserted start-tag or nil if none was inserted." | |||
| 1350 | start-tag-indent))))) | 1351 | start-tag-indent))))) |
| 1351 | inserted-start-tag-pos)) | 1352 | inserted-start-tag-pos)) |
| 1352 | 1353 | ||
| 1354 | (defun nxml-comment-quote-nested (_cs _ce unp) | ||
| 1355 | "Quote nested comments in buffer. | ||
| 1356 | See `comment-quote-nested-function' for more information." | ||
| 1357 | (goto-char (point-min)) | ||
| 1358 | (save-match-data | ||
| 1359 | (while (re-search-forward "-[\\]*-" nil t) | ||
| 1360 | (goto-char (match-beginning 0)) | ||
| 1361 | (forward-char 1) | ||
| 1362 | (if unp | ||
| 1363 | (delete-char 1) | ||
| 1364 | (insert "\\"))))) | ||
| 1365 | |||
| 1353 | ;;; Indentation | 1366 | ;;; Indentation |
| 1354 | 1367 | ||
| 1355 | (defun nxml-indent-line () | 1368 | (defun nxml-indent-line () |
diff --git a/lisp/obsolete/fast-lock.el b/lisp/obsolete/fast-lock.el index 7e3dd66a56a..3985d511eac 100644 --- a/lisp/obsolete/fast-lock.el +++ b/lisp/obsolete/fast-lock.el | |||
| @@ -200,7 +200,7 @@ | |||
| 200 | `(let* (,@(append varlist | 200 | `(let* (,@(append varlist |
| 201 | '((modified (buffer-modified-p)) (buffer-undo-list t) | 201 | '((modified (buffer-modified-p)) (buffer-undo-list t) |
| 202 | (inhibit-read-only t) (inhibit-point-motion-hooks t) | 202 | (inhibit-read-only t) (inhibit-point-motion-hooks t) |
| 203 | before-change-functions after-change-functions | 203 | (inhibit-modification-hooks t) |
| 204 | deactivate-mark buffer-file-name buffer-file-truename))) | 204 | deactivate-mark buffer-file-name buffer-file-truename))) |
| 205 | ,@body | 205 | ,@body |
| 206 | (when (and (not modified) (buffer-modified-p)) | 206 | (when (and (not modified) (buffer-modified-p)) |
diff --git a/lisp/obsolete/lazy-lock.el b/lisp/obsolete/lazy-lock.el index 79afd80813f..d05a7d86dbc 100644 --- a/lisp/obsolete/lazy-lock.el +++ b/lisp/obsolete/lazy-lock.el | |||
| @@ -892,8 +892,7 @@ verbosity is controlled via the variable `lazy-lock-stealth-verbose'." | |||
| 892 | (save-excursion | 892 | (save-excursion |
| 893 | (save-match-data | 893 | (save-match-data |
| 894 | (save-buffer-state | 894 | (save-buffer-state |
| 895 | ;; Ensure syntactic fontification is always correct. | 895 | (next) |
| 896 | (font-lock-beginning-of-syntax-function next) | ||
| 897 | ;; Find successive unfontified regions between BEG and END. | 896 | ;; Find successive unfontified regions between BEG and END. |
| 898 | (condition-case data | 897 | (condition-case data |
| 899 | (do-while beg | 898 | (do-while beg |
diff --git a/lisp/obsolete/longlines.el b/lisp/obsolete/longlines.el index 01939daa709..7cb13ce600f 100644 --- a/lisp/obsolete/longlines.el +++ b/lisp/obsolete/longlines.el | |||
| @@ -143,7 +143,7 @@ newlines are indicated with a symbol." | |||
| 143 | 'longlines-window-change-function nil t)) | 143 | 'longlines-window-change-function nil t)) |
| 144 | (let ((buffer-undo-list t) | 144 | (let ((buffer-undo-list t) |
| 145 | (inhibit-read-only t) | 145 | (inhibit-read-only t) |
| 146 | (after-change-functions nil) | 146 | (inhibit-modification-hooks t) |
| 147 | (mod (buffer-modified-p)) | 147 | (mod (buffer-modified-p)) |
| 148 | buffer-file-name buffer-file-truename) | 148 | buffer-file-name buffer-file-truename) |
| 149 | ;; Turning off undo is OK since (spaces + newlines) is | 149 | ;; Turning off undo is OK since (spaces + newlines) is |
| @@ -184,7 +184,7 @@ newlines are indicated with a symbol." | |||
| 184 | (if longlines-showing | 184 | (if longlines-showing |
| 185 | (longlines-unshow-hard-newlines)) | 185 | (longlines-unshow-hard-newlines)) |
| 186 | (let ((buffer-undo-list t) | 186 | (let ((buffer-undo-list t) |
| 187 | (after-change-functions nil) | 187 | (inhibit-modification-hooks t) |
| 188 | (inhibit-read-only t) | 188 | (inhibit-read-only t) |
| 189 | buffer-file-name buffer-file-truename) | 189 | buffer-file-name buffer-file-truename) |
| 190 | (if longlines-decoded | 190 | (if longlines-decoded |
diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el index 799e58b6af2..11cd2530dd7 100644 --- a/lisp/org/ob-core.el +++ b/lisp/org/ob-core.el | |||
| @@ -502,7 +502,7 @@ be saved in the second match data.") | |||
| 502 | 502 | ||
| 503 | (defvar org-babel-result-w-name-regexp | 503 | (defvar org-babel-result-w-name-regexp |
| 504 | (concat org-babel-result-regexp | 504 | (concat org-babel-result-regexp |
| 505 | "\\([^ ()\f\t\n\r\v]+\\)\\(\(\\(.*\\)\)\\|\\)")) | 505 | "\\([^ ()\f\t\n\r\v]+\\)\\((\\(.*\\))\\|\\)")) |
| 506 | 506 | ||
| 507 | (defvar org-babel-min-lines-for-block-output 10 | 507 | (defvar org-babel-min-lines-for-block-output 10 |
| 508 | "The minimum number of lines for block output. | 508 | "The minimum number of lines for block output. |
| @@ -2456,7 +2456,7 @@ block but are passed literally to the \"example-block\"." | |||
| 2456 | (setq index (point)) | 2456 | (setq index (point)) |
| 2457 | (while (and (re-search-forward (org-babel-noweb-wrap) nil t)) | 2457 | (while (and (re-search-forward (org-babel-noweb-wrap) nil t)) |
| 2458 | (save-match-data (setf source-name (match-string 1))) | 2458 | (save-match-data (setf source-name (match-string 1))) |
| 2459 | (save-match-data (setq evaluate (string-match "\(.*\)" source-name))) | 2459 | (save-match-data (setq evaluate (string-match "(.*)" source-name))) |
| 2460 | (save-match-data | 2460 | (save-match-data |
| 2461 | (setq prefix | 2461 | (setq prefix |
| 2462 | (buffer-substring (match-beginning 0) | 2462 | (buffer-substring (match-beginning 0) |
diff --git a/lisp/org/ob-dot.el b/lisp/org/ob-dot.el index 21a40b34f49..f4953a39eac 100644 --- a/lisp/org/ob-dot.el +++ b/lisp/org/ob-dot.el | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | (value (cdr pair))) | 53 | (value (cdr pair))) |
| 54 | (setq body | 54 | (setq body |
| 55 | (replace-regexp-in-string | 55 | (replace-regexp-in-string |
| 56 | (concat "\$" (regexp-quote name)) | 56 | (concat "$" (regexp-quote name)) |
| 57 | (if (stringp value) value (format "%S" value)) | 57 | (if (stringp value) value (format "%S" value)) |
| 58 | body)))) | 58 | body)))) |
| 59 | vars) | 59 | vars) |
diff --git a/lisp/org/ob-latex.el b/lisp/org/ob-latex.el index d0a413f1172..811c9ef92c6 100644 --- a/lisp/org/ob-latex.el +++ b/lisp/org/ob-latex.el | |||
| @@ -183,7 +183,7 @@ This function is called by `org-babel-execute-src-block'." | |||
| 183 | "Generate a file from a pdf file using imagemagick." | 183 | "Generate a file from a pdf file using imagemagick." |
| 184 | (let ((cmd (concat "convert " im-in-options " " pdffile " " | 184 | (let ((cmd (concat "convert " im-in-options " " pdffile " " |
| 185 | im-out-options " " out-file))) | 185 | im-out-options " " out-file))) |
| 186 | (message (concat "Converting pdffile file " cmd "...")) | 186 | (message "Converting pdffile file %s..." cmd) |
| 187 | (shell-command cmd))) | 187 | (shell-command cmd))) |
| 188 | 188 | ||
| 189 | (defun org-babel-latex-tex-to-pdf (file) | 189 | (defun org-babel-latex-tex-to-pdf (file) |
diff --git a/lisp/org/ob-lilypond.el b/lisp/org/ob-lilypond.el index 5391edff5fc..04eab7c31dd 100644 --- a/lisp/org/ob-lilypond.el +++ b/lisp/org/ob-lilypond.el | |||
| @@ -111,7 +111,7 @@ blocks") | |||
| 111 | (value (cdr pair))) | 111 | (value (cdr pair))) |
| 112 | (setq body | 112 | (setq body |
| 113 | (replace-regexp-in-string | 113 | (replace-regexp-in-string |
| 114 | (concat "\$" (regexp-quote name)) | 114 | (concat "$" (regexp-quote name)) |
| 115 | (if (stringp value) value (format "%S" value)) | 115 | (if (stringp value) value (format "%S" value)) |
| 116 | body)))) | 116 | body)))) |
| 117 | vars) | 117 | vars) |
diff --git a/lisp/org/ob-lob.el b/lisp/org/ob-lob.el index b083011bbf2..c25470666c8 100644 --- a/lisp/org/ob-lob.el +++ b/lisp/org/ob-lob.el | |||
| @@ -64,14 +64,14 @@ To add files to this list use the `org-babel-lob-ingest' command." | |||
| 64 | 64 | ||
| 65 | (defconst org-babel-block-lob-one-liner-regexp | 65 | (defconst org-babel-block-lob-one-liner-regexp |
| 66 | (concat | 66 | (concat |
| 67 | "^\\([ \t]*?\\)#\\+call:[ \t]+\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)" | 67 | "^\\([ \t]*?\\)#\\+call:[ \t]+\\([^()\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)" |
| 68 | "\(\\([^\n]*?\\)\)\\(\\[.+\\]\\|\\)[ \t]*\\(\\([^\n]*\\)\\)?") | 68 | "(\\([^\n]*?\\))\\(\\[.+\\]\\|\\)[ \t]*\\(\\([^\n]*\\)\\)?") |
| 69 | "Regexp to match non-inline calls to predefined source block functions.") | 69 | "Regexp to match non-inline calls to predefined source block functions.") |
| 70 | 70 | ||
| 71 | (defconst org-babel-inline-lob-one-liner-regexp | 71 | (defconst org-babel-inline-lob-one-liner-regexp |
| 72 | (concat | 72 | (concat |
| 73 | "\\([^\n]*?\\)call_\\([^\(\)\n]+?\\)\\(\\[\\(.*?\\)\\]\\|\\(\\)\\)" | 73 | "\\([^\n]*?\\)call_\\([^()\n]+?\\)\\(\\[\\(.*?\\)\\]\\|\\(\\)\\)" |
| 74 | "\(\\([^\n]*?\\)\)\\(\\[\\(.*?\\)\\]\\)?") | 74 | "(\\([^\n]*?\\))\\(\\[\\(.*?\\)\\]\\)?") |
| 75 | "Regexp to match inline calls to predefined source block functions.") | 75 | "Regexp to match inline calls to predefined source block functions.") |
| 76 | 76 | ||
| 77 | (defconst org-babel-lob-one-liner-regexp | 77 | (defconst org-babel-lob-one-liner-regexp |
diff --git a/lisp/org/ob-octave.el b/lisp/org/ob-octave.el index e0775dba3bd..7ad474dfb4d 100644 --- a/lisp/org/ob-octave.el +++ b/lisp/org/ob-octave.el | |||
| @@ -61,7 +61,7 @@ if ischar(ans), fid = fopen('%s', 'w'); fprintf(fid, '%%s\\n', ans); fclose(fid) | |||
| 61 | else, dlmwrite('%s', ans, '\\t') | 61 | else, dlmwrite('%s', ans, '\\t') |
| 62 | end") | 62 | end") |
| 63 | 63 | ||
| 64 | (defvar org-babel-octave-eoe-indicator "\'org_babel_eoe\'") | 64 | (defvar org-babel-octave-eoe-indicator "'org_babel_eoe'") |
| 65 | 65 | ||
| 66 | (defvar org-babel-octave-eoe-output "ans = org_babel_eoe") | 66 | (defvar org-babel-octave-eoe-output "ans = org_babel_eoe") |
| 67 | 67 | ||
| @@ -127,7 +127,7 @@ specifying a variable of the same value." | |||
| 127 | (if (listp (car var)) "; " ",")) "]") | 127 | (if (listp (car var)) "; " ",")) "]") |
| 128 | (cond | 128 | (cond |
| 129 | ((stringp var) | 129 | ((stringp var) |
| 130 | (format "\'%s\'" var)) | 130 | (format "'%s'" var)) |
| 131 | (t | 131 | (t |
| 132 | (format "%s" var))))) | 132 | (format "%s" var))))) |
| 133 | 133 | ||
diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el index 3e79592f5a0..5c1e13142da 100644 --- a/lisp/org/ob-ref.el +++ b/lisp/org/ob-ref.el | |||
| @@ -138,7 +138,7 @@ the variable." | |||
| 138 | (setq ref (substring ref 0 (match-beginning 0)))) | 138 | (setq ref (substring ref 0 (match-beginning 0)))) |
| 139 | ;; assign any arguments to pass to source block | 139 | ;; assign any arguments to pass to source block |
| 140 | (when (string-match | 140 | (when (string-match |
| 141 | "^\\(.+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)\(\\(.*\\)\)$" ref) | 141 | "^\\(.+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)(\\(.*\\))$" ref) |
| 142 | (setq new-refere (match-string 1 ref)) | 142 | (setq new-refere (match-string 1 ref)) |
| 143 | (setq new-header-args (match-string 3 ref)) | 143 | (setq new-header-args (match-string 3 ref)) |
| 144 | (setq new-referent (match-string 5 ref)) | 144 | (setq new-referent (match-string 5 ref)) |
| @@ -224,7 +224,7 @@ returned, or an empty string or \"*\" both of which are | |||
| 224 | interpreted to mean the entire range and as such are equivalent | 224 | interpreted to mean the entire range and as such are equivalent |
| 225 | to \"0:-1\"." | 225 | to \"0:-1\"." |
| 226 | (if (and (> (length index) 0) (string-match "^\\([^,]*\\),?" index)) | 226 | (if (and (> (length index) 0) (string-match "^\\([^,]*\\),?" index)) |
| 227 | (let* ((ind-re "\\(\\([-[:digit:]]+\\):\\([-[:digit:]]+\\)\\|\*\\)") | 227 | (let* ((ind-re "\\(\\([-[:digit:]]+\\):\\([-[:digit:]]+\\)\\|\\*\\)") |
| 228 | (lgth (length lis)) | 228 | (lgth (length lis)) |
| 229 | (portion (match-string 1 index)) | 229 | (portion (match-string 1 index)) |
| 230 | (remainder (substring index (match-end 0))) | 230 | (remainder (substring index (match-end 0))) |
diff --git a/lisp/org/ob-sql.el b/lisp/org/ob-sql.el index 7ed61b153e7..6dff9adca86 100644 --- a/lisp/org/ob-sql.el +++ b/lisp/org/ob-sql.el | |||
| @@ -106,7 +106,7 @@ This function is called by `org-babel-execute-src-block'." | |||
| 106 | ('dbi (format "dbish --batch %s < %s | sed '%s' > %s" | 106 | ('dbi (format "dbish --batch %s < %s | sed '%s' > %s" |
| 107 | (or cmdline "") | 107 | (or cmdline "") |
| 108 | (org-babel-process-file-name in-file) | 108 | (org-babel-process-file-name in-file) |
| 109 | "/^+/d;s/^\|//;s/(NULL)/ /g;$d" | 109 | "/^+/d;s/^|//;s/(NULL)/ /g;$d" |
| 110 | (org-babel-process-file-name out-file))) | 110 | (org-babel-process-file-name out-file))) |
| 111 | ('monetdb (format "mclient -f tab %s < %s > %s" | 111 | ('monetdb (format "mclient -f tab %s < %s > %s" |
| 112 | (or cmdline "") | 112 | (or cmdline "") |
| @@ -186,7 +186,7 @@ This function is called by `org-babel-execute-src-block'." | |||
| 186 | (lambda (pair) | 186 | (lambda (pair) |
| 187 | (setq body | 187 | (setq body |
| 188 | (replace-regexp-in-string | 188 | (replace-regexp-in-string |
| 189 | (format "\$%s" (car pair)) ;FIXME: "\$" == "$"! | 189 | (format "$%s" (car pair)) |
| 190 | (let ((val (cdr pair))) | 190 | (let ((val (cdr pair))) |
| 191 | (if (listp val) | 191 | (if (listp val) |
| 192 | (let ((data-file (org-babel-temp-file "sql-data-"))) | 192 | (let ((data-file (org-babel-temp-file "sql-data-"))) |
diff --git a/lisp/org/ob-sqlite.el b/lisp/org/ob-sqlite.el index 33c8d9b59fc..18d7fc8fd6a 100644 --- a/lisp/org/ob-sqlite.el +++ b/lisp/org/ob-sqlite.el | |||
| @@ -119,7 +119,7 @@ This function is called by `org-babel-execute-src-block'." | |||
| 119 | (lambda (pair) | 119 | (lambda (pair) |
| 120 | (setq body | 120 | (setq body |
| 121 | (replace-regexp-in-string | 121 | (replace-regexp-in-string |
| 122 | (format "\$%s" (car pair)) ;FIXME: "\$" == "$"! | 122 | (format "$%s" (car pair)) |
| 123 | (let ((val (cdr pair))) | 123 | (let ((val (cdr pair))) |
| 124 | (if (listp val) | 124 | (if (listp val) |
| 125 | (let ((data-file (org-babel-temp-file "sqlite-data-"))) | 125 | (let ((data-file (org-babel-temp-file "sqlite-data-"))) |
diff --git a/lisp/org/ob-tangle.el b/lisp/org/ob-tangle.el index c0846f9cd82..732522c3773 100644 --- a/lisp/org/ob-tangle.el +++ b/lisp/org/ob-tangle.el | |||
| @@ -302,7 +302,7 @@ Insert the source-code specified by SPEC into the current source | |||
| 302 | code file. This function uses `comment-region' which assumes | 302 | code file. This function uses `comment-region' which assumes |
| 303 | that the appropriate major-mode is set. SPEC has the form: | 303 | that the appropriate major-mode is set. SPEC has the form: |
| 304 | 304 | ||
| 305 | \(start-line file link source-name params body comment)" | 305 | (start-line file link source-name params body comment)" |
| 306 | (let* ((start-line (nth 0 spec)) | 306 | (let* ((start-line (nth 0 spec)) |
| 307 | (file (nth 1 spec)) | 307 | (file (nth 1 spec)) |
| 308 | (link (nth 2 spec)) | 308 | (link (nth 2 spec)) |
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el index ae5a252d8af..0b3be562489 100644 --- a/lisp/org/org-agenda.el +++ b/lisp/org/org-agenda.el | |||
| @@ -4603,7 +4603,8 @@ in `org-agenda-text-search-extra-files'." | |||
| 4603 | (goto-char (1- end)) | 4603 | (goto-char (1- end)) |
| 4604 | (throw :skip t))) | 4604 | (throw :skip t))) |
| 4605 | (if todo-only | 4605 | (if todo-only |
| 4606 | (cons (concat "^\*+[ \t]+" org-not-done-regexp) | 4606 | (cons (concat "^\\*+[ \t]+" |
| 4607 | org-not-done-regexp) | ||
| 4607 | regexps+) | 4608 | regexps+) |
| 4608 | regexps+)) | 4609 | regexps+)) |
| 4609 | (goto-char beg) | 4610 | (goto-char beg) |
diff --git a/lisp/org/org-bibtex.el b/lisp/org/org-bibtex.el index 06adc078c5d..7227803e6be 100644 --- a/lisp/org/org-bibtex.el +++ b/lisp/org/org-bibtex.el | |||
| @@ -195,7 +195,7 @@ | |||
| 195 | (:howpublished . "How something strange has been published. The first word should be capitalized.") | 195 | (:howpublished . "How something strange has been published. The first word should be capitalized.") |
| 196 | (:institution . "The sponsoring institution of a technical report.") | 196 | (:institution . "The sponsoring institution of a technical report.") |
| 197 | (:journal . "A journal name.") | 197 | (:journal . "A journal name.") |
| 198 | (:key . "Used for alphabetizing, cross-referencing, and creating a label when the author information is missing. This field should not be confused with the key that appears in the \cite command and at the beginning of the database entry.") | 198 | (:key . "Used for alphabetizing, cross-referencing, and creating a label when the author information is missing. This field should not be confused with the key that appears in the \\cite command and at the beginning of the database entry.") |
| 199 | (:month . "The month in which the work was published or, for an unpublished work, in which it was written. You should use the standard three-letter abbreviation,") | 199 | (:month . "The month in which the work was published or, for an unpublished work, in which it was written. You should use the standard three-letter abbreviation,") |
| 200 | (:note . "Any additional information that can help the reader. The first word should be capitalized.") | 200 | (:note . "Any additional information that can help the reader. The first word should be capitalized.") |
| 201 | (:number . "Any additional information that can help the reader. The first word should be capitalized.") | 201 | (:number . "Any additional information that can help the reader. The first word should be capitalized.") |
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el index 9489edf98bf..b386eb11652 100644 --- a/lisp/org/org-clock.el +++ b/lisp/org/org-clock.el | |||
| @@ -1235,7 +1235,7 @@ make this the default behavior.)" | |||
| 1235 | (looking-at | 1235 | (looking-at |
| 1236 | (concat "^[ \t]*" org-clock-string | 1236 | (concat "^[ \t]*" org-clock-string |
| 1237 | " \\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}" | 1237 | " \\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}" |
| 1238 | " *\\sw+\.? +[012][0-9]:[0-5][0-9]\\)\\][ \t]*$"))) | 1238 | " *\\sw+.? +[012][0-9]:[0-5][0-9]\\)\\][ \t]*$"))) |
| 1239 | (message "Matched %s" (match-string 1)) | 1239 | (message "Matched %s" (match-string 1)) |
| 1240 | (setq ts (concat "[" (match-string 1) "]")) | 1240 | (setq ts (concat "[" (match-string 1) "]")) |
| 1241 | (goto-char (match-end 1)) | 1241 | (goto-char (match-end 1)) |
diff --git a/lisp/org/org-colview.el b/lisp/org/org-colview.el index e938ab4ae4b..396aa3711d3 100644 --- a/lisp/org/org-colview.el +++ b/lisp/org/org-colview.el | |||
| @@ -354,7 +354,7 @@ CPHR is the complex heading regexp to use for parsing ITEM." | |||
| 354 | (let (fixitem) | 354 | (let (fixitem) |
| 355 | (if (not cphr) | 355 | (if (not cphr) |
| 356 | item | 356 | item |
| 357 | (unless (string-match "^\*+ " item) | 357 | (unless (string-match "^\\*+ " item) |
| 358 | (setq item (concat "* " item) fixitem t)) | 358 | (setq item (concat "* " item) fixitem t)) |
| 359 | (if (string-match cphr item) | 359 | (if (string-match cphr item) |
| 360 | (setq item | 360 | (setq item |
| @@ -369,7 +369,7 @@ CPHR is the complex heading regexp to use for parsing ITEM." | |||
| 369 | 0 (1+ (match-end 1)) | 369 | 0 (1+ (match-end 1)) |
| 370 | (list 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) | 370 | (list 'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1)))))) |
| 371 | item)) | 371 | item)) |
| 372 | (if fixitem (replace-regexp-in-string "^\*+ " "" item) item)))) | 372 | (if fixitem (replace-regexp-in-string "^\\*+ " "" item) item)))) |
| 373 | 373 | ||
| 374 | (defun org-columns-compact-links (s) | 374 | (defun org-columns-compact-links (s) |
| 375 | "Replace [[link][desc]] with [desc] or [link]." | 375 | "Replace [[link][desc]] with [desc] or [link]." |
diff --git a/lisp/org/org-crypt.el b/lisp/org/org-crypt.el index f527673cbd4..2b3445e47cd 100644 --- a/lisp/org/org-crypt.el +++ b/lisp/org/org-crypt.el | |||
| @@ -133,9 +133,10 @@ See `org-crypt-disable-auto-save'." | |||
| 133 | (and | 133 | (and |
| 134 | (eq org-crypt-disable-auto-save 'ask) | 134 | (eq org-crypt-disable-auto-save 'ask) |
| 135 | (y-or-n-p "org-decrypt: auto-save-mode may cause leakage. Disable it for current buffer? "))) | 135 | (y-or-n-p "org-decrypt: auto-save-mode may cause leakage. Disable it for current buffer? "))) |
| 136 | (message (concat "org-decrypt: Disabling auto-save-mode for " (or (buffer-file-name) (current-buffer)))) | 136 | (message "org-decrypt: Disabling auto-save-mode for %s" |
| 137 | ; The argument to auto-save-mode has to be "-1", since | 137 | (or (buffer-file-name) (current-buffer))) |
| 138 | ; giving a "nil" argument toggles instead of disabling. | 138 | ;; The argument to auto-save-mode has to be "-1", since |
| 139 | ;; giving a "nil" argument toggles instead of disabling. | ||
| 139 | (auto-save-mode -1)) | 140 | (auto-save-mode -1)) |
| 140 | ((eq org-crypt-disable-auto-save nil) | 141 | ((eq org-crypt-disable-auto-save nil) |
| 141 | (message "org-decrypt: Decrypting entry with auto-save-mode enabled. This may cause leakage.")) | 142 | (message "org-decrypt: Decrypting entry with auto-save-mode enabled. This may cause leakage.")) |
diff --git a/lisp/org/org-docview.el b/lisp/org/org-docview.el index 07224d38bd1..5c0e3e92328 100644 --- a/lisp/org/org-docview.el +++ b/lisp/org/org-docview.el | |||
| @@ -61,7 +61,7 @@ | |||
| 61 | (setq path (org-link-escape (expand-file-name path))) | 61 | (setq path (org-link-escape (expand-file-name path))) |
| 62 | (cond | 62 | (cond |
| 63 | ((eq format 'html) (format "<a href=\"%s\">%s</a>" path desc)) | 63 | ((eq format 'html) (format "<a href=\"%s\">%s</a>" path desc)) |
| 64 | ((eq format 'latex) (format "\href{%s}{%s}" path desc)) | 64 | ((eq format 'latex) (format "\\href{%s}{%s}" path desc)) |
| 65 | ((eq format 'ascii) (format "%s (%s)" desc path)) | 65 | ((eq format 'ascii) (format "%s (%s)" desc path)) |
| 66 | (t path))))) | 66 | (t path))))) |
| 67 | 67 | ||
diff --git a/lisp/org/org-element.el b/lisp/org/org-element.el index 573d7eeca2d..9f4cfa3ec66 100644 --- a/lisp/org/org-element.el +++ b/lisp/org/org-element.el | |||
| @@ -4141,30 +4141,30 @@ Assuming TREE is a variable containing an Org buffer parse tree, | |||
| 4141 | the following example will return a flat list of all `src-block' | 4141 | the following example will return a flat list of all `src-block' |
| 4142 | and `example-block' elements in it: | 4142 | and `example-block' elements in it: |
| 4143 | 4143 | ||
| 4144 | \(org-element-map tree \\='(example-block src-block) \\='identity) | 4144 | (org-element-map tree \\='(example-block src-block) \\='identity) |
| 4145 | 4145 | ||
| 4146 | The following snippet will find the first headline with a level | 4146 | The following snippet will find the first headline with a level |
| 4147 | of 1 and a \"phone\" tag, and will return its beginning position: | 4147 | of 1 and a \"phone\" tag, and will return its beginning position: |
| 4148 | 4148 | ||
| 4149 | \(org-element-map tree \\='headline | 4149 | (org-element-map tree \\='headline |
| 4150 | \(lambda (hl) | 4150 | (lambda (hl) |
| 4151 | \(and (= (org-element-property :level hl) 1) | 4151 | (and (= (org-element-property :level hl) 1) |
| 4152 | \(member \"phone\" (org-element-property :tags hl)) | 4152 | (member \"phone\" (org-element-property :tags hl)) |
| 4153 | \(org-element-property :begin hl))) | 4153 | (org-element-property :begin hl))) |
| 4154 | nil t) | 4154 | nil t) |
| 4155 | 4155 | ||
| 4156 | The next example will return a flat list of all `plain-list' type | 4156 | The next example will return a flat list of all `plain-list' type |
| 4157 | elements in TREE that are not a sub-list themselves: | 4157 | elements in TREE that are not a sub-list themselves: |
| 4158 | 4158 | ||
| 4159 | \(org-element-map tree \\='plain-list \\='identity nil nil \\='plain-list) | 4159 | (org-element-map tree \\='plain-list \\='identity nil nil \\='plain-list) |
| 4160 | 4160 | ||
| 4161 | Eventually, this example will return a flat list of all `bold' | 4161 | Eventually, this example will return a flat list of all `bold' |
| 4162 | type objects containing a `latex-snippet' type object, even | 4162 | type objects containing a `latex-snippet' type object, even |
| 4163 | looking into captions: | 4163 | looking into captions: |
| 4164 | 4164 | ||
| 4165 | \(org-element-map tree \\='bold | 4165 | (org-element-map tree \\='bold |
| 4166 | \(lambda (b) | 4166 | (lambda (b) |
| 4167 | \(and (org-element-map b \\='latex-snippet \\='identity nil t) b)) | 4167 | (and (org-element-map b \\='latex-snippet \\='identity nil t) b)) |
| 4168 | nil nil nil t)" | 4168 | nil nil nil t)" |
| 4169 | ;; Ensure TYPES and NO-RECURSION are a list, even of one element. | 4169 | ;; Ensure TYPES and NO-RECURSION are a list, even of one element. |
| 4170 | (unless (listp types) (setq types (list types))) | 4170 | (unless (listp types) (setq types (list types))) |
diff --git a/lisp/org/org-entities.el b/lisp/org/org-entities.el index f8f218f6f55..89d6b951588 100644 --- a/lisp/org/org-entities.el +++ b/lisp/org/org-entities.el | |||
| @@ -359,8 +359,8 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." | |||
| 359 | ("lessgtr" "\\lessgtr" t "≶" "[less than or greater than]" "[less than or greater than]" "≶") | 359 | ("lessgtr" "\\lessgtr" t "≶" "[less than or greater than]" "[less than or greater than]" "≶") |
| 360 | ("lesseqgtr" "\\lesseqgtr" t "⋚" "[less than or equal or greater than or equal]" "[less than or equal or greater than or equal]" "⋚") | 360 | ("lesseqgtr" "\\lesseqgtr" t "⋚" "[less than or equal or greater than or equal]" "[less than or equal or greater than or equal]" "⋚") |
| 361 | ("ll" "\\ll" t "≪" "<<" "<<" "≪") | 361 | ("ll" "\\ll" t "≪" "<<" "<<" "≪") |
| 362 | ("Ll" "\lll" t "⋘" "<<<" "<<<" "⋘") | 362 | ("Ll" "\\lll" t "⋘" "<<<" "<<<" "⋘") |
| 363 | ("lll" "\lll" t "⋘" "<<<" "<<<" "⋘") | 363 | ("lll" "\\lll" t "⋘" "<<<" "<<<" "⋘") |
| 364 | ("gg" "\\gg" t "≫" ">>" ">>" "≫") | 364 | ("gg" "\\gg" t "≫" ">>" ">>" "≫") |
| 365 | ("Gg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") | 365 | ("Gg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") |
| 366 | ("ggg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") | 366 | ("ggg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") |
diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el index 0f086975aa7..5d853e62bc1 100644 --- a/lisp/org/org-footnote.el +++ b/lisp/org/org-footnote.el | |||
| @@ -243,7 +243,7 @@ positions, and the definition, when inlined." | |||
| 243 | 243 | ||
| 244 | This matches only pure definitions like [1] or [fn:name] at the | 244 | This matches only pure definitions like [1] or [fn:name] at the |
| 245 | beginning of a line. It does not match references like | 245 | beginning of a line. It does not match references like |
| 246 | \[fn:name:definition], where the footnote text is included and | 246 | [fn:name:definition], where the footnote text is included and |
| 247 | defined locally. | 247 | defined locally. |
| 248 | 248 | ||
| 249 | The return value will be nil if not at a footnote definition, and | 249 | The return value will be nil if not at a footnote definition, and |
diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el index 28bed8dcc59..c8266500fe3 100644 --- a/lisp/org/org-list.el +++ b/lisp/org/org-list.el | |||
| @@ -230,7 +230,7 @@ This variable needs to be set before org.el is loaded. If you | |||
| 230 | need to make a change while Emacs is running, use the customize | 230 | need to make a change while Emacs is running, use the customize |
| 231 | interface or run the following code after updating it: | 231 | interface or run the following code after updating it: |
| 232 | 232 | ||
| 233 | \(when (featurep \\='org-element) (load \"org-element\" t t))" | 233 | (when (featurep \\='org-element) (load \"org-element\" t t))" |
| 234 | :group 'org-plain-lists | 234 | :group 'org-plain-lists |
| 235 | :version "24.1" | 235 | :version "24.1" |
| 236 | :type 'boolean | 236 | :type 'boolean |
| @@ -620,11 +620,11 @@ point-at-bol: | |||
| 620 | 620 | ||
| 621 | will get the following structure: | 621 | will get the following structure: |
| 622 | 622 | ||
| 623 | \(\(1 0 \"- \" nil \"[X]\" nil 97\) | 623 | ((1 0 \"- \" nil \"[X]\" nil 97) |
| 624 | \(18 2 \"1. \" nil nil nil 34\) | 624 | (18 2 \"1. \" nil nil nil 34) |
| 625 | \(34 2 \"5. \" \"5\" nil nil 55\) | 625 | (34 2 \"5. \" \"5\" nil nil 55) |
| 626 | \(97 0 \"- \" nil nil nil 131\) | 626 | (97 0 \"- \" nil nil nil 131) |
| 627 | \(109 2 \"+ \" nil nil \"tag\" 131\) | 627 | (109 2 \"+ \" nil nil \"tag\" 131)) |
| 628 | 628 | ||
| 629 | Assume point is at an item." | 629 | Assume point is at an item." |
| 630 | (save-excursion | 630 | (save-excursion |
| @@ -2015,7 +2015,7 @@ previous item, plus ARGS extra arguments. | |||
| 2015 | 2015 | ||
| 2016 | FUNCTION is applied on items in reverse order. | 2016 | FUNCTION is applied on items in reverse order. |
| 2017 | 2017 | ||
| 2018 | As an example, \(org-apply-on-list \(lambda \(result\) \(1+ result\)\) 0\) | 2018 | As an example, \(org-apply-on-list \(lambda \(result) \(1+ result)) 0) |
| 2019 | will return the number of items in the current list. | 2019 | will return the number of items in the current list. |
| 2020 | 2020 | ||
| 2021 | Sublists of the list are skipped. Cursor is always at the | 2021 | Sublists of the list are skipped. Cursor is always at the |
| @@ -2931,13 +2931,13 @@ For example, the following list: | |||
| 2931 | 2931 | ||
| 2932 | will be parsed as: | 2932 | will be parsed as: |
| 2933 | 2933 | ||
| 2934 | \(ordered | 2934 | (ordered |
| 2935 | \(nil \"first item\" | 2935 | (nil \"first item\" |
| 2936 | \(unordered | 2936 | (unordered |
| 2937 | \(nil \"sub-item one\"\) | 2937 | (nil \"sub-item one\") |
| 2938 | \(nil \"[CBON] sub-item two\"\)\) | 2938 | (nil \"[CBON] sub-item two\")) |
| 2939 | \"more text in first item\"\) | 2939 | \"more text in first item\") |
| 2940 | \(3 \"last item\"\)\) | 2940 | (3 \"last item\")) |
| 2941 | 2941 | ||
| 2942 | Point is left at list end." | 2942 | Point is left at list end." |
| 2943 | (defvar parse-item) ;FIXME: Or use `cl-labels' or `letrec'. | 2943 | (defvar parse-item) ;FIXME: Or use `cl-labels' or `letrec'. |
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index 478ad933ae2..174e36ed632 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el | |||
| @@ -440,8 +440,8 @@ available parameters." | |||
| 440 | "Check if the table has a marking column. | 440 | "Check if the table has a marking column. |
| 441 | If yes remove the column and the special lines." | 441 | If yes remove the column and the special lines." |
| 442 | (let ((special (if maybe-quoted | 442 | (let ((special (if maybe-quoted |
| 443 | "^[ \t]*| *\\\\?[\#!$*_^/ ] *|" | 443 | "^[ \t]*| *\\\\?[#!$*_^/ ] *|" |
| 444 | "^[ \t]*| *[\#!$*_^/ ] *|")) | 444 | "^[ \t]*| *[#!$*_^/ ] *|")) |
| 445 | (ignore (if maybe-quoted | 445 | (ignore (if maybe-quoted |
| 446 | "^[ \t]*| *\\\\?[!$_^/] *|" | 446 | "^[ \t]*| *\\\\?[!$_^/] *|" |
| 447 | "^[ \t]*| *[!$_^/] *|"))) | 447 | "^[ \t]*| *[!$_^/] *|"))) |
| @@ -3248,7 +3248,7 @@ formulas that use a range of rows or columns, it may often be better | |||
| 3248 | to anchor the formula with \"I\" row markers, or to offset from the | 3248 | to anchor the formula with \"I\" row markers, or to offset from the |
| 3249 | borders of the table using the @< @> $< $> makers." | 3249 | borders of the table using the @< @> $< $> makers." |
| 3250 | (let (n nmax len char (start 0)) | 3250 | (let (n nmax len char (start 0)) |
| 3251 | (while (string-match "\\([@$]\\)\\(<+\\|>+\\)\\|\\(remote([^\)]+)\\)" | 3251 | (while (string-match "\\([@$]\\)\\(<+\\|>+\\)\\|\\(remote([^)]+)\\)" |
| 3252 | s start) | 3252 | s start) |
| 3253 | (if (match-end 3) | 3253 | (if (match-end 3) |
| 3254 | (setq start (match-end 3)) | 3254 | (setq start (match-end 3)) |
diff --git a/lisp/org/org.el b/lisp/org/org.el index c7b64cccb19..7a6d6cc1b3f 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el | |||
| @@ -381,7 +381,7 @@ core modules, nor modules from the CONTRIB directory). Just add symbols | |||
| 381 | to the end of the list. If the package is called org-xyz.el, then you need | 381 | to the end of the list. If the package is called org-xyz.el, then you need |
| 382 | to add the symbol `xyz', and the package must have a call to: | 382 | to add the symbol `xyz', and the package must have a call to: |
| 383 | 383 | ||
| 384 | \(provide \\='org-xyz) | 384 | (provide \\='org-xyz) |
| 385 | 385 | ||
| 386 | For export specific modules, see also `org-export-backends'." | 386 | For export specific modules, see also `org-export-backends'." |
| 387 | :group 'org | 387 | :group 'org |
| @@ -465,26 +465,26 @@ need to make a change while Emacs is running, use the customize | |||
| 465 | interface or run the following code, where VAL stands for the new | 465 | interface or run the following code, where VAL stands for the new |
| 466 | value of the variable, after updating it: | 466 | value of the variable, after updating it: |
| 467 | 467 | ||
| 468 | \(progn | 468 | (progn |
| 469 | \(setq org-export--registered-backends | 469 | (setq org-export--registered-backends |
| 470 | \(org-remove-if-not | 470 | (org-remove-if-not |
| 471 | \(lambda (backend) | 471 | (lambda (backend) |
| 472 | \(let ((name (org-export-backend-name backend))) | 472 | (let ((name (org-export-backend-name backend))) |
| 473 | \(or (memq name val) | 473 | (or (memq name val) |
| 474 | \(catch \\='parentp | 474 | (catch \\='parentp |
| 475 | \(dolist (b val) | 475 | (dolist (b val) |
| 476 | \(and (org-export-derived-backend-p b name) | 476 | (and (org-export-derived-backend-p b name) |
| 477 | \(throw \\='parentp t))))))) | 477 | (throw \\='parentp t))))))) |
| 478 | org-export--registered-backends)) | 478 | org-export--registered-backends)) |
| 479 | \(let ((new-list (mapcar \\='org-export-backend-name | 479 | (let ((new-list (mapcar \\='org-export-backend-name |
| 480 | org-export--registered-backends))) | 480 | org-export--registered-backends))) |
| 481 | \(dolist (backend val) | 481 | (dolist (backend val) |
| 482 | \(cond | 482 | (cond |
| 483 | \((not (load (format \"ox-%s\" backend) t t)) | 483 | ((not (load (format \"ox-%s\" backend) t t)) |
| 484 | \(message \"Problems while trying to load export back-end \\=`%s\\='\" | 484 | (message \"Problems while trying to load export back-end \\=`%s\\='\" |
| 485 | backend)) | 485 | backend)) |
| 486 | \((not (memq backend new-list)) (push backend new-list)))) | 486 | ((not (memq backend new-list)) (push backend new-list)))) |
| 487 | \(set-default \\='org-export-backends new-list))) | 487 | (set-default \\='org-export-backends new-list))) |
| 488 | 488 | ||
| 489 | Adding a back-end to this list will also pull the back-end it | 489 | Adding a back-end to this list will also pull the back-end it |
| 490 | depends on, if any." | 490 | depends on, if any." |
| @@ -2957,7 +2957,7 @@ its value is 0. | |||
| 2957 | 2957 | ||
| 2958 | For example, | 2958 | For example, |
| 2959 | 2959 | ||
| 2960 | \(:days \"%dd\" :hours \"%d\" :require-hours t :minutes \":%02d\" | 2960 | (:days \"%dd\" :hours \"%d\" :require-hours t :minutes \":%02d\" |
| 2961 | :require-minutes t) | 2961 | :require-minutes t) |
| 2962 | 2962 | ||
| 2963 | means durations longer than a day will be expressed in days, | 2963 | means durations longer than a day will be expressed in days, |
| @@ -2967,7 +2967,7 @@ hour). | |||
| 2967 | 2967 | ||
| 2968 | The value | 2968 | The value |
| 2969 | 2969 | ||
| 2970 | \(:days \"%dd\" :minutes \"%dm\") | 2970 | (:days \"%dd\" :minutes \"%dm\") |
| 2971 | 2971 | ||
| 2972 | means durations longer than a day will be expressed in days and | 2972 | means durations longer than a day will be expressed in days and |
| 2973 | minutes, and durations less than a day will be expressed entirely | 2973 | minutes, and durations less than a day will be expressed entirely |
| @@ -3802,8 +3802,8 @@ images at the same place." | |||
| 3802 | 3802 | ||
| 3803 | (defcustom org-format-latex-header "\\documentclass{article} | 3803 | (defcustom org-format-latex-header "\\documentclass{article} |
| 3804 | \\usepackage[usenames]{color} | 3804 | \\usepackage[usenames]{color} |
| 3805 | \[PACKAGES] | 3805 | [PACKAGES] |
| 3806 | \[DEFAULT-PACKAGES] | 3806 | [DEFAULT-PACKAGES] |
| 3807 | \\pagestyle{empty} % do not remove | 3807 | \\pagestyle{empty} % do not remove |
| 3808 | % The settings below are copied from fullpage.sty | 3808 | % The settings below are copied from fullpage.sty |
| 3809 | \\setlength{\\textwidth}{\\paperwidth} | 3809 | \\setlength{\\textwidth}{\\paperwidth} |
| @@ -3889,7 +3889,7 @@ a string. | |||
| 3889 | 3889 | ||
| 3890 | A cell is of the format: | 3890 | A cell is of the format: |
| 3891 | 3891 | ||
| 3892 | \( \"options\" \"package\" SNIPPET-FLAG). | 3892 | ( \"options\" \"package\" SNIPPET-FLAG). |
| 3893 | 3893 | ||
| 3894 | If SNIPPET-FLAG is non-nil, the package also needs to be included | 3894 | If SNIPPET-FLAG is non-nil, the package also needs to be included |
| 3895 | when compiling LaTeX snippets into images for inclusion into | 3895 | when compiling LaTeX snippets into images for inclusion into |
| @@ -3917,7 +3917,7 @@ Each element is either a cell or a string. | |||
| 3917 | 3917 | ||
| 3918 | A cell is of the format: | 3918 | A cell is of the format: |
| 3919 | 3919 | ||
| 3920 | \(\"options\" \"package\" SNIPPET-FLAG) | 3920 | (\"options\" \"package\" SNIPPET-FLAG) |
| 3921 | 3921 | ||
| 3922 | SNIPPET-FLAG, when non-nil, indicates that this package is also | 3922 | SNIPPET-FLAG, when non-nil, indicates that this package is also |
| 3923 | needed when turning LaTeX snippets into images for inclusion into | 3923 | needed when turning LaTeX snippets into images for inclusion into |
| @@ -7302,7 +7302,7 @@ Optional arguments START and END can be used to limit the range." | |||
| 7302 | (defconst org-goto-help | 7302 | (defconst org-goto-help |
| 7303 | "Browse buffer copy, to find location or copy text.%s | 7303 | "Browse buffer copy, to find location or copy text.%s |
| 7304 | RET=jump to location C-g=quit and return to previous location | 7304 | RET=jump to location C-g=quit and return to previous location |
| 7305 | \[Up]/[Down]=next/prev headline TAB=cycle visibility [/] org-occur") | 7305 | [Up]/[Down]=next/prev headline TAB=cycle visibility [/] org-occur") |
| 7306 | 7306 | ||
| 7307 | (defvar org-goto-start-pos) ; dynamically scoped parameter | 7307 | (defvar org-goto-start-pos) ; dynamically scoped parameter |
| 7308 | 7308 | ||
| @@ -7682,7 +7682,7 @@ command." | |||
| 7682 | (re-search-forward org-outline-regexp-bol) | 7682 | (re-search-forward org-outline-regexp-bol) |
| 7683 | (beginning-of-line 0)) | 7683 | (beginning-of-line 0)) |
| 7684 | (skip-chars-backward " \r\n") | 7684 | (skip-chars-backward " \r\n") |
| 7685 | (and (not (looking-back "^\*+" (line-beginning-position))) | 7685 | (and (not (looking-back "^\\*+" (line-beginning-position))) |
| 7686 | (looking-at "[ \t]+") (replace-match "")) | 7686 | (looking-at "[ \t]+") (replace-match "")) |
| 7687 | (unless (eobp) (forward-char 1)) | 7687 | (unless (eobp) (forward-char 1)) |
| 7688 | (when (looking-at "^\\*") | 7688 | (when (looking-at "^\\*") |
| @@ -11389,7 +11389,7 @@ on the system \"/user@host:\"." | |||
| 11389 | (setq level (org-reduced-level | 11389 | (setq level (org-reduced-level |
| 11390 | (- (match-end 1) (match-beginning 1))) | 11390 | (- (match-end 1) (match-beginning 1))) |
| 11391 | txt (org-link-display-format (match-string 4)) | 11391 | txt (org-link-display-format (match-string 4)) |
| 11392 | txt (replace-regexp-in-string "\\( *\[[0-9]+/?[0-9]*%?\]\\)+$" "" txt) | 11392 | txt (replace-regexp-in-string "\\( *[[0-9]+/?[0-9]*%?]\\)+$" "" txt) |
| 11393 | re (format org-complex-heading-regexp-format | 11393 | re (format org-complex-heading-regexp-format |
| 11394 | (regexp-quote (match-string 4)))) | 11394 | (regexp-quote (match-string 4)))) |
| 11395 | (when org-refile-use-outline-path | 11395 | (when org-refile-use-outline-path |
| @@ -16355,7 +16355,7 @@ While prompting, a calendar is popped up - you can also select the | |||
| 16355 | date with the mouse (button 1). The calendar shows a period of three | 16355 | date with the mouse (button 1). The calendar shows a period of three |
| 16356 | months. To scroll it to other months, use the keys `>' and `<'. | 16356 | months. To scroll it to other months, use the keys `>' and `<'. |
| 16357 | If you don't like the calendar, turn it off with | 16357 | If you don't like the calendar, turn it off with |
| 16358 | \(setq org-read-date-popup-calendar nil) | 16358 | (setq org-read-date-popup-calendar nil) |
| 16359 | 16359 | ||
| 16360 | With optional argument TO-TIME, the date will immediately be converted | 16360 | With optional argument TO-TIME, the date will immediately be converted |
| 16361 | to an internal time. | 16361 | to an internal time. |
| @@ -17912,7 +17912,7 @@ If EXCLUDE-TMP is non-nil, ignore temporary buffers." | |||
| 17912 | ((eq predicate 'files) | 17912 | ((eq predicate 'files) |
| 17913 | (lambda (b) (with-current-buffer b (derived-mode-p 'org-mode)))) | 17913 | (lambda (b) (with-current-buffer b (derived-mode-p 'org-mode)))) |
| 17914 | ((eq predicate 'export) | 17914 | ((eq predicate 'export) |
| 17915 | (lambda (b) (string-match "\*Org .*Export" (buffer-name b)))) | 17915 | (lambda (b) (string-match "\\*Org .*Export" (buffer-name b)))) |
| 17916 | ((eq predicate 'agenda) | 17916 | ((eq predicate 'agenda) |
| 17917 | (lambda (b) | 17917 | (lambda (b) |
| 17918 | (with-current-buffer b | 17918 | (with-current-buffer b |
| @@ -17921,7 +17921,7 @@ If EXCLUDE-TMP is non-nil, ignore temporary buffers." | |||
| 17921 | (member (file-truename bfn) agenda-files))))) | 17921 | (member (file-truename bfn) agenda-files))))) |
| 17922 | (t (lambda (b) (with-current-buffer b | 17922 | (t (lambda (b) (with-current-buffer b |
| 17923 | (or (derived-mode-p 'org-mode) | 17923 | (or (derived-mode-p 'org-mode) |
| 17924 | (string-match "\*Org .*Export" | 17924 | (string-match "\\*Org .*Export" |
| 17925 | (buffer-name b))))))))) | 17925 | (buffer-name b))))))))) |
| 17926 | (delq nil | 17926 | (delq nil |
| 17927 | (mapcar | 17927 | (mapcar |
| @@ -23005,7 +23005,7 @@ no special treatment. In particular, a simple \\[universal-argument] prefix \ | |||
| 23005 | will just | 23005 | will just |
| 23006 | plainly yank the text as it is. | 23006 | plainly yank the text as it is. |
| 23007 | 23007 | ||
| 23008 | \[1] The test checks if the first non-white line is a heading | 23008 | [1] The test checks if the first non-white line is a heading |
| 23009 | and if there are no other headings with fewer stars." | 23009 | and if there are no other headings with fewer stars." |
| 23010 | (interactive "P") | 23010 | (interactive "P") |
| 23011 | (org-yank-generic 'yank arg)) | 23011 | (org-yank-generic 'yank arg)) |
diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el index fc4f574a4c4..2b2d92ee2fc 100644 --- a/lisp/org/ox-html.el +++ b/lisp/org/ox-html.el | |||
| @@ -2598,7 +2598,7 @@ Bind `org-html-standalone-image-predicate' to constrain paragraph | |||
| 2598 | further. For example, to check for only captioned standalone | 2598 | further. For example, to check for only captioned standalone |
| 2599 | images, set it to: | 2599 | images, set it to: |
| 2600 | 2600 | ||
| 2601 | \(lambda (paragraph) (org-element-property :caption paragraph))" | 2601 | (lambda (paragraph) (org-element-property :caption paragraph))" |
| 2602 | (let ((paragraph (case (org-element-type element) | 2602 | (let ((paragraph (case (org-element-type element) |
| 2603 | (paragraph element) | 2603 | (paragraph element) |
| 2604 | (link (org-export-get-parent element))))) | 2604 | (link (org-export-get-parent element))))) |
diff --git a/lisp/org/ox-icalendar.el b/lisp/org/ox-icalendar.el index a77eaedb9a0..3da52243d30 100644 --- a/lisp/org/ox-icalendar.el +++ b/lisp/org/ox-icalendar.el | |||
| @@ -447,7 +447,7 @@ or subject for the event." | |||
| 447 | ;; characters with literal \n. | 447 | ;; characters with literal \n. |
| 448 | (replace-regexp-in-string | 448 | (replace-regexp-in-string |
| 449 | "[ \t]*\n" "\\n" | 449 | "[ \t]*\n" "\\n" |
| 450 | (replace-regexp-in-string "[\\,;]" "\\\&" s) | 450 | (replace-regexp-in-string "[\\,;]" "\\\\\\&" s) |
| 451 | nil t))) | 451 | nil t))) |
| 452 | 452 | ||
| 453 | (defun org-icalendar-fold-string (s) | 453 | (defun org-icalendar-fold-string (s) |
diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el index cea02ff4548..51f7b17a8bf 100644 --- a/lisp/org/ox-latex.el +++ b/lisp/org/ox-latex.el | |||
| @@ -212,9 +212,9 @@ | |||
| 212 | If #+LATEX_CLASS is set in the buffer, use its value and the | 212 | If #+LATEX_CLASS is set in the buffer, use its value and the |
| 213 | associated information. Here is the structure of each cell: | 213 | associated information. Here is the structure of each cell: |
| 214 | 214 | ||
| 215 | \(class-name | 215 | (class-name |
| 216 | header-string | 216 | header-string |
| 217 | \(numbered-section . unnumbered-section) | 217 | (numbered-section . unnumbered-section) |
| 218 | ...) | 218 | ...) |
| 219 | 219 | ||
| 220 | The header string | 220 | The header string |
| @@ -281,11 +281,11 @@ section string and will be replaced by the title of the section. | |||
| 281 | Instead of a cons cell (numbered . unnumbered), you can also | 281 | Instead of a cons cell (numbered . unnumbered), you can also |
| 282 | provide a list of 2 or 4 elements, | 282 | provide a list of 2 or 4 elements, |
| 283 | 283 | ||
| 284 | \(numbered-open numbered-close) | 284 | (numbered-open numbered-close) |
| 285 | 285 | ||
| 286 | or | 286 | or |
| 287 | 287 | ||
| 288 | \(numbered-open numbered-close unnumbered-open unnumbered-close) | 288 | (numbered-open numbered-close unnumbered-open unnumbered-close) |
| 289 | 289 | ||
| 290 | providing opening and closing strings for a LaTeX environment | 290 | providing opening and closing strings for a LaTeX environment |
| 291 | that should represent the document section. The opening clause | 291 | that should represent the document section. The opening clause |
| @@ -591,18 +591,18 @@ The function should return the string to be exported. | |||
| 591 | For example, the variable could be set to the following function | 591 | For example, the variable could be set to the following function |
| 592 | in order to mimic default behavior: | 592 | in order to mimic default behavior: |
| 593 | 593 | ||
| 594 | \(defun org-latex-format-inlinetask \(todo type priority name tags contents\) | 594 | \(defun org-latex-format-inlinetask (todo type priority name tags contents) |
| 595 | \"Format an inline task element for LaTeX export.\" | 595 | \"Format an inline task element for LaTeX export.\" |
| 596 | \(let ((full-title | 596 | (let ((full-title |
| 597 | \(concat | 597 | (concat |
| 598 | \(when todo | 598 | (when todo |
| 599 | \(format \"\\\\textbf{\\\\textsf{\\\\textsc{%s}}} \" todo)) | 599 | (format \"\\\\textbf{\\\\textsf{\\\\textsc{%s}}} \" todo)) |
| 600 | \(when priority (format \"\\\\framebox{\\\\#%c} \" priority)) | 600 | (when priority (format \"\\\\framebox{\\\\#%c} \" priority)) |
| 601 | title | 601 | title |
| 602 | \(when tags | 602 | (when tags |
| 603 | \(format \"\\\\hfill{}\\\\textsc{:%s:}\" | 603 | (format \"\\\\hfill{}\\\\textsc{:%s:}\" |
| 604 | \(mapconcat \\='identity tags \":\"))))) | 604 | (mapconcat \\='identity tags \":\"))))) |
| 605 | \(format (concat \"\\\\begin{center}\\n\" | 605 | (format (concat \"\\\\begin{center}\\n\" |
| 606 | \"\\\\fbox{\\n\" | 606 | \"\\\\fbox{\\n\" |
| 607 | \"\\\\begin{minipage}[c]{.6\\\\textwidth}\\n\" | 607 | \"\\\\begin{minipage}[c]{.6\\\\textwidth}\\n\" |
| 608 | \"%s\\n\\n\" | 608 | \"%s\\n\\n\" |
| @@ -626,21 +626,21 @@ listings package, and if you want to have color, the color | |||
| 626 | package. Just add these to `org-latex-packages-alist', for | 626 | package. Just add these to `org-latex-packages-alist', for |
| 627 | example using customize, or with something like: | 627 | example using customize, or with something like: |
| 628 | 628 | ||
| 629 | \(require \\='ox-latex) | 629 | (require \\='ox-latex) |
| 630 | \(add-to-list \\='org-latex-packages-alist \\='(\"\" \"listings\")) | 630 | (add-to-list \\='org-latex-packages-alist \\='(\"\" \"listings\")) |
| 631 | \(add-to-list \\='org-latex-packages-alist \\='(\"\" \"color\")) | 631 | (add-to-list \\='org-latex-packages-alist \\='(\"\" \"color\")) |
| 632 | 632 | ||
| 633 | Alternatively, | 633 | Alternatively, |
| 634 | 634 | ||
| 635 | \(setq org-latex-listings \\='minted) | 635 | (setq org-latex-listings \\='minted) |
| 636 | 636 | ||
| 637 | causes source code to be exported using the minted package as | 637 | causes source code to be exported using the minted package as |
| 638 | opposed to listings. If you want to use minted, you need to add | 638 | opposed to listings. If you want to use minted, you need to add |
| 639 | the minted package to `org-latex-packages-alist', for example | 639 | the minted package to `org-latex-packages-alist', for example |
| 640 | using customize, or with | 640 | using customize, or with |
| 641 | 641 | ||
| 642 | \(require \\='ox-latex) | 642 | (require \\='ox-latex) |
| 643 | \(add-to-list \\='org-latex-packages-alist \\='(\"\" \"minted\")) | 643 | (add-to-list \\='org-latex-packages-alist \\='(\"\" \"minted\")) |
| 644 | 644 | ||
| 645 | In addition, it is necessary to install pygments | 645 | In addition, it is necessary to install pygments |
| 646 | \(http://pygments.org), and to configure the variable | 646 | \(http://pygments.org), and to configure the variable |
| @@ -689,9 +689,9 @@ These options are supplied as a comma-separated list to the | |||
| 689 | a list containing two strings: the name of the option, and the | 689 | a list containing two strings: the name of the option, and the |
| 690 | value. For example, | 690 | value. For example, |
| 691 | 691 | ||
| 692 | \(setq org-latex-listings-options | 692 | (setq org-latex-listings-options |
| 693 | '((\"basicstyle\" \"\\\\small\") | 693 | '((\"basicstyle\" \"\\\\small\") |
| 694 | \(\"keywordstyle\" \"\\\\color{black}\\\\bfseries\\\\underbar\"))) | 694 | (\"keywordstyle\" \"\\\\color{black}\\\\bfseries\\\\underbar\"))) |
| 695 | 695 | ||
| 696 | will typeset the code in a small size font with underlined, bold | 696 | will typeset the code in a small size font with underlined, bold |
| 697 | black keywords. | 697 | black keywords. |
| @@ -736,8 +736,8 @@ These options are supplied within square brackets in | |||
| 736 | be a list containing two strings: the name of the option, and the | 736 | be a list containing two strings: the name of the option, and the |
| 737 | value. For example, | 737 | value. For example, |
| 738 | 738 | ||
| 739 | \(setq org-latex-minted-options | 739 | (setq org-latex-minted-options |
| 740 | '\((\"bgcolor\" \"bg\") \(\"frame\" \"lines\"))) | 740 | '((\"bgcolor\" \"bg\") (\"frame\" \"lines\"))) |
| 741 | 741 | ||
| 742 | will result in src blocks being exported with | 742 | will result in src blocks being exported with |
| 743 | 743 | ||
| @@ -757,8 +757,8 @@ options will be applied to blocks of all languages." | |||
| 757 | It is used during export of src blocks by the listings and minted | 757 | It is used during export of src blocks by the listings and minted |
| 758 | latex packages. For example, | 758 | latex packages. For example, |
| 759 | 759 | ||
| 760 | \(setq org-latex-custom-lang-environments | 760 | (setq org-latex-custom-lang-environments |
| 761 | '\(\(python \"pythoncode\"\)\)\) | 761 | '((python \"pythoncode\"))) |
| 762 | 762 | ||
| 763 | would have the effect that if org encounters begin_src python | 763 | would have the effect that if org encounters begin_src python |
| 764 | during latex export it will output | 764 | during latex export it will output |
| @@ -2876,8 +2876,8 @@ Return PDF file name or an error if it couldn't be produced." | |||
| 2876 | ;; Check for process failure. Provide collected errors if | 2876 | ;; Check for process failure. Provide collected errors if |
| 2877 | ;; possible. | 2877 | ;; possible. |
| 2878 | (if (not (file-exists-p pdffile)) | 2878 | (if (not (file-exists-p pdffile)) |
| 2879 | (error (concat (format "PDF file %s wasn't produced" pdffile) | 2879 | (error "PDF file %s wasn't produced%s" pdffile |
| 2880 | (when errors (concat ": " errors)))) | 2880 | (if errors (concat ": " errors) "")) |
| 2881 | ;; Else remove log files, when specified, and signal end of | 2881 | ;; Else remove log files, when specified, and signal end of |
| 2882 | ;; process to user, along with any error encountered. | 2882 | ;; process to user, along with any error encountered. |
| 2883 | (when (and (not snippet) org-latex-remove-logfiles) | 2883 | (when (and (not snippet) org-latex-remove-logfiles) |
diff --git a/lisp/org/ox-man.el b/lisp/org/ox-man.el index 8b4ddc7e651..09ad1866c0e 100644 --- a/lisp/org/ox-man.el +++ b/lisp/org/ox-man.el | |||
| @@ -206,8 +206,8 @@ in this list - but it does not hurt if it is present." | |||
| 206 | It is used during export of src blocks by the listings and | 206 | It is used during export of src blocks by the listings and |
| 207 | man packages. For example, | 207 | man packages. For example, |
| 208 | 208 | ||
| 209 | \(setq org-man-custom-lang-environments | 209 | (setq org-man-custom-lang-environments |
| 210 | '\(\(python \"pythoncode\"\)\)\) | 210 | '((python \"pythoncode\"))) |
| 211 | 211 | ||
| 212 | would have the effect that if org encounters begin_src python | 212 | would have the effect that if org encounters begin_src python |
| 213 | during man export." | 213 | during man export." |
| @@ -1219,8 +1219,8 @@ Return PDF file name or an error if it couldn't be produced." | |||
| 1219 | ;; Check for process failure. Provide collected errors if | 1219 | ;; Check for process failure. Provide collected errors if |
| 1220 | ;; possible. | 1220 | ;; possible. |
| 1221 | (if (not (file-exists-p pdffile)) | 1221 | (if (not (file-exists-p pdffile)) |
| 1222 | (error (concat (format "PDF file %s wasn't produced" pdffile) | 1222 | (error "PDF file %s wasn't produced%s" pdffile |
| 1223 | (when errors (concat ": " errors)))) | 1223 | (if errors (concat ": " errors) "")) |
| 1224 | ;; Else remove log files, when specified, and signal end of | 1224 | ;; Else remove log files, when specified, and signal end of |
| 1225 | ;; process to user, along with any error encountered. | 1225 | ;; process to user, along with any error encountered. |
| 1226 | (when org-man-remove-logfiles | 1226 | (when org-man-remove-logfiles |
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el index a0281420317..9abda33f59d 100644 --- a/lisp/org/ox-odt.el +++ b/lisp/org/ox-odt.el | |||
| @@ -231,13 +231,13 @@ standard Emacs.") | |||
| 231 | (defvar org-odt-automatic-styles '() | 231 | (defvar org-odt-automatic-styles '() |
| 232 | "Registry of automatic styles for various OBJECT-TYPEs. | 232 | "Registry of automatic styles for various OBJECT-TYPEs. |
| 233 | The variable has the following form: | 233 | The variable has the following form: |
| 234 | \(\(OBJECT-TYPE-A | 234 | ((OBJECT-TYPE-A |
| 235 | \(\(OBJECT-NAME-A.1 OBJECT-PROPS-A.1\) | 235 | ((OBJECT-NAME-A.1 OBJECT-PROPS-A.1) |
| 236 | \(OBJECT-NAME-A.2 OBJECT-PROPS-A.2\) ...\)\) | 236 | (OBJECT-NAME-A.2 OBJECT-PROPS-A.2) ...)) |
| 237 | \(OBJECT-TYPE-B | 237 | (OBJECT-TYPE-B |
| 238 | \(\(OBJECT-NAME-B.1 OBJECT-PROPS-B.1\) | 238 | ((OBJECT-NAME-B.1 OBJECT-PROPS-B.1) |
| 239 | \(OBJECT-NAME-B.2 OBJECT-PROPS-B.2\) ...\)\) | 239 | (OBJECT-NAME-B.2 OBJECT-PROPS-B.2) ...)) |
| 240 | ...\). | 240 | ...). |
| 241 | 241 | ||
| 242 | OBJECT-TYPEs could be \"Section\", \"Table\", \"Figure\" etc. | 242 | OBJECT-TYPEs could be \"Section\", \"Table\", \"Figure\" etc. |
| 243 | OBJECT-PROPS is (typically) a plist created by passing | 243 | OBJECT-PROPS is (typically) a plist created by passing |
| @@ -292,7 +292,7 @@ according to the default face identified by the `htmlfontify'.") | |||
| 292 | 292 | ||
| 293 | This is an alist where each element is of the form: | 293 | This is an alist where each element is of the form: |
| 294 | 294 | ||
| 295 | \(STYLE-NAME ATTACH-FMT REF-MODE REF-FMT) | 295 | (STYLE-NAME ATTACH-FMT REF-MODE REF-FMT) |
| 296 | 296 | ||
| 297 | ATTACH-FMT controls how labels and captions are attached to an | 297 | ATTACH-FMT controls how labels and captions are attached to an |
| 298 | entity. It may contain following specifiers - %e and %c. %e is | 298 | entity. It may contain following specifiers - %e and %c. %e is |
| @@ -319,7 +319,7 @@ See also `org-odt-format-label'.") | |||
| 319 | 319 | ||
| 320 | This is a list where each entry is of the form: | 320 | This is a list where each entry is of the form: |
| 321 | 321 | ||
| 322 | \(CATEGORY-HANDLE OD-VARIABLE LABEL-STYLE CATEGORY-NAME ENUMERATOR-PREDICATE) | 322 | (CATEGORY-HANDLE OD-VARIABLE LABEL-STYLE CATEGORY-NAME ENUMERATOR-PREDICATE) |
| 323 | 323 | ||
| 324 | CATEGORY_HANDLE identifies the captionable entity in question. | 324 | CATEGORY_HANDLE identifies the captionable entity in question. |
| 325 | 325 | ||
| @@ -670,11 +670,11 @@ The default value simply returns the value of CONTENTS." | |||
| 670 | "Function to format headline text. | 670 | "Function to format headline text. |
| 671 | 671 | ||
| 672 | This function will be called with 5 arguments: | 672 | This function will be called with 5 arguments: |
| 673 | TODO the todo keyword \(string or nil\). | 673 | TODO the todo keyword (string or nil). |
| 674 | TODO-TYPE the type of todo \(symbol: `todo', `done', nil\) | 674 | TODO-TYPE the type of todo (symbol: `todo', `done', nil) |
| 675 | PRIORITY the priority of the headline \(integer or nil\) | 675 | PRIORITY the priority of the headline (integer or nil) |
| 676 | TEXT the main headline text \(string\). | 676 | TEXT the main headline text (string). |
| 677 | TAGS the tags string, separated with colons \(string or nil\). | 677 | TAGS the tags string, separated with colons (string or nil). |
| 678 | 678 | ||
| 679 | The function result will be used as headline text." | 679 | The function result will be used as headline text." |
| 680 | :group 'org-export-odt | 680 | :group 'org-export-odt |
| @@ -852,11 +852,11 @@ ON-OR-OFF := t | nil | |||
| 852 | For example, with the following configuration | 852 | For example, with the following configuration |
| 853 | 853 | ||
| 854 | \(setq org-odt-table-styles | 854 | \(setq org-odt-table-styles |
| 855 | '\(\(\"TableWithHeaderRowsAndColumns\" \"Custom\" | 855 | '((\"TableWithHeaderRowsAndColumns\" \"Custom\" |
| 856 | \(\(use-first-row-styles . t\) | 856 | ((use-first-row-styles . t) |
| 857 | \(use-first-column-styles . t\)\)\) | 857 | (use-first-column-styles . t))) |
| 858 | \(\"TableWithHeaderColumns\" \"Custom\" | 858 | (\"TableWithHeaderColumns\" \"Custom\" |
| 859 | \(\(use-first-column-styles . t\)\)\)\)\) | 859 | ((use-first-column-styles . t))))) |
| 860 | 860 | ||
| 861 | 1. A table associated with \"TableWithHeaderRowsAndColumns\" | 861 | 1. A table associated with \"TableWithHeaderRowsAndColumns\" |
| 862 | style will use the following table-cell styles - | 862 | style will use the following table-cell styles - |
| @@ -4089,8 +4089,8 @@ contextual information." | |||
| 4089 | nil standard-output nil (cdr cmd))))) | 4089 | nil standard-output nil (cdr cmd))))) |
| 4090 | (or (zerop exitcode) | 4090 | (or (zerop exitcode) |
| 4091 | (error (concat "Unable to create OpenDocument file." | 4091 | (error (concat "Unable to create OpenDocument file." |
| 4092 | (format " Zip failed with error (%s)" | 4092 | " Zip failed with error (%s)") |
| 4093 | err-string))))) | 4093 | err-string))) |
| 4094 | cmds))) | 4094 | cmds))) |
| 4095 | ;; Move the zip file from temporary work directory to | 4095 | ;; Move the zip file from temporary work directory to |
| 4096 | ;; user-mandated location. | 4096 | ;; user-mandated location. |
diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el index 08762fbbfdd..52d925adbf9 100644 --- a/lisp/org/ox-publish.el +++ b/lisp/org/ox-publish.el | |||
| @@ -69,12 +69,12 @@ CDR of each element is in one of the following forms: | |||
| 69 | alternating keys and values, specifying parameters for the | 69 | alternating keys and values, specifying parameters for the |
| 70 | publishing process. | 70 | publishing process. |
| 71 | 71 | ||
| 72 | \(:property value :property value ... ) | 72 | (:property value :property value ... ) |
| 73 | 73 | ||
| 74 | 2. A meta-project definition, specifying of a list of | 74 | 2. A meta-project definition, specifying of a list of |
| 75 | sub-projects: | 75 | sub-projects: |
| 76 | 76 | ||
| 77 | \(:components (\"project-1\" \"project-2\" ...)) | 77 | (:components (\"project-1\" \"project-2\" ...)) |
| 78 | 78 | ||
| 79 | When the CDR of an element of org-publish-project-alist is in | 79 | When the CDR of an element of org-publish-project-alist is in |
| 80 | this second form, the elements of the list after `:components' | 80 | this second form, the elements of the list after `:components' |
diff --git a/lisp/org/ox-texinfo.el b/lisp/org/ox-texinfo.el index d5e650afb79..67daf6f979e 100644 --- a/lisp/org/ox-texinfo.el +++ b/lisp/org/ox-texinfo.el | |||
| @@ -137,9 +137,9 @@ If nil it will default to `buffer-file-coding-system'." | |||
| 137 | If #+TEXINFO_CLASS is set in the buffer, use its value and the | 137 | If #+TEXINFO_CLASS is set in the buffer, use its value and the |
| 138 | associated information. Here is the structure of each cell: | 138 | associated information. Here is the structure of each cell: |
| 139 | 139 | ||
| 140 | \(class-name | 140 | (class-name |
| 141 | header-string | 141 | header-string |
| 142 | \(numbered-section . unnumbered-section) | 142 | (numbered-section . unnumbered-section) |
| 143 | ...) | 143 | ...) |
| 144 | 144 | ||
| 145 | 145 | ||
| @@ -210,14 +210,14 @@ order to reproduce the default set-up: | |||
| 210 | 210 | ||
| 211 | \(defun org-texinfo-format-headline (todo todo-type priority text tags) | 211 | \(defun org-texinfo-format-headline (todo todo-type priority text tags) |
| 212 | \"Default format function for a headline.\" | 212 | \"Default format function for a headline.\" |
| 213 | \(concat (when todo | 213 | (concat (when todo |
| 214 | \(format \"\\\\textbf{\\\\textsc{\\\\textsf{%s}}} \" todo)) | 214 | (format \"\\\\textbf{\\\\textsc{\\\\textsf{%s}}} \" todo)) |
| 215 | \(when priority | 215 | (when priority |
| 216 | \(format \"\\\\framebox{\\\\#%c} \" priority)) | 216 | (format \"\\\\framebox{\\\\#%c} \" priority)) |
| 217 | text | 217 | text |
| 218 | \(when tags | 218 | (when tags |
| 219 | \(format \"\\\\hfill{}\\\\textsc{%s}\" | 219 | (format \"\\\\hfill{}\\\\textsc{%s}\" |
| 220 | \(mapconcat \\='identity tags \":\"))))" | 220 | (mapconcat \\='identity tags \":\"))))" |
| 221 | :group 'org-export-texinfo | 221 | :group 'org-export-texinfo |
| 222 | :type 'function) | 222 | :type 'function) |
| 223 | 223 | ||
| @@ -337,18 +337,18 @@ The function should return the string to be exported. | |||
| 337 | For example, the variable could be set to the following function | 337 | For example, the variable could be set to the following function |
| 338 | in order to mimic default behavior: | 338 | in order to mimic default behavior: |
| 339 | 339 | ||
| 340 | \(defun org-texinfo-format-inlinetask \(todo type priority name tags contents\) | 340 | \(defun org-texinfo-format-inlinetask (todo type priority name tags contents) |
| 341 | \"Format an inline task element for Texinfo export.\" | 341 | \"Format an inline task element for Texinfo export.\" |
| 342 | \(let ((full-title | 342 | (let ((full-title |
| 343 | \(concat | 343 | (concat |
| 344 | \(when todo | 344 | (when todo |
| 345 | \(format \"@strong{%s} \" todo)) | 345 | (format \"@strong{%s} \" todo)) |
| 346 | \(when priority (format \"#%c \" priority)) | 346 | (when priority (format \"#%c \" priority)) |
| 347 | title | 347 | title |
| 348 | \(when tags | 348 | (when tags |
| 349 | \(format \":%s:\" | 349 | (format \":%s:\" |
| 350 | \(mapconcat \\='identity tags \":\"))))) | 350 | (mapconcat \\='identity tags \":\"))))) |
| 351 | \(format (concat \"@center %s\n\n\" | 351 | (format (concat \"@center %s\n\n\" |
| 352 | \"%s\" | 352 | \"%s\" |
| 353 | \"\n\")) | 353 | \"\n\")) |
| 354 | full-title contents))" | 354 | full-title contents))" |
| @@ -1534,8 +1534,8 @@ Return INFO file name or an error if it couldn't be produced." | |||
| 1534 | ;; Check for process failure. Provide collected errors if | 1534 | ;; Check for process failure. Provide collected errors if |
| 1535 | ;; possible. | 1535 | ;; possible. |
| 1536 | (if (not (file-exists-p infofile)) | 1536 | (if (not (file-exists-p infofile)) |
| 1537 | (error (concat (format "INFO file %s wasn't produced" infofile) | 1537 | (error "INFO file %s wasn't produced%s" infofile |
| 1538 | (when errors (concat ": " errors)))) | 1538 | (if errors (concat ": " errors) "")) |
| 1539 | ;; Else remove log files, when specified, and signal end of | 1539 | ;; Else remove log files, when specified, and signal end of |
| 1540 | ;; process to user, along with any error encountered. | 1540 | ;; process to user, along with any error encountered. |
| 1541 | (when org-texinfo-remove-logfiles | 1541 | (when org-texinfo-remove-logfiles |
| @@ -1578,7 +1578,7 @@ none." | |||
| 1578 | (re-search-forward "requires a sectioning" nil t)) | 1578 | (re-search-forward "requires a sectioning" nil t)) |
| 1579 | (setq errors (concat errors " [invalid section command]"))) | 1579 | (setq errors (concat errors " [invalid section command]"))) |
| 1580 | (when (save-excursion | 1580 | (when (save-excursion |
| 1581 | (re-search-forward "\\[unexpected\]" nil t)) | 1581 | (re-search-forward "\\[unexpected\ ]" nil t)) |
| 1582 | (setq errors (concat errors " [unexpected error]"))) | 1582 | (setq errors (concat errors " [unexpected error]"))) |
| 1583 | (when (save-excursion | 1583 | (when (save-excursion |
| 1584 | (re-search-forward "misplaced " nil t)) | 1584 | (re-search-forward "misplaced " nil t)) |
diff --git a/lisp/org/ox.el b/lisp/org/ox.el index 4e3e0ef9376..2fa03866281 100644 --- a/lisp/org/ox.el +++ b/lisp/org/ox.el | |||
| @@ -777,7 +777,7 @@ is nil. You can also allow them through local buffer variables." | |||
| 777 | 777 | ||
| 778 | This variable allows to provide shortcuts for export snippets. | 778 | This variable allows to provide shortcuts for export snippets. |
| 779 | 779 | ||
| 780 | For example, with a value of '\(\(\"h\" . \"html\"\)\), the | 780 | For example, with a value of \((\"h\" . \"html\")), the |
| 781 | HTML back-end will recognize the contents of \"@@h:<b>@@\" as | 781 | HTML back-end will recognize the contents of \"@@h:<b>@@\" as |
| 782 | HTML code while every other back-end will ignore it." | 782 | HTML code while every other back-end will ignore it." |
| 783 | :group 'org-export-general | 783 | :group 'org-export-general |
| @@ -849,7 +849,7 @@ output is restricted to body only, \"s\" when it is restricted to | |||
| 849 | the current subtree, \"v\" when only visible elements are | 849 | the current subtree, \"v\" when only visible elements are |
| 850 | considered for export, \"f\" when publishing functions should be | 850 | considered for export, \"f\" when publishing functions should be |
| 851 | passed the FORCE argument and \"a\" when the export should be | 851 | passed the FORCE argument and \"a\" when the export should be |
| 852 | asynchronous). Also, \[?] allows to switch back to standard | 852 | asynchronous). Also, [?] allows to switch back to standard |
| 853 | mode." | 853 | mode." |
| 854 | :group 'org-export-general | 854 | :group 'org-export-general |
| 855 | :version "24.4" | 855 | :version "24.4" |
| @@ -1095,19 +1095,19 @@ keywords are understood: | |||
| 1095 | or | 1095 | or |
| 1096 | 1096 | ||
| 1097 | (?l \"Export to LaTeX\" | 1097 | (?l \"Export to LaTeX\" |
| 1098 | \(?p \"As PDF file\" org-latex-export-to-pdf) | 1098 | (?p \"As PDF file\" org-latex-export-to-pdf) |
| 1099 | \(?o \"As PDF file and open\" | 1099 | (?o \"As PDF file and open\" |
| 1100 | \(lambda (a s v b) | 1100 | (lambda (a s v b) |
| 1101 | \(if a (org-latex-export-to-pdf t s v b) | 1101 | (if a (org-latex-export-to-pdf t s v b) |
| 1102 | \(org-open-file | 1102 | (org-open-file |
| 1103 | \(org-latex-export-to-pdf nil s v b))))))) | 1103 | (org-latex-export-to-pdf nil s v b))))))) |
| 1104 | 1104 | ||
| 1105 | or the following, which will be added to the previous | 1105 | or the following, which will be added to the previous |
| 1106 | sub-menu, | 1106 | sub-menu, |
| 1107 | 1107 | ||
| 1108 | (?l 1 | 1108 | (?l 1 |
| 1109 | \((?B \"As TEX buffer (Beamer)\" org-beamer-export-as-latex) | 1109 | ((?B \"As TEX buffer (Beamer)\" org-beamer-export-as-latex) |
| 1110 | \(?P \"As PDF file (Beamer)\" org-beamer-export-to-pdf))) | 1110 | (?P \"As PDF file (Beamer)\" org-beamer-export-to-pdf))) |
| 1111 | 1111 | ||
| 1112 | :options-alist | 1112 | :options-alist |
| 1113 | 1113 | ||
| @@ -1180,12 +1180,12 @@ keywords are understood: | |||
| 1180 | As an example, here is how one could define \"my-latex\" back-end | 1180 | As an example, here is how one could define \"my-latex\" back-end |
| 1181 | as a variant of `latex' back-end with a custom template function: | 1181 | as a variant of `latex' back-end with a custom template function: |
| 1182 | 1182 | ||
| 1183 | \(org-export-define-derived-backend \\='my-latex \\='latex | 1183 | (org-export-define-derived-backend \\='my-latex \\='latex |
| 1184 | :translate-alist \\='((template . my-latex-template-fun))) | 1184 | :translate-alist \\='((template . my-latex-template-fun))) |
| 1185 | 1185 | ||
| 1186 | The back-end could then be called with, for example: | 1186 | The back-end could then be called with, for example: |
| 1187 | 1187 | ||
| 1188 | \(org-export-to-buffer \\='my-latex \"*Test my-latex*\")" | 1188 | (org-export-to-buffer \\='my-latex \"*Test my-latex*\")" |
| 1189 | (declare (indent 2)) | 1189 | (declare (indent 2)) |
| 1190 | (let (blocks filters menu-entry options transcoders contents) | 1190 | (let (blocks filters menu-entry options transcoders contents) |
| 1191 | (while (keywordp (car body)) | 1191 | (while (keywordp (car body)) |
| @@ -1962,7 +1962,7 @@ DATA is the parse tree. OPTIONS is the plist holding export | |||
| 1962 | options. | 1962 | options. |
| 1963 | 1963 | ||
| 1964 | Return an alist whose key is a headline and value is its | 1964 | Return an alist whose key is a headline and value is its |
| 1965 | associated numbering \(in the shape of a list of numbers\) or nil | 1965 | associated numbering \(in the shape of a list of numbers) or nil |
| 1966 | for a footnotes section." | 1966 | for a footnotes section." |
| 1967 | (let ((numbering (make-vector org-export-max-depth 0))) | 1967 | (let ((numbering (make-vector org-export-max-depth 0))) |
| 1968 | (org-element-map data 'headline | 1968 | (org-element-map data 'headline |
| @@ -3314,7 +3314,7 @@ lines, include only those lines. | |||
| 3314 | Optional argument IND, when non-nil, is an integer specifying the | 3314 | Optional argument IND, when non-nil, is an integer specifying the |
| 3315 | global indentation of returned contents. Since its purpose is to | 3315 | global indentation of returned contents. Since its purpose is to |
| 3316 | allow an included file to stay in the same environment it was | 3316 | allow an included file to stay in the same environment it was |
| 3317 | created \(i.e. a list item), it doesn't apply past the first | 3317 | created \(i.e., a list item), it doesn't apply past the first |
| 3318 | headline encountered. | 3318 | headline encountered. |
| 3319 | 3319 | ||
| 3320 | Optional argument MINLEVEL, when non-nil, is an integer | 3320 | Optional argument MINLEVEL, when non-nil, is an integer |
| @@ -3893,7 +3893,7 @@ PATH is the link path. DESC is its description." | |||
| 3893 | Optional argument is a set of RULES defining inline images. It | 3893 | Optional argument is a set of RULES defining inline images. It |
| 3894 | is an alist where associations have the following shape: | 3894 | is an alist where associations have the following shape: |
| 3895 | 3895 | ||
| 3896 | \(TYPE . REGEXP) | 3896 | (TYPE . REGEXP) |
| 3897 | 3897 | ||
| 3898 | Applying a rule means apply REGEXP against LINK's path when its | 3898 | Applying a rule means apply REGEXP against LINK's path when its |
| 3899 | type is TYPE. The function will return a non-nil value if any of | 3899 | type is TYPE. The function will return a non-nil value if any of |
| @@ -3952,7 +3952,7 @@ Return value can be an object, an element, or nil: | |||
| 3952 | - If LINK path matches a target object (i.e. <<path>>) return it. | 3952 | - If LINK path matches a target object (i.e. <<path>>) return it. |
| 3953 | 3953 | ||
| 3954 | - If LINK path exactly matches the name affiliated keyword | 3954 | - If LINK path exactly matches the name affiliated keyword |
| 3955 | \(i.e. #+NAME: path) of an element, return that element. | 3955 | (i.e. #+NAME: path) of an element, return that element. |
| 3956 | 3956 | ||
| 3957 | - If LINK path exactly matches any headline name, return that | 3957 | - If LINK path exactly matches any headline name, return that |
| 3958 | element. If more than one headline share that name, priority | 3958 | element. If more than one headline share that name, priority |
| @@ -5586,10 +5586,10 @@ no argument. It is always called within the current process, | |||
| 5586 | from BUFFER, with point at its beginning. Export back-ends can | 5586 | from BUFFER, with point at its beginning. Export back-ends can |
| 5587 | use it to set a major mode there, e.g, | 5587 | use it to set a major mode there, e.g, |
| 5588 | 5588 | ||
| 5589 | \(defun org-latex-export-as-latex | 5589 | (defun org-latex-export-as-latex |
| 5590 | \(&optional async subtreep visible-only body-only ext-plist) | 5590 | (&optional async subtreep visible-only body-only ext-plist) |
| 5591 | \(interactive) | 5591 | (interactive) |
| 5592 | \(org-export-to-buffer \\='latex \"*Org LATEX Export*\" | 5592 | (org-export-to-buffer \\='latex \"*Org LATEX Export*\" |
| 5593 | async subtreep visible-only body-only ext-plist (lambda () (LaTeX-mode)))) | 5593 | async subtreep visible-only body-only ext-plist (lambda () (LaTeX-mode)))) |
| 5594 | 5594 | ||
| 5595 | This function returns BUFFER." | 5595 | This function returns BUFFER." |
| @@ -5646,13 +5646,13 @@ argument and happens asynchronously when ASYNC is non-nil. It | |||
| 5646 | has to return a file name, or nil. Export back-ends can use this | 5646 | has to return a file name, or nil. Export back-ends can use this |
| 5647 | to send the output file through additional processing, e.g, | 5647 | to send the output file through additional processing, e.g, |
| 5648 | 5648 | ||
| 5649 | \(defun org-latex-export-to-latex | 5649 | (defun org-latex-export-to-latex |
| 5650 | \(&optional async subtreep visible-only body-only ext-plist) | 5650 | (&optional async subtreep visible-only body-only ext-plist) |
| 5651 | \(interactive) | 5651 | (interactive) |
| 5652 | \(let ((outfile (org-export-output-file-name \".tex\" subtreep))) | 5652 | (let ((outfile (org-export-output-file-name \".tex\" subtreep))) |
| 5653 | \(org-export-to-file \\='latex outfile | 5653 | (org-export-to-file \\='latex outfile |
| 5654 | async subtreep visible-only body-only ext-plist | 5654 | async subtreep visible-only body-only ext-plist |
| 5655 | \(lambda (file) (org-latex-compile file))) | 5655 | (lambda (file) (org-latex-compile file))) |
| 5656 | 5656 | ||
| 5657 | The function returns either a file name returned by POST-PROCESS, | 5657 | The function returns either a file name returned by POST-PROCESS, |
| 5658 | or FILE." | 5658 | or FILE." |
| @@ -5985,7 +5985,7 @@ is nil when this menu hasn't been selected yet. | |||
| 5985 | 5985 | ||
| 5986 | EXPERTP, when non-nil, triggers expert UI. In that case, no help | 5986 | EXPERTP, when non-nil, triggers expert UI. In that case, no help |
| 5987 | buffer is provided, but indications about currently active | 5987 | buffer is provided, but indications about currently active |
| 5988 | options are given in the prompt. Moreover, \[?] allows to switch | 5988 | options are given in the prompt. Moreover, [?] allows to switch |
| 5989 | back to standard interface." | 5989 | back to standard interface." |
| 5990 | (let* ((fontify-key | 5990 | (let* ((fontify-key |
| 5991 | (lambda (key &optional access-key) | 5991 | (lambda (key &optional access-key) |
| @@ -6037,8 +6037,8 @@ back to standard interface." | |||
| 6037 | (concat | 6037 | (concat |
| 6038 | ;; Options are hard-coded. | 6038 | ;; Options are hard-coded. |
| 6039 | (format "[%s] Body only: %s [%s] Visible only: %s | 6039 | (format "[%s] Body only: %s [%s] Visible only: %s |
| 6040 | \[%s] Export scope: %s [%s] Force publishing: %s | 6040 | [%s] Export scope: %s [%s] Force publishing: %s |
| 6041 | \[%s] Async export: %s\n\n" | 6041 | [%s] Async export: %s\n\n" |
| 6042 | (funcall fontify-key "C-b" t) | 6042 | (funcall fontify-key "C-b" t) |
| 6043 | (funcall fontify-value | 6043 | (funcall fontify-value |
| 6044 | (if (memq 'body options) "On " "Off")) | 6044 | (if (memq 'body options) "On " "Off")) |
diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index 3da7267ca8e..3c9d87fa81e 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el | |||
| @@ -989,7 +989,7 @@ Otherwise call the Doctor to parse preceding sentence." | |||
| 989 | Put dialogue in buffer." | 989 | Put dialogue in buffer." |
| 990 | (let (a | 990 | (let (a |
| 991 | (prompt (concat (doctor-make-string x) | 991 | (prompt (concat (doctor-make-string x) |
| 992 | " what \? ")) | 992 | " what ? ")) |
| 993 | retval) | 993 | retval) |
| 994 | (while (not retval) | 994 | (while (not retval) |
| 995 | (while (not a) | 995 | (while (not a) |
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el index 2c68c40d893..a07a24d5195 100644 --- a/lisp/play/gametree.el +++ b/lisp/play/gametree.el | |||
| @@ -324,7 +324,7 @@ This value is simply the outline heading level of the current line." | |||
| 324 | (defun gametree-hack-file-layout () | 324 | (defun gametree-hack-file-layout () |
| 325 | (save-excursion | 325 | (save-excursion |
| 326 | (goto-char (point-min)) | 326 | (goto-char (point-min)) |
| 327 | (if (looking-at "[^\n]*-\*-[^\n]*gametree-local-layout: \\([^;\n]*\\);") | 327 | (if (looking-at "[^\n]*-*-[^\n]*gametree-local-layout: \\([^;\n]*\\);") |
| 328 | (progn | 328 | (progn |
| 329 | (goto-char (match-beginning 1)) | 329 | (goto-char (match-beginning 1)) |
| 330 | (delete-region (point) (match-end 1)) | 330 | (delete-region (point) (match-end 1)) |
diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el index 586d1d5d462..0f3b7586153 100644 --- a/lisp/play/tetris.el +++ b/lisp/play/tetris.el | |||
| @@ -265,7 +265,7 @@ each one of its four blocks.") | |||
| 265 | (define-key map [left] 'tetris-move-left) | 265 | (define-key map [left] 'tetris-move-left) |
| 266 | (define-key map [right] 'tetris-move-right) | 266 | (define-key map [right] 'tetris-move-right) |
| 267 | (define-key map [up] 'tetris-rotate-prev) | 267 | (define-key map [up] 'tetris-rotate-prev) |
| 268 | (define-key map [down] 'tetris-rotate-next) | 268 | (define-key map [down] 'tetris-move-down) |
| 269 | map)) | 269 | map)) |
| 270 | 270 | ||
| 271 | (defvar tetris-null-map | 271 | (defvar tetris-null-map |
| @@ -524,6 +524,16 @@ Drops the shape one square, testing for collision." | |||
| 524 | (setq tetris-pos-x (1- tetris-pos-x))) | 524 | (setq tetris-pos-x (1- tetris-pos-x))) |
| 525 | (tetris-draw-shape))) | 525 | (tetris-draw-shape))) |
| 526 | 526 | ||
| 527 | (defun tetris-move-down () | ||
| 528 | "Move the shape one square to the bottom." | ||
| 529 | (interactive) | ||
| 530 | (unless tetris-paused | ||
| 531 | (tetris-erase-shape) | ||
| 532 | (setq tetris-pos-y (1+ tetris-pos-y)) | ||
| 533 | (if (tetris-test-shape) | ||
| 534 | (setq tetris-pos-y (1- tetris-pos-y))) | ||
| 535 | (tetris-draw-shape))) | ||
| 536 | |||
| 527 | (defun tetris-rotate-prev () | 537 | (defun tetris-rotate-prev () |
| 528 | "Rotate the shape clockwise." | 538 | "Rotate the shape clockwise." |
| 529 | (interactive) | 539 | (interactive) |
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el index 452f3b99742..529b691ee79 100644 --- a/lisp/progmodes/ada-mode.el +++ b/lisp/progmodes/ada-mode.el | |||
| @@ -2682,7 +2682,7 @@ if INITIAL-POS is non-nil, moves point to INITIAL-POS before calculation." | |||
| 2682 | ;; "then" has to be included in the case of "select...then abort" | 2682 | ;; "then" has to be included in the case of "select...then abort" |
| 2683 | ;; statements, since (goto-stmt-start) at the beginning of | 2683 | ;; statements, since (goto-stmt-start) at the beginning of |
| 2684 | ;; the current function would leave the cursor on that position | 2684 | ;; the current function would leave the cursor on that position |
| 2685 | ((looking-at "\\(\\(els\\)?if\\>\\)\\|then abort\\\>") | 2685 | ((looking-at "\\(\\(els\\)?if\\>\\)\\|then abort\\>") |
| 2686 | (ada-get-indent-if orgpoint)) | 2686 | (ada-get-indent-if orgpoint)) |
| 2687 | ;; | 2687 | ;; |
| 2688 | ((looking-at "case\\>") | 2688 | ((looking-at "case\\>") |
| @@ -5290,7 +5290,7 @@ for `ada-procedure-start-regexp'." | |||
| 5290 | (setq functype (buffer-substring (point) | 5290 | (setq functype (buffer-substring (point) |
| 5291 | (progn | 5291 | (progn |
| 5292 | (skip-chars-forward | 5292 | (skip-chars-forward |
| 5293 | "a-zA-Z0-9_\.") | 5293 | "a-zA-Z0-9_.") |
| 5294 | (point)))))) | 5294 | (point)))))) |
| 5295 | ;; look for next non WS | 5295 | ;; look for next non WS |
| 5296 | (cond | 5296 | (cond |
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el index 816de12cbdb..0ea33c16878 100644 --- a/lisp/progmodes/ada-xref.el +++ b/lisp/progmodes/ada-xref.el | |||
| @@ -420,7 +420,7 @@ As a special case, ${current} is replaced with the name of the current | |||
| 420 | file, minus extension but with directory, and ${full_current} is | 420 | file, minus extension but with directory, and ${full_current} is |
| 421 | replaced by the name including the extension." | 421 | replaced by the name including the extension." |
| 422 | 422 | ||
| 423 | (while (string-match "\\(-[^-\$IO]*[IO]\\)?\${\\([^}]+\\)}" cmd-string) | 423 | (while (string-match "\\(-[^-$IO]*[IO]\\)?${\\([^}]+\\)}" cmd-string) |
| 424 | (let (value | 424 | (let (value |
| 425 | (name (match-string 2 cmd-string))) | 425 | (name (match-string 2 cmd-string))) |
| 426 | (cond | 426 | (cond |
| @@ -1724,7 +1724,7 @@ Information is extracted from the ali file." | |||
| 1724 | (concat "^" (ada-line-of identlist) | 1724 | (concat "^" (ada-line-of identlist) |
| 1725 | "." (ada-column-of identlist) | 1725 | "." (ada-column-of identlist) |
| 1726 | "[ *]" (ada-name-of identlist) | 1726 | "[ *]" (ada-name-of identlist) |
| 1727 | "[{\[\(<= ]?\\(.*\\)$") bound t)) | 1727 | "[{[(<= ]?\\(.*\\)$") bound t)) |
| 1728 | (if declaration-found | 1728 | (if declaration-found |
| 1729 | (ada-set-on-declaration identlist t)) | 1729 | (ada-set-on-declaration identlist t)) |
| 1730 | )) | 1730 | )) |
| @@ -1756,7 +1756,7 @@ Information is extracted from the ali file." | |||
| 1756 | (concat | 1756 | (concat |
| 1757 | "^[0-9]+.[0-9]+[ *]" | 1757 | "^[0-9]+.[0-9]+[ *]" |
| 1758 | (ada-name-of identlist) | 1758 | (ada-name-of identlist) |
| 1759 | "[ <{=\(\[]\\(.\\|\n\\.\\)*\\<" | 1759 | "[ <{=([]\\(.\\|\n\\.\\)*\\<" |
| 1760 | (ada-line-of identlist) | 1760 | (ada-line-of identlist) |
| 1761 | "[^0-9]" | 1761 | "[^0-9]" |
| 1762 | (ada-column-of identlist) "\\>") | 1762 | (ada-column-of identlist) "\\>") |
| @@ -1779,7 +1779,7 @@ Information is extracted from the ali file." | |||
| 1779 | (forward-line -1) | 1779 | (forward-line -1) |
| 1780 | (beginning-of-line)) | 1780 | (beginning-of-line)) |
| 1781 | (unless (looking-at (concat "[0-9]+.[0-9]+[ *]" | 1781 | (unless (looking-at (concat "[0-9]+.[0-9]+[ *]" |
| 1782 | (ada-name-of identlist) "[ <{=\(\[]")) | 1782 | (ada-name-of identlist) "[ <{=([]")) |
| 1783 | (setq declaration-found nil)))) | 1783 | (setq declaration-found nil)))) |
| 1784 | 1784 | ||
| 1785 | ;; Still no success ! The ali file must be too old, and we need to | 1785 | ;; Still no success ! The ali file must be too old, and we need to |
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el index d59948e6447..9cac400c27b 100644 --- a/lisp/progmodes/antlr-mode.el +++ b/lisp/progmodes/antlr-mode.el | |||
| @@ -171,7 +171,7 @@ | |||
| 171 | (let ((buffer-undo-list t) (inhibit-read-only t) | 171 | (let ((buffer-undo-list t) (inhibit-read-only t) |
| 172 | ,@(unless (featurep 'xemacs) | 172 | ,@(unless (featurep 'xemacs) |
| 173 | '((inhibit-point-motion-hooks t) deactivate-mark)) | 173 | '((inhibit-point-motion-hooks t) deactivate-mark)) |
| 174 | before-change-functions after-change-functions | 174 | (inhibit-modification-hooks t) |
| 175 | buffer-file-name buffer-file-truename) | 175 | buffer-file-name buffer-file-truename) |
| 176 | ,@body) | 176 | ,@body) |
| 177 | (and (not ,modified) (buffer-modified-p) | 177 | (and (not ,modified) (buffer-modified-p) |
| @@ -225,7 +225,7 @@ variable list\" near the end of the file, see | |||
| 225 | (c++-mode "C++" "\"Cpp\"" "Cpp")) | 225 | (c++-mode "C++" "\"Cpp\"" "Cpp")) |
| 226 | "List of ANTLR's supported languages. | 226 | "List of ANTLR's supported languages. |
| 227 | Each element in this list looks like | 227 | Each element in this list looks like |
| 228 | \(MAJOR-MODE MODELINE-STRING OPTION-VALUE...) | 228 | (MAJOR-MODE MODELINE-STRING OPTION-VALUE...) |
| 229 | 229 | ||
| 230 | MAJOR-MODE, the major mode of the code in the grammar's actions, is the | 230 | MAJOR-MODE, the major mode of the code in the grammar's actions, is the |
| 231 | value of `antlr-language' if the first group in the string matched by | 231 | value of `antlr-language' if the first group in the string matched by |
| @@ -243,7 +243,7 @@ also displayed in the mode line next to \"Antlr\"." | |||
| 243 | (defcustom antlr-language-limit-n-regexp | 243 | (defcustom antlr-language-limit-n-regexp |
| 244 | '(8192 . "language[ \t]*=[ \t]*\\(\"?[A-Z][A-Za-z_]*\"?\\)") | 244 | '(8192 . "language[ \t]*=[ \t]*\\(\"?[A-Z][A-Za-z_]*\"?\\)") |
| 245 | "Used to set a reasonable value for `antlr-language'. | 245 | "Used to set a reasonable value for `antlr-language'. |
| 246 | Looks like \(LIMIT \. REGEXP). Search for REGEXP from the beginning of | 246 | Looks like \(LIMIT . REGEXP). Search for REGEXP from the beginning of |
| 247 | the buffer to LIMIT and use the first group in the matched string to set | 247 | the buffer to LIMIT and use the first group in the matched string to set |
| 248 | the language according to `antlr-language-alist'." | 248 | the language according to `antlr-language-alist'." |
| 249 | :group 'antlr | 249 | :group 'antlr |
| @@ -620,7 +620,7 @@ COUNT starts with 1. GEN-SEP is used to separate long variable values." | |||
| 620 | (c++-mode ("%sTokenTypes.hpp") ("%s.cpp" "%s.hpp"))) | 620 | (c++-mode ("%sTokenTypes.hpp") ("%s.cpp" "%s.hpp"))) |
| 621 | "Language dependent formats which specify generated files. | 621 | "Language dependent formats which specify generated files. |
| 622 | Each element in this list looks looks like | 622 | Each element in this list looks looks like |
| 623 | \(MAJOR-MODE (VOCAB-FILE-FORMAT...) (CLASS-FILE-FORMAT...)). | 623 | (MAJOR-MODE (VOCAB-FILE-FORMAT...) (CLASS-FILE-FORMAT...)). |
| 624 | 624 | ||
| 625 | The element whose MAJOR-MODE is equal to `antlr-language' is used to | 625 | The element whose MAJOR-MODE is equal to `antlr-language' is used to |
| 626 | specify the generated files which are language dependent. See variable | 626 | specify the generated files which are language dependent. See variable |
| @@ -779,7 +779,7 @@ fontification, see `antlr-font-lock-keywords-alist'. | |||
| 779 | 779 | ||
| 780 | While calculating the decoration level for actions, `major-mode' is | 780 | While calculating the decoration level for actions, `major-mode' is |
| 781 | bound to `antlr-language'. For example, with value | 781 | bound to `antlr-language'. For example, with value |
| 782 | \((java-mode \. 2) (c++-mode \. 0)) | 782 | ((java-mode . 2) (c++-mode . 0)) |
| 783 | Java actions are fontified with level 2 and C++ actions are not | 783 | Java actions are fontified with level 2 and C++ actions are not |
| 784 | fontified at all." | 784 | fontified at all." |
| 785 | :group 'antlr | 785 | :group 'antlr |
| @@ -817,7 +817,7 @@ Do not change the value of this constant.") | |||
| 817 | c++-font-lock-keywords-3)) | 817 | c++-font-lock-keywords-3)) |
| 818 | "List of font-lock keywords for actions in the grammar. | 818 | "List of font-lock keywords for actions in the grammar. |
| 819 | Each element in this list looks like | 819 | Each element in this list looks like |
| 820 | \(MAJOR-MODE KEYWORD...) | 820 | (MAJOR-MODE KEYWORD...) |
| 821 | 821 | ||
| 822 | If `antlr-language' is equal to MAJOR-MODE, the KEYWORDs are the | 822 | If `antlr-language' is equal to MAJOR-MODE, the KEYWORDs are the |
| 823 | font-lock keywords according to `font-lock-defaults' used for the code | 823 | font-lock keywords according to `font-lock-defaults' used for the code |
| @@ -1570,8 +1570,8 @@ Inserting an option with this command works as follows: | |||
| 1570 | 4. Ask user for confirmation if the given OPTION does not seem to be a | 1570 | 4. Ask user for confirmation if the given OPTION does not seem to be a |
| 1571 | valid option to insert into the current file. | 1571 | valid option to insert into the current file. |
| 1572 | 5. Find a correct position to insert the option. | 1572 | 5. Find a correct position to insert the option. |
| 1573 | 6. Depending on the option, insert it the following way \(inserting an | 1573 | 6. Depending on the option, insert it the following way (inserting an |
| 1574 | option also means inserting the option section if necessary\): | 1574 | option also means inserting the option section if necessary): |
| 1575 | - Insert the option and let user insert the value at point. | 1575 | - Insert the option and let user insert the value at point. |
| 1576 | - Read a value (with completion) from the minibuffer, using a | 1576 | - Read a value (with completion) from the minibuffer, using a |
| 1577 | previous value as initial contents, and insert option with value. | 1577 | previous value as initial contents, and insert option with value. |
| @@ -1687,9 +1687,9 @@ Return \(LEVEL OPTION LOCATION)." | |||
| 1687 | (defun antlr-option-kind (requested) | 1687 | (defun antlr-option-kind (requested) |
| 1688 | "Return level and location for option to insert near point. | 1688 | "Return level and location for option to insert near point. |
| 1689 | Call function `antlr-option-level' with argument REQUESTED. If the | 1689 | Call function `antlr-option-level' with argument REQUESTED. If the |
| 1690 | result is nil, return \(REQUESTED \. error). If the result has the | 1690 | result is nil, return \(REQUESTED . error). If the result has the |
| 1691 | non-nil value LEVEL, return \(LEVEL \. LOCATION) where LOCATION looks | 1691 | non-nil value LEVEL, return \(LEVEL . LOCATION) where LOCATION looks |
| 1692 | like \(AREA \. PLACE), see `antlr-option-location'." | 1692 | like \(AREA . PLACE), see `antlr-option-location'." |
| 1693 | (save-excursion | 1693 | (save-excursion |
| 1694 | (save-restriction | 1694 | (save-restriction |
| 1695 | (let ((min0 (point-min)) ; before `widen'! | 1695 | (let ((min0 (point-min)) ; before `widen'! |
| @@ -1845,7 +1845,7 @@ WARNING: this may alter `match-data'." | |||
| 1845 | (defun antlr-insert-option-do (level option old area pos) | 1845 | (defun antlr-insert-option-do (level option old area pos) |
| 1846 | "Insert option into buffer at position POS. | 1846 | "Insert option into buffer at position POS. |
| 1847 | Insert option of level LEVEL and name OPTION. If OLD is non-nil, an | 1847 | Insert option of level LEVEL and name OPTION. If OLD is non-nil, an |
| 1848 | options area is already exists. If OLD looks like \(BEG \. END), the | 1848 | options area is already exists. If OLD looks like \(BEG . END), the |
| 1849 | option already exists. Then, BEG is the start position of the option | 1849 | option already exists. Then, BEG is the start position of the option |
| 1850 | value, the position of the `=' or nil, and END is the end position of | 1850 | value, the position of the `=' or nil, and END is the end position of |
| 1851 | the option value or nil. | 1851 | the option value or nil. |
| @@ -2104,7 +2104,7 @@ Called in PHASE `before-input', see `antlr-options-alists'." | |||
| 2104 | 2104 | ||
| 2105 | (defun antlr-file-dependencies () | 2105 | (defun antlr-file-dependencies () |
| 2106 | "Return dependencies for grammar in current buffer. | 2106 | "Return dependencies for grammar in current buffer. |
| 2107 | The result looks like \(FILE \(CLASSES \. SUPERS) VOCABS \. LANGUAGE) | 2107 | The result looks like \(FILE \(CLASSES . SUPERS) VOCABS . LANGUAGE) |
| 2108 | where CLASSES = ((CLASS . CLASS-EVOCAB) ...), | 2108 | where CLASSES = ((CLASS . CLASS-EVOCAB) ...), |
| 2109 | SUPERS = ((SUPER . USE-EVOCAB-P) ...), and | 2109 | SUPERS = ((SUPER . USE-EVOCAB-P) ...), and |
| 2110 | VOCABS = ((EVOCAB ...) . (IVOCAB ...)) | 2110 | VOCABS = ((EVOCAB ...) . (IVOCAB ...)) |
| @@ -2168,8 +2168,8 @@ its export vocabulary is used as an import vocabulary." | |||
| 2168 | 2168 | ||
| 2169 | (defun antlr-directory-dependencies (dirname) | 2169 | (defun antlr-directory-dependencies (dirname) |
| 2170 | "Return dependencies for all grammar files in directory DIRNAME. | 2170 | "Return dependencies for all grammar files in directory DIRNAME. |
| 2171 | The result looks like \((CLASS-SPEC ...) \. \(FILE-DEP ...)) | 2171 | The result looks like \((CLASS-SPEC ...) . \(FILE-DEP ...)) |
| 2172 | where CLASS-SPEC = (CLASS (FILE \. EVOCAB) ...). | 2172 | where CLASS-SPEC = (CLASS (FILE . EVOCAB) ...). |
| 2173 | 2173 | ||
| 2174 | FILE-DEP are the dependencies for each grammar file in DIRNAME, see | 2174 | FILE-DEP are the dependencies for each grammar file in DIRNAME, see |
| 2175 | `antlr-file-dependencies'. For each grammar class CLASS, FILE is a | 2175 | `antlr-file-dependencies'. For each grammar class CLASS, FILE is a |
| @@ -2220,7 +2220,7 @@ The result looks like \(OPTION WITH-UNKNOWN GLIB ...). OPTION is the | |||
| 2220 | complete \"-glib\" option. WITH-UNKNOWN is t if there is none or more | 2220 | complete \"-glib\" option. WITH-UNKNOWN is t if there is none or more |
| 2221 | than one grammar file for at least one super grammar. | 2221 | than one grammar file for at least one super grammar. |
| 2222 | 2222 | ||
| 2223 | Each GLIB looks like \(GRAMMAR-FILE \. EVOCAB). GRAMMAR-FILE is a file | 2223 | Each GLIB looks like \(GRAMMAR-FILE . EVOCAB). GRAMMAR-FILE is a file |
| 2224 | in which a super-grammar is defined. EVOCAB is the value of the export | 2224 | in which a super-grammar is defined. EVOCAB is the value of the export |
| 2225 | vocabulary of the super-grammar or nil if it is not needed." | 2225 | vocabulary of the super-grammar or nil if it is not needed." |
| 2226 | ;; If the superclass is defined in the same file, that file will be included | 2226 | ;; If the superclass is defined in the same file, that file will be included |
diff --git a/lisp/progmodes/cc-align.el b/lisp/progmodes/cc-align.el index b0c4a6425bf..1e3cb8e16f9 100644 --- a/lisp/progmodes/cc-align.el +++ b/lisp/progmodes/cc-align.el | |||
| @@ -1075,7 +1075,7 @@ Works with: brace-list-entry, brace-entry-open, statement, | |||
| 1075 | arglist-cont." | 1075 | arglist-cont." |
| 1076 | (save-excursion | 1076 | (save-excursion |
| 1077 | (goto-char (c-langelem-pos langelem)) | 1077 | (goto-char (c-langelem-pos langelem)) |
| 1078 | (when (looking-at "\\s\(") | 1078 | (when (looking-at "\\s(") |
| 1079 | (if (c-go-up-list-backward) | 1079 | (if (c-go-up-list-backward) |
| 1080 | (let ((pos (point))) | 1080 | (let ((pos (point))) |
| 1081 | (back-to-indentation) | 1081 | (back-to-indentation) |
| @@ -1093,24 +1093,24 @@ v beg of preceding constr v beg of preceding constr | |||
| 1093 | const char msg[] = if (!running) | 1093 | const char msg[] = if (!running) |
| 1094 | \"Some text.\"; error(\"Not running!\"); | 1094 | \"Some text.\"; error(\"Not running!\"); |
| 1095 | 1095 | ||
| 1096 | #define X(A, B) \ #define X(A, B) \ | 1096 | #define X(A, B) \\ #define X(A, B) \\ |
| 1097 | do { \ <-> do { \ <- c-lineup-cpp-define | 1097 | do { \\ <-> do { \\ <- c-lineup-cpp-define |
| 1098 | printf (A, B); \ printf (A, B); \ | 1098 | printf (A, B); \\ printf (A, B); \\ |
| 1099 | } while (0) } while (0) | 1099 | } while (0) } while (0) |
| 1100 | 1100 | ||
| 1101 | If `c-syntactic-indentation-in-macros' is non-nil, the function | 1101 | If `c-syntactic-indentation-in-macros' is non-nil, the function |
| 1102 | returns the relative indentation to the macro start line to allow | 1102 | returns the relative indentation to the macro start line to allow |
| 1103 | accumulation with other offsets. E.g. in the following cases, | 1103 | accumulation with other offsets. E.g. in the following cases, |
| 1104 | cpp-define-intro is combined with the statement-block-intro that comes | 1104 | cpp-define-intro is combined with the statement-block-intro that comes |
| 1105 | from the \"do {\" that hangs on the \"#define\" line: | 1105 | from the `do {' that hangs on the `#define' line: |
| 1106 | 1106 | ||
| 1107 | int dribble() { | 1107 | int dribble() { |
| 1108 | const char msg[] = if (!running) | 1108 | const char msg[] = if (!running) |
| 1109 | \"Some text.\"; error(\"Not running!\"); | 1109 | \"Some text.\"; error(\"Not running!\"); |
| 1110 | 1110 | ||
| 1111 | #define X(A, B) do { \ #define X(A, B) do { \ | 1111 | #define X(A, B) do { \\ #define X(A, B) do { \\ |
| 1112 | printf (A, B); \ <-> printf (A, B); \ <- c-lineup-cpp-define | 1112 | printf (A, B); \\ <-> printf (A, B); \\ <- c-lineup-cpp-define |
| 1113 | this->refs++; \ this->refs++; \ | 1113 | this->refs++; \\ this->refs++; \\ |
| 1114 | } while (0) <-> } while (0) <- c-lineup-cpp-define | 1114 | } while (0) <-> } while (0) <- c-lineup-cpp-define |
| 1115 | 1115 | ||
| 1116 | The relative indentation returned by `c-lineup-cpp-define' is zero and | 1116 | The relative indentation returned by `c-lineup-cpp-define' is zero and |
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el index 337fdc800b1..077a18cc597 100644 --- a/lisp/progmodes/cc-awk.el +++ b/lisp/progmodes/cc-awk.el | |||
| @@ -215,7 +215,7 @@ | |||
| 215 | (defconst c-awk-neutrals*-re | 215 | (defconst c-awk-neutrals*-re |
| 216 | (concat "\\(" c-awk-neutral-re "\\)*")) | 216 | (concat "\\(" c-awk-neutral-re "\\)*")) |
| 217 | ;; A (possibly empty) string of neutral characters (or character pairs). | 217 | ;; A (possibly empty) string of neutral characters (or character pairs). |
| 218 | (defconst c-awk-var-num-ket-re "[]\)0-9a-zA-Z_$.\x80-\xff]+") | 218 | (defconst c-awk-var-num-ket-re "[])0-9a-zA-Z_$.\x80-\xff]+") |
| 219 | ;; Matches a char which is a constituent of a variable or number, or a ket | 219 | ;; Matches a char which is a constituent of a variable or number, or a ket |
| 220 | ;; (i.e. closing bracKET), round or square. Assume that all characters \x80 to | 220 | ;; (i.e. closing bracKET), round or square. Assume that all characters \x80 to |
| 221 | ;; \xff are "letters". | 221 | ;; \xff are "letters". |
| @@ -227,7 +227,7 @@ | |||
| 227 | ;; will only work when there won't be a preceding " or / before the sought / | 227 | ;; will only work when there won't be a preceding " or / before the sought / |
| 228 | ;; to foul things up. | 228 | ;; to foul things up. |
| 229 | (defconst c-awk-non-arith-op-bra-re | 229 | (defconst c-awk-non-arith-op-bra-re |
| 230 | "[[\({&=:!><,?;'~|]") | 230 | "[[({&=:!><,?;'~|]") |
| 231 | ;; Matches an opening BRAcket (of any sort), or any operator character | 231 | ;; Matches an opening BRAcket (of any sort), or any operator character |
| 232 | ;; apart from +,-,/,*,%. For the purpose at hand (detecting a / which is a | 232 | ;; apart from +,-,/,*,%. For the purpose at hand (detecting a / which is a |
| 233 | ;; regexp bracket) these arith ops are unnecessary and a pain, because of "++" | 233 | ;; regexp bracket) these arith ops are unnecessary and a pain, because of "++" |
| @@ -266,7 +266,7 @@ | |||
| 266 | ;; Matches optional whitespace followed by a "/" with string syntax (a matched | 266 | ;; Matches optional whitespace followed by a "/" with string syntax (a matched |
| 267 | ;; regexp delimiter). | 267 | ;; regexp delimiter). |
| 268 | (defconst c-awk-space*-unclosed-regexp-/-re | 268 | (defconst c-awk-space*-unclosed-regexp-/-re |
| 269 | (concat c-awk-escaped-nls*-with-space* "\\s\|")) | 269 | (concat c-awk-escaped-nls*-with-space* "\\s|")) |
| 270 | ;; Matches optional whitespace followed by a "/" with string fence syntax (an | 270 | ;; Matches optional whitespace followed by a "/" with string fence syntax (an |
| 271 | ;; unmatched regexp delimiter). | 271 | ;; unmatched regexp delimiter). |
| 272 | 272 | ||
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el index 0e249bd4212..32ce8c6a249 100644 --- a/lisp/progmodes/cc-cmds.el +++ b/lisp/progmodes/cc-cmds.el | |||
| @@ -428,7 +428,7 @@ the function `delete-forward-p' is defined and returns non-nil, it | |||
| 428 | deletes forward. Otherwise it deletes backward. | 428 | deletes forward. Otherwise it deletes backward. |
| 429 | 429 | ||
| 430 | Note: This is the way in XEmacs to choose the correct action for the | 430 | Note: This is the way in XEmacs to choose the correct action for the |
| 431 | \[delete] key, whichever key that means. Other flavors don't use this | 431 | [delete] key, whichever key that means. Other flavors don't use this |
| 432 | function to control that." | 432 | function to control that." |
| 433 | (interactive "*P") | 433 | (interactive "*P") |
| 434 | (if (and (fboundp 'delete-forward-p) | 434 | (if (and (fboundp 'delete-forward-p) |
| @@ -445,7 +445,7 @@ forward using `c-hungry-delete-forward'. Otherwise it deletes | |||
| 445 | backward using `c-hungry-backspace'. | 445 | backward using `c-hungry-backspace'. |
| 446 | 446 | ||
| 447 | Note: This is the way in XEmacs to choose the correct action for the | 447 | Note: This is the way in XEmacs to choose the correct action for the |
| 448 | \[delete] key, whichever key that means. Other flavors don't use this | 448 | [delete] key, whichever key that means. Other flavors don't use this |
| 449 | function to control that." | 449 | function to control that." |
| 450 | (interactive) | 450 | (interactive) |
| 451 | (if (and (fboundp 'delete-forward-p) | 451 | (if (and (fboundp 'delete-forward-p) |
| @@ -1143,9 +1143,9 @@ numeric argument is supplied, or the point is inside a literal." | |||
| 1143 | (eq (char-before) ?<)) | 1143 | (eq (char-before) ?<)) |
| 1144 | (progn | 1144 | (progn |
| 1145 | (backward-char) | 1145 | (backward-char) |
| 1146 | (looking-at "\\s\(")))) | 1146 | (looking-at "\\s(")))) |
| 1147 | (and (eq (char-after) ?<) | 1147 | (and (eq (char-after) ?<) |
| 1148 | (not (looking-at "\\s\(")) | 1148 | (not (looking-at "\\s(")) |
| 1149 | (progn (c-backward-syntactic-ws) | 1149 | (progn (c-backward-syntactic-ws) |
| 1150 | (c-simple-skip-symbol-backward)) | 1150 | (c-simple-skip-symbol-backward)) |
| 1151 | (or (looking-at c-opt-<>-sexp-key) | 1151 | (or (looking-at c-opt-<>-sexp-key) |
| @@ -1380,13 +1380,13 @@ No indentation or other \"electric\" behavior is performed." | |||
| 1380 | ;; be the return type of a function, or the like. Exclude | 1380 | ;; be the return type of a function, or the like. Exclude |
| 1381 | ;; this case. | 1381 | ;; this case. |
| 1382 | (c-syntactic-re-search-forward | 1382 | (c-syntactic-re-search-forward |
| 1383 | (concat "[;=\(\[{]\\|\\(" | 1383 | (concat "[;=([{]\\|\\(" |
| 1384 | c-opt-block-decls-with-vars-key | 1384 | c-opt-block-decls-with-vars-key |
| 1385 | "\\)") | 1385 | "\\)") |
| 1386 | eo-block t t t) | 1386 | eo-block t t t) |
| 1387 | (match-beginning 1) ; Is there a "struct" etc., somewhere? | 1387 | (match-beginning 1) ; Is there a "struct" etc., somewhere? |
| 1388 | (not (eq (char-before) ?_)) | 1388 | (not (eq (char-before) ?_)) |
| 1389 | (c-syntactic-re-search-forward "[;=\(\[{]" eo-block t t t) | 1389 | (c-syntactic-re-search-forward "[;=([{]" eo-block t t t) |
| 1390 | (eq (char-before) ?\{) | 1390 | (eq (char-before) ?\{) |
| 1391 | bod))))) | 1391 | bod))))) |
| 1392 | 1392 | ||
| @@ -4455,7 +4455,7 @@ is in situations like the following: | |||
| 4455 | 4455 | ||
| 4456 | char description[] = \"\\ | 4456 | char description[] = \"\\ |
| 4457 | A very long description of something that you want to fill to make | 4457 | A very long description of something that you want to fill to make |
| 4458 | nicely formatted output.\"\; | 4458 | nicely formatted output.\"; |
| 4459 | 4459 | ||
| 4460 | If point is in any other situation, i.e. in normal code, do nothing. | 4460 | If point is in any other situation, i.e. in normal code, do nothing. |
| 4461 | 4461 | ||
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el index 0422ca0b028..6bd58159fce 100644 --- a/lisp/progmodes/cc-defs.el +++ b/lisp/progmodes/cc-defs.el | |||
| @@ -500,10 +500,10 @@ even if the user undoes the command which set them. | |||
| 500 | 500 | ||
| 501 | This macro should ALWAYS be placed around \"temporary\" internal buffer | 501 | This macro should ALWAYS be placed around \"temporary\" internal buffer |
| 502 | changes \(like adding a newline to calculate a text-property then | 502 | changes \(like adding a newline to calculate a text-property then |
| 503 | deleting it again\), so that the user never sees them on his | 503 | deleting it again), so that the user never sees them on his |
| 504 | `buffer-undo-list'. See also `c-tentative-buffer-changes'. | 504 | `buffer-undo-list'. See also `c-tentative-buffer-changes'. |
| 505 | 505 | ||
| 506 | However, any user-visible changes to the buffer \(like auto-newlines\) | 506 | However, any user-visible changes to the buffer \(like auto-newlines) |
| 507 | must not be within a `c-save-buffer-state', since the user then | 507 | must not be within a `c-save-buffer-state', since the user then |
| 508 | wouldn't be able to undo them. | 508 | wouldn't be able to undo them. |
| 509 | 509 | ||
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 82f0d722d03..6382b145211 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el | |||
| @@ -1060,7 +1060,7 @@ comment at the start of cc-engine.el for more info." | |||
| 1060 | (save-excursion | 1060 | (save-excursion |
| 1061 | (c-forward-sexp) (point))) | 1061 | (c-forward-sexp) (point))) |
| 1062 | ;; Just gone back over some paren block? | 1062 | ;; Just gone back over some paren block? |
| 1063 | ((looking-at "\\s\(") | 1063 | ((looking-at "\\s(") |
| 1064 | (save-excursion | 1064 | (save-excursion |
| 1065 | (goto-char (1+ (c-down-list-backward | 1065 | (goto-char (1+ (c-down-list-backward |
| 1066 | before-sws-pos))) | 1066 | before-sws-pos))) |
| @@ -1233,7 +1233,7 @@ The variable `c-maybe-labelp' is set to the position of the first `:' that | |||
| 1233 | might start a label (i.e. not part of `::' and not preceded by `?'). If a | 1233 | might start a label (i.e. not part of `::' and not preceded by `?'). If a |
| 1234 | single `?' is found, then `c-maybe-labelp' is cleared. | 1234 | single `?' is found, then `c-maybe-labelp' is cleared. |
| 1235 | 1235 | ||
| 1236 | For AWK, a statement which is terminated by an EOL (not a \; or a }) is | 1236 | For AWK, a statement which is terminated by an EOL (not a ; or a }) is |
| 1237 | regarded as having a \"virtual semicolon\" immediately after the last token on | 1237 | regarded as having a \"virtual semicolon\" immediately after the last token on |
| 1238 | the line. If this virtual semicolon is _at_ from, the function recognizes it. | 1238 | the line. If this virtual semicolon is _at_ from, the function recognizes it. |
| 1239 | 1239 | ||
| @@ -3792,8 +3792,8 @@ comment at the start of cc-engine.el for more info." | |||
| 3792 | 3792 | ||
| 3793 | (defconst c-jump-syntax-balanced | 3793 | (defconst c-jump-syntax-balanced |
| 3794 | (if (memq 'gen-string-delim c-emacs-features) | 3794 | (if (memq 'gen-string-delim c-emacs-features) |
| 3795 | "\\w\\|\\s_\\|\\s\(\\|\\s\)\\|\\s\"\\|\\s|" | 3795 | "\\w\\|\\s_\\|\\s(\\|\\s)\\|\\s\"\\|\\s|" |
| 3796 | "\\w\\|\\s_\\|\\s\(\\|\\s\)\\|\\s\"")) | 3796 | "\\w\\|\\s_\\|\\s(\\|\\s)\\|\\s\"")) |
| 3797 | 3797 | ||
| 3798 | (defconst c-jump-syntax-unbalanced | 3798 | (defconst c-jump-syntax-unbalanced |
| 3799 | (if (memq 'gen-string-delim c-emacs-features) | 3799 | (if (memq 'gen-string-delim c-emacs-features) |
| @@ -3960,7 +3960,7 @@ See `c-forward-token-2' for details." | |||
| 3960 | tokens like \"==\" as single tokens, i.e. all sequences of symbol | 3960 | tokens like \"==\" as single tokens, i.e. all sequences of symbol |
| 3961 | characters are jumped over character by character. This function is | 3961 | characters are jumped over character by character. This function is |
| 3962 | for compatibility only; it's only a wrapper over `c-forward-token-2'." | 3962 | for compatibility only; it's only a wrapper over `c-forward-token-2'." |
| 3963 | (let ((c-nonsymbol-token-regexp "\\s.\\|\\s\(\\|\\s\)")) | 3963 | (let ((c-nonsymbol-token-regexp "\\s.")) |
| 3964 | (c-forward-token-2 count balanced limit))) | 3964 | (c-forward-token-2 count balanced limit))) |
| 3965 | 3965 | ||
| 3966 | (defun c-backward-token-1 (&optional count balanced limit) | 3966 | (defun c-backward-token-1 (&optional count balanced limit) |
| @@ -3968,7 +3968,7 @@ for compatibility only; it's only a wrapper over `c-forward-token-2'." | |||
| 3968 | tokens like \"==\" as single tokens, i.e. all sequences of symbol | 3968 | tokens like \"==\" as single tokens, i.e. all sequences of symbol |
| 3969 | characters are jumped over character by character. This function is | 3969 | characters are jumped over character by character. This function is |
| 3970 | for compatibility only; it's only a wrapper over `c-backward-token-2'." | 3970 | for compatibility only; it's only a wrapper over `c-backward-token-2'." |
| 3971 | (let ((c-nonsymbol-token-regexp "\\s.\\|\\s\(\\|\\s\)")) | 3971 | (let ((c-nonsymbol-token-regexp "\\s.")) |
| 3972 | (c-backward-token-2 count balanced limit))) | 3972 | (c-backward-token-2 count balanced limit))) |
| 3973 | 3973 | ||
| 3974 | 3974 | ||
| @@ -7124,7 +7124,7 @@ comment at the start of cc-engine.el for more info." | |||
| 7124 | (setq paren-depth (1- paren-depth)) | 7124 | (setq paren-depth (1- paren-depth)) |
| 7125 | (forward-char) | 7125 | (forward-char) |
| 7126 | t) | 7126 | t) |
| 7127 | (when (if (save-match-data (looking-at "\\s\(")) | 7127 | (when (if (save-match-data (looking-at "\\s(")) |
| 7128 | (c-safe (c-forward-sexp 1) t) | 7128 | (c-safe (c-forward-sexp 1) t) |
| 7129 | (goto-char (match-end 1)) | 7129 | (goto-char (match-end 1)) |
| 7130 | t) | 7130 | t) |
| @@ -7198,7 +7198,7 @@ comment at the start of cc-engine.el for more info." | |||
| 7198 | 7198 | ||
| 7199 | (setq at-decl-end | 7199 | (setq at-decl-end |
| 7200 | (looking-at (cond ((eq context '<>) "[,>]") | 7200 | (looking-at (cond ((eq context '<>) "[,>]") |
| 7201 | (context "[,\)]") | 7201 | (context "[,)]") |
| 7202 | (t "[,;]")))) | 7202 | (t "[,;]")))) |
| 7203 | 7203 | ||
| 7204 | ;; Now we've collected info about various characteristics of | 7204 | ;; Now we've collected info about various characteristics of |
| @@ -7522,7 +7522,7 @@ comment at the start of cc-engine.el for more info." | |||
| 7522 | ;; The closing paren should follow. | 7522 | ;; The closing paren should follow. |
| 7523 | (progn | 7523 | (progn |
| 7524 | (c-forward-syntactic-ws) | 7524 | (c-forward-syntactic-ws) |
| 7525 | (looking-at "\\s\)")) | 7525 | (looking-at "\\s)")) |
| 7526 | 7526 | ||
| 7527 | ;; There should be a primary expression after it. | 7527 | ;; There should be a primary expression after it. |
| 7528 | (let (pos) | 7528 | (let (pos) |
| @@ -7919,7 +7919,7 @@ comment at the start of cc-engine.el for more info." | |||
| 7919 | 7919 | ||
| 7920 | (catch 'break | 7920 | (catch 'break |
| 7921 | ;; Look for ": superclass-name" or "( category-name )". | 7921 | ;; Look for ": superclass-name" or "( category-name )". |
| 7922 | (when (looking-at "[:\(]") | 7922 | (when (looking-at "[:(]") |
| 7923 | (setq start-char (char-after)) | 7923 | (setq start-char (char-after)) |
| 7924 | (forward-char) | 7924 | (forward-char) |
| 7925 | (c-forward-syntactic-ws) | 7925 | (c-forward-syntactic-ws) |
| @@ -8434,7 +8434,7 @@ comment at the start of cc-engine.el for more info." | |||
| 8434 | ;; Check for `c-opt-block-decls-with-vars-key' | 8434 | ;; Check for `c-opt-block-decls-with-vars-key' |
| 8435 | ;; before the first paren. | 8435 | ;; before the first paren. |
| 8436 | (c-syntactic-re-search-forward | 8436 | (c-syntactic-re-search-forward |
| 8437 | (concat "[;=\(\[{]\\|\\(" | 8437 | (concat "[;=([{]\\|\\(" |
| 8438 | c-opt-block-decls-with-vars-key | 8438 | c-opt-block-decls-with-vars-key |
| 8439 | "\\)") | 8439 | "\\)") |
| 8440 | lim t t t) | 8440 | lim t t t) |
| @@ -8442,7 +8442,7 @@ comment at the start of cc-engine.el for more info." | |||
| 8442 | (not (eq (char-before) ?_)) | 8442 | (not (eq (char-before) ?_)) |
| 8443 | ;; Check that the first following paren is | 8443 | ;; Check that the first following paren is |
| 8444 | ;; the block. | 8444 | ;; the block. |
| 8445 | (c-syntactic-re-search-forward "[;=\(\[{]" | 8445 | (c-syntactic-re-search-forward "[;=([{]" |
| 8446 | lim t t t) | 8446 | lim t t t) |
| 8447 | (eq (char-before) ?{))))))) | 8447 | (eq (char-before) ?{))))))) |
| 8448 | ;; The declaration doesn't have any of the | 8448 | ;; The declaration doesn't have any of the |
| @@ -8961,7 +8961,7 @@ comment at the start of cc-engine.el for more info." | |||
| 8961 | (> (point) closest-lim)) | 8961 | (> (point) closest-lim)) |
| 8962 | (not (bobp)) | 8962 | (not (bobp)) |
| 8963 | (progn (backward-char) | 8963 | (progn (backward-char) |
| 8964 | (looking-at "[\]\).]\\|\\w\\|\\s_")) | 8964 | (looking-at "[]).]\\|\\w\\|\\s_")) |
| 8965 | (c-safe (forward-char) | 8965 | (c-safe (forward-char) |
| 8966 | (goto-char (scan-sexps (point) -1)))) | 8966 | (goto-char (scan-sexps (point) -1)))) |
| 8967 | 8967 | ||
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index f05d6a06595..ad112d720d8 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el | |||
| @@ -575,10 +575,10 @@ stuff. Used on level 1 and higher." | |||
| 575 | c-symbol-key) "\\)" | 575 | c-symbol-key) "\\)" |
| 576 | (concat "\\(" ; 2 + ncle + nsws + c-sym-key | 576 | (concat "\\(" ; 2 + ncle + nsws + c-sym-key |
| 577 | ;; Macro with arguments - a "function". | 577 | ;; Macro with arguments - a "function". |
| 578 | "\\(\(\\)" ; 3 + ncle + nsws + c-sym-key | 578 | "\\((\\)" ; 3 + ncle + nsws + c-sym-key |
| 579 | "\\|" | 579 | "\\|" |
| 580 | ;; Macro without arguments - a "variable". | 580 | ;; Macro without arguments - a "variable". |
| 581 | "\\([^\(]\\|$\\)" | 581 | "\\([^(]\\|$\\)" |
| 582 | "\\)")) | 582 | "\\)")) |
| 583 | `((if (match-beginning | 583 | `((if (match-beginning |
| 584 | ,(+ 3 ncle-depth nsws-depth | 584 | ,(+ 3 ncle-depth nsws-depth |
| @@ -1082,7 +1082,7 @@ casts and declarations are fontified. Used on level 2 and higher." | |||
| 1082 | 1082 | ||
| 1083 | ;; Search syntactically to the end of the declarator (";", | 1083 | ;; Search syntactically to the end of the declarator (";", |
| 1084 | ;; ",", a closing paren, eob etc) or to the beginning of an | 1084 | ;; ",", a closing paren, eob etc) or to the beginning of an |
| 1085 | ;; initializer or function prototype ("=" or "\\s\("). | 1085 | ;; initializer or function prototype ("=" or "\\s("). |
| 1086 | ;; Note that square brackets are now not also treated as | 1086 | ;; Note that square brackets are now not also treated as |
| 1087 | ;; initializers, since this broke when there were also | 1087 | ;; initializers, since this broke when there were also |
| 1088 | ;; initializing brace lists. | 1088 | ;; initializing brace lists. |
| @@ -1867,7 +1867,7 @@ higher." | |||
| 1867 | "\\)\\>" | 1867 | "\\)\\>" |
| 1868 | ;; Disallow various common punctuation chars that can't come | 1868 | ;; Disallow various common punctuation chars that can't come |
| 1869 | ;; before the '{' of the enum list, to avoid searching too far. | 1869 | ;; before the '{' of the enum list, to avoid searching too far. |
| 1870 | "[^\]\[{}();/#=]*" | 1870 | "[^][{}();/#=]*" |
| 1871 | "{") | 1871 | "{") |
| 1872 | '((c-font-lock-declarators limit t nil) | 1872 | '((c-font-lock-declarators limit t nil) |
| 1873 | (save-match-data | 1873 | (save-match-data |
| @@ -2112,7 +2112,7 @@ need for `c-font-lock-extra-types'.") | |||
| 2112 | (unless (looking-at | 2112 | (unless (looking-at |
| 2113 | (cc-eval-when-compile | 2113 | (cc-eval-when-compile |
| 2114 | (concat (c-lang-const c-symbol-start c++) | 2114 | (concat (c-lang-const c-symbol-start c++) |
| 2115 | "\\|[*:\)\[]"))) | 2115 | "\\|[*:)[]"))) |
| 2116 | ;; There's something after the would-be type that | 2116 | ;; There's something after the would-be type that |
| 2117 | ;; can't be there, so this is a placement arglist. | 2117 | ;; can't be there, so this is a placement arglist. |
| 2118 | (setq expr1-res nil))) | 2118 | (setq expr1-res nil))) |
| @@ -2122,7 +2122,7 @@ need for `c-font-lock-extra-types'.") | |||
| 2122 | (unless (looking-at | 2122 | (unless (looking-at |
| 2123 | (cc-eval-when-compile | 2123 | (cc-eval-when-compile |
| 2124 | (concat (c-lang-const c-symbol-start c++) | 2124 | (concat (c-lang-const c-symbol-start c++) |
| 2125 | "\\|[*:\)\[]"))) | 2125 | "\\|[*:)[]"))) |
| 2126 | ;; There's something after the would-be type that can't | 2126 | ;; There's something after the would-be type that can't |
| 2127 | ;; be there, so this is an initialization expression. | 2127 | ;; be there, so this is an initialization expression. |
| 2128 | (setq expr2-res nil)) | 2128 | (setq expr2-res nil)) |
| @@ -2675,7 +2675,7 @@ need for `pike-font-lock-extra-types'.") | |||
| 2675 | nil) | 2675 | nil) |
| 2676 | 2676 | ||
| 2677 | (defconst autodoc-font-lock-doc-comments | 2677 | (defconst autodoc-font-lock-doc-comments |
| 2678 | `(("@\\(\\w+{\\|\\[\\([^\]@\n\r]\\|@@\\)*\\]\\|[@}]\\|$\\)" | 2678 | `(("@\\(\\w+{\\|\\[\\([^]@\n\r]\\|@@\\)*\\]\\|[@}]\\|$\\)" |
| 2679 | ;; In-text markup. | 2679 | ;; In-text markup. |
| 2680 | 0 ,c-doc-markup-face-name prepend nil) | 2680 | 0 ,c-doc-markup-face-name prepend nil) |
| 2681 | (autodoc-font-lock-line-markup) | 2681 | (autodoc-font-lock-line-markup) |
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el index a1e26b9fcc4..7cda5ceaf1d 100644 --- a/lisp/progmodes/cc-langs.el +++ b/lisp/progmodes/cc-langs.el | |||
| @@ -870,7 +870,7 @@ definition, or nil if the language doesn't have any." | |||
| 870 | t (if (c-lang-const c-opt-cpp-macro-define) | 870 | t (if (c-lang-const c-opt-cpp-macro-define) |
| 871 | (concat (c-lang-const c-opt-cpp-prefix) | 871 | (concat (c-lang-const c-opt-cpp-prefix) |
| 872 | (c-lang-const c-opt-cpp-macro-define) | 872 | (c-lang-const c-opt-cpp-macro-define) |
| 873 | "[ \t]+\\(\\(\\sw\\|_\\)+\\)\\(\([^\)]*\)\\)?" | 873 | "[ \t]+\\(\\(\\sw\\|_\\)+\\)\\(([^)]*)\\)?" |
| 874 | ;; ^ ^ #defined name | 874 | ;; ^ ^ #defined name |
| 875 | "\\([ \t]\\|\\\\\n\\)*"))) | 875 | "\\([ \t]\\|\\\\\n\\)*"))) |
| 876 | (c-lang-defvar c-opt-cpp-macro-define-start | 876 | (c-lang-defvar c-opt-cpp-macro-define-start |
| @@ -1190,7 +1190,7 @@ operators." | |||
| 1190 | t (c-make-keywords-re nil | 1190 | t (c-make-keywords-re nil |
| 1191 | (c-filter-ops (c-lang-const c-all-op-syntax-tokens) | 1191 | (c-filter-ops (c-lang-const c-all-op-syntax-tokens) |
| 1192 | t | 1192 | t |
| 1193 | "\\`\\(\\s.\\|\\s\(\\|\\s\)\\)+\\'"))) | 1193 | "\\`\\(\\s.\\)+\\'"))) |
| 1194 | (c-lang-defvar c-nonsymbol-token-regexp | 1194 | (c-lang-defvar c-nonsymbol-token-regexp |
| 1195 | (c-lang-const c-nonsymbol-token-regexp)) | 1195 | (c-lang-const c-nonsymbol-token-regexp)) |
| 1196 | 1196 | ||
| @@ -1694,7 +1694,7 @@ be a subset of `c-primitive-type-kwds'." | |||
| 1694 | "strong")) | 1694 | "strong")) |
| 1695 | 1695 | ||
| 1696 | (c-lang-defconst c-typedef-kwds | 1696 | (c-lang-defconst c-typedef-kwds |
| 1697 | "Prefix keyword\(s\) like \"typedef\" which make a type declaration out | 1697 | "Prefix keyword(s) like \"typedef\" which make a type declaration out |
| 1698 | of a variable declaration." | 1698 | of a variable declaration." |
| 1699 | t '("typedef") | 1699 | t '("typedef") |
| 1700 | (awk idl java) nil) | 1700 | (awk idl java) nil) |
| @@ -2202,7 +2202,7 @@ regexp if `c-colon-type-list-kwds' isn't nil." | |||
| 2202 | ;; before the ":" that starts the inherit list after "class" | 2202 | ;; before the ":" that starts the inherit list after "class" |
| 2203 | ;; or "struct" in C++. (Also used as default for other | 2203 | ;; or "struct" in C++. (Also used as default for other |
| 2204 | ;; languages.) | 2204 | ;; languages.) |
| 2205 | "[^\]\[{}();,/#=:]*:")) | 2205 | "[^][{}();,/#=:]*:")) |
| 2206 | (c-lang-defvar c-colon-type-list-re (c-lang-const c-colon-type-list-re)) | 2206 | (c-lang-defvar c-colon-type-list-re (c-lang-const c-colon-type-list-re)) |
| 2207 | 2207 | ||
| 2208 | (c-lang-defconst c-paren-nontype-kwds | 2208 | (c-lang-defconst c-paren-nontype-kwds |
| @@ -2366,7 +2366,7 @@ nevertheless contains a list separated with `;' and not `,'." | |||
| 2366 | (c-lang-defvar c-opt-asm-stmt-key (c-lang-const c-opt-asm-stmt-key)) | 2366 | (c-lang-defvar c-opt-asm-stmt-key (c-lang-const c-opt-asm-stmt-key)) |
| 2367 | 2367 | ||
| 2368 | (c-lang-defconst c-case-kwds | 2368 | (c-lang-defconst c-case-kwds |
| 2369 | "The keyword\(s) which introduce a \"case\" like construct. | 2369 | "The keyword(s) which introduce a \"case\" like construct. |
| 2370 | This construct is \"<keyword> <expression> :\"." | 2370 | This construct is \"<keyword> <expression> :\"." |
| 2371 | t '("case") | 2371 | t '("case") |
| 2372 | awk nil) | 2372 | awk nil) |
| @@ -2729,25 +2729,25 @@ more info." | |||
| 2729 | ;; more quickly. We match ")" in C for K&R region declarations, and | 2729 | ;; more quickly. We match ")" in C for K&R region declarations, and |
| 2730 | ;; in all languages except Java for when a cpp macro definition | 2730 | ;; in all languages except Java for when a cpp macro definition |
| 2731 | ;; begins with a declaration. | 2731 | ;; begins with a declaration. |
| 2732 | t "\\([\{\}\(\);,]+\\)" | 2732 | t "\\([{}();,]+\\)" |
| 2733 | java "\\([\{\}\(;,<]+\\)" | 2733 | java "\\([{}(;,<]+\\)" |
| 2734 | ;; Match "<" in C++ to get the first argument in a template arglist. | 2734 | ;; Match "<" in C++ to get the first argument in a template arglist. |
| 2735 | ;; In that case there's an additional check in `c-find-decl-spots' | 2735 | ;; In that case there's an additional check in `c-find-decl-spots' |
| 2736 | ;; that it got open paren syntax. Match ":" to aid in picking up | 2736 | ;; that it got open paren syntax. Match ":" to aid in picking up |
| 2737 | ;; "public:", etc. This involves additional checks in | 2737 | ;; "public:", etc. This involves additional checks in |
| 2738 | ;; `c-find-decl-prefix-search' to prevent a match of identifiers | 2738 | ;; `c-find-decl-prefix-search' to prevent a match of identifiers |
| 2739 | ;; or labels. | 2739 | ;; or labels. |
| 2740 | c++ "\\([\{\}\(\);:,<]+\\)" | 2740 | c++ "\\([{}();:,<]+\\)" |
| 2741 | ;; Additionally match the protection directives in Objective-C. | 2741 | ;; Additionally match the protection directives in Objective-C. |
| 2742 | ;; Note that this doesn't cope with the longer directives, which we | 2742 | ;; Note that this doesn't cope with the longer directives, which we |
| 2743 | ;; would have to match from start to end since they don't end with | 2743 | ;; would have to match from start to end since they don't end with |
| 2744 | ;; any easily recognized characters. | 2744 | ;; any easily recognized characters. |
| 2745 | objc (concat "\\([\{\}\(\);,]+\\|" | 2745 | objc (concat "\\([{}();,]+\\|" |
| 2746 | (c-make-keywords-re nil (c-lang-const c-protection-kwds)) | 2746 | (c-make-keywords-re nil (c-lang-const c-protection-kwds)) |
| 2747 | "\\)") | 2747 | "\\)") |
| 2748 | ;; Pike is like C but we also match "[" for multiple value | 2748 | ;; Pike is like C but we also match "[" for multiple value |
| 2749 | ;; assignments and type casts. | 2749 | ;; assignments and type casts. |
| 2750 | pike "\\([\{\}\(\)\[;,]+\\)") | 2750 | pike "\\([{}()[;,]+\\)") |
| 2751 | (c-lang-defvar c-decl-prefix-re (c-lang-const c-decl-prefix-re) | 2751 | (c-lang-defvar c-decl-prefix-re (c-lang-const c-decl-prefix-re) |
| 2752 | 'dont-doc) | 2752 | 'dont-doc) |
| 2753 | 2753 | ||
| @@ -2792,7 +2792,7 @@ constructs." | |||
| 2792 | ;; languages without casts. | 2792 | ;; languages without casts. |
| 2793 | t (c-filter-ops (c-lang-const c-operators) | 2793 | t (c-filter-ops (c-lang-const c-operators) |
| 2794 | '(prefix) | 2794 | '(prefix) |
| 2795 | "\\`\\s\(\\'" | 2795 | "\\`\\s(\\'" |
| 2796 | (lambda (op) (elt op 0)))) | 2796 | (lambda (op) (elt op 0)))) |
| 2797 | (c-lang-defvar c-cast-parens (c-lang-const c-cast-parens)) | 2797 | (c-lang-defvar c-cast-parens (c-lang-const c-cast-parens)) |
| 2798 | 2798 | ||
| @@ -2875,13 +2875,13 @@ Identifier syntax is in effect when this is matched \(see | |||
| 2875 | ;; Check that there's no "=" afterwards to avoid matching tokens | 2875 | ;; Check that there's no "=" afterwards to avoid matching tokens |
| 2876 | ;; like "*=". | 2876 | ;; like "*=". |
| 2877 | (c objc) (concat "\\(" | 2877 | (c objc) (concat "\\(" |
| 2878 | "[*\(]" | 2878 | "[*(]" |
| 2879 | "\\|" | 2879 | "\\|" |
| 2880 | (c-lang-const c-type-decl-prefix-key) | 2880 | (c-lang-const c-type-decl-prefix-key) |
| 2881 | "\\)" | 2881 | "\\)" |
| 2882 | "\\([^=]\\|$\\)") | 2882 | "\\([^=]\\|$\\)") |
| 2883 | c++ (concat "\\(" | 2883 | c++ (concat "\\(" |
| 2884 | "[*\(&]" | 2884 | "[*(&]" |
| 2885 | "\\|" | 2885 | "\\|" |
| 2886 | (c-lang-const c-type-decl-prefix-key) | 2886 | (c-lang-const c-type-decl-prefix-key) |
| 2887 | "\\|" | 2887 | "\\|" |
| @@ -2909,13 +2909,13 @@ is in effect when this is matched (see `c-identifier-syntax-table')." | |||
| 2909 | ;; Default to a regexp that matches `c-type-modifier-kwds' and a | 2909 | ;; Default to a regexp that matches `c-type-modifier-kwds' and a |
| 2910 | ;; function argument list parenthesis. | 2910 | ;; function argument list parenthesis. |
| 2911 | t (if (c-lang-const c-type-modifier-kwds) | 2911 | t (if (c-lang-const c-type-modifier-kwds) |
| 2912 | (concat "\\(\(\\|" | 2912 | (concat "\\((\\|" |
| 2913 | (regexp-opt (c-lang-const c-type-modifier-kwds) t) "\\>" | 2913 | (regexp-opt (c-lang-const c-type-modifier-kwds) t) "\\>" |
| 2914 | "\\)") | 2914 | "\\)") |
| 2915 | "\\(\(\\)") | 2915 | "\\((\\)") |
| 2916 | (c c++ objc) (concat | 2916 | (c c++ objc) (concat |
| 2917 | "\\(" | 2917 | "\\(" |
| 2918 | "[\)\[\(]" | 2918 | "[)[(]" |
| 2919 | (if (c-lang-const c-type-modifier-kwds) | 2919 | (if (c-lang-const c-type-modifier-kwds) |
| 2920 | (concat | 2920 | (concat |
| 2921 | "\\|" | 2921 | "\\|" |
| @@ -2926,8 +2926,8 @@ is in effect when this is matched (see `c-identifier-syntax-table')." | |||
| 2926 | "\\>") | 2926 | "\\>") |
| 2927 | "") | 2927 | "") |
| 2928 | "\\)") | 2928 | "\\)") |
| 2929 | java "\\([\[\(\)]\\)" | 2929 | java "\\([[()]\\)" |
| 2930 | idl "\\([\[\(]\\)") | 2930 | idl "\\([[(]\\)") |
| 2931 | (c-lang-defvar c-type-decl-suffix-key (c-lang-const c-type-decl-suffix-key) | 2931 | (c-lang-defvar c-type-decl-suffix-key (c-lang-const c-type-decl-suffix-key) |
| 2932 | 'dont-doc) | 2932 | 'dont-doc) |
| 2933 | 2933 | ||
| @@ -3111,7 +3111,7 @@ i.e. compound statements surrounded by parentheses inside expressions." | |||
| 3111 | t (if (c-lang-const c-opt-<>-arglist-start) | 3111 | t (if (c-lang-const c-opt-<>-arglist-start) |
| 3112 | (concat "\\(" | 3112 | (concat "\\(" |
| 3113 | (c-lang-const c-opt-<>-arglist-start) | 3113 | (c-lang-const c-opt-<>-arglist-start) |
| 3114 | "\\)\\|\\s\)"))) | 3114 | "\\)\\|\\s)"))) |
| 3115 | (c-lang-defvar c-opt-<>-arglist-start-in-paren | 3115 | (c-lang-defvar c-opt-<>-arglist-start-in-paren |
| 3116 | (c-lang-const c-opt-<>-arglist-start-in-paren)) | 3116 | (c-lang-const c-opt-<>-arglist-start-in-paren)) |
| 3117 | 3117 | ||
| @@ -3168,7 +3168,7 @@ i.e. before \":\". Only used if `c-recognize-colon-labels' is set." | |||
| 3168 | ;; Also check for open parens in C++, to catch member init lists in | 3168 | ;; Also check for open parens in C++, to catch member init lists in |
| 3169 | ;; constructors. We normally allow it so that macros with arguments | 3169 | ;; constructors. We normally allow it so that macros with arguments |
| 3170 | ;; work in labels. | 3170 | ;; work in labels. |
| 3171 | c++ (concat "\\s\(\\|\"\\|" (c-lang-const c-nonlabel-token-key))) | 3171 | c++ (concat "\\s(\\|\"\\|" (c-lang-const c-nonlabel-token-key))) |
| 3172 | (c-lang-defvar c-nonlabel-token-key (c-lang-const c-nonlabel-token-key)) | 3172 | (c-lang-defvar c-nonlabel-token-key (c-lang-const c-nonlabel-token-key)) |
| 3173 | 3173 | ||
| 3174 | (c-lang-defconst c-nonlabel-token-2-key | 3174 | (c-lang-defconst c-nonlabel-token-2-key |
| @@ -3216,7 +3216,7 @@ way." | |||
| 3216 | "\\([+-]\\)" | 3216 | "\\([+-]\\)" |
| 3217 | (c-lang-const c-simple-ws) "*" | 3217 | (c-lang-const c-simple-ws) "*" |
| 3218 | (concat "\\(" ; Return type. | 3218 | (concat "\\(" ; Return type. |
| 3219 | "([^\)]*)" | 3219 | "([^)]*)" |
| 3220 | (c-lang-const c-simple-ws) "*" | 3220 | (c-lang-const c-simple-ws) "*" |
| 3221 | "\\)?") | 3221 | "\\)?") |
| 3222 | "\\(" (c-lang-const c-symbol-key) "\\)")) | 3222 | "\\(" (c-lang-const c-symbol-key) "\\)")) |
| @@ -3304,10 +3304,9 @@ accomplish that conveniently." | |||
| 3304 | (setq source-eval t) | 3304 | (setq source-eval t) |
| 3305 | (let ((init ',(append (cdr c-emacs-variable-inits) | 3305 | (let ((init ',(append (cdr c-emacs-variable-inits) |
| 3306 | (cdr c-lang-variable-inits)))) | 3306 | (cdr c-lang-variable-inits)))) |
| 3307 | (while init | 3307 | (dolist (var-init init) |
| 3308 | (setq current-var (caar init)) | 3308 | (setq current-var (car var-init)) |
| 3309 | (set (caar init) (eval (cadar init))) | 3309 | (set (car var-init) (eval (cadr var-init)))))) |
| 3310 | (setq init (cdr init))))) | ||
| 3311 | 3310 | ||
| 3312 | (error | 3311 | (error |
| 3313 | (if current-var | 3312 | (if current-var |
| @@ -3333,10 +3332,9 @@ accomplish that conveniently." | |||
| 3333 | (c-make-emacs-variables-local) | 3332 | (c-make-emacs-variables-local) |
| 3334 | (condition-case err | 3333 | (condition-case err |
| 3335 | 3334 | ||
| 3336 | (while init | 3335 | (dolist (var-init init) |
| 3337 | (setq current-var (caar init)) | 3336 | (setq current-var (car var-init)) |
| 3338 | (set (caar init) (eval (cadar init))) | 3337 | (set (car var-init) (eval (cadr var-init)))) |
| 3339 | (setq init (cdr init))) | ||
| 3340 | 3338 | ||
| 3341 | (error | 3339 | (error |
| 3342 | (if current-var | 3340 | (if current-var |
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el index 97491e4d1d7..5c68de4b057 100644 --- a/lisp/progmodes/cc-mode.el +++ b/lisp/progmodes/cc-mode.el | |||
| @@ -1265,7 +1265,7 @@ Note that the style variables are always made local to the buffer." | |||
| 1265 | ;; | 1265 | ;; |
| 1266 | ;; | 1266 | ;; |
| 1267 | ;; void myfunc(T* p) {} | 1267 | ;; void myfunc(T* p) {} |
| 1268 | ;; | 1268 | ;; |
| 1269 | ;; Type a space in the first blank line, and the fontification of the next | 1269 | ;; Type a space in the first blank line, and the fontification of the next |
| 1270 | ;; line was fouled up by context fontification. | 1270 | ;; line was fouled up by context fontification. |
| 1271 | (let (new-beg new-end new-region case-fold-search | 1271 | (let (new-beg new-end new-region case-fold-search |
| @@ -1455,7 +1455,8 @@ This function is called from `c-common-init', once per mode initialization." | |||
| 1455 | 1455 | ||
| 1456 | ;;;###autoload | 1456 | ;;;###autoload |
| 1457 | (define-derived-mode c-mode prog-mode "C" | 1457 | (define-derived-mode c-mode prog-mode "C" |
| 1458 | "Major mode for editing K&R and ANSI C code. | 1458 | "Major mode for editing C code. |
| 1459 | |||
| 1459 | To submit a problem report, enter `\\[c-submit-bug-report]' from a | 1460 | To submit a problem report, enter `\\[c-submit-bug-report]' from a |
| 1460 | c-mode buffer. This automatically sets up a mail buffer with version | 1461 | c-mode buffer. This automatically sets up a mail buffer with version |
| 1461 | information already added. You just need to add a description of the | 1462 | information already added. You just need to add a description of the |
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index da36647f2cd..9afece9e30b 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el | |||
| @@ -277,7 +277,7 @@ nil." | |||
| 277 | If t, hitting TAB always just indents the current line. If nil, hitting | 277 | If t, hitting TAB always just indents the current line. If nil, hitting |
| 278 | TAB indents the current line if point is at the left margin or in the | 278 | TAB indents the current line if point is at the left margin or in the |
| 279 | line's indentation, otherwise it inserts a `real' tab character \(see | 279 | line's indentation, otherwise it inserts a `real' tab character \(see |
| 280 | note\). If some other value (not nil or t), then tab is inserted only | 280 | note). If some other value \(not nil or t), then tab is inserted only |
| 281 | within literals \(comments and strings), but the line is always | 281 | within literals \(comments and strings), but the line is always |
| 282 | reindented. | 282 | reindented. |
| 283 | 283 | ||
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el index 96bb8d3a112..78c8d94576b 100644 --- a/lisp/progmodes/cfengine.el +++ b/lisp/progmodes/cfengine.el | |||
| @@ -1005,12 +1005,12 @@ Intended as the value of `indent-line-function'." | |||
| 1005 | (point)))) | 1005 | (point)))) |
| 1006 | (let ((paragraph-start | 1006 | (let ((paragraph-start |
| 1007 | ;; Include start of parenthesized block. | 1007 | ;; Include start of parenthesized block. |
| 1008 | "\f\\|[ \t]*$\\|.*\(") | 1008 | "\f\\|[ \t]*$\\|.*(") |
| 1009 | (paragraph-separate | 1009 | (paragraph-separate |
| 1010 | ;; Include action and class lines, start and end of | 1010 | ;; Include action and class lines, start and end of |
| 1011 | ;; bracketed blocks and end of parenthesized blocks to | 1011 | ;; bracketed blocks and end of parenthesized blocks to |
| 1012 | ;; avoid including these in fill. This isn't ideal. | 1012 | ;; avoid including these in fill. This isn't ideal. |
| 1013 | "[ \t\f]*$\\|.*#\\|.*[\){}]\\|\\s-*[[:alpha:]_().|!]+:") | 1013 | "[ \t\f]*$\\|.*#\\|.*[){}]\\|\\s-*[[:alpha:]_().|!]+:") |
| 1014 | fill-paragraph-function) | 1014 | fill-paragraph-function) |
| 1015 | (fill-paragraph justify)) | 1015 | (fill-paragraph justify)) |
| 1016 | t)) | 1016 | t)) |
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el index 005e71a825e..0f5b1bb8c6a 100644 --- a/lisp/progmodes/cmacexp.el +++ b/lisp/progmodes/cmacexp.el | |||
| @@ -390,7 +390,7 @@ Optional arg DISPLAY non-nil means show messages in the echo area." | |||
| 390 | ;; the way of font-lock, highlighting etc. | 390 | ;; the way of font-lock, highlighting etc. |
| 391 | (insert | 391 | (insert |
| 392 | (format | 392 | (format |
| 393 | "/* Preprocessor terminated with status %s\n\n Messages from '%s\':\n\n" | 393 | "/* Preprocessor terminated with status %s\n\n Messages from '%s':\n\n" |
| 394 | exit-status cppcommand)) | 394 | exit-status cppcommand)) |
| 395 | (goto-char (+ (point) | 395 | (goto-char (+ (point) |
| 396 | (nth 1 (insert-file-contents tempname)))) | 396 | (nth 1 (insert-file-contents tempname)))) |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index a6e9ed8889a..9cb367aa633 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -167,7 +167,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1)) | |||
| 167 | 167 | ||
| 168 | (cucumber | 168 | (cucumber |
| 169 | "\\(?:^cucumber\\(?: -p [^[:space:]]+\\)?\\|#\\)\ | 169 | "\\(?:^cucumber\\(?: -p [^[:space:]]+\\)?\\|#\\)\ |
| 170 | \\(?: \\)\\([^\(].*\\):\\([1-9][0-9]*\\)" 1 2) | 170 | \\(?: \\)\\([^(].*\\):\\([1-9][0-9]*\\)" 1 2) |
| 171 | 171 | ||
| 172 | (msft | 172 | (msft |
| 173 | ;; Must be before edg-1, so that MSVC's longer messages are | 173 | ;; Must be before edg-1, so that MSVC's longer messages are |
| @@ -230,7 +230,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1)) | |||
| 230 | 1 2 3 (4 . 5)) | 230 | 1 2 3 (4 . 5)) |
| 231 | 231 | ||
| 232 | (ruby-Test::Unit | 232 | (ruby-Test::Unit |
| 233 | "^[\t ]*\\[\\([^\(].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:in " 1 2) | 233 | "^[\t ]*\\[\\([^(].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:in " 1 2) |
| 234 | 234 | ||
| 235 | (gnu | 235 | (gnu |
| 236 | ;; The first line matches the program name for | 236 | ;; The first line matches the program name for |
| @@ -377,7 +377,7 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" | |||
| 377 | 3 4 5 (1 . 2)) | 377 | 3 4 5 (1 . 2)) |
| 378 | 378 | ||
| 379 | (sun-ada | 379 | (sun-ada |
| 380 | "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., \(-]" 1 2 3) | 380 | "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., (-]" 1 2 3) |
| 381 | 381 | ||
| 382 | (watcom | 382 | (watcom |
| 383 | "^[ \t]*\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)): ?\ | 383 | "^[ \t]*\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)): ?\ |
| @@ -477,7 +477,29 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" | |||
| 477 | ;; | 477 | ;; |
| 478 | "^\\([^ \t\r\n(]+\\) (\\([0-9]+\\):\\([0-9]+\\)) " | 478 | "^\\([^ \t\r\n(]+\\) (\\([0-9]+\\):\\([0-9]+\\)) " |
| 479 | 1 2 3) | 479 | 1 2 3) |
| 480 | (guile-file "^In \\(.+\\):\n" 1) | 480 | |
| 481 | ;; Guile compilation yields file-headers in the following format: | ||
| 482 | ;; | ||
| 483 | ;; In sourcefile.scm: | ||
| 484 | ;; | ||
| 485 | ;; We need to catch those, but we also need to be aware that Emacs | ||
| 486 | ;; byte-compilation yields compiler headers in similar form of | ||
| 487 | ;; those: | ||
| 488 | ;; | ||
| 489 | ;; In toplevel form: | ||
| 490 | ;; In end of data: | ||
| 491 | ;; | ||
| 492 | ;; We want to catch the Guile file-headers but not the Emacs | ||
| 493 | ;; byte-compilation headers, because that will cause next-error | ||
| 494 | ;; and prev-error to break, because the files "toplevel form" and | ||
| 495 | ;; "end of data" does not exist. | ||
| 496 | ;; | ||
| 497 | ;; To differentiate between these two cases, we require that the | ||
| 498 | ;; file-match must always contain an extension. | ||
| 499 | ;; | ||
| 500 | ;; We should also only treat this as "info", not "error", because | ||
| 501 | ;; we do not know what lines will follow. | ||
| 502 | (guile-file "^In \\(.+\\..+\\):\n" 1 nil nil 0) | ||
| 481 | (guile-line "^ *\\([0-9]+\\): *\\([0-9]+\\)" nil 1 2) | 503 | (guile-line "^ *\\([0-9]+\\): *\\([0-9]+\\)" nil 1 2) |
| 482 | ) | 504 | ) |
| 483 | "Alist of values for `compilation-error-regexp-alist'.") | 505 | "Alist of values for `compilation-error-regexp-alist'.") |
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index b8ba170a246..ab3aa7f993a 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el | |||
| @@ -395,12 +395,12 @@ Affects: `cperl-font-lock', `cperl-electric-lbrace-space', | |||
| 395 | :type 'boolean | 395 | :type 'boolean |
| 396 | :group 'cperl-indentation-details) | 396 | :group 'cperl-indentation-details) |
| 397 | 397 | ||
| 398 | (defcustom cperl-vc-sccs-header '("($sccs) = ('%W\%' =~ /(\\d+(\\.\\d+)+)/) ;") | 398 | (defcustom cperl-vc-sccs-header '("($sccs) = ('%W\ %' =~ /(\\d+(\\.\\d+)+)/) ;") |
| 399 | "*Special version of `vc-sccs-header' that is used in CPerl mode buffers." | 399 | "*Special version of `vc-sccs-header' that is used in CPerl mode buffers." |
| 400 | :type '(repeat string) | 400 | :type '(repeat string) |
| 401 | :group 'cperl) | 401 | :group 'cperl) |
| 402 | 402 | ||
| 403 | (defcustom cperl-vc-rcs-header '("($rcs) = (' $Id\$ ' =~ /(\\d+(\\.\\d+)+)/);") | 403 | (defcustom cperl-vc-rcs-header '("($rcs) = (' $Id\ $ ' =~ /(\\d+(\\.\\d+)+)/);") |
| 404 | "*Special version of `vc-rcs-header' that is used in CPerl mode buffers." | 404 | "*Special version of `vc-rcs-header' that is used in CPerl mode buffers." |
| 405 | :type '(repeat string) | 405 | :type '(repeat string) |
| 406 | :group 'cperl) | 406 | :group 'cperl) |
| @@ -793,7 +793,7 @@ corrected problems are: POD sections, here-documents, regexps. The | |||
| 793 | operations are: highlighting, indentation, electric keywords, electric | 793 | operations are: highlighting, indentation, electric keywords, electric |
| 794 | braces. | 794 | braces. |
| 795 | 795 | ||
| 796 | This may be confusing, since the regexp s#//#/#\; may be highlighted | 796 | This may be confusing, since the regexp s#//#/#; may be highlighted |
| 797 | as a comment, but it will be recognized as a regexp by the indentation | 797 | as a comment, but it will be recognized as a regexp by the indentation |
| 798 | code. Or the opposite case, when a POD section is highlighted, but | 798 | code. Or the opposite case, when a POD section is highlighted, but |
| 799 | may break the indentation of the following code (though indentation | 799 | may break the indentation of the following code (though indentation |
| @@ -3672,7 +3672,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 3672 | is-REx is-x-REx REx-subgr-start REx-subgr-end was-subgr i2 hairy-RE | 3672 | is-REx is-x-REx REx-subgr-start REx-subgr-end was-subgr i2 hairy-RE |
| 3673 | (case-fold-search nil) (inhibit-read-only t) (buffer-undo-list t) | 3673 | (case-fold-search nil) (inhibit-read-only t) (buffer-undo-list t) |
| 3674 | (modified (buffer-modified-p)) overshoot is-o-REx name | 3674 | (modified (buffer-modified-p)) overshoot is-o-REx name |
| 3675 | (after-change-functions nil) | 3675 | (inhibit-modification-hooks t) |
| 3676 | (cperl-font-locking t) | 3676 | (cperl-font-locking t) |
| 3677 | (use-syntax-state (and cperl-syntax-state | 3677 | (use-syntax-state (and cperl-syntax-state |
| 3678 | (>= min (car cperl-syntax-state)))) | 3678 | (>= min (car cperl-syntax-state)))) |
| @@ -4585,13 +4585,13 @@ the sections using `cperl-pod-head-face', `cperl-pod-face', | |||
| 4585 | ((eq (char-after b) ?\: ) | 4585 | ((eq (char-after b) ?\: ) |
| 4586 | "\\\\*\\[\\\\:\\^?\\sw+\\\\:]") | 4586 | "\\\\*\\[\\\\:\\^?\\sw+\\\\:]") |
| 4587 | ((eq (char-after b) ?^ ) | 4587 | ((eq (char-after b) ?^ ) |
| 4588 | "\\\\*\\[:\\(\\\\\\^\\)?\\sw+:\]") | 4588 | "\\\\*\\[:\\(\\\\\\^\\)?\\sw+:]") |
| 4589 | ((eq (char-syntax (char-after b)) | 4589 | ((eq (char-syntax (char-after b)) |
| 4590 | ?w) | 4590 | ?w) |
| 4591 | (concat | 4591 | (concat |
| 4592 | "\\\\*\\[:\\(\\\\\\^\\)?\\(\\\\" | 4592 | "\\\\*\\[:\\(\\\\\\^\\)?\\(\\\\" |
| 4593 | (char-to-string (char-after b)) | 4593 | (char-to-string (char-after b)) |
| 4594 | "\\|\\sw\\)+:\]")) | 4594 | "\\|\\sw\\)+:]")) |
| 4595 | (t "\\\\*\\[:\\^?\\sw*:]"))) | 4595 | (t "\\\\*\\[:\\^?\\sw*:]"))) |
| 4596 | (goto-char REx-subgr-end) | 4596 | (goto-char REx-subgr-end) |
| 4597 | (cperl-highlight-charclass | 4597 | (cperl-highlight-charclass |
| @@ -5043,7 +5043,7 @@ conditional/loop constructs." | |||
| 5043 | (goto-char top)) | 5043 | (goto-char top)) |
| 5044 | (if (looking-at ; Try Plan C: continuation block | 5044 | (if (looking-at ; Try Plan C: continuation block |
| 5045 | (concat cperl-maybe-white-and-comment-rex | 5045 | (concat cperl-maybe-white-and-comment-rex |
| 5046 | "\\<\\(else\\|elsif\|continue\\)\\>")) | 5046 | "\\<\\(else\\|elsif\\|continue\\)\\>")) |
| 5047 | (progn | 5047 | (progn |
| 5048 | (goto-char (match-end 0)) | 5048 | (goto-char (match-end 0)) |
| 5049 | (setq tmp-end (point-at-eol))) | 5049 | (setq tmp-end (point-at-eol))) |
| @@ -5706,7 +5706,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 5706 | "redo" "return" "local" "exec" "sub" "do" "dump" "use" "our" | 5706 | "redo" "return" "local" "exec" "sub" "do" "dump" "use" "our" |
| 5707 | "require" "package" "eval" "my" "BEGIN" "END" "CHECK" "INIT") | 5707 | "require" "package" "eval" "my" "BEGIN" "END" "CHECK" "INIT") |
| 5708 | "\\|") ; Flow control | 5708 | "\\|") ; Flow control |
| 5709 | "\\)\\>") 2) ; was "\\)[ \n\t;():,\|&]" | 5709 | "\\)\\>") 2) ; was "\\)[ \n\t;():,|&]" |
| 5710 | ; In what follows we use `type' style | 5710 | ; In what follows we use `type' style |
| 5711 | ; for overwritable builtins | 5711 | ; for overwritable builtins |
| 5712 | (list | 5712 | (list |
| @@ -5850,7 +5850,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 5850 | (1 font-lock-string-face t)))) | 5850 | (1 font-lock-string-face t)))) |
| 5851 | (t '("\\([]}\\\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ \t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}" | 5851 | (t '("\\([]}\\\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ \t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}" |
| 5852 | 2 font-lock-string-face t))) | 5852 | 2 font-lock-string-face t))) |
| 5853 | '("[\[ \t{,(]\\(-?[a-zA-Z0-9_:]+\\)[ \t]*=>" 1 | 5853 | '("[[ \t{,(]\\(-?[a-zA-Z0-9_:]+\\)[ \t]*=>" 1 |
| 5854 | font-lock-string-face t) | 5854 | font-lock-string-face t) |
| 5855 | '("^[ \t]*\\([a-zA-Z0-9_]+[ \t]*:\\)[ \t]*\\($\\|{\\|\\<\\(until\\|while\\|for\\(each\\)?\\|do\\)\\>\\)" 1 | 5855 | '("^[ \t]*\\([a-zA-Z0-9_]+[ \t]*:\\)[ \t]*\\($\\|{\\|\\<\\(until\\|while\\|for\\(each\\)?\\|do\\)\\>\\)" 1 |
| 5856 | font-lock-constant-face) ; labels | 5856 | font-lock-constant-face) ; labels |
| @@ -5935,7 +5935,7 @@ indentation and initial hashes. Behaves usually outside of comment." | |||
| 5935 | (and (string< "21.1.10" emacs-version) | 5935 | (and (string< "21.1.10" emacs-version) |
| 5936 | (string< emacs-version "21.1.2"))) | 5936 | (string< emacs-version "21.1.2"))) |
| 5937 | '( | 5937 | '( |
| 5938 | ("\\(\\([@%]\\|\$#\\)[a-zA-Z_:][a-zA-Z0-9_:]*\\)" 1 | 5938 | ("\\(\\([@%]\\|\\$#\\)[a-zA-Z_:][a-zA-Z0-9_:]*\\)" 1 |
| 5939 | (if (eq (char-after (match-beginning 2)) ?%) | 5939 | (if (eq (char-after (match-beginning 2)) ?%) |
| 5940 | 'cperl-hash-face | 5940 | 'cperl-hash-face |
| 5941 | 'cperl-array-face) | 5941 | 'cperl-array-face) |
| @@ -8882,7 +8882,7 @@ Delay of auto-help controlled by `cperl-lazy-help-time'." | |||
| 8882 | (defun cperl-font-lock-unfontify-region-function (beg end) | 8882 | (defun cperl-font-lock-unfontify-region-function (beg end) |
| 8883 | (let* ((modified (buffer-modified-p)) (buffer-undo-list t) | 8883 | (let* ((modified (buffer-modified-p)) (buffer-undo-list t) |
| 8884 | (inhibit-read-only t) (inhibit-point-motion-hooks t) | 8884 | (inhibit-read-only t) (inhibit-point-motion-hooks t) |
| 8885 | before-change-functions after-change-functions | 8885 | (inhibit-modification-hooks t) |
| 8886 | deactivate-mark buffer-file-name buffer-file-truename) | 8886 | deactivate-mark buffer-file-name buffer-file-truename) |
| 8887 | (remove-text-properties beg end '(face nil)) | 8887 | (remove-text-properties beg end '(face nil)) |
| 8888 | (if (and (not modified) (buffer-modified-p)) | 8888 | (if (and (not modified) (buffer-modified-p)) |
diff --git a/lisp/progmodes/dcl-mode.el b/lisp/progmodes/dcl-mode.el index 4c997bdd4d0..8c8bef06ecc 100644 --- a/lisp/progmodes/dcl-mode.el +++ b/lisp/progmodes/dcl-mode.el | |||
| @@ -259,12 +259,12 @@ never indented." | |||
| 259 | :group 'dcl) | 259 | :group 'dcl) |
| 260 | 260 | ||
| 261 | (defcustom dcl-imenu-generic-expression | 261 | (defcustom dcl-imenu-generic-expression |
| 262 | `((nil "^\\$[ \t]*\\([A-Za-z0-9_\$]+\\):[ \t]+SUBROUTINE\\b" 1) | 262 | `((nil "^\\$[ \t]*\\([A-Za-z0-9_$]+\\):[ \t]+SUBROUTINE\\b" 1) |
| 263 | (,dcl-imenu-label-labels | 263 | (,dcl-imenu-label-labels |
| 264 | "^\\$[ \t]*\\([A-Za-z0-9_\$]+\\):\\([ \t]\\|$\\)" 1) | 264 | "^\\$[ \t]*\\([A-Za-z0-9_$]+\\):\\([ \t]\\|$\\)" 1) |
| 265 | (,dcl-imenu-label-goto "\\s-GOTO[ \t]+\\([A-Za-z0-9_\$]+\\)" 1) | 265 | (,dcl-imenu-label-goto "\\s-GOTO[ \t]+\\([A-Za-z0-9_$]+\\)" 1) |
| 266 | (,dcl-imenu-label-gosub "\\s-GOSUB[ \t]+\\([A-Za-z0-9_\$]+\\)" 1) | 266 | (,dcl-imenu-label-gosub "\\s-GOSUB[ \t]+\\([A-Za-z0-9_$]+\\)" 1) |
| 267 | (,dcl-imenu-label-call "\\s-CALL[ \t]+\\([A-Za-z0-9_\$]+\\)" 1)) | 267 | (,dcl-imenu-label-call "\\s-CALL[ \t]+\\([A-Za-z0-9_$]+\\)" 1)) |
| 268 | "Default imenu generic expression for DCL. | 268 | "Default imenu generic expression for DCL. |
| 269 | 269 | ||
| 270 | The default includes SUBROUTINE labels in the main listing and | 270 | The default includes SUBROUTINE labels in the main listing and |
| @@ -369,7 +369,7 @@ followed by space or tab." | |||
| 369 | 369 | ||
| 370 | 370 | ||
| 371 | (defcustom dcl-label-r | 371 | (defcustom dcl-label-r |
| 372 | "[a-zA-Z0-9_\$]*:\\([ \t!]\\|$\\)" | 372 | "[a-zA-Z0-9_$]*:\\([ \t!]\\|$\\)" |
| 373 | "Regular expression describing a label. | 373 | "Regular expression describing a label. |
| 374 | A label is a name followed by a colon followed by white-space or end-of-line." | 374 | A label is a name followed by a colon followed by white-space or end-of-line." |
| 375 | :type 'regexp | 375 | :type 'regexp |
| @@ -453,12 +453,12 @@ Preloaded with all known option names from dcl-option-alist") | |||
| 453 | ;; above. This version won't find GOTOs in comments or text strings. | 453 | ;; above. This version won't find GOTOs in comments or text strings. |
| 454 | ;(defvar dcl-imenu-generic-expression | 454 | ;(defvar dcl-imenu-generic-expression |
| 455 | ; (` | 455 | ; (` |
| 456 | ; ((nil "^\\$[ \t]*\\([A-Za-z0-9_\$]+\\):[ \t]+SUBROUTINE\\b" 1) | 456 | ; ((nil "^\\$[ \t]*\\([A-Za-z0-9_$]+\\):[ \t]+SUBROUTINE\\b" 1) |
| 457 | ; ("Labels" "^\\$[ \t]*\\([A-Za-z0-9_\$]+\\):\\([ \t]\\|$\\)" 1) | 457 | ; ("Labels" "^\\$[ \t]*\\([A-Za-z0-9_$]+\\):\\([ \t]\\|$\\)" 1) |
| 458 | ; ("GOTO" (, (concat dcl-cmd-r "GOTO[ \t]+\\([A-Za-z0-9_\$]+\\)")) 5) | 458 | ; ("GOTO" (, (concat dcl-cmd-r "GOTO[ \t]+\\([A-Za-z0-9_$]+\\)")) 5) |
| 459 | ; ("GOSUB" (, (concat dcl-cmd-r | 459 | ; ("GOSUB" (, (concat dcl-cmd-r |
| 460 | ; "GOSUB[ \t]+\\([A-Za-z0-9_\$]+\\)")) 5) | 460 | ; "GOSUB[ \t]+\\([A-Za-z0-9_$]+\\)")) 5) |
| 461 | ; ("CALL" (, (concat dcl-cmd-r "CALL[ \t]+\\([A-Za-z0-9_\$]+\\)")) 5))) | 461 | ; ("CALL" (, (concat dcl-cmd-r "CALL[ \t]+\\([A-Za-z0-9_$]+\\)")) 5))) |
| 462 | ; "*Default imenu generic expression for DCL. | 462 | ; "*Default imenu generic expression for DCL. |
| 463 | 463 | ||
| 464 | ;The default includes SUBROUTINE labels in the main listing and | 464 | ;The default includes SUBROUTINE labels in the main listing and |
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el index c694bbd5832..6d8e90c2d6a 100644 --- a/lisp/progmodes/ebnf2ps.el +++ b/lisp/progmodes/ebnf2ps.el | |||
| @@ -1899,7 +1899,7 @@ It's only used when `ebnf-syntax' is `iso-ebnf'." | |||
| 1899 | :group 'ebnf-syntactic) | 1899 | :group 'ebnf-syntactic) |
| 1900 | 1900 | ||
| 1901 | 1901 | ||
| 1902 | (defcustom ebnf-file-suffix-regexp "\.[Bb][Nn][Ff]$" | 1902 | (defcustom ebnf-file-suffix-regexp "\\.[Bb][Nn][Ff]$" |
| 1903 | "Specify file name suffix that contains EBNF. | 1903 | "Specify file name suffix that contains EBNF. |
| 1904 | 1904 | ||
| 1905 | See `ebnf-eps-directory' command." | 1905 | See `ebnf-eps-directory' command." |
| @@ -2731,7 +2731,7 @@ See also `ebnf-syntax-buffer'." | |||
| 2731 | (ebnf-syntax . 'ebnf) | 2731 | (ebnf-syntax . 'ebnf) |
| 2732 | (ebnf-iso-alternative-p . nil) | 2732 | (ebnf-iso-alternative-p . nil) |
| 2733 | (ebnf-iso-normalize-p . nil) | 2733 | (ebnf-iso-normalize-p . nil) |
| 2734 | (ebnf-file-suffix-regexp . "\.[Bb][Nn][Ff]$") | 2734 | (ebnf-file-suffix-regexp . "\\.[Bb][Nn][Ff]$") |
| 2735 | (ebnf-eps-prefix . "ebnf--") | 2735 | (ebnf-eps-prefix . "ebnf--") |
| 2736 | (ebnf-eps-header-font . '(11 Helvetica "Black" "White" bold)) | 2736 | (ebnf-eps-header-font . '(11 Helvetica "Black" "White" bold)) |
| 2737 | (ebnf-eps-header . nil) | 2737 | (ebnf-eps-header . nil) |
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 1ea9f174775..bdc304e0aa5 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el | |||
| @@ -632,16 +632,16 @@ otherwise build the summary from TYPE and SYMBOL." | |||
| 632 | (xref-make-elisp-location symbol type file))) | 632 | (xref-make-elisp-location symbol type file))) |
| 633 | 633 | ||
| 634 | (defvar elisp-xref-find-def-functions nil | 634 | (defvar elisp-xref-find-def-functions nil |
| 635 | "List of functions to be run from ‘elisp--xref-find-definitions’ to add additional xrefs. | 635 | "List of functions to be run from `elisp--xref-find-definitions' to add additional xrefs. |
| 636 | Called with one arg; the symbol whose definition is desired. | 636 | Called with one arg; the symbol whose definition is desired. |
| 637 | Each function should return a list of xrefs, or nil; the first | 637 | Each function should return a list of xrefs, or nil; the first |
| 638 | non-nil result supercedes the xrefs produced by | 638 | non-nil result supercedes the xrefs produced by |
| 639 | ‘elisp--xref-find-definitions’.") | 639 | `elisp--xref-find-definitions'.") |
| 640 | 640 | ||
| 641 | ;; FIXME: name should be singular; match xref-find-definition | 641 | ;; FIXME: name should be singular; match xref-find-definition |
| 642 | (defun elisp--xref-find-definitions (symbol) | 642 | (defun elisp--xref-find-definitions (symbol) |
| 643 | ;; The file name is not known when `symbol' is defined via interactive eval. | 643 | ;; The file name is not known when `symbol' is defined via interactive eval. |
| 644 | (let (xrefs temp) | 644 | (let (xrefs) |
| 645 | 645 | ||
| 646 | (let ((temp elisp-xref-find-def-functions)) | 646 | (let ((temp elisp-xref-find-def-functions)) |
| 647 | (while (and (null xrefs) | 647 | (while (and (null xrefs) |
| @@ -720,10 +720,15 @@ non-nil result supercedes the xrefs produced by | |||
| 720 | (dolist (method (cl--generic-method-table generic)) | 720 | (dolist (method (cl--generic-method-table generic)) |
| 721 | (let* ((info (cl--generic-method-info method));; qual-string combined-args doconly | 721 | (let* ((info (cl--generic-method-info method));; qual-string combined-args doconly |
| 722 | (specializers (cl--generic-method-specializers method)) | 722 | (specializers (cl--generic-method-specializers method)) |
| 723 | (non-default nil) | ||
| 723 | (met-name (cons symbol specializers)) | 724 | (met-name (cons symbol specializers)) |
| 724 | (file (find-lisp-object-file-name met-name 'cl-defmethod))) | 725 | (file (find-lisp-object-file-name met-name 'cl-defmethod))) |
| 726 | (dolist (item specializers) | ||
| 727 | ;; default method has all 't' in specializers | ||
| 728 | (setq non-default (or non-default (not (equal t item))))) | ||
| 729 | |||
| 725 | (when (and file | 730 | (when (and file |
| 726 | (or specializers ;; default method has null specializers | 731 | (or non-default |
| 727 | (nth 2 info))) ;; assuming only co-located default has null doc string | 732 | (nth 2 info))) ;; assuming only co-located default has null doc string |
| 728 | (if specializers | 733 | (if specializers |
| 729 | (let ((summary (format elisp--xref-format-extra 'cl-defmethod symbol (nth 1 info)))) | 734 | (let ((summary (format elisp--xref-format-extra 'cl-defmethod symbol (nth 1 info)))) |
| @@ -800,6 +805,7 @@ non-nil result supercedes the xrefs produced by | |||
| 800 | (declare-function project-current "project") | 805 | (declare-function project-current "project") |
| 801 | 806 | ||
| 802 | (defun elisp--xref-find-references (symbol) | 807 | (defun elisp--xref-find-references (symbol) |
| 808 | "Find all references to SYMBOL (a string) in the current project." | ||
| 803 | (cl-mapcan | 809 | (cl-mapcan |
| 804 | (lambda (dir) | 810 | (lambda (dir) |
| 805 | (xref-collect-references symbol dir)) | 811 | (xref-collect-references symbol dir)) |
| @@ -928,6 +934,7 @@ Semicolons start comments. | |||
| 928 | (goto-char end))))))) | 934 | (goto-char end))))))) |
| 929 | 935 | ||
| 930 | (defun elisp-byte-code-syntax-propertize (start end) | 936 | (defun elisp-byte-code-syntax-propertize (start end) |
| 937 | (goto-char start) | ||
| 931 | (elisp--byte-code-comment end (point)) | 938 | (elisp--byte-code-comment end (point)) |
| 932 | (funcall | 939 | (funcall |
| 933 | (syntax-propertize-rules | 940 | (syntax-propertize-rules |
| @@ -1240,7 +1247,7 @@ If the current defun is actually a call to `defvar', | |||
| 1240 | then reset the variable using the initial value expression | 1247 | then reset the variable using the initial value expression |
| 1241 | even if the variable already has some other value. | 1248 | even if the variable already has some other value. |
| 1242 | \(Normally `defvar' does not change the variable's value | 1249 | \(Normally `defvar' does not change the variable's value |
| 1243 | if it already has a value.\) | 1250 | if it already has a value.) |
| 1244 | 1251 | ||
| 1245 | Return the result of evaluation." | 1252 | Return the result of evaluation." |
| 1246 | ;; FIXME: the print-length/level bindings should only be applied while | 1253 | ;; FIXME: the print-length/level bindings should only be applied while |
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index e8a1ae455ee..0ac59e1a1ea 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el | |||
| @@ -240,7 +240,7 @@ | |||
| 240 | :group 'f90-indent) | 240 | :group 'f90-indent) |
| 241 | 241 | ||
| 242 | (defcustom f90-beginning-ampersand t | 242 | (defcustom f90-beginning-ampersand t |
| 243 | "Non-nil gives automatic insertion of \& at start of continuation line." | 243 | "Non-nil gives automatic insertion of `&' at start of continuation line." |
| 244 | :type 'boolean | 244 | :type 'boolean |
| 245 | :safe 'booleanp | 245 | :safe 'booleanp |
| 246 | :group 'f90) | 246 | :group 'f90) |
| @@ -649,7 +649,7 @@ forall\\|block\\|critical\\)\\)\\_>" | |||
| 649 | \\|enumerator\\|procedure\\|\ | 649 | \\|enumerator\\|procedure\\|\ |
| 650 | logical\\|double[ \t]*precision\\|type[ \t]*(\\(?:\\sw\\|\\s_\\)+)\\|none\\)[ \t]*" | 650 | logical\\|double[ \t]*precision\\|type[ \t]*(\\(?:\\sw\\|\\s_\\)+)\\|none\\)[ \t]*" |
| 651 | (1 font-lock-keyword-face) (2 font-lock-type-face)) | 651 | (1 font-lock-keyword-face) (2 font-lock-type-face)) |
| 652 | '("\\_<\\(namelist\\|common\\)[ \t]*\/\\(\\(?:\\sw\\|\\s_\\)+\\)?\/" | 652 | '("\\_<\\(namelist\\|common\\)[ \t]*/\\(\\(?:\\sw\\|\\s_\\)+\\)?\/" |
| 653 | (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) | 653 | (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) |
| 654 | "\\_<else\\([ \t]*if\\|where\\)?\\_>" | 654 | "\\_<else\\([ \t]*if\\|where\\)?\\_>" |
| 655 | '("\\(&\\)[ \t]*\\(!\\|$\\)" (1 font-lock-keyword-face)) | 655 | '("\\(&\\)[ \t]*\\(!\\|$\\)" (1 font-lock-keyword-face)) |
| @@ -954,8 +954,8 @@ Used in the F90 entry in `hs-special-modes-alist'.") | |||
| 954 | ;; and also variables of derived type "type (foo)". | 954 | ;; and also variables of derived type "type (foo)". |
| 955 | ;; "type, foo" must be a block (?). | 955 | ;; "type, foo" must be a block (?). |
| 956 | "type[ \t,]\\(" | 956 | "type[ \t,]\\(" |
| 957 | "[^i(!\n\"\& \t]\\|" ; not-i( | 957 | "[^i(!\n\"& \t]\\|" ; not-i( |
| 958 | "i[^s!\n\"\& \t]\\|" ; i not-s | 958 | "i[^s!\n\"& \t]\\|" ; i not-s |
| 959 | "is\\(?:\\sw\\|\\s_\\)\\)\\|" | 959 | "is\\(?:\\sw\\|\\s_\\)\\)\\|" |
| 960 | ;; "abstract interface" is F2003; "submodule" is F2008. | 960 | ;; "abstract interface" is F2003; "submodule" is F2008. |
| 961 | "program\\|\\(?:abstract[ \t]*\\)?interface\\|\\(?:sub\\)?module\\|" | 961 | "program\\|\\(?:abstract[ \t]*\\)?interface\\|\\(?:sub\\)?module\\|" |
| @@ -992,9 +992,9 @@ Set subexpression 1 in the match-data to the name of the type." | |||
| 992 | found)) | 992 | found)) |
| 993 | 993 | ||
| 994 | (defvar f90-imenu-generic-expression | 994 | (defvar f90-imenu-generic-expression |
| 995 | (let ((good-char "[^!\"\&\n \t]") (not-e "[^e!\n\"\& \t]") | 995 | (let ((good-char "[^!\"&\n \t]") (not-e "[^e!\n\"& \t]") |
| 996 | (not-n "[^n!\n\"\& \t]") (not-d "[^d!\n\"\& \t]") | 996 | (not-n "[^n!\n\"& \t]") (not-d "[^d!\n\"& \t]") |
| 997 | ;; (not-ib "[^i(!\n\"\& \t]") (not-s "[^s!\n\"\& \t]") | 997 | ;; (not-ib "[^i(!\n\"& \t]") (not-s "[^s!\n\"& \t]") |
| 998 | ) | 998 | ) |
| 999 | `((nil "^[ \t0-9]*program[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)" 1) | 999 | `((nil "^[ \t0-9]*program[ \t]+\\(\\(?:\\sw\\|\\s_\\)+\\)" 1) |
| 1000 | ("Submodules" "^[ \t0-9]*submodule[ \t]*([^)\n]+)[ \t]*\ | 1000 | ("Submodules" "^[ \t0-9]*submodule[ \t]*([^)\n]+)[ \t]*\ |
| @@ -1015,7 +1015,7 @@ Set subexpression 1 in the match-data to the name of the type." | |||
| 1015 | "\\(" | 1015 | "\\(" |
| 1016 | ;; At least three non-space characters before function/subroutine. | 1016 | ;; At least three non-space characters before function/subroutine. |
| 1017 | ;; Check that the last three non-space characters do not spell E N D. | 1017 | ;; Check that the last three non-space characters do not spell E N D. |
| 1018 | "[^!\"\&\n]*\\(" | 1018 | "[^!\"&\n]*\\(" |
| 1019 | not-e good-char good-char "\\|" | 1019 | not-e good-char good-char "\\|" |
| 1020 | good-char not-n good-char "\\|" | 1020 | good-char not-n good-char "\\|" |
| 1021 | good-char good-char not-d "\\)" | 1021 | good-char good-char not-d "\\)" |
| @@ -1154,7 +1154,7 @@ Variables controlling indentation style and extra features: | |||
| 1154 | Non-nil causes `f90-do-auto-fill' to break lines before delimiters | 1154 | Non-nil causes `f90-do-auto-fill' to break lines before delimiters |
| 1155 | (default t). | 1155 | (default t). |
| 1156 | `f90-beginning-ampersand' | 1156 | `f90-beginning-ampersand' |
| 1157 | Automatic insertion of \& at beginning of continuation lines (default t). | 1157 | Automatic insertion of `&' at beginning of continuation lines (default t). |
| 1158 | `f90-smart-end' | 1158 | `f90-smart-end' |
| 1159 | From an END statement, check and fill the end using matching block start. | 1159 | From an END statement, check and fill the end using matching block start. |
| 1160 | Allowed values are `blink', `no-blink', and nil, which determine | 1160 | Allowed values are `blink', `no-blink', and nil, which determine |
| @@ -1378,7 +1378,7 @@ write\\)[ \t]*([^)\n]*)") | |||
| 1378 | ((looking-at "\\(submodule\\)[ \t]*([^)\n]+)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>") | 1378 | ((looking-at "\\(submodule\\)[ \t]*([^)\n]+)[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>") |
| 1379 | (list (match-string 1) (match-string 2))) | 1379 | (list (match-string 1) (match-string 2))) |
| 1380 | ((and (not (looking-at "end[ \t]*\\(function\\|subroutine\\)")) | 1380 | ((and (not (looking-at "end[ \t]*\\(function\\|subroutine\\)")) |
| 1381 | (looking-at "[^!'\"\&\n]*\\(function\\|subroutine\\)[ \t]+\ | 1381 | (looking-at "[^!'\"&\n]*\\(function\\|subroutine\\)[ \t]+\ |
| 1382 | \\(\\(?:\\sw\\|\\s_\\)+\\)")) | 1382 | \\(\\(?:\\sw\\|\\s_\\)+\\)")) |
| 1383 | (list (match-string 1) (match-string 2))))) | 1383 | (list (match-string 1) (match-string 2))))) |
| 1384 | ;; Following will match an un-named main program block; however | 1384 | ;; Following will match an un-named main program block; however |
| @@ -2110,7 +2110,7 @@ Like `join-line', but handles F90 syntax." | |||
| 2110 | (if arg (forward-line 1)) | 2110 | (if arg (forward-line 1)) |
| 2111 | (when (eq (preceding-char) ?\n) | 2111 | (when (eq (preceding-char) ?\n) |
| 2112 | (skip-chars-forward " \t") | 2112 | (skip-chars-forward " \t") |
| 2113 | (if (looking-at "\&") (delete-char 1)) | 2113 | (if (looking-at "&") (delete-char 1)) |
| 2114 | (beginning-of-line) | 2114 | (beginning-of-line) |
| 2115 | (delete-region (point) (1- (point))) | 2115 | (delete-region (point) (1- (point))) |
| 2116 | (skip-chars-backward " \t") | 2116 | (skip-chars-backward " \t") |
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index a9d47431e51..3adadd1386e 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el | |||
| @@ -826,16 +826,16 @@ Convert it to flymake internal format." | |||
| 826 | (append | 826 | (append |
| 827 | '( | 827 | '( |
| 828 | ;; MS Visual C++ 6.0 | 828 | ;; MS Visual C++ 6.0 |
| 829 | ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) \: \\(\\(error\\|warning\\|fatal error\\) \\(C[0-9]+\\):[ \t\n]*\\(.+\\)\\)" | 829 | ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) : \\(\\(error\\|warning\\|fatal error\\) \\(C[0-9]+\\):[ \t\n]*\\(.+\\)\\)" |
| 830 | 1 3 nil 4) | 830 | 1 3 nil 4) |
| 831 | ;; jikes | 831 | ;; jikes |
| 832 | ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)\:\\([0-9]+\\)\:[0-9]+\:[0-9]+\:[0-9]+\: \\(\\(Error\\|Warning\\|Caution\\|Semantic Error\\):[ \t\n]*\\(.+\\)\\)" | 832 | ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\):\\([0-9]+\\):[0-9]+:[0-9]+:[0-9]+: \\(\\(Error\\|Warning\\|Caution\\|Semantic Error\\):[ \t\n]*\\(.+\\)\\)" |
| 833 | 1 3 nil 4) | 833 | 1 3 nil 4) |
| 834 | ;; MS midl | 834 | ;; MS midl |
| 835 | ("midl[ ]*:[ ]*\\(command line error .*\\)" | 835 | ("midl[ ]*:[ ]*\\(command line error .*\\)" |
| 836 | nil nil nil 1) | 836 | nil nil nil 1) |
| 837 | ;; MS C# | 837 | ;; MS C# |
| 838 | ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\),[0-9]+)\: \\(\\(error\\|warning\\|fatal error\\) \\(CS[0-9]+\\):[ \t\n]*\\(.+\\)\\)" | 838 | ("\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\),[0-9]+): \\(\\(error\\|warning\\|fatal error\\) \\(CS[0-9]+\\):[ \t\n]*\\(.+\\)\\)" |
| 839 | 1 3 nil 4) | 839 | 1 3 nil 4) |
| 840 | ;; perl | 840 | ;; perl |
| 841 | ("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1) | 841 | ("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1) |
| @@ -843,7 +843,7 @@ Convert it to flymake internal format." | |||
| 843 | ("\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 2 3 nil 1) | 843 | ("\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 2 3 nil 1) |
| 844 | ;; LaTeX warnings (fileless) ("\\(LaTeX \\(Warning\\|Error\\): .*\\) on input line \\([0-9]+\\)" 20 3 nil 1) | 844 | ;; LaTeX warnings (fileless) ("\\(LaTeX \\(Warning\\|Error\\): .*\\) on input line \\([0-9]+\\)" 20 3 nil 1) |
| 845 | ;; ant/javac. Note this also matches gcc warnings! | 845 | ;; ant/javac. Note this also matches gcc warnings! |
| 846 | (" *\\(\\[javac\\] *\\)?\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\)\:\\([0-9]+\\)\\(?:\:[0-9]+\\)?\:[ \t\n]*\\(.+\\)" | 846 | (" *\\(\\[javac\\] *\\)?\\(\\([a-zA-Z]:\\)?[^:(\t\n]+\\):\\([0-9]+\\)\\(?::[0-9]+\\)?:[ \t\n]*\\(.+\\)" |
| 847 | 2 4 nil 5)) | 847 | 2 4 nil 5)) |
| 848 | ;; compilation-error-regexp-alist) | 848 | ;; compilation-error-regexp-alist) |
| 849 | (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist)) | 849 | (flymake-reformat-err-line-patterns-from-compile-el compilation-error-regexp-alist-alist)) |
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el index ee4733f6e4e..ef470055065 100644 --- a/lisp/progmodes/fortran.el +++ b/lisp/progmodes/fortran.el | |||
| @@ -244,8 +244,8 @@ line in region." | |||
| 244 | (defcustom fortran-column-ruler-fixed | 244 | (defcustom fortran-column-ruler-fixed |
| 245 | "0 4 6 10 20 30 40 5\ | 245 | "0 4 6 10 20 30 40 5\ |
| 246 | 0 60 70\n\ | 246 | 0 60 70\n\ |
| 247 | \[ ]|{ | | | | | | | | \ | 247 | [ ]|{ | | | | | | | | \ |
| 248 | \| | | | |}\n" | 248 | | | | | |}\n" |
| 249 | "String displayed above current line by \\[fortran-column-ruler]. | 249 | "String displayed above current line by \\[fortran-column-ruler]. |
| 250 | This variable is used in fixed format mode. | 250 | This variable is used in fixed format mode. |
| 251 | See the variable `fortran-column-ruler-tab' for TAB format mode." | 251 | See the variable `fortran-column-ruler-tab' for TAB format mode." |
| @@ -257,8 +257,8 @@ See the variable `fortran-column-ruler-tab' for TAB format mode." | |||
| 257 | (defcustom fortran-column-ruler-tab | 257 | (defcustom fortran-column-ruler-tab |
| 258 | "0 810 20 30 40 5\ | 258 | "0 810 20 30 40 5\ |
| 259 | 0 60 70\n\ | 259 | 0 60 70\n\ |
| 260 | \[ ]| { | | | | | | | | \ | 260 | [ ]| { | | | | | | | | \ |
| 261 | \| | | | |}\n" | 261 | | | | | |}\n" |
| 262 | "String displayed above current line by \\[fortran-column-ruler]. | 262 | "String displayed above current line by \\[fortran-column-ruler]. |
| 263 | This variable is used in TAB format mode. | 263 | This variable is used in TAB format mode. |
| 264 | See the variable `fortran-column-ruler-fixed' for fixed format mode." | 264 | See the variable `fortran-column-ruler-fixed' for fixed format mode." |
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index 1eff62c5acf..3860c81065d 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el | |||
| @@ -4038,6 +4038,8 @@ member." | |||
| 4038 | (let ((name (bindat-get-field local 'name)) | 4038 | (let ((name (bindat-get-field local 'name)) |
| 4039 | (value (bindat-get-field local 'value)) | 4039 | (value (bindat-get-field local 'value)) |
| 4040 | (type (bindat-get-field local 'type))) | 4040 | (type (bindat-get-field local 'type))) |
| 4041 | (when (not value) | ||
| 4042 | (setq value "<complex data type>")) | ||
| 4041 | (if (or (not value) | 4043 | (if (or (not value) |
| 4042 | (string-match "\\0x" value)) | 4044 | (string-match "\\0x" value)) |
| 4043 | (add-text-properties 0 (length name) | 4045 | (add-text-properties 0 (length name) |
diff --git a/lisp/progmodes/glasses.el b/lisp/progmodes/glasses.el index 257c3d2a80f..6ee32b0b3ee 100644 --- a/lisp/progmodes/glasses.el +++ b/lisp/progmodes/glasses.el | |||
| @@ -252,7 +252,7 @@ CATEGORY is the overlay category. If it is nil, use the `glasses' category." | |||
| 252 | ;; Parentheses | 252 | ;; Parentheses |
| 253 | (when glasses-separate-parentheses-p | 253 | (when glasses-separate-parentheses-p |
| 254 | (goto-char beg) | 254 | (goto-char beg) |
| 255 | (while (re-search-forward "[a-zA-Z]_*\\(\(\\)" end t) | 255 | (while (re-search-forward "[a-zA-Z]_*\\((\\)" end t) |
| 256 | (unless (glasses-parenthesis-exception-p (point-at-bol) (match-end 1)) | 256 | (unless (glasses-parenthesis-exception-p (point-at-bol) (match-end 1)) |
| 257 | (glasses-make-overlay (match-beginning 1) (match-end 1) | 257 | (glasses-make-overlay (match-beginning 1) (match-end 1) |
| 258 | 'glasses-parenthesis)))))))) | 258 | 'glasses-parenthesis)))))))) |
| @@ -291,7 +291,7 @@ recognized according to the current value of the variable `glasses-separator'." | |||
| 291 | (goto-char (match-beginning 1))))) | 291 | (goto-char (match-beginning 1))))) |
| 292 | (when glasses-separate-parentheses-p | 292 | (when glasses-separate-parentheses-p |
| 293 | (goto-char (point-min)) | 293 | (goto-char (point-min)) |
| 294 | (while (re-search-forward "[a-zA-Z]_*\\( \\)\(" nil t) | 294 | (while (re-search-forward "[a-zA-Z]_*\\( \\)(" nil t) |
| 295 | (unless (glasses-parenthesis-exception-p (point-at-bol) (1+ (match-end 1))) | 295 | (unless (glasses-parenthesis-exception-p (point-at-bol) (1+ (match-end 1))) |
| 296 | (replace-match "" t nil nil 1))))))) | 296 | (replace-match "" t nil nil 1))))))) |
| 297 | ;; nil must be returned to allow use in write file hooks | 297 | ;; nil must be returned to allow use in write file hooks |
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 9ab0667b5ba..1284ef2857a 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el | |||
| @@ -2855,6 +2855,10 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2855 | (defun gud-format-command (str arg) | 2855 | (defun gud-format-command (str arg) |
| 2856 | (let ((insource (not (eq (current-buffer) gud-comint-buffer))) | 2856 | (let ((insource (not (eq (current-buffer) gud-comint-buffer))) |
| 2857 | (frame (or gud-last-frame gud-last-last-frame)) | 2857 | (frame (or gud-last-frame gud-last-last-frame)) |
| 2858 | (buffer-file-name-localized | ||
| 2859 | (and (buffer-file-name) | ||
| 2860 | (or (file-remote-p (buffer-file-name) 'localname) | ||
| 2861 | (buffer-file-name)))) | ||
| 2858 | result) | 2862 | result) |
| 2859 | (while (and str | 2863 | (while (and str |
| 2860 | (let ((case-fold-search nil)) | 2864 | (let ((case-fold-search nil)) |
| @@ -2864,15 +2868,15 @@ Obeying it means displaying in another window the specified file and line." | |||
| 2864 | (cond | 2868 | (cond |
| 2865 | ((eq key ?f) | 2869 | ((eq key ?f) |
| 2866 | (setq subst (file-name-nondirectory (if insource | 2870 | (setq subst (file-name-nondirectory (if insource |
| 2867 | (buffer-file-name) | 2871 | buffer-file-name-localized |
| 2868 | (car frame))))) | 2872 | (car frame))))) |
| 2869 | ((eq key ?F) | 2873 | ((eq key ?F) |
| 2870 | (setq subst (file-name-base (if insource | 2874 | (setq subst (file-name-base (if insource |
| 2871 | (buffer-file-name) | 2875 | buffer-file-name-localized |
| 2872 | (car frame))))) | 2876 | (car frame))))) |
| 2873 | ((eq key ?d) | 2877 | ((eq key ?d) |
| 2874 | (setq subst (file-name-directory (if insource | 2878 | (setq subst (file-name-directory (if insource |
| 2875 | (buffer-file-name) | 2879 | buffer-file-name-localized |
| 2876 | (car frame))))) | 2880 | (car frame))))) |
| 2877 | ((eq key ?l) | 2881 | ((eq key ?l) |
| 2878 | (setq subst (int-to-string | 2882 | (setq subst (int-to-string |
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index c4111398f54..4473409e344 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el | |||
| @@ -434,7 +434,7 @@ It collects and prints the diagnostics messages." | |||
| 434 | 434 | ||
| 435 | ;; A system variable -- only system help | 435 | ;; A system variable -- only system help |
| 436 | ((string-match | 436 | ((string-match |
| 437 | "\\`!\\([a-zA-Z0-9_]+\\)\\(\.\\([A-Za-z0-9_]+\\)\\)?" | 437 | "\\`!\\([a-zA-Z0-9_]+\\)\\(\\.\\([A-Za-z0-9_]+\\)\\)?" |
| 438 | this-word) | 438 | this-word) |
| 439 | (let* ((word (match-string-no-properties 1 this-word)) | 439 | (let* ((word (match-string-no-properties 1 this-word)) |
| 440 | (entry (assq (idlwave-sintern-sysvar word) | 440 | (entry (assq (idlwave-sintern-sysvar word) |
| @@ -1312,7 +1312,7 @@ IDL assistant.") | |||
| 1312 | (let ((help-loc (idlwave-html-help-location)) | 1312 | (let ((help-loc (idlwave-html-help-location)) |
| 1313 | topic anchor file just-started exists full-link) | 1313 | topic anchor file just-started exists full-link) |
| 1314 | 1314 | ||
| 1315 | (if (string-match "\.html" link) | 1315 | (if (string-match "\\.html" link) |
| 1316 | (setq topic (substring link 0 (match-beginning 0)) | 1316 | (setq topic (substring link 0 (match-beginning 0)) |
| 1317 | anchor (substring link (match-end 0))) | 1317 | anchor (substring link (match-end 0))) |
| 1318 | (error "Malformed help link")) | 1318 | (error "Malformed help link")) |
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el index 50ebadf733b..5aeb4ea1a07 100644 --- a/lisp/progmodes/idlw-shell.el +++ b/lisp/progmodes/idlw-shell.el | |||
| @@ -732,7 +732,7 @@ it contains an error message, even if hide-output is non-nil.") | |||
| 732 | 732 | ||
| 733 | (defvar idlwave-shell-pending-commands nil | 733 | (defvar idlwave-shell-pending-commands nil |
| 734 | "List of commands to be sent to IDL. | 734 | "List of commands to be sent to IDL. |
| 735 | Each element of the list is list of \(CMD PCMD HIDE\), where CMD is a | 735 | Each element of the list is list of \(CMD PCMD HIDE), where CMD is a |
| 736 | string to be sent to IDL and PCMD is a post-command to be placed on | 736 | string to be sent to IDL and PCMD is a post-command to be placed on |
| 737 | `idlwave-shell-post-command-hook'. If HIDE is non-nil, hide the output | 737 | `idlwave-shell-post-command-hook'. If HIDE is non-nil, hide the output |
| 738 | from command CMD. PCMD and HIDE are optional.") | 738 | from command CMD. PCMD and HIDE are optional.") |
| @@ -1240,7 +1240,7 @@ Return either nil or 'hide." | |||
| 1240 | show-if-error) | 1240 | show-if-error) |
| 1241 | "Send a command to IDL process. | 1241 | "Send a command to IDL process. |
| 1242 | 1242 | ||
| 1243 | \(CMD PCMD HIDE\) are placed at the end of `idlwave-shell-pending-commands'. | 1243 | \(CMD PCMD HIDE) are placed at the end of `idlwave-shell-pending-commands'. |
| 1244 | If IDL is ready the first command in `idlwave-shell-pending-commands', | 1244 | If IDL is ready the first command in `idlwave-shell-pending-commands', |
| 1245 | CMD, is sent to the IDL process. | 1245 | CMD, is sent to the IDL process. |
| 1246 | 1246 | ||
| @@ -1256,7 +1256,7 @@ stepping through code with output. | |||
| 1256 | If optional fourth argument PREEMPT is non-nil CMD is put at front of | 1256 | If optional fourth argument PREEMPT is non-nil CMD is put at front of |
| 1257 | `idlwave-shell-pending-commands'. If PREEMPT is 'wait, wait for all | 1257 | `idlwave-shell-pending-commands'. If PREEMPT is 'wait, wait for all |
| 1258 | output to complete and the next prompt to arrive before returning | 1258 | output to complete and the next prompt to arrive before returning |
| 1259 | \(useful if you need an answer now\). IDL is considered ready if the | 1259 | \(useful if you need an answer now). IDL is considered ready if the |
| 1260 | prompt is present and if `idlwave-shell-ready' is non-nil. | 1260 | prompt is present and if `idlwave-shell-ready' is non-nil. |
| 1261 | 1261 | ||
| 1262 | If SHOW-IF-ERROR is non-nil, show the output if it contains an error | 1262 | If SHOW-IF-ERROR is non-nil, show the output if it contains an error |
| @@ -3122,7 +3122,7 @@ versions of IDL." | |||
| 3122 | (string-match "\\.\\'" pre))) ;; structure member | 3122 | (string-match "\\.\\'" pre))) ;; structure member |
| 3123 | 3123 | ||
| 3124 | ;; Skip over strings | 3124 | ;; Skip over strings |
| 3125 | ((and (string-match "\\([\"\']\\)[^\1]*$" pre) | 3125 | ((and (string-match "\\([\"']\\)[^\1]*$" pre) |
| 3126 | (string-match (concat "^[^" (match-string 1 pre) "]*" | 3126 | (string-match (concat "^[^" (match-string 1 pre) "]*" |
| 3127 | (match-string 1 pre)) post)) | 3127 | (match-string 1 pre)) post)) |
| 3128 | (setq start (+ start (match-end 0)))) | 3128 | (setq start (+ start (match-end 0)))) |
| @@ -3212,7 +3212,7 @@ size(___,/DIMENSIONS)" | |||
| 3212 | 3212 | ||
| 3213 | (defvar idlwave-shell-bp-alist nil | 3213 | (defvar idlwave-shell-bp-alist nil |
| 3214 | "Alist of breakpoints. | 3214 | "Alist of breakpoints. |
| 3215 | A breakpoint is a cons cell \(\(file line\) . \(\(index module\) data\)\) | 3215 | A breakpoint is a cons cell \((file line) . \((index module) data)) |
| 3216 | 3216 | ||
| 3217 | The car is the `frame' for the breakpoint: | 3217 | The car is the `frame' for the breakpoint: |
| 3218 | file - full path file name. | 3218 | file - full path file name. |
| @@ -3921,7 +3921,7 @@ Query as a function if TYPE set to something beside `pro'." | |||
| 3921 | "Get module source, and update `idlwave-shell-sources-alist'." | 3921 | "Get module source, and update `idlwave-shell-sources-alist'." |
| 3922 | (let ((old (assoc (upcase module) idlwave-shell-sources-alist)) | 3922 | (let ((old (assoc (upcase module) idlwave-shell-sources-alist)) |
| 3923 | filename) | 3923 | filename) |
| 3924 | (when (string-match "\.PATH *[\n\r]\\([^%][^\r\n]+\\)[\n\r]" | 3924 | (when (string-match ".PATH *[\n\r]\\([^%][^\r\n]+\\)[\n\r]" |
| 3925 | idlwave-shell-command-output) | 3925 | idlwave-shell-command-output) |
| 3926 | (setq filename (substring idlwave-shell-command-output | 3926 | (setq filename (substring idlwave-shell-command-output |
| 3927 | (match-beginning 1) (match-end 1))) | 3927 | (match-beginning 1) (match-end 1))) |
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index b524b761b75..ac2259df6a4 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -742,7 +742,7 @@ The actions that can be performed are listed in `idlwave-indent-action-table'." | |||
| 742 | 742 | ||
| 743 | (defcustom idlwave-abbrev-start-char "\\" | 743 | (defcustom idlwave-abbrev-start-char "\\" |
| 744 | "A single character string used to start abbreviations in abbrev mode. | 744 | "A single character string used to start abbreviations in abbrev mode. |
| 745 | Possible characters to choose from: ~\\=`\% | 745 | Possible characters to choose from: ~\\=`% |
| 746 | or even `?'. `.' is not a good choice because it can make structure | 746 | or even `?'. `.' is not a good choice because it can make structure |
| 747 | field names act like abbrevs in certain circumstances. | 747 | field names act like abbrevs in certain circumstances. |
| 748 | 748 | ||
| @@ -1559,7 +1559,7 @@ KEY in `idlwave-mode-map' by defining an anonymous function calling | |||
| 1559 | `self-insert-command' followed by CMD. If KEY contains more than one | 1559 | `self-insert-command' followed by CMD. If KEY contains more than one |
| 1560 | character a binding will only be set if SELECT is 'both. | 1560 | character a binding will only be set if SELECT is 'both. |
| 1561 | 1561 | ||
| 1562 | \(KEY . CMD\) is also placed in the `idlwave-indent-expand-table', | 1562 | \(KEY . CMD) is also placed in the `idlwave-indent-expand-table', |
| 1563 | replacing any previous value for KEY. If a binding is not set then it | 1563 | replacing any previous value for KEY. If a binding is not set then it |
| 1564 | will instead be placed in `idlwave-indent-action-table'. | 1564 | will instead be placed in `idlwave-indent-action-table'. |
| 1565 | 1565 | ||
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el index 17aaab9e2c3..290ebeea290 100644 --- a/lisp/progmodes/inf-lisp.el +++ b/lisp/progmodes/inf-lisp.el | |||
| @@ -510,7 +510,7 @@ Used by these commands to determine defaults." | |||
| 510 | (file-name-nondirectory file-name))) | 510 | (file-name-nondirectory file-name))) |
| 511 | (comint-send-string (inferior-lisp-proc) (concat "(compile-file \"" | 511 | (comint-send-string (inferior-lisp-proc) (concat "(compile-file \"" |
| 512 | file-name | 512 | file-name |
| 513 | "\"\)\n")) | 513 | "\")\n")) |
| 514 | (switch-to-lisp t)) | 514 | (switch-to-lisp t)) |
| 515 | 515 | ||
| 516 | 516 | ||
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 98a22dd8441..ab994f38252 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el | |||
| @@ -126,7 +126,7 @@ An example of this is \"Class.prototype = { method1: ...}\".") | |||
| 126 | (defconst js--prototype-objextend-class-decl-re-2 | 126 | (defconst js--prototype-objextend-class-decl-re-2 |
| 127 | (concat "^\\s-*\\(?:var\\s-+\\)?" | 127 | (concat "^\\s-*\\(?:var\\s-+\\)?" |
| 128 | "\\(" js--dotted-name-re "\\)" | 128 | "\\(" js--dotted-name-re "\\)" |
| 129 | "\\s-*=\\s-*Object\\.extend\\s-*\(")) | 129 | "\\s-*=\\s-*Object\\.extend\\s-*(")) |
| 130 | 130 | ||
| 131 | ;; var NewClass = Class.create({ | 131 | ;; var NewClass = Class.create({ |
| 132 | (defconst js--prototype-class-decl-re | 132 | (defconst js--prototype-class-decl-re |
| @@ -639,7 +639,7 @@ enabled frameworks." | |||
| 639 | (js--maybe-join | 639 | (js--maybe-join |
| 640 | "\\(?:var[ \t]+\\)?[a-zA-Z_$0-9.]+[ \t]*=[ \t]*\\(?:" | 640 | "\\(?:var[ \t]+\\)?[a-zA-Z_$0-9.]+[ \t]*=[ \t]*\\(?:" |
| 641 | "\\|" | 641 | "\\|" |
| 642 | "\\)[ \t]*\(" | 642 | "\\)[ \t]*(" |
| 643 | 643 | ||
| 644 | (when (memq 'prototype js-enabled-frameworks) | 644 | (when (memq 'prototype js-enabled-frameworks) |
| 645 | "Class\\.create") | 645 | "Class\\.create") |
| @@ -651,10 +651,10 @@ enabled frameworks." | |||
| 651 | "[a-zA-Z_$0-9]+\\.extend\\(?:Final\\)?")) | 651 | "[a-zA-Z_$0-9]+\\.extend\\(?:Final\\)?")) |
| 652 | 652 | ||
| 653 | (when (memq 'dojo js-enabled-frameworks) | 653 | (when (memq 'dojo js-enabled-frameworks) |
| 654 | "dojo\\.declare[ \t]*\(") | 654 | "dojo\\.declare[ \t]*(") |
| 655 | 655 | ||
| 656 | (when (memq 'mochikit js-enabled-frameworks) | 656 | (when (memq 'mochikit js-enabled-frameworks) |
| 657 | "MochiKit\\.Base\\.update[ \t]*\(") | 657 | "MochiKit\\.Base\\.update[ \t]*(") |
| 658 | 658 | ||
| 659 | ;; mumble.prototypeTHING | 659 | ;; mumble.prototypeTHING |
| 660 | (js--maybe-join | 660 | (js--maybe-join |
| @@ -662,7 +662,7 @@ enabled frameworks." | |||
| 662 | 662 | ||
| 663 | (when (memq 'javascript js-enabled-frameworks) | 663 | (when (memq 'javascript js-enabled-frameworks) |
| 664 | '( ;; foo.prototype.bar = function( | 664 | '( ;; foo.prototype.bar = function( |
| 665 | "\\.[a-zA-Z_$0-9]+[ \t]*=[ \t]*function[ \t]*\(" | 665 | "\\.[a-zA-Z_$0-9]+[ \t]*=[ \t]*function[ \t]*(" |
| 666 | 666 | ||
| 667 | ;; mumble.prototype = { | 667 | ;; mumble.prototype = { |
| 668 | "[ \t]*=[ \t]*{"))))) | 668 | "[ \t]*=[ \t]*{"))))) |
| @@ -1370,17 +1370,6 @@ LIMIT defaults to point." | |||
| 1370 | (looking-at "\"\\s-*,\\s-*\\[") | 1370 | (looking-at "\"\\s-*,\\s-*\\[") |
| 1371 | (eq (match-end 0) (1+ list-begin))))))) | 1371 | (eq (match-end 0) (1+ list-begin))))))) |
| 1372 | 1372 | ||
| 1373 | (defun js--syntax-begin-function () | ||
| 1374 | (when (< js--cache-end (point)) | ||
| 1375 | (goto-char (max (point-min) js--cache-end))) | ||
| 1376 | |||
| 1377 | (let ((pitem)) | ||
| 1378 | (while (and (setq pitem (car (js--backward-pstate))) | ||
| 1379 | (not (eq 0 (js--pitem-paren-depth pitem))))) | ||
| 1380 | |||
| 1381 | (when pitem | ||
| 1382 | (goto-char (js--pitem-h-begin pitem ))))) | ||
| 1383 | |||
| 1384 | ;;; Font Lock | 1373 | ;;; Font Lock |
| 1385 | (defun js--make-framework-matcher (framework &rest regexps) | 1374 | (defun js--make-framework-matcher (framework &rest regexps) |
| 1386 | "Helper function for building `js--font-lock-keywords'. | 1375 | "Helper function for building `js--font-lock-keywords'. |
| @@ -1735,6 +1724,12 @@ This performs fontification according to `js--class-styles'." | |||
| 1735 | (js-syntax-propertize-regexp end)))))) | 1724 | (js-syntax-propertize-regexp end)))))) |
| 1736 | (point) end)) | 1725 | (point) end)) |
| 1737 | 1726 | ||
| 1727 | (defconst js--prettify-symbols-alist | ||
| 1728 | '(("=>" . ?⇒) | ||
| 1729 | (">=" . ?≥) | ||
| 1730 | ("<=" . ?≤)) | ||
| 1731 | "Alist of symbol prettifications for JavaScript.") | ||
| 1732 | |||
| 1738 | ;;; Indentation | 1733 | ;;; Indentation |
| 1739 | 1734 | ||
| 1740 | (defconst js--possibly-braceless-keyword-re | 1735 | (defconst js--possibly-braceless-keyword-re |
| @@ -3506,6 +3501,7 @@ If one hasn't been set, or if it's stale, prompt for a new one." | |||
| 3506 | (setq-local open-paren-in-column-0-is-defun-start nil) | 3501 | (setq-local open-paren-in-column-0-is-defun-start nil) |
| 3507 | (setq-local font-lock-defaults (list js--font-lock-keywords)) | 3502 | (setq-local font-lock-defaults (list js--font-lock-keywords)) |
| 3508 | (setq-local syntax-propertize-function #'js-syntax-propertize) | 3503 | (setq-local syntax-propertize-function #'js-syntax-propertize) |
| 3504 | (setq-local prettify-symbols-alist js--prettify-symbols-alist) | ||
| 3509 | 3505 | ||
| 3510 | (setq-local parse-sexp-ignore-comments t) | 3506 | (setq-local parse-sexp-ignore-comments t) |
| 3511 | (setq-local parse-sexp-lookup-properties t) | 3507 | (setq-local parse-sexp-lookup-properties t) |
| @@ -3550,8 +3546,6 @@ If one hasn't been set, or if it's stale, prompt for a new one." | |||
| 3550 | (make-local-variable 'adaptive-fill-regexp) | 3546 | (make-local-variable 'adaptive-fill-regexp) |
| 3551 | (c-setup-paragraph-variables)) | 3547 | (c-setup-paragraph-variables)) |
| 3552 | 3548 | ||
| 3553 | (setq-local syntax-begin-function #'js--syntax-begin-function) | ||
| 3554 | |||
| 3555 | ;; Important to fontify the whole buffer syntactically! If we don't, | 3549 | ;; Important to fontify the whole buffer syntactically! If we don't, |
| 3556 | ;; then we might have regular expression literals that aren't marked | 3550 | ;; then we might have regular expression literals that aren't marked |
| 3557 | ;; as strings, which will screw up parse-partial-sexp, scan-lists, | 3551 | ;; as strings, which will screw up parse-partial-sexp, scan-lists, |
| @@ -3577,4 +3571,8 @@ If one hasn't been set, or if it's stale, prompt for a new one." | |||
| 3577 | 3571 | ||
| 3578 | (provide 'js) | 3572 | (provide 'js) |
| 3579 | 3573 | ||
| 3574 | ;; Local Variables: | ||
| 3575 | ;; coding: utf-8 | ||
| 3576 | ;; End: | ||
| 3577 | |||
| 3580 | ;; js.el ends here | 3578 | ;; js.el ends here |
diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el index 511b25486a2..80a93a477b4 100644 --- a/lisp/progmodes/m4-mode.el +++ b/lisp/progmodes/m4-mode.el | |||
| @@ -2,8 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1996-1997, 2001-2015 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1996-1997, 2001-2015 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Andrew Csillag <drew_csillag@geocities.com> | 5 | ;; Author: Andrew Csillag <drew@thecsillags.com> |
| 6 | ;; Maintainer: Andrew Csillag <drew_csillag@geocities.com> | ||
| 7 | ;; Keywords: languages, faces | 6 | ;; Keywords: languages, faces |
| 8 | 7 | ||
| 9 | ;; This file is part of GNU Emacs. | 8 | ;; This file is part of GNU Emacs. |
| @@ -67,10 +66,9 @@ If m4 is not in your PATH, set this to an absolute file name." | |||
| 67 | `( | 66 | `( |
| 68 | ("\\(\\_<\\(m4_\\)?dnl\\_>\\).*$" . font-lock-comment-face) | 67 | ("\\(\\_<\\(m4_\\)?dnl\\_>\\).*$" . font-lock-comment-face) |
| 69 | ("\\$[*#@0-9]" . font-lock-variable-name-face) | 68 | ("\\$[*#@0-9]" . font-lock-variable-name-face) |
| 70 | ("\\\$\\\@" . font-lock-variable-name-face) | 69 | ("\\$\\@" . font-lock-variable-name-face) |
| 71 | ("\\\$\\\*" . font-lock-variable-name-face) | 70 | ("\\$\\*" . font-lock-variable-name-face) |
| 72 | ("\\b\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|gnu\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|un\\(d\\(efine\\|ivert\\)\\|ix\\)\\)\\b" . font-lock-keyword-face) | 71 | ("\\_<\\(m4_\\)?\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|gnu\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|un\\(d\\(efine\\|ivert\\)\\|ix\\)\\)\\_>" . font-lock-keyword-face)) |
| 73 | ("\\b\\(m4_\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(_undefine\\|exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|undivert\\)\\)\\b" . font-lock-keyword-face)) | ||
| 74 | "Default `font-lock-keywords' for M4 mode.") | 72 | "Default `font-lock-keywords' for M4 mode.") |
| 75 | 73 | ||
| 76 | (defcustom m4-mode-hook nil | 74 | (defcustom m4-mode-hook nil |
diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el index 4f46cbe6357..9736f0f207c 100644 --- a/lisp/progmodes/make-mode.el +++ b/lisp/progmodes/make-mode.el | |||
| @@ -1502,7 +1502,7 @@ Insertion takes place at point." | |||
| 1502 | (if (zerop (+ (length targets) (length macros))) | 1502 | (if (zerop (+ (length targets) (length macros))) |
| 1503 | (progn | 1503 | (progn |
| 1504 | (beep) | 1504 | (beep) |
| 1505 | (message "No macros or targets to browse! Consider running 'makefile-pickup-everything\'")) | 1505 | (message "No macros or targets to browse! Consider running `makefile-pickup-everything'")) |
| 1506 | (let ((browser-buffer (get-buffer-create makefile-browser-buffer-name))) | 1506 | (let ((browser-buffer (get-buffer-create makefile-browser-buffer-name))) |
| 1507 | (pop-to-buffer browser-buffer) | 1507 | (pop-to-buffer browser-buffer) |
| 1508 | (makefile-browser-fill targets macros) | 1508 | (makefile-browser-fill targets macros) |
diff --git a/lisp/progmodes/mantemp.el b/lisp/progmodes/mantemp.el index 6b92c7ee2d6..a0f50fc0f19 100644 --- a/lisp/progmodes/mantemp.el +++ b/lisp/progmodes/mantemp.el | |||
| @@ -89,7 +89,7 @@ | |||
| 89 | (save-excursion | 89 | (save-excursion |
| 90 | (goto-char (point-min)) | 90 | (goto-char (point-min)) |
| 91 | (message "Removing comments") | 91 | (message "Removing comments") |
| 92 | (while (re-search-forward "^[A-z\.()+0-9: ]*`\\|'.*$" nil t) | 92 | (while (re-search-forward "^[A-z.()+0-9: ]*`\\|'.*$" nil t) |
| 93 | (replace-match "")))) | 93 | (replace-match "")))) |
| 94 | 94 | ||
| 95 | (defun mantemp-remove-memfuncs () | 95 | (defun mantemp-remove-memfuncs () |
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index 3521a139809..55d69bfddff 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el | |||
| @@ -932,7 +932,7 @@ Returns (parse-state) if line starts inside a string." | |||
| 932 | (if (save-excursion (goto-char indent-point) | 932 | (if (save-excursion (goto-char indent-point) |
| 933 | (looking-at | 933 | (looking-at |
| 934 | (if perl-indent-parens-as-block | 934 | (if perl-indent-parens-as-block |
| 935 | "[ \t]*[{(\[]" "[ \t]*{"))) | 935 | "[ \t]*[{([]" "[ \t]*{"))) |
| 936 | perl-continued-brace-offset 0))) | 936 | perl-continued-brace-offset 0))) |
| 937 | (t | 937 | (t |
| 938 | ;; This line starts a new statement. | 938 | ;; This line starts a new statement. |
diff --git a/lisp/progmodes/prog-mode.el b/lisp/progmodes/prog-mode.el index 8f50887113e..f1aa35f2871 100644 --- a/lisp/progmodes/prog-mode.el +++ b/lisp/progmodes/prog-mode.el | |||
| @@ -61,7 +61,7 @@ indentation of a line/region to the indentation engine of the sub | |||
| 61 | mode, it is supposed to bind this variable to non-nil around the call. | 61 | mode, it is supposed to bind this variable to non-nil around the call. |
| 62 | 62 | ||
| 63 | The non-nil value looks as follows | 63 | The non-nil value looks as follows |
| 64 | \(FIRST-COLUMN (START . END) PREVIOUS-CHUNKS) | 64 | (FIRST-COLUMN (START . END) PREVIOUS-CHUNKS) |
| 65 | 65 | ||
| 66 | FIRST-COLUMN is the column the indentation engine of the sub mode | 66 | FIRST-COLUMN is the column the indentation engine of the sub mode |
| 67 | should usually choose for top-level language constructs inside | 67 | should usually choose for top-level language constructs inside |
| @@ -86,7 +86,7 @@ values are: | |||
| 86 | 86 | ||
| 87 | - A function called with the start position of the current | 87 | - A function called with the start position of the current |
| 88 | chunk. It will return either the region of the previous chunk | 88 | chunk. It will return either the region of the previous chunk |
| 89 | as \(PREV-START . PREV-END) or nil if there is no further | 89 | as (PREV-START . PREV-END) or nil if there is no further |
| 90 | previous chunk. | 90 | previous chunk. |
| 91 | 91 | ||
| 92 | A typical use case are literate programming sources - the | 92 | A typical use case are literate programming sources - the |
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index 5a4ed84c346..3d9b0c322ab 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el | |||
| @@ -922,15 +922,38 @@ This is really kludgy, and unneeded (i.e. obsolete) in Emacs>=24." | |||
| 922 | (defun prolog-smie-rules (kind token) | 922 | (defun prolog-smie-rules (kind token) |
| 923 | (pcase (cons kind token) | 923 | (pcase (cons kind token) |
| 924 | (`(:elem . basic) prolog-indent-width) | 924 | (`(:elem . basic) prolog-indent-width) |
| 925 | ;; The list of arguments can never be on a separate line! | ||
| 926 | (`(:list-intro . ,_) t) | ||
| 927 | ;; When we don't know how to indent an empty line, assume the most | ||
| 928 | ;; likely token will be ";". | ||
| 929 | (`(:elem . empty-line-token) ";") | ||
| 925 | (`(:after . ".") '(column . 0)) ;; To work around smie-closer-alist. | 930 | (`(:after . ".") '(column . 0)) ;; To work around smie-closer-alist. |
| 926 | ;; Allow indentation of if-then-else as: | 931 | ;; Allow indentation of if-then-else as: |
| 927 | ;; ( test | 932 | ;; ( test |
| 928 | ;; -> thenrule | 933 | ;; -> thenrule |
| 929 | ;; ; elserule | 934 | ;; ; elserule |
| 930 | ;; ) | 935 | ;; ) |
| 931 | (`(:before . ,(or `"->" `";")) | 936 | (`(:before . ,(or `"->" `";")) |
| 932 | (and (smie-rule-bolp) (smie-rule-parent-p "(") (smie-rule-parent 1))) | 937 | (and (smie-rule-bolp) (smie-rule-parent-p "(") (smie-rule-parent 0))) |
| 933 | (`(:after . ,(or `":-" `"->" `"-->")) prolog-indent-width))) | 938 | (`(:after . ,(or `"->" `"*->")) |
| 939 | ;; We distinguish | ||
| 940 | ;; | ||
| 941 | ;; (a -> | ||
| 942 | ;; b; | ||
| 943 | ;; c) | ||
| 944 | ;; and | ||
| 945 | ;; ( a -> | ||
| 946 | ;; b | ||
| 947 | ;; ; c) | ||
| 948 | ;; | ||
| 949 | ;; based on the space between the open paren and the "a". | ||
| 950 | (unless (and (smie-rule-parent-p "(") | ||
| 951 | (save-excursion | ||
| 952 | (smie-indent-forward-token) | ||
| 953 | (smie-backward-sexp 'halfsexp) | ||
| 954 | (not (eq ?\( (char-before))))) | ||
| 955 | prolog-indent-width)) | ||
| 956 | (`(:after . ,(or `":-" `"-->")) prolog-indent-width))) | ||
| 934 | 957 | ||
| 935 | 958 | ||
| 936 | ;;------------------------------------------------------------------- | 959 | ;;------------------------------------------------------------------- |
| @@ -1005,7 +1028,7 @@ VERSION is of the format (Major . Minor)" | |||
| 1005 | (setq-local comment-start "%") | 1028 | (setq-local comment-start "%") |
| 1006 | (setq-local comment-end "") | 1029 | (setq-local comment-end "") |
| 1007 | (setq-local comment-add 1) | 1030 | (setq-local comment-add 1) |
| 1008 | (setq-local comment-start-skip "\\(?:/\\*+ *\\|%%+ *\\)") | 1031 | (setq-local comment-start-skip "\\(?:/\\*+ *\\|%+ *\\)") |
| 1009 | (setq-local parens-require-spaces nil) | 1032 | (setq-local parens-require-spaces nil) |
| 1010 | ;; Initialize Prolog system specific variables | 1033 | ;; Initialize Prolog system specific variables |
| 1011 | (dolist (var '(prolog-keywords prolog-types prolog-mode-specificators | 1034 | (dolist (var '(prolog-keywords prolog-types prolog-mode-specificators |
| @@ -1121,6 +1144,9 @@ Commands: | |||
| 1121 | (dolist (ar prolog-align-rules) (add-to-list 'align-rules-list ar)) | 1144 | (dolist (ar prolog-align-rules) (add-to-list 'align-rules-list ar)) |
| 1122 | (add-hook 'post-self-insert-hook #'prolog-post-self-insert nil t) | 1145 | (add-hook 'post-self-insert-hook #'prolog-post-self-insert nil t) |
| 1123 | ;; `imenu' entry moved to the appropriate hook for consistency. | 1146 | ;; `imenu' entry moved to the appropriate hook for consistency. |
| 1147 | (when prolog-electric-dot-flag | ||
| 1148 | (setq-local electric-indent-chars | ||
| 1149 | (cons ?\. electric-indent-chars))) | ||
| 1124 | 1150 | ||
| 1125 | ;; Load SICStus debugger if suitable | 1151 | ;; Load SICStus debugger if suitable |
| 1126 | (if (and (eq prolog-system 'sicstus) | 1152 | (if (and (eq prolog-system 'sicstus) |
| @@ -2060,7 +2086,7 @@ Argument BOUND is a buffer position limiting searching." | |||
| 2060 | (defun prolog-find-unmatched-paren () | 2086 | (defun prolog-find-unmatched-paren () |
| 2061 | "Return the column of the last unmatched left parenthesis." | 2087 | "Return the column of the last unmatched left parenthesis." |
| 2062 | (save-excursion | 2088 | (save-excursion |
| 2063 | (goto-char (or (car (nth 9 (syntax-ppss))) (point-min))) | 2089 | (goto-char (or (nth 1 (syntax-ppss)) (point-min))) |
| 2064 | (current-column))) | 2090 | (current-column))) |
| 2065 | 2091 | ||
| 2066 | 2092 | ||
| @@ -2078,6 +2104,7 @@ whitespace characters, parentheses, or then/else branches." | |||
| 2078 | (when prolog-electric-if-then-else-flag | 2104 | (when prolog-electric-if-then-else-flag |
| 2079 | (save-excursion | 2105 | (save-excursion |
| 2080 | (let ((regexp (concat "(\\|" prolog-left-indent-regexp)) | 2106 | (let ((regexp (concat "(\\|" prolog-left-indent-regexp)) |
| 2107 | (pos (point)) | ||
| 2081 | level) | 2108 | level) |
| 2082 | (beginning-of-line) | 2109 | (beginning-of-line) |
| 2083 | (skip-chars-forward " \t") | 2110 | (skip-chars-forward " \t") |
| @@ -2087,6 +2114,9 @@ whitespace characters, parentheses, or then/else branches." | |||
| 2087 | ;; prolog-paren-indent)) | 2114 | ;; prolog-paren-indent)) |
| 2088 | 2115 | ||
| 2089 | ;; work on all subsequent "->", "(", ";" | 2116 | ;; work on all subsequent "->", "(", ";" |
| 2117 | (and (looking-at regexp) | ||
| 2118 | (= pos (match-end 0)) | ||
| 2119 | (indent-according-to-mode)) | ||
| 2090 | (while (looking-at regexp) | 2120 | (while (looking-at regexp) |
| 2091 | (goto-char (match-end 0)) | 2121 | (goto-char (match-end 0)) |
| 2092 | (setq level (+ (prolog-find-unmatched-paren) prolog-paren-indent)) | 2122 | (setq level (+ (prolog-find-unmatched-paren) prolog-paren-indent)) |
| @@ -2357,7 +2387,7 @@ This function is only available when `prolog-system' is set to `swi'." | |||
| 2357 | (defun prolog-atom-under-point () | 2387 | (defun prolog-atom-under-point () |
| 2358 | "Return the atom under or left to the point." | 2388 | "Return the atom under or left to the point." |
| 2359 | (save-excursion | 2389 | (save-excursion |
| 2360 | (let ((nonatom_chars "[](){},\. \t\n") | 2390 | (let ((nonatom_chars "[](){},. \t\n") |
| 2361 | start) | 2391 | start) |
| 2362 | (skip-chars-forward (concat "^" nonatom_chars)) | 2392 | (skip-chars-forward (concat "^" nonatom_chars)) |
| 2363 | (skip-chars-backward nonatom_chars) | 2393 | (skip-chars-backward nonatom_chars) |
| @@ -2826,10 +2856,10 @@ objects (relevant only if `prolog-system' is set to `sicstus')." | |||
| 2826 | (eq prolog-system 'sicstus) | 2856 | (eq prolog-system 'sicstus) |
| 2827 | (prolog-in-object)) | 2857 | (prolog-in-object)) |
| 2828 | (format | 2858 | (format |
| 2829 | "^\\(%s\\|%s\\|[^\n\'\"%%]\\)*&[ \t]*\\(\\|%%.*\\)$\\|[ \t]*}" | 2859 | "^\\(%s\\|%s\\|[^\n'\"%%]\\)*&[ \t]*\\(\\|%%.*\\)$\\|[ \t]*}" |
| 2830 | prolog-quoted-atom-regexp prolog-string-regexp) | 2860 | prolog-quoted-atom-regexp prolog-string-regexp) |
| 2831 | (format | 2861 | (format |
| 2832 | "^\\(%s\\|%s\\|[^\n\'\"%%]\\)*\\.[ \t]*\\(\\|%%.*\\)$" | 2862 | "^\\(%s\\|%s\\|[^\n'\"%%]\\)*\\.[ \t]*\\(\\|%%.*\\)$" |
| 2833 | prolog-quoted-atom-regexp prolog-string-regexp)) | 2863 | prolog-quoted-atom-regexp prolog-string-regexp)) |
| 2834 | nil t) | 2864 | nil t) |
| 2835 | (if (and (nth 8 (syntax-ppss)) | 2865 | (if (and (nth 8 (syntax-ppss)) |
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 9528ffeebbc..b641e300163 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -620,6 +620,11 @@ The type returned can be `comment', `string' or `paren'." | |||
| 620 | ((python-rx string-delimiter) | 620 | ((python-rx string-delimiter) |
| 621 | (0 (ignore (python-syntax-stringify)))))) | 621 | (0 (ignore (python-syntax-stringify)))))) |
| 622 | 622 | ||
| 623 | (defconst python--prettify-symbols-alist | ||
| 624 | '(("lambda" . ?λ) | ||
| 625 | ("and" . ?∧) | ||
| 626 | ("or" . ?∨))) | ||
| 627 | |||
| 623 | (defsubst python-syntax-count-quotes (quote-char &optional point limit) | 628 | (defsubst python-syntax-count-quotes (quote-char &optional point limit) |
| 624 | "Count number of quotes around point (max is 3). | 629 | "Count number of quotes around point (max is 3). |
| 625 | QUOTE-CHAR is the quote char to count. Optional argument POINT is | 630 | QUOTE-CHAR is the quote char to count. Optional argument POINT is |
| @@ -3635,12 +3640,18 @@ Never set this variable directly, use | |||
| 3635 | "Set the buffer for FILE-NAME as the tracked buffer. | 3640 | "Set the buffer for FILE-NAME as the tracked buffer. |
| 3636 | Internally it uses the `python-pdbtrack-tracked-buffer' variable. | 3641 | Internally it uses the `python-pdbtrack-tracked-buffer' variable. |
| 3637 | Returns the tracked buffer." | 3642 | Returns the tracked buffer." |
| 3638 | (let ((file-buffer (get-file-buffer | 3643 | (let* ((file-name-prospect (concat (file-remote-p default-directory) |
| 3639 | (concat (file-remote-p default-directory) | 3644 | file-name)) |
| 3640 | file-name)))) | 3645 | (file-buffer (get-file-buffer file-name-prospect))) |
| 3641 | (if file-buffer | 3646 | (if file-buffer |
| 3642 | (setq python-pdbtrack-tracked-buffer file-buffer) | 3647 | (setq python-pdbtrack-tracked-buffer file-buffer) |
| 3643 | (setq file-buffer (find-file-noselect file-name)) | 3648 | (cond |
| 3649 | ((file-exists-p file-name-prospect) | ||
| 3650 | (setq file-buffer (find-file-noselect file-name-prospect))) | ||
| 3651 | ((and (not (equal file-name file-name-prospect)) | ||
| 3652 | (file-exists-p file-name)) | ||
| 3653 | ;; Fallback to a locally available copy of the file. | ||
| 3654 | (setq file-buffer (find-file-noselect file-name-prospect)))) | ||
| 3644 | (when (not (member file-buffer python-pdbtrack-buffers-to-kill)) | 3655 | (when (not (member file-buffer python-pdbtrack-buffers-to-kill)) |
| 3645 | (add-to-list 'python-pdbtrack-buffers-to-kill file-buffer))) | 3656 | (add-to-list 'python-pdbtrack-buffers-to-kill file-buffer))) |
| 3646 | file-buffer)) | 3657 | file-buffer)) |
| @@ -5098,6 +5109,9 @@ returned as is." | |||
| 5098 | "`outline-level' function for Python mode." | 5109 | "`outline-level' function for Python mode." |
| 5099 | (1+ (/ (current-indentation) python-indent-offset)))) | 5110 | (1+ (/ (current-indentation) python-indent-offset)))) |
| 5100 | 5111 | ||
| 5112 | (set (make-local-variable 'prettify-symbols-alist) | ||
| 5113 | python--prettify-symbols-alist) | ||
| 5114 | |||
| 5101 | (python-skeleton-add-menu-items) | 5115 | (python-skeleton-add-menu-items) |
| 5102 | 5116 | ||
| 5103 | (make-local-variable 'python-shell-internal-buffer) | 5117 | (make-local-variable 'python-shell-internal-buffer) |
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 5d59a56e858..09338860c75 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el | |||
| @@ -695,7 +695,7 @@ It is used when `ruby-encoding-magic-comment-style' is set to `custom'." | |||
| 695 | (let ((index-alist '()) (case-fold-search nil) | 695 | (let ((index-alist '()) (case-fold-search nil) |
| 696 | name next pos decl sing) | 696 | name next pos decl sing) |
| 697 | (goto-char beg) | 697 | (goto-char beg) |
| 698 | (while (re-search-forward "^\\s *\\(\\(class\\s +\\|\\(class\\s *<<\\s *\\)\\|module\\s +\\)\\([^\(<\n ]+\\)\\|\\(def\\|alias\\)\\s +\\([^\(\n ]+\\)\\)" end t) | 698 | (while (re-search-forward "^\\s *\\(\\(class\\s +\\|\\(class\\s *<<\\s *\\)\\|module\\s +\\)\\([^(<\n ]+\\)\\|\\(def\\|alias\\)\\s +\\([^(\n ]+\\)\\)" end t) |
| 699 | (setq sing (match-beginning 3)) | 699 | (setq sing (match-beginning 3)) |
| 700 | (setq decl (match-string 5)) | 700 | (setq decl (match-string 5)) |
| 701 | (setq next (match-end 0)) | 701 | (setq next (match-end 0)) |
| @@ -709,7 +709,7 @@ It is used when `ruby-encoding-magic-comment-style' is set to `custom'." | |||
| 709 | (if prefix | 709 | (if prefix |
| 710 | (setq name | 710 | (setq name |
| 711 | (cond | 711 | (cond |
| 712 | ((string-match "^self\." name) | 712 | ((string-match "^self\\." name) |
| 713 | (concat (substring prefix 0 -1) (substring name 4))) | 713 | (concat (substring prefix 0 -1) (substring name 4))) |
| 714 | (t (concat prefix name))))) | 714 | (t (concat prefix name))))) |
| 715 | (push (cons name pos) index-alist) | 715 | (push (cons name pos) index-alist) |
| @@ -1795,7 +1795,7 @@ If the result is do-end block, it will always be multiline." | |||
| 1795 | (setq content | 1795 | (setq content |
| 1796 | (if (equal string-quote "\"") | 1796 | (if (equal string-quote "\"") |
| 1797 | (replace-regexp-in-string "\\\\\"" "\"" (replace-regexp-in-string "\\([^\\\\]\\)'" "\\1\\\\'" content)) | 1797 | (replace-regexp-in-string "\\\\\"" "\"" (replace-regexp-in-string "\\([^\\\\]\\)'" "\\1\\\\'" content)) |
| 1798 | (replace-regexp-in-string "\\\\\'" "'" (replace-regexp-in-string "\\([^\\\\]\\)\"" "\\1\\\\\"" content)))) | 1798 | (replace-regexp-in-string "\\\\'" "'" (replace-regexp-in-string "\\([^\\\\]\\)\"" "\\1\\\\\"" content)))) |
| 1799 | (let ((orig-point (point))) | 1799 | (let ((orig-point (point))) |
| 1800 | (delete-region min max) | 1800 | (delete-region min max) |
| 1801 | (insert | 1801 | (insert |
| @@ -2007,7 +2007,8 @@ It will be properly highlighted even when the call omits parens.") | |||
| 2007 | (t | 2007 | (t |
| 2008 | (error (concat | 2008 | (error (concat |
| 2009 | "Internal error on `ruby-in-ppss-context-p': " | 2009 | "Internal error on `ruby-in-ppss-context-p': " |
| 2010 | "context name `" (symbol-name context) "' is unknown")))) | 2010 | "context name `%s' is unknown") |
| 2011 | context))) | ||
| 2011 | t))) | 2012 | t))) |
| 2012 | 2013 | ||
| 2013 | (defvar ruby-font-lock-syntax-table | 2014 | (defvar ruby-font-lock-syntax-table |
| @@ -2192,7 +2193,7 @@ See `font-lock-syntax-table'.") | |||
| 2192 | ;; Constants. | 2193 | ;; Constants. |
| 2193 | ("\\(?:\\_<\\|::\\)\\([A-Z]+\\(\\w\\|_\\)*\\)" | 2194 | ("\\(?:\\_<\\|::\\)\\([A-Z]+\\(\\w\\|_\\)*\\)" |
| 2194 | 1 (unless (eq ?\( (char-after)) font-lock-type-face)) | 2195 | 1 (unless (eq ?\( (char-after)) font-lock-type-face)) |
| 2195 | ("\\(^\\s *\\|[\[\{\(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" | 2196 | ("\\(^\\s *\\|[[{(,]\\s *\\|\\sw\\s +\\)\\(\\(\\sw\\|_\\)+\\):[^:]" |
| 2196 | (2 font-lock-constant-face)) | 2197 | (2 font-lock-constant-face)) |
| 2197 | ;; Conversion methods on Kernel. | 2198 | ;; Conversion methods on Kernel. |
| 2198 | (,(concat ruby-font-lock-keyword-beg-re | 2199 | (,(concat ruby-font-lock-keyword-beg-re |
diff --git a/lisp/progmodes/scheme.el b/lisp/progmodes/scheme.el index a21bc198e3b..e921e84a33e 100644 --- a/lisp/progmodes/scheme.el +++ b/lisp/progmodes/scheme.el | |||
| @@ -415,7 +415,7 @@ that variable's value is a string." | |||
| 415 | (eval-when-compile | 415 | (eval-when-compile |
| 416 | (list | 416 | (list |
| 417 | ;; Similar to Scheme | 417 | ;; Similar to Scheme |
| 418 | (list "(\\(define\\(-\\w+\\)?\\)\\>[ ]*\\\((?\\)\\(\\sw+\\)\\>" | 418 | (list "(\\(define\\(-\\w+\\)?\\)\\>[ ]*\\((?\\)\\(\\sw+\\)\\>" |
| 419 | '(1 font-lock-keyword-face) | 419 | '(1 font-lock-keyword-face) |
| 420 | '(4 font-lock-function-name-face)) | 420 | '(4 font-lock-function-name-face)) |
| 421 | (cons | 421 | (cons |
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 735c8f96888..049c93dfae2 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el | |||
| @@ -347,7 +347,7 @@ naming the shell." | |||
| 347 | . ((nil | 347 | . ((nil |
| 348 | ;; function FOO | 348 | ;; function FOO |
| 349 | ;; function FOO() | 349 | ;; function FOO() |
| 350 | "^\\s-*function\\s-+\\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?:()\\)?" | 350 | "^\\s-*function\\s-+\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?:()\\)?" |
| 351 | 1) | 351 | 1) |
| 352 | ;; FOO() | 352 | ;; FOO() |
| 353 | (nil | 353 | (nil |
| @@ -374,7 +374,7 @@ For use in `add-log-current-defun-function'." | |||
| 374 | (concat "\\(?:" | 374 | (concat "\\(?:" |
| 375 | ;; function FOO | 375 | ;; function FOO |
| 376 | ;; function FOO() | 376 | ;; function FOO() |
| 377 | "^\\s-*function\\s-+\\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?:()\\)?" | 377 | "^\\s-*function\\s-+\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?:()\\)?" |
| 378 | "\\)\\|\\(?:" | 378 | "\\)\\|\\(?:" |
| 379 | ;; FOO() | 379 | ;; FOO() |
| 380 | "^\\s-*\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*()" | 380 | "^\\s-*\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*()" |
| @@ -2319,7 +2319,7 @@ controls whether to query about making the visited file executable. | |||
| 2319 | 2319 | ||
| 2320 | Calls the value of `sh-set-shell-hook' if set." | 2320 | Calls the value of `sh-set-shell-hook' if set." |
| 2321 | (interactive (list (completing-read | 2321 | (interactive (list (completing-read |
| 2322 | (format "Shell \(default %s\): " | 2322 | (format "Shell (default %s): " |
| 2323 | sh-shell-file) | 2323 | sh-shell-file) |
| 2324 | ;; This used to use interpreter-mode-alist, but that is | 2324 | ;; This used to use interpreter-mode-alist, but that is |
| 2325 | ;; no longer appropriate now that uses regexps. | 2325 | ;; no longer appropriate now that uses regexps. |
| @@ -2810,15 +2810,15 @@ Return new point if successful, nil if an error occurred." | |||
| 2810 | "Return indent-info for this line. | 2810 | "Return indent-info for this line. |
| 2811 | This is a list. nil means the line is to be left as is. | 2811 | This is a list. nil means the line is to be left as is. |
| 2812 | Otherwise it contains one or more of the following sublists: | 2812 | Otherwise it contains one or more of the following sublists: |
| 2813 | \(t NUMBER\) NUMBER is the base location in the buffer that indentation is | 2813 | \(t NUMBER) NUMBER is the base location in the buffer that indentation is |
| 2814 | relative to. If present, this is always the first of the | 2814 | relative to. If present, this is always the first of the |
| 2815 | sublists. The indentation of the line in question is | 2815 | sublists. The indentation of the line in question is |
| 2816 | derived from the indentation of this point, possibly | 2816 | derived from the indentation of this point, possibly |
| 2817 | modified by subsequent sublists. | 2817 | modified by subsequent sublists. |
| 2818 | \(+ VAR\) | 2818 | \(+ VAR) |
| 2819 | \(- VAR\) Get the value of variable VAR and add to or subtract from | 2819 | \(- VAR) Get the value of variable VAR and add to or subtract from |
| 2820 | the indentation calculated so far. | 2820 | the indentation calculated so far. |
| 2821 | \(= VAR\) Get the value of variable VAR and *replace* the | 2821 | \(= VAR) Get the value of variable VAR and *replace* the |
| 2822 | indentation with its value. This only occurs for | 2822 | indentation with its value. This only occurs for |
| 2823 | special variables such as `sh-indent-comment'. | 2823 | special variables such as `sh-indent-comment'. |
| 2824 | STRING This is ignored for the purposes of calculating | 2824 | STRING This is ignored for the purposes of calculating |
| @@ -3086,7 +3086,7 @@ we go to the end of the previous line and do not check for continuations." | |||
| 3086 | (setq prev (point)) | 3086 | (setq prev (point)) |
| 3087 | )) | 3087 | )) |
| 3088 | ;; backward-sexp failed | 3088 | ;; backward-sexp failed |
| 3089 | (if (zerop (skip-chars-backward " \t()[\]{};`'")) | 3089 | (if (zerop (skip-chars-backward " \t()[]{};`'")) |
| 3090 | (forward-char -1)) | 3090 | (forward-char -1)) |
| 3091 | (if (bolp) | 3091 | (if (bolp) |
| 3092 | (let ((back (sh-prev-line nil))) | 3092 | (let ((back (sh-prev-line nil))) |
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index cbf65c0a803..abc99eec909 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el | |||
| @@ -360,7 +360,7 @@ file. Since that is a plaintext file, this could be dangerous." | |||
| 360 | :sqli-comint-func sql-comint-db2 | 360 | :sqli-comint-func sql-comint-db2 |
| 361 | :prompt-regexp "^db2 => " | 361 | :prompt-regexp "^db2 => " |
| 362 | :prompt-length 7 | 362 | :prompt-length 7 |
| 363 | :prompt-cont-regexp "^db2 (cont\.) => " | 363 | :prompt-cont-regexp "^db2 (cont\\.) => " |
| 364 | :input-filter sql-escape-newlines-filter) | 364 | :input-filter sql-escape-newlines-filter) |
| 365 | 365 | ||
| 366 | (informix | 366 | (informix |
| @@ -381,9 +381,9 @@ file. Since that is a plaintext file, this could be dangerous." | |||
| 381 | :sqli-options sql-ingres-options | 381 | :sqli-options sql-ingres-options |
| 382 | :sqli-login sql-ingres-login-params | 382 | :sqli-login sql-ingres-login-params |
| 383 | :sqli-comint-func sql-comint-ingres | 383 | :sqli-comint-func sql-comint-ingres |
| 384 | :prompt-regexp "^\* " | 384 | :prompt-regexp "^\\* " |
| 385 | :prompt-length 2 | 385 | :prompt-length 2 |
| 386 | :prompt-cont-regexp "^\* ") | 386 | :prompt-cont-regexp "^\\* ") |
| 387 | 387 | ||
| 388 | (interbase | 388 | (interbase |
| 389 | :name "Interbase" | 389 | :name "Interbase" |
| @@ -491,7 +491,7 @@ file. Since that is a plaintext file, this could be dangerous." | |||
| 491 | :completion-object sql-sqlite-completion-object | 491 | :completion-object sql-sqlite-completion-object |
| 492 | :prompt-regexp "^sqlite> " | 492 | :prompt-regexp "^sqlite> " |
| 493 | :prompt-length 8 | 493 | :prompt-length 8 |
| 494 | :prompt-cont-regexp "^ \.\.\.> " | 494 | :prompt-cont-regexp "^ \\.\\.\\.> " |
| 495 | :terminator ";") | 495 | :terminator ";") |
| 496 | 496 | ||
| 497 | (sybase | 497 | (sybase |
| @@ -525,7 +525,7 @@ highlighted and will not support `sql-interactive-mode'. | |||
| 525 | 525 | ||
| 526 | Each element in the list is in the following format: | 526 | Each element in the list is in the following format: |
| 527 | 527 | ||
| 528 | \(PRODUCT FEATURE VALUE ...) | 528 | (PRODUCT FEATURE VALUE ...) |
| 529 | 529 | ||
| 530 | where PRODUCT is the appropriate value of `sql-product'. The | 530 | where PRODUCT is the appropriate value of `sql-product'. The |
| 531 | product name is then followed by FEATURE-VALUE pairs. If a | 531 | product name is then followed by FEATURE-VALUE pairs. If a |
| @@ -639,7 +639,7 @@ settings.") | |||
| 639 | "An alist of connection parameters for interacting with a SQL product. | 639 | "An alist of connection parameters for interacting with a SQL product. |
| 640 | Each element of the alist is as follows: | 640 | Each element of the alist is as follows: |
| 641 | 641 | ||
| 642 | \(CONNECTION \(SQL-VARIABLE VALUE) ...) | 642 | (CONNECTION \(SQL-VARIABLE VALUE) ...) |
| 643 | 643 | ||
| 644 | Where CONNECTION is a case-insensitive string identifying the | 644 | Where CONNECTION is a case-insensitive string identifying the |
| 645 | connection, SQL-VARIABLE is the symbol name of a SQL mode | 645 | connection, SQL-VARIABLE is the symbol name of a SQL mode |
| @@ -3897,14 +3897,14 @@ Here is an example for your init file. It keeps the SQLi buffer a | |||
| 3897 | certain length. | 3897 | certain length. |
| 3898 | 3898 | ||
| 3899 | \(add-hook \\='sql-interactive-mode-hook | 3899 | \(add-hook \\='sql-interactive-mode-hook |
| 3900 | \(function (lambda () | 3900 | (function (lambda () |
| 3901 | \(setq comint-output-filter-functions \\='comint-truncate-buffer)))) | 3901 | (setq comint-output-filter-functions \\='comint-truncate-buffer)))) |
| 3902 | 3902 | ||
| 3903 | Here is another example. It will always put point back to the statement | 3903 | Here is another example. It will always put point back to the statement |
| 3904 | you entered, right above the output it created. | 3904 | you entered, right above the output it created. |
| 3905 | 3905 | ||
| 3906 | \(setq comint-output-filter-functions | 3906 | \(setq comint-output-filter-functions |
| 3907 | \(function (lambda (STR) (comint-show-output))))" | 3907 | (function (lambda (STR) (comint-show-output))))" |
| 3908 | (delay-mode-hooks (comint-mode)) | 3908 | (delay-mode-hooks (comint-mode)) |
| 3909 | 3909 | ||
| 3910 | ;; Get the `sql-product' for this interactive session. | 3910 | ;; Get the `sql-product' for this interactive session. |
diff --git a/lisp/progmodes/vera-mode.el b/lisp/progmodes/vera-mode.el index 5f1cb53f1dd..bce56a447f0 100644 --- a/lisp/progmodes/vera-mode.el +++ b/lisp/progmodes/vera-mode.el | |||
| @@ -259,7 +259,7 @@ Usage: | |||
| 259 | 259 | ||
| 260 | INDENTATION: Typing `TAB' at the beginning of a line indents the line. | 260 | INDENTATION: Typing `TAB' at the beginning of a line indents the line. |
| 261 | The amount of indentation is specified by option `vera-basic-offset'. | 261 | The amount of indentation is specified by option `vera-basic-offset'. |
| 262 | Indentation can be done for an entire region \(`M-C-\\') or buffer (menu). | 262 | Indentation can be done for an entire region (`M-C-\\') or buffer (menu). |
| 263 | `TAB' always indents the line if option `vera-intelligent-tab' is nil. | 263 | `TAB' always indents the line if option `vera-intelligent-tab' is nil. |
| 264 | 264 | ||
| 265 | WORD/COMMAND COMPLETION: Typing `TAB' after a (not completed) word looks | 265 | WORD/COMMAND COMPLETION: Typing `TAB' after a (not completed) word looks |
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index f83c676396d..489094b2e4f 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el | |||
| @@ -123,7 +123,7 @@ | |||
| 123 | ;; | 123 | ;; |
| 124 | 124 | ||
| 125 | ;; This variable will always hold the version number of the mode | 125 | ;; This variable will always hold the version number of the mode |
| 126 | (defconst verilog-mode-version "2015-08-16-ce03c7a-vpo-GNU" | 126 | (defconst verilog-mode-version "2015-09-18-314cf1d-vpo-GNU" |
| 127 | "Version of this Verilog mode.") | 127 | "Version of this Verilog mode.") |
| 128 | (defconst verilog-mode-release-emacs t | 128 | (defconst verilog-mode-release-emacs t |
| 129 | "If non-nil, this version of Verilog mode was released with Emacs itself.") | 129 | "If non-nil, this version of Verilog mode was released with Emacs itself.") |
| @@ -841,7 +841,7 @@ first difference.") | |||
| 841 | (verilog-xl-2 | 841 | (verilog-xl-2 |
| 842 | "([WE][0-9A-Z]+)[ \t]+\\([^ \t\n,]+\\)[, \t]+\\(line[ \t]+\\)?\\([0-9]+\\):.*$" 1 3) | 842 | "([WE][0-9A-Z]+)[ \t]+\\([^ \t\n,]+\\)[, \t]+\\(line[ \t]+\\)?\\([0-9]+\\):.*$" 1 3) |
| 843 | (verilog-IES | 843 | (verilog-IES |
| 844 | ".*\\*[WE],[0-9A-Z]+\\(\[[0-9A-Z_,]+\]\\)? (\\([^ \t,]+\\),\\([0-9]+\\)" 2 3) | 844 | ".*\\*[WE],[0-9A-Z]+\\(\\[[0-9A-Z_,]+\\]\\)? (\\([^ \t,]+\\),\\([0-9]+\\)" 2 3) |
| 845 | (verilog-surefire-1 | 845 | (verilog-surefire-1 |
| 846 | "[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 1 2) | 846 | "[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 1 2) |
| 847 | (verilog-surefire-2 | 847 | (verilog-surefire-2 |
| @@ -885,8 +885,8 @@ See `compilation-error-regexp-alist-alist' for the formatting. For XEmacs.") | |||
| 885 | ("([WE][0-9A-Z]+)[ \t]+\\([^ \t\n,]+\\)[, \t]+\\(line[ \t]+\\)?\\([0-9]+\\):.*$" 1 bold t) | 885 | ("([WE][0-9A-Z]+)[ \t]+\\([^ \t\n,]+\\)[, \t]+\\(line[ \t]+\\)?\\([0-9]+\\):.*$" 1 bold t) |
| 886 | ("([WE][0-9A-Z]+)[ \t]+\\([^ \t\n,]+\\)[, \t]+\\(line[ \t]+\\)?\\([0-9]+\\):.*$" 3 bold t) | 886 | ("([WE][0-9A-Z]+)[ \t]+\\([^ \t\n,]+\\)[, \t]+\\(line[ \t]+\\)?\\([0-9]+\\):.*$" 3 bold t) |
| 887 | ;; verilog-IES (nc-verilog) | 887 | ;; verilog-IES (nc-verilog) |
| 888 | (".*\\*[WE],[0-9A-Z]+\\(\[[0-9A-Z_,]+\]\\)? (\\([^ \t,]+\\),\\([0-9]+\\)|" 2 bold t) | 888 | (".*\\*[WE],[0-9A-Z]+\\(\\[[0-9A-Z_,]+\\]\\)? (\\([^ \t,]+\\),\\([0-9]+\\)|" 2 bold t) |
| 889 | (".*\\*[WE],[0-9A-Z]+\\(\[[0-9A-Z_,]+\]\\)? (\\([^ \t,]+\\),\\([0-9]+\\)|" 3 bold t) | 889 | (".*\\*[WE],[0-9A-Z]+\\(\\[[0-9A-Z_,]+\\]\\)? (\\([^ \t,]+\\),\\([0-9]+\\)|" 3 bold t) |
| 890 | ;; verilog-surefire-1 | 890 | ;; verilog-surefire-1 |
| 891 | ("[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 1 bold t) | 891 | ("[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 1 bold t) |
| 892 | ("[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 2 bold t) | 892 | ("[^\n]*\\[\\([^:]+\\):\\([0-9]+\\)\\]" 2 bold t) |
| @@ -2303,7 +2303,7 @@ find the errors." | |||
| 2303 | ;; non blocking assignment operator | 2303 | ;; non blocking assignment operator |
| 2304 | "<=" | 2304 | "<=" |
| 2305 | ;; comparison | 2305 | ;; comparison |
| 2306 | "==" "!=" "===" "!==" "<=" ">=" "==\?" "!=\?" "<->" | 2306 | "==" "!=" "===" "!==" "<=" ">=" "==?" "!=?" "<->" |
| 2307 | ;; event_trigger | 2307 | ;; event_trigger |
| 2308 | "->" "->>" | 2308 | "->" "->>" |
| 2309 | ;; property_expr | 2309 | ;; property_expr |
| @@ -2469,7 +2469,7 @@ find the errors." | |||
| 2469 | "\\(\\<begin\\>\\)\\|" ; 1 | 2469 | "\\(\\<begin\\>\\)\\|" ; 1 |
| 2470 | "\\(\\<else\\>\\)\\|" ; 2 | 2470 | "\\(\\<else\\>\\)\\|" ; 2 |
| 2471 | "\\(\\<end\\>\\s-+\\<else\\>\\)\\|" ; 3 | 2471 | "\\(\\<end\\>\\s-+\\<else\\>\\)\\|" ; 3 |
| 2472 | "\\(\\<always\\(?:_ff\\)?\\>\\(?:\[ \t\]*@\\)\\)\\|" ; 4 (matches always or always_ff w/ @...) | 2472 | "\\(\\<always\\(?:_ff\\)?\\>\\(?:[ \t]*@\\)\\)\\|" ; 4 (matches always or always_ff w/ @...) |
| 2473 | "\\(\\<always\\(?:_comb\\|_latch\\)?\\>\\)\\|" ; 5 (matches always, always_comb, always_latch w/o @...) | 2473 | "\\(\\<always\\(?:_comb\\|_latch\\)?\\>\\)\\|" ; 5 (matches always, always_comb, always_latch w/o @...) |
| 2474 | "\\(\\<fork\\>\\)\\|" ; 7 | 2474 | "\\(\\<fork\\>\\)\\|" ; 7 |
| 2475 | "\\(\\<if\\>\\)\\|" | 2475 | "\\(\\<if\\>\\)\\|" |
| @@ -3194,10 +3194,10 @@ See also `verilog-font-lock-extra-types'.") | |||
| 3194 | 'font-lock-preprocessor-face | 3194 | 'font-lock-preprocessor-face |
| 3195 | 'font-lock-type-face)) | 3195 | 'font-lock-type-face)) |
| 3196 | ;; Fontify delays/numbers | 3196 | ;; Fontify delays/numbers |
| 3197 | '("\\(@\\)\\|\\([ \t\n\f\r]#\\s-*\\(\\(\[0-9_.\]+\\('s?[hdxbo][0-9a-fA-F_xz]*\\)?\\)\\|\\(([^()]+)\\|\\sw+\\)\\)\\)" | 3197 | '("\\(@\\)\\|\\([ \t\n\f\r]#\\s-*\\(\\([0-9_.]+\\('s?[hdxbo][0-9a-fA-F_xz]*\\)?\\)\\|\\(([^()]+)\\|\\sw+\\)\\)\\)" |
| 3198 | 0 font-lock-type-face append) | 3198 | 0 font-lock-type-face append) |
| 3199 | ;; Fontify property/sequence cycle delays - these start with '##' | 3199 | ;; Fontify property/sequence cycle delays - these start with '##' |
| 3200 | '("\\(##\\(\\sw+\\|\\[[^\]]+\\]\\)\\)" | 3200 | '("\\(##\\(\\sw+\\|\\[[^]]+\\]\\)\\)" |
| 3201 | 0 font-lock-type-face append) | 3201 | 0 font-lock-type-face append) |
| 3202 | ;; Fontify instantiation names | 3202 | ;; Fontify instantiation names |
| 3203 | '("\\([A-Za-z][A-Za-z0-9_]*\\)\\s-*(" 1 font-lock-function-name-face) | 3203 | '("\\([A-Za-z][A-Za-z0-9_]*\\)\\s-*(" 1 font-lock-function-name-face) |
| @@ -3442,7 +3442,7 @@ Use filename, if current buffer being edited shorten to just buffer name." | |||
| 3442 | (verilog-forward-sexp)) | 3442 | (verilog-forward-sexp)) |
| 3443 | 3443 | ||
| 3444 | (defun verilog-forward-sexp-function (arg) | 3444 | (defun verilog-forward-sexp-function (arg) |
| 3445 | "Move forward a sexp." | 3445 | "Move forward ARG sexps." |
| 3446 | ;; Used by hs-minor-mode | 3446 | ;; Used by hs-minor-mode |
| 3447 | (if (< arg 0) | 3447 | (if (< arg 0) |
| 3448 | (verilog-backward-sexp) | 3448 | (verilog-backward-sexp) |
| @@ -3936,7 +3936,7 @@ With optional ARG, remove existing end of line comments." | |||
| 3936 | (defun electric-verilog-semi-with-comment () | 3936 | (defun electric-verilog-semi-with-comment () |
| 3937 | "Insert `;' character, reindent the line and indent for comment." | 3937 | "Insert `;' character, reindent the line and indent for comment." |
| 3938 | (interactive) | 3938 | (interactive) |
| 3939 | (insert "\;") | 3939 | (insert ";") |
| 3940 | (save-excursion | 3940 | (save-excursion |
| 3941 | (beginning-of-line) | 3941 | (beginning-of-line) |
| 3942 | (verilog-indent-line)) | 3942 | (verilog-indent-line)) |
| @@ -4072,7 +4072,7 @@ if it reaches the end of the buffer." | |||
| 4072 | The upper left corner is defined by point. Indices begin with 0 | 4072 | The upper left corner is defined by point. Indices begin with 0 |
| 4073 | and extend to the MAX - 1. If no prefix arg is given, the user | 4073 | and extend to the MAX - 1. If no prefix arg is given, the user |
| 4074 | is prompted for a value. The indices are surrounded by square | 4074 | is prompted for a value. The indices are surrounded by square |
| 4075 | brackets \[]. For example, the following code with the point | 4075 | brackets []. For example, the following code with the point |
| 4076 | located after the first 'a' gives: | 4076 | located after the first 'a' gives: |
| 4077 | 4077 | ||
| 4078 | a = b a[ 0] = b | 4078 | a = b a[ 0] = b |
| @@ -5072,7 +5072,7 @@ Useful for creating tri's and other expanded fields." | |||
| 5072 | (if (verilog-within-string) | 5072 | (if (verilog-within-string) |
| 5073 | (re-search-forward "\"" nil t) | 5073 | (re-search-forward "\"" nil t) |
| 5074 | (if (verilog-in-star-comment-p) | 5074 | (if (verilog-in-star-comment-p) |
| 5075 | (re-search-forward "\*/" nil t) | 5075 | (re-search-forward "\\*/" nil t) |
| 5076 | (let ((bpt (- (point) 2))) | 5076 | (let ((bpt (- (point) 2))) |
| 5077 | (end-of-line) | 5077 | (end-of-line) |
| 5078 | (delete-region bpt (point)))))) | 5078 | (delete-region bpt (point)))))) |
| @@ -5184,7 +5184,7 @@ becomes: | |||
| 5184 | (t | 5184 | (t |
| 5185 | ))) | 5185 | ))) |
| 5186 | ((verilog-in-star-comment-p) | 5186 | ((verilog-in-star-comment-p) |
| 5187 | (re-search-backward "/\*") | 5187 | (re-search-backward "/\\*") |
| 5188 | (insert (format " // surefire lint_off_line %6s" code ))) | 5188 | (insert (format " // surefire lint_off_line %6s" code ))) |
| 5189 | (t | 5189 | (t |
| 5190 | (insert (format " // surefire lint_off_line %6s" code )) | 5190 | (insert (format " // surefire lint_off_line %6s" code )) |
| @@ -5301,8 +5301,8 @@ Save the result unless optional NO-SAVE is t." | |||
| 5301 | (save-excursion | 5301 | (save-excursion |
| 5302 | (if (not (file-exists-p (buffer-file-name buf))) | 5302 | (if (not (file-exists-p (buffer-file-name buf))) |
| 5303 | (error | 5303 | (error |
| 5304 | (concat "File not found: " (buffer-file-name buf)))) | 5304 | "File not found: %s" (buffer-file-name buf))) |
| 5305 | (message (concat "Processing " (buffer-file-name buf))) | 5305 | (message "Processing %s" (buffer-file-name buf)) |
| 5306 | (set-buffer buf) | 5306 | (set-buffer buf) |
| 5307 | (funcall funref) | 5307 | (funcall funref) |
| 5308 | (when (and (not no-save) | 5308 | (when (and (not no-save) |
| @@ -6054,7 +6054,7 @@ Optional BOUND limits search." | |||
| 6054 | (verilog-re-search-backward "//" nil 'move) | 6054 | (verilog-re-search-backward "//" nil 'move) |
| 6055 | (skip-chars-backward "/")) | 6055 | (skip-chars-backward "/")) |
| 6056 | ((nth 4 state) ; in /* */ comment | 6056 | ((nth 4 state) ; in /* */ comment |
| 6057 | (verilog-re-search-backward "/\*" nil 'move)))) | 6057 | (verilog-re-search-backward "/\\*" nil 'move)))) |
| 6058 | (narrow-to-region bound (point)) | 6058 | (narrow-to-region bound (point)) |
| 6059 | (while (/= here (point)) | 6059 | (while (/= here (point)) |
| 6060 | (setq here (point)) | 6060 | (setq here (point)) |
| @@ -6092,7 +6092,7 @@ Optional BOUND limits search." | |||
| 6092 | (skip-chars-forward " \t\n\f") | 6092 | (skip-chars-forward " \t\n\f") |
| 6093 | ) | 6093 | ) |
| 6094 | ((nth 4 state) ; in /* */ comment | 6094 | ((nth 4 state) ; in /* */ comment |
| 6095 | (verilog-re-search-forward "\*\/\\s-*" nil 'move)))) | 6095 | (verilog-re-search-forward "\\*/\\s-*" nil 'move)))) |
| 6096 | (narrow-to-region (point) bound) | 6096 | (narrow-to-region (point) bound) |
| 6097 | (while (/= here (point)) | 6097 | (while (/= here (point)) |
| 6098 | (setq here (point) | 6098 | (setq here (point) |
| @@ -6673,7 +6673,7 @@ Do not count named blocks or case-statements." | |||
| 6673 | (save-excursion | 6673 | (save-excursion |
| 6674 | (forward-line -1) | 6674 | (forward-line -1) |
| 6675 | (skip-chars-forward " \t") | 6675 | (skip-chars-forward " \t") |
| 6676 | (looking-at "\*"))) | 6676 | (looking-at "\\*"))) |
| 6677 | (insert "* "))))) | 6677 | (insert "* "))))) |
| 6678 | 6678 | ||
| 6679 | (defun verilog-comment-indent (&optional _arg) | 6679 | (defun verilog-comment-indent (&optional _arg) |
| @@ -7078,7 +7078,7 @@ Region is defined by B and EDPOS." | |||
| 7078 | (beginning-of-line) | 7078 | (beginning-of-line) |
| 7079 | (point-marker) | 7079 | (point-marker) |
| 7080 | (end-of-line)))) | 7080 | (end-of-line)))) |
| 7081 | (if (re-search-backward " /\\* \[#-\]# \[a-zA-Z\]+ \[0-9\]+ ## \\*/" b t) | 7081 | (if (re-search-backward " /\\* [#-]# [a-zA-Z]+ [0-9]+ ## \\*/" b t) |
| 7082 | (progn | 7082 | (progn |
| 7083 | (replace-match " /* -# ## */") | 7083 | (replace-match " /* -# ## */") |
| 7084 | (end-of-line)) | 7084 | (end-of-line)) |
| @@ -8074,9 +8074,9 @@ Duplicate signals are also removed. For example A[2] and A[1] become A[2:1]." | |||
| 8074 | (when (and sv-busstring | 8074 | (when (and sv-busstring |
| 8075 | (not (equal sv-busstring (verilog-sig-bits sig)))) | 8075 | (not (equal sv-busstring (verilog-sig-bits sig)))) |
| 8076 | (when nil ; Debugging | 8076 | (when nil ; Debugging |
| 8077 | (message (concat "Warning, can't merge into single bus " | 8077 | (message (concat "Warning, can't merge into single bus %s%s" |
| 8078 | sv-name bus | 8078 | ", the AUTOs may be wrong") |
| 8079 | ", the AUTOs may be wrong"))) | 8079 | sv-name bus)) |
| 8080 | (setq buswarn ", Couldn't Merge")) | 8080 | (setq buswarn ", Couldn't Merge")) |
| 8081 | (if (verilog-sig-comment sig) (setq combo ", ...")) | 8081 | (if (verilog-sig-comment sig) (setq combo ", ...")) |
| 8082 | (setq sv-memory (or sv-memory (verilog-sig-memory sig)) | 8082 | (setq sv-memory (or sv-memory (verilog-sig-memory sig)) |
| @@ -8129,7 +8129,8 @@ Tieoff value uses `verilog-active-low-regexp' and | |||
| 8129 | ;; | 8129 | ;; |
| 8130 | 8130 | ||
| 8131 | (defun verilog-decls-princ (decls &optional header prefix) | 8131 | (defun verilog-decls-princ (decls &optional header prefix) |
| 8132 | "For debug, dump the `verilog-read-decls' structure DECLS." | 8132 | "For debug, dump the `verilog-read-decls' structure DECLS. |
| 8133 | Use optional HEADER and PREFIX." | ||
| 8133 | (when decls | 8134 | (when decls |
| 8134 | (if header (princ header)) | 8135 | (if header (princ header)) |
| 8135 | (setq prefix (or prefix "")) | 8136 | (setq prefix (or prefix "")) |
| @@ -8173,7 +8174,7 @@ Tieoff value uses `verilog-active-low-regexp' and | |||
| 8173 | (princ "\n"))))) | 8174 | (princ "\n"))))) |
| 8174 | 8175 | ||
| 8175 | (defun verilog-modport-princ (modports &optional header prefix) | 8176 | (defun verilog-modport-princ (modports &optional header prefix) |
| 8176 | "For debug, dump internal MODPORT structures, with HEADER and PREFIX." | 8177 | "For debug, dump internal MODPORTS structures, with HEADER and PREFIX." |
| 8177 | (when modports | 8178 | (when modports |
| 8178 | (if header (princ header)) | 8179 | (if header (princ header)) |
| 8179 | (while modports | 8180 | (while modports |
| @@ -8196,32 +8197,32 @@ Tieoff value uses `verilog-active-low-regexp' and | |||
| 8196 | (verilog-backward-open-paren) | 8197 | (verilog-backward-open-paren) |
| 8197 | (let (done) | 8198 | (let (done) |
| 8198 | (while (not done) | 8199 | (while (not done) |
| 8199 | (verilog-re-search-backward-quick "\\()\\|\\b[a-zA-Z0-9`_\$]\\|\\]\\)" nil nil) ; ] isn't word boundary | 8200 | (verilog-re-search-backward-quick "\\()\\|\\b[a-zA-Z0-9`_$]\\|\\]\\)" nil nil) ; ] isn't word boundary |
| 8200 | (cond ((looking-at ")") | 8201 | (cond ((looking-at ")") |
| 8201 | (verilog-backward-open-paren)) | 8202 | (verilog-backward-open-paren)) |
| 8202 | (t (setq done t))))) | 8203 | (t (setq done t))))) |
| 8203 | (while (looking-at "\\]") | 8204 | (while (looking-at "\\]") |
| 8204 | (verilog-backward-open-bracket) | 8205 | (verilog-backward-open-bracket) |
| 8205 | (verilog-re-search-backward-quick "\\(\\b[a-zA-Z0-9`_\$]\\|\\]\\)" nil nil)) | 8206 | (verilog-re-search-backward-quick "\\(\\b[a-zA-Z0-9`_$]\\|\\]\\)" nil nil)) |
| 8206 | (skip-chars-backward "a-zA-Z0-9`_$")) | 8207 | (skip-chars-backward "a-zA-Z0-9`_$")) |
| 8207 | 8208 | ||
| 8208 | (defun verilog-read-inst-module-matcher () | 8209 | (defun verilog-read-inst-module-matcher () |
| 8209 | "Set match data 0 with module_name when point is inside instantiation." | 8210 | "Set match data 0 with module_name when point is inside instantiation." |
| 8210 | (verilog-read-inst-backward-name) | 8211 | (verilog-read-inst-backward-name) |
| 8211 | ;; Skip over instantiation name | 8212 | ;; Skip over instantiation name |
| 8212 | (verilog-re-search-backward-quick "\\(\\b[a-zA-Z0-9`_\$]\\|)\\)" nil nil) ; ) isn't word boundary | 8213 | (verilog-re-search-backward-quick "\\(\\b[a-zA-Z0-9`_$]\\|)\\)" nil nil) ; ) isn't word boundary |
| 8213 | ;; Check for parameterized instantiations | 8214 | ;; Check for parameterized instantiations |
| 8214 | (when (looking-at ")") | 8215 | (when (looking-at ")") |
| 8215 | (verilog-backward-open-paren) | 8216 | (verilog-backward-open-paren) |
| 8216 | (verilog-re-search-backward-quick "\\b[a-zA-Z0-9`_\$]" nil nil)) | 8217 | (verilog-re-search-backward-quick "\\b[a-zA-Z0-9`_$]" nil nil)) |
| 8217 | (skip-chars-backward "a-zA-Z0-9'_$") | 8218 | (skip-chars-backward "a-zA-Z0-9'_$") |
| 8218 | ;; #1 is legal syntax for gate primitives | 8219 | ;; #1 is legal syntax for gate primitives |
| 8219 | (when (save-excursion | 8220 | (when (save-excursion |
| 8220 | (verilog-backward-syntactic-ws-quick) | 8221 | (verilog-backward-syntactic-ws-quick) |
| 8221 | (eq ?# (char-before))) | 8222 | (eq ?# (char-before))) |
| 8222 | (verilog-re-search-backward-quick "\\b[a-zA-Z0-9`_\$]" nil nil) | 8223 | (verilog-re-search-backward-quick "\\b[a-zA-Z0-9`_$]" nil nil) |
| 8223 | (skip-chars-backward "a-zA-Z0-9'_$")) | 8224 | (skip-chars-backward "a-zA-Z0-9'_$")) |
| 8224 | (looking-at "[a-zA-Z0-9`_\$]+") | 8225 | (looking-at "[a-zA-Z0-9`_$]+") |
| 8225 | ;; Important: don't use match string, this must work with Emacs 19 font-lock on | 8226 | ;; Important: don't use match string, this must work with Emacs 19 font-lock on |
| 8226 | (buffer-substring-no-properties (match-beginning 0) (match-end 0)) | 8227 | (buffer-substring-no-properties (match-beginning 0) (match-end 0)) |
| 8227 | ;; Caller assumes match-beginning/match-end is still set | 8228 | ;; Caller assumes match-beginning/match-end is still set |
| @@ -8236,7 +8237,7 @@ Tieoff value uses `verilog-active-low-regexp' and | |||
| 8236 | "Return instance_name when point is inside instantiation." | 8237 | "Return instance_name when point is inside instantiation." |
| 8237 | (save-excursion | 8238 | (save-excursion |
| 8238 | (verilog-read-inst-backward-name) | 8239 | (verilog-read-inst-backward-name) |
| 8239 | (looking-at "[a-zA-Z0-9`_\$]+") | 8240 | (looking-at "[a-zA-Z0-9`_$]+") |
| 8240 | ;; Important: don't use match string, this must work with Emacs 19 font-lock on | 8241 | ;; Important: don't use match string, this must work with Emacs 19 font-lock on |
| 8241 | (buffer-substring-no-properties (match-beginning 0) (match-end 0)))) | 8242 | (buffer-substring-no-properties (match-beginning 0) (match-end 0)))) |
| 8242 | 8243 | ||
| @@ -8247,7 +8248,7 @@ Tieoff value uses `verilog-active-low-regexp' and | |||
| 8247 | ;; Due to "module x import y (" we must search for declaration begin | 8248 | ;; Due to "module x import y (" we must search for declaration begin |
| 8248 | (verilog-re-search-backward-quick verilog-defun-re nil nil) | 8249 | (verilog-re-search-backward-quick verilog-defun-re nil nil) |
| 8249 | (goto-char (match-end 0)) | 8250 | (goto-char (match-end 0)) |
| 8250 | (verilog-re-search-forward-quick "\\b[a-zA-Z0-9`_\$]+" nil nil) | 8251 | (verilog-re-search-forward-quick "\\b[a-zA-Z0-9`_$]+" nil nil) |
| 8251 | ;; Important: don't use match string, this must work with Emacs 19 font-lock on | 8252 | ;; Important: don't use match string, this must work with Emacs 19 font-lock on |
| 8252 | (verilog-symbol-detick | 8253 | (verilog-symbol-detick |
| 8253 | (buffer-substring-no-properties (match-beginning 0) (match-end 0)) t))) | 8254 | (buffer-substring-no-properties (match-beginning 0) (match-end 0)) t))) |
| @@ -8257,7 +8258,7 @@ Tieoff value uses `verilog-active-low-regexp' and | |||
| 8257 | (save-excursion | 8258 | (save-excursion |
| 8258 | (verilog-read-inst-backward-name) | 8259 | (verilog-read-inst-backward-name) |
| 8259 | ;; Skip over instantiation name | 8260 | ;; Skip over instantiation name |
| 8260 | (verilog-re-search-backward-quick "\\(\\b[a-zA-Z0-9`_\$]\\|)\\)" nil nil) ; ) isn't word boundary | 8261 | (verilog-re-search-backward-quick "\\(\\b[a-zA-Z0-9`_$]\\|)\\)" nil nil) ; ) isn't word boundary |
| 8261 | ;; If there are parameterized instantiations | 8262 | ;; If there are parameterized instantiations |
| 8262 | (when (looking-at ")") | 8263 | (when (looking-at ")") |
| 8263 | (let ((end-pt (point)) | 8264 | (let ((end-pt (point)) |
| @@ -8265,9 +8266,9 @@ Tieoff value uses `verilog-active-low-regexp' and | |||
| 8265 | param-name paren-beg-pt param-value) | 8266 | param-name paren-beg-pt param-value) |
| 8266 | (verilog-backward-open-paren) | 8267 | (verilog-backward-open-paren) |
| 8267 | (while (verilog-re-search-forward-quick "\\." end-pt t) | 8268 | (while (verilog-re-search-forward-quick "\\." end-pt t) |
| 8268 | (verilog-re-search-forward-quick "\\([a-zA-Z0-9`_\$]\\)" nil nil) | 8269 | (verilog-re-search-forward-quick "\\([a-zA-Z0-9`_$]\\)" nil nil) |
| 8269 | (skip-chars-backward "a-zA-Z0-9'_$") | 8270 | (skip-chars-backward "a-zA-Z0-9'_$") |
| 8270 | (looking-at "[a-zA-Z0-9`_\$]+") | 8271 | (looking-at "[a-zA-Z0-9`_$]+") |
| 8271 | (setq param-name (buffer-substring-no-properties | 8272 | (setq param-name (buffer-substring-no-properties |
| 8272 | (match-beginning 0) (match-end 0))) | 8273 | (match-beginning 0) (match-end 0))) |
| 8273 | (verilog-re-search-forward-quick "(" nil nil) | 8274 | (verilog-re-search-forward-quick "(" nil nil) |
| @@ -8666,7 +8667,7 @@ Return an array of [outputs inouts inputs wire reg assign const]." | |||
| 8666 | 8667 | ||
| 8667 | (defun verilog-read-sub-decls-expr (submoddecls comment port expr) | 8668 | (defun verilog-read-sub-decls-expr (submoddecls comment port expr) |
| 8668 | "For `verilog-read-sub-decls-line', parse a subexpression and add signals." | 8669 | "For `verilog-read-sub-decls-line', parse a subexpression and add signals." |
| 8669 | ;;(message "vrsde: ‘%s’" expr) | 8670 | ;;(message "vrsde: `%s'" expr) |
| 8670 | ;; Replace special /*[....]*/ comments inserted by verilog-auto-inst-port | 8671 | ;; Replace special /*[....]*/ comments inserted by verilog-auto-inst-port |
| 8671 | (setq expr (verilog-string-replace-matches "/\\*\\(\\[[^*]+\\]\\)\\*/" "\\1" nil nil expr)) | 8672 | (setq expr (verilog-string-replace-matches "/\\*\\(\\[[^*]+\\]\\)\\*/" "\\1" nil nil expr)) |
| 8672 | ;; Remove front operators | 8673 | ;; Remove front operators |
| @@ -8685,25 +8686,25 @@ Return an array of [outputs inouts inputs wire reg assign const]." | |||
| 8685 | (let (sig vec multidim) | 8686 | (let (sig vec multidim) |
| 8686 | ;; Remove leading reduction operators, etc | 8687 | ;; Remove leading reduction operators, etc |
| 8687 | (setq expr (verilog-string-replace-matches "^\\s-*[---+~!|&]+\\s-*" "" nil nil expr)) | 8688 | (setq expr (verilog-string-replace-matches "^\\s-*[---+~!|&]+\\s-*" "" nil nil expr)) |
| 8688 | ;;(message "vrsde-ptop: ‘%s’" expr) | 8689 | ;;(message "vrsde-ptop: `%s'" expr) |
| 8689 | (cond ; Find \signal. Final space is part of escaped signal name | 8690 | (cond ; Find \signal. Final space is part of escaped signal name |
| 8690 | ((string-match "^\\s-*\\(\\\\[^ \t\n\f]+\\s-\\)" expr) | 8691 | ((string-match "^\\s-*\\(\\\\[^ \t\n\f]+\\s-\\)" expr) |
| 8691 | ;;(message "vrsde-s: ‘%s’" (match-string 1 expr)) | 8692 | ;;(message "vrsde-s: `%s'" (match-string 1 expr)) |
| 8692 | (setq sig (match-string 1 expr) | 8693 | (setq sig (match-string 1 expr) |
| 8693 | expr (substring expr (match-end 0)))) | 8694 | expr (substring expr (match-end 0)))) |
| 8694 | ;; Find signal | 8695 | ;; Find signal |
| 8695 | ((string-match "^\\s-*\\([a-zA-Z_][a-zA-Z_0-9]*\\)" expr) | 8696 | ((string-match "^\\s-*\\([a-zA-Z_][a-zA-Z_0-9]*\\)" expr) |
| 8696 | ;;(message "vrsde-s: ‘%s’" (match-string 1 expr)) | 8697 | ;;(message "vrsde-s: `%s'" (match-string 1 expr)) |
| 8697 | (setq sig (verilog-string-remove-spaces (match-string 1 expr)) | 8698 | (setq sig (verilog-string-remove-spaces (match-string 1 expr)) |
| 8698 | expr (substring expr (match-end 0))))) | 8699 | expr (substring expr (match-end 0))))) |
| 8699 | ;; Find [vector] or [multi][multi][multi][vector] | 8700 | ;; Find [vector] or [multi][multi][multi][vector] |
| 8700 | (while (string-match "^\\s-*\\(\\[[^]]+\\]\\)" expr) | 8701 | (while (string-match "^\\s-*\\(\\[[^]]+\\]\\)" expr) |
| 8701 | ;;(message "vrsde-v: ‘%s’" (match-string 1 expr)) | 8702 | ;;(message "vrsde-v: `%s'" (match-string 1 expr)) |
| 8702 | (when vec (setq multidim (cons vec multidim))) | 8703 | (when vec (setq multidim (cons vec multidim))) |
| 8703 | (setq vec (match-string 1 expr) | 8704 | (setq vec (match-string 1 expr) |
| 8704 | expr (substring expr (match-end 0)))) | 8705 | expr (substring expr (match-end 0)))) |
| 8705 | ;; If found signal, and nothing unrecognized, add the signal | 8706 | ;; If found signal, and nothing unrecognized, add the signal |
| 8706 | ;;(message "vrsde-rem: ‘%s’" expr) | 8707 | ;;(message "vrsde-rem: `%s'" expr) |
| 8707 | (when (and sig (string-match "^\\s-*$" expr)) | 8708 | (when (and sig (string-match "^\\s-*$" expr)) |
| 8708 | (verilog-read-sub-decls-sig submoddecls comment port sig vec multidim)))))) | 8709 | (verilog-read-sub-decls-sig submoddecls comment port sig vec multidim)))))) |
| 8709 | 8710 | ||
| @@ -9324,8 +9325,8 @@ warning message, you need to add to your init file: | |||
| 9324 | (let ((fns (verilog-library-filenames filename (buffer-file-name)))) | 9325 | (let ((fns (verilog-library-filenames filename (buffer-file-name)))) |
| 9325 | (if fns | 9326 | (if fns |
| 9326 | (set-buffer (find-file-noselect (car fns))) | 9327 | (set-buffer (find-file-noselect (car fns))) |
| 9327 | (error (concat (verilog-point-text) | 9328 | (error "%s: Can't find verilog-read-defines file: %s" |
| 9328 | ": Can't find verilog-read-defines file: " filename))))) | 9329 | (verilog-point-text) filename)))) |
| 9329 | (when recurse | 9330 | (when recurse |
| 9330 | (goto-char (point-min)) | 9331 | (goto-char (point-min)) |
| 9331 | (while (re-search-forward "^\\s-*`include\\s-+\\([^ \t\n\f]+\\)" nil t) | 9332 | (while (re-search-forward "^\\s-*`include\\s-+\\([^ \t\n\f]+\\)" nil t) |
| @@ -9506,8 +9507,8 @@ Some macros and such are also found and included. For dinotrace.el." | |||
| 9506 | line) | 9507 | line) |
| 9507 | (if fns | 9508 | (if fns |
| 9508 | (set-buffer (find-file-noselect (car fns))) | 9509 | (set-buffer (find-file-noselect (car fns))) |
| 9509 | (error (concat (verilog-point-text) | 9510 | (error "%s: Can't find verilog-getopt-file -f file: %s" |
| 9510 | ": Can't find verilog-getopt-file -f file: " filename))) | 9511 | (verilog-point-text) filename)) |
| 9511 | (goto-char (point-min)) | 9512 | (goto-char (point-min)) |
| 9512 | (while (not (eobp)) | 9513 | (while (not (eobp)) |
| 9513 | (setq line (buffer-substring (point) (point-at-eol))) | 9514 | (setq line (buffer-substring (point) (point-at-eol))) |
| @@ -9674,7 +9675,7 @@ If undefined, and WING-IT, return just SYMBOL without the tick, else nil." | |||
| 9674 | ;; something like a[b]. Sorry, it should be substituted into the parser | 9675 | ;; something like a[b]. Sorry, it should be substituted into the parser |
| 9675 | (setq symbol | 9676 | (setq symbol |
| 9676 | (verilog-string-replace-matches | 9677 | (verilog-string-replace-matches |
| 9677 | "\[[^0-9: \t]+\]" "" nil nil | 9678 | "\\[[^0-9: \t]+\\]" "" nil nil |
| 9678 | (or (verilog-symbol-detick symbol nil) | 9679 | (or (verilog-symbol-detick symbol nil) |
| 9679 | (if verilog-auto-sense-defines-constant | 9680 | (if verilog-auto-sense-defines-constant |
| 9680 | "0" | 9681 | "0" |
| @@ -9709,7 +9710,8 @@ Or, just the existing dirnames themselves if there are no wildcards." | |||
| 9709 | ;; Note this function is performance critical. | 9710 | ;; Note this function is performance critical. |
| 9710 | ;; Do not call anything that requires disk access that cannot be cached. | 9711 | ;; Do not call anything that requires disk access that cannot be cached. |
| 9711 | (interactive) | 9712 | (interactive) |
| 9712 | (unless dirnames (error "`verilog-library-directories' should include at least '.'")) | 9713 | (unless dirnames |
| 9714 | (error "`verilog-library-directories' should include at least `.'")) | ||
| 9713 | (setq dirnames (reverse dirnames)) ; not nreverse | 9715 | (setq dirnames (reverse dirnames)) ; not nreverse |
| 9714 | (let ((dirlist nil) | 9716 | (let ((dirlist nil) |
| 9715 | pattern dirfile dirfiles dirname root filename rest basefile) | 9717 | pattern dirfile dirfiles dirname root filename rest basefile) |
| @@ -9888,17 +9890,18 @@ Return modi if successful, else print message unless IGNORE-ERROR is true." | |||
| 9888 | (if (not (setq mif (verilog-module-inside-filename-p realname (car filenames)))) | 9890 | (if (not (setq mif (verilog-module-inside-filename-p realname (car filenames)))) |
| 9889 | (setq filenames (cdr filenames)))) | 9891 | (setq filenames (cdr filenames)))) |
| 9890 | ;; mif has correct form to become later elements of modi | 9892 | ;; mif has correct form to become later elements of modi |
| 9891 | (cond (mif (setq modi mif)) | 9893 | (setq modi mif) |
| 9892 | (t (setq modi nil) | 9894 | (or mif ignore-error |
| 9893 | (or ignore-error | 9895 | (error |
| 9894 | (error (concat (verilog-point-text) | 9896 | (concat |
| 9895 | ": Can't locate " module " module definition" | 9897 | "%s: Can't locate %s module definition%s" |
| 9896 | (if (not (equal module realname)) | 9898 | "\n Check the verilog-library-directories variable." |
| 9897 | (concat " (Expanded macro to " realname ")") | 9899 | "\n I looked in (if not listed, doesn't exist):\n\t%s") |
| 9898 | "") | 9900 | (verilog-point-text) module |
| 9899 | "\n Check the verilog-library-directories variable." | 9901 | (if (not (equal module realname)) |
| 9900 | "\n I looked in (if not listed, doesn't exist):\n\t" | 9902 | (concat " (Expanded macro to " realname ")") |
| 9901 | (mapconcat 'concat orig-filenames "\n\t")))))) | 9903 | "") |
| 9904 | (mapconcat 'concat orig-filenames "\n\t"))) | ||
| 9902 | (when (eval-when-compile (fboundp 'make-hash-table)) | 9905 | (when (eval-when-compile (fboundp 'make-hash-table)) |
| 9903 | (unless verilog-modi-lookup-cache | 9906 | (unless verilog-modi-lookup-cache |
| 9904 | (setq verilog-modi-lookup-cache | 9907 | (setq verilog-modi-lookup-cache |
| @@ -9994,16 +9997,17 @@ and invalidating the cache." | |||
| 9994 | 9997 | ||
| 9995 | 9998 | ||
| 9996 | (defun verilog-modi-modport-lookup-one (modi name &optional ignore-error) | 9999 | (defun verilog-modi-modport-lookup-one (modi name &optional ignore-error) |
| 9997 | "Given a MODI, return the declarations related to the given modport NAME." | 10000 | "Given a MODI, return the declarations related to the given modport NAME. |
| 10001 | Report errors unless optional IGNORE-ERROR." | ||
| 9998 | ;; Recursive routine - see below | 10002 | ;; Recursive routine - see below |
| 9999 | (let* ((realname (verilog-symbol-detick name t)) | 10003 | (let* ((realname (verilog-symbol-detick name t)) |
| 10000 | (modport (assoc name (verilog-decls-get-modports (verilog-modi-get-decls modi))))) | 10004 | (modport (assoc name (verilog-decls-get-modports (verilog-modi-get-decls modi))))) |
| 10001 | (or modport ignore-error | 10005 | (or modport ignore-error |
| 10002 | (error (concat (verilog-point-text) | 10006 | (error "%s: Can't locate %s modport definition%s" |
| 10003 | ": Can't locate " name " modport definition" | 10007 | (verilog-point-text) name |
| 10004 | (if (not (equal name realname)) | 10008 | (if (not (equal name realname)) |
| 10005 | (concat " (Expanded macro to " realname ")") | 10009 | (concat " (Expanded macro to " realname ")") |
| 10006 | "")))) | 10010 | ""))) |
| 10007 | (let* ((decls (verilog-modport-decls modport)) | 10011 | (let* ((decls (verilog-modport-decls modport)) |
| 10008 | (clks (verilog-modport-clockings modport))) | 10012 | (clks (verilog-modport-clockings modport))) |
| 10009 | ;; Now expand any clocking's | 10013 | ;; Now expand any clocking's |
| @@ -10641,7 +10645,7 @@ Typing \\[verilog-inject-auto] will make this into: | |||
| 10641 | (save-excursion | 10645 | (save-excursion |
| 10642 | (goto-char (point-min)) | 10646 | (goto-char (point-min)) |
| 10643 | ;; It's hard to distinguish modules; we'll instead search for pins. | 10647 | ;; It's hard to distinguish modules; we'll instead search for pins. |
| 10644 | (while (verilog-re-search-forward-quick "\\.\\s *[a-zA-Z0-9`_\$]+\\s *(\\s *[a-zA-Z0-9`_\$]+\\s *)" nil t) | 10648 | (while (verilog-re-search-forward-quick "\\.\\s *[a-zA-Z0-9`_$]+\\s *(\\s *[a-zA-Z0-9`_$]+\\s *)" nil t) |
| 10645 | (verilog-backward-open-paren) ; Inst start | 10649 | (verilog-backward-open-paren) ; Inst start |
| 10646 | (cond | 10650 | (cond |
| 10647 | ((= (preceding-char) ?\#) ; #(...) parameter section, not pin. Skip. | 10651 | ((= (preceding-char) ?\#) ; #(...) parameter section, not pin. Skip. |
| @@ -10656,7 +10660,7 @@ Typing \\[verilog-inject-auto] will make this into: | |||
| 10656 | (t | 10660 | (t |
| 10657 | ;; Delete identical interconnect | 10661 | ;; Delete identical interconnect |
| 10658 | (let ((case-fold-search nil)) ; So we don't convert upper-to-lower, etc | 10662 | (let ((case-fold-search nil)) ; So we don't convert upper-to-lower, etc |
| 10659 | (while (verilog-re-search-forward-quick "\\.\\s *\\([a-zA-Z0-9`_\$]+\\)*\\s *(\\s *\\1\\s *)\\s *" end-pt t) | 10663 | (while (verilog-re-search-forward-quick "\\.\\s *\\([a-zA-Z0-9`_$]+\\)*\\s *(\\s *\\1\\s *)\\s *" end-pt t) |
| 10660 | (delete-region (match-beginning 0) (match-end 0)) | 10664 | (delete-region (match-beginning 0) (match-end 0)) |
| 10661 | (setq end-pt (- end-pt (- (match-end 0) (match-beginning 0)))) ; Keep it correct | 10665 | (setq end-pt (- end-pt (- (match-end 0) (match-beginning 0)))) ; Keep it correct |
| 10662 | (while (or (looking-at "[ \t\n\f,]+") | 10666 | (while (or (looking-at "[ \t\n\f,]+") |
| @@ -11397,12 +11401,12 @@ Multiple Module Templates: | |||
| 11397 | instantiation name. | 11401 | instantiation name. |
| 11398 | 11402 | ||
| 11399 | If a regular expression is provided, the @ character will be replaced | 11403 | If a regular expression is provided, the @ character will be replaced |
| 11400 | with the first \(\) grouping that matches against the cell name. Using a | 11404 | with the first () grouping that matches against the cell name. Using a |
| 11401 | regexp of \"\\([0-9]+\\)\" provides identical values for @ as when no | 11405 | regexp of `\\([0-9]+\\)' provides identical values for @ as when no |
| 11402 | regexp is provided. If you use multiple layers of parenthesis, | 11406 | regexp is provided. If you use multiple layers of parenthesis, |
| 11403 | \"test\\([^0-9]+\\)_\\([0-9]+\\)\" would replace @ with non-number | 11407 | `test\\([^0-9]+\\)_\\([0-9]+\\)' would replace @ with non-number |
| 11404 | characters after test and before _, whereas | 11408 | characters after test and before _, whereas |
| 11405 | \"\\(test\\([a-z]+\\)_\\([0-9]+\\)\\)\" would replace @ with the entire | 11409 | `\\(test\\([a-z]+\\)_\\([0-9]+\\)\\)' would replace @ with the entire |
| 11406 | match. | 11410 | match. |
| 11407 | 11411 | ||
| 11408 | For example: | 11412 | For example: |
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el index 19a7e970a60..9ee4ab520e1 100644 --- a/lisp/progmodes/vhdl-mode.el +++ b/lisp/progmodes/vhdl-mode.el | |||
| @@ -268,7 +268,7 @@ Overrides local variable `indent-tabs-mode'." | |||
| 268 | ;; ** Error: adder.vhd(190): Unknown identifier: ctl_numb | 268 | ;; ** Error: adder.vhd(190): Unknown identifier: ctl_numb |
| 269 | ("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1" | 269 | ("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1" |
| 270 | nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim" | 270 | nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim" |
| 271 | ("^\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\[[0-9]+\]\\)? \\([^ \t\n]+\\)(\\([0-9]+\\)):" 3 4 nil) ("" 0) | 271 | ("^\\(ERROR\\|WARNING\\|\\*\\* Error\\|\\*\\* Warning\\)[^:]*:\\( *\\[[0-9]+]\\)? \\([^ \t\n]+\\)(\\([0-9]+\\)):" 3 4 nil) ("" 0) |
| 272 | ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" | 272 | ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" |
| 273 | "\\1/_primary.dat" "\\1/body.dat" downcase)) | 273 | "\\1/_primary.dat" "\\1/body.dat" downcase)) |
| 274 | ;; ProVHDL, Synopsys LEDA: provhdl -w work -f test.vhd | 274 | ;; ProVHDL, Synopsys LEDA: provhdl -w work -f test.vhd |
| @@ -315,7 +315,7 @@ Overrides local variable `indent-tabs-mode'." | |||
| 315 | ;; ERROR[11]::File test.vhd Line 100: Use of undeclared identifier | 315 | ;; ERROR[11]::File test.vhd Line 100: Use of undeclared identifier |
| 316 | ("Speedwave" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" | 316 | ("Speedwave" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" |
| 317 | nil "mkdir \\1" "./" "work/" "Makefile" "speedwave" | 317 | nil "mkdir \\1" "./" "work/" "Makefile" "speedwave" |
| 318 | ("^ *ERROR\[[0-9]+\]::File \\([^ \t\n]+\\) Line \\([0-9]+\\):" 1 2 nil) ("" 0) | 318 | ("^ *ERROR\\[[0-9]+]::File \\([^ \t\n]+\\) Line \\([0-9]+\\):" 1 2 nil) ("" 0) |
| 319 | nil) | 319 | nil) |
| 320 | ;; Synopsys, VHDL Analyzer (sim): vhdlan -nc test.vhd | 320 | ;; Synopsys, VHDL Analyzer (sim): vhdlan -nc test.vhd |
| 321 | ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. | 321 | ;; **Error: vhdlan,703 test.vhd(22): OTHERS is not legal in this context. |
| @@ -364,7 +364,7 @@ Overrides local variable `indent-tabs-mode'." | |||
| 364 | ;; ERROR:HDLParsers:164 - "test.vhd" Line 3. parse error | 364 | ;; ERROR:HDLParsers:164 - "test.vhd" Line 3. parse error |
| 365 | ("Xilinx XST" "xflow" "" "make" "-f \\1" | 365 | ("Xilinx XST" "xflow" "" "make" "-f \\1" |
| 366 | nil "mkdir \\1" "./" "work/" "Makefile" "xilinx" | 366 | nil "mkdir \\1" "./" "work/" "Makefile" "xilinx" |
| 367 | ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \t\n]+\\)\" Line \\([0-9]+\\)\." 1 2 nil) ("" 0) | 367 | ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \t\n]+\\)\" Line \\([0-9]+\\)\\." 1 2 nil) ("" 0) |
| 368 | nil) | 368 | nil) |
| 369 | ) | 369 | ) |
| 370 | "List of available VHDL compilers and their properties. | 370 | "List of available VHDL compilers and their properties. |
| @@ -376,8 +376,8 @@ Compiler: | |||
| 376 | Make command : command used for compilation using a Makefile | 376 | Make command : command used for compilation using a Makefile |
| 377 | Make options : make options (\"\\1\" inserts Makefile name) | 377 | Make options : make options (\"\\1\" inserts Makefile name) |
| 378 | Generate Makefile: use built-in function or command to generate a Makefile | 378 | Generate Makefile: use built-in function or command to generate a Makefile |
| 379 | \(\"\\1\" inserts Makefile name, \"\\2\" inserts library name) | 379 | (\"\\1\" inserts Makefile name, \"\\2\" inserts library name) |
| 380 | Library command : command to create library directory \(\"\\1\" inserts | 380 | Library command : command to create library directory (\"\\1\" inserts |
| 381 | library directory, \"\\2\" inserts library name) | 381 | library directory, \"\\2\" inserts library name) |
| 382 | Compile directory: where compilation is run and the Makefile is placed | 382 | Compile directory: where compilation is run and the Makefile is placed |
| 383 | Library directory: directory of default library | 383 | Library directory: directory of default library |
| @@ -519,9 +519,9 @@ with other user Makefiles." | |||
| 519 | Allows you to insert user specific parts into a Makefile. | 519 | Allows you to insert user specific parts into a Makefile. |
| 520 | 520 | ||
| 521 | Example: | 521 | Example: |
| 522 | \(lambda nil | 522 | (lambda nil |
| 523 | \(re-search-backward \"^# Rule for compiling entire design\") | 523 | (re-search-backward \"^# Rule for compiling entire design\") |
| 524 | \(insert \"# My target\\n\\n.MY_TARGET :\\n\\n\\n\"))" | 524 | (insert \"# My target\\n\\n.MY_TARGET :\\n\\n\\n\"))" |
| 525 | :type 'hook | 525 | :type 'hook |
| 526 | :group 'vhdl-compile) | 526 | :group 'vhdl-compile) |
| 527 | 527 | ||
| @@ -573,7 +573,7 @@ Is overwritten by project settings if a project is active." | |||
| 573 | \"\\3\" project-specific options) | 573 | \"\\3\" project-specific options) |
| 574 | - Do not compile: do not compile this file (in Makefile) | 574 | - Do not compile: do not compile this file (in Makefile) |
| 575 | Compile directory: where compilation is run and the Makefile is placed | 575 | Compile directory: where compilation is run and the Makefile is placed |
| 576 | \(\"\\1\" inserts compiler ID string) | 576 | (\"\\1\" inserts compiler ID string) |
| 577 | Library name : name of library (default is \"work\") | 577 | Library name : name of library (default is \"work\") |
| 578 | Library directory: path to library (\"\\1\" inserts compiler ID string) | 578 | Library directory: path to library (\"\\1\" inserts compiler ID string) |
| 579 | Makefile name : name of Makefile | 579 | Makefile name : name of Makefile |
| @@ -997,7 +997,7 @@ if the header needs to be version controlled. | |||
| 997 | The following keywords for template generation are supported: | 997 | The following keywords for template generation are supported: |
| 998 | <filename> : replaced by the name of the buffer | 998 | <filename> : replaced by the name of the buffer |
| 999 | <author> : replaced by the user name and email address | 999 | <author> : replaced by the user name and email address |
| 1000 | \(`user-full-name',`mail-host-address', `user-mail-address') | 1000 | (`user-full-name',`mail-host-address', `user-mail-address') |
| 1001 | <authorfull> : replaced by the user full name (`user-full-name') | 1001 | <authorfull> : replaced by the user full name (`user-full-name') |
| 1002 | <login> : replaced by user login name (`user-login-name') | 1002 | <login> : replaced by user login name (`user-login-name') |
| 1003 | <company> : replaced by contents of option `vhdl-company-name' | 1003 | <company> : replaced by contents of option `vhdl-company-name' |
| @@ -1678,8 +1678,8 @@ syntax (as regular expression) are highlighted in the corresponding color. | |||
| 1678 | 1678 | ||
| 1679 | Name : string of words and spaces | 1679 | Name : string of words and spaces |
| 1680 | Regexp : regular expression describing word syntax | 1680 | Regexp : regular expression describing word syntax |
| 1681 | (e.g. \"\\\\=\<\\\w+_c\\\\=\>\" matches word with suffix \"_c\") | 1681 | (e.g., `\\=\\<\\w+_c\\>' matches word with suffix `_c') |
| 1682 | expression must start with \"\\\\=\<\" and end with \"\\\\=\>\" | 1682 | expression must start with `\\=\\<' and end with `\\>' |
| 1683 | if only whole words should be matched (no substrings) | 1683 | if only whole words should be matched (no substrings) |
| 1684 | Color (light): foreground color for light background | 1684 | Color (light): foreground color for light background |
| 1685 | (matching color examples: Gold3, Grey50, LimeGreen, Tomato, | 1685 | (matching color examples: Gold3, Grey50, LimeGreen, Tomato, |
| @@ -1690,14 +1690,14 @@ syntax (as regular expression) are highlighted in the corresponding color. | |||
| 1690 | In comments : If non-nil, words are also highlighted inside comments | 1690 | In comments : If non-nil, words are also highlighted inside comments |
| 1691 | 1691 | ||
| 1692 | Can be used for visual support of naming conventions, such as highlighting | 1692 | Can be used for visual support of naming conventions, such as highlighting |
| 1693 | different kinds of signals (e.g. \"Clk50\", \"Rst_n\") or objects (e.g. | 1693 | different kinds of signals (e.g. `Clk50', `Rst_n') or objects (e.g. |
| 1694 | \"Signal_s\", \"Variable_v\", \"Constant_c\") by distinguishing them using | 1694 | `Signal_s', `Variable_v', `Constant_c') by distinguishing them using |
| 1695 | common substrings or name suffices. | 1695 | common substrings or name suffices. |
| 1696 | For each entry, a new face is generated with the specified colors and name | 1696 | For each entry, a new face is generated with the specified colors and name |
| 1697 | \"vhdl-font-lock-\" + name + \"-face\". | 1697 | `vhdl-font-lock-' + name + `-face'. |
| 1698 | 1698 | ||
| 1699 | NOTE: Activate a changed regexp in a VHDL buffer by re-fontifying it (menu | 1699 | NOTE: Activate a changed regexp in a VHDL buffer by re-fontifying it (menu |
| 1700 | entry \"Fontify Buffer\"). All other changes require restarting Emacs." | 1700 | entry `Fontify Buffer'). All other changes require restarting Emacs." |
| 1701 | :type '(repeat (list :tag "Face" :indent 2 | 1701 | :type '(repeat (list :tag "Face" :indent 2 |
| 1702 | (string :tag "Name ") | 1702 | (string :tag "Name ") |
| 1703 | (regexp :tag "Regexp " "\\w+_") | 1703 | (regexp :tag "Regexp " "\\w+_") |
| @@ -4323,7 +4323,7 @@ Usage: | |||
| 4323 | TEMPLATE INSERTION (electrification): | 4323 | TEMPLATE INSERTION (electrification): |
| 4324 | After typing a VHDL keyword and entering `SPC', you are prompted for | 4324 | After typing a VHDL keyword and entering `SPC', you are prompted for |
| 4325 | arguments while a template is generated for that VHDL construct. Typing | 4325 | arguments while a template is generated for that VHDL construct. Typing |
| 4326 | `RET' or `C-g' at the first \(mandatory) prompt aborts the current | 4326 | `RET' or `C-g' at the first (mandatory) prompt aborts the current |
| 4327 | template generation. Optional arguments are indicated by square | 4327 | template generation. Optional arguments are indicated by square |
| 4328 | brackets and removed if the queried string is left empty. Prompts for | 4328 | brackets and removed if the queried string is left empty. Prompts for |
| 4329 | mandatory arguments remain in the code if the queried string is left | 4329 | mandatory arguments remain in the code if the queried string is left |
| @@ -4342,7 +4342,7 @@ Usage: | |||
| 4342 | conf, comp, cons, func, inst, pack, sig, var. | 4342 | conf, comp, cons, func, inst, pack, sig, var. |
| 4343 | 4343 | ||
| 4344 | Template styles can be customized in customization group | 4344 | Template styles can be customized in customization group |
| 4345 | `vhdl-template' \(see OPTIONS). | 4345 | `vhdl-template' (see OPTIONS). |
| 4346 | 4346 | ||
| 4347 | 4347 | ||
| 4348 | HEADER INSERTION: | 4348 | HEADER INSERTION: |
| @@ -4373,7 +4373,7 @@ Usage: | |||
| 4373 | Typing `TAB' after `(' looks for and inserts complete parenthesized | 4373 | Typing `TAB' after `(' looks for and inserts complete parenthesized |
| 4374 | expressions (e.g. for array index ranges). All keywords as well as | 4374 | expressions (e.g. for array index ranges). All keywords as well as |
| 4375 | standard types and subprograms of VHDL have predefined abbreviations | 4375 | standard types and subprograms of VHDL have predefined abbreviations |
| 4376 | \(e.g. type \"std\" and `TAB' will toggle through all standard types | 4376 | (e.g., type \"std\" and `TAB' will toggle through all standard types |
| 4377 | beginning with \"std\"). | 4377 | beginning with \"std\"). |
| 4378 | 4378 | ||
| 4379 | Typing `TAB' after a non-word character indents the line if at the | 4379 | Typing `TAB' after a non-word character indents the line if at the |
| @@ -4417,7 +4417,7 @@ Usage: | |||
| 4417 | the entire region. | 4417 | the entire region. |
| 4418 | 4418 | ||
| 4419 | Indentation can be done for a group of lines (`C-c C-i C-g'), a region | 4419 | Indentation can be done for a group of lines (`C-c C-i C-g'), a region |
| 4420 | \(`M-C-\\') or the entire buffer (menu). Argument and port lists are | 4420 | (`M-C-\\') or the entire buffer (menu). Argument and port lists are |
| 4421 | indented normally (nil) or relative to the opening parenthesis (non-nil) | 4421 | indented normally (nil) or relative to the opening parenthesis (non-nil) |
| 4422 | according to option `vhdl-argument-list-indent'. | 4422 | according to option `vhdl-argument-list-indent'. |
| 4423 | 4423 | ||
| @@ -4563,7 +4563,7 @@ Usage: | |||
| 4563 | Enables simple structural composition. `C-c C-m C-n' creates a skeleton | 4563 | Enables simple structural composition. `C-c C-m C-n' creates a skeleton |
| 4564 | for a new component. Subcomponents (i.e. component declaration and | 4564 | for a new component. Subcomponents (i.e. component declaration and |
| 4565 | instantiation) can be automatically placed from a previously read port | 4565 | instantiation) can be automatically placed from a previously read port |
| 4566 | \(`C-c C-m C-p') or directly from the hierarchy browser (`P'). Finally, | 4566 | (`C-c C-m C-p') or directly from the hierarchy browser (`P'). Finally, |
| 4567 | all subcomponents can be automatically connected using internal signals | 4567 | all subcomponents can be automatically connected using internal signals |
| 4568 | and ports (`C-c C-m C-w') following these rules: | 4568 | and ports (`C-c C-m C-w') following these rules: |
| 4569 | - subcomponent actual ports with same name are considered to be | 4569 | - subcomponent actual ports with same name are considered to be |
| @@ -4763,7 +4763,7 @@ Usage: | |||
| 4763 | Insert them once manually (will be kept afterwards). | 4763 | Insert them once manually (will be kept afterwards). |
| 4764 | - Out parameters of procedures are considered to be read. | 4764 | - Out parameters of procedures are considered to be read. |
| 4765 | Use option `vhdl-entity-file-name' to specify the entity file name | 4765 | Use option `vhdl-entity-file-name' to specify the entity file name |
| 4766 | \(used to obtain the port names). | 4766 | (used to obtain the port names). |
| 4767 | Use option `vhdl-array-index-record-field-in-sensitivity-list' to | 4767 | Use option `vhdl-array-index-record-field-in-sensitivity-list' to |
| 4768 | specify whether to include array indices and record fields in | 4768 | specify whether to include array indices and record fields in |
| 4769 | sensitivity lists. | 4769 | sensitivity lists. |
| @@ -4771,12 +4771,12 @@ Usage: | |||
| 4771 | 4771 | ||
| 4772 | CODE FIXING: | 4772 | CODE FIXING: |
| 4773 | `C-c C-x C-p' fixes the closing parenthesis of a generic/port clause | 4773 | `C-c C-x C-p' fixes the closing parenthesis of a generic/port clause |
| 4774 | \(e.g. if the closing parenthesis is on the wrong line or is missing). | 4774 | (e.g., if the closing parenthesis is on the wrong line or is missing). |
| 4775 | 4775 | ||
| 4776 | 4776 | ||
| 4777 | PRINTING: | 4777 | PRINTING: |
| 4778 | PostScript printing with different faces (an optimized set of faces is | 4778 | PostScript printing with different faces (an optimized set of faces is |
| 4779 | used if `vhdl-print-customize-faces' is non-nil) or colors \(if | 4779 | used if `vhdl-print-customize-faces' is non-nil) or colors (if |
| 4780 | `ps-print-color-p' is non-nil) is possible using the standard Emacs | 4780 | `ps-print-color-p' is non-nil) is possible using the standard Emacs |
| 4781 | PostScript printing commands. Option `vhdl-print-two-column' defines | 4781 | PostScript printing commands. Option `vhdl-print-two-column' defines |
| 4782 | appropriate default settings for nice landscape two-column printing. | 4782 | appropriate default settings for nice landscape two-column printing. |
| @@ -4808,7 +4808,7 @@ Usage: | |||
| 4808 | automatically recognized as VHDL source files. To add an extension | 4808 | automatically recognized as VHDL source files. To add an extension |
| 4809 | \".xxx\", add the following line to your Emacs start-up file (`.emacs'): | 4809 | \".xxx\", add the following line to your Emacs start-up file (`.emacs'): |
| 4810 | 4810 | ||
| 4811 | \(push \\='(\"\\\\.xxx\\\\\\='\" . vhdl-mode) auto-mode-alist) | 4811 | (push \\='(\"\\\\.xxx\\\\\\='\" . vhdl-mode) auto-mode-alist) |
| 4812 | 4812 | ||
| 4813 | 4813 | ||
| 4814 | HINTS: | 4814 | HINTS: |
| @@ -4895,7 +4895,7 @@ Key bindings: | |||
| 4895 | (syntax-propertize-rules | 4895 | (syntax-propertize-rules |
| 4896 | ;; Mark single quotes as having string quote syntax in | 4896 | ;; Mark single quotes as having string quote syntax in |
| 4897 | ;; 'c' instances. | 4897 | ;; 'c' instances. |
| 4898 | ("\\(\'\\).\\(\'\\)" (1 "\"'") (2 "\"'")))) | 4898 | ("\\('\\).\\('\\)" (1 "\"'") (2 "\"'")))) |
| 4899 | (set (make-local-variable 'font-lock-syntactic-keywords) | 4899 | (set (make-local-variable 'font-lock-syntactic-keywords) |
| 4900 | vhdl-font-lock-syntactic-keywords)) | 4900 | vhdl-font-lock-syntactic-keywords)) |
| 4901 | (unless vhdl-emacs-21 | 4901 | (unless vhdl-emacs-21 |
| @@ -6707,7 +6707,7 @@ search, and an argument indicating an interactive call." | |||
| 6707 | (re-search-forward vhdl-e-o-s-re)) | 6707 | (re-search-forward vhdl-e-o-s-re)) |
| 6708 | 6708 | ||
| 6709 | (defconst vhdl-b-o-s-re | 6709 | (defconst vhdl-b-o-s-re |
| 6710 | (concat ";[^_]\\|\([^_]\\|\)[^_]\\|\\bwhen\\b[^_]\\|" | 6710 | (concat ";[^_]\\|([^_]\\|)[^_]\\|\\bwhen\\b[^_]\\|" |
| 6711 | vhdl-begin-bwd-re "\\|" vhdl-statement-bwd-re)) | 6711 | vhdl-begin-bwd-re "\\|" vhdl-statement-bwd-re)) |
| 6712 | 6712 | ||
| 6713 | (defun vhdl-beginning-of-statement-1 (&optional lim) | 6713 | (defun vhdl-beginning-of-statement-1 (&optional lim) |
| @@ -8061,25 +8061,25 @@ end of line, do nothing in comments and strings." | |||
| 8061 | (setq end (point-marker)) | 8061 | (setq end (point-marker)) |
| 8062 | ;; have no space before and one space after `,' and ';' | 8062 | ;; have no space before and one space after `,' and ';' |
| 8063 | (goto-char beg) | 8063 | (goto-char beg) |
| 8064 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\|\\\\[^\\\n]*[\\\n]\\)\\|\\(\\s-*\\([,;]\\)\\)" end t) | 8064 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|'.'\\|\\\\[^\\\n]*[\\\n]\\)\\|\\(\\s-*\\([,;]\\)\\)" end t) |
| 8065 | (if (match-string 1) | 8065 | (if (match-string 1) |
| 8066 | (goto-char (match-end 1)) | 8066 | (goto-char (match-end 1)) |
| 8067 | (replace-match "\\3 " nil nil nil 2))) | 8067 | (replace-match "\\3 " nil nil nil 2))) |
| 8068 | ;; have no space after `(' | 8068 | ;; have no space after `(' |
| 8069 | (goto-char beg) | 8069 | (goto-char beg) |
| 8070 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\|\\\\[^\\\n]*[\\\n]\\)\\|\\((\\)\\s-+" end t) | 8070 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|'.'\\|\\\\[^\\\n]*[\\\n]\\)\\|\\((\\)\\s-+" end t) |
| 8071 | (if (match-string 1) | 8071 | (if (match-string 1) |
| 8072 | (goto-char (match-end 1)) | 8072 | (goto-char (match-end 1)) |
| 8073 | (replace-match "\\2"))) | 8073 | (replace-match "\\2"))) |
| 8074 | ;; have no space before `)' | 8074 | ;; have no space before `)' |
| 8075 | (goto-char beg) | 8075 | (goto-char beg) |
| 8076 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\|\\\\[^\\\n]*[\\\n]\\|^\\s-+\\)\\|\\s-+\\()\\)" end t) | 8076 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|'.'\\|\\\\[^\\\n]*[\\\n]\\|^\\s-+\\)\\|\\s-+\\()\\)" end t) |
| 8077 | (if (match-string 1) | 8077 | (if (match-string 1) |
| 8078 | (goto-char (match-end 1)) | 8078 | (goto-char (match-end 1)) |
| 8079 | (replace-match "\\2"))) | 8079 | (replace-match "\\2"))) |
| 8080 | ;; surround operator symbols by one space | 8080 | ;; surround operator symbols by one space |
| 8081 | (goto-char beg) | 8081 | (goto-char beg) |
| 8082 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|\'.\'\\|\\\\[^\\\n]*[\\\n]\\)\\|\\(\\([^/:<>=\n]\\)\\(:\\|\\??=\\|\\??<<\\|\\??>>\\|\\??<\\|\\??>\\|:=\\|\\??<=\\|\\??>=\\|=>\\|\\??/=\\|\\?\\?\\)\\([^=>\n]\\|$\\)\\)" end t) | 8082 | (while (re-search-forward "\\(--.*\n\\|\"[^\"\n]*[\"\n]\\|'.'\\|\\\\[^\\\n]*[\\\n]\\)\\|\\(\\([^/:<>=\n]\\)\\(:\\|\\??=\\|\\??<<\\|\\??>>\\|\\??<\\|\\??>\\|:=\\|\\??<=\\|\\??>=\\|=>\\|\\??/=\\|\\?\\?\\)\\([^=>\n]\\|$\\)\\)" end t) |
| 8083 | (if (or (match-string 1) | 8083 | (if (or (match-string 1) |
| 8084 | (<= (match-beginning 0) ; not if at boi | 8084 | (<= (match-beginning 0) ; not if at boi |
| 8085 | (save-excursion (back-to-indentation) (point)))) | 8085 | (save-excursion (back-to-indentation) (point)))) |
| @@ -11858,7 +11858,7 @@ reflected in a subsequent paste operation." | |||
| 11858 | (save-excursion | 11858 | (save-excursion |
| 11859 | (re-search-backward | 11859 | (re-search-backward |
| 11860 | (concat "^\\s-*use\\s-+" (car clause) | 11860 | (concat "^\\s-*use\\s-+" (car clause) |
| 11861 | "\." (cdr clause) "\\>") nil t))) | 11861 | "." (cdr clause) "\\>") nil t))) |
| 11862 | (vhdl-template-standard-package (car clause) (cdr clause)) | 11862 | (vhdl-template-standard-package (car clause) (cdr clause)) |
| 11863 | (insert "\n")) | 11863 | (insert "\n")) |
| 11864 | (setq clause-list (cdr clause-list))))) | 11864 | (setq clause-list (cdr clause-list))))) |
| @@ -12113,7 +12113,7 @@ reflected in a subsequent paste operation." | |||
| 12113 | (insert name)) | 12113 | (insert name)) |
| 12114 | ((equal (cdr vhdl-instance-name) "") | 12114 | ((equal (cdr vhdl-instance-name) "") |
| 12115 | (setq name (vhdl-template-field "instance name"))) | 12115 | (setq name (vhdl-template-field "instance name"))) |
| 12116 | ((string-match "\%d" (cdr vhdl-instance-name)) | 12116 | ((string-match "%d" (cdr vhdl-instance-name)) |
| 12117 | (let ((n 1)) | 12117 | (let ((n 1)) |
| 12118 | (while (save-excursion | 12118 | (while (save-excursion |
| 12119 | (setq name (format (vhdl-replace-string | 12119 | (setq name (format (vhdl-replace-string |
| @@ -12978,7 +12978,7 @@ File statistics: \"%s\"\n\ | |||
| 12978 | # empty lines : %5d\n\ | 12978 | # empty lines : %5d\n\ |
| 12979 | # comment lines : %5d\n\ | 12979 | # comment lines : %5d\n\ |
| 12980 | # comments : %5d\n\ | 12980 | # comments : %5d\n\ |
| 12981 | # total lines : %5d\n\ " | 12981 | # total lines : %5d\n" |
| 12982 | (buffer-file-name) no-stats no-code-lines no-empty-lines | 12982 | (buffer-file-name) no-stats no-code-lines no-empty-lines |
| 12983 | no-comm-lines no-comments no-lines) | 12983 | no-comm-lines no-comments no-lines) |
| 12984 | (unless vhdl-emacs-21 (vhdl-show-messages)))) | 12984 | (unless vhdl-emacs-21 (vhdl-show-messages)))) |
| @@ -13121,7 +13121,7 @@ File statistics: \"%s\"\n\ | |||
| 13121 | (vhdl-resolve-env-variable | 13121 | (vhdl-resolve-env-variable |
| 13122 | (vhdl-replace-string | 13122 | (vhdl-replace-string |
| 13123 | (cons "\\(.*\\) \\(.*\\)" (car file-name-list)) | 13123 | (cons "\\(.*\\) \\(.*\\)" (car file-name-list)) |
| 13124 | (concat "\*" " " (user-login-name))))))) | 13124 | (concat "* " (user-login-name))))))) |
| 13125 | (setq list-length (or list-length (length file-list))) | 13125 | (setq list-length (or list-length (length file-list))) |
| 13126 | (setq file-name-list (cdr file-name-list))) | 13126 | (setq file-name-list (cdr file-name-list))) |
| 13127 | (while file-list | 13127 | (while file-list |
| @@ -13306,7 +13306,7 @@ File statistics: \"%s\"\n\ | |||
| 13306 | ;; Syntax definitions | 13306 | ;; Syntax definitions |
| 13307 | 13307 | ||
| 13308 | (defconst vhdl-font-lock-syntactic-keywords | 13308 | (defconst vhdl-font-lock-syntactic-keywords |
| 13309 | '(("\\(\'\\).\\(\'\\)" (1 (7 . ?\')) (2 (7 . ?\')))) | 13309 | '(("\\('\\).\\('\\)" (1 (7 . ?\')) (2 (7 . ?\')))) |
| 13310 | "Mark single quotes as having string quote syntax in 'c' instances.") | 13310 | "Mark single quotes as having string quote syntax in 'c' instances.") |
| 13311 | 13311 | ||
| 13312 | (defvar vhdl-font-lock-keywords nil | 13312 | (defvar vhdl-font-lock-keywords nil |
| @@ -15461,19 +15461,19 @@ NO-POSITION non-nil means do not re-position cursor." | |||
| 15461 | (let* ((file-entry (vhdl-aget file-alist | 15461 | (let* ((file-entry (vhdl-aget file-alist |
| 15462 | speedbar-last-selected-file))) | 15462 | speedbar-last-selected-file))) |
| 15463 | (vhdl-speedbar-update-units | 15463 | (vhdl-speedbar-update-units |
| 15464 | "\\[.\\] " (nth 0 file-entry) | 15464 | "\\[.] " (nth 0 file-entry) |
| 15465 | speedbar-last-selected-file 'vhdl-speedbar-entity-face) | 15465 | speedbar-last-selected-file 'vhdl-speedbar-entity-face) |
| 15466 | (vhdl-speedbar-update-units | 15466 | (vhdl-speedbar-update-units |
| 15467 | "{.} " (nth 1 file-entry) | 15467 | "{.} " (nth 1 file-entry) |
| 15468 | speedbar-last-selected-file 'vhdl-speedbar-architecture-face) | 15468 | speedbar-last-selected-file 'vhdl-speedbar-architecture-face) |
| 15469 | (vhdl-speedbar-update-units | 15469 | (vhdl-speedbar-update-units |
| 15470 | "\\[.\\] " (nth 3 file-entry) | 15470 | "\\[.] " (nth 3 file-entry) |
| 15471 | speedbar-last-selected-file 'vhdl-speedbar-configuration-face) | 15471 | speedbar-last-selected-file 'vhdl-speedbar-configuration-face) |
| 15472 | (vhdl-speedbar-update-units | 15472 | (vhdl-speedbar-update-units |
| 15473 | "[]>] " (nth 4 file-entry) | 15473 | "[]>] " (nth 4 file-entry) |
| 15474 | speedbar-last-selected-file 'vhdl-speedbar-package-face) | 15474 | speedbar-last-selected-file 'vhdl-speedbar-package-face) |
| 15475 | (vhdl-speedbar-update-units | 15475 | (vhdl-speedbar-update-units |
| 15476 | "\\[.\\].+(" '("body") | 15476 | "\\[.].+(" '("body") |
| 15477 | speedbar-last-selected-file 'vhdl-speedbar-package-face) | 15477 | speedbar-last-selected-file 'vhdl-speedbar-package-face) |
| 15478 | (vhdl-speedbar-update-units | 15478 | (vhdl-speedbar-update-units |
| 15479 | "> " (nth 6 file-entry) | 15479 | "> " (nth 6 file-entry) |
| @@ -15482,19 +15482,19 @@ NO-POSITION non-nil means do not re-position cursor." | |||
| 15482 | (let* ((file-entry (vhdl-aget file-alist file-name))) | 15482 | (let* ((file-entry (vhdl-aget file-alist file-name))) |
| 15483 | (setq | 15483 | (setq |
| 15484 | pos (vhdl-speedbar-update-units | 15484 | pos (vhdl-speedbar-update-units |
| 15485 | "\\[.\\] " (nth 0 file-entry) | 15485 | "\\[.] " (nth 0 file-entry) |
| 15486 | file-name 'vhdl-speedbar-entity-selected-face pos) | 15486 | file-name 'vhdl-speedbar-entity-selected-face pos) |
| 15487 | pos (vhdl-speedbar-update-units | 15487 | pos (vhdl-speedbar-update-units |
| 15488 | "{.} " (nth 1 file-entry) | 15488 | "{.} " (nth 1 file-entry) |
| 15489 | file-name 'vhdl-speedbar-architecture-selected-face pos) | 15489 | file-name 'vhdl-speedbar-architecture-selected-face pos) |
| 15490 | pos (vhdl-speedbar-update-units | 15490 | pos (vhdl-speedbar-update-units |
| 15491 | "\\[.\\] " (nth 3 file-entry) | 15491 | "\\[.] " (nth 3 file-entry) |
| 15492 | file-name 'vhdl-speedbar-configuration-selected-face pos) | 15492 | file-name 'vhdl-speedbar-configuration-selected-face pos) |
| 15493 | pos (vhdl-speedbar-update-units | 15493 | pos (vhdl-speedbar-update-units |
| 15494 | "[]>] " (nth 4 file-entry) | 15494 | "[]>] " (nth 4 file-entry) |
| 15495 | file-name 'vhdl-speedbar-package-selected-face pos) | 15495 | file-name 'vhdl-speedbar-package-selected-face pos) |
| 15496 | pos (vhdl-speedbar-update-units | 15496 | pos (vhdl-speedbar-update-units |
| 15497 | "\\[.\\].+(" '("body") | 15497 | "\\[.].+(" '("body") |
| 15498 | file-name 'vhdl-speedbar-package-selected-face pos) | 15498 | file-name 'vhdl-speedbar-package-selected-face pos) |
| 15499 | pos (vhdl-speedbar-update-units | 15499 | pos (vhdl-speedbar-update-units |
| 15500 | "> " (nth 6 file-entry) | 15500 | "> " (nth 6 file-entry) |
| @@ -15926,7 +15926,7 @@ is already shown in a buffer." | |||
| 15926 | (if (not (or is-entity (vhdl-speedbar-check-unit 'subprogram))) | 15926 | (if (not (or is-entity (vhdl-speedbar-check-unit 'subprogram))) |
| 15927 | (error "ERROR: No entity/component or subprogram under cursor") | 15927 | (error "ERROR: No entity/component or subprogram under cursor") |
| 15928 | (beginning-of-line) | 15928 | (beginning-of-line) |
| 15929 | (if (looking-at "\\([0-9]\\)+:\\s-*\\(\\[[-+?]\\]\\|>\\) \\(\\(\\w\\|\\s_\\)+\\)") | 15929 | (if (looking-at "\\([0-9]\\)+:\\s-*\\(\\[[-+?]]\\|>\\) \\(\\(\\w\\|\\s_\\)+\\)") |
| 15930 | (condition-case info | 15930 | (condition-case info |
| 15931 | (let ((token (get-text-property | 15931 | (let ((token (get-text-property |
| 15932 | (match-beginning 3) 'speedbar-token))) | 15932 | (match-beginning 3) 'speedbar-token))) |
| @@ -17864,17 +17864,17 @@ NOTE: click `mouse-2' on variable names above (not in XEmacs).") | |||
| 17864 | For VHDL coding style and naming convention guidelines, see the following | 17864 | For VHDL coding style and naming convention guidelines, see the following |
| 17865 | references: | 17865 | references: |
| 17866 | 17866 | ||
| 17867 | \[1] Ben Cohen. | 17867 | [1] Ben Cohen. |
| 17868 | \"VHDL Coding Styles and Methodologies\". | 17868 | \"VHDL Coding Styles and Methodologies\". |
| 17869 | Kluwer Academic Publishers, 1999. | 17869 | Kluwer Academic Publishers, 1999. |
| 17870 | http://members.aol.com/vhdlcohen/vhdl/ | 17870 | http://members.aol.com/vhdlcohen/vhdl/ |
| 17871 | 17871 | ||
| 17872 | \[2] Michael Keating and Pierre Bricaud. | 17872 | [2] Michael Keating and Pierre Bricaud. |
| 17873 | \"Reuse Methodology Manual, Second Edition\". | 17873 | \"Reuse Methodology Manual, Second Edition\". |
| 17874 | Kluwer Academic Publishers, 1999. | 17874 | Kluwer Academic Publishers, 1999. |
| 17875 | http://www.openmore.com/openmore/rmm2.html | 17875 | http://www.openmore.com/openmore/rmm2.html |
| 17876 | 17876 | ||
| 17877 | \[3] European Space Agency. | 17877 | [3] European Space Agency. |
| 17878 | \"VHDL Modelling Guidelines\". | 17878 | \"VHDL Modelling Guidelines\". |
| 17879 | ftp://ftp.estec.esa.nl/pub/vhdl/doc/ModelGuide.{pdf,ps} | 17879 | ftp://ftp.estec.esa.nl/pub/vhdl/doc/ModelGuide.{pdf,ps} |
| 17880 | 17880 | ||
diff --git a/lisp/progmodes/xscheme.el b/lisp/progmodes/xscheme.el index d5243dac769..cf61073b442 100644 --- a/lisp/progmodes/xscheme.el +++ b/lisp/progmodes/xscheme.el | |||
| @@ -347,9 +347,9 @@ the command interpreter stack: | |||
| 347 | 347 | ||
| 348 | Some possible command interpreter types and their meanings are: | 348 | Some possible command interpreter types and their meanings are: |
| 349 | 349 | ||
| 350 | \[Evaluator] read-eval-print loop for evaluating expressions | 350 | [Evaluator] read-eval-print loop for evaluating expressions |
| 351 | \[Debugger] single character commands for debugging errors | 351 | [Debugger] single character commands for debugging errors |
| 352 | \[Where] single character commands for examining environments | 352 | [Where] single character commands for examining environments |
| 353 | 353 | ||
| 354 | Starting with release 6.2 of Scheme, the latter two types of command | 354 | Starting with release 6.2 of Scheme, the latter two types of command |
| 355 | interpreters will change the major mode of the Scheme process buffer | 355 | interpreters will change the major mode of the Scheme process buffer |
diff --git a/lisp/ps-print.el b/lisp/ps-print.el index 218a02a7f6d..e9294279c23 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el | |||
| @@ -1684,7 +1684,7 @@ non-default settings would be \"LPT1\" to \"LPT3\" for parallel printers, or | |||
| 1684 | for a shared network printer. You can also set it to a name of a file, in | 1684 | for a shared network printer. You can also set it to a name of a file, in |
| 1685 | which case the output gets appended to that file. \(Note that `ps-print' | 1685 | which case the output gets appended to that file. \(Note that `ps-print' |
| 1686 | package already has facilities for printing to a file, so you might as well use | 1686 | package already has facilities for printing to a file, so you might as well use |
| 1687 | them instead of changing the setting of this variable.\) If you want to | 1687 | them instead of changing the setting of this variable.) If you want to |
| 1688 | silently discard the printed output, set this to \"NUL\". | 1688 | silently discard the printed output, set this to \"NUL\". |
| 1689 | 1689 | ||
| 1690 | Set to t, if the utility given by `ps-lpr-command' needs an empty printer name. | 1690 | Set to t, if the utility given by `ps-lpr-command' needs an empty printer name. |
| @@ -3172,7 +3172,7 @@ This variable is used only when `ps-print-color-p' is set to `black-white'." | |||
| 3172 | font-lock-variable-name-face | 3172 | font-lock-variable-name-face |
| 3173 | font-lock-keyword-face | 3173 | font-lock-keyword-face |
| 3174 | font-lock-warning-face)) | 3174 | font-lock-warning-face)) |
| 3175 | "A list of the \(non-bold\) faces that should be printed in bold font. | 3175 | "A list of the (non-bold) faces that should be printed in bold font. |
| 3176 | This applies to generating PostScript." | 3176 | This applies to generating PostScript." |
| 3177 | :type '(repeat face) | 3177 | :type '(repeat face) |
| 3178 | :version "20" | 3178 | :version "20" |
| @@ -3185,7 +3185,7 @@ This applies to generating PostScript." | |||
| 3185 | font-lock-string-face | 3185 | font-lock-string-face |
| 3186 | font-lock-comment-face | 3186 | font-lock-comment-face |
| 3187 | font-lock-warning-face)) | 3187 | font-lock-warning-face)) |
| 3188 | "A list of the \(non-italic\) faces that should be printed in italic font. | 3188 | "A list of the (non-italic) faces that should be printed in italic font. |
| 3189 | This applies to generating PostScript." | 3189 | This applies to generating PostScript." |
| 3190 | :type '(repeat face) | 3190 | :type '(repeat face) |
| 3191 | :version "20" | 3191 | :version "20" |
| @@ -3196,7 +3196,7 @@ This applies to generating PostScript." | |||
| 3196 | '(font-lock-function-name-face | 3196 | '(font-lock-function-name-face |
| 3197 | font-lock-constant-face | 3197 | font-lock-constant-face |
| 3198 | font-lock-warning-face)) | 3198 | font-lock-warning-face)) |
| 3199 | "A list of the \(non-underlined\) faces that should be printed underlined. | 3199 | "A list of the (non-underlined) faces that should be printed underlined. |
| 3200 | This applies to generating PostScript." | 3200 | This applies to generating PostScript." |
| 3201 | :type '(repeat face) | 3201 | :type '(repeat face) |
| 3202 | :version "20" | 3202 | :version "20" |
diff --git a/lisp/replace.el b/lisp/replace.el index 37e97e2c215..d84f3a24f61 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | ;;; replace.el --- replace commands for Emacs | 1 | ;;; replace.el --- replace commands for Emacs -*- coding: utf-8 -*- |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2015 Free | 3 | ;; Copyright (C) 1985-1987, 1992, 1994, 1996-1997, 2000-2015 Free |
| 4 | ;; Software Foundation, Inc. | 4 | ;; Software Foundation, Inc. |
| @@ -76,7 +76,7 @@ to the minibuffer that reads the string to replace, or invoke replacements | |||
| 76 | from Isearch by using a key sequence like `C-s C-s M-%'." "24.3") | 76 | from Isearch by using a key sequence like `C-s C-s M-%'." "24.3") |
| 77 | 77 | ||
| 78 | (defcustom query-replace-from-to-separator | 78 | (defcustom query-replace-from-to-separator |
| 79 | (propertize (if (char-displayable-p ?\u2192) " \u2192 " " -> ") | 79 | (propertize (if (char-displayable-p ?→) " → " " -> ") |
| 80 | 'face 'minibuffer-prompt) | 80 | 'face 'minibuffer-prompt) |
| 81 | "String that separates FROM and TO in the history of replacement pairs." | 81 | "String that separates FROM and TO in the history of replacement pairs." |
| 82 | ;; Avoids error when attempt to autoload char-displayable-p fails | 82 | ;; Avoids error when attempt to autoload char-displayable-p fails |
diff --git a/lisp/simple.el b/lisp/simple.el index f80faae80d8..8acb6839744 100644 --- a/lisp/simple.el +++ b/lisp/simple.el | |||
| @@ -8424,6 +8424,38 @@ contains the list of implementations currently supported for this command." | |||
| 8424 | command-name))))))) | 8424 | command-name))))))) |
| 8425 | 8425 | ||
| 8426 | 8426 | ||
| 8427 | ;;; Functions for changing capitalization that Do What I Mean | ||
| 8428 | (defun upcase-dwim (arg) | ||
| 8429 | "Upcase words in the region, if active; if not, upcase word at point. | ||
| 8430 | If the region is active, this function calls `upcase-region'. | ||
| 8431 | Otherwise, it calls `upcase-word', with prefix argument passed to it | ||
| 8432 | to upcase ARG words." | ||
| 8433 | (interactive "*p") | ||
| 8434 | (if (use-region-p) | ||
| 8435 | (upcase-region (region-beginning) (region-end)) | ||
| 8436 | (upcase-word arg))) | ||
| 8437 | |||
| 8438 | (defun downcase-dwim (arg) | ||
| 8439 | "Downcase words in the region, if active; if not, downcase word at point. | ||
| 8440 | If the region is active, this function calls `downcase-region'. | ||
| 8441 | Otherwise, it calls `downcase-word', with prefix argument passed to it | ||
| 8442 | to downcase ARG words." | ||
| 8443 | (interactive "*p") | ||
| 8444 | (if (use-region-p) | ||
| 8445 | (downcase-region (region-beginning) (region-end)) | ||
| 8446 | (downcase-word arg))) | ||
| 8447 | |||
| 8448 | (defun capitalize-dwim (arg) | ||
| 8449 | "Capitalize words in the region, if active; if not, capitalize word at point. | ||
| 8450 | If the region is active, this function calls `capitalize-region'. | ||
| 8451 | Otherwise, it calls `capitalize-word', with prefix argument passed to it | ||
| 8452 | to capitalize ARG words." | ||
| 8453 | (interactive "*p") | ||
| 8454 | (if (use-region-p) | ||
| 8455 | (capitalize-region (region-beginning) (region-end)) | ||
| 8456 | (capitalize-word arg))) | ||
| 8457 | |||
| 8458 | |||
| 8427 | 8459 | ||
| 8428 | (provide 'simple) | 8460 | (provide 'simple) |
| 8429 | 8461 | ||
diff --git a/lisp/sort.el b/lisp/sort.el index 9b8cec6ac68..9843749f0c8 100644 --- a/lisp/sort.el +++ b/lisp/sort.el | |||
| @@ -316,7 +316,7 @@ FIELD, BEG and END. BEG and END specify region to sort." | |||
| 316 | ;; (point) | 316 | ;; (point) |
| 317 | ;; (save-excursion | 317 | ;; (save-excursion |
| 318 | ;; (re-search-forward | 318 | ;; (re-search-forward |
| 319 | ;; "[+-]?[0-9]*\.?[0-9]*\\([eE][+-]?[0-9]+\\)?") | 319 | ;; "[+-]?[0-9]*\\.?[0-9]*\\([eE][+-]?[0-9]+\\)?") |
| 320 | ;; (point)))))) | 320 | ;; (point)))))) |
| 321 | ;; nil)) | 321 | ;; nil)) |
| 322 | 322 | ||
diff --git a/lisp/speedbar.el b/lisp/speedbar.el index 97c977cf1fc..17430587818 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el | |||
| @@ -2857,7 +2857,7 @@ indicator, then do not add a space." | |||
| 2857 | (progn | 2857 | (progn |
| 2858 | (goto-char speedbar-ro-to-do-point) | 2858 | (goto-char speedbar-ro-to-do-point) |
| 2859 | (while (and (not (input-pending-p)) | 2859 | (while (and (not (input-pending-p)) |
| 2860 | (re-search-forward "^\\([0-9]+\\):\\s-*[[<][+-\?][]>] " | 2860 | (re-search-forward "^\\([0-9]+\\):\\s-*[[<][+-?][]>] " |
| 2861 | nil t)) | 2861 | nil t)) |
| 2862 | (setq speedbar-ro-to-do-point (point)) | 2862 | (setq speedbar-ro-to-do-point (point)) |
| 2863 | (let ((f (speedbar-line-file))) | 2863 | (let ((f (speedbar-line-file))) |
diff --git a/lisp/startup.el b/lisp/startup.el index 9caf485c1e8..33855673170 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -114,7 +114,7 @@ the remaining command-line args are in the variable `command-line-args-left'.") | |||
| 114 | 114 | ||
| 115 | (defvaralias 'argv 'command-line-args-left | 115 | (defvaralias 'argv 'command-line-args-left |
| 116 | "List of command-line args not yet processed. | 116 | "List of command-line args not yet processed. |
| 117 | This is a convenience alias, so that one can write \(pop argv\) | 117 | This is a convenience alias, so that one can write \(pop argv) |
| 118 | inside of --eval command line arguments in order to access | 118 | inside of --eval command line arguments in order to access |
| 119 | following arguments.") | 119 | following arguments.") |
| 120 | (internal-make-var-non-special 'argv) | 120 | (internal-make-var-non-special 'argv) |
| @@ -803,19 +803,61 @@ to prepare for opening the first frame (e.g. open a connection to an X server)." | |||
| 803 | (defvar server-name) | 803 | (defvar server-name) |
| 804 | (defvar server-process) | 804 | (defvar server-process) |
| 805 | 805 | ||
| 806 | (defun startup--setup-quote-display () | 806 | (defun startup--setup-quote-display (&optional style) |
| 807 | "Display ASCII approximations on user request or if curved quotes don't work." | 807 | "If needed, display ASCII approximations to curved quotes. |
| 808 | (when (memq text-quoting-style '(nil grave straight)) | 808 | Do this by modifying `standard-display-table'. Optional STYLE |
| 809 | (dolist (char-repl '((?‘ . ?\`) (?’ . ?\') (?“ . ?\") (?” . ?\"))) | 809 | specifies the desired quoting style, as in `text-quoting-style'. |
| 810 | (let ((char (car char-repl)) | 810 | If STYLE is nil, display appropriately for the terminal." |
| 811 | (repl (cdr char-repl))) | 811 | (let ((repls (let ((style-repls (assq style '((grave . "`'\"\"") |
| 812 | (when (or text-quoting-style (not (char-displayable-p char))) | 812 | (straight . "''\"\""))))) |
| 813 | (when (and (eq repl ?\`) (eq text-quoting-style 'straight)) | 813 | (if style-repls (cdr style-repls) (make-vector 4 nil)))) |
| 814 | (setq repl ?\')) | 814 | glyph-count) |
| 815 | (unless standard-display-table | 815 | ;; REPLS is a sequence of the four replacements for "‘’“”", respectively. |
| 816 | (setq standard-display-table (make-display-table))) | 816 | ;; If STYLE is nil, infer REPLS from terminal characteristics. |
| 817 | (aset standard-display-table char | 817 | (unless style |
| 818 | (vector (make-glyph-code repl 'shadow)))))))) | 818 | ;; On a terminal that supports glyph codes, |
| 819 | ;; GLYPH-COUNT[i] is the number of times that glyph code I | ||
| 820 | ;; represents either an ASCII character or one of the 4 | ||
| 821 | ;; quote characters. This assumes glyph codes are valid | ||
| 822 | ;; Elisp characters, which is a safe assumption in practice. | ||
| 823 | (when (integerp (internal-char-font nil (max-char))) | ||
| 824 | (setq glyph-count (make-char-table nil 0)) | ||
| 825 | (dotimes (i 132) | ||
| 826 | (let ((glyph (internal-char-font | ||
| 827 | nil (if (< i 128) i (aref "‘’“”" (- i 128)))))) | ||
| 828 | (when (<= 0 glyph) | ||
| 829 | (aset glyph-count glyph (1+ (aref glyph-count glyph))))))) | ||
| 830 | (dotimes (i 2) | ||
| 831 | (let ((lq (aref "‘“" i)) (rq (aref "’”" i)) | ||
| 832 | (lr (aref "`\"" i)) (rr (aref "'\"" i)) | ||
| 833 | (i2 (* i 2))) | ||
| 834 | (unless (if glyph-count | ||
| 835 | ;; On a terminal that supports glyph codes, use | ||
| 836 | ;; ASCII replacements unless both quotes are displayable. | ||
| 837 | ;; If not using ASCII replacements, highlight | ||
| 838 | ;; quotes unless they are both unique among the | ||
| 839 | ;; 128 + 4 characters of concern. | ||
| 840 | (let ((lglyph (internal-char-font nil lq)) | ||
| 841 | (rglyph (internal-char-font nil rq))) | ||
| 842 | (when (and (<= 0 lglyph) (<= 0 rglyph)) | ||
| 843 | (setq lr lq rr rq) | ||
| 844 | (and (= 1 (aref glyph-count lglyph)) | ||
| 845 | (= 1 (aref glyph-count rglyph))))) | ||
| 846 | ;; On a terminal that does not support glyph codes, use | ||
| 847 | ;; ASCII replacements unless both quotes are displayable. | ||
| 848 | (and (char-displayable-p lq) | ||
| 849 | (char-displayable-p rq))) | ||
| 850 | (aset repls i2 lr) | ||
| 851 | (aset repls (1+ i2) rr))))) | ||
| 852 | (dotimes (i 4) | ||
| 853 | (let ((char (aref "‘’“”" i)) | ||
| 854 | (repl (aref repls i))) | ||
| 855 | (if repl | ||
| 856 | (aset (or standard-display-table | ||
| 857 | (setq standard-display-table (make-display-table))) | ||
| 858 | char (vector (make-glyph-code repl 'escape-glyph))) | ||
| 859 | (when standard-display-table | ||
| 860 | (aset standard-display-table char nil))))))) | ||
| 819 | 861 | ||
| 820 | (defun command-line () | 862 | (defun command-line () |
| 821 | "A subroutine of `normal-top-level'. | 863 | "A subroutine of `normal-top-level'. |
| @@ -1239,11 +1281,6 @@ the `--debug-init' option to view a complete error backtrace." | |||
| 1239 | ;; unibyte (display table, terminal coding system &c). | 1281 | ;; unibyte (display table, terminal coding system &c). |
| 1240 | (set-language-environment current-language-environment))) | 1282 | (set-language-environment current-language-environment))) |
| 1241 | 1283 | ||
| 1242 | ;; Setup quote display again, if the init file sets | ||
| 1243 | ;; text-quoting-style to a non-nil value. | ||
| 1244 | (when (and (not noninteractive) text-quoting-style) | ||
| 1245 | (startup--setup-quote-display)) | ||
| 1246 | |||
| 1247 | ;; Do this here in case the init file sets mail-host-address. | 1284 | ;; Do this here in case the init file sets mail-host-address. |
| 1248 | (if (equal user-mail-address "") | 1285 | (if (equal user-mail-address "") |
| 1249 | (setq user-mail-address (or (getenv "EMAIL") | 1286 | (setq user-mail-address (or (getenv "EMAIL") |
| @@ -1933,7 +1970,7 @@ To quit a partially entered command, type Control-g.\n") | |||
| 1933 | 'action (lambda (_button) (info-emacs-manual)) | 1970 | 'action (lambda (_button) (info-emacs-manual)) |
| 1934 | 'follow-link t) | 1971 | 'follow-link t) |
| 1935 | (insert "\tView the Emacs manual using Info\n") | 1972 | (insert "\tView the Emacs manual using Info\n") |
| 1936 | (insert-button "\(Non)Warranty" | 1973 | (insert-button "(Non)Warranty" |
| 1937 | 'action (lambda (_button) (describe-no-warranty)) | 1974 | 'action (lambda (_button) (describe-no-warranty)) |
| 1938 | 'follow-link t) | 1975 | 'follow-link t) |
| 1939 | (insert "\t\tGNU Emacs comes with ABSOLUTELY NO WARRANTY\n") | 1976 | (insert "\t\tGNU Emacs comes with ABSOLUTELY NO WARRANTY\n") |
diff --git a/lisp/subr.el b/lisp/subr.el index ce3011d4e46..b1b363864f9 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -1503,19 +1503,6 @@ All symbols are bound before the VALUEFORMs are evalled." | |||
| 1503 | ,@(mapcar (lambda (binder) `(setq ,@binder)) binders) | 1503 | ,@(mapcar (lambda (binder) `(setq ,@binder)) binders) |
| 1504 | ,@body)) | 1504 | ,@body)) |
| 1505 | 1505 | ||
| 1506 | (defmacro let-when-compile (bindings &rest body) | ||
| 1507 | "Like `let', but allow for compile time optimization. | ||
| 1508 | Use BINDINGS as in regular `let', but in BODY each usage should | ||
| 1509 | be wrapped in `eval-when-compile'. | ||
| 1510 | This will generate compile-time constants from BINDINGS." | ||
| 1511 | (declare (indent 1) (debug let)) | ||
| 1512 | (cl-progv (mapcar #'car bindings) | ||
| 1513 | (mapcar (lambda (x) (eval (cadr x))) bindings) | ||
| 1514 | (macroexpand-all | ||
| 1515 | (macroexp-progn | ||
| 1516 | body) | ||
| 1517 | macroexpand-all-environment))) | ||
| 1518 | |||
| 1519 | (defmacro with-wrapper-hook (hook args &rest body) | 1506 | (defmacro with-wrapper-hook (hook args &rest body) |
| 1520 | "Run BODY, using wrapper functions from HOOK with additional ARGS. | 1507 | "Run BODY, using wrapper functions from HOOK with additional ARGS. |
| 1521 | HOOK is an abnormal hook. Each hook function in HOOK \"wraps\" | 1508 | HOOK is an abnormal hook. Each hook function in HOOK \"wraps\" |
diff --git a/lisp/term.el b/lisp/term.el index 06a44f29058..e5ae5530ce9 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -1919,7 +1919,7 @@ A useful command to bind to SPC. See `term-replace-by-expanded-history'." | |||
| 1919 | (defun term-within-quotes (beg end) | 1919 | (defun term-within-quotes (beg end) |
| 1920 | "Return t if the number of quotes between BEG and END is odd. | 1920 | "Return t if the number of quotes between BEG and END is odd. |
| 1921 | Quotes are single and double." | 1921 | Quotes are single and double." |
| 1922 | (let ((countsq (term-how-many-region "\\(^\\|[^\\\\]\\)\'" beg end)) | 1922 | (let ((countsq (term-how-many-region "\\(^\\|[^\\\\]\\)'" beg end)) |
| 1923 | (countdq (term-how-many-region "\\(^\\|[^\\\\]\\)\"" beg end))) | 1923 | (countdq (term-how-many-region "\\(^\\|[^\\\\]\\)\"" beg end))) |
| 1924 | (or (= (mod countsq 2) 1) (= (mod countdq 2) 1)))) | 1924 | (or (= (mod countsq 2) 1) (= (mod countdq 2) 1)))) |
| 1925 | 1925 | ||
diff --git a/lisp/term/README b/lisp/term/README index 35715d97bb4..d01f133e5fb 100644 --- a/lisp/term/README +++ b/lisp/term/README | |||
| @@ -7,22 +7,22 @@ terminal types. | |||
| 7 | 7 | ||
| 8 | When Emacs opens a new terminal, it checks the TERM environment variable | 8 | When Emacs opens a new terminal, it checks the TERM environment variable |
| 9 | to see what type of terminal the user is running on. (If there is an entry | 9 | to see what type of terminal the user is running on. (If there is an entry |
| 10 | for TERM in the `term-file-aliases' variable, Emacs uses the associated value | 10 | for TERM in the 'term-file-aliases' variable, Emacs uses the associated value |
| 11 | in place of TERM in the following.) Emacs searches for an elisp file named | 11 | in place of TERM in the following.) Emacs searches for an elisp file named |
| 12 | "term/${TERM}.el", and if one exists, loads it. If Emacs finds no | 12 | "term/${TERM}.el", and if one exists, loads it. If Emacs finds no |
| 13 | suitable file, then it strips the last hyphen and what follows it from TERM, | 13 | suitable file, then it strips the last hyphen and what follows it from TERM, |
| 14 | and tries again. If that still doesn't yield a file, then the previous hyphen | 14 | and tries again. If that still doesn't yield a file, then the previous hyphen |
| 15 | is stripped, and so on until all hyphens are gone. For example, if the | 15 | is stripped, and so on until all hyphens are gone. For example, if the |
| 16 | terminal type is `aaa-48-foo', Emacs will try first `term/aaa-48-foo.el', then | 16 | terminal type is 'aaa-48-foo', Emacs will try first 'term/aaa-48-foo.el', then |
| 17 | `term/aaa-48.el' and finally `term/aaa.el'. Emacs stops searching at the | 17 | 'term/aaa-48.el' and finally 'term/aaa.el'. Emacs stops searching at the |
| 18 | first file found, and will not load more than one file for any terminal. Note | 18 | first file found, and will not load more than one file for any terminal. Note |
| 19 | that it is not an error if Emacs is unable to find a terminal initialization | 19 | that it is not an error if Emacs is unable to find a terminal initialization |
| 20 | file; in that case, it will simply proceed with the next step without loading | 20 | file; in that case, it will simply proceed with the next step without loading |
| 21 | any files. | 21 | any files. |
| 22 | 22 | ||
| 23 | Once the file has been loaded (or the search failed), Emacs tries to call a | 23 | Once the file has been loaded (or the search failed), Emacs tries to call a |
| 24 | function named `terminal-init-TERMINALNAME' (eg `terminal-init-aaa-48' for the | 24 | function named 'terminal-init-TERMINALNAME' (eg 'terminal-init-aaa-48' for the |
| 25 | `aaa-48' terminal) in order to initialize the terminal. Once again, if the | 25 | 'aaa-48' terminal) in order to initialize the terminal. Once again, if the |
| 26 | function is not found, Emacs strips the last component of the name and tries | 26 | function is not found, Emacs strips the last component of the name and tries |
| 27 | again using the shorter name. This search is independent of the previous file | 27 | again using the shorter name. This search is independent of the previous file |
| 28 | search, so that you can have terminal initialization functions for a family of | 28 | search, so that you can have terminal initialization functions for a family of |
| @@ -40,7 +40,7 @@ declaration. Simply loading the file should not have any side effect. | |||
| 40 | given terminal, when the first frame is created on it. The function is not | 40 | given terminal, when the first frame is created on it. The function is not |
| 41 | called for subsequent frames on the same terminal. Therefore, terminal-init-* | 41 | called for subsequent frames on the same terminal. Therefore, terminal-init-* |
| 42 | functions should only modify terminal-local variables (such as | 42 | functions should only modify terminal-local variables (such as |
| 43 | `local-function-key-map') and terminal parameters. For example, it is not | 43 | 'local-function-key-map') and terminal parameters. For example, it is not |
| 44 | correct to modify frame parameters, since the modifications will only be | 44 | correct to modify frame parameters, since the modifications will only be |
| 45 | applied for the first frame opened on the terminal. | 45 | applied for the first frame opened on the terminal. |
| 46 | 46 | ||
| @@ -51,7 +51,7 @@ mind. | |||
| 51 | First, about keycap names. Your terminal package can create any keycap | 51 | First, about keycap names. Your terminal package can create any keycap |
| 52 | cookies it likes, but there are good reasons to stick to the set recognized by | 52 | cookies it likes, but there are good reasons to stick to the set recognized by |
| 53 | the X-windows code whenever possible. The key symbols recognized by Emacs | 53 | the X-windows code whenever possible. The key symbols recognized by Emacs |
| 54 | are listed in src/term.c; look for the string `keys' in that file. | 54 | are listed in src/term.c; look for the string 'keys' in that file. |
| 55 | 55 | ||
| 56 | For one thing, it means that you'll have the same Emacs key bindings on in | 56 | For one thing, it means that you'll have the same Emacs key bindings on in |
| 57 | terminal mode as on an X console. If there are differences, you can bet | 57 | terminal mode as on an X console. If there are differences, you can bet |
| @@ -61,7 +61,7 @@ they'll frustrate you after you've forgotten about them. | |||
| 61 | about. It tries to bind many of them to useful things at startup, before your | 61 | about. It tries to bind many of them to useful things at startup, before your |
| 62 | .emacs is read (so you can override them). In some ways, the X keysym standard | 62 | .emacs is read (so you can override them). In some ways, the X keysym standard |
| 63 | is a admittedly poor one; it's incomplete, and not well matched to the set of | 63 | is a admittedly poor one; it's incomplete, and not well matched to the set of |
| 64 | `virtual keys' that UNIX terminfo(3) provides. But, trust us, the alternatives | 64 | 'virtual keys' that UNIX terminfo(3) provides. But, trust us, the alternatives |
| 65 | were worse. | 65 | were worse. |
| 66 | 66 | ||
| 67 | This doesn't mean that if your terminal has a "Cokebottle" key you shouldn't | 67 | This doesn't mean that if your terminal has a "Cokebottle" key you shouldn't |
| @@ -70,7 +70,7 @@ that set, try to pattern them on the standard terminfo variable names for | |||
| 70 | clarity; also, for a fighting chance that your binding may be useful to someone | 70 | clarity; also, for a fighting chance that your binding may be useful to someone |
| 71 | else someday. | 71 | else someday. |
| 72 | 72 | ||
| 73 | For example, if your terminal has a `find' key, observe that terminfo | 73 | For example, if your terminal has a 'find' key, observe that terminfo |
| 74 | supports a key_find capability and call your cookie [find]. | 74 | supports a key_find capability and call your cookie [find]. |
| 75 | 75 | ||
| 76 | Here is a complete list, with corresponding X keysyms. | 76 | Here is a complete list, with corresponding X keysyms. |
| @@ -184,14 +184,14 @@ key_f36 FQ function key 36 | |||
| 184 | key_f64 k1 function key 64 | 184 | key_f64 k1 function key 64 |
| 185 | 185 | ||
| 186 | (1) The terminfo documentation says this may be the 'insert character' or | 186 | (1) The terminfo documentation says this may be the 'insert character' or |
| 187 | `enter insert mode' key. Accordingly, key_ic is mapped to the `insertchar' | 187 | 'enter insert mode' key. Accordingly, key_ic is mapped to the 'insertchar' |
| 188 | keysym if there is also a key_dc key; otherwise it's mapped to `insert'. | 188 | keysym if there is also a key_dc key; otherwise it's mapped to 'insert'. |
| 189 | The presumption is that keyboards with `insert character' keys usually | 189 | The presumption is that keyboards with 'insert character' keys usually |
| 190 | have `delete character' keys paired with them. | 190 | have 'delete character' keys paired with them. |
| 191 | 191 | ||
| 192 | (2) If there is no key_next key but there is a key_npage key, key_npage | 192 | (2) If there is no key_next key but there is a key_npage key, key_npage |
| 193 | will be bound to the `next' keysym. If there is no key_previous key but | 193 | will be bound to the 'next' keysym. If there is no key_previous key but |
| 194 | there is a key_ppage key, key_ppage will be bound to the `previous' keysym. | 194 | there is a key_ppage key, key_ppage will be bound to the 'previous' keysym. |
| 195 | 195 | ||
| 196 | (3) Sorry, these are not exact but they're the best we can do. | 196 | (3) Sorry, these are not exact but they're the best we can do. |
| 197 | 197 | ||
| @@ -242,7 +242,7 @@ the setup code to bind anything else. | |||
| 242 | 242 | ||
| 243 | If your terminal's arrow key sequences are so funky that they conflict with | 243 | If your terminal's arrow key sequences are so funky that they conflict with |
| 244 | normal Emacs key bindings, the package should set up a function called | 244 | normal Emacs key bindings, the package should set up a function called |
| 245 | (enable-foo-arrow-keys), where `foo' becomes the terminal name, and leave | 245 | (enable-foo-arrow-keys), where 'foo' becomes the terminal name, and leave |
| 246 | it up to the user's .emacs file whether to call it. | 246 | it up to the user's .emacs file whether to call it. |
| 247 | 247 | ||
| 248 | Before writing a terminal-support package, it's a good idea to read the | 248 | Before writing a terminal-support package, it's a good idea to read the |
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index a21c105fb98..373f81238a2 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el | |||
| @@ -243,7 +243,7 @@ The properties returned may include `top', `left', `height', and `width'." | |||
| 243 | (insert ns-input-spi-arg)) | 243 | (insert ns-input-spi-arg)) |
| 244 | ((string-equal ns-input-spi-name "mail-to") | 244 | ((string-equal ns-input-spi-name "mail-to") |
| 245 | (compose-mail ns-input-spi-arg)) | 245 | (compose-mail ns-input-spi-arg)) |
| 246 | (t (error (concat "Service " ns-input-spi-name " not recognized"))))) | 246 | (t (error "Service %s not recognized" ns-input-spi-name)))) |
| 247 | 247 | ||
| 248 | 248 | ||
| 249 | ;; Composed key sequence handling for Nextstep system input methods. | 249 | ;; Composed key sequence handling for Nextstep system input methods. |
diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el index 98108ce6356..3bc1aa0ee48 100644 --- a/lisp/term/tty-colors.el +++ b/lisp/term/tty-colors.el | |||
| @@ -810,9 +810,11 @@ Value is the modified color alist for FRAME." | |||
| 810 | (while colors | 810 | (while colors |
| 811 | (tty-color-define (car color) (cadr color) (cddr color)) | 811 | (tty-color-define (car color) (cadr color) (cddr color)) |
| 812 | (setq colors (cdr colors) color (car colors))) | 812 | (setq colors (cdr colors) color (car colors))) |
| 813 | ;; Modifying color mappings means realized faces don't | 813 | ;; Modifying color mappings means realized faces don't use the |
| 814 | ;; use the right colors, so clear them. | 814 | ;; right colors, so clear them, if we modified colors on a TTY |
| 815 | (clear-face-cache))) | 815 | ;; frame. |
| 816 | (or (display-graphic-p) | ||
| 817 | (clear-face-cache)))) | ||
| 816 | 818 | ||
| 817 | (defun tty-color-canonicalize (color) | 819 | (defun tty-color-canonicalize (color) |
| 818 | "Return COLOR in canonical form. | 820 | "Return COLOR in canonical form. |
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el index 279f657c0ec..df8066ee2fc 100644 --- a/lisp/textmodes/bibtex.el +++ b/lisp/textmodes/bibtex.el | |||
| @@ -433,7 +433,7 @@ is present; but these fields are required otherwise. | |||
| 433 | OPTIONAL is a list of optional fields. | 433 | OPTIONAL is a list of optional fields. |
| 434 | 434 | ||
| 435 | Each element of these lists is a list of the form | 435 | Each element of these lists is a list of the form |
| 436 | \(FIELD COMMENT INIT ALTERNATIVE). | 436 | (FIELD COMMENT INIT ALTERNATIVE). |
| 437 | COMMENT, INIT, and ALTERNATIVE are optional. | 437 | COMMENT, INIT, and ALTERNATIVE are optional. |
| 438 | 438 | ||
| 439 | FIELD is the name of the field. | 439 | FIELD is the name of the field. |
| @@ -2620,7 +2620,7 @@ is returned unchanged." | |||
| 2620 | "Get content of BibTeX field FIELD. Return empty string if not found. | 2620 | "Get content of BibTeX field FIELD. Return empty string if not found. |
| 2621 | Optional arg CHANGE-LIST is a list of substitution patterns that is | 2621 | Optional arg CHANGE-LIST is a list of substitution patterns that is |
| 2622 | applied to the content of FIELD. It is an alist with pairs | 2622 | applied to the content of FIELD. It is an alist with pairs |
| 2623 | \(OLD-REGEXP . NEW-STRING\)." | 2623 | \(OLD-REGEXP . NEW-STRING)." |
| 2624 | (let* ((bibtex-expand-strings bibtex-autokey-expand-strings) | 2624 | (let* ((bibtex-expand-strings bibtex-autokey-expand-strings) |
| 2625 | (content (bibtex-text-in-field field bibtex-autokey-use-crossref)) | 2625 | (content (bibtex-text-in-field field bibtex-autokey-use-crossref)) |
| 2626 | case-fold-search) | 2626 | case-fold-search) |
| @@ -3647,7 +3647,7 @@ If optional arg CONTENT is non-nil extract content of text fields." | |||
| 3647 | (defun bibtex-autofill-entry () | 3647 | (defun bibtex-autofill-entry () |
| 3648 | "Try to fill fields of current BibTeX entry based on neighboring entries. | 3648 | "Try to fill fields of current BibTeX entry based on neighboring entries. |
| 3649 | The current entry must have a key. Determine the neighboring entry | 3649 | The current entry must have a key. Determine the neighboring entry |
| 3650 | \(previous or next\) whose key is more similar to the key of the current | 3650 | \(previous or next) whose key is more similar to the key of the current |
| 3651 | entry. For all empty fields of the current entry insert the corresponding | 3651 | entry. For all empty fields of the current entry insert the corresponding |
| 3652 | field contents of the neighboring entry. Finally try to update the text | 3652 | field contents of the neighboring entry. Finally try to update the text |
| 3653 | based on the difference between the keys of the neighboring and the current | 3653 | based on the difference between the keys of the neighboring and the current |
| @@ -5111,7 +5111,7 @@ entries from minibuffer." | |||
| 5111 | "Browse a URL for the BibTeX entry at point. | 5111 | "Browse a URL for the BibTeX entry at point. |
| 5112 | Optional POS is the location of the BibTeX entry. | 5112 | Optional POS is the location of the BibTeX entry. |
| 5113 | The URL is generated using the schemes defined in `bibtex-generate-url-list' | 5113 | The URL is generated using the schemes defined in `bibtex-generate-url-list' |
| 5114 | \(see there\). If multiple schemes match for this entry, or the same scheme | 5114 | \(see there). If multiple schemes match for this entry, or the same scheme |
| 5115 | matches more than once, use the one for which the first step's match is the | 5115 | matches more than once, use the one for which the first step's match is the |
| 5116 | closest to POS. The URL is passed to `browse-url' unless NO-BROWSE is t. | 5116 | closest to POS. The URL is passed to `browse-url' unless NO-BROWSE is t. |
| 5117 | Return the URL or nil if none can be generated." | 5117 | Return the URL or nil if none can be generated." |
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el index 267d23f38de..770571a264e 100644 --- a/lisp/textmodes/conf-mode.el +++ b/lisp/textmodes/conf-mode.el | |||
| @@ -434,7 +434,7 @@ For details see `conf-mode'. Example: | |||
| 434 | 434 | ||
| 435 | # Conf mode font-locks this right on Unix and with \\[conf-unix-mode] | 435 | # Conf mode font-locks this right on Unix and with \\[conf-unix-mode] |
| 436 | 436 | ||
| 437 | \[Desktop Entry] | 437 | [Desktop Entry] |
| 438 | Encoding=UTF-8 | 438 | Encoding=UTF-8 |
| 439 | Name=The GIMP | 439 | Name=The GIMP |
| 440 | Name[ca]=El GIMP | 440 | Name[ca]=El GIMP |
| @@ -449,11 +449,11 @@ For details see `conf-mode'. Example: | |||
| 449 | 449 | ||
| 450 | ; Conf mode font-locks this right on Windows and with \\[conf-windows-mode] | 450 | ; Conf mode font-locks this right on Windows and with \\[conf-windows-mode] |
| 451 | 451 | ||
| 452 | \[ExtShellFolderViews] | 452 | [ExtShellFolderViews] |
| 453 | Default={5984FFE0-28D4-11CF-AE66-08002B2E1262} | 453 | Default={5984FFE0-28D4-11CF-AE66-08002B2E1262} |
| 454 | {5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262} | 454 | {5984FFE0-28D4-11CF-AE66-08002B2E1262}={5984FFE0-28D4-11CF-AE66-08002B2E1262} |
| 455 | 455 | ||
| 456 | \[{5984FFE0-28D4-11CF-AE66-08002B2E1262}] | 456 | [{5984FFE0-28D4-11CF-AE66-08002B2E1262}] |
| 457 | PersistMoniker=file://Folder.htt" | 457 | PersistMoniker=file://Folder.htt" |
| 458 | (conf-mode-initialize ";")) | 458 | (conf-mode-initialize ";")) |
| 459 | 459 | ||
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 639456dc77e..5f4eebdf977 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el | |||
| @@ -78,8 +78,8 @@ | |||
| 78 | "list-style" "list-style-image" "list-style-position" | 78 | "list-style" "list-style-image" "list-style-position" |
| 79 | "list-style-type" "margin" "margin-bottom" "margin-left" | 79 | "list-style-type" "margin" "margin-bottom" "margin-left" |
| 80 | "margin-right" "margin-top" "max-height" "max-width" "min-height" | 80 | "margin-right" "margin-top" "max-height" "max-width" "min-height" |
| 81 | "min-width" "orphans" "overflow" "padding" "padding-bottom" | 81 | "min-width" "orphans" "padding" "padding-bottom" "padding-left" |
| 82 | "padding-left" "padding-right" "padding-top" "page-break-after" | 82 | "padding-right" "padding-top" "page-break-after" |
| 83 | "page-break-before" "page-break-inside" "pause" "pause-after" | 83 | "page-break-before" "page-break-inside" "pause" "pause-after" |
| 84 | "pause-before" "pitch" "pitch-range" "play-during" "position" | 84 | "pause-before" "pitch" "pitch-range" "play-during" "position" |
| 85 | "quotes" "richness" "right" "speak" "speak-header" "speak-numeral" | 85 | "quotes" "richness" "right" "speak" "speak-header" "speak-numeral" |
| @@ -136,6 +136,10 @@ | |||
| 136 | "font-variant-east-asian" "font-variant-ligatures" | 136 | "font-variant-east-asian" "font-variant-ligatures" |
| 137 | "font-variant-numeric" "font-variant-position" "font-weight" | 137 | "font-variant-numeric" "font-variant-position" "font-weight" |
| 138 | 138 | ||
| 139 | ;; CSS Overflow Module Level 3 | ||
| 140 | ;; (http://www.w3.org/TR/css-overflow-3/#property-index) | ||
| 141 | "max-lines" "overflow" "overflow-x" "overflow-y" | ||
| 142 | |||
| 139 | ;; CSS Text Decoration Module Level 3 | 143 | ;; CSS Text Decoration Module Level 3 |
| 140 | ;; (http://dev.w3.org/csswg/css-text-decor-3/#property-index) | 144 | ;; (http://dev.w3.org/csswg/css-text-decor-3/#property-index) |
| 141 | "text-decoration" "text-decoration-color" "text-decoration-line" | 145 | "text-decoration" "text-decoration-color" "text-decoration-line" |
| @@ -265,7 +269,7 @@ | |||
| 265 | "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids | 269 | "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids |
| 266 | css-pseudo-element-ids) t) | 270 | css-pseudo-element-ids) t) |
| 267 | "\\|\\::" (regexp-opt css-pseudo-element-ids t) "\\)" | 271 | "\\|\\::" (regexp-opt css-pseudo-element-ids t) "\\)" |
| 268 | "\\(?:([^\)]+)\\)?" | 272 | "\\(?:([^)]+)\\)?" |
| 269 | (if (not sassy) | 273 | (if (not sassy) |
| 270 | "[^:{}\n]*" | 274 | "[^:{}\n]*" |
| 271 | (concat "[^:{}\n#]*\\(?:" scss--hash-re "[^:{}\n#]*\\)*")) | 275 | (concat "[^:{}\n#]*\\(?:" scss--hash-re "[^:{}\n#]*\\)*")) |
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 87c2a95da49..fe27f0f158c 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el | |||
| @@ -699,8 +699,8 @@ re-start Emacs." | |||
| 699 | 699 | ||
| 700 | Each element of this list is also a list: | 700 | Each element of this list is also a list: |
| 701 | 701 | ||
| 702 | \(DICTIONARY-NAME CASECHARS NOT-CASECHARS OTHERCHARS MANY-OTHERCHARS-P | 702 | (DICTIONARY-NAME CASECHARS NOT-CASECHARS OTHERCHARS MANY-OTHERCHARS-P |
| 703 | ISPELL-ARGS EXTENDED-CHARACTER-MODE CHARACTER-SET\) | 703 | ISPELL-ARGS EXTENDED-CHARACTER-MODE CHARACTER-SET) |
| 704 | 704 | ||
| 705 | DICTIONARY-NAME is a possible string value of variable `ispell-dictionary', | 705 | DICTIONARY-NAME is a possible string value of variable `ispell-dictionary', |
| 706 | nil means the default dictionary. | 706 | nil means the default dictionary. |
| @@ -747,7 +747,7 @@ when the language uses non-ASCII characters. | |||
| 747 | Note that with \"ispell\" as the speller, the CASECHARS and | 747 | Note that with \"ispell\" as the speller, the CASECHARS and |
| 748 | OTHERCHARS slots of the alist should contain the same character | 748 | OTHERCHARS slots of the alist should contain the same character |
| 749 | set as casechars and otherchars in the LANGUAGE.aff file \(e.g., | 749 | set as casechars and otherchars in the LANGUAGE.aff file \(e.g., |
| 750 | english.aff\). Aspell and Hunspell don't have this limitation.") | 750 | english.aff). Aspell and Hunspell don't have this limitation.") |
| 751 | 751 | ||
| 752 | (defvar ispell-really-aspell nil | 752 | (defvar ispell-really-aspell nil |
| 753 | "Non-nil if we can use Aspell extensions.") | 753 | "Non-nil if we can use Aspell extensions.") |
| @@ -2024,7 +2024,7 @@ in a window allowing you to choose one. | |||
| 2024 | 2024 | ||
| 2025 | If optional argument FOLLOWING is non-nil or if `ispell-following-word' | 2025 | If optional argument FOLLOWING is non-nil or if `ispell-following-word' |
| 2026 | is non-nil when called interactively, then the following word | 2026 | is non-nil when called interactively, then the following word |
| 2027 | \(rather than preceding\) is checked when the cursor is not over a word. | 2027 | \(rather than preceding) is checked when the cursor is not over a word. |
| 2028 | When the optional argument QUIETLY is non-nil or `ispell-quietly' is non-nil | 2028 | When the optional argument QUIETLY is non-nil or `ispell-quietly' is non-nil |
| 2029 | when called interactively, non-corrective messages are suppressed. | 2029 | when called interactively, non-corrective messages are suppressed. |
| 2030 | 2030 | ||
| @@ -2044,7 +2044,7 @@ Return values: | |||
| 2044 | nil word is correct or spelling is accepted. | 2044 | nil word is correct or spelling is accepted. |
| 2045 | 0 word is inserted into buffer-local definitions. | 2045 | 0 word is inserted into buffer-local definitions. |
| 2046 | \"word\" word corrected from word list. | 2046 | \"word\" word corrected from word list. |
| 2047 | \(\"word\" arg\) word is hand entered. | 2047 | \(\"word\" arg) word is hand entered. |
| 2048 | quit spell session exited." | 2048 | quit spell session exited." |
| 2049 | (interactive (list ispell-following-word ispell-quietly current-prefix-arg t)) | 2049 | (interactive (list ispell-following-word ispell-quietly current-prefix-arg t)) |
| 2050 | (cond | 2050 | (cond |
| @@ -2162,7 +2162,7 @@ quit spell session exited." | |||
| 2162 | "Return the word for spell-checking according to ispell syntax. | 2162 | "Return the word for spell-checking according to ispell syntax. |
| 2163 | If optional argument FOLLOWING is non-nil or if `ispell-following-word' | 2163 | If optional argument FOLLOWING is non-nil or if `ispell-following-word' |
| 2164 | is non-nil when called interactively, then the following word | 2164 | is non-nil when called interactively, then the following word |
| 2165 | \(rather than preceding\) is checked when the cursor is not over a word. | 2165 | \(rather than preceding) is checked when the cursor is not over a word. |
| 2166 | Optional second argument contains otherchars that can be included in word | 2166 | Optional second argument contains otherchars that can be included in word |
| 2167 | many times (see the doc string of `ispell-dictionary-alist' for details | 2167 | many times (see the doc string of `ispell-dictionary-alist' for details |
| 2168 | about otherchars). | 2168 | about otherchars). |
diff --git a/lisp/textmodes/makeinfo.el b/lisp/textmodes/makeinfo.el index b9b72ea644f..0ca4cbefe93 100644 --- a/lisp/textmodes/makeinfo.el +++ b/lisp/textmodes/makeinfo.el | |||
| @@ -228,7 +228,7 @@ nonsensical results." | |||
| 228 | "Make Info file from current buffer. | 228 | "Make Info file from current buffer. |
| 229 | 229 | ||
| 230 | Use the \\[next-error] command to move to the next error | 230 | Use the \\[next-error] command to move to the next error |
| 231 | \(if there are errors\)." | 231 | \(if there are errors)." |
| 232 | 232 | ||
| 233 | (interactive) | 233 | (interactive) |
| 234 | (cond ((null buffer-file-name) | 234 | (cond ((null buffer-file-name) |
diff --git a/lisp/textmodes/page-ext.el b/lisp/textmodes/page-ext.el index 57134e06c19..99962c75897 100644 --- a/lisp/textmodes/page-ext.el +++ b/lisp/textmodes/page-ext.el | |||
| @@ -446,7 +446,7 @@ REVERSE (non-nil means reverse order), BEG and END (region to sort)." | |||
| 446 | 446 | ||
| 447 | (defun sort-pages-buffer (&optional reverse) | 447 | (defun sort-pages-buffer (&optional reverse) |
| 448 | "Sort pages alphabetically in buffer. Prefix arg means reverse order. | 448 | "Sort pages alphabetically in buffer. Prefix arg means reverse order. |
| 449 | \(Non-nil arg if not interactive.\)" | 449 | \(Non-nil arg if not interactive.)" |
| 450 | 450 | ||
| 451 | (interactive "P") | 451 | (interactive "P") |
| 452 | (or reverse (setq reverse nil)) | 452 | (or reverse (setq reverse nil)) |
| @@ -461,7 +461,7 @@ REVERSE (non-nil means reverse order), BEG and END (region to sort)." | |||
| 461 | (defvar pages-directory-previous-regexp nil | 461 | (defvar pages-directory-previous-regexp nil |
| 462 | "Value of previous regexp used by `pages-directory'. | 462 | "Value of previous regexp used by `pages-directory'. |
| 463 | \(This regular expression may be used to select only those pages that | 463 | \(This regular expression may be used to select only those pages that |
| 464 | contain matches to the regexp.\)") | 464 | contain matches to the regexp.)") |
| 465 | 465 | ||
| 466 | (defvar pages-buffer nil | 466 | (defvar pages-buffer nil |
| 467 | "The buffer for which the pages-directory function creates the directory.") | 467 | "The buffer for which the pages-directory function creates the directory.") |
diff --git a/lisp/textmodes/refer.el b/lisp/textmodes/refer.el index 8d824ebad35..22dc7dc9165 100644 --- a/lisp/textmodes/refer.el +++ b/lisp/textmodes/refer.el | |||
| @@ -229,7 +229,7 @@ found on the last `refer-find-entry' or `refer-find-next-entry'." | |||
| 229 | (sit-for 1) | 229 | (sit-for 1) |
| 230 | (setq files (cdr files)))))) | 230 | (setq files (cdr files)))))) |
| 231 | (ding) | 231 | (ding) |
| 232 | (message "Keywords \"%s\" not found in any \.bib file" keywords)) | 232 | (message "Keywords \"%s\" not found in any .bib file" keywords)) |
| 233 | (select-window old-window))) | 233 | (select-window old-window))) |
| 234 | 234 | ||
| 235 | (defun refer-find-entry-in-file (keywords-list file &optional old-pos) | 235 | (defun refer-find-entry-in-file (keywords-list file &optional old-pos) |
| @@ -351,21 +351,21 @@ found on the last `refer-find-entry' or `refer-find-next-entry'." | |||
| 351 | (if (progn | 351 | (if (progn |
| 352 | (goto-char (point-min)) | 352 | (goto-char (point-min)) |
| 353 | (re-search-forward (concat refer-bib-files-regexp | 353 | (re-search-forward (concat refer-bib-files-regexp |
| 354 | "\\s-*\{") nil t)) | 354 | "\\s-*{") nil t)) |
| 355 | (let ((files (list (buffer-substring | 355 | (let ((files (list (buffer-substring |
| 356 | (point) | 356 | (point) |
| 357 | (progn | 357 | (progn |
| 358 | (re-search-forward "[,\}]" | 358 | (re-search-forward "[,}]" |
| 359 | nil t) | 359 | nil t) |
| 360 | (backward-char 1) | 360 | (backward-char 1) |
| 361 | (point)))))) | 361 | (point)))))) |
| 362 | (while (not (looking-at "\}")) | 362 | (while (not (looking-at "}")) |
| 363 | (setq files (append files | 363 | (setq files (append files |
| 364 | (list (buffer-substring | 364 | (list (buffer-substring |
| 365 | (progn (forward-char 1) | 365 | (progn (forward-char 1) |
| 366 | (point)) | 366 | (point)) |
| 367 | (progn (re-search-forward | 367 | (progn (re-search-forward |
| 368 | "[,\}]" nil t) | 368 | "[,}]" nil t) |
| 369 | (backward-char 1) | 369 | (backward-char 1) |
| 370 | (point))))))) | 370 | (point))))))) |
| 371 | files) | 371 | files) |
diff --git a/lisp/textmodes/reftex-cite.el b/lisp/textmodes/reftex-cite.el index 17e8cfdc83c..8f3f2ccd061 100644 --- a/lisp/textmodes/reftex-cite.el +++ b/lisp/textmodes/reftex-cite.el | |||
| @@ -210,7 +210,9 @@ Return list with entries." | |||
| 210 | (setq first-re (car re-list) ; We'll use the first re to find things, | 210 | (setq first-re (car re-list) ; We'll use the first re to find things, |
| 211 | rest-re (cdr re-list)) ; the others to narrow down. | 211 | rest-re (cdr re-list)) ; the others to narrow down. |
| 212 | (if (string-match "\\`[ \t]*\\'" (or first-re "")) | 212 | (if (string-match "\\`[ \t]*\\'" (or first-re "")) |
| 213 | (error "Empty regular expression")) | 213 | (user-error "Empty regular expression")) |
| 214 | (if (string-match first-re "") | ||
| 215 | (user-error "Regular expression matches the empty string.")) | ||
| 214 | 216 | ||
| 215 | (save-excursion | 217 | (save-excursion |
| 216 | (save-window-excursion | 218 | (save-window-excursion |
| @@ -385,7 +387,7 @@ The environment should be located in FILES." | |||
| 385 | (buffer-substring-no-properties | 387 | (buffer-substring-no-properties |
| 386 | start end) | 388 | start end) |
| 387 | "[ \t\n\r]*\\\\bibitem[ \t]*\ | 389 | "[ \t\n\r]*\\\\bibitem[ \t]*\ |
| 388 | \\(\\[[^]]*]\\)*\[ \t]*")))))) | 390 | \\(\\[[^]]*]\\)*[ \t]*")))))) |
| 389 | (goto-char end)))))) | 391 | (goto-char end)))))) |
| 390 | (unless entries | 392 | (unless entries |
| 391 | (error "No bibitems found")) | 393 | (error "No bibitems found")) |
| @@ -477,7 +479,7 @@ If RAW is non-nil, keep double quotes/curly braces delimiting fields." | |||
| 477 | (goto-char (point-min)) | 479 | (goto-char (point-min)) |
| 478 | 480 | ||
| 479 | (if (re-search-forward "@\\(\\(?:\\w\\|\\s_\\)+\\)[ \t\n\r]*\ | 481 | (if (re-search-forward "@\\(\\(?:\\w\\|\\s_\\)+\\)[ \t\n\r]*\ |
| 480 | \[{(][ \t\n\r]*\\([^ \t\n\r,]+\\)" nil t) | 482 | [{(][ \t\n\r]*\\([^ \t\n\r,]+\\)" nil t) |
| 481 | (setq alist | 483 | (setq alist |
| 482 | (list | 484 | (list |
| 483 | (cons "&type" (downcase (reftex-match-string 1))) | 485 | (cons "&type" (downcase (reftex-match-string 1))) |
| @@ -1195,7 +1197,7 @@ created files in the variables `reftex-create-bibtex-header' or | |||
| 1195 | (widen) | 1197 | (widen) |
| 1196 | (goto-char (point-min)) | 1198 | (goto-char (point-min)) |
| 1197 | (while (re-search-forward "^[ \t]*@\\(?:\\w\\|\\s_\\)+[ \t\n\r]*\ | 1199 | (while (re-search-forward "^[ \t]*@\\(?:\\w\\|\\s_\\)+[ \t\n\r]*\ |
| 1198 | \[{(][ \t\n\r]*\\([^ \t\n\r,]+\\)" nil t) | 1200 | [{(][ \t\n\r]*\\([^ \t\n\r,]+\\)" nil t) |
| 1199 | (setq key (match-string 1) | 1201 | (setq key (match-string 1) |
| 1200 | beg (match-beginning 0) | 1202 | beg (match-beginning 0) |
| 1201 | end (progn | 1203 | end (progn |
diff --git a/lisp/textmodes/reftex-parse.el b/lisp/textmodes/reftex-parse.el index 7f186afc27c..f57113177c5 100644 --- a/lisp/textmodes/reftex-parse.el +++ b/lisp/textmodes/reftex-parse.el | |||
| @@ -244,7 +244,7 @@ of master file." | |||
| 244 | (when (or (null reftex-label-ignored-macros-and-environments) | 244 | (when (or (null reftex-label-ignored-macros-and-environments) |
| 245 | ;; \label{} defs should always be honored, | 245 | ;; \label{} defs should always be honored, |
| 246 | ;; just no keyval style [label=foo] defs. | 246 | ;; just no keyval style [label=foo] defs. |
| 247 | (string-equal "\label{" (substring (reftex-match-string 0) 0 7)) | 247 | (string-equal "\\label{" (substring (reftex-match-string 0) 0 7)) |
| 248 | (if (and (fboundp 'TeX-current-macro) | 248 | (if (and (fboundp 'TeX-current-macro) |
| 249 | (fboundp 'LaTeX-current-environment)) | 249 | (fboundp 'LaTeX-current-environment)) |
| 250 | (not (or (member (save-match-data (TeX-current-macro)) | 250 | (not (or (member (save-match-data (TeX-current-macro)) |
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el index 482dd4c6396..357a0938e6a 100644 --- a/lisp/textmodes/reftex-vars.el +++ b/lisp/textmodes/reftex-vars.el | |||
| @@ -1991,7 +1991,8 @@ symbol indicating in what context the hook is called." | |||
| 1991 | 1991 | ||
| 1992 | (defcustom reftex-extra-bindings nil | 1992 | (defcustom reftex-extra-bindings nil |
| 1993 | "Non-nil means, make additional key bindings on startup. | 1993 | "Non-nil means, make additional key bindings on startup. |
| 1994 | These extra bindings are located in the users `C-c letter' map." | 1994 | These extra bindings are located in the users `C-c letter' map. |
| 1995 | Note that this variable needs to be set before reftex is loaded." | ||
| 1995 | :group 'reftex-miscellaneous-configurations | 1996 | :group 'reftex-miscellaneous-configurations |
| 1996 | :type 'boolean) | 1997 | :type 'boolean) |
| 1997 | 1998 | ||
diff --git a/lisp/textmodes/reftex.el b/lisp/textmodes/reftex.el index 7dc91844583..fb96c6c551b 100644 --- a/lisp/textmodes/reftex.el +++ b/lisp/textmodes/reftex.el | |||
| @@ -2354,7 +2354,7 @@ what in fact did happen. | |||
| 2354 | Check if the bug is reproducible with an up-to-date version of | 2354 | Check if the bug is reproducible with an up-to-date version of |
| 2355 | RefTeX available from http://www.gnu.org/software/auctex/. | 2355 | RefTeX available from http://www.gnu.org/software/auctex/. |
| 2356 | 2356 | ||
| 2357 | If the bug is triggered by a specific \(La\)TeX file, you should try | 2357 | If the bug is triggered by a specific \(La)TeX file, you should try |
| 2358 | to produce a minimal sample file showing the problem and include it | 2358 | to produce a minimal sample file showing the problem and include it |
| 2359 | in your report. | 2359 | in your report. |
| 2360 | 2360 | ||
| @@ -2446,7 +2446,7 @@ of ENTRY-LIST is a list of cons cells (\"MACRONAME\" . LEVEL). See | |||
| 2446 | 2446 | ||
| 2447 | ;;;*** | 2447 | ;;;*** |
| 2448 | 2448 | ||
| 2449 | ;;;### (autoloads nil "reftex-cite" "reftex-cite.el" "83811ccf3471820f0ad0dc005ffc88d5") | 2449 | ;;;### (autoloads nil "reftex-cite" "reftex-cite.el" "751df6ee674ea533b755e8cda4ad1cf8") |
| 2450 | ;;; Generated autoloads from reftex-cite.el | 2450 | ;;; Generated autoloads from reftex-cite.el |
| 2451 | 2451 | ||
| 2452 | (autoload 'reftex-default-bibliography "reftex-cite" "\ | 2452 | (autoload 'reftex-default-bibliography "reftex-cite" "\ |
| @@ -2774,7 +2774,7 @@ Here are all local bindings. | |||
| 2774 | 2774 | ||
| 2775 | ;;;*** | 2775 | ;;;*** |
| 2776 | 2776 | ||
| 2777 | ;;;### (autoloads nil "reftex-parse" "reftex-parse.el" "c327a848a6d168412b1a9be9f2e3dce8") | 2777 | ;;;### (autoloads nil "reftex-parse" "reftex-parse.el" "7bfdcb2f040dbe9a08d2c38c005c8f21") |
| 2778 | ;;; Generated autoloads from reftex-parse.el | 2778 | ;;; Generated autoloads from reftex-parse.el |
| 2779 | 2779 | ||
| 2780 | (autoload 'reftex-parse-one "reftex-parse" "\ | 2780 | (autoload 'reftex-parse-one "reftex-parse" "\ |
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 9625ec2c7cc..4c234c9a31f 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el | |||
| @@ -296,7 +296,7 @@ in parentheses follows the development revision and the time stamp.") | |||
| 296 | ;; syntax. | 296 | ;; syntax. |
| 297 | (defconst rst-bullets | 297 | (defconst rst-bullets |
| 298 | ;; Sorted so they can form a character class when concatenated. | 298 | ;; Sorted so they can form a character class when concatenated. |
| 299 | '(?- ?* ?+ ?\u2022 ?\u2023 ?\u2043) | 299 | '(?- ?* ?+ ?• ?‣ ?⁃) |
| 300 | "List of all possible bullet characters for bulleted lists.") | 300 | "List of all possible bullet characters for bulleted lists.") |
| 301 | 301 | ||
| 302 | (defconst rst-uri-schemes | 302 | (defconst rst-uri-schemes |
| @@ -392,8 +392,8 @@ in parentheses follows the development revision and the time stamp.") | |||
| 392 | ; item tag. | 392 | ; item tag. |
| 393 | 393 | ||
| 394 | ;; Inline markup (`ilm') | 394 | ;; Inline markup (`ilm') |
| 395 | (ilm-pfx (:alt "^" hws-prt "[-'\"([{<\u2018\u201c\u00ab\u2019/:]")) | 395 | (ilm-pfx (:alt "^" hws-prt "[-'\"([{<‘“«’/:]")) |
| 396 | (ilm-sfx (:alt "$" hws-prt "[]-'\")}>\u2019\u201d\u00bb/:.,;!?\\]")) | 396 | (ilm-sfx (:alt "$" hws-prt "[]-'\")}>’”»/:.,;!?\\]")) |
| 397 | 397 | ||
| 398 | ;; Inline markup content (`ilc') | 398 | ;; Inline markup content (`ilc') |
| 399 | (ilcsgl-tag "\\S ") ; A single non-white character. | 399 | (ilcsgl-tag "\\S ") ; A single non-white character. |
| @@ -442,7 +442,7 @@ in parentheses follows the development revision and the time stamp.") | |||
| 442 | (opt-tag (:shy optsta-tag optnam-tag optarg-tag "?")) ; A complete option. | 442 | (opt-tag (:shy optsta-tag optnam-tag optarg-tag "?")) ; A complete option. |
| 443 | 443 | ||
| 444 | ;; Footnotes and citations (`fnc') | 444 | ;; Footnotes and citations (`fnc') |
| 445 | (fncnam-prt "[^\]\n]") ; Part of a footnote or citation name. | 445 | (fncnam-prt "[^]\n]") ; Part of a footnote or citation name. |
| 446 | (fncnam-tag fncnam-prt "+") ; A footnote or citation name. | 446 | (fncnam-tag fncnam-prt "+") ; A footnote or citation name. |
| 447 | (fnc-tag "\\[" fncnam-tag "]") ; A complete footnote or citation tag. | 447 | (fnc-tag "\\[" fncnam-tag "]") ; A complete footnote or citation tag. |
| 448 | (fncdef-tag-2 (:grp exm-sta) | 448 | (fncdef-tag-2 (:grp exm-sta) |
| @@ -512,7 +512,7 @@ in parentheses follows the development revision and the time stamp.") | |||
| 512 | ; colon tag. | 512 | ; colon tag. |
| 513 | 513 | ||
| 514 | ;; Comments (`cmt') | 514 | ;; Comments (`cmt') |
| 515 | (cmt-sta-1 (:grp exm-sta) "[^\[|_\n]" | 515 | (cmt-sta-1 (:grp exm-sta) "[^[|_\n]" |
| 516 | (:alt "[^:\n]" (:seq ":" (:alt "[^:\n]" "$"))) | 516 | (:alt "[^:\n]" (:seq ":" (:alt "[^:\n]" "$"))) |
| 517 | "*$") ; Start of a comment block; first group is explicit markup | 517 | "*$") ; Start of a comment block; first group is explicit markup |
| 518 | ; start. | 518 | ; start. |
| @@ -778,12 +778,12 @@ This inherits from Text mode.") | |||
| 778 | (modify-syntax-entry ?\\ "\\" st) | 778 | (modify-syntax-entry ?\\ "\\" st) |
| 779 | (modify-syntax-entry ?_ "." st) | 779 | (modify-syntax-entry ?_ "." st) |
| 780 | (modify-syntax-entry ?| "." st) | 780 | (modify-syntax-entry ?| "." st) |
| 781 | (modify-syntax-entry ?\u00ab "." st) | 781 | (modify-syntax-entry ?« "." st) |
| 782 | (modify-syntax-entry ?\u00bb "." st) | 782 | (modify-syntax-entry ?» "." st) |
| 783 | (modify-syntax-entry ?\u2018 "." st) | 783 | (modify-syntax-entry ?‘ "." st) |
| 784 | (modify-syntax-entry ?\u2019 "." st) | 784 | (modify-syntax-entry ?’ "." st) |
| 785 | (modify-syntax-entry ?\u201c "." st) | 785 | (modify-syntax-entry ?“ "." st) |
| 786 | (modify-syntax-entry ?\u201d "." st) | 786 | (modify-syntax-entry ?” "." st) |
| 787 | st) | 787 | st) |
| 788 | "Syntax table used while in `rst-mode'.") | 788 | "Syntax table used while in `rst-mode'.") |
| 789 | 789 | ||
| @@ -4235,4 +4235,8 @@ column is used (fill-column vs. end of previous/next line)." | |||
| 4235 | 4235 | ||
| 4236 | (provide 'rst) | 4236 | (provide 'rst) |
| 4237 | 4237 | ||
| 4238 | ;; Local Variables: | ||
| 4239 | ;; coding: utf-8 | ||
| 4240 | ;; End: | ||
| 4241 | |||
| 4238 | ;;; rst.el ends here | 4242 | ;;; rst.el ends here |
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index cb65e5f1073..55a1e6d26db 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el | |||
| @@ -525,7 +525,7 @@ Do \\[describe-key] on the following bindings to discover what they do. | |||
| 525 | ;; This is desirable because SGML discards a newline that appears | 525 | ;; This is desirable because SGML discards a newline that appears |
| 526 | ;; immediately after a start tag or immediately before an end tag. | 526 | ;; immediately after a start tag or immediately before an end tag. |
| 527 | (setq-local paragraph-start (concat "[ \t]*$\\|\ | 527 | (setq-local paragraph-start (concat "[ \t]*$\\|\ |
| 528 | \[ \t]*</?\\(" sgml-name-re sgml-attrs-re "\\)?>")) | 528 | [ \t]*</?\\(" sgml-name-re sgml-attrs-re "\\)?>")) |
| 529 | (setq-local paragraph-separate (concat paragraph-start "$")) | 529 | (setq-local paragraph-separate (concat paragraph-start "$")) |
| 530 | (setq-local adaptive-fill-regexp "[ \t]*") | 530 | (setq-local adaptive-fill-regexp "[ \t]*") |
| 531 | (add-hook 'fill-nobreak-predicate 'sgml-fill-nobreak nil t) | 531 | (add-hook 'fill-nobreak-predicate 'sgml-fill-nobreak nil t) |
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index 5fdf9e3b250..bf15b2628f9 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el | |||
| @@ -135,8 +135,8 @@ If nil, TeX runs with no options. See the documentation of `tex-command'." | |||
| 135 | "TeX commands to use when starting TeX. | 135 | "TeX commands to use when starting TeX. |
| 136 | They are shell-quoted and precede the input file name, with a separating space. | 136 | They are shell-quoted and precede the input file name, with a separating space. |
| 137 | If nil, no commands are used. See the documentation of `tex-command'." | 137 | If nil, no commands are used. See the documentation of `tex-command'." |
| 138 | :type '(radio (const :tag "Interactive \(nil\)" nil) | 138 | :type '(radio (const :tag "Interactive (nil)" nil) |
| 139 | (const :tag "Nonstop \(\"\\nonstopmode\\input\"\)" | 139 | (const :tag "Nonstop (\"\\nonstopmode\\input\")" |
| 140 | "\\nonstopmode\\input") | 140 | "\\nonstopmode\\input") |
| 141 | (string :tag "String at your choice")) | 141 | (string :tag "String at your choice")) |
| 142 | :group 'tex-run | 142 | :group 'tex-run |
| @@ -266,8 +266,8 @@ tex shell terminates.") | |||
| 266 | 266 | ||
| 267 | (defvar tex-command "tex" | 267 | (defvar tex-command "tex" |
| 268 | "Command to run TeX. | 268 | "Command to run TeX. |
| 269 | If this string contains an asterisk \(`*'\), that is replaced by the file name; | 269 | If this string contains an asterisk \(`*'), that is replaced by the file name; |
| 270 | otherwise the value of `tex-start-options', the \(shell-quoted\) | 270 | otherwise the value of `tex-start-options', the \(shell-quoted) |
| 271 | value of `tex-start-commands', and the file name are added at the end | 271 | value of `tex-start-commands', and the file name are added at the end |
| 272 | with blanks as separators. | 272 | with blanks as separators. |
| 273 | 273 | ||
| @@ -387,7 +387,7 @@ An alternative value is \" . \", if you use a font with a narrow period." | |||
| 387 | (goto-char (point-min)) | 387 | (goto-char (point-min)) |
| 388 | (while (search-forward-regexp | 388 | (while (search-forward-regexp |
| 389 | "\\\\\\(include\\|input\\|verbatiminput\\|bibliography\\)\ | 389 | "\\\\\\(include\\|input\\|verbatiminput\\|bibliography\\)\ |
| 390 | \[ \t]*{\\([^}\n]+\\)}" | 390 | [ \t]*{\\([^}\n]+\\)}" |
| 391 | nil t) | 391 | nil t) |
| 392 | (push (cons (concat "<<" (buffer-substring-no-properties | 392 | (push (cons (concat "<<" (buffer-substring-no-properties |
| 393 | (match-beginning 2) | 393 | (match-beginning 2) |
| @@ -1550,7 +1550,7 @@ Puts point on a blank line between them." | |||
| 1550 | "\\end{" str "}" > \n) | 1550 | "\\end{" str "}" > \n) |
| 1551 | 1551 | ||
| 1552 | (define-skeleton latex-insert-item | 1552 | (define-skeleton latex-insert-item |
| 1553 | "Insert a \item macro." | 1553 | "Insert an \\item macro." |
| 1554 | nil | 1554 | nil |
| 1555 | \n "\\item " >) | 1555 | \n "\\item " >) |
| 1556 | 1556 | ||
| @@ -2955,7 +2955,7 @@ There might be text before point." | |||
| 2955 | ("\\beta" . ?β) | 2955 | ("\\beta" . ?β) |
| 2956 | ("\\gamma" . ?γ) | 2956 | ("\\gamma" . ?γ) |
| 2957 | ("\\delta" . ?δ) | 2957 | ("\\delta" . ?δ) |
| 2958 | ("\\epsilon" . ?) | 2958 | ("\\epsilon" . ?) |
| 2959 | ("\\zeta" . ?ζ) | 2959 | ("\\zeta" . ?ζ) |
| 2960 | ("\\eta" . ?η) | 2960 | ("\\eta" . ?η) |
| 2961 | ("\\theta" . ?θ) | 2961 | ("\\theta" . ?θ) |
| @@ -3272,7 +3272,8 @@ There might be text before point." | |||
| 3272 | ("\\prod" . ?∏) | 3272 | ("\\prod" . ?∏) |
| 3273 | ("\\propto" . ?∝) | 3273 | ("\\propto" . ?∝) |
| 3274 | ("\\qed" . ?∎) | 3274 | ("\\qed" . ?∎) |
| 3275 | ("\\quad" . ? ) | 3275 | ("\\qquad" . ?⧢) |
| 3276 | ("\\quad" . ?␣) | ||
| 3276 | ("\\rangle" . 10217) ; Literal ?⟩ breaks indentation. | 3277 | ("\\rangle" . 10217) ; Literal ?⟩ breaks indentation. |
| 3277 | ("\\rbrace" . ?}) | 3278 | ("\\rbrace" . ?}) |
| 3278 | ("\\rbrack" . ?\]) | 3279 | ("\\rbrack" . ?\]) |
| @@ -3357,8 +3358,10 @@ There might be text before point." | |||
| 3357 | ("\\urcorner" . ?⌝) | 3358 | ("\\urcorner" . ?⌝) |
| 3358 | ("\\u{i}" . ?ĭ) | 3359 | ("\\u{i}" . ?ĭ) |
| 3359 | ("\\vDash" . ?⊨) | 3360 | ("\\vDash" . ?⊨) |
| 3361 | ("\\varepsilon" . ?ε) | ||
| 3360 | ("\\varprime" . ?′) | 3362 | ("\\varprime" . ?′) |
| 3361 | ("\\varpropto" . ?∝) | 3363 | ("\\varpropto" . ?∝) |
| 3364 | ("\\varrho" . ?ϱ) | ||
| 3362 | ;; ("\\varsigma" ?ς) ;FIXME: Looks reversed with the non\var. | 3365 | ;; ("\\varsigma" ?ς) ;FIXME: Looks reversed with the non\var. |
| 3363 | ("\\vartriangleleft" . ?⊲) | 3366 | ("\\vartriangleleft" . ?⊲) |
| 3364 | ("\\vartriangleright" . ?⊳) | 3367 | ("\\vartriangleright" . ?⊳) |
| @@ -3406,16 +3409,17 @@ There might be text before point." | |||
| 3406 | 3409 | ||
| 3407 | (defun tex--prettify-symbols-compose-p (start end _match) | 3410 | (defun tex--prettify-symbols-compose-p (start end _match) |
| 3408 | (let* ((after-char (char-after end)) | 3411 | (let* ((after-char (char-after end)) |
| 3409 | (after-syntax (char-syntax after-char))) | 3412 | (after-syntax (char-syntax after-char))) |
| 3410 | (not (or | 3413 | (not (or |
| 3411 | ;; Don't compose \alpha@foo. | 3414 | ;; Don't compose \alpha@foo. |
| 3412 | (eq after-syntax ?_) | 3415 | (eq after-char ?@) |
| 3413 | ;; Don't compose inside verbatim blocks! | 3416 | ;; The \alpha in \alpha2 or \alpha-\beta may be composed but |
| 3414 | (nth 8 (syntax-ppss)) | 3417 | ;; of course \alphax may not. |
| 3415 | ;; The \alpha in \alpha2 may be composed but of course \alphax may not. | ||
| 3416 | (and (eq after-syntax ?w) | 3418 | (and (eq after-syntax ?w) |
| 3417 | (or (< after-char ?0) | 3419 | (not (memq after-char |
| 3418 | (> after-char ?9))))))) | 3420 | '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?+ ?- ?' ?\")))) |
| 3421 | ;; Don't compose inside verbatim blocks. | ||
| 3422 | (eq 2 (nth 7 (syntax-ppss))))))) | ||
| 3419 | 3423 | ||
| 3420 | (run-hooks 'tex-mode-load-hook) | 3424 | (run-hooks 'tex-mode-load-hook) |
| 3421 | 3425 | ||
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el index 37f10a8e871..500c1e38394 100644 --- a/lisp/textmodes/texinfmt.el +++ b/lisp/textmodes/texinfmt.el | |||
| @@ -1043,7 +1043,7 @@ Leave point after argument." | |||
| 1043 | (setq texinfo-command-end (point))) | 1043 | (setq texinfo-command-end (point))) |
| 1044 | (t | 1044 | (t |
| 1045 | (error | 1045 | (error |
| 1046 | "Invalid `texinfo-optional-braces-discard' format \(need braces?\)"))) | 1046 | "Invalid `texinfo-optional-braces-discard' format (need braces?)"))) |
| 1047 | (delete-region texinfo-command-start texinfo-command-end))) | 1047 | (delete-region texinfo-command-start texinfo-command-end))) |
| 1048 | 1048 | ||
| 1049 | (defun texinfo-format-parse-line-args () | 1049 | (defun texinfo-format-parse-line-args () |
| @@ -2336,7 +2336,7 @@ Use only the FILENAME arg; for Info, ignore the other arguments to @image." | |||
| 2336 | ;; Write a `@definfoenclose' command on a line and follow it with three | 2336 | ;; Write a `@definfoenclose' command on a line and follow it with three |
| 2337 | ;; arguments separated by commas (commas are used as separators in an | 2337 | ;; arguments separated by commas (commas are used as separators in an |
| 2338 | ;; `@node' line in the same way). The first argument to | 2338 | ;; `@node' line in the same way). The first argument to |
| 2339 | ;; `@definfoenclose' is the @-command name \(without the `@'\); the | 2339 | ;; `@definfoenclose' is the @-command name (without the `@'); the |
| 2340 | ;; second argument is the Info start delimiter string; and the third | 2340 | ;; second argument is the Info start delimiter string; and the third |
| 2341 | ;; argument is the Info end delimiter string. The latter two arguments | 2341 | ;; argument is the Info end delimiter string. The latter two arguments |
| 2342 | ;; enclose the highlighted text in the Info file. A delimiter string | 2342 | ;; enclose the highlighted text in the Info file. A delimiter string |
| @@ -2491,8 +2491,8 @@ surrounded by in angle brackets." | |||
| 2491 | Enclose the verbatim text, including the delimiters, in braces. Print | 2491 | Enclose the verbatim text, including the delimiters, in braces. Print |
| 2492 | text exactly as written (but not the delimiters) in a fixed-width. | 2492 | text exactly as written (but not the delimiters) in a fixed-width. |
| 2493 | 2493 | ||
| 2494 | For example, @verb\{|@|\} results in @ and | 2494 | For example, @verb{|@|} results in @ and |
| 2495 | @verb\{+@\\='e?\\=`!\\=`+} results in @\\='e?\\=`!\\=`." | 2495 | @verb{+@\\='e?\\=`!\\=`+} results in @\\='e?\\=`!\\=`." |
| 2496 | 2496 | ||
| 2497 | (let ((delimiter (buffer-substring-no-properties | 2497 | (let ((delimiter (buffer-substring-no-properties |
| 2498 | (1+ texinfo-command-end) (+ 2 texinfo-command-end)))) | 2498 | (1+ texinfo-command-end) (+ 2 texinfo-command-end)))) |
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el index 2c6d5b3827c..57218177d7b 100644 --- a/lisp/textmodes/texinfo.el +++ b/lisp/textmodes/texinfo.el | |||
| @@ -86,7 +86,7 @@ command to gain use of `next-error'." | |||
| 86 | "Make Info file from current buffer. | 86 | "Make Info file from current buffer. |
| 87 | 87 | ||
| 88 | Use the \\[next-error] command to move to the next error | 88 | Use the \\[next-error] command to move to the next error |
| 89 | \(if there are errors\)." | 89 | \(if there are errors)." |
| 90 | t nil) | 90 | t nil) |
| 91 | 91 | ||
| 92 | (autoload 'kill-compilation | 92 | (autoload 'kill-compilation |
diff --git a/lisp/textmodes/texnfo-upd.el b/lisp/textmodes/texnfo-upd.el index 0508426619f..321967a3721 100644 --- a/lisp/textmodes/texnfo-upd.el +++ b/lisp/textmodes/texnfo-upd.el | |||
| @@ -694,8 +694,8 @@ section titles are often too short to explain a node well. | |||
| 694 | 694 | ||
| 695 | MENU-LIST has form: | 695 | MENU-LIST has form: |
| 696 | 696 | ||
| 697 | \(\(\"node-name1\" . \"description\"\) | 697 | ((\"node-name1\" . \"description\") |
| 698 | \(\"node-name2\" . \"description\"\) ... \) | 698 | (\"node-name2\" . \"description\") ... ) |
| 699 | 699 | ||
| 700 | However, the description field might be nil. | 700 | However, the description field might be nil. |
| 701 | 701 | ||
| @@ -1002,9 +1002,9 @@ following menu and the title of the node preceding that menu. | |||
| 1002 | 1002 | ||
| 1003 | The master menu list has this form: | 1003 | The master menu list has this form: |
| 1004 | 1004 | ||
| 1005 | \(\(\(... \"entry-1-2\" \"entry-1\"\) \"title-1\"\) | 1005 | (((... \"entry-1-2\" \"entry-1\") \"title-1\") |
| 1006 | \(\(... \"entry-2-2\" \"entry-2-1\"\) \"title-2\"\) | 1006 | ((... \"entry-2-2\" \"entry-2-1\") \"title-2\") |
| 1007 | ...\) | 1007 | ...) |
| 1008 | 1008 | ||
| 1009 | However, there does not need to be a title field." | 1009 | However, there does not need to be a title field." |
| 1010 | 1010 | ||
| @@ -1018,7 +1018,7 @@ However, there does not need to be a title field." | |||
| 1018 | "Format and insert the master menu in the current buffer." | 1018 | "Format and insert the master menu in the current buffer." |
| 1019 | (goto-char (point-min)) | 1019 | (goto-char (point-min)) |
| 1020 | ;; Insert a master menu only after `Top' node and before next node | 1020 | ;; Insert a master menu only after `Top' node and before next node |
| 1021 | ;; \(or include file if there is no next node\). | 1021 | ;; (or include file if there is no next node). |
| 1022 | (unless (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" nil t) | 1022 | (unless (re-search-forward "^@node [ \t]*top[ \t]*\\(,\\|$\\)" nil t) |
| 1023 | (error "This buffer needs a Top node")) | 1023 | (error "This buffer needs a Top node")) |
| 1024 | (let ((first-chapter | 1024 | (let ((first-chapter |
| @@ -1407,7 +1407,7 @@ level in the Texinfo file; when looking for the `Previous' pointer, | |||
| 1407 | the section found will be at the same or higher hierarchical level in | 1407 | the section found will be at the same or higher hierarchical level in |
| 1408 | the Texinfo file; when looking for the `Up' pointer, the section found | 1408 | the Texinfo file; when looking for the `Up' pointer, the section found |
| 1409 | will be at some level higher in the Texinfo file. The fourth argument | 1409 | will be at some level higher in the Texinfo file. The fourth argument |
| 1410 | \(one of `next', `previous', or `up'\) specifies whether to find the | 1410 | \(one of `next', `previous', or `up') specifies whether to find the |
| 1411 | `Next', `Previous', or `Up' pointer." | 1411 | `Next', `Previous', or `Up' pointer." |
| 1412 | (let ((case-fold-search t)) | 1412 | (let ((case-fold-search t)) |
| 1413 | (cond ((eq direction 'next) | 1413 | (cond ((eq direction 'next) |
| @@ -1850,8 +1850,8 @@ chapters." | |||
| 1850 | 1850 | ||
| 1851 | ;; The menu-list has the form: | 1851 | ;; The menu-list has the form: |
| 1852 | ;; | 1852 | ;; |
| 1853 | ;; \(\(\"node-name1\" . \"title1\"\) | 1853 | ;; ((\"node-name1\" . \"title1\") |
| 1854 | ;; \(\"node-name2\" . \"title2\"\) ... \) | 1854 | ;; (\"node-name2\" . \"title2\") ... ) |
| 1855 | ;; | 1855 | ;; |
| 1856 | ;; However, there does not need to be a title field and this function | 1856 | ;; However, there does not need to be a title field and this function |
| 1857 | ;; does not fill it; however a comment tells you how to do so. | 1857 | ;; does not fill it; however a comment tells you how to do so. |
diff --git a/lisp/thingatpt.el b/lisp/thingatpt.el index a9c539b7b87..654bccd0988 100644 --- a/lisp/thingatpt.el +++ b/lisp/thingatpt.el | |||
| @@ -219,7 +219,7 @@ The bounds of THING are determined by `bounds-of-thing-at-point'." | |||
| 219 | 219 | ||
| 220 | (defun thing-at-point-bounds-of-list-at-point () | 220 | (defun thing-at-point-bounds-of-list-at-point () |
| 221 | "Return the bounds of the list at point. | 221 | "Return the bounds of the list at point. |
| 222 | \[Internal function used by `bounds-of-thing-at-point'.]" | 222 | [Internal function used by `bounds-of-thing-at-point'.]" |
| 223 | (save-excursion | 223 | (save-excursion |
| 224 | (let ((opoint (point)) | 224 | (let ((opoint (point)) |
| 225 | (beg (ignore-errors | 225 | (beg (ignore-errors |
diff --git a/lisp/tutorial.el b/lisp/tutorial.el index f8660f55f65..a4a422fbc4f 100644 --- a/lisp/tutorial.el +++ b/lisp/tutorial.el | |||
| @@ -63,8 +63,8 @@ with default Emacs bindings information about this is shown. | |||
| 63 | 63 | ||
| 64 | VALUE should have either of these formats: | 64 | VALUE should have either of these formats: |
| 65 | 65 | ||
| 66 | \(cua-mode) | 66 | (cua-mode) |
| 67 | \(current-binding KEY-FUN DEF-FUN KEY WHERE) | 67 | (current-binding KEY-FUN DEF-FUN KEY WHERE) |
| 68 | 68 | ||
| 69 | Where | 69 | Where |
| 70 | KEY is a key sequence whose standard binding has been changed | 70 | KEY is a key sequence whose standard binding has been changed |
| @@ -135,7 +135,7 @@ options: | |||
| 135 | ;; then save this value in mapsym | 135 | ;; then save this value in mapsym |
| 136 | (setq mapsym s))))) | 136 | (setq mapsym s))))) |
| 137 | (insert | 137 | (insert |
| 138 | (format | 138 | (format-message |
| 139 | "The default Emacs binding for the key %s is the command `%s'. " | 139 | "The default Emacs binding for the key %s is the command `%s'. " |
| 140 | (key-description key) | 140 | (key-description key) |
| 141 | db)) | 141 | db)) |
| @@ -402,8 +402,8 @@ where | |||
| 402 | REMARK is a list with info about rebinding. It has either of | 402 | REMARK is a list with info about rebinding. It has either of |
| 403 | these formats: | 403 | these formats: |
| 404 | 404 | ||
| 405 | \(TEXT cua-mode) | 405 | (TEXT cua-mode) |
| 406 | \(TEXT current-binding KEY-FUN DEF-FUN KEY WHERE) | 406 | (TEXT current-binding KEY-FUN DEF-FUN KEY WHERE) |
| 407 | 407 | ||
| 408 | Here TEXT is a link text to show to the user. The | 408 | Here TEXT is a link text to show to the user. The |
| 409 | rest of the list is used to show information when | 409 | rest of the list is used to show information when |
diff --git a/lisp/type-break.el b/lisp/type-break.el index 85037364016..5f56956c52b 100644 --- a/lisp/type-break.el +++ b/lisp/type-break.el | |||
| @@ -677,7 +677,7 @@ INTERVAL is the full length of an interval (defaults to TIME)." | |||
| 677 | (defun type-break-check () | 677 | (defun type-break-check () |
| 678 | "Ask to take a typing break if appropriate. | 678 | "Ask to take a typing break if appropriate. |
| 679 | This may be the case either because the scheduled time has come \(and the | 679 | This may be the case either because the scheduled time has come \(and the |
| 680 | minimum keystroke threshold has been reached\) or because the maximum | 680 | minimum keystroke threshold has been reached) or because the maximum |
| 681 | keystroke threshold has been exceeded." | 681 | keystroke threshold has been exceeded." |
| 682 | (type-break-file-keystroke-count) | 682 | (type-break-file-keystroke-count) |
| 683 | (let* ((min-threshold (car type-break-keystroke-threshold)) | 683 | (let* ((min-threshold (car type-break-keystroke-threshold)) |
diff --git a/lisp/url/url-cookie.el b/lisp/url/url-cookie.el index a7b3d16d46d..df9cf621037 100644 --- a/lisp/url/url-cookie.el +++ b/lisp/url/url-cookie.el | |||
| @@ -264,7 +264,7 @@ telling Microsoft that." | |||
| 264 | (and expires | 264 | (and expires |
| 265 | (string-match | 265 | (string-match |
| 266 | (concat "^[^,]+, +\\(..\\)-\\(...\\)-\\(..\\) +" | 266 | (concat "^[^,]+, +\\(..\\)-\\(...\\)-\\(..\\) +" |
| 267 | "\\(..:..:..\\) +\\[*\\([^\]]+\\)\\]*$") | 267 | "\\(..:..:..\\) +\\[*\\([^]]+\\)\\]*$") |
| 268 | expires) | 268 | expires) |
| 269 | (setq expires (concat (match-string 1 expires) " " | 269 | (setq expires (concat (match-string 1 expires) " " |
| 270 | (match-string 2 expires) " " | 270 | (match-string 2 expires) " " |
| @@ -356,7 +356,7 @@ to run the `url-cookie-setup-save-timer' function manually." | |||
| 356 | 356 | ||
| 357 | (defun url-cookie-list () | 357 | (defun url-cookie-list () |
| 358 | "Display a buffer listing the current URL cookies, if there are any. | 358 | "Display a buffer listing the current URL cookies, if there are any. |
| 359 | Use \\<url-cookie-mode-map>\\\[url-cookie-delete] to remove cookies." | 359 | Use \\<url-cookie-mode-map>\\[url-cookie-delete] to remove cookies." |
| 360 | (interactive) | 360 | (interactive) |
| 361 | (when (and (null url-cookie-secure-storage) | 361 | (when (and (null url-cookie-secure-storage) |
| 362 | (null url-cookie-storage)) | 362 | (null url-cookie-storage)) |
diff --git a/lisp/url/url-dav.el b/lisp/url/url-dav.el index 61ca0885ec5..1cf6b8209f9 100644 --- a/lisp/url/url-dav.el +++ b/lisp/url/url-dav.el | |||
| @@ -495,7 +495,7 @@ make sure you are comfortable with it leaking to the outside world.") | |||
| 495 | (defun url-dav-lock-resource (url exclusive &optional depth) | 495 | (defun url-dav-lock-resource (url exclusive &optional depth) |
| 496 | "Request a lock on URL. If EXCLUSIVE is non-nil, get an exclusive lock. | 496 | "Request a lock on URL. If EXCLUSIVE is non-nil, get an exclusive lock. |
| 497 | Optional 3rd argument DEPTH says how deep the lock should go, default is 0 | 497 | Optional 3rd argument DEPTH says how deep the lock should go, default is 0 |
| 498 | \(lock only the resource and none of its children\). | 498 | \(lock only the resource and none of its children). |
| 499 | 499 | ||
| 500 | Returns a cons-cell of (SUCCESSFUL-RESULTS . FAILURE-RESULTS). | 500 | Returns a cons-cell of (SUCCESSFUL-RESULTS . FAILURE-RESULTS). |
| 501 | SUCCESSFUL-RESULTS is a list of (URL STATUS locktoken). | 501 | SUCCESSFUL-RESULTS is a list of (URL STATUS locktoken). |
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el index cc0e4f8f8d6..ab61802a6bb 100644 --- a/lisp/url/url-gw.el +++ b/lisp/url/url-gw.el | |||
| @@ -39,7 +39,7 @@ | |||
| 39 | :group 'url-gateway) | 39 | :group 'url-gateway) |
| 40 | 40 | ||
| 41 | (defcustom url-gateway-prompt-pattern | 41 | (defcustom url-gateway-prompt-pattern |
| 42 | "^[^#$%>;]*[#$%>;] *" ;; "bash\\|\$ *\r?$\\|> *\r?" | 42 | "^[^#$%>;]*[#$%>;] *" ;; "bash\\|[$>] *\r?$" |
| 43 | "A regular expression matching a shell prompt." | 43 | "A regular expression matching a shell prompt." |
| 44 | :type 'regexp | 44 | :type 'regexp |
| 45 | :group 'url-gateway) | 45 | :group 'url-gateway) |
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el index 001a7831ad5..845195e7d4c 100644 --- a/lisp/url/url-handlers.el +++ b/lisp/url/url-handlers.el | |||
| @@ -117,9 +117,9 @@ When URL Handler mode is enabled, this regular expression is | |||
| 117 | added to `file-name-handler-alist'. | 117 | added to `file-name-handler-alist'. |
| 118 | 118 | ||
| 119 | Some valid URL protocols just do not make sense to visit | 119 | Some valid URL protocols just do not make sense to visit |
| 120 | interactively \(about, data, info, irc, mailto, etc\). This | 120 | interactively \(about, data, info, irc, mailto, etc.). This |
| 121 | regular expression avoids conflicts with local files that look | 121 | regular expression avoids conflicts with local files that look |
| 122 | like URLs \(Gnus is particularly bad at this\)." | 122 | like URLs \(Gnus is particularly bad at this)." |
| 123 | :group 'url | 123 | :group 'url |
| 124 | :type 'regexp | 124 | :type 'regexp |
| 125 | :version "25.1" | 125 | :version "25.1" |
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 6a7d8e2c947..7367a1eb3e9 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el | |||
| @@ -25,8 +25,8 @@ | |||
| 25 | 25 | ||
| 26 | ;;; Code: | 26 | ;;; Code: |
| 27 | 27 | ||
| 28 | (require 'cl-lib) | ||
| 28 | (eval-when-compile | 29 | (eval-when-compile |
| 29 | (require 'cl-lib) | ||
| 30 | (require 'subr-x)) | 30 | (require 'subr-x)) |
| 31 | 31 | ||
| 32 | (defvar url-callback-arguments) | 32 | (defvar url-callback-arguments) |
| @@ -646,6 +646,12 @@ should be shown to the user." | |||
| 646 | ;; compute the redirection relative to the URL of the proxy. | 646 | ;; compute the redirection relative to the URL of the proxy. |
| 647 | (setq redirect-uri | 647 | (setq redirect-uri |
| 648 | (url-expand-file-name redirect-uri url-http-target-url))) | 648 | (url-expand-file-name redirect-uri url-http-target-url))) |
| 649 | ;; Do not automatically include an authorization header in the | ||
| 650 | ;; redirect. If needed it will be regenerated by the relevant | ||
| 651 | ;; auth scheme when the new request happens. | ||
| 652 | (setq url-http-extra-headers | ||
| 653 | (cl-remove "Authorization" | ||
| 654 | url-http-extra-headers :key 'car :test 'equal)) | ||
| 649 | (let ((url-request-method url-http-method) | 655 | (let ((url-request-method url-http-method) |
| 650 | (url-request-data url-http-data) | 656 | (url-request-data url-http-data) |
| 651 | (url-request-extra-headers url-http-extra-headers)) | 657 | (url-request-extra-headers url-http-extra-headers)) |
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el index d120d052215..9ab8d75fbb5 100644 --- a/lisp/vc/add-log.el +++ b/lisp/vc/add-log.el | |||
| @@ -158,7 +158,7 @@ use the file's name relative to the directory of the change log file." | |||
| 158 | :group 'change-log) | 158 | :group 'change-log) |
| 159 | 159 | ||
| 160 | (defcustom change-log-version-number-regexp-list | 160 | (defcustom change-log-version-number-regexp-list |
| 161 | (let ((re "\\([0-9]+\.[0-9.]+\\)")) | 161 | (let ((re "\\([0-9]+\\.[0-9.]+\\)")) |
| 162 | (list | 162 | (list |
| 163 | ;; (defconst ad-version "2.15" | 163 | ;; (defconst ad-version "2.15" |
| 164 | (concat "^(def[^ \t\n]+[ \t]+[^ \t\n][ \t]\"" re) | 164 | (concat "^(def[^ \t\n]+[ \t]+[^ \t\n][ \t]\"" re) |
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el index 37ed4a53b44..464e3754eb9 100644 --- a/lisp/vc/diff-mode.el +++ b/lisp/vc/diff-mode.el | |||
| @@ -1427,8 +1427,8 @@ modified lines of the diff." | |||
| 1427 | (diff-hunk-style))))) | 1427 | (diff-hunk-style))))) |
| 1428 | (set (make-local-variable 'whitespace-trailing-regexp) | 1428 | (set (make-local-variable 'whitespace-trailing-regexp) |
| 1429 | (if (eq style 'context) | 1429 | (if (eq style 'context) |
| 1430 | "^[-\+!] .*?\\([\t ]+\\)$" | 1430 | "^[-+!] .*?\\([\t ]+\\)$" |
| 1431 | "^[-\+!<>].*?\\([\t ]+\\)$")))) | 1431 | "^[-+!<>].*?\\([\t ]+\\)$")))) |
| 1432 | 1432 | ||
| 1433 | (defun diff-delete-if-empty () | 1433 | (defun diff-delete-if-empty () |
| 1434 | ;; An empty diff file means there's no more diffs to integrate, so we | 1434 | ;; An empty diff file means there's no more diffs to integrate, so we |
diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el index 352892c945a..7647544d65d 100644 --- a/lisp/vc/ediff-diff.el +++ b/lisp/vc/ediff-diff.el | |||
| @@ -168,7 +168,7 @@ This variable can be set either in .emacs or toggled interactively. | |||
| 168 | Use `setq-default' if setting it in .emacs") | 168 | Use `setq-default' if setting it in .emacs") |
| 169 | 169 | ||
| 170 | (ediff-defvar-local ediff-auto-refine-limit 14000 | 170 | (ediff-defvar-local ediff-auto-refine-limit 14000 |
| 171 | "Auto-refine only the regions of this size \(in bytes\) or less.") | 171 | "Auto-refine only the regions of this size (in bytes) or less.") |
| 172 | 172 | ||
| 173 | ;;; General | 173 | ;;; General |
| 174 | 174 | ||
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index 8c935bfab19..bf211599b9f 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el | |||
| @@ -776,7 +776,7 @@ TYPE-OF-EMACS is either 'xemacs or 'emacs." | |||
| 776 | 776 | ||
| 777 | ;; A var local to each control panel buffer. Indicates highlighting style | 777 | ;; A var local to each control panel buffer. Indicates highlighting style |
| 778 | ;; in effect for this buffer: `face', `ascii', | 778 | ;; in effect for this buffer: `face', `ascii', |
| 779 | ;; `off' -- turned off \(on a dumb terminal only\). | 779 | ;; `off' -- turned off (on a dumb terminal only). |
| 780 | (ediff-defvar-local ediff-highlighting-style | 780 | (ediff-defvar-local ediff-highlighting-style |
| 781 | (if (and (ediff-has-face-support-p) ediff-use-faces) 'face 'ascii) | 781 | (if (and (ediff-has-face-support-p) ediff-use-faces) 'face 'ascii) |
| 782 | "") | 782 | "") |
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el index b45d533caea..a3b8bf0a28a 100644 --- a/lisp/vc/ediff-ptch.el +++ b/lisp/vc/ediff-ptch.el | |||
| @@ -90,14 +90,14 @@ See also `ediff-backup-specs'." | |||
| 90 | ;; traditional `patch' | 90 | ;; traditional `patch' |
| 91 | (format "-b %s" ediff-backup-extension)))) | 91 | (format "-b %s" ediff-backup-extension)))) |
| 92 | "Backup directives to pass to the patch program. | 92 | "Backup directives to pass to the patch program. |
| 93 | Ediff requires that the old version of the file \(before applying the patch\) | 93 | Ediff requires that the old version of the file \(before applying the patch) |
| 94 | be saved in a file named `the-patch-file.extension'. Usually `extension' is | 94 | be saved in a file named `the-patch-file.extension'. Usually `extension' is |
| 95 | `.orig', but this can be changed by the user and may depend on the system. | 95 | `.orig', but this can be changed by the user and may depend on the system. |
| 96 | Therefore, Ediff needs to know the backup extension used by the patch program. | 96 | Therefore, Ediff needs to know the backup extension used by the patch program. |
| 97 | 97 | ||
| 98 | Some versions of the patch program let you specify `-b backup-extension'. | 98 | Some versions of the patch program let you specify `-b backup-extension'. |
| 99 | Other versions only permit `-b', which assumes the extension `.orig' | 99 | Other versions only permit `-b', which assumes the extension `.orig' |
| 100 | \(in which case ediff-backup-extension MUST be also `.orig'\). The latest | 100 | \(in which case ediff-backup-extension MUST be also `.orig'). The latest |
| 101 | versions of GNU patch require `-b -z backup-extension'. | 101 | versions of GNU patch require `-b -z backup-extension'. |
| 102 | 102 | ||
| 103 | Note that both `ediff-backup-extension' and `ediff-backup-specs' | 103 | Note that both `ediff-backup-extension' and `ediff-backup-specs' |
| @@ -333,7 +333,7 @@ program." | |||
| 333 | (ediff-with-current-buffer standard-output | 333 | (ediff-with-current-buffer standard-output |
| 334 | (fundamental-mode)) | 334 | (fundamental-mode)) |
| 335 | (princ | 335 | (princ |
| 336 | (format " | 336 | (format-message " |
| 337 | The patch file contains a context diff for | 337 | The patch file contains a context diff for |
| 338 | %s | 338 | %s |
| 339 | %s | 339 | %s |
| @@ -342,7 +342,7 @@ to be patched on your system. If you know the correct file name, | |||
| 342 | please enter it now. | 342 | please enter it now. |
| 343 | 343 | ||
| 344 | If you don't know and still would like to apply patches to | 344 | If you don't know and still would like to apply patches to |
| 345 | other files, enter /dev/null | 345 | other files, enter `/dev/null'. |
| 346 | " | 346 | " |
| 347 | (substring (car proposed-file-names) 6) | 347 | (substring (car proposed-file-names) 6) |
| 348 | (substring (cdr proposed-file-names) 6)))) | 348 | (substring (cdr proposed-file-names) 6)))) |
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el index bf5bb5cd5da..e664f9fdac3 100644 --- a/lisp/vc/ediff-util.el +++ b/lisp/vc/ediff-util.el | |||
| @@ -1500,7 +1500,7 @@ Used in ediff-windows/regions only." | |||
| 1500 | (select-window wind))) | 1500 | (select-window wind))) |
| 1501 | 1501 | ||
| 1502 | (defun ediff-scroll-vertically (&optional arg) | 1502 | (defun ediff-scroll-vertically (&optional arg) |
| 1503 | "Vertically scroll buffers A, B \(and C if appropriate\). | 1503 | "Vertically scroll buffers A, B (and C if appropriate). |
| 1504 | With optional argument ARG, scroll ARG lines; otherwise scroll by nearly | 1504 | With optional argument ARG, scroll ARG lines; otherwise scroll by nearly |
| 1505 | the one half of the height of window-A." | 1505 | the one half of the height of window-A." |
| 1506 | (interactive "P") | 1506 | (interactive "P") |
| @@ -1544,7 +1544,7 @@ the one half of the height of window-A." | |||
| 1544 | 1544 | ||
| 1545 | 1545 | ||
| 1546 | (defun ediff-scroll-horizontally (&optional arg) | 1546 | (defun ediff-scroll-horizontally (&optional arg) |
| 1547 | "Horizontally scroll buffers A, B \(and C if appropriate\). | 1547 | "Horizontally scroll buffers A, B (and C if appropriate). |
| 1548 | If an argument is given, that is how many columns are scrolled, else nearly | 1548 | If an argument is given, that is how many columns are scrolled, else nearly |
| 1549 | the width of the A/B/C windows." | 1549 | the width of the A/B/C windows." |
| 1550 | (interactive "P") | 1550 | (interactive "P") |
| @@ -1822,7 +1822,7 @@ If the prefix is negative, count differences from the end." | |||
| 1822 | 1822 | ||
| 1823 | (defun ediff-jump-to-difference-at-point (arg) | 1823 | (defun ediff-jump-to-difference-at-point (arg) |
| 1824 | "Go to difference closest to the point in buffer A, B, or C. | 1824 | "Go to difference closest to the point in buffer A, B, or C. |
| 1825 | The buffer depends on last command character \(a, b, or c\) that invoked this | 1825 | The buffer depends on last command character \(a, b, or c) that invoked this |
| 1826 | command. For instance, if the command was `ga' then the point value in buffer | 1826 | command. For instance, if the command was `ga' then the point value in buffer |
| 1827 | A is used. | 1827 | A is used. |
| 1828 | With a prefix argument, synchronize all files around the current point position | 1828 | With a prefix argument, synchronize all files around the current point position |
| @@ -1921,7 +1921,7 @@ in the specified buffer." | |||
| 1921 | ;;; Copying diffs. | 1921 | ;;; Copying diffs. |
| 1922 | 1922 | ||
| 1923 | (defun ediff-diff-to-diff (arg &optional keys) | 1923 | (defun ediff-diff-to-diff (arg &optional keys) |
| 1924 | "Copy buffer-X'th difference region to buffer Y \(X,Y are A, B, or C\). | 1924 | "Copy buffer-X'th difference region to buffer Y (X,Y are A, B, or C). |
| 1925 | If numerical prefix argument, copy the difference specified in the arg. | 1925 | If numerical prefix argument, copy the difference specified in the arg. |
| 1926 | Otherwise, copy the difference given by `ediff-current-difference'. | 1926 | Otherwise, copy the difference given by `ediff-current-difference'. |
| 1927 | This command assumes it is bound to a 2-character key sequence, `ab', `ba', | 1927 | This command assumes it is bound to a 2-character key sequence, `ab', `ba', |
| @@ -1986,7 +1986,7 @@ ARG is a prefix argument. If nil, copy the current difference region." | |||
| 1986 | 1986 | ||
| 1987 | 1987 | ||
| 1988 | 1988 | ||
| 1989 | ;; Copy diff N from FROM-BUF-TYPE \(given as A, B or C\) to TO-BUF-TYPE. | 1989 | ;; Copy diff N from FROM-BUF-TYPE (given as A, B or C) to TO-BUF-TYPE. |
| 1990 | ;; If optional DO-NOT-SAVE is non-nil, do not save the old value of the | 1990 | ;; If optional DO-NOT-SAVE is non-nil, do not save the old value of the |
| 1991 | ;; target diff. This is used in merging, when constructing the merged | 1991 | ;; target diff. This is used in merging, when constructing the merged |
| 1992 | ;; version. | 1992 | ;; version. |
| @@ -2065,7 +2065,7 @@ ARG is a prefix argument. If nil, copy the current difference region." | |||
| 2065 | (message "%s" messg)) | 2065 | (message "%s" messg)) |
| 2066 | )) | 2066 | )) |
| 2067 | 2067 | ||
| 2068 | ;; Save Nth diff of buffer BUF-TYPE \(A, B, or C\). | 2068 | ;; Save Nth diff of buffer BUF-TYPE (A, B, or C). |
| 2069 | ;; That is to say, the Nth diff on the `ediff-killed-diffs-alist'. REG | 2069 | ;; That is to say, the Nth diff on the `ediff-killed-diffs-alist'. REG |
| 2070 | ;; is the region to save. It is redundant here, but is passed anyway, for | 2070 | ;; is the region to save. It is redundant here, but is passed anyway, for |
| 2071 | ;; convenience. | 2071 | ;; convenience. |
| @@ -2385,10 +2385,10 @@ the number seen by the user." | |||
| 2385 | "Finish an Ediff session and exit Ediff. | 2385 | "Finish an Ediff session and exit Ediff. |
| 2386 | Unselects the selected difference, if any, restores the read-only and modified | 2386 | Unselects the selected difference, if any, restores the read-only and modified |
| 2387 | flags of the compared file buffers, kills Ediff buffers for this session | 2387 | flags of the compared file buffers, kills Ediff buffers for this session |
| 2388 | \(but not buffers A, B, C\). | 2388 | \(but not buffers A, B, C). |
| 2389 | 2389 | ||
| 2390 | If `ediff-keep-variants' is nil, the user will be asked whether the buffers | 2390 | If `ediff-keep-variants' is nil, the user will be asked whether the buffers |
| 2391 | containing the variants should be removed \(if they haven't been modified\). | 2391 | containing the variants should be removed \(if they haven't been modified). |
| 2392 | If it is t, they will be preserved unconditionally. A prefix argument, | 2392 | If it is t, they will be preserved unconditionally. A prefix argument, |
| 2393 | temporarily reverses the meaning of this variable." | 2393 | temporarily reverses the meaning of this variable." |
| 2394 | (interactive "P") | 2394 | (interactive "P") |
| @@ -3312,7 +3312,7 @@ and `wd' saves the diff output. | |||
| 3312 | 3312 | ||
| 3313 | With prefix argument, `wd' saves plain diff output. | 3313 | With prefix argument, `wd' saves plain diff output. |
| 3314 | Without an argument, it saves customized diff argument, if available | 3314 | Without an argument, it saves customized diff argument, if available |
| 3315 | \(and plain output, if customized output was not generated\)." | 3315 | \(and plain output, if customized output was not generated)." |
| 3316 | (interactive "P") | 3316 | (interactive "P") |
| 3317 | (ediff-barf-if-not-control-buffer) | 3317 | (ediff-barf-if-not-control-buffer) |
| 3318 | (ediff-compute-custom-diffs-maybe) | 3318 | (ediff-compute-custom-diffs-maybe) |
diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el index c31df824996..e0887f03b62 100644 --- a/lisp/vc/ediff-wind.el +++ b/lisp/vc/ediff-wind.el | |||
| @@ -211,7 +211,7 @@ responsibility." | |||
| 211 | "Function to call to determine the desired location for the control panel. | 211 | "Function to call to determine the desired location for the control panel. |
| 212 | Expects three parameters: the control buffer, the desired width and height | 212 | Expects three parameters: the control buffer, the desired width and height |
| 213 | of the control frame. It returns an association list | 213 | of the control frame. It returns an association list |
| 214 | of the form \(\(top . <position>\) \(left . <position>\)\)" | 214 | of the form \((top . <position>) \(left . <position>))" |
| 215 | :type 'function | 215 | :type 'function |
| 216 | :group 'ediff-window) | 216 | :group 'ediff-window) |
| 217 | 217 | ||
| @@ -432,7 +432,7 @@ into icons, regardless of the window manager." | |||
| 432 | three-way-comparison ediff-3way-comparison-job)) | 432 | three-way-comparison ediff-3way-comparison-job)) |
| 433 | ;; if in minibuffer go somewhere else | 433 | ;; if in minibuffer go somewhere else |
| 434 | (if (save-match-data | 434 | (if (save-match-data |
| 435 | (string-match "\*Minibuf-" (buffer-name (window-buffer)))) | 435 | (string-match "\\*Minibuf-" (buffer-name (window-buffer)))) |
| 436 | (select-window (next-window nil 'ignore-minibuf))) | 436 | (select-window (next-window nil 'ignore-minibuf))) |
| 437 | (delete-other-windows) | 437 | (delete-other-windows) |
| 438 | (set-window-dedicated-p (selected-window) nil) | 438 | (set-window-dedicated-p (selected-window) nil) |
diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el index 65ca0bd4408..3a2d1e48aac 100644 --- a/lisp/vc/ediff.el +++ b/lisp/vc/ediff.el | |||
| @@ -963,7 +963,7 @@ If WIND-B is nil, use window next to WIND-A." | |||
| 963 | ;;;###autoload | 963 | ;;;###autoload |
| 964 | (defun ediff-regions-wordwise (buffer-A buffer-B &optional startup-hooks) | 964 | (defun ediff-regions-wordwise (buffer-A buffer-B &optional startup-hooks) |
| 965 | "Run Ediff on a pair of regions in specified buffers. | 965 | "Run Ediff on a pair of regions in specified buffers. |
| 966 | Regions \(i.e., point and mark\) can be set in advance or marked interactively. | 966 | Regions (i.e., point and mark) can be set in advance or marked interactively. |
| 967 | This function is effective only for relatively small regions, up to 200 | 967 | This function is effective only for relatively small regions, up to 200 |
| 968 | lines. For large regions, use `ediff-regions-linewise'." | 968 | lines. For large regions, use `ediff-regions-linewise'." |
| 969 | (interactive | 969 | (interactive |
| @@ -1003,7 +1003,7 @@ lines. For large regions, use `ediff-regions-linewise'." | |||
| 1003 | ;;;###autoload | 1003 | ;;;###autoload |
| 1004 | (defun ediff-regions-linewise (buffer-A buffer-B &optional startup-hooks) | 1004 | (defun ediff-regions-linewise (buffer-A buffer-B &optional startup-hooks) |
| 1005 | "Run Ediff on a pair of regions in specified buffers. | 1005 | "Run Ediff on a pair of regions in specified buffers. |
| 1006 | Regions \(i.e., point and mark\) can be set in advance or marked interactively. | 1006 | Regions (i.e., point and mark) can be set in advance or marked interactively. |
| 1007 | Each region is enlarged to contain full lines. | 1007 | Each region is enlarged to contain full lines. |
| 1008 | This function is effective for large regions, over 100-200 | 1008 | This function is effective for large regions, over 100-200 |
| 1009 | lines. For small regions, use `ediff-regions-wordwise'." | 1009 | lines. For small regions, use `ediff-regions-wordwise'." |
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el index acbd9c0cd9f..9857116e2d4 100644 --- a/lisp/vc/log-edit.el +++ b/lisp/vc/log-edit.el | |||
| @@ -905,7 +905,7 @@ Return non-nil if it is." | |||
| 905 | The return value looks like this: | 905 | The return value looks like this: |
| 906 | (LOGBUFFER (ENTRYSTART ENTRYEND) ...) | 906 | (LOGBUFFER (ENTRYSTART ENTRYEND) ...) |
| 907 | where LOGBUFFER is the name of the ChangeLog buffer, and each | 907 | where LOGBUFFER is the name of the ChangeLog buffer, and each |
| 908 | \(ENTRYSTART . ENTRYEND\) pair is a buffer region." | 908 | \(ENTRYSTART . ENTRYEND) pair is a buffer region." |
| 909 | (let ((changelog-file-name | 909 | (let ((changelog-file-name |
| 910 | (let ((default-directory | 910 | (let ((default-directory |
| 911 | (file-name-directory (expand-file-name file))) | 911 | (file-name-directory (expand-file-name file))) |
diff --git a/lisp/vc/vc-annotate.el b/lisp/vc/vc-annotate.el index 3a50c9b6a2d..ab3161e11e6 100644 --- a/lisp/vc/vc-annotate.el +++ b/lisp/vc/vc-annotate.el | |||
| @@ -269,7 +269,7 @@ cover the range from the oldest annotation to the newest." | |||
| 269 | (/ (- (if full newest current) oldest) | 269 | (/ (- (if full newest current) oldest) |
| 270 | (vc-annotate-oldest-in-map vc-annotate-color-map)) | 270 | (vc-annotate-oldest-in-map vc-annotate-color-map)) |
| 271 | (if full newest)) | 271 | (if full newest)) |
| 272 | (message "Redisplaying annotation...done \(%s\)" | 272 | (message "Redisplaying annotation...done (%s)" |
| 273 | (if full | 273 | (if full |
| 274 | (format "Spanned from %.1f to %.1f days old" | 274 | (format "Spanned from %.1f to %.1f days old" |
| 275 | (- current oldest) | 275 | (- current oldest) |
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index 5f8dd0bf0e8..9b2711d8146 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el | |||
| @@ -649,7 +649,7 @@ or a superior directory.") | |||
| 649 | "" (replace-regexp-in-string | 649 | "" (replace-regexp-in-string |
| 650 | "\n[ \t]?" " " str))))) | 650 | "\n[ \t]?" " " str))))) |
| 651 | 651 | ||
| 652 | (defun vc-bzr-checkin (files comment) | 652 | (defun vc-bzr-checkin (files comment &optional _rev) |
| 653 | "Check FILES in to bzr with log message COMMENT." | 653 | "Check FILES in to bzr with log message COMMENT." |
| 654 | (apply 'vc-bzr-command "commit" nil 0 files | 654 | (apply 'vc-bzr-command "commit" nil 0 files |
| 655 | (cons "-m" (log-edit-extract-headers | 655 | (cons "-m" (log-edit-extract-headers |
diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el index 0aa9c5a1e22..5f5807fb3c6 100644 --- a/lisp/vc/vc-cvs.el +++ b/lisp/vc/vc-cvs.el | |||
| @@ -107,7 +107,7 @@ switches." | |||
| 107 | :version "25.1" | 107 | :version "25.1" |
| 108 | :group 'vc-cvs) | 108 | :group 'vc-cvs) |
| 109 | 109 | ||
| 110 | (defcustom vc-cvs-header '("\$Id\$") | 110 | (defcustom vc-cvs-header '("$Id\ $") |
| 111 | "Header keywords to be inserted by `vc-insert-headers'." | 111 | "Header keywords to be inserted by `vc-insert-headers'." |
| 112 | :version "24.1" ; no longer consult the obsolete vc-header-alist | 112 | :version "24.1" ; no longer consult the obsolete vc-header-alist |
| 113 | :type '(repeat string) | 113 | :type '(repeat string) |
| @@ -332,38 +332,20 @@ its parents." | |||
| 332 | (directory-file-name dir)))) | 332 | (directory-file-name dir)))) |
| 333 | (eq dir t))) | 333 | (eq dir t))) |
| 334 | 334 | ||
| 335 | ;; vc-cvs-checkin used to take a 'rev' second argument that allowed | 335 | (defun vc-cvs-checkin (files comment &optional rev) |
| 336 | ;; checking in onto a specified branch tip rather than the current | ||
| 337 | ;; default branch, but nothing in the entire rest of VC exercised | ||
| 338 | ;; this code. Removing it simplifies the backend interface for all | ||
| 339 | ;; modes. | ||
| 340 | ;; | ||
| 341 | ;; Here's the setup code preserved in amber, in case the logic needs | ||
| 342 | ;; to be broken out into a method someday; (if rev (concat "-r" rev)) | ||
| 343 | ;; used to be part of the switches passed to vc-cvs-command. | ||
| 344 | ;; | ||
| 345 | ;; (unless (or (not rev) (vc-cvs-valid-revision-number-p rev)) | ||
| 346 | ;; (if (not (vc-cvs-valid-symbolic-tag-name-p rev)) | ||
| 347 | ;; (error "%s is not a valid symbolic tag name" rev) | ||
| 348 | ;; ;; If the input revision is a valid symbolic tag name, we create it | ||
| 349 | ;; ;; as a branch, commit and switch to it. | ||
| 350 | ;; (apply 'vc-cvs-command nil 0 files "tag" "-b" (list rev)) | ||
| 351 | ;; (apply 'vc-cvs-command nil 0 files "update" "-r" (list rev)) | ||
| 352 | ;; (mapc (lambda (file) (vc-file-setprop file 'vc-cvs-sticky-tag rev)) | ||
| 353 | ;; files))) | ||
| 354 | ;; | ||
| 355 | ;; The following postamble cleaned up after the branch change: | ||
| 356 | ;; | ||
| 357 | ;; ;; if this was an explicit check-in (does not include creation of | ||
| 358 | ;; ;; a branch), remove the sticky tag. | ||
| 359 | ;; (if (and rev (not (vc-cvs-valid-symbolic-tag-name-p rev))) | ||
| 360 | ;; (vc-cvs-command nil 0 files "update" "-A")))) | ||
| 361 | ;; files))) | ||
| 362 | ;; | ||
| 363 | (defun vc-cvs-checkin (files comment) | ||
| 364 | "CVS-specific version of `vc-backend-checkin'." | 336 | "CVS-specific version of `vc-backend-checkin'." |
| 337 | (unless (or (not rev) (vc-cvs-valid-revision-number-p rev)) | ||
| 338 | (if (not (vc-cvs-valid-symbolic-tag-name-p rev)) | ||
| 339 | (error "%s is not a valid symbolic tag name" rev) | ||
| 340 | ;; If the input revision is a valid symbolic tag name, we create it | ||
| 341 | ;; as a branch, commit and switch to it. | ||
| 342 | (apply 'vc-cvs-command nil 0 files "tag" "-b" (list rev)) | ||
| 343 | (apply 'vc-cvs-command nil 0 files "update" "-r" (list rev)) | ||
| 344 | (mapc (lambda (file) (vc-file-setprop file 'vc-cvs-sticky-tag rev)) | ||
| 345 | files))) | ||
| 365 | (let ((status (apply 'vc-cvs-command nil 1 files | 346 | (let ((status (apply 'vc-cvs-command nil 1 files |
| 366 | "ci" (concat "-m" comment) | 347 | "ci" (if rev (concat "-r" rev)) |
| 348 | (concat "-m" comment) | ||
| 367 | (vc-switches 'CVS 'checkin)))) | 349 | (vc-switches 'CVS 'checkin)))) |
| 368 | (set-buffer "*vc*") | 350 | (set-buffer "*vc*") |
| 369 | (goto-char (point-min)) | 351 | (goto-char (point-min)) |
| @@ -394,7 +376,11 @@ its parents." | |||
| 394 | ;; tell it from the permissions of the file (see | 376 | ;; tell it from the permissions of the file (see |
| 395 | ;; vc-cvs-checkout-model). | 377 | ;; vc-cvs-checkout-model). |
| 396 | (mapc (lambda (file) (vc-file-setprop file 'vc-checkout-model nil)) | 378 | (mapc (lambda (file) (vc-file-setprop file 'vc-checkout-model nil)) |
| 397 | files))) | 379 | files) |
| 380 | ;; if this was an explicit check-in (does not include creation of | ||
| 381 | ;; a branch), remove the sticky tag. | ||
| 382 | (if (and rev (not (vc-cvs-valid-symbolic-tag-name-p rev))) | ||
| 383 | (vc-cvs-command nil 0 files "update" "-A")))) | ||
| 398 | 384 | ||
| 399 | (defun vc-cvs-find-revision (file rev buffer) | 385 | (defun vc-cvs-find-revision (file rev buffer) |
| 400 | (apply 'vc-cvs-command | 386 | (apply 'vc-cvs-command |
| @@ -932,7 +918,7 @@ state." | |||
| 932 | (when (and full | 918 | (when (and full |
| 933 | (re-search-forward | 919 | (re-search-forward |
| 934 | "\\(RCS Version\\|RCS Revision\\|Repository revision\\):\ | 920 | "\\(RCS Version\\|RCS Revision\\|Repository revision\\):\ |
| 935 | \[\t ]+\\([0-9.]+\\)" | 921 | [\t ]+\\([0-9.]+\\)" |
| 936 | nil t)) | 922 | nil t)) |
| 937 | (vc-file-setprop file 'vc-latest-revision (match-string 2))) | 923 | (vc-file-setprop file 'vc-latest-revision (match-string 2))) |
| 938 | (vc-file-setprop | 924 | (vc-file-setprop |
diff --git a/lisp/vc/vc-dav.el b/lisp/vc/vc-dav.el index 3326f2964c9..880e14be63e 100644 --- a/lisp/vc/vc-dav.el +++ b/lisp/vc/vc-dav.el | |||
| @@ -82,7 +82,7 @@ See `vc-checkout-model' for a list of possible values." | |||
| 82 | ;; Do we need to do anything here? FIXME? | 82 | ;; Do we need to do anything here? FIXME? |
| 83 | ) | 83 | ) |
| 84 | 84 | ||
| 85 | (defun vc-dav-checkin (url comment) | 85 | (defun vc-dav-checkin (url comment &optional _rev) |
| 86 | "Commit changes in URL to WebDAV. COMMENT is used as a check-in comment." | 86 | "Commit changes in URL to WebDAV. COMMENT is used as a check-in comment." |
| 87 | ;; This should PUT the resource and release any locks that we hold. | 87 | ;; This should PUT the resource and release any locks that we hold. |
| 88 | ) | 88 | ) |
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 8a0f5547c4d..2f0439365e8 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el | |||
| @@ -674,7 +674,7 @@ If toggling on, also insert its message into the buffer." | |||
| 674 | "Major mode for editing Git log messages. | 674 | "Major mode for editing Git log messages. |
| 675 | It is based on `log-edit-mode', and has Git-specific extensions.") | 675 | It is based on `log-edit-mode', and has Git-specific extensions.") |
| 676 | 676 | ||
| 677 | (defun vc-git-checkin (files comment) | 677 | (defun vc-git-checkin (files comment &optional _rev) |
| 678 | (let* ((file1 (or (car files) default-directory)) | 678 | (let* ((file1 (or (car files) default-directory)) |
| 679 | (root (vc-git-root file1)) | 679 | (root (vc-git-root file1)) |
| 680 | (default-directory (expand-file-name root)) | 680 | (default-directory (expand-file-name root)) |
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el index f634e2eac53..49573986125 100644 --- a/lisp/vc/vc-hg.el +++ b/lisp/vc/vc-hg.el | |||
| @@ -465,7 +465,7 @@ Optional arg REVISION is a revision to annotate from." | |||
| 465 | 465 | ||
| 466 | (declare-function log-edit-extract-headers "log-edit" (headers string)) | 466 | (declare-function log-edit-extract-headers "log-edit" (headers string)) |
| 467 | 467 | ||
| 468 | (defun vc-hg-checkin (files comment) | 468 | (defun vc-hg-checkin (files comment &optional _rev) |
| 469 | "Hg-specific version of `vc-backend-checkin'. | 469 | "Hg-specific version of `vc-backend-checkin'. |
| 470 | REV is ignored." | 470 | REV is ignored." |
| 471 | (apply 'vc-hg-command nil 0 files | 471 | (apply 'vc-hg-command nil 0 files |
diff --git a/lisp/vc/vc-mtn.el b/lisp/vc/vc-mtn.el index 685ef3b6742..b56a08f2a9e 100644 --- a/lisp/vc/vc-mtn.el +++ b/lisp/vc/vc-mtn.el | |||
| @@ -199,7 +199,7 @@ switches." | |||
| 199 | 199 | ||
| 200 | (declare-function log-edit-extract-headers "log-edit" (headers string)) | 200 | (declare-function log-edit-extract-headers "log-edit" (headers string)) |
| 201 | 201 | ||
| 202 | (defun vc-mtn-checkin (files comment) | 202 | (defun vc-mtn-checkin (files comment &optional _rev) |
| 203 | (apply 'vc-mtn-command nil 0 files | 203 | (apply 'vc-mtn-command nil 0 files |
| 204 | (nconc (list "commit" "-m") | 204 | (nconc (list "commit" "-m") |
| 205 | (log-edit-extract-headers '(("Author" . "--author") | 205 | (log-edit-extract-headers '(("Author" . "--author") |
diff --git a/lisp/vc/vc-rcs.el b/lisp/vc/vc-rcs.el index 71ffa55a6e9..ba1336424ea 100644 --- a/lisp/vc/vc-rcs.el +++ b/lisp/vc/vc-rcs.el | |||
| @@ -76,7 +76,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." | |||
| 76 | :version "21.1" | 76 | :version "21.1" |
| 77 | :group 'vc-rcs) | 77 | :group 'vc-rcs) |
| 78 | 78 | ||
| 79 | (defcustom vc-rcs-header '("\$Id\$") | 79 | (defcustom vc-rcs-header '("$Id\ $") |
| 80 | "Header keywords to be inserted by `vc-insert-headers'." | 80 | "Header keywords to be inserted by `vc-insert-headers'." |
| 81 | :type '(repeat string) | 81 | :type '(repeat string) |
| 82 | :version "24.1" ; no longer consult the obsolete vc-header-alist | 82 | :version "24.1" ; no longer consult the obsolete vc-header-alist |
| @@ -306,27 +306,23 @@ whether to remove it." | |||
| 306 | (yes-or-no-p (format "Directory %s is empty; remove it? " dir)) | 306 | (yes-or-no-p (format "Directory %s is empty; remove it? " dir)) |
| 307 | (delete-directory dir))))) | 307 | (delete-directory dir))))) |
| 308 | 308 | ||
| 309 | ;; It used to be possible to pass in a value for the variable rev, but | 309 | (defun vc-rcs-checkin (files comment &optional rev) |
| 310 | ;; nothing in the rest of VC used this capability. Removing it makes the | ||
| 311 | ;; backend interface simpler for all modes. | ||
| 312 | ;; | ||
| 313 | (defun vc-rcs-checkin (files comment) | ||
| 314 | "RCS-specific version of `vc-backend-checkin'." | 310 | "RCS-specific version of `vc-backend-checkin'." |
| 315 | (let (rev (switches (vc-switches 'RCS 'checkin))) | 311 | (let ((switches (vc-switches 'RCS 'checkin))) |
| 316 | ;; Now operate on the files | 312 | ;; Now operate on the files |
| 317 | (dolist (file (vc-expand-dirs files 'RCS)) | 313 | (dolist (file (vc-expand-dirs files 'RCS)) |
| 318 | (let ((old-version (vc-working-revision file)) new-version | 314 | (let ((old-version (vc-working-revision file)) new-version |
| 319 | (default-branch (vc-file-getprop file 'vc-rcs-default-branch))) | 315 | (default-branch (vc-file-getprop file 'vc-rcs-default-branch))) |
| 320 | ;; Force branch creation if an appropriate | 316 | ;; Force branch creation if an appropriate |
| 321 | ;; default branch has been set. | 317 | ;; default branch has been set. |
| 322 | (and default-branch | 318 | (and (not rev) |
| 319 | default-branch | ||
| 323 | (string-match (concat "^" (regexp-quote old-version) "\\.") | 320 | (string-match (concat "^" (regexp-quote old-version) "\\.") |
| 324 | default-branch) | 321 | default-branch) |
| 325 | (setq rev default-branch) | 322 | (setq rev default-branch) |
| 326 | (setq switches (cons "-f" switches))) | 323 | (setq switches (cons "-f" switches))) |
| 327 | (if old-version | 324 | (if (and (not rev) old-version) |
| 328 | (setq rev (vc-branch-part old-version)) | 325 | (setq rev (vc-branch-part old-version))) |
| 329 | (error "can't find current branch")) | ||
| 330 | (apply #'vc-do-command "*vc*" 0 "ci" (vc-master-name file) | 326 | (apply #'vc-do-command "*vc*" 0 "ci" (vc-master-name file) |
| 331 | ;; if available, use the secure check-in option | 327 | ;; if available, use the secure check-in option |
| 332 | (and (vc-rcs-release-p "5.6.4") "-j") | 328 | (and (vc-rcs-release-p "5.6.4") "-j") |
| @@ -1118,12 +1114,12 @@ Returns: nil if no headers were found | |||
| 1118 | (defun vc-release-greater-or-equal (r1 r2) | 1114 | (defun vc-release-greater-or-equal (r1 r2) |
| 1119 | "Compare release numbers, represented as strings. | 1115 | "Compare release numbers, represented as strings. |
| 1120 | Release components are assumed cardinal numbers, not decimal fractions | 1116 | Release components are assumed cardinal numbers, not decimal fractions |
| 1121 | \(5.10 is a higher release than 5.9\). Omitted fields are considered | 1117 | \(5.10 is a higher release than 5.9). Omitted fields are considered |
| 1122 | lower \(5.6.7 is earlier than 5.6.7.1\). Comparison runs till the end | 1118 | lower \(5.6.7 is earlier than 5.6.7.1). Comparison runs till the end |
| 1123 | of the string is found, or a non-numeric component shows up \(5.6.7 is | 1119 | of the string is found, or a non-numeric component shows up \(5.6.7 is |
| 1124 | earlier than \"5.6.7 beta\", which is probably not what you want in | 1120 | earlier than \"5.6.7 beta\", which is probably not what you want in |
| 1125 | some cases\). This code is suitable for existing RCS release numbers. | 1121 | some cases). This code is suitable for existing RCS release numbers. |
| 1126 | CVS releases are handled reasonably, too \(1.3 < 1.4* < 1.5\)." | 1122 | CVS releases are handled reasonably, too \(1.3 < 1.4* < 1.5)." |
| 1127 | (let (v1 v2 i1 i2) | 1123 | (let (v1 v2 i1 i2) |
| 1128 | (catch 'done | 1124 | (catch 'done |
| 1129 | (or (and (string-match "^\\.?\\([0-9]+\\)" r1) | 1125 | (or (and (string-match "^\\.?\\([0-9]+\\)" r1) |
diff --git a/lisp/vc/vc-sccs.el b/lisp/vc/vc-sccs.el index 8d8d9e844ed..a3facc56d5d 100644 --- a/lisp/vc/vc-sccs.el +++ b/lisp/vc/vc-sccs.el | |||
| @@ -222,10 +222,11 @@ to the SCCS command." | |||
| 222 | (stringp (vc-sccs-search-project-dir (or (file-name-directory file) "") | 222 | (stringp (vc-sccs-search-project-dir (or (file-name-directory file) "") |
| 223 | (file-name-nondirectory file))))) | 223 | (file-name-nondirectory file))))) |
| 224 | 224 | ||
| 225 | (defun vc-sccs-checkin (files comment) | 225 | (defun vc-sccs-checkin (files comment &optional rev) |
| 226 | "SCCS-specific version of `vc-backend-checkin'." | 226 | "SCCS-specific version of `vc-backend-checkin'." |
| 227 | (dolist (file (vc-expand-dirs files 'SCCS)) | 227 | (dolist (file (vc-expand-dirs files 'SCCS)) |
| 228 | (apply 'vc-sccs-do-command nil 0 "delta" (vc-master-name file) | 228 | (apply 'vc-sccs-do-command nil 0 "delta" (vc-master-name file) |
| 229 | (if rev (concat "-r" rev)) | ||
| 229 | (concat "-y" comment) | 230 | (concat "-y" comment) |
| 230 | (vc-switches 'SCCS 'checkin)) | 231 | (vc-switches 'SCCS 'checkin)) |
| 231 | (vc-sccs-do-command nil 0 "get" (vc-master-name file)))) | 232 | (vc-sccs-do-command nil 0 "get" (vc-master-name file)))) |
diff --git a/lisp/vc/vc-src.el b/lisp/vc/vc-src.el index d9aa1b13e88..69e403668b1 100644 --- a/lisp/vc/vc-src.el +++ b/lisp/vc/vc-src.el | |||
| @@ -227,7 +227,7 @@ This function differs from vc-do-command in that it invokes `vc-src-program'." | |||
| 227 | file | 227 | file |
| 228 | (file-name-directory file))))) | 228 | (file-name-directory file))))) |
| 229 | 229 | ||
| 230 | (defun vc-src-checkin (files comment) | 230 | (defun vc-src-checkin (files comment &optional _rev) |
| 231 | "SRC-specific version of `vc-backend-checkin'. | 231 | "SRC-specific version of `vc-backend-checkin'. |
| 232 | REV is ignored." | 232 | REV is ignored." |
| 233 | (vc-src-command nil files "commit" "-m" comment)) | 233 | (vc-src-command nil files "commit" "-m" comment)) |
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el index 755dbc1ca3b..4ef63a23db5 100644 --- a/lisp/vc/vc-svn.el +++ b/lisp/vc/vc-svn.el | |||
| @@ -106,7 +106,7 @@ switches." | |||
| 106 | :version "25.1" | 106 | :version "25.1" |
| 107 | :group 'vc-svn) | 107 | :group 'vc-svn) |
| 108 | 108 | ||
| 109 | (defcustom vc-svn-header '("\$Id\$") | 109 | (defcustom vc-svn-header '("$Id\ $") |
| 110 | "Header keywords to be inserted by `vc-insert-headers'." | 110 | "Header keywords to be inserted by `vc-insert-headers'." |
| 111 | :version "24.1" ; no longer consult the obsolete vc-header-alist | 111 | :version "24.1" ; no longer consult the obsolete vc-header-alist |
| 112 | :type '(repeat string) | 112 | :type '(repeat string) |
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 3b9e788b7ab..f08e562efe5 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el | |||
| @@ -233,12 +233,13 @@ | |||
| 233 | ;; Unregister FILE from this backend. This is only needed if this | 233 | ;; Unregister FILE from this backend. This is only needed if this |
| 234 | ;; backend may be used as a "more local" backend for temporary editing. | 234 | ;; backend may be used as a "more local" backend for temporary editing. |
| 235 | ;; | 235 | ;; |
| 236 | ;; * checkin (files comment) | 236 | ;; * checkin (files comment &optional rev) |
| 237 | ;; | 237 | ;; |
| 238 | ;; Commit changes in FILES to this backend. COMMENT is used as a | 238 | ;; Commit changes in FILES to this backend. COMMENT is used as a |
| 239 | ;; check-in comment. The implementation should pass the value of | 239 | ;; check-in comment. The implementation should pass the value of |
| 240 | ;; vc-checkin-switches to the backend command. The revision argument | 240 | ;; vc-checkin-switches to the backend command. The optional REV |
| 241 | ;; of some older VC versions is no longer supported. | 241 | ;; revision argument is only supported with some older VCSes, like |
| 242 | ;; RCS and CVS, and is otherwise silently ignored. | ||
| 242 | ;; | 243 | ;; |
| 243 | ;; * find-revision (file rev buffer) | 244 | ;; * find-revision (file rev buffer) |
| 244 | ;; | 245 | ;; |
| @@ -850,9 +851,9 @@ See `run-hooks'." | |||
| 850 | 851 | ||
| 851 | (defcustom vc-static-header-alist | 852 | (defcustom vc-static-header-alist |
| 852 | '(("\\.c\\'" . | 853 | '(("\\.c\\'" . |
| 853 | "\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n#endif /* lint */\n")) | 854 | "\n#ifndef lint\nstatic char vcid[] = \"%s\";\n#endif /* lint */\n")) |
| 854 | "Associate static header string templates with file types. | 855 | "Associate static header string templates with file types. |
| 855 | A \%s in the template is replaced with the first string associated with | 856 | A %s in the template is replaced with the first string associated with |
| 856 | the file's version control type in `vc-BACKEND-header'." | 857 | the file's version control type in `vc-BACKEND-header'." |
| 857 | :type '(repeat (cons :format "%v" | 858 | :type '(repeat (cons :format "%v" |
| 858 | (regexp :tag "File Type") | 859 | (regexp :tag "File Type") |
| @@ -1221,10 +1222,15 @@ For old-style locking-based version control systems, like RCS: | |||
| 1221 | (message "No files remain to be committed") | 1222 | (message "No files remain to be committed") |
| 1222 | (if (not verbose) | 1223 | (if (not verbose) |
| 1223 | (vc-checkin ready-for-commit backend) | 1224 | (vc-checkin ready-for-commit backend) |
| 1224 | (let ((new-backend (vc-read-backend "New backend: "))) | 1225 | (let* ((revision (read-string "New revision or backend: ")) |
| 1225 | (if new-backend | 1226 | (revision-downcase (downcase revision))) |
| 1226 | (dolist (file files) | 1227 | (if (member |
| 1227 | (vc-transfer-file file new-backend)))))))) | 1228 | revision-downcase |
| 1229 | (mapcar (lambda (arg) (downcase (symbol-name arg))) | ||
| 1230 | vc-handled-backends)) | ||
| 1231 | (let ((vsym (intern revision-downcase))) | ||
| 1232 | (dolist (file files) (vc-transfer-file file vsym))) | ||
| 1233 | (vc-checkin ready-for-commit backend nil nil revision))))))) | ||
| 1228 | ;; locked by somebody else (locking VCSes only) | 1234 | ;; locked by somebody else (locking VCSes only) |
| 1229 | ((stringp state) | 1235 | ((stringp state) |
| 1230 | ;; In the old days, we computed the revision once and used it on | 1236 | ;; In the old days, we computed the revision once and used it on |
| @@ -1522,11 +1528,13 @@ Type \\[vc-next-action] to check in changes.") | |||
| 1522 | ".\n") | 1528 | ".\n") |
| 1523 | (message "Please explain why you stole the lock. Type C-c C-c when done."))) | 1529 | (message "Please explain why you stole the lock. Type C-c C-c when done."))) |
| 1524 | 1530 | ||
| 1525 | (defun vc-checkin (files backend &optional comment initial-contents) | 1531 | (defun vc-checkin (files backend &optional comment initial-contents rev) |
| 1526 | "Check in FILES. COMMENT is a comment string; if omitted, a | 1532 | "Check in FILES. COMMENT is a comment string; if omitted, a |
| 1527 | buffer is popped up to accept a comment. If INITIAL-CONTENTS is | 1533 | buffer is popped up to accept a comment. If INITIAL-CONTENTS is |
| 1528 | non-nil, then COMMENT is used as the initial contents of the log | 1534 | non-nil, then COMMENT is used as the initial contents of the log |
| 1529 | entry buffer. | 1535 | entry buffer. |
| 1536 | The optional argument REV may be a string specifying the new revision | ||
| 1537 | level (only supported for some older VCSes, like RCS and CVS). | ||
| 1530 | 1538 | ||
| 1531 | Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'." | 1539 | Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'." |
| 1532 | (when vc-before-checkin-hook | 1540 | (when vc-before-checkin-hook |
| @@ -1549,7 +1557,7 @@ Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'." | |||
| 1549 | ;; vc-checkin-switches, but 'the' local buffer is | 1557 | ;; vc-checkin-switches, but 'the' local buffer is |
| 1550 | ;; not a well-defined concept for filesets. | 1558 | ;; not a well-defined concept for filesets. |
| 1551 | (progn | 1559 | (progn |
| 1552 | (vc-call-backend backend 'checkin files comment) | 1560 | (vc-call-backend backend 'checkin files comment rev) |
| 1553 | (mapc 'vc-delete-automatic-version-backups files)) | 1561 | (mapc 'vc-delete-automatic-version-backups files)) |
| 1554 | `((vc-state . up-to-date) | 1562 | `((vc-state . up-to-date) |
| 1555 | (vc-checkout-time . ,(nth 5 (file-attributes file))) | 1563 | (vc-checkout-time . ,(nth 5 (file-attributes file))) |
| @@ -2093,7 +2101,7 @@ changes from the current branch." | |||
| 2093 | (defun vc-tag-precondition (dir) | 2101 | (defun vc-tag-precondition (dir) |
| 2094 | "Scan the tree below DIR, looking for files not up-to-date. | 2102 | "Scan the tree below DIR, looking for files not up-to-date. |
| 2095 | If any file is not up-to-date, return the name of the first such file. | 2103 | If any file is not up-to-date, return the name of the first such file. |
| 2096 | \(This means, neither tag creation nor retrieval is allowed.\) | 2104 | \(This means, neither tag creation nor retrieval is allowed.) |
| 2097 | If one or more of the files are currently visited, return `visited'. | 2105 | If one or more of the files are currently visited, return `visited'. |
| 2098 | Otherwise, return nil." | 2106 | Otherwise, return nil." |
| 2099 | (let ((status nil)) | 2107 | (let ((status nil)) |
diff --git a/lisp/vcursor.el b/lisp/vcursor.el index 440a2786551..7e503269a8a 100644 --- a/lisp/vcursor.el +++ b/lisp/vcursor.el | |||
| @@ -573,11 +573,11 @@ With optional NOT-THIS non-nil never return the current window. | |||
| 573 | 573 | ||
| 574 | With NEW-WIN non-nil, display the virtual cursor buffer in another | 574 | With NEW-WIN non-nil, display the virtual cursor buffer in another |
| 575 | window if the virtual cursor is not currently visible \(note, however, | 575 | window if the virtual cursor is not currently visible \(note, however, |
| 576 | that this function never changes `window-point'\). | 576 | that this function never changes `window-point'). |
| 577 | 577 | ||
| 578 | With THIS-FRAME non-nil, don't search other frames for a new window | 578 | With THIS-FRAME non-nil, don't search other frames for a new window |
| 579 | \(though if the vcursor is already off-frame then its current window is | 579 | \(though if the vcursor is already off-frame then its current window is |
| 580 | always considered, and the value of `pop-up-frames' is always respected\). | 580 | always considered, and the value of `pop-up-frames' is always respected). |
| 581 | 581 | ||
| 582 | Returns nil if the virtual cursor is not visible anywhere suitable. | 582 | Returns nil if the virtual cursor is not visible anywhere suitable. |
| 583 | Set `vcursor-window' to the returned value as a side effect." | 583 | Set `vcursor-window' to the returned value as a side effect." |
diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 0c208502c34..839ca8c3ac5 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el | |||
| @@ -891,22 +891,22 @@ Used when `whitespace-style' includes `lines' or `lines-tail'." | |||
| 891 | ;; Hacked from `visible-whitespace-mappings' in visws.el | 891 | ;; Hacked from `visible-whitespace-mappings' in visws.el |
| 892 | (defcustom whitespace-display-mappings | 892 | (defcustom whitespace-display-mappings |
| 893 | '( | 893 | '( |
| 894 | (space-mark ?\ [?\u00B7] [?.]) ; space - centered dot | 894 | (space-mark ?\ [?·] [?.]) ; space - middle dot |
| 895 | (space-mark ?\xA0 [?\u00A4] [?_]) ; hard space - currency | 895 | (space-mark ?\xA0 [?¤] [?_]) ; hard space - currency sign |
| 896 | ;; NEWLINE is displayed using the face `whitespace-newline' | 896 | ;; NEWLINE is displayed using the face `whitespace-newline' |
| 897 | (newline-mark ?\n [?$ ?\n]) ; eol - dollar sign | 897 | (newline-mark ?\n [?$ ?\n]) ; eol - dollar sign |
| 898 | ;; (newline-mark ?\n [?\u21B5 ?\n] [?$ ?\n]) ; eol - downwards arrow | 898 | ;; (newline-mark ?\n [?↵ ?\n] [?$ ?\n]) ; eol - downwards arrow |
| 899 | ;; (newline-mark ?\n [?\u00B6 ?\n] [?$ ?\n]) ; eol - pilcrow | 899 | ;; (newline-mark ?\n [?¶ ?\n] [?$ ?\n]) ; eol - pilcrow |
| 900 | ;; (newline-mark ?\n [?\u00AF ?\n] [?$ ?\n]) ; eol - overscore | 900 | ;; (newline-mark ?\n [?¯ ?\n] [?$ ?\n]) ; eol - overscore |
| 901 | ;; (newline-mark ?\n [?\u00AC ?\n] [?$ ?\n]) ; eol - negation | 901 | ;; (newline-mark ?\n [?¬ ?\n] [?$ ?\n]) ; eol - negation |
| 902 | ;; (newline-mark ?\n [?\u00B0 ?\n] [?$ ?\n]) ; eol - degrees | 902 | ;; (newline-mark ?\n [?° ?\n] [?$ ?\n]) ; eol - degrees |
| 903 | ;; | 903 | ;; |
| 904 | ;; WARNING: the mapping below has a problem. | 904 | ;; WARNING: the mapping below has a problem. |
| 905 | ;; When a TAB occupies exactly one column, it will display the | 905 | ;; When a TAB occupies exactly one column, it will display the |
| 906 | ;; character ?\xBB at that column followed by a TAB which goes to | 906 | ;; character ?\xBB at that column followed by a TAB which goes to |
| 907 | ;; the next TAB column. | 907 | ;; the next TAB column. |
| 908 | ;; If this is a problem for you, please, comment the line below. | 908 | ;; If this is a problem for you, please, comment the line below. |
| 909 | (tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t]) ; tab - left quote mark | 909 | (tab-mark ?\t [?» ?\t] [?\\ ?\t]) ; tab - right guillemet |
| 910 | ) | 910 | ) |
| 911 | "Specify an alist of mappings for displaying characters. | 911 | "Specify an alist of mappings for displaying characters. |
| 912 | 912 | ||
| @@ -2581,5 +2581,8 @@ It should be added buffer-locally to `write-file-functions'." | |||
| 2581 | 2581 | ||
| 2582 | (run-hooks 'whitespace-load-hook) | 2582 | (run-hooks 'whitespace-load-hook) |
| 2583 | 2583 | ||
| 2584 | ;; Local Variables: | ||
| 2585 | ;; coding: utf-8 | ||
| 2586 | ;; End: | ||
| 2584 | 2587 | ||
| 2585 | ;;; whitespace.el ends here | 2588 | ;;; whitespace.el ends here |
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index b64de4759d7..0d9157a5575 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el | |||
| @@ -2654,8 +2654,7 @@ Return an alist of (TYPE MATCH)." | |||
| 2654 | (save-excursion | 2654 | (save-excursion |
| 2655 | (let ((children (widget-get widget :children)) | 2655 | (let ((children (widget-get widget :children)) |
| 2656 | (inhibit-read-only t) | 2656 | (inhibit-read-only t) |
| 2657 | before-change-functions | 2657 | (inhibit-modification-hooks t)) |
| 2658 | after-change-functions) | ||
| 2659 | (cond (before | 2658 | (cond (before |
| 2660 | (goto-char (widget-get before :entry-from))) | 2659 | (goto-char (widget-get before :entry-from))) |
| 2661 | (t | 2660 | (t |
| @@ -2679,8 +2678,7 @@ Return an alist of (TYPE MATCH)." | |||
| 2679 | (let ((buttons (copy-sequence (widget-get widget :buttons))) | 2678 | (let ((buttons (copy-sequence (widget-get widget :buttons))) |
| 2680 | button | 2679 | button |
| 2681 | (inhibit-read-only t) | 2680 | (inhibit-read-only t) |
| 2682 | before-change-functions | 2681 | (inhibit-modification-hooks t)) |
| 2683 | after-change-functions) | ||
| 2684 | (while buttons | 2682 | (while buttons |
| 2685 | (setq button (car buttons) | 2683 | (setq button (car buttons) |
| 2686 | buttons (cdr buttons)) | 2684 | buttons (cdr buttons)) |
| @@ -2691,8 +2689,7 @@ Return an alist of (TYPE MATCH)." | |||
| 2691 | (let ((entry-from (widget-get child :entry-from)) | 2689 | (let ((entry-from (widget-get child :entry-from)) |
| 2692 | (entry-to (widget-get child :entry-to)) | 2690 | (entry-to (widget-get child :entry-to)) |
| 2693 | (inhibit-read-only t) | 2691 | (inhibit-read-only t) |
| 2694 | before-change-functions | 2692 | (inhibit-modification-hooks t)) |
| 2695 | after-change-functions) | ||
| 2696 | (widget-delete child) | 2693 | (widget-delete child) |
| 2697 | (delete-region entry-from entry-to) | 2694 | (delete-region entry-from entry-to) |
| 2698 | (set-marker entry-from nil) | 2695 | (set-marker entry-from nil) |
diff --git a/lisp/winner.el b/lisp/winner.el index fdf62137514..a05f4ba867e 100644 --- a/lisp/winner.el +++ b/lisp/winner.el | |||
| @@ -177,6 +177,11 @@ You may want to include buffer names such as *Help*, *Apropos*, | |||
| 177 | ;; Called whenever the window configuration changes | 177 | ;; Called whenever the window configuration changes |
| 178 | ;; (a `window-configuration-change-hook'). | 178 | ;; (a `window-configuration-change-hook'). |
| 179 | (defun winner-change-fun () | 179 | (defun winner-change-fun () |
| 180 | |||
| 181 | ;; Cull dead frames. | ||
| 182 | (setq winner-modified-list | ||
| 183 | (cl-remove-if-not 'frame-live-p winner-modified-list)) | ||
| 184 | |||
| 180 | (unless (or (memq (selected-frame) winner-modified-list) | 185 | (unless (or (memq (selected-frame) winner-modified-list) |
| 181 | (/= 0 (minibuffer-depth))) | 186 | (/= 0 (minibuffer-depth))) |
| 182 | (push (selected-frame) winner-modified-list))) | 187 | (push (selected-frame) winner-modified-list))) |
diff --git a/lisp/woman.el b/lisp/woman.el index f2e59e50bca..8fe1bfa0446 100644 --- a/lisp/woman.el +++ b/lisp/woman.el | |||
| @@ -2716,7 +2716,7 @@ If DELETE is non-nil then delete from point." | |||
| 2716 | 2716 | ||
| 2717 | (defsubst woman-unescape (macro) | 2717 | (defsubst woman-unescape (macro) |
| 2718 | "Replace escape sequences in the body of MACRO. | 2718 | "Replace escape sequences in the body of MACRO. |
| 2719 | Replaces || by |, but | by \, where | denotes the internal escape." | 2719 | Replaces || by |, but | by \\, where | denotes the internal escape." |
| 2720 | (let (start) | 2720 | (let (start) |
| 2721 | (while (setq start (string-match woman-unescape-regex macro start)) | 2721 | (while (setq start (string-match woman-unescape-regex macro start)) |
| 2722 | (setq macro | 2722 | (setq macro |
| @@ -2838,7 +2838,7 @@ special characters." | |||
| 2838 | (defun woman-strings (&optional to) | 2838 | (defun woman-strings (&optional to) |
| 2839 | "Process ?roff string requests and escape sequences up to buffer position TO. | 2839 | "Process ?roff string requests and escape sequences up to buffer position TO. |
| 2840 | Strings are defined/updated by `.ds xx string' requests and | 2840 | Strings are defined/updated by `.ds xx string' requests and |
| 2841 | interpolated by `\*x' and `\*(xx' escapes." | 2841 | interpolated by `\\*x' and `\\*(xx' escapes." |
| 2842 | ;; Add support for .as and .rm? | 2842 | ;; Add support for .as and .rm? |
| 2843 | (while | 2843 | (while |
| 2844 | ;; Find .ds requests and \* escapes: | 2844 | ;; Find .ds requests and \* escapes: |
| @@ -3549,7 +3549,7 @@ The expression may be an argument in quotes." | |||
| 3549 | (if (> (woman-parse-numeric-value) 0) 1 0)) | 3549 | (if (> (woman-parse-numeric-value) 0) 1 0)) |
| 3550 | ))) | 3550 | ))) |
| 3551 | )) | 3551 | )) |
| 3552 | ; (if (looking-at "[ \t\nRC\)\"]") ; R, C are tab types | 3552 | ; (if (looking-at "[ \t\nRC)\"]") ; R, C are tab types |
| 3553 | ; () | 3553 | ; () |
| 3554 | ; (WoMan-warn "Unimplemented numerical operator `%c' in %s" | 3554 | ; (WoMan-warn "Unimplemented numerical operator `%c' in %s" |
| 3555 | ; (following-char) | 3555 | ; (following-char) |
| @@ -3583,7 +3583,7 @@ expression in parentheses. Leaves point after the value." | |||
| 3583 | ;; string-to-number returns 0 if number not parsed. | 3583 | ;; string-to-number returns 0 if number not parsed. |
| 3584 | (string-to-number (match-string 0))) | 3584 | (string-to-number (match-string 0))) |
| 3585 | ((looking-at "\\\\n\\([-+]\\)?\\(?:\ | 3585 | ((looking-at "\\\\n\\([-+]\\)?\\(?:\ |
| 3586 | \\[\\([^]]+\\)\\]\\|\(\\(..\\)\\|\\(.\\)\\)") | 3586 | \\[\\([^]]+\\)\\]\\|(\\(..\\)\\|\\(.\\)\\)") |
| 3587 | ;; interpolate number register, maybe auto-incremented | 3587 | ;; interpolate number register, maybe auto-incremented |
| 3588 | (let* ((pm (match-string-no-properties 1)) | 3588 | (let* ((pm (match-string-no-properties 1)) |
| 3589 | (name (or (match-string-no-properties 2) | 3589 | (name (or (match-string-no-properties 2) |
| @@ -3761,7 +3761,7 @@ Round to whole lines, default 1 line. Format paragraphs upto TO. | |||
| 3761 | 3761 | ||
| 3762 | (defun woman2-TH (to) | 3762 | (defun woman2-TH (to) |
| 3763 | ".TH n c x v m -- Begin a man page. Format paragraphs upto TO. | 3763 | ".TH n c x v m -- Begin a man page. Format paragraphs upto TO. |
| 3764 | n is the name of the page in chapter c\; x is extra commentary\; | 3764 | n is the name of the page in chapter c; x is extra commentary; |
| 3765 | v alters page foot left; m alters page head center. | 3765 | v alters page foot left; m alters page head center. |
| 3766 | \(Should set prevailing indent and tabs to 5.)" | 3766 | \(Should set prevailing indent and tabs to 5.)" |
| 3767 | (woman-forward-arg 'unquote 'concat) | 3767 | (woman-forward-arg 'unquote 'concat) |
| @@ -4349,7 +4349,7 @@ Format paragraphs upto TO." | |||
| 4349 | 4349 | ||
| 4350 | (defun woman2-ta (to) | 4350 | (defun woman2-ta (to) |
| 4351 | ".ta Nt ... -- Set tabs, left type, unless t=R(right), C(centered). | 4351 | ".ta Nt ... -- Set tabs, left type, unless t=R(right), C(centered). |
| 4352 | \(Breaks, but should not.) The tab stops are separated by spaces\; | 4352 | \(Breaks, but should not.) The tab stops are separated by spaces; |
| 4353 | a value preceded by + represents an increment to the previous stop value. | 4353 | a value preceded by + represents an increment to the previous stop value. |
| 4354 | Format paragraphs upto TO." | 4354 | Format paragraphs upto TO." |
| 4355 | (setq tab-stop-list nil) | 4355 | (setq tab-stop-list nil) |