From 2b8f53dea47097bbdc16fc636d415f979beffca6 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 9 May 2005 08:44:58 +0000 Subject: [PATCH 01/90] (string-to-float): Replace `string-to-int' by `string-to-number'. --- lisp/obsolete/float.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/obsolete/float.el b/lisp/obsolete/float.el index 4b327cdb90e..624e0eb0add 100644 --- a/lisp/obsolete/float.el +++ b/lisp/obsolete/float.el @@ -423,7 +423,7 @@ are recognized." (setq power (+ power (- decimal-digits (length digit-string))))) ; round up and add minus sign, if necessary - (f (* (+ (string-to-int digit-string) + (f (* (+ (string-to-number digit-string) (if round-up 1 0)) (if mant-sign -1 1)))) @@ -433,7 +433,7 @@ are recognized." (expt 0) (chunks 0) (tens 0) (exponent _f1) (func 'f*)) - (setq expt (+ (* (string-to-int + (setq expt (+ (* (string-to-number (substring expt-subst 0 (min expt-digits (length expt-subst)))) (if expt-sign -1 1)) From 084ea2c3ee70f5403da0d0bbdda8b9a123c65636 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 9 May 2005 08:45:47 +0000 Subject: [PATCH 02/90] (hilit-add-pattern): Replace `string-to-int' by `string-to-number'. --- lisp/obsolete/hilit19.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/obsolete/hilit19.el b/lisp/obsolete/hilit19.el index a5fd33adcaa..8c5b64ed5ad 100644 --- a/lisp/obsolete/hilit19.el +++ b/lisp/obsolete/hilit19.el @@ -1050,7 +1050,7 @@ Optionally, place the new pattern first in the pattern list" (and (equal pstart "") (error "Must specify starting regex")) (cond ((equal pend "") (setq pend 0)) - ((string-match "^[0-9]+$" pend) (setq pend (string-to-int pend)))) + ((string-match "^[0-9]+$" pend) (setq pend (string-to-number pend)))) (or mode (setq mode major-mode)) (let ((old-patterns (cdr (assq mode hilit-patterns-alist))) (new-pat (list pstart pend face))) From 786401049ff46b08442a7a9f9ba2b7360433dd7a Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 9 May 2005 08:47:56 +0000 Subject: [PATCH 03/90] (news-parse-range, news-select-message, news-get-pruned-list-of-files): Replace `string-to-int' by `string-to-number'. --- lisp/ChangeLog | 6 ++++++ lisp/obsolete/rnews.el | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d6c88be6b8c..6e688453c28 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,11 @@ 2005-05-09 Juanma Barranquero + * obsolete/float.el (string-to-float): + * obsolete/hilit19.el (hilit-add-pattern): + * obsolete/rnews.el (news-parse-range, news-select-message) + (news-get-pruned-list-of-files): Replace `string-to-int' by + `string-to-number'. + * obsolete/uncompress.el: Set `find-file-not-found-functions', not `find-file-not-found-hooks'; use `add-hook'. (uncompress-while-visiting): Set `write-file-functions', not diff --git a/lisp/obsolete/rnews.el b/lisp/obsolete/rnews.el index 45d4f768a07..cb2ed034ffc 100644 --- a/lisp/obsolete/rnews.el +++ b/lisp/obsolete/rnews.el @@ -397,9 +397,9 @@ U unsubscribe from specified newsgroup." to a list (a . b)" (let ((n (string-match "-" number-string))) (if n - (cons (string-to-int (substring number-string 0 n)) - (string-to-int (substring number-string (1+ n)))) - (setq n (string-to-int number-string)) + (cons (string-to-number (substring number-string 0 n)) + (string-to-number (substring number-string (1+ n)))) + (setq n (string-to-number number-string)) (cons n n)))) ;(defun is-in (elt lis) @@ -524,7 +524,7 @@ to a list (a . b)" (news-select-message arg)) (defun news-select-message (arg) - (if (stringp arg) (setq arg (string-to-int arg))) + (if (stringp arg) (setq arg (string-to-number arg))) (let ((file (concat news-path (string-subst-char ?/ ?. news-current-news-group) "/" arg))) @@ -803,7 +803,7 @@ Using ls was found to be too slow in a previous version." ;; don't get confused by directories that look like numbers (file-directory-p (concat file-directory "/" (car tem))) - (<= (string-to-int (car tem)) end-file-no)) + (<= (string-to-number (car tem)) end-file-no)) (setq news-list-of-files (delq (car tem) news-list-of-files))) (setq tem (cdr tem))) @@ -811,7 +811,7 @@ Using ls was found to be too slow in a previous version." (progn (setq news-current-group-end 0) nil) (setq news-list-of-files - (mapcar 'string-to-int news-list-of-files)) + (mapcar 'string-to-number news-list-of-files)) (setq news-list-of-files (sort news-list-of-files '<)) (setq news-current-group-end (elt news-list-of-files From a8a64bf4c4c4abb0c91ec669ec353528b7dda519 Mon Sep 17 00:00:00 2001 From: Reiner Steib Date: Mon, 9 May 2005 16:20:33 +0000 Subject: [PATCH 04/90] (fancy-splash-insert): Fix typo in doc string. --- lisp/ChangeLog | 4 ++++ lisp/startup.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6e688453c28..621d1ae9c1d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2005-05-09 Reiner Steib + + * startup.el (fancy-splash-insert): Fix typo in doc string. + 2005-05-09 Juanma Barranquero * obsolete/float.el (string-to-float): diff --git a/lisp/startup.el b/lisp/startup.el index e3d0232b9ce..c9f8d5e26e7 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -1108,7 +1108,7 @@ Values less than twice `fancy-splash-delay' are ignored." Arguments from ARGS should be either strings, functions called with no args that return a string, or pairs `:face FACE', where FACE is a valid face specification, as it can be used with -`put-text-properties'." +`put-text-property'." (let ((current-face nil)) (while args (if (eq (car args) :face) From b659edcebbe9c7560b38d991bc3348a7ba877473 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 9 May 2005 17:31:00 +0000 Subject: [PATCH 05/90] *** empty log message *** --- lisp/ChangeLog | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 621d1ae9c1d..b8170a1a95c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -24,8 +24,8 @@ 2005-05-08 Eli Zaretskii - * emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name): Improve - commentary. + * emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name): + Improve commentary. * simple.el (next-error-overlay-arrow-position): Revert the change made on 2005-04-30. @@ -41,8 +41,8 @@ 2005-05-07 Eli Zaretskii - * progmodes/compile.el (compilation-setup): Set - overlay-arrow-string to an empty string on text terminals. + * progmodes/compile.el (compilation-setup): + Set overlay-arrow-string to an empty string on text terminals. * textmodes/ispell.el (ispell-program-name): Try looking for "aspell" along exec-path, and if found, use it as the default @@ -50,8 +50,8 @@ 2005-05-07 Jirka Kosek (tiny change) - * international/mule.el (sgml-xml-auto-coding-function): Recognize - encoding='FOO' in single quotes as well as in double quotes. + * international/mule.el (sgml-xml-auto-coding-function): + Recognize encoding='FOO' in single quotes as well as in double quotes. 2005-05-07 Johan Bockg,Ae(Brd @@ -61,9 +61,9 @@ 2005-05-07 Eli Zaretskii - * emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name): Explain - more about the LIGHTER arg's usage in the doc string. Add - commentary to clarify what the code does. Fix the regexp that + * emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name): + Explain more about the LIGHTER arg's usage in the doc string. + Add commentary to clarify what the code does. Fix the regexp that strips whitespace from LIGHTER. Quote LIGHTER before using it, since it could have characters special to regular expressions. @@ -71,8 +71,7 @@ * replace.el (occur-1): Bind inhibit-read-only so that erase-buffer doesn't barf on read-only text properties (likewise - for add-text-properties in occur-engine). Mark buffer as - unmodified. + for add-text-properties in occur-engine). Mark buffer as unmodified. (occur-engine): Don't set buffer-read-only here. 2005-05-06 Stefan Monnier @@ -167,8 +166,7 @@ * term/mac-win.el: Don't define or bind scroll bar functions if x-toolkit-scroll-bars is t. (x-select-text, x-get-selection-value): - Clear x-last-selected-text-clipboard if x-select-enable-clipboard is - nil. + Clear x-last-selected-text-clipboard if x-select-enable-clipboard is nil. (PRIMARY): Put mac-scrap-name property. (mac-select-convert-to-file-url): New function. (public.file-url): New selection target type. Add to @@ -176,6 +174,19 @@ (x-get-selection, x-selection-value): Handle it. (x-cut-buffer-or-selection-value): New alias. +2005-05-05 Roland Winkler + + * textmodes/bibtex.el (bibtex-summary): Use current BibTeX + entry to avoid calling bibtex-find-entry with arg global + being t. Remove arg key. + (bibtex-summary-function, bibtex-complete-crossref-cleanup) + (bibtex-copy-summary-as-kill): Change accordingly. + +2005-05-05 Stefan Monnier + + * textmodes/org.el (org-get-entries-from-diary): Remove unused vars. + (org-agenda-date-later): Use with-current-buffer. + 2005-05-05 Luc Teirlinck * emacs-lisp/byte-run.el (define-obsolete-function-alias) From c44da964fc28a3f2a186fd18deacc87857df7340 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 9 May 2005 21:02:37 +0000 Subject: [PATCH 06/90] Rearrange; clarify some entries. --- etc/NEWS | 2184 +++++++++++++++++++++++++++++------------------------- 1 file changed, 1172 insertions(+), 1012 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index e58347524d5..8edc121a7a0 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -104,6 +104,10 @@ the files mac/README and mac/INSTALL for build instructions. --- ** Building with -DENABLE_CHECKING does not automatically build with union types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. + +--- +** When pure storage overflows while dumping, Emacs now prints how +much pure storage it will approximately need. * Startup Changes in Emacs 22.1 @@ -181,18 +185,8 @@ automatically at startup, if it exists. When Emacs offers to save modified buffers, it saves the abbrevs too if they have changed. It can do this either silently or asking for confirmation first, according to the value of `save-abbrevs'. - -* Editing Changes in Emacs 22.1 - -+++ -** The max size of buffers and integers has been doubled. -On 32bit machines, it is now 256M (i.e. 268435455). - -+++ -** The mode line position information now comes before the major mode. -When the file is maintained under version control, that information -appears between the position information and the major mode. +* Incompatible Editing Changes in Emacs 22.1 +++ ** M-g is now a prefix key. @@ -201,28 +195,19 @@ M-g n and M-g M-n run next-error (like C-x `). M-g p and M-g M-p run previous-error. +++ -** M-o now is the prefix key for setting text properties; -M-o M-o requests refontification. - -+++ -** C-u M-x goto-line now switches to the most recent previous buffer, +** C-u M-g M-g switches to the most recent previous buffer, and goes to the specified line in that buffer. When goto-line starts to execute, if there's a number in the buffer at point then it acts as the default argument for the minibuffer. -+++ -** You can now switch buffers in a cyclic order with C-x C-left and -(prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right -can be used as well. - +++ ** The old bindings C-M-delete and C-M-backspace have been deleted, since there are situations where one or the other will shut down the operating system or your X server. +++ -** `undo-only' does an undo which does not redo any previous undo. +** line-move-ignore-invisible now defaults to t. +++ ** When the undo information of the current command gets really large @@ -230,12 +215,100 @@ the operating system or your X server. you about it. +++ -** M-SPC (just-one-space) when given a numeric argument N -converts whitespace around point to N spaces. +** `apply-macro-to-region-lines' now operates on all lines that begin +in the region, rather than on all complete lines in the region. + ++++ +** A prefix argument is no longer required to repeat a jump to a +previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the +mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. + ++++ +** The info-search bindings on C-h C-f, C-h C-k and C-h C-i +have been moved to C-h F, C-h K and C-h S. + ++++ +** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. + +See below under "incremental search changes". + +--- +** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. + +Since the default input is the current directory, this has the effect +of specifying the current directory. Normally that means to visit the +directory with Dired. + ++++ +** The completion commands TAB, SPC and ? in the minibuffer apply only +to the text before point. If there is text in the buffer after point, +it remains unchanged. + ++++ +** M-o now is the prefix key for setting text properties; +M-o M-o requests refontification. + ++++ +** You can now follow links by clicking Mouse-1 on the link. + +See below for more details. + ++++ +** In Dired's ! command (dired-do-shell-command), `*' and `?' now +control substitution of the file names only when they are surrounded +by whitespace. This means you can now use them as shell wildcards +too. If you want to use just plain `*' as a wildcard, type `*""'; the +doublequotes make no difference in the shell, but they prevent +special treatment in `dired-do-shell-command'. + +* Editing Changes in Emacs 22.1 + ++++ +** The max size of buffers and integers has been doubled. +On 32bit machines, it is now 256M (i.e. 268435455). + ++++ +** M-g is now a prefix key. +M-g g and M-g M-g run goto-line. +M-g n and M-g M-n run next-error (like C-x `). +M-g p and M-g M-p run previous-error. + ++++ +** C-u M-g M-g switches to the most recent previous buffer, +and goes to the specified line in that buffer. + +When goto-line starts to execute, if there's a number in the buffer at +point then it acts as the default argument for the minibuffer. + ++++ +** The old bindings C-M-delete and C-M-backspace have been deleted, +since there are situations where one or the other will shut down +the operating system or your X server. +++ ** line-move-ignore-invisible now defaults to t. ++++ +** When the undo information of the current command gets really large +(beyond the value of `undo-outer-limit'), Emacs discards it and warns +you about it. + ++++ +** `apply-macro-to-region-lines' now operates on all lines that begin +in the region, rather than on all complete lines in the region. + ++++ +** You can now switch buffers in a cyclic order with C-x C-left and +(prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right +can be used as well. + ++++ +** `undo-only' does an undo which does not redo any previous undo. + ++++ +** M-SPC (just-one-space) when given a numeric argument N +converts whitespace around point to N spaces. + --- ** New commands to operate on pairs of open and close characters: `insert-pair', `delete-pair', `raise-sexp'. @@ -256,24 +329,16 @@ been changed to reflect those used in Text mode rather than those used in Indented-Text mode. +++ -** Movement commands `beginning-of-buffer', `end-of-buffer', -`beginning-of-defun', `end-of-defun' do not set the mark if the mark -is already active in Transient Mark mode. +** M-x setenv now expands environment variable references. + +Substrings of the form `$foo' and `${foo}' in the specified new value +now refer to the value of environment variable foo. To include a `$' +in the value, use `$$'. +++ -** `apply-macro-to-region-lines' now operates on all lines that begin -in the region, rather than on all complete lines in the region. - -+++ -** M-x setenv now expands environment variables of the form `$foo' and -`${foo}' in the specified new value of the environment variable. To -include a `$' in the value, use `$$'. - -+++ -** Unquoted `$' in file names do not signal an error any more when -the corresponding environment variable does not exist. -Instead, the `$ENVVAR' text is left as is, so that `$$' quoting -is only rarely needed. +** `special-display-buffer-names' and `special-display-regexps' now +understand two new boolean pseudo-frame-parameters `same-frame' and +`same-window'. +++ ** The default for the paper size (variable ps-paper-type) is taken @@ -287,18 +352,21 @@ previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. +++ -*** Marking commands extend the region when invoked multiple times. If -you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or -C-M-h (mark-defun) repeatedly, the marked region extends each time, so -you can mark the next two sexps with M-C-SPC M-C-SPC, for example. -This feature also works for mark-end-of-sentence, if you bind that to -a key. It also extends the region when the mark is active in Transient -Mark mode, regardless of the last command. To start a new region with -one of marking commands in Transient Mark mode, you can deactivate the -active region with C-g, or set the new mark with C-SPC. +*** Marking commands extend the region when invoked multiple times. + +If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h +(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region +extends each time, so you can mark the next two sexps with M-C-SPC +M-C-SPC, for example. This feature also works for +mark-end-of-sentence, if you bind that to a key. It also extends the +region when the mark is active in Transient Mark mode, regardless of +the last command. To start a new region with one of marking commands +in Transient Mark mode, you can deactivate the active region with C-g, +or set the new mark with C-SPC. +++ *** M-h (mark-paragraph) now accepts a prefix arg. + With positive arg, M-h marks the current and the following paragraphs; if the arg is negative, it marks the current and the preceding paragraphs. @@ -321,6 +389,11 @@ deactivate the mark. That typically happens when you type a command that alters the buffer, but you can also deactivate the mark by typing C-g. ++++ +*** Movement commands `beginning-of-buffer', `end-of-buffer', +`beginning-of-defun', `end-of-defun' do not set the mark if the mark +is already active in Transient Mark mode. + ** Help command changes: +++ @@ -416,13 +489,6 @@ regular expression that you entered to the apropos command. The best match is listed first, and the calculated score is shown for each matching item. -** Window selection changes: - -+++ -*** `special-display-buffer-names' and `special-display-regexps' now -understand two new boolean pseudo-frame-parameters `same-frame' and -`same-window'. - ** Incremental Search changes: +++ @@ -485,6 +551,12 @@ can be edited for each replacement. ** File operation changes: ++++ +*** Unquoted `$' in file names do not signal an error any more when +the corresponding environment variable does not exist. +Instead, the `$ENVVAR' text is left as is, so that `$$' quoting +is only rarely needed. + +++ *** In processing a local variables list, Emacs strips the prefix and suffix are from every line before processing all the lines. @@ -566,7 +638,7 @@ variable `minibuffer-prompt-properties', which is used to display the prompt string. --- -*** Enhanced visual feedback in *Completions* buffer. +*** Enhanced visual feedback in `*Completions*' buffer. Completions lists use faces to highlight what all completions have in common and where they begin to differ. @@ -600,6 +672,11 @@ elements are deleted. ** Redisplay changes: ++++ +*** The mode line position information now comes before the major mode. +When the file is maintained under version control, that information +appears between the position information and the major mode. + *** Easy to overlook single character negation is now font-locked. You can use the new variable `font-lock-negation-char-face' and the face of the same name to customize this. Currently the cc-modes, sh-script-mode, @@ -631,7 +708,7 @@ The variable `automatic-hscrolling' was renamed to `auto-hscroll-mode'. The old name is still available as an alias. *** Moving or scrolling through images (and other lines) taller that -the window now works sensible, by automatically adjusting the window's +the window now works sensibly, by automatically adjusting the window's vscroll property. +++ @@ -718,6 +795,10 @@ of the recognized cursor types. ** Font-Lock changes: ++++ +*** M-o now is the prefix key for setting text properties; +M-o M-o requests refontification. + +++ *** All modes now support using M-x font-lock-mode to toggle fontification, even those such as Occur, Info, and comint-derived @@ -761,7 +842,7 @@ jit-lock-defer-contextually is renamed jit-lock-contextually and jit-lock-context-time determines the delay after which contextual refontification takes place. -** Menu Bar changes: +** Menu support: --- *** A menu item "Show/Hide" was added to the top-level menu "Options". @@ -775,6 +856,36 @@ mode-line. --- *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". +--- +*** You can exit dialog windows and menus by typing C-g. + +--- +*** The menu item "Open File..." has been split into two items, "New File..." +and "Open File...". "Open File..." now opens only existing files. This is +to support existing GUI file selection dialogs better. + ++++ +*** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be +disabled by customizing the variable `use-file-dialog'. + +--- +*** The pop up menus for Lucid now stay up if you do a fast click and can +be navigated with the arrow keys (like Gtk+, Mac and W32). + ++++ +*** The Lucid menus can display multilingual text in your locale. You have +to explicitly specify a fontSet resource for this to work, for example +`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. + +--- +*** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing +ESC, like they do for Gtk+, Mac and W32. + ++++ +*** For Gtk+ version 2.4, you can make Emacs use the old file dialog +by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use +the new dialog. + ** Mouse changes: +++ @@ -1184,8 +1295,10 @@ search multiple buffers. There is also a new command buffers to search by their filename. Internally, Occur mode has been rewritten, and now uses font-lock, among other changes. +** Grep changes: + +++ -** Grep has been decoupled from compilation mode setup. +*** Grep has been decoupled from compilation mode setup. There's a new separate package grep.el, with its own submenu and customization group. @@ -1230,38 +1343,6 @@ When `-H' is used, the grep command line supplied by the user is passed unchanged to the system to execute, which allows more complicated command lines to be used than was possible before. -** Emacs server changes: - -+++ -*** You can have several Emacs servers on the same machine. - - % emacs --eval '(setq server-name "foo")' -f server-start & - % emacs --eval '(setq server-name "bar")' -f server-start & - % emacsclient -s foo file1 - % emacsclient -s bar file2 - -+++ -*** The `emacsclient' command understands the options `--eval' and -`--display' which tell Emacs respectively to evaluate the given elisp -expression and to use the given display when visiting files. - -+++ -*** User option `server-mode' can be used to start a server process. - -** Menu support: - ---- -*** Dialogs and menus pop down if you type C-g. - ---- -*** The menu item "Open File..." has been split into two items, "New File..." -and "Open File...". "Open File..." now opens only existing files. This is -to support existing GUI file selection dialogs better. - -+++ -*** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be -disabled by customizing the variable `use-file-dialog'. - ** X Windows Support: +++ @@ -1296,24 +1377,6 @@ and use the more appropriately result. On the other hand, the size of the thumb does not represent the actual amount of text shown any more (only a crude approximation of it). ---- -*** The pop up menus for Lucid now stay up if you do a fast click and can -be navigated with the arrow keys (like Gtk+, Mac and W32). - -+++ -*** The Lucid menus can display multilingual text in your locale. You have -to explicitly specify a fontSet resource for this to work, for example -`-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. - ---- -*** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing -ESC, like they do for Gtk+, Mac and W32. - -+++ -*** For Gtk+ version 2.4, you can make Emacs use the old file dialog -by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use -the new dialog. - ** Xterm support: --- @@ -1358,7 +1421,7 @@ colors as on X. --- *** There's a new support for colors on `rxvt' terminal emulator. -* New modes and packages in Emacs 22.1 +* New Modes and Packages in Emacs 22.1 +++ ** New package benchmark.el contains simple support for convenient @@ -1631,8 +1694,66 @@ restores the previous value of `buffer-invisibility-spec'. +++ ** The wdired.el package allows you to use normal editing commands on Dired buffers to change filenames, permissions, etc... + +--- +** The TCL package tcl-mode.el was replaced by tcl.el. +This was actually done in Emacs-21.1, and was not documented. + +** The new package bindat.el provides functions to unpack and pack +binary data structures, such as network packets, to and from Lisp +data structures. + ++++ +** The new package button.el implements simple and fast `clickable buttons' +in emacs buffers. `buttons' are much lighter-weight than the `widgets' +implemented by widget.el, and can be used by lisp code that doesn't +require the full power of widgets. Emacs uses buttons for such things +as help and apropos buffers. + +--- +** master-mode.el implements a minor mode for scrolling a slave +buffer without leaving your current buffer, the master buffer. + +It can be used by sql.el, for example: the SQL buffer is the master +and its SQLi buffer is the slave. This allows you to scroll the SQLi +buffer containing the output from the SQL buffer containing the +commands. + +This is how to use sql.el and master.el together: the variable +sql-buffer contains the slave buffer. It is a local variable in the +SQL buffer. + +(add-hook 'sql-mode-hook + (function (lambda () + (master-mode t) + (master-set-slave sql-buffer)))) +(add-hook 'sql-set-sqli-hook + (function (lambda () + (master-set-slave sql-buffer)))) + ++++ +** New Lisp library testcover.el works with edebug to help you determine +whether you've tested all your Lisp code. Function testcover-start +instruments all functions in a given file. Then test your code. Function +testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to +show where coverage is lacking. Command testcover-next-mark (bind it to +a key!) will move point forward to the next spot that has a splotch. + +Normally, a red splotch indicates the form was never completely +evaluated; a brown splotch means it always evaluated to the same +value. The red splotches are skipped for forms that can't possibly +complete their evaluation, such as `error'. The brown splotches are +skipped for forms that are expected to always evaluate to the same +value, such as (setq x 14). + +For difficult cases, you can add do-nothing macros to your code to +help out the test coverage tool. The macro `noreturn' suppresses a +red splotch. It is an error if the argument to `noreturn' does +return. The macro 1value suppresses a brown splotch for its argument. +This macro is a no-op except during test-coverage -- then it signals +an error if the argument actually returns differing values. -* Changes in specialized modes and packages: +* Changes in Specialized Modes and Packages in Emacs 22.1: +++ ** In Outline mode, hide-body no longer hides lines at the top @@ -1676,22 +1797,11 @@ resync points in both windows. When this option is enabled, M-x add-change-log-entry always starts a new record regardless of when the last record is. -+++ -** There is a new user option `mail-default-directory' that allows you -to specify the value of `default-directory' for mail buffers. This -directory is used for auto-save files of mail buffers. It defaults to -"~/". - -+++ -** Emacs can now indicate in the mode-line the presence of new e-mail -in a directory or in a file. See the documentation of the user option -`display-time-mail-directory'. - --- ** PO translation files are decoded according to their MIME headers when Emacs visits them. -** Info mode: +** Info mode changes: +++ *** A numeric prefix argument of `info' selects an Info buffer @@ -1775,7 +1885,7 @@ function also defines the result format for `eval-expression' (M-:), `eval-print-last-sexp' (C-j) and some edebug evaluation functions. +++ -** CC Mode changes. +** CC mode changes. *** Font lock support. CC Mode now provides font lock support for all its languages. This @@ -2517,6 +2627,17 @@ anyone has committed to the repository since you last executed "checkout", "update" or "commit". That means using cvs diff options -rBASE -rHEAD. ++++ +** There is a new user option `mail-default-directory' that allows you +to specify the value of `default-directory' for mail buffers. This +directory is used for auto-save files of mail buffers. It defaults to +"~/". + ++++ +** Emacs can now indicate in the mode-line the presence of new e-mail +in a directory or in a file. See the documentation of the user option +`display-time-mail-directory'. + ** Rmail changes: --- @@ -2732,6 +2853,24 @@ This is like `strokes-global-set-stroke', but it allows you to bind the stroke directly to a string to insert. This is convenient for using strokes as an input method. +** Emacs server changes: + ++++ +*** You can have several Emacs servers on the same machine. + + % emacs --eval '(setq server-name "foo")' -f server-start & + % emacs --eval '(setq server-name "bar")' -f server-start & + % emacsclient -s foo file1 + % emacsclient -s bar file2 + ++++ +*** The `emacsclient' command understands the options `--eval' and +`--display' which tell Emacs respectively to evaluate the given elisp +expression and to use the given display when visiting files. + ++++ +*** User option `server-mode' can be used to start a server process. + --- ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. @@ -2779,7 +2918,7 @@ boundries etc. For more info, see the documentation of the variable --- ** cplus-md.el has been removed to avoid problems with Custom. -* Changes for non-free operating systems +* Changes in Emacs 22.1 on non-free operating systems +++ ** Passing resources on the command line now works on MS Windows. @@ -2853,11 +2992,6 @@ variable `mac-keyboard-text-encoding' and the constants * Incompatible Lisp Changes in Emacs 22.1 -+++ -** The new interactive-specification `G' reads a file name -much like `F', but if the input is a directory name (even defaulted), -it returns just the directory name. - +++ ** `suppress-keymap' now works by remapping `self-insert-command' to the command `undefined'. (In earlier Emacs versions, it used @@ -2868,161 +3002,145 @@ the command `undefined'. (In earlier Emacs versions, it used ** Mode line display ignores text properties as well as the :propertize and :eval forms in the value of a variable whose `risky-local-variable' property is nil. + +--- +** Support for Mocklisp has been removed. * Lisp Changes in Emacs 22.1 -** New function `locate-file' searches for a file in a list of directories. -`locate-file' accepts a name of a file to search (a string), and two -lists: a list of directories to search in and a list of suffixes to -try; typical usage might use `exec-path' and `load-path' for the list -of directories, and `exec-suffixes' and `load-suffixes' for the list -of suffixes. The function also accepts a predicate argument to -further filter candidate files. - -One advantage of using this function is that the list of suffixes in -`exec-suffixes' is OS-dependant, so this function will find -executables without polluting Lisp code with OS dependancies. +** General Lisp changes: +++ -** The default value of `sentence-end' is now defined using the new -variable `sentence-end-without-space', which contains such characters -that end a sentence without following spaces. - -The function `sentence-end' should be used to obtain the value of the -variable `sentence-end'. If the variable `sentence-end' is nil, then -this function returns the regexp constructed from the variables -`sentence-end-without-period', `sentence-end-double-space' and -`sentence-end-without-space'. +*** The function `eql' is now available without requiring the CL package. +++ -** The argument to forward-word, backward-word, forward-to-indentation -and backward-to-indentation is now optional, and defaults to 1. +*** `makehash' is now obsolete. Use `make-hash-table' instead. +++ -** If a command sets transient-mark-mode to `only', that -enables Transient Mark mode for the following command only. -During that following command, the value of transient-mark-mode -is `identity'. If it is still `identity' at the end of the command, -it changes to nil. +*** If optional third argument APPEND to `add-to-list' is non-nil, a +new element gets added at the end of the list instead of at the +beginning. This change actually occurred in Emacs-21.1, but was not +documented. +++ -** The new hook `before-save-hook' is invoked by `basic-save-buffer' -before saving buffers. This allows packages to perform various final -tasks, for example; it can be used by the copyright package to make -sure saved files have the current year in any copyright headers. +*** New function `copy-tree' makes a copy of a tree, recursively copying +both cars and cdrs. +++ -** If a buffer sets buffer-save-without-query to non-nil, -save-some-buffers will always save that buffer without asking -(if it's modified). +*** New function `delete-dups' destructively removes `equal' +duplicates from a list. Of several `equal' occurrences of an element +in the list, the first one is kept. + ++++ +*** `declare' is now a macro. This change was made mostly for +documentation purposes and should have no real effect on Lisp code. + ++++ +*** The new function `rassq-delete-all' deletes all elements from an +alist whose cdr is `eq' to a specified value. + ++++ +*** The function `number-sequence' returns a list of equally-separated +numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). +By default, the separation is 1, but you can specify a different separation +as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). + ++++ +*** The variables `most-positive-fixnum' and `most-negative-fixnum' +hold the largest and smallest possible integer values. + ++++ +*** The flags, width, and precision options for %-specifications in function +`format' are now documented. Some flags that were accepted but not +implemented (such as "*") are no longer accepted. + ++++ +*** Functions `get' and `plist-get' no longer signals an error for +a malformed property list. They also detect cyclic lists. + ++++ +*** The new functions `lax-plist-get' and `lax-plist-put' are like +`plist-get' and `plist-put', except that they compare the property +name using `equal' rather than `eq'. + ++++ +*** The new variable `print-continuous-numbering', when non-nil, says +that successive calls to print functions should use the same +numberings for circular structure references. This is only relevant +when `print-circle' is non-nil. + +When you bind `print-continuous-numbering' to t, you should +also bind `print-number-table' to nil. + ++++ +*** New function `macroexpand-all' expands all macros in a form. + +It is similar to the Common-Lisp function of the same name. +One difference is that it guarantees to return the original argument +if no expansion is done, which can be tested using `eq'. + ++++ +*** The function `atan' now accepts an optional second argument. + +When called with 2 arguments, as in `(atan Y X)', `atan' returns the +angle in radians between the vector [X, Y] and the X axis. (This is +equivalent to the standard C library function `atan2'.) + ++++ +*** A function's doc string can now specify the calling pattern. + +You put this in the doc string's last line, which should match the +regexp "\n\n(fn.*)\\'". + ++++ +*** New macro `with-local-quit' temporarily sets `inhibit-quit' to nil. + +This is for use around potentially blocking or long-running code in +timers and `post-command-hook' functions. + +*** `define-obsolete-function-alias' +combines `defalias' and `make-obsolete'. + ++++ +*** New function `unsafep' returns nil if the given Lisp form can't +possibly do anything dangerous; otherwise it returns a reason why the +form might be unsafe (calls unknown function, alters global variable, +etc). + +** Lisp code indentation features: + ++++ +*** The `defmacro' form can contain declarations specifying how to +indent the macro in Lisp mode and how to debug it with Edebug. The +syntax of defmacro has been extended to + + (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) + +DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The +declaration specifiers supported are: + +(indent INDENT) + Set NAME's `lisp-indent-function' property to INDENT. + +(edebug DEBUG) + Set NAME's `edebug-form-spec' property to DEBUG. (This is + equivalent to writing a `def-edebug-spec' for the macro. --- -** list-buffers-noselect now takes an additional argument, BUFFER-LIST. -If it is non-nil, it specifies which buffers to list. +*** cl-indent now allows customization of Indentation of backquoted forms. -+++ -** The kill-buffer-hook is now permanent-local. - -+++ -** `auto-save-file-format' has been renamed to -`buffer-auto-save-file-format' and made into a permanent local. - -+++ -** Functions `file-name-sans-extension' and `file-name-extension' now -ignore the leading dots in file names, so that file names such as -`.emacs' are treated as extensionless. - -+++ -** copy-file now takes an additional option arg MUSTBENEW. - -This argument works like the MUSTBENEW argument of write-file. - -+++ -** If the second argument to `copy-file' is the name of a directory, -the file is copied to that directory instead of signaling an error. - -+++ -** `visited-file-modtime' and `calendar-time-from-absolute' now return -a list of two integers, instead of a cons. - -+++ -** `file-chase-links' now takes an optional second argument LIMIT which -specifies the maximum number of links to chase through. If after that -many iterations the file name obtained is still a symbolic link, -`file-chase-links' returns it anyway. - -+++ -** The function `commandp' takes an additional optional -argument. If it is non-nil, then `commandp' checks -for a function that could be called with `call-interactively', -and does not return t for keyboard macros. - -+++ -** An interactive specification can now use the code letter 'U' to get -the up-event that was discarded in case the last key sequence read for a -previous 'k' or 'K' argument was a down-event; otherwise nil is used. +See the new user option `lisp-backquote-indentation'. --- -** Functions y-or-n-p, read-char, read-key-sequence and the like, that -display a prompt but don't use the minibuffer, now display the prompt -using the text properties (esp. the face) of the prompt string. +*** cl-indent now handles indentation of simple and extended `loop' forms. + +The new user options `lisp-loop-keyword-indentation', +`lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can +be used to customize the indentation of keywords and forms in loop +forms. +++ -** read-from-minibuffer now accepts an additional argument KEEP-ALL -saying to put all inputs in the history list, even empty ones. - -+++ -** The `read-file-name' function now takes an additional argument which -specifies a predicate which the file name read must satify. The -new variable `read-file-name-predicate' contains the predicate argument -while reading the file name from the minibuffer; the predicate in this -variable is used by read-file-name-internal to filter the completion list. - ---- -** The new variable `read-file-name-function' can be used by lisp code -to override the internal read-file-name function. - -+++ -** The new variable `read-file-name-completion-ignore-case' specifies -whether completion ignores case when reading a file name with the -`read-file-name' function. - -+++ -** The new function `read-directory-name' can be used instead of -`read-file-name' to read a directory name; when used, completion -will only show directories. - -+++ -** The new variable search-spaces-regexp controls how to search -for spaces in a regular expression. If it is non-nil, it should be a -regular expression, and any series of spaces stands for that regular -expression. If it is nil, spaces stand for themselves. - -Spaces inside of constructs such as [..] and *, +, ? are never -replaced with search-spaces-regexp. - -+++ -** There are now two new regular expression operators, \_< and \_>, -for matching the beginning and end of a symbol. A symbol is a -non-empty sequence of either word or symbol constituent characters, as -specified by the syntax table. - -+++ -** skip-chars-forward and skip-chars-backward now handle -character classes such as [:alpha:], along with individual characters -and ranges. - ---- -** In `replace-match', the replacement text no longer inherits -properties from surrounding text. - -+++ -** The list returned by `(match-data t)' now has the buffer as a final -element, if the last match was on a buffer. `set-match-data' -accepts such a list for restoring the match state. - -+++ -** Variable aliases have been implemented: +** Variable aliases: *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] @@ -3044,9 +3162,492 @@ It might be noteworthy that variables aliases work for all kinds of variables, including buffer-local and frame-local variables. +++ -*** The macro define-obsolete-variable-alias combines defvaralias and -make-obsolete-variable. The macro define-obsolete-function-alias -combines defalias and make-obsolete. +*** The macro `define-obsolete-variable-alias' combines `defvaralias' and +`make-obsolete-variable'. + +** defcustom changes: + ++++ +*** defcustom and other custom declarations now use a default group +(the last prior group defined in the same file) when no :group was given. + +--- +*** The new customization type `float' specifies numbers with floating +point (no integers are allowed). + +** String changes: + ++++ +*** The escape sequence \s is now interpreted as a SPACE character, +unless it is followed by a `-' in a character constant (e.g. ?\s-A), +in which case it is still interpreted as the super modifier. +In strings, \s is always interpreted as a space. + ++++ +*** A hex escape in a string forces the string to be multibyte. +An octal escape makes it unibyte. + ++++ +*** `split-string' now includes null substrings in the returned list if +the optional argument SEPARATORS is non-nil and there are matches for +SEPARATORS at the beginning or end of the string. If SEPARATORS is +nil, or if the new optional third argument OMIT-NULLS is non-nil, all +empty matches are omitted from the returned list. + ++++ +*** New function `string-to-multibyte' converts a unibyte string to a +multibyte string with the same individual character codes. + ++++ +*** New function `substring-no-properties returns a substring without +text properties. + ++++ +*** The new function `assoc-string' replaces `assoc-ignore-case' and +`assoc-ignore-representation', which are still available, but have +been declared obsolete. + +** Buffer/variable changes: + ++++ +*** The new function `buffer-local-value' returns the buffer-local +binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not +have a buffer-local binding in buffer BUFFER, it returns the default +value of VARIABLE instead. + ++++ +** There is a new facility for displaying warnings to the user. + +See the functions `warn' and `display-warning' . + ++++ +** Progress reporters. + +These provide a simple and uniform way for commands to present +progress messages for the user. + +See the new functions `make-progress-reporter', +`progress-reporter-update', `progress-reporter-force-update', +`progress-reporter-done', and `dotimes-with-progress-reporter'. + +** Buffer positions: + ++++ +*** Function `compute-motion' now calculates the usable window +width if the WIDTH argument is nil. If the TOPOS argument is nil, +the usable window height and width is used. + ++++ +*** The `line-move', `scroll-up', and `scroll-down' functions will now +modify the window vscroll to scroll through display rows that are +taller that the height of the window, for example in the presense of +large images. To disable this feature, Lisp code can bind the new +variable `auto-window-vscroll' to nil. + ++++ +*** The argument to `forward-word', `backward-word', +`forward-to-indentation' and `backward-to-indentation' is now +optional, and defaults to 1. + ++++ +*** Lisp code can now test if a given buffer position is inside a +clickable link with the new function `mouse-on-link-p'. This is the +function used by the new `mouse-1-click-follows-link' functionality. + ++++ +*** New function `line-number-at-pos' returns the line number of the +current line in the current buffer, or if optional buffer position is +given, line number of corresponding line in current buffer. + ++++ +*** `field-beginning' and `field-end' now accept an additional optional +argument, LIMIT. + ++++ +*** Function `pos-visible-in-window-p' now returns the pixel coordinates +and partial visiblity state of the corresponding row, if the PARTIALLY +arg is non-nil. + ++++ +*** New functions `posn-at-point' and `posn-at-x-y' return +click-event-style position information for a given visible buffer +position or for a given window pixel coordinate. + +** Text modification: + ++++ +*** The new function `insert-buffer-substring-as-yank' works like +`insert-buffer-substring', but removes the text properties in the +`yank-excluded-properties' list. + ++++ +*** The new function `insert-buffer-substring-no-properties' is like +insert-buffer-substring, but removes all text properties from the +inserted substring. + ++++ +*** The new function `filter-buffer-substring' extracts a buffer +substring, passes it through a set of filter functions, and returns +the filtered substring. It is used instead of `buffer-substring' or +`delete-and-extract-region' when copying text into a user-accessible +data structure, like the kill-ring, X clipboard, or a register. The +list of filter function is specified by the new variable +`buffer-substring-filters'. For example, Longlines mode uses +`buffer-substring-filters' to remove soft newlines from the copied +text. + ++++ +*** Function `translate-region' accepts also a char-table as TABLE +argument. + ++++ +*** The new translation table `translation-table-for-input' +is used for customizing self-insertion. The character to +be inserted is translated through it. + +--- +*** Text clones. + +The new function `text-clone-create'. Text clones are chunks of text +that are kept identical by transparently propagating changes from one +clone to the other. + +--- +*** The function `insert-string' is now obsolete. + +** Syntax table changes: + ++++ +*** The macro `with-syntax-table' does not copy the table any more. + ++++ +*** The new function `syntax-after' returns the syntax code +of the character after a specified buffer position, taking account +of text properties as well as the character code. + ++++ +*** `syntax-class' extracts the class of a syntax code (as returned +by syntax-after). + +*** The new package `syntax.el' provides an efficient way to find the +current syntactic context (as returned by `parse-partial-sexp'). + +** GC changes: + ++++ +*** New variables `gc-elapsed' and `gcs-done' provide extra information +on garbage collection. + ++++ +*** Functions from `post-gc-hook' are run at the end of garbage +collection. The hook is run with GC inhibited, so use it with care. + +** Buffer-related changes: + +--- +*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. +If it is non-nil, it specifies which buffers to list. + ++++ +*** `kill-buffer-hook' is now a permanent local. + +** Local variables lists: + ++++ +*** Text properties in local variables. + +A file local variables list cannot specify a string with text +properties--any specified text properties are discarded. + ++++ +*** The variable `safe-local-eval-forms' specifies a list of forms that +are ok to evaluate when they appear in an `eval' local variables +specification. Normally Emacs asks for confirmation before evaluating +such a form, but if the form appears in this list, no confirmation is +needed. + +--- +*** If a function has a non-nil `safe-local-eval-function' property, +that means it is ok to evaluate some calls to that function when it +appears in an `eval' local variables specification. If the property +is t, then any form calling that function with constant arguments is +ok. If the property is a function or list of functions, they are called +with the form as argument, and if any returns t, the form is ok to call. + +If the form is not "ok to call", that means Emacs asks for +confirmation as before. + +** Abbrev changes: + +*** The new function copy-abbrev-table returns a new abbrev table that +is a copy of a given abbrev table. + ++++ +*** define-abbrev now accepts an optional argument SYSTEM-FLAG. If +non-nil, this marks the abbrev as a "system" abbrev, which means that +it won't be stored in the user's abbrevs file if he saves the abbrevs. +Major modes that predefine some abbrevs should always specify this +flag. + +** Undo changes: + ++++ +*** An element of buffer-undo-list can now have the form (apply FUNNAME +. ARGS), where FUNNAME is a symbol other than t or nil. That stands +for a high-level change that should be undone by evaluating (apply +FUNNAME ARGS). + +These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) +which indicates that the change which took place was limited to the +range BEG...END and increased the buffer size by DELTA. + ++++ +*** If the buffer's undo list for the current command gets longer than +undo-outer-limit, garbage collection empties it. This is to prevent +it from using up the available memory and choking Emacs. + ++++ +** New `yank-handler' text property can be used to control how +previously killed text on the kill-ring is reinserted. + +The value of the yank-handler property must be a list with one to four +elements with the following format: + (FUNCTION PARAM NOEXCLUDE UNDO). + +The `insert-for-yank' function looks for a yank-handler property on +the first character on its string argument (typically the first +element on the kill-ring). If a yank-handler property is found, +the normal behavior of `insert-for-yank' is modified in various ways: + + When FUNCTION is present and non-nil, it is called instead of `insert' +to insert the string. FUNCTION takes one argument--the object to insert. + If PARAM is present and non-nil, it replaces STRING as the object +passed to FUNCTION (or `insert'); for example, if FUNCTION is +`yank-rectangle', PARAM should be a list of strings to insert as a +rectangle. + If NOEXCLUDE is present and non-nil, the normal removal of the +yank-excluded-properties is not performed; instead FUNCTION is +responsible for removing those properties. This may be necessary +if FUNCTION adjusts point before or after inserting the object. + If UNDO is present and non-nil, it is a function that will be called +by `yank-pop' to undo the insertion of the current object. It is +called with two arguments, the start and end of the current region. +FUNCTION can set `yank-undo-function' to override the UNDO value. + +*** The functions kill-new, kill-append, and kill-region now have an +optional argument to specify the yank-handler text property to put on +the killed text. + +*** The function yank-pop will now use a non-nil value of the variable +`yank-undo-function' (instead of delete-region) to undo the previous +yank or yank-pop command (or a call to insert-for-yank). The function +insert-for-yank automatically sets that variable according to the UNDO +element of the string argument's yank-handler text property if present. + +*** The function `insert-for-yank' now supports strings where the +`yank-handler' property does not span the first character of the +string. The old behavior is available if you call +`insert-for-yank-1' instead. + +*** The new function insert-for-yank normally works like `insert', but +removes the text properties in the `yank-excluded-properties' list. +However, the insertion of the text can be modified by a `yank-handler' +text property. + +** File operation changes: + ++++ +*** New vars `exec-suffixes' and `load-suffixes' used when +searching for an executable resp. an elisp file. + ++++ +*** The new primitive `set-file-times' sets a file's access and +modification times. Magic file name handlers can handle this +operation. + ++++ +*** The new function `file-remote-p' tests a file name and returns +non-nil if it specifies a remote file (one that Emacs accesses using +its own special methods and not directly through the file system). +The value in that case is an identifier for the remote file system. + ++++ +*** `auto-save-file-format' has been renamed to +`buffer-auto-save-file-format' and made into a permanent local. + ++++ +*** Functions `file-name-sans-extension' and `file-name-extension' now +ignore the leading dots in file names, so that file names such as +`.emacs' are treated as extensionless. + ++++ +*** copy-file now takes an additional option arg MUSTBENEW. + +This argument works like the MUSTBENEW argument of write-file. + ++++ +*** If the second argument to `copy-file' is the name of a directory, +the file is copied to that directory instead of signaling an error. + ++++ +*** `visited-file-modtime' and `calendar-time-from-absolute' now return +a list of two integers, instead of a cons. + ++++ +*** `file-chase-links' now takes an optional second argument LIMIT which +specifies the maximum number of links to chase through. If after that +many iterations the file name obtained is still a symbolic link, +`file-chase-links' returns it anyway. + ++++ +*** The new hook `before-save-hook' is invoked by `basic-save-buffer' +before saving buffers. This allows packages to perform various final +tasks, for example; it can be used by the copyright package to make +sure saved files have the current year in any copyright headers. + ++++ +*** If a buffer sets buffer-save-without-query to non-nil, +save-some-buffers will always save that buffer without asking +(if it's modified). + +*** New function `locate-file' searches for a file in a list of directories. +`locate-file' accepts a name of a file to search (a string), and two +lists: a list of directories to search in and a list of suffixes to +try; typical usage might use `exec-path' and `load-path' for the list +of directories, and `exec-suffixes' and `load-suffixes' for the list +of suffixes. The function also accepts a predicate argument to +further filter candidate files. + +One advantage of using this function is that the list of suffixes in +`exec-suffixes' is OS-dependant, so this function will find +executables without polluting Lisp code with OS dependancies. + +--- +*** The precedence of file-name-handlers has been changed. +Instead of blindly choosing the first handler that matches, +find-file-name-handler now gives precedence to a file-name handler +that matches near the end of the file name. More specifically, the +handler whose (match-beginning 0) is the largest is chosen. +In case of ties, the old "first matched" rule applies. + ++++ +*** A file name handler can declare which operations it handles. + +You do this by putting an `operation' property on the handler name +symbol. The property value should be a list of the operations that +the handler really handles. It won't be called for any other +operations. + +This is useful for autoloaded handlers, to prevent them from being +autoloaded when not really necessary. + +** Input changes: + ++++ +*** An interactive specification can now use the code letter 'U' to get +the up-event that was discarded in case the last key sequence read for a +previous 'k' or 'K' argument was a down-event; otherwise nil is used. + ++++ +*** The new interactive-specification `G' reads a file name +much like `F', but if the input is a directory name (even defaulted), +it returns just the directory name. + +--- +*** Functions y-or-n-p, read-char, read-key-sequence and the like, that +display a prompt but don't use the minibuffer, now display the prompt +using the text properties (esp. the face) of the prompt string. + ++++ +*** (while-no-input BODY...) runs BODY, but only so long as no input +arrives. If the user types or clicks anything, BODY stops as if a +quit had occurred. while-no-input returns the value of BODY, if BODY +finishes. It returns nil if BODY was aborted. + +** Minibuffer changes: + +*** The new function `minibufferp' returns non-nil if its optional +buffer argument is a minibuffer. If the argument is omitted, it +defaults to the current buffer. + ++++ +*** New function minibuffer-selected-window returns the window which +was selected when entering the minibuffer. + ++++ +*** read-from-minibuffer now accepts an additional argument KEEP-ALL +saying to put all inputs in the history list, even empty ones. + ++++ +*** The `read-file-name' function now takes an additional argument which +specifies a predicate which the file name read must satify. The +new variable `read-file-name-predicate' contains the predicate argument +while reading the file name from the minibuffer; the predicate in this +variable is used by read-file-name-internal to filter the completion list. + +--- +*** The new variable `read-file-name-function' can be used by lisp code +to override the internal read-file-name function. + ++++ +*** The new variable `read-file-name-completion-ignore-case' specifies +whether completion ignores case when reading a file name with the +`read-file-name' function. + ++++ +*** The new function `read-directory-name' can be used instead of +`read-file-name' to read a directory name; when used, completion +will only show directories. + +** Searching and matching changes: + ++++ +*** New function `looking-back' checks whether a regular expression matches +the text before point. Specifying the LIMIT argument bounds how far +back the match can start; this is a way to keep it from taking too long. + ++++ +*** The new variable search-spaces-regexp controls how to search +for spaces in a regular expression. If it is non-nil, it should be a +regular expression, and any series of spaces stands for that regular +expression. If it is nil, spaces stand for themselves. + +Spaces inside of constructs such as [..] and *, +, ? are never +replaced with search-spaces-regexp. + ++++ +*** There are now two new regular expression operators, \_< and \_>, +for matching the beginning and end of a symbol. A symbol is a +non-empty sequence of either word or symbol constituent characters, as +specified by the syntax table. + ++++ +*** skip-chars-forward and skip-chars-backward now handle +character classes such as [:alpha:], along with individual characters +and ranges. + +--- +*** In `replace-match', the replacement text no longer inherits +properties from surrounding text. + ++++ +*** The list returned by `(match-data t)' now has the buffer as a final +element, if the last match was on a buffer. `set-match-data' +accepts such a list for restoring the match state. + +--- +*** rx.el has new corresponding `symbol-end' and `symbol-start' elements. + ++++ +*** The default value of `sentence-end' is now defined using the new +variable `sentence-end-without-space', which contains such characters +that end a sentence without following spaces. + +The function `sentence-end' should be used to obtain the value of the +variable `sentence-end'. If the variable `sentence-end' is nil, then +this function returns the regexp constructed from the variables +`sentence-end-without-period', `sentence-end-double-space' and +`sentence-end-without-space'. +++ ** Enhancements to keymaps. @@ -3203,76 +3804,6 @@ will lead to undesirable results, so don't let it happen; the first change group you start for any given buffer should be the last one finished. -+++ -** Progress reporters. -The new functions `make-progress-reporter', `progress-reporter-update', -`progress-reporter-force-update', `progress-reporter-done', and -`dotimes-with-progress-reporter' provide a simple and efficient way for -a command to present progress messages for the user. - -+++ -** New `yank-handler' text property can be used to control how -previously killed text on the kill-ring is reinserted. - -The value of the yank-handler property must be a list with one to four -elements with the following format: - (FUNCTION PARAM NOEXCLUDE UNDO). - -The `insert-for-yank' function looks for a yank-handler property on -the first character on its string argument (typically the first -element on the kill-ring). If a yank-handler property is found, -the normal behavior of `insert-for-yank' is modified in various ways: - - When FUNCTION is present and non-nil, it is called instead of `insert' -to insert the string. FUNCTION takes one argument--the object to insert. - If PARAM is present and non-nil, it replaces STRING as the object -passed to FUNCTION (or `insert'); for example, if FUNCTION is -`yank-rectangle', PARAM should be a list of strings to insert as a -rectangle. - If NOEXCLUDE is present and non-nil, the normal removal of the -yank-excluded-properties is not performed; instead FUNCTION is -responsible for removing those properties. This may be necessary -if FUNCTION adjusts point before or after inserting the object. - If UNDO is present and non-nil, it is a function that will be called -by `yank-pop' to undo the insertion of the current object. It is -called with two arguments, the start and end of the current region. -FUNCTION can set `yank-undo-function' to override the UNDO value. - -*** The functions kill-new, kill-append, and kill-region now have an -optional argument to specify the yank-handler text property to put on -the killed text. - -*** The function yank-pop will now use a non-nil value of the variable -`yank-undo-function' (instead of delete-region) to undo the previous -yank or yank-pop command (or a call to insert-for-yank). The function -insert-for-yank automatically sets that variable according to the UNDO -element of the string argument's yank-handler text property if present. - -*** The function `insert-for-yank' now supports strings where the -`yank-handler' property does not span the first character of the -string. The old behavior is available if you call -`insert-for-yank-1' instead. - -*** The new function insert-for-yank normally works like `insert', but -removes the text properties in the `yank-excluded-properties' list. -However, the insertion of the text can be modified by a `yank-handler' -text property. - -+++ -** An element of buffer-undo-list can now have the form (apply FUNNAME -. ARGS), where FUNNAME is a symbol other than t or nil. That stands -for a high-level change that should be undone by evaluating (apply -FUNNAME ARGS). - -These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) -which indicates that the change which took place was limited to the -range BEG...END and increased the buffer size by DELTA. - -+++ -** If the buffer's undo list for the current command gets longer than -undo-outer-limit, garbage collection empties it. This is to prevent -it from using up the available memory and choking Emacs. - +++ ** Enhancements to process support @@ -3312,25 +3843,27 @@ non-nil value (the default), as it will automatically delay reading from such processes, to allowing them to produce more output before emacs tries to read it. -*** The new function `call-process-shell-command' executes a shell -command command synchronously in a separate process. +*** The new function `call-process-shell-command'. + +This executes a shell command command synchronously in a separate +process. *** The new function `process-file' is similar to `call-process', but obeys file handlers. The file handler is chosen based on -default-directory. - -*** The new function `set-process-filter-multibyte' sets the -multibyteness of a string given to a process's filter. - -*** The new function `process-filter-multibyte-p' returns t if a -string given to a process's filter is multibyte. +`default-directory'. *** A filter function of a process is called with a multibyte string if the filter's multibyteness is t. That multibyteness is decided by the value of `default-enable-multibyte-characters' when the process is created and can be changed later by `set-process-filter-multibyte'. -*** If a process's coding system is raw-text or no-conversion and its +*** The new function `set-process-filter-multibyte' sets the +multibyteness of the strings passed to the process's filter. + +*** The new function `process-filter-multibyte-p' returns the +multibyteness of the strings passed to the process's filter. + +*** If a process's coding system is `raw-text' or `no-conversion' and its buffer is multibyte, the output of the process is at first converted to multibyte by `string-to-multibyte' then inserted in the buffer. Previously, it was converted to multibyte by `string-as-multibyte', @@ -3415,31 +3948,19 @@ deleted network process is "deleted". The message passed to the sentinel when the connection is closed by the remote peer has been changed to "connection broken by remote peer". -+++ -** New function `force-window-update' can initiate a full redisplay of -one or all windows. Normally, this is not needed as changes in window -contents are detected automatically. However, certain implicit -changes to mode lines, header lines, or display properties may require -forcing an explicit window update. +** Using window objects: +++ -** The line-move, scroll-up, and scroll-down functions will now -modify the window vscroll to scroll through display rows that are -taller that the height of the window, for example in the presense of -large images. To disable this feature, Lisp code can bind the new -variable `auto-window-vscroll' to nil. +*** New function `window-body-height'. + +This is like `window-height' but does not count the mode line or the +header line. +++ -** Function `compute-motion' now calculates the usable window -width if the WIDTH argument is nil. If the TOPOS argument is nil, -the usable window height and width is used. +*** New function `window-body-height'. -+++ -** Function pos-visible-in-window-p now returns the pixel coordinates -and partial visiblity state of the corresponding row, if the PARTIALLY -arg is non-nil. - -** Changes in using window objects: +This is like window-height but does not count the mode line +or the header line. +++ *** You can now make a window as short as one line. @@ -3462,11 +3983,12 @@ return window edges in units of pixels, rather than columns and lines. +++ *** The new macro `with-selected-window' temporarily switches the -selected window without impacting the order of buffer-list. +selected window without impacting the order of `buffer-list'. +++ -*** `select-window' takes an optional second argument `norecord', like -`switch-to-buffer'. +*** `select-window' takes an optional second argument `norecord'. + +This is like `switch-to-buffer'. +++ *** `save-selected-window' now saves and restores the selected window @@ -3474,32 +3996,33 @@ of every frame. This way, it restores everything that can be changed by calling `select-window'. +++ -*** The function `set-window-buffer' now has an optional third argument -KEEP-MARGINS which will preserve the window's current margin, fringe, -and scroll-bar settings if non-nil. +*** `set-window-buffer' has an optional argument KEEP-MARGINS. + +If non-nil, that says to preserve the window's current margin, fringe, +and scroll-bar settings. +++ ** Customizable fringe bitmaps -*** New function 'define-fringe-bitmap' can now be used to create new +*** New function `define-fringe-bitmap' can now be used to create new fringe bitmaps, as well as change the built-in fringe bitmaps. To change a built-in bitmap, do (require 'fringe) and use the symbol identifing the bitmap such as `left-truncation or `continued-line'. -*** New function 'destroy-fringe-bitmap' can be used to destroy a -previously created bitmap, or restore a built-in bitmap. +*** New function `destroy-fringe-bitmap' deletes a fringe bitmap +or restores a built-in one to its default value. -*** New function 'set-fringe-bitmap-face' can now be used to set a +*** New function `set-fringe-bitmap-face' can now be used to set a specific face to be used for a specific fringe bitmap. The face is automatically merged with the `fringe' face, so normally, the face should only specify the foreground color of the bitmap. -*** There are new display properties, left-fringe and right-fringe, +*** There are new display properties, `left-fringe; and `right-fringe', that can be used to show a specific bitmap in the left or right fringe bitmap of the display line. -Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a +Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a symbol identifying a fringe bitmap, either built-in or defined with `define-fringe-bitmap', and FACE is an optional face name to be used for displaying the bitmap instead of the default `fringe' face. @@ -3508,8 +4031,10 @@ When specified, FACE is automatically merged with the `fringe' face. *** New function `fringe-bitmaps-at-pos' returns the current fringe bitmaps in the display line at a given buffer position. +** Other window fringe features: + +++ -** Controlling the default left and right fringe widths. +*** Controlling the default left and right fringe widths. The default left and right fringe widths for all windows of a frame can now be controlled by setting the `left-fringe' and `right-fringe' @@ -3529,9 +4054,9 @@ of the currently defined fringe bitmaps. The width of the built-in fringe bitmaps is 8 pixels. +++ -** Per-window fringe and scrollbar settings +*** Per-window fringe and scrollbar settings -*** Windows can now have their own individual fringe widths and +**** Windows can now have their own individual fringe widths and position settings. To control the fringe widths of a window, either set the buffer-local @@ -3549,7 +4074,7 @@ settings. To make `left-fringe-width', `right-fringe-width', and displaying the buffer in a window, or use `set-window-buffer' to force an update of the display margins. -*** Windows can now have their own individual scroll-bar settings +**** Windows can now have their own individual scroll-bar settings controlling the width and position of scroll-bars. To control the scroll-bar of a window, either set the buffer-local @@ -3560,15 +4085,32 @@ used to obtain the current settings. To make `scroll-bar-mode' and the buffer in a window, or use `set-window-buffer' to force an update of the display margins. -+++ -** When using non-toolkit scroll bars with the default width, -the scroll-bar-width frame parameter value is nil. +** Redisplay features: +++ -** Multiple overlay arrows can now be defined and managed via the new -variable `overlay-arrow-variable-list'. It contains a list of -varibles which contain overlay arrow position markers, including -the original `overlay-arrow-position' variable. +*** `sit-for' can now be called with args (SECONDS &optional NODISP). + ++++ +*** New function `force-window-update' can initiate a full redisplay of +one or all windows. Normally, this is not needed as changes in window +contents are detected automatically. However, certain implicit +changes to mode lines, header lines, or display properties may require +forcing an explicit window update. + ++++ +*** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able +to display CHAR. More precisely, if the selected frame's fontset has +a font to display the character set that CHAR belongs to. + +Fontsets can specify a font on a per-character basis; when the fontset +does that, this value cannot be accurate. + ++++ +*** You can define multiple overlay arrows via the new +variable `overlay-arrow-variable-list'. + +It contains a list of varibles which contain overlay arrow position +markers, including the original `overlay-arrow-position' variable. Each variable on this list can have individual `overlay-arrow-string' and `overlay-arrow-bitmap' properties that specify an overlay arrow @@ -3578,52 +4120,52 @@ If either property is not set, the default `overlay-arrow-string' or 'overlay-arrow-fringe-bitmap' will be used. +++ -** New line-height and line-spacing properties for newline characters +*** New `line-height' and `line-spacing' properties for newline characters -A newline can now have line-height and line-spacing text or overlay +A newline can now have `line-height' and `line-spacing' text or overlay properties that control the height of the corresponding display row. -If the line-height property value is t, the newline does not +If the `line-height' property value is t, the newline does not contribute to the height of the display row; instead the height of the -newline glyph is reduced. Also, a line-spacing property on this +newline glyph is reduced. Also, a `line-spacing' property on this newline is ignored. This can be used to tile small images or image slices without adding blank areas between the images. -If the line-height property value is a positive integer, the value +If the `line-height' property value is a positive integer, the value specifies the minimum line height in pixels. If necessary, the line height it increased by increasing the line's ascent. -If the line-height property value is a float, the minimum line height -is calculated by multiplying the default frame line height by the -given value. +If the `line-height' property value is a float, the minimum line +height is calculated by multiplying the default frame line height by +the given value. -If the line-height property value is a cons (FACE . RATIO), the +If the `line-height' property value is a cons (FACE . RATIO), the minimum line height is calculated as RATIO * height of named FACE. RATIO is int or float. If FACE is t, it specifies the current face. -If the line-height property value is a cons (nil . RATIO), the line +If the `line-height' property value is a cons (nil . RATIO), the line height is calculated as RATIO * actual height of the line's contents. -If the line-height value is a cons (HEIGHT . TOTAL), HEIGHT specifies +If the `line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies the line height as described above, while TOTAL is any of the forms described above and specifies the total height of the line, causing a varying number of pixels to be inserted after the line to make it line exactly that many pixels high. -If the line-spacing property value is an positive integer, the value +If the `line-spacing' property value is an positive integer, the value is used as additional pixels to insert after the display line; this -overrides the default frame line-spacing and any buffer local value of -the line-spacing variable. +overrides the default frame `line-spacing' and any buffer local value of +the `line-spacing' variable. -If the line-spacing property is a float or cons, the line spacing -is calculated as specified above for the line-height property. +If the `line-spacing' property is a float or cons, the line spacing +is calculated as specified above for the `line-height' property. +++ -** The buffer local line-spacing variable can now have a float value, +*** The buffer local line-spacing variable can now have a float value, which is used as a height relative to the default frame line height. +++ -** Enhancements to stretch display properties +*** Enhancements to stretch display properties The display property stretch specification form `(space PROPS)', where PROPS is a property list now allows pixel based width and height @@ -3680,19 +4222,29 @@ The form `(+ EXPR ...)' adds up the value of the expressions. The form `(- EXPR ...)' negates or subtracts the value of the expressions. +++ -** Support for displaying image slices +*** Normally, the cursor is displayed at the end of any overlay and +text property string that may be present at the current window +position. The cursor can now be placed on any character of such +strings by giving that character a non-nil `cursor' text property. -*** New display property (slice X Y WIDTH HEIGHT) can be used with ++++ +*** The display space :width and :align-to text properties are now +supported on text terminals. + ++++ +*** Support for displaying image slices + +**** New display property (slice X Y WIDTH HEIGHT) can be used with an image property to display only a specific slice of the image. -*** Function insert-image has new optional fourth arg to +**** Function insert-image has new optional fourth arg to specify image slice (X Y WIDTH HEIGHT). -*** New function insert-sliced-image inserts a given image as a +**** New function insert-sliced-image inserts a given image as a specified number of evenly sized slices (rows x columns). +++ -** Images can now have an associated image map via the :map property. +*** Images can now have an associated image map via the :map property. An image map is an alist where each element has the format (AREA ID PLIST). An AREA is specified as either a rectangle, a circle, or a polygon: @@ -3714,25 +4266,22 @@ When you click the mouse when the mouse pointer is over a hot-spot, an event is composed by combining the ID of the hot-spot with the mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. +** Mouse pointer features: + +++ (lispref) ??? (man) -** The mouse pointer shape in void text areas (i.e. after the end of a +*** The mouse pointer shape in void text areas (i.e. after the end of a line or below the last line in the buffer) of the text window is now controlled by the new variable `void-text-area-pointer'. The default is to use the `arrow' (non-text) pointer. Other choices are `text' (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. +++ -** The mouse pointer shape over an image can now be controlled by the +*** The mouse pointer shape over an image can now be controlled by the :pointer image property. +++ -** Lisp code can now test if a given buffer position is inside a -clickable link with the new function `mouse-on-link-p'. This is the -function used by the new `mouse-1-click-follows-link' functionality. - -+++ -** The mouse pointer shape over ordinary text or images can now be +*** The mouse pointer shape over ordinary text or images can now be controlled/overriden via the `pointer' text property. ** Mouse event enhancements: @@ -3782,33 +4331,14 @@ the top left corner of the object (image or character) clicked on. click, the x and y pixel coordinates relative to the top left corner of that object, and the total width and height of that object. -+++ -** At the end of a command, point moves out from within invisible -text, in the same way it moves out from within text covered by an -image or composition property. - -This makes it generally unnecessary to mark invisible text as intangible. -This is particularly good because the intangible property often has -unexpected side-effects since the property applies to everything -(including `goto-char', ...) whereas this new code is only run after -post-command-hook and thus does not care about intermediate states. +** Text property and overlay changes: +++ -** Normally, the cursor is displayed at the end of any overlay and -text property string that may be present at the current window -position. The cursor can now be placed on any character of such -strings by giving that character a non-nil `cursor' text property. +*** Arguments for remove-overlays are now optional, so that you can +remove all overlays in the buffer by just calling (remove-overlays). +++ -** The display space :width and :align-to text properties are now -supported on text terminals. - -+++ -** Arguments for remove-overlays are now optional, so that you can -remove all overlays in the buffer by just calling (remove-overlay). - -+++ -** New variable char-property-alias-alist. +*** New variable char-property-alias-alist. This variable allows you to create alternative names for text properties. It works at the same level as `default-text-properties', @@ -3816,36 +4346,29 @@ although it applies to overlays as well. This variable was introduced to implement the `font-lock-face' property. +++ -** New function `get-char-property-and-overlay' accepts the same +*** New function `get-char-property-and-overlay' accepts the same arguments as `get-char-property' and returns a cons whose car is the return value of `get-char-property' called with those arguments and whose cdr is the overlay in which the property was found, or nil if it was found as a text property or not found at all. +++ -** The new frame parameter `tty-color-mode' specifies the mode to use -for color support on character terminal frames. Its value can be a -number of colors to support, or a symbol. See the Emacs Lisp -Reference manual for more detailed documentation. +*** The new function remove-list-of-text-properties is almost the same +as `remove-text-properties'. The only difference is that it takes a +list of property names as argument rather than a property list. + +** Face changes +++ -** The new face attribute `min-colors' can be used to tailor the face -color to the number of colors supported by a display, and define the -foreground and background colors accordingly so that they look best on -a terminal that supports at least this many colors. This is now the -preferred method for defining default faces in a way that makes a good -use of the capabilities of the display. +*** The new face attribute condition `min-colors' can be used to tailor +the face color to the number of colors supported by a display, and +define the foreground and background colors accordingly so that they +look best on a terminal that supports at least this many colors. This +is now the preferred method for defining default faces in a way that +makes a good use of the capabilities of the display. +++ -** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able -to display CHAR. More precisely, if the selected frame's fontset has -a font to display the character set that CHAR belongs to. - -Fontsets can specify a font on a per-character basis; when the fontset -does that, this value cannot be accurate. - -+++ -** New function display-supports-face-attributes-p can be used to test +*** New function display-supports-face-attributes-p can be used to test whether a given set of face attributes is actually displayable. A new predicate `supports' has also been added to the `defface' face @@ -3853,68 +4376,83 @@ specification language, which can be used to do this test for faces defined with defface. --- -** The special treatment of faces whose names are of the form `fg:COLOR' +*** The special treatment of faces whose names are of the form `fg:COLOR' or `bg:COLOR' has been removed. Lisp programs should use the `defface' facility for defining faces with specific colors, or use the feature of specifying the face attributes :foreground and :background directly in the `face' property instead of using a named face. +++ -** The first face specification element in a defface can specify +*** The first face specification element in a defface can specify `default' instead of frame classification. Then its attributes act as defaults that apply to all the subsequent cases (and can be overridden by them). +++ -** The variable `face-font-rescale-alist' specifies how much larger +*** The variable `face-font-rescale-alist' specifies how much larger (or smaller) font we should use. For instance, if the value is '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 point, we actually use a font of 13 point if the font matches SOME-FONTNAME-PATTERN. --- -** `set-fontset-font', `fontset-info', `fontset-font' now operate on -the default fontset if the argument NAME is nil.. - ---- -** The function face-differs-from-default-p now truly checks whether the -given face displays differently from the default face or not (previously -it did only a very cursory check). +*** The function `face-differs-from-default-p' now truly checks +whether the given face displays differently from the default face or +not (previously it did only a very cursory check). +++ -** face-attribute, face-foreground, face-background, and face-stipple now -accept a new optional argument, INHERIT, which controls how face -inheritance is used when determining the value of a face attribute. +*** `face-attribute', `face-foreground', `face-background', and +`face-stipple' now accept a new optional argument, INHERIT, which +controls how face inheritance is used when determining the value of a +face attribute. +++ -** New functions face-attribute-relative-p and merge-face-attribute +*** New functions `face-attribute-relative-p' and `merge-face-attribute' help with handling relative face attributes. +++ -** The priority of faces in an :inherit attribute face-list is reversed. +*** The priority of faces in an :inherit attribute face list is reversed. + If a face contains an :inherit attribute with a list of faces, earlier -faces in the list override later faces in the list; in previous releases -of Emacs, the order was the opposite. This change was made so that -:inherit face-lists operate identically to face-lists in text `face' -properties. +faces in the list override later faces in the list; in previous +releases of Emacs, the order was the opposite. This change was made +so that :inherit face lists operate identically to face lists in text +`face' properties. +++ -** New standard font-lock face `font-lock-preprocessor-face'. +*** New standard font-lock face `font-lock-preprocessor-face'. + +--- +*** `set-fontset-font', `fontset-info', `fontset-font' now operate on +the default fontset if the argument NAME is nil.. + +** Font-Lock changes: +++ -** New special text property `font-lock-face'. +*** New special text property `font-lock-face'. This property acts like the `face' property, but it is controlled by M-x font-lock-mode. It is not, strictly speaking, a builtin text property. Instead, it is implemented inside font-core.el, using the new variable `char-property-alias-alist'. ++++ +*** font-lock can manage arbitrary text-properties beside `face'. + +*** the FACENAME returned in `font-lock-keywords' can be a list of the +form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other +properties than `face'. + +*** `font-lock-extra-managed-props' can be set to make sure those +extra properties are automatically cleaned up by font-lock. + --- -** jit-lock obeys a new text-property `jit-lock-defer-multiline'. +*** jit-lock obeys a new text-property `jit-lock-defer-multiline'. + If a piece of text with that property gets contextually refontified -(see jit-lock-defer-contextually), then all of that text will +(see `jit-lock-defer-contextually'), then all of that text will be refontified. This is useful when the syntax of a textual element -depends on text several lines further down (and when font-lock-multiline +depends on text several lines further down (and when `font-lock-multiline' is not appropriate to solve that problem). For example in Perl: s{ @@ -3924,147 +4462,110 @@ is not appropriate to solve that problem). For example in Perl: }e Adding/removing the last `e' changes the `bar' from being a piece of -text to being a piece of code, so you'd put a jit-lock-defer-multiline +text to being a piece of code, so you'd put a `jit-lock-defer-multiline' property over the second half of the command to force (deferred) refontification of `bar' whenever the `e' is added/removed. -+++ -** font-lock can manage arbitrary text-properties beside `face'. -*** the FACENAME returned in font-lock-keywords can be a list -of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set -other properties than `face'. -*** font-lock-extra-managed-props can be set to make sure those extra -properties are automatically cleaned up by font-lock. - ---- -** The precedence of file-name-handlers has been changed. -Instead of blindly choosing the first handler that matches, -find-file-name-handler now gives precedence to a file-name handler -that matches near the end of the file name. More specifically, the -handler whose (match-beginning 0) is the largest is chosen. -In case of ties, the old "first matched" rule applies. +** Major mode mechanism changes: +++ -** A file name handler can declare which operations it handles. - -You do this by putting an `operation' property on the handler name -symbol. The property value should be a list of the operations that -the handler really handles. It won't be called for any other -operations. - -This is useful for autoloaded handlers, to prevent them from being -autoloaded when not really necessary. +*** `set-auto-mode' now gives the interpreter magic line (if present) +precedence over the file name. Likewise an ` Date: Mon, 9 May 2005 21:54:06 +0000 Subject: [PATCH 07/90] *** empty log message *** --- lisp/ChangeLog | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b8170a1a95c..3fb3ff84e5e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,19 @@ +2005-05-10 Nick Roberts + + * progmodes/gdb-ui.el (gdb-macro-info): New variable. + (gdb-source-info): Check for preprocessor info. + (gdb-tooltip-print-1): New function. Don't print tooltip if it is + a macro for a function. + found (user might have used GDB dir command). + (gdb-info-breakpoints-custom): Try to find file again if not already + (gdb-get-location): Update gdb-location-alist correctly for change + to gdb-info-breakpoints-custom. + + * progmodes/gud.el (gud-tooltip-mode): Require tooltip to be safe. + (gud-tooltip-print-command): Add gdbmi case. + (gud-tooltip-tips): Call gdb-tooltip-print-1 first if there is + preprocessor info. + 2005-05-09 Reiner Steib * startup.el (fancy-splash-insert): Fix typo in doc string. From 89d8189aa891afe6048899d599c77c72bf0a3402 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Mon, 9 May 2005 21:54:47 +0000 Subject: [PATCH 08/90] (gdb-macro-info): New variable. (gdb-source-info): Check for preprocessor info. (gdb-tooltip-print-1): New function. Don't print tooltip if it is a macro for a function. found (user might have used GDB dir command). (gdb-info-breakpoints-custom): Try to find file again if not already (gdb-get-location): Update gdb-location-alist correctly for change to gdb-info-breakpoints-custom. --- lisp/progmodes/gdb-ui.el | 72 +++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 26 deletions(-) diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el index c4298ffb99b..ba0266de574 100644 --- a/lisp/progmodes/gdb-ui.el +++ b/lisp/progmodes/gdb-ui.el @@ -84,6 +84,8 @@ (defvar gdb-find-file-unhook nil) (defvar gdb-active-process nil "GUD tooltips display variable values when t, \ and #define directives otherwise.") +(defvar gdb-macro-info nil + "Non-nil if GDB knows that the inferior includes preprocessor macro info.") (defvar gdb-buffer-type nil "One of the symbols bound in `gdb-buffer-rules'.") @@ -242,6 +244,18 @@ predefined macros." (substring string 0 (- (length string) 1)))) gud-tooltip-echo-area)) +;; If expr is a macro for a function don't print because of possible dangerous +;; side-effects. Also printing a function within a tooltip generates an +;; unexpected starting annotation (phase error). +(defun gdb-tooltip-print-1 (expr) + (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer) + (goto-char (point-min)) + (if (search-forward "expands to: " nil t) + (unless (looking-at "\\S+.*(.*).*") + (gdb-enqueue-input + (list (concat gdb-server-prefix "print " expr "\n") + 'gdb-tooltip-print)))))) + (defun gdb-set-gud-minor-mode (buffer) "Set gud-minor-mode from find-file if appropriate." (goto-char (point-min)) @@ -336,6 +350,7 @@ predefined macros." (setq gdb-flush-pending-output nil) (setq gdb-location-alist nil) (setq gdb-find-file-unhook nil) + (setq gdb-macro-info nil) ;; (setq gdb-buffer-type 'gdba) ;; @@ -1293,27 +1308,27 @@ static char *magick[] = { help-echo "mouse-2, RET: visit breakpoint")) (unless (file-exists-p file) (setq file (cdr (assoc bptno gdb-location-alist)))) - (unless (string-equal file "File not found") - (if file - (with-current-buffer (find-file-noselect file) - (set (make-local-variable 'gud-minor-mode) - 'gdba) - (set (make-local-variable 'tool-bar-map) - gud-tool-bar-map) - ;; only want one breakpoint icon at each - ;; location - (save-excursion - (goto-line (string-to-number line)) - (gdb-put-breakpoint-icon (eq flag ?y) bptno))) - (gdb-enqueue-input - (list - (concat "list " - (match-string-no-properties 1) ":1\n") - 'ignore)) - (gdb-enqueue-input - (list "info source\n" - `(lambda () (gdb-get-location - ,bptno ,line ,flag))))))))))) + (if (and file + (not (string-equal file "File not found"))) + (with-current-buffer (find-file-noselect file) + (set (make-local-variable 'gud-minor-mode) + 'gdba) + (set (make-local-variable 'tool-bar-map) + gud-tool-bar-map) + ;; only want one breakpoint icon at each + ;; location + (save-excursion + (goto-line (string-to-number line)) + (gdb-put-breakpoint-icon (eq flag ?y) bptno))) + (gdb-enqueue-input + (list + (concat "list " + (match-string-no-properties 1) ":1\n") + 'ignore)) + (gdb-enqueue-input + (list "info source\n" + `(lambda () (gdb-get-location + ,bptno ,line ,flag)))))))))) (end-of-line))))) (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom))) @@ -2221,6 +2236,9 @@ buffers." (if (and (search-forward "Located in " nil t) (looking-at "\\S-*")) (setq gdb-main-file (match-string 0))) + (goto-char (point-min)) + (if (search-forward "Includes preprocessor macro info." nil t) + (setq gdb-macro-info t)) (if gdb-many-windows (gdb-setup-windows) (gdb-get-create-buffer 'gdb-breakpoints-buffer) @@ -2234,12 +2252,14 @@ Put in buffer and place breakpoint icon." (goto-char (point-min)) (catch 'file-not-found (if (search-forward "Located in " nil t) - (if (looking-at "\\S-*") - (push (cons bptno (match-string 0)) gdb-location-alist)) + (when (looking-at "\\S-*") + (delete (cons bptno "File not found") gdb-location-alist) + (push (cons bptno (match-string 0)) gdb-location-alist)) (gdb-resync) - (push (cons bptno "File not found") gdb-location-alist) - (message-box "Cannot find source file for breakpoint location.\n\ -Add directory to search path for source files using the GDB command, dir.") + (unless (assoc bptno gdb-location-alist) + (push (cons bptno "File not found") gdb-location-alist) + (message-box "Cannot find source file for breakpoint location.\n\ +Add directory to search path for source files using the GDB command, dir.")) (throw 'file-not-found nil)) (with-current-buffer (find-file-noselect (match-string 0)) From df94fa1e38259d1066763019ca711bfb4114efe1 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Mon, 9 May 2005 21:55:33 +0000 Subject: [PATCH 09/90] (gud-tooltip-mode): Require tooltip to be safe. (gud-tooltip-print-command): Add gdbmi case. (gud-tooltip-tips): Call gdb-tooltip-print-1 first if there is preprocessor info. --- lisp/progmodes/gud.el | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el index 544a4804639..5c81ba7f6f9 100644 --- a/lisp/progmodes/gud.el +++ b/lisp/progmodes/gud.el @@ -3207,6 +3207,7 @@ This event can be examined by forms in GUD-TOOLTIP-DISPLAY.") "Toggle the display of GUD tooltips." :global t :group 'gud + (require 'tooltip) (if gud-tooltip-mode (progn (add-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode) @@ -3253,7 +3254,7 @@ If GUD-TOOLTIP-DEREFERENCE is t, also prepend a `*' to EXPR." (setq expr (concat "*" expr))) (case gud-minor-mode ((gdb gdba) (concat "server print " expr)) - (dbx (concat "print " expr)) + ((dbx gdbmi) (concat "print " expr)) (xdb (concat "p " expr)) (sdb (concat expr "/")) (perldb expr))) @@ -3293,9 +3294,14 @@ This function must return nil if it doesn't handle EVENT." expr)))) (let ((cmd (gud-tooltip-print-command expr))) (unless (null cmd) ; CMD can be nil if unknown debugger - (if (eq gud-minor-mode 'gdba) - (gdb-enqueue-input - (list (concat cmd "\n") 'gdb-tooltip-print)) + (if (memq gud-minor-mode '(gdba gdbmi)) + (if gdb-macro-info + (gdb-enqueue-input + (list (concat + gdb-server-prefix "macro expand " expr "\n") + `(lambda () (gdb-tooltip-print-1 ,expr)))) + (gdb-enqueue-input + (list (concat cmd "\n") 'gdb-tooltip-print))) (setq gud-tooltip-original-filter (process-filter process)) (set-process-filter process 'gud-tooltip-process-output) (gud-basic-call cmd)) From 5fcf68a55082182a5efe29865fc7975f26502407 Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Mon, 9 May 2005 22:25:37 +0000 Subject: [PATCH 10/90] *** empty log message *** --- man/ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/man/ChangeLog b/man/ChangeLog index 31a1383aade..6c7d7c4359d 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,8 @@ +2005-05-09 Luc Teirlinck + + * screen.texi (Menu Bar): The up and down (not left and right) + arrows move through a keyboard menu. + 2005-05-08 Luc Teirlinck * basic.texi: Various typo and grammar fixes. From 05a7c229daf63949eff65ac1f3f92b4b6bdaaae8 Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Mon, 9 May 2005 22:29:45 +0000 Subject: [PATCH 11/90] (Menu Bar): The up and down (not left and right) arrows move through a keyboard menu. --- man/ChangeLog | 2 +- man/screen.texi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/man/ChangeLog b/man/ChangeLog index 6c7d7c4359d..547eb19a43c 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,7 +1,7 @@ 2005-05-09 Luc Teirlinck * screen.texi (Menu Bar): The up and down (not left and right) - arrows move through a keyboard menu. + arrow keys move through a keyboard menu. 2005-05-08 Luc Teirlinck diff --git a/man/screen.texi b/man/screen.texi index e2987e6ccf6..a2f20e1721d 100644 --- a/man/screen.texi +++ b/man/screen.texi @@ -341,7 +341,7 @@ way (@pxref{Key Help}). typing @kbd{M-`} or @key{F10} (these run the command @code{tmm-menubar}). This command enters a mode in which you can select a menu item from the keyboard. A provisional choice appears in the echo -area. You can use the left and right arrow keys to move through the +area. You can use the up and down arrow keys to move through the menu to different choices. When you have found the choice you want, type @key{RET} to select it. From 2792c60a6f54c2da179eaadea89d15f2873d1cad Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 07:26:25 +0000 Subject: [PATCH 12/90] (Arguments): Fix punctuation. --- man/basic.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/basic.texi b/man/basic.texi index c8922996534..3fbaff2a1e7 100644 --- a/man/basic.texi +++ b/man/basic.texi @@ -780,7 +780,7 @@ without digits normally means @minus{}1. sign has the special meaning of ``multiply by four.'' It multiplies the argument for the next command by four. @kbd{C-u} twice multiplies it by sixteen. Thus, @kbd{C-u C-u C-f} moves forward sixteen characters. This -is a good way to move forward ``fast'', since it moves about 1/5 of a line +is a good way to move forward ``fast,'' since it moves about 1/5 of a line in the usual size screen. Other useful combinations are @kbd{C-u C-n}, @kbd{C-u C-u C-n} (move down a good fraction of a screen), @kbd{C-u C-u C-o} (make ``a lot'' of blank lines), and @kbd{C-u C-k} (kill four From 0003d2e3191b1eb64ac347323f52c8649cbe0100 Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Tue, 10 May 2005 09:02:40 +0000 Subject: [PATCH 13/90] (font-lock-keywords-alist, font-lock-removed-keywords-alist): Clarify docstrings. --- lisp/ChangeLog | 15 ++++++++++++--- lisp/font-lock.el | 19 +++++++++++++++++-- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3fb3ff84e5e..8a42652db07 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-10 Lute Kamstra + + * font-lock.el (font-lock-keywords-alist) + (font-lock-removed-keywords-alist): Clarify docstrings. + 2005-05-10 Nick Roberts * progmodes/gdb-ui.el (gdb-macro-info): New variable. @@ -412,11 +417,15 @@ with mode-require-final-newline. (mode-require-final-newline): Doc fix. -2005-05-01 Lute Kamstra +2005-05-01 Stefan Monnier * international/latexenc.el (latexenc-find-file-coding-system): - Fix regular expressions. Suggested by David Kastrup - and Stefan Monnier . + Fix regular expressions. + +2005-05-01 David Kastrup + + * international/latexenc.el (latexenc-find-file-coding-system): + Fix regular expressions. 2005-05-01 Nick Roberts diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 2121bde8e49..d2ffdf44bdb 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -470,12 +470,27 @@ user-level keywords, but normally their values have been optimized.") (defvar font-lock-keywords-alist nil - "Alist of `font-lock-keywords' local to a `major-mode'. + "Alist of additional `font-lock-keywords' elements for major modes. + +Each element has the form (MODE KEYWORDS . APPEND). +`font-lock-set-defaults' adds the elements in the list KEYWORDS to +`font-lock-keywords' when Font Lock is turned on in major mode MODE. + +If APPEND is nil, KEYWORDS are added at the beginning of +`font-lock-keywords'. If it is `set', they are used to replace the +value of `font-lock-keywords'. If APPEND is any other non-nil value, +they are added at the end. + This is normally set via `font-lock-add-keywords' and `font-lock-remove-keywords'.") (defvar font-lock-removed-keywords-alist nil - "Alist of `font-lock-keywords' removed from `major-mode'. + "Alist of `font-lock-keywords' elements to be removed for major modes. + +Each element has the form (MODE . KEYWORDS). `font-lock-set-defaults' +removes the elements in the list KEYWORDS from `font-lock-keywords' +when Font Lock is turned on in major mode MODE. + This is normally set via `font-lock-add-keywords' and `font-lock-remove-keywords'.") From cc45837e571e9dd9845f1e00ab56893d8dde7dd5 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:08:28 +0000 Subject: [PATCH 14/90] (read-directory-name): Fix previous change. (hack-local-variables-confirm): New function. (hack-local-variables-prop-line, hack-local-variables) (hack-one-local-variable): Use it. --- lisp/files.el | 68 ++++++++++++++++++--------------------------------- 1 file changed, 24 insertions(+), 44 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index e74e1adcf3d..fa6d91fa421 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -541,9 +541,6 @@ DIR should be an absolute directory name. It defaults to the value of `default-directory'." (unless dir (setq dir default-directory)) - (unless default-dirname - (setq default-dirname - (if initial (concat dir initial) default-directory))) (read-file-name prompt dir (or default-dirname (if initial (expand-file-name initial dir) dir)) @@ -2147,6 +2144,26 @@ Otherwise, return nil; point may be changed." (goto-char beg) end)))) +(defun hack-local-variables-confirm () + (or (eq enable-local-variables t) + (and enable-local-variables + (save-window-excursion + (condition-case nil + (switch-to-buffer (current-buffer)) + (error + ;; If we fail to switch in the selected window, + ;; it is probably a minibuffer or dedicated window. + ;; So try another window. + (let ((pop-up-frames nil)) + ;; Refrain from popping up frames since it can't + ;; be undone by save-window-excursion. + (pop-to-buffer (current-buffer))))) + (save-excursion + (beginning-of-line) + (set-window-start (selected-window) (point))) + (y-or-n-p (format "Set local variables as specified in -*- line of %s? " + (file-name-nondirectory buffer-file-name))))))) + (defun hack-local-variables-prop-line (&optional mode-only) "Set local variables specified in the -*- line. Ignore any specification for `mode:' and `coding:'; @@ -2201,21 +2218,7 @@ is specified, returning t if it is specified." (if mode-only mode-specified (if (and result (or mode-only - (eq enable-local-variables t) - (and enable-local-variables - (save-window-excursion - (condition-case nil - (switch-to-buffer (current-buffer)) - (error - ;; If we fail to switch in the selected window, - ;; it is probably a minibuffer. - ;; So try another window. - (condition-case nil - (switch-to-buffer-other-window (current-buffer)) - (error - (switch-to-buffer-other-frame (current-buffer)))))) - (y-or-n-p (format "Set local variables as specified in -*- line of %s? " - (file-name-nondirectory buffer-file-name))))))) + (hack-local-variables-confirm))) (let ((enable-local-eval enable-local-eval)) (while result (hack-one-local-variable (car (car result)) (cdr (car result))) @@ -2244,20 +2247,8 @@ is specified, returning t if it is specified." (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) (when (let ((case-fold-search t)) (and (search-forward "Local Variables:" nil t) - (or (eq enable-local-variables t) - mode-only - (and enable-local-variables - (save-window-excursion - (switch-to-buffer (current-buffer)) - (save-excursion - (beginning-of-line) - (set-window-start (selected-window) (point))) - (y-or-n-p (format "Set local variables as specified at end of %s? " - (if buffer-file-name - (file-name-nondirectory - buffer-file-name) - (concat "buffer " - (buffer-name)))))))))) + (or mode-only + (hack-local-variables-confirm)))) (skip-chars-forward " \t") (let ((enable-local-eval enable-local-eval) ;; suffix is what comes after "local variables:" in its line. @@ -2478,18 +2469,7 @@ is considered risky." (hack-one-local-variable-eval-safep val)) ;; Permit eval if not root and user says ok. (and (not (zerop (user-uid))) - (or (eq enable-local-eval t) - (and enable-local-eval - (save-window-excursion - (switch-to-buffer (current-buffer)) - (save-excursion - (beginning-of-line) - (set-window-start (selected-window) (point))) - (setq enable-local-eval - (y-or-n-p (format "Process `eval' or hook local variables in %s? " - (if buffer-file-name - (concat "file " (file-name-nondirectory buffer-file-name)) - (concat "buffer " (buffer-name))))))))))) + (hack-local-variables-confirm))) (if (eq var 'eval) (save-excursion (eval val)) (make-local-variable var) From 541044b0e19f365cdb882d7d68bbf9acf37a37e8 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:09:58 +0000 Subject: [PATCH 15/90] (custom-file): Call file-chase-links. --- lisp/cus-edit.el | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index 93b310fdb17..50c9accb9ce 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -3835,20 +3835,21 @@ if only the first line of the docstring is shown.")) (defun custom-file () "Return the file name for saving customizations." - (or custom-file - (let ((user-init-file user-init-file) - (default-init-file - (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs"))) - (when (null user-init-file) - (if (or (file-exists-p default-init-file) - (and (eq system-type 'windows-nt) - (file-exists-p "~/_emacs"))) - ;; Started with -q, i.e. the file containing - ;; Custom settings hasn't been read. Saving - ;; settings there would overwrite other settings. - (error "Saving settings from \"emacs -q\" would overwrite existing customizations")) - (setq user-init-file default-init-file)) - user-init-file))) + (file-chase-links + (or custom-file + (let ((user-init-file user-init-file) + (default-init-file + (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs"))) + (when (null user-init-file) + (if (or (file-exists-p default-init-file) + (and (eq system-type 'windows-nt) + (file-exists-p "~/_emacs"))) + ;; Started with -q, i.e. the file containing + ;; Custom settings hasn't been read. Saving + ;; settings there would overwrite other settings. + (error "Saving settings from \"emacs -q\" would overwrite existing customizations")) + (setq user-init-file default-init-file)) + user-init-file)))) (defun custom-save-delete (symbol) "Visit `custom-file' and delete all calls to SYMBOL from it. From 7f2b9f61c577d8277966a9fc208a4600912c3635 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:11:43 +0000 Subject: [PATCH 16/90] (ada-adjust-case-skeleton): Moved to ada-mode.el. (ada-stmt-mode-hook): Deleted; do the work in ada-mode. --- lisp/progmodes/ada-stmt.el | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el index 3262f41bb5f..362ec87ba04 100644 --- a/lisp/progmodes/ada-stmt.el +++ b/lisp/progmodes/ada-stmt.el @@ -466,22 +466,6 @@ Invoke right after `ada-function-spec' or `ada-procedure-spec'." > "terminate;") -(defun ada-adjust-case-skeleton () - "Adjust the case of the text inserted by a skeleton." - (save-excursion - (let ((aa-end (point))) - (ada-adjust-case-region - (progn (goto-char (symbol-value 'beg)) (forward-word -1) (point)) - (goto-char aa-end))))) - -(defun ada-stmt-mode-hook () - (set (make-local-variable 'skeleton-further-elements) - '((< '(backward-delete-char-untabify - (min ada-indent (current-column)))))) - (add-hook 'skeleton-end-hook 'ada-adjust-case-skeleton nil t)) - -(add-hook 'ada-mode-hook 'ada-stmt-mode-hook) - (provide 'ada-stmt) ;;; arch-tag: 94f51555-cc0e-44e5-8865-8788aae8ecd3 From 4d9db685ef795001d85c5550bd36d993e0c9dde5 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:12:40 +0000 Subject: [PATCH 17/90] (ada-adjust-case-skeleton): Moved from ada-stmt.el. (ada-mode): Add ada-adjust-case-skeleton to skeleton-end-hook. --- lisp/progmodes/ada-mode.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el index 818e58dd891..d31978b5ec9 100644 --- a/lisp/progmodes/ada-mode.el +++ b/lisp/progmodes/ada-mode.el @@ -1364,6 +1364,11 @@ If you use ada-xref.el: (add-hook 'local-write-file-hooks (lambda () (untabify (point-min) (point-max)))))) + (set (make-local-variable 'skeleton-further-elements) + '((< '(backward-delete-char-untabify + (min ada-indent (current-column)))))) + (add-hook 'skeleton-end-hook 'ada-adjust-case-skeleton nil t) + (run-hooks 'ada-mode-hook) ;; To be run after the hook, in case the user modified @@ -1393,6 +1398,13 @@ If you use ada-xref.el: (if ada-auto-case (ada-activate-keys-for-case))) +(defun ada-adjust-case-skeleton () + "Adjust the case of the text inserted by a skeleton." + (save-excursion + (let ((aa-end (point))) + (ada-adjust-case-region + (progn (goto-char (symbol-value 'beg)) (forward-word -1) (point)) + (goto-char aa-end))))) ;; transient-mark-mode and mark-active are not defined in XEmacs (defun ada-region-selected () From 3f0f48c040ce7767452d34462e7f0897ede70096 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:13:04 +0000 Subject: [PATCH 18/90] (sh-indent-for-do): Default to 0. --- lisp/progmodes/sh-script.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 55ea460e421..70172e22732 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1126,7 +1126,7 @@ does not affect then else elif or fi statements themselves." :type `(choice ,@ sh-number-or-symbol-list ) :group 'sh-indentation) -(defcustom sh-indent-for-do '* +(defcustom sh-indent-for-do 0 "*How much to indent a do statement. This is relative to the statement before the do, i.e. the while until or for statement." From bf58181a31cc543b4e137ad2929bdbf4d85ae066 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:15:49 +0000 Subject: [PATCH 19/90] (Extended Menu Items): Menu item filter functions can be called at any time. --- lispref/keymaps.texi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi index 59e2e19966d..e1784dd10a0 100644 --- a/lispref/keymaps.texi +++ b/lispref/keymaps.texi @@ -1909,6 +1909,10 @@ This property provides a way to compute the menu item dynamically. The property value @var{filter-fn} should be a function of one argument; when it is called, its argument will be @var{real-binding}. The function should return the binding to use instead. + +Emacs can call this function at any time that it does redisplay or +operates on menu data structures, so you should write it so it can +safely be called at any time. @end table @node Menu Separators From 8faf605706a494c59042e1faf562d608f310698b Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:18:02 +0000 Subject: [PATCH 20/90] Don't include signal.h. --- src/image.c | 1 - src/xfns.c | 1 - src/xmenu.c | 2 ++ 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/image.c b/src/image.c index 6a1fc7aa795..f03adfdc48f 100644 --- a/src/image.c +++ b/src/image.c @@ -20,7 +20,6 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include -#include #include #include #include diff --git a/src/xfns.c b/src/xfns.c index 7e790e1eaa3..4e0e18137c3 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -20,7 +20,6 @@ the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include -#include #include #include diff --git a/src/xmenu.c b/src/xmenu.c index 085bdfd139d..768bd62da52 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -33,8 +33,10 @@ Boston, MA 02111-1307, USA. */ #include +#if 0 /* Why was this included? And without syssignal.h? */ /* On 4.3 this loses if it comes after xterm.h. */ #include +#endif #include From 285a529b0c094775437874eb10bf24eeea7ea365 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:18:48 +0000 Subject: [PATCH 21/90] (noinclude): Add #undef. --- src/xterm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/xterm.c b/src/xterm.c index fcc4c67743a..e9b1ff3aac4 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -7762,6 +7762,12 @@ x_error_handler (display, error) #define NO_INLINE #endif +/* Some versions of GNU/Linux define noinline in their headers. */ + +#ifdef noinclude +#undef noinclude +#endif + /* On older GCC versions, just putting x_error_quitter after x_error_handler prevents inlining into the former. */ From 5599ac1015754964640a1e10d73b7e96125dec32 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:19:19 +0000 Subject: [PATCH 22/90] Fix previous change. --- src/xterm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index e9b1ff3aac4..74e82735b6f 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -7764,8 +7764,8 @@ x_error_handler (display, error) /* Some versions of GNU/Linux define noinline in their headers. */ -#ifdef noinclude -#undef noinclude +#ifdef noinline +#undef noinline #endif /* On older GCC versions, just putting x_error_quitter From aac19cea96fc5678555e601ed3a75bd7d3e3b3fa Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:20:52 +0000 Subject: [PATCH 23/90] (Tooltips): Cleanups. --- man/frames.texi | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/man/frames.texi b/man/frames.texi index 139560af30e..68d406b45e3 100644 --- a/man/frames.texi +++ b/man/frames.texi @@ -970,24 +970,24 @@ the setting of this variable has no effect. @node Tooltips @section Tooltips +@cindex tooltips - Tooltips are small windows that display text information at the + @dfn{Tooltips} are small windows that display text information at the current mouse position. They activate when there is a pause in mouse -movement. +movement. There are two types of tooltip: help tooltips and GUD +tooltips. -There are two types of tooltip: help tooltips and GUD tooltips. - -Help tooltips typically display over text--including the mode -line--but may be also available for many other parts of the Emacs + @dfn{Help tooltips} typically display over text---including the mode +line---but may be also available for many other parts of the Emacs frame such as the toolbar and menu items. @findex tooltip-mode You can toggle help tooltips (Tooltip mode) with the command -@kbd{M-x tooltip-mode}. When Tooltip mode is disabled, the help text + @kbd{M-x tooltip-mode}. When Tooltip mode is disabled, the help text is displayed in the echo area instead. -GUD tooltips are useful when you are debugging a -program. @xref{Debugger Operation}. + @dfn{GUD tooltips} show values of variables. They are useful when +you are debugging a program. @xref{Debugger Operation}. @vindex tooltip-delay The variables @code{tooltip-delay} specifies how long Emacs should From 3fce19f17f44f464ce6714d6ddb645a529827c71 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:21:52 +0000 Subject: [PATCH 24/90] (Compilation): Clarify recompile's directory choice. --- man/building.texi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/man/building.texi b/man/building.texi index b3c7fa4f2da..99bc20260b2 100644 --- a/man/building.texi +++ b/man/building.texi @@ -117,8 +117,11 @@ that is running. You can also kill the compilation process with @findex recompile To rerun the last compilation with the same command, type @kbd{M-x -recompile}. This automatically reuses the compilation command from the -last invocation of @kbd{M-x compile}. +recompile}. This automatically reuses the compilation command from +the last invocation of @kbd{M-x compile}. It also reuses the +@samp{*compilation*} buffer and starts the compilation in its default +directory, which is the directory in which the previous compilation +was started. Emacs does not expect a compiler process to launch asynchronous subprocesses; if it does, and they keep running after the main From d101bf56d09580bb050a4ae1077a42973b992413 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 10 May 2005 09:22:07 +0000 Subject: [PATCH 25/90] *** empty log message *** --- admin/FOR-RELEASE | 1 - etc/TODO | 5 +++++ lisp/ChangeLog | 20 +++++++++++++++++++- lispref/ChangeLog | 5 +++++ man/ChangeLog | 8 ++++++++ src/ChangeLog | 6 ++++++ 6 files changed, 43 insertions(+), 2 deletions(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 8af79e4df8b..7dfd9ee5480 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -96,7 +96,6 @@ DIRECTORY STATUS IN CHARGE lisp/international working Kenichi Handa lisp/languages working Kenichi Handa - ** Update AUTHORS. ** Reorder NEWS entries. diff --git a/etc/TODO b/etc/TODO index 70760be2fb6..5ce3074e5e7 100644 --- a/etc/TODO +++ b/etc/TODO @@ -9,6 +9,9 @@ to the FSF. * Small but important fixes needed in existing features: +** Convert everything that uses post-command-idle-hook + to use idle timers instead. + ** Fix the kill/yank treatment of invisible text. At the moment, invisible text is placed in the kill-ring, so that the contents of the ring may not correspond to the text as displayed to the user. It @@ -256,6 +259,8 @@ to the FSF. ** Make monochrome images display using the foreground and background colors of the applicable faces. +** Face remapping. + ** Add support for rendering antialiased text, probably using XRender/Freetype. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8a42652db07..8687a5b6199 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,19 @@ +2005-05-10 Richard M. Stallman + + * progmodes/sh-script.el (sh-indent-for-do): Default to 0. + + * progmodes/ada-mode.el (ada-adjust-case-skeleton): + Moved from ada-stmt.el. + (ada-mode): Add ada-adjust-case-skeleton to skeleton-end-hook. + + * progmodes/ada-stmt.el (ada-adjust-case-skeleton): + Moved to ada-mode.el. + (ada-stmt-mode-hook): Deleted; do the work in ada-mode. + + * cus-edit.el (custom-file): Call file-chase-links. + + * files.el (read-directory-name): Fix previous change. + 2005-05-10 Lute Kamstra * font-lock.el (font-lock-keywords-alist) @@ -273,6 +289,8 @@ 2005-05-04 Richard M. Stallman + * help.el (describe-key): No error when UNTRANSLATED is nil. + * simple.el (line-move-1): Fix previous change to signal errors appropriately. @@ -4920,7 +4938,7 @@ * vc-svn.el (vc-svn-diff): Stay local if possible. -2005-01-02 Stefan +2005-01-02 Stefan Monnier * vc-arch.el (vc-arch-workfile-version): Handle the empty-branch case. diff --git a/lispref/ChangeLog b/lispref/ChangeLog index aa90a4f0e73..487e92490ef 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,8 @@ +2005-05-10 Richard M. Stallman + + * keymaps.texi (Extended Menu Items): Menu item filter functions + can be called at any time. + 2005-05-08 Luc Teirlinck * variables.texi (File Local Variables): `(hack-local-variables t)' diff --git a/man/ChangeLog b/man/ChangeLog index 547eb19a43c..5244b52de73 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,11 @@ +2005-05-10 Richard M. Stallman + + * building.texi (Compilation): Clarify recompile's directory choice. + + * frames.texi (Tooltips): Cleanups. + + * basic.texi (Arguments): Fix punctuation. + 2005-05-09 Luc Teirlinck * screen.texi (Menu Bar): The up and down (not left and right) diff --git a/src/ChangeLog b/src/ChangeLog index a8e248a1718..c20072eb80c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2005-05-10 Richard M. Stallman + + * xterm.c (noinclude): Add #undef. + + * image.c, xfns.c, xmenu.c: Don't include signal.h. + 2005-05-09 Juanma Barranquero * fileio.c (Fexpand_file_name, Frename_file, Fadd_name_to_file) From cfb79865bf67c3b01b52a8dce34a3f647ca9d115 Mon Sep 17 00:00:00 2001 From: Jay Belanger Date: Tue, 10 May 2005 20:22:07 +0000 Subject: [PATCH 26/90] (calc-m-prefix-help): Add mention of preserving embedded modes. --- lisp/ChangeLog | 5 +++++ lisp/calc/calc-help.el | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8687a5b6199..1da54994989 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-10 Jay Belanger + + * calc/calc-help.el (calc-m-prefix-help): Add mention of + preserving embedded modes. + 2005-05-10 Richard M. Stallman * progmodes/sh-script.el (sh-indent-for-do): Default to 0. diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index 2a89bb2b883..da2b8434c17 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el @@ -630,7 +630,7 @@ C-w Describe how there is no warranty for Calc." (interactive) (calc-do-prefix-help '("Deg, Rad, HMS; Frac; Polar; Inf; Alg, Total; Symb; Vec/mat" - "Working; Xtensions; Mode-save" + "Working; Xtensions; Mode-save; preserve Embedded modes" "SHIFT + Shifted-prefixes, mode-Filename; Record; reCompute" "SHIFT + simplify: Off, Num, Default, Bin, Alg, Ext, Units") "mode" ?m)) From 36ad23ecb54ed700756a4ebbe95f4e3fe01ae244 Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Wed, 11 May 2005 12:29:09 +0000 Subject: [PATCH 27/90] (Top): Add some nodes from the chapter "Major and Minor Modes" to the detailed node listing. --- lispref/ChangeLog | 5 +++++ lispref/elisp.texi | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 487e92490ef..09de3f00be4 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,8 @@ +2005-05-11 Lute Kamstra + + * elisp.texi (Top): Add some nodes from the chapter "Major and + Minor Modes" to the detailed node listing. + 2005-05-10 Richard M. Stallman * keymaps.texi (Extended Menu Items): Menu item filter functions diff --git a/lispref/elisp.texi b/lispref/elisp.texi index 894ebb20df3..d6a6b28dac3 100644 --- a/lispref/elisp.texi +++ b/lispref/elisp.texi @@ -548,6 +548,11 @@ Major and Minor Modes * Major Modes:: Defining major modes. * Minor Modes:: Defining minor modes. * Mode Line Format:: Customizing the text that appears in the mode line. +* Imenu:: How a mode can provide a menu + of definitions in the buffer. +* Font Lock Mode:: How modes can highlight text according to syntax. +* Desktop Save Mode:: How modes can have buffer state saved between + Emacs sessions. * Hooks:: How to use hooks; how to write code that provides hooks. @@ -557,17 +562,26 @@ Major Modes * Example Major Modes:: Text mode and Lisp modes. * Auto Major Mode:: How Emacs chooses the major mode automatically. * Mode Help:: Finding out how to use a mode. +* Derived Modes:: Defining a new major mode based on another major + mode. +* Generic Modes:: Defining a simple major mode that supports + comment syntax and Font Lock mode. +* Mode Hooks:: Hooks run at the end of major mode functions. Minor Modes * Minor Mode Conventions:: Tips for writing a minor mode. * Keymaps and Minor Modes:: How a minor mode can have its own keymap. +* Defining Minor Modes:: A convenient facility for defining minor modes. Mode Line Format * Mode Line Data:: The data structure that controls the mode line. * Mode Line Variables:: Variables used in that data structure. * %-Constructs:: Putting information into a mode line. +* Properties in Mode:: Using text properties in the mode line. +* Header Lines:: Like a mode line, but at the top. +* Emulating Mode Line:: Formatting text as the mode line would. Documentation From 1f9d439a45d8d36a65c067bc34f6e97633e2589d Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Wed, 11 May 2005 12:33:06 +0000 Subject: [PATCH 28/90] *** empty log message *** --- lisp/ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1da54994989..c483fefaefb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2005-05-11 Chong Yidong + + * mouse-sel.el (mouse-sel-follow-link-p): New function. + (mouse-select, mouse-select-internal, mouse-extend-internal): + Use it to implement mouse-1-click-follows-link functionality. + 2005-05-10 Jay Belanger * calc/calc-help.el (calc-m-prefix-help): Add mention of From 3f00c08b2ba845fc53fb0cb10886ed28c294ddb3 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Wed, 11 May 2005 12:33:44 +0000 Subject: [PATCH 29/90] From Chong Yidong (mouse-sel-follow-link-p): New function. (mouse-select, mouse-select-internal, mouse-extend-internal): Use it to implement mouse-1-click-follows-link functionality. --- lisp/mouse-sel.el | 53 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/lisp/mouse-sel.el b/lisp/mouse-sel.el index 4f3741a5213..4cabafe737d 100644 --- a/lisp/mouse-sel.el +++ b/lisp/mouse-sel.el @@ -465,10 +465,12 @@ Clicking mouse-1 or mouse-3 kills the selected text. This should be bound to a down-mouse event." (interactive "@e") - (let (direction) + (let (select) (unwind-protect - (setq direction (mouse-select-internal 'PRIMARY event)) - (mouse-sel-primary-to-region direction)))) + (setq select (mouse-select-internal 'PRIMARY event)) + (if (and select (listp select)) + (push (cons 'mouse-2 (cdr event)) unread-command-events) + (mouse-sel-primary-to-region select))))) (defun mouse-select-secondary (event) "Set secondary selection using the mouse. @@ -487,7 +489,14 @@ This should be bound to a down-mouse event." (mouse-select-internal 'SECONDARY event)) (defun mouse-select-internal (selection event) - "Set SELECTION using the mouse." + "Set SELECTION using the mouse, with EVENT as the initial down-event. +Normally, this returns the direction in which the selection was +made: a value of 1 indicates that the mouse was dragged +left-to-right, otherwise it was dragged right-to-left. + +However, if `mouse-1-click-follows-link' is non-nil and the +subsequent mouse events specify following a link, this returns +the final mouse-event. In that case, the selection is not set." (mouse-sel-eval-at-event-end event (let ((thing-symbol (mouse-sel-selection-thing selection)) (overlay (mouse-sel-selection-overlay selection))) @@ -501,7 +510,8 @@ This should be bound to a down-mouse event." (car object-bounds) (cdr object-bounds) (current-buffer))) (move-overlay overlay (point) (point) (current-buffer))))) - (mouse-extend-internal selection))) + (catch 'follow-link + (mouse-extend-internal selection event t)))) ;;=== Extend ============================================================== @@ -523,11 +533,12 @@ This should be bound to a down-mouse event." (save-window-excursion (mouse-extend-internal 'SECONDARY event))) -(defun mouse-extend-internal (selection &optional initial-event) +(defun mouse-extend-internal (selection &optional initial-event no-process) "Extend specified SELECTION using the mouse. Track mouse-motion events, adjusting the SELECTION appropriately. -Optional argument INITIAL-EVENT specifies an initial down-mouse event to -process. +Optional argument INITIAL-EVENT specifies an initial down-mouse event. +Optional argument NO-PROCESS means not to process the initial +event. See documentation for mouse-select-internal for more details." (mouse-sel-eval-at-event-end initial-event @@ -564,7 +575,8 @@ See documentation for mouse-select-internal for more details." ;; Handle dragging (track-mouse - (while (if initial-event ; Use initial event + (while (if (and initial-event (not no-process)) + ;; Use initial event (prog1 (setq event initial-event) (setq initial-event nil)) @@ -643,6 +655,10 @@ See documentation for mouse-select-internal for more details." ))) ; end track-mouse + ;; Detect follow-link events + (when (mouse-sel-follow-link-p initial-event event) + (throw 'follow-link event)) + ;; Finish up after dragging (let ((overlay-start (overlay-start overlay)) (overlay-end (overlay-end overlay))) @@ -679,6 +695,25 @@ See documentation for mouse-select-internal for more details." )))) +(defun mouse-sel-follow-link-p (initial final) + "Return t if we should follow a link, given INITIAL and FINAL mouse events. +See `mouse-1-click-follows-link' for details. Currently, Mouse +Sel mode does not support using a `double' value to follow links +using double-clicks." + (and initial final mouse-1-click-follows-link + (eq (car initial) 'down-mouse-1) + (mouse-on-link-p (posn-point (event-start initial))) + (= (posn-point (event-start initial)) + (posn-point (event-end final))) + (= (event-click-count initial) 1) + (or (not (integerp mouse-1-click-follows-link)) + (let ((t0 (posn-timestamp (event-start initial))) + (t1 (posn-timestamp (event-end final)))) + (and (integerp t0) (integerp t1) + (if (> mouse-1-click-follows-link 0) + (<= (- t1 t0) mouse-1-click-follows-link) + (< (- t0 t1) mouse-1-click-follows-link))))))) + ;;=== Paste =============================================================== (defun mouse-insert-selection (event arg) From f91aa2aac71c3857ace45085561e05c1fe16e179 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Wed, 11 May 2005 13:11:13 +0000 Subject: [PATCH 30/90] (Signals to Processes): Fix typo. --- lispref/processes.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lispref/processes.texi b/lispref/processes.texi index 2db9cd05b95..d25013124f7 100644 --- a/lispref/processes.texi +++ b/lispref/processes.texi @@ -870,7 +870,7 @@ processes. (@code{SIGHUP} is a signal that usually indicates that the user hung up the phone.) Each of the signal-sending functions takes two optional arguments: -@var{process-name} and @var{current-group}. +@var{process} and @var{current-group}. The argument @var{process} must be either a process, a process name, a buffer, a buffer name, or @code{nil}. A buffer or buffer name From 138ed6bc724ff7d747d1f763b4f8c27041a9e98e Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Wed, 11 May 2005 13:56:04 +0000 Subject: [PATCH 31/90] (Low-Level Network): Fix typo. --- lispref/processes.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lispref/processes.texi b/lispref/processes.texi index d25013124f7..abe6384728a 100644 --- a/lispref/processes.texi +++ b/lispref/processes.texi @@ -1767,7 +1767,7 @@ equivalent to specifying it with value @code{nil}, except for are the meaningful keywords: @table @asis -@item :name name +@item :name @var{name} Use the string @var{name} as the process name. It is modified if necessary to make it unique. From f714dd1be3527b6a106386399098352812f50895 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Wed, 11 May 2005 14:01:52 +0000 Subject: [PATCH 32/90] *** empty log message *** --- admin/FOR-RELEASE | 2 +- lispref/ChangeLog | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 7dfd9ee5480..97d2bdc8696 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -199,7 +199,7 @@ lispref/numbers.texi "Luc Teirlinck" Chong Yidong lispref/objects.texi "Luc Teirlinck" Chong Yidong lispref/os.texi "Luc Teirlinck" Chong Yidong lispref/positions.texi "Luc Teirlinck" Chong Yidong -lispref/processes.texi Chong Yidong +lispref/processes.texi Chong Yidong Thien-Thi Nguyen lispref/searching.texi "Luc Teirlinck" Chong Yidong lispref/sequences.texi "Luc Teirlinck" Chong Yidong lispref/streams.texi "Luc Teirlinck" Chong Yidong diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 09de3f00be4..ac62e7a4c8b 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,7 @@ +2005-05-11 Thien-Thi Nguyen + + * processes.texi (Signals to Processes): Fix typo. + 2005-05-11 Lute Kamstra * elisp.texi (Top): Add some nodes from the chapter "Major and From cc9442f21ff1b08973c311467976154b210a457a Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Wed, 11 May 2005 14:07:00 +0000 Subject: [PATCH 33/90] *** empty log message *** --- admin/FOR-RELEASE | 1 + lispref/ChangeLog | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 97d2bdc8696..ab8fc4a5274 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -95,6 +95,7 @@ DIRECTORY STATUS IN CHARGE --------- ------ --------- lisp/international working Kenichi Handa lisp/languages working Kenichi Handa +lisp/play working Thien-Thi Nguyen ** Update AUTHORS. diff --git a/lispref/ChangeLog b/lispref/ChangeLog index ac62e7a4c8b..6502f1d3858 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,6 +1,7 @@ 2005-05-11 Thien-Thi Nguyen - * processes.texi (Signals to Processes): Fix typo. + * processes.texi (Signals to Processes) + (Low-Level Network): Fix typos. 2005-05-11 Lute Kamstra From b71813cb9a4a74f5b2e06e50b0782cb7223f2045 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 11 May 2005 15:55:16 +0000 Subject: [PATCH 34/90] (font-lock-fontify-keywords-region): Use a marker when trying to ensure forward progress. --- lisp/ChangeLog | 9 +++++++-- lisp/font-lock.el | 13 ++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c483fefaefb..1ff0edac77f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-11 Stefan Monnier + + * font-lock.el (font-lock-fontify-keywords-region): Use a marker + when trying to ensure forward progress. + 2005-05-11 Chong Yidong * mouse-sel.el (mouse-sel-follow-link-p): New function. @@ -18,8 +23,8 @@ (ada-mode): Add ada-adjust-case-skeleton to skeleton-end-hook. * progmodes/ada-stmt.el (ada-adjust-case-skeleton): - Moved to ada-mode.el. - (ada-stmt-mode-hook): Deleted; do the work in ada-mode. + Move to ada-mode.el. + (ada-stmt-mode-hook): Delete; do the work in ada-mode. * cus-edit.el (custom-file): Call file-chase-links. diff --git a/lisp/font-lock.el b/lisp/font-lock.el index d2ffdf44bdb..bd0af57059f 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1420,6 +1420,7 @@ LOUDLY, if non-nil, allows progress-meter bar." (let ((case-fold-search font-lock-keywords-case-fold-search) (keywords (cddr font-lock-keywords)) (bufname (buffer-name)) (count 0) + (pos (make-marker)) keyword matcher highlights) ;; ;; Fontify each item in `font-lock-keywords' from `start' to `end'. @@ -1454,12 +1455,14 @@ LOUDLY, if non-nil, allows progress-meter bar." (while highlights (if (numberp (car (car highlights))) (font-lock-apply-highlight (car highlights)) - (let ((pos (point))) - (font-lock-fontify-anchored-keywords (car highlights) end) - ;; Ensure forward progress. - (if (< (point) pos) (goto-char pos)))) + (set-marker pos (point)) + (font-lock-fontify-anchored-keywords (car highlights) end) + ;; Ensure forward progress. `pos' is a marker because anchored + ;; keyword may add/delete text (this happens e.g. in grep.el). + (if (< (point) pos) (goto-char pos))) (setq highlights (cdr highlights)))) - (setq keywords (cdr keywords))))) + (setq keywords (cdr keywords))) + (set-marker pos nil))) ;;; End of Keyword regexp fontification functions. From c3f6aa2088306361718a65f26f767f333393ea8c Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 11 May 2005 16:24:55 +0000 Subject: [PATCH 35/90] (executable-find): Move from executable.el. Use locate-file. --- lisp/files.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/files.el b/lisp/files.el index fa6d91fa421..99847b2f3fc 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -676,6 +676,13 @@ PATH-AND-SUFFIXES is a pair of lists (DIRECTORIES . SUFFIXES)." ((null action) (try-completion string names)) (t (test-completion string names)))))) +(defun executable-find (command) + "Search for COMMAND in `exec-path' and return the absolute file name. +Return nil if COMMAND is not found anywhere in `exec-path'." + ;; Use 1 rather than file-executable-p to better match the behavior of + ;; call-process. + (locate-file command exec-path exec-suffixes 1)) + (defun load-library (library) "Load the library named LIBRARY. This is an interface to the function `load'." @@ -4855,5 +4862,5 @@ With prefix arg, silently save all file-visiting buffers, then kill." (define-key ctl-x-5-map "\C-f" 'find-file-other-frame) (define-key ctl-x-5-map "r" 'find-file-read-only-other-frame) -;;; arch-tag: bc68d3ea-19ca-468b-aac6-3a4a7766101f +;; arch-tag: bc68d3ea-19ca-468b-aac6-3a4a7766101f ;;; files.el ends here From a4479657966929ec8b38cb90ed9beb9cb2c8162e Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 11 May 2005 16:27:25 +0000 Subject: [PATCH 36/90] (font-lock-fontify-syntactically-region): Use font-lock-comment-delimiter-face for comment delimiters. --- lisp/font-lock.el | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index bd0af57059f..f2a6d244a79 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1314,7 +1314,10 @@ START should be at the beginning of a line." (defun font-lock-fontify-syntactically-region (start end &optional loudly ppss) "Put proper face on each string and comment between START and END. START should be at the beginning of a line." - (let (state face beg) + (let (state face beg + (comment-end-regexp + (regexp-quote + (replace-regexp-in-string "^ *" "" comment-end)))) (if loudly (message "Fontifying %s... (syntactically...)" (buffer-name))) (goto-char start) ;; @@ -1329,7 +1332,19 @@ START should be at the beginning of a line." (setq beg (max (nth 8 state) start)) (setq state (parse-partial-sexp (point) end nil nil state 'syntax-table)) - (when face (put-text-property beg (point) 'face face))) + (when face (put-text-property beg (point) 'face face)) + (when (eq face 'font-lock-comment-face) + ;; Find the comment delimiters + ;; and use font-lock-comment-delimiter-face for them. + (save-excursion + (goto-char beg) + (if (and comment-start-skip (looking-at comment-start-skip)) + (put-text-property beg (match-end 0) 'face + 'font-lock-comment-delimiter-face))) + (if (and comment-end + (looking-back comment-end-regexp (point-at-bol))) + (put-text-property (match-beginning 0) (point) 'face + 'font-lock-comment-delimiter-face)))) (< (point) end)) (setq state (parse-partial-sexp (point) end nil nil state 'syntax-table))))) From ba47dcb28876a44cec69a25828f1f2a420e5befd Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 11 May 2005 16:42:40 +0000 Subject: [PATCH 37/90] (executable-find): Move to files.el. --- lisp/ChangeLog | 5 ++++- lisp/progmodes/executable.el | 26 +------------------------- 2 files changed, 5 insertions(+), 26 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1ff0edac77f..4efd990f145 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2005-05-11 Stefan Monnier + * files.el (executable-find): Move from executable.el. Use locate-file. + * progmodes/executable.el (executable-find): Move to files.el. + * font-lock.el (font-lock-fontify-keywords-region): Use a marker when trying to ensure forward progress. @@ -19,7 +22,7 @@ * progmodes/sh-script.el (sh-indent-for-do): Default to 0. * progmodes/ada-mode.el (ada-adjust-case-skeleton): - Moved from ada-stmt.el. + Move from ada-stmt.el. (ada-mode): Add ada-adjust-case-skeleton to skeleton-end-hook. * progmodes/ada-stmt.el (ada-adjust-case-skeleton): diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index 0eb53771019..d278b10ba0c 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el @@ -161,30 +161,6 @@ If PROGRAM is non-nil, use that instead of \"find\"." (if (search-forward file nil t) t)))) -;;;###autoload -(defun executable-find (command) - "Search for COMMAND in `exec-path' and return the absolute file name. -Return nil if COMMAND is not found anywhere in `exec-path'." - (let ((list exec-path) - file) - (while list - (setq list - (if (and (setq file (expand-file-name command (car list))) - (let ((suffixes exec-suffixes) - candidate) - (while suffixes - (setq candidate (concat file (car suffixes))) - (if (and (file-executable-p candidate) - (not (file-directory-p candidate))) - (setq suffixes nil) - (setq suffixes (cdr suffixes)) - (setq candidate nil))) - (setq file candidate))) - nil - (setq file nil) - (cdr list)))) - file)) - (defun executable-chmod () "This gets called after saving a file to assure that it be executable. You can set the absolute or relative mode in variable `executable-chmod' for @@ -301,5 +277,5 @@ file modes." (provide 'executable) -;;; arch-tag: 58458d1c-d9db-45ec-942b-8bbb1d5e319d +;; arch-tag: 58458d1c-d9db-45ec-942b-8bbb1d5e319d ;;; executable.el ends here From 28cfe103568ad90a4e14e89ef516060358645474 Mon Sep 17 00:00:00 2001 From: Marcelo Toledo Date: Wed, 11 May 2005 18:26:03 +0000 Subject: [PATCH 38/90] Fixed wrong entries in etc/ChangeLog and replaced my email. --- etc/ChangeLog | 37 +++++++++++++++++++++---------------- etc/TUTORIAL.pt_BR | 2 +- etc/TUTORIAL.translators | 4 ++-- lisp/ChangeLog | 4 ++-- 4 files changed, 26 insertions(+), 21 deletions(-) diff --git a/etc/ChangeLog b/etc/ChangeLog index e81c661290f..95f847ac9ee 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -59,7 +59,7 @@ * TUTORIAL.de: Updated header. -2005-04-05 Marcelo Toledo +2005-04-05 Marcelo Toledo * TUTORIAL.translators: Added the field Maintainer. @@ -80,20 +80,24 @@ * TUTORIAL.es: Clean up line breaks. -2005-04-01 Marcelo Toledo +2005-04-01 Marcelo Toledo * TUTORIAL.pt_BR, TUTORIAL.cn, TUTORIAL.cs, TUTORIAL.de, * TUTORIAL.es, TUTORIAL.fr, TUTORIAL.it, TUTORIAL.ja, TUTORIAL.ko, * TUTORIAL.pl, TUTORIAL.pt_BR, TUTORIAL.ro, TUTORIAL.ru, * TUTORIAL.sk, TUTORIAL.sl, TUTORIAL.th, TUTORIAL.zh: Fix title line. - + +2005-04-01 Ognyan Kulev + * TUTORIAL.bg: Fix title line; Applied TUTORIAL changes in 2005-02-08T14:20:54Z!lute@gnu.org, "Emacs" is not transliterated to cyrillic anymore; - Minor fixes; patch by Ognyan Kulev . + Minor fixes. + +2005-04-01 Mats Lidell * TUTORIAL.sv: Sync some other changes with the TUTORIAL version - 2005-04-01T00:31:25Z!rms@gnu.org patch by Mats Lidell . + 2005-04-01T00:31:25Z!rms@gnu.org. 2005-04-01 Lute Kamstra @@ -358,7 +362,7 @@ * tree-widget: New directory containing tree-widget themes and images. -2004-04-13 Marcelo Toledo +2004-04-13 Marcelo Toledo * TUTORIAL.pt_BR: initial check-in. @@ -377,9 +381,9 @@ * TUTORIAL.it, TUTORIAL.nl, TUTORIAL.sv: Add coding: latin-1. -2004-04-16 David Kastrup +2004-04-16 Alex Ott - * TUTORIAL.ru: Changes by Alex Ott checked in. + * TUTORIAL.ru: Various corrections. 2004-04-14 Jan Nieuwenhuizen @@ -574,10 +578,9 @@ * MH-E-NEWS: Upgraded to MH-E version 7.0. -2002-11-22 Juanma Barranquero +2002-11-22 Rafael Sep,Az(Blveda - * TUTORIAL.es: Extensively changed and updated by Rafael Sep,Az(Blveda - . + * TUTORIAL.es: Extensively changed and updated. 2002-10-01 Bill Wohler @@ -1833,11 +1836,13 @@ * emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=. * emacsstool.1: update to document environment variables. + +1989-02-21 Mosur Mohan (email@notavailable) + + * etags.c (PAS_funcs): New function. 1989-02-21 Richard Stallman (rms@sugar-bombs.ai.mit.edu) - * etags.c (PAS_funcs): New function by Mosur Mohan. - * movemail.c: On sysv, include unistd.h. 1989-02-18 Richard Stallman (rms@sugar-bombs.ai.mit.edu) @@ -1856,10 +1861,10 @@ * fakemail.c (put_line): Break header lines at 79 cols. -1989-01-19 Richard Stallman (rms@sugar-bombs.ai.mit.edu) +1989-01-19 Sam Kendall (email@notavailable) - * etags.c: Greatly rewritten by Sam Kendall for C++ support and for - multiple tags per line. + * etags.c: Greatly rewritten for C++ support and for multiple tags + per line. 1989-01-03 Richard Stallman (rms@sugar-bombs.ai.mit.edu) diff --git a/etc/TUTORIAL.pt_BR b/etc/TUTORIAL.pt_BR index a7a50804ca0..56f431ecdd7 100644 --- a/etc/TUTORIAL.pt_BR +++ b/etc/TUTORIAL.pt_BR @@ -1061,7 +1061,7 @@ Esse tutorial descende de uma longa linha de tutoriais do Emacs iniciando com um escrito por Stuart Cracraft para o Emacs original. Essa versão do tutorial foi originalmente traduzida por Marcelo Toledo - e como o GNU Emacs, tem um copyright, e vem + e como o GNU Emacs, tem um copyright, e vem com uma permissão de distribuição de cópias nas seguintes condições: Copyright (c) 1985, 1996 Free Software Foundation diff --git a/etc/TUTORIAL.translators b/etc/TUTORIAL.translators index 5583430c750..d0c09e5bc7b 100644 --- a/etc/TUTORIAL.translators +++ b/etc/TUTORIAL.translators @@ -52,8 +52,8 @@ Maintainer: BeatÄ™ WierzchoÅ‚owskÄ… Janusz S. Bien * TUTORIAL.pt_BR: -Author: Marcelo Toledo -Maintainer: Marcelo Toledo +Author: Marcelo Toledo +Maintainer: Marcelo Toledo * TUTORIAL.ro: Author: Tudor Hulubei diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4efd990f145..95b6f0d3605 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1737,7 +1737,7 @@ * xt-mouse.el (xterm-mouse-mode): Add explicit Custom group, mouse. Doc fix. -2005-04-03 Marcelo Toledo +2005-04-03 Marcelo Toledo * add-log.el (change-log-font-lock-keywords): The manual describing a Change Log entry, says: (...) "Aside from these @@ -12097,7 +12097,7 @@ * tree-widget.el: New file. -2004-05-13 Marcelo Toledo +2004-05-13 Marcelo Toledo * language/european.el ("Brazilian Portuguese"): Add support for Brazilian Portuguese. From 90cbc9cda0faefbc14da6c5f50c6c9d6c4236d83 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 11 May 2005 18:52:17 +0000 Subject: [PATCH 39/90] (font-lock-fontify-syntactically-region): Don't use comment-end if comment-start-skip is not set. Obey the font-lock-comment-delimiter-face variables. --- lisp/font-lock.el | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index f2a6d244a79..f1199d1e14e 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1314,10 +1314,10 @@ START should be at the beginning of a line." (defun font-lock-fontify-syntactically-region (start end &optional loudly ppss) "Put proper face on each string and comment between START and END. START should be at the beginning of a line." - (let (state face beg - (comment-end-regexp - (regexp-quote - (replace-regexp-in-string "^ *" "" comment-end)))) + (let ((comment-end-regexp + (regexp-quote + (replace-regexp-in-string "^ *" "" comment-end))) + state face beg) (if loudly (message "Fontifying %s... (syntactically...)" (buffer-name))) (goto-char start) ;; @@ -1333,18 +1333,18 @@ START should be at the beginning of a line." (setq state (parse-partial-sexp (point) end nil nil state 'syntax-table)) (when face (put-text-property beg (point) 'face face)) - (when (eq face 'font-lock-comment-face) + (when (and (eq face 'font-lock-comment-face) + comment-start-skip) ;; Find the comment delimiters ;; and use font-lock-comment-delimiter-face for them. (save-excursion (goto-char beg) - (if (and comment-start-skip (looking-at comment-start-skip)) + (if (looking-at comment-start-skip) (put-text-property beg (match-end 0) 'face - 'font-lock-comment-delimiter-face))) - (if (and comment-end - (looking-back comment-end-regexp (point-at-bol))) + font-lock-comment-delimiter-face))) + (if (looking-back comment-end-regexp (point-at-bol)) (put-text-property (match-beginning 0) (point) 'face - 'font-lock-comment-delimiter-face)))) + font-lock-comment-delimiter-face)))) (< (point) end)) (setq state (parse-partial-sexp (point) end nil nil state 'syntax-table))))) @@ -1856,7 +1856,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using ; (put 'font-lock-fontify-more 'menu-enable '(identity)) ; (put 'font-lock-fontify-less 'menu-enable '(identity))) ; -;;; Put the appropriate symbol property values on now. See above. +; ;; Put the appropriate symbol property values on now. See above. ;(put 'global-font-lock-mode 'menu-selected 'global-font-lock-mode) ;(put 'font-lock-mode 'menu-selected 'font-lock-mode) ;(put 'font-lock-fontify-more 'menu-enable '(nth 2 font-lock-fontify-level)) @@ -1890,7 +1890,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using ; (font-lock-fontify-level (1+ (car font-lock-fontify-level))) ; (error "No more decoration"))) ; -;;; This should be called by `font-lock-set-defaults'. +; ;; This should be called by `font-lock-set-defaults'. ;(defun font-lock-set-menu () ; ;; Activate less/more fontification entries if there are multiple levels for ; ;; the current buffer. Sets `font-lock-fontify-level' to be of the form @@ -1911,7 +1911,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using ; (setq font-lock-fontify-level (list level (> level 1) ; (< level (1- (length keywords)))))))) ; -;;; This should be called by `font-lock-unset-defaults'. +; ;; This should be called by `font-lock-unset-defaults'. ;(defun font-lock-unset-menu () ; ;; Deactivate less/more fontification entries. ; (setq font-lock-fontify-level nil)) @@ -1919,7 +1919,7 @@ Sets various variables using `font-lock-defaults' (or, if nil, using ;;; End of Menu support. ;;; Various regexp information shared by several modes. -;;; Information specific to a single mode should go in its load library. +; ;; Information specific to a single mode should go in its load library. ;; Font Lock support for C, C++, Objective-C and Java modes is now in ;; cc-fonts.el (and required by cc-mode.el). However, the below function @@ -2071,9 +2071,9 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item." ;; ELisp and CLisp `&' keywords as types. '("\\&\\sw+\\>" . font-lock-type-face) ;; -;;; This is too general -- rms. -;;; A user complained that he has functions whose names start with `do' -;;; and that they get the wrong color. +;;; This is too general -- rms. +;;; A user complained that he has functions whose names start with `do' +;;; and that they get the wrong color. ;;; ;; CL `with-' and `do-' constructs ;;; '("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face) ))) From 1ed8284daff074325427cb14533c6d8e373863cc Mon Sep 17 00:00:00 2001 From: Reiner Steib Date: Wed, 11 May 2005 19:32:51 +0000 Subject: [PATCH 40/90] * dnd.el (dnd-protocol-alist): Improve custom type. * dired.el (dired-dnd-protocol-alist): New variable. (dired-mode): Use `dired-dnd-protocol-alist'. Move call of `dired-mode-hook' to the end. --- lisp/ChangeLog | 8 ++++++++ lisp/dired.el | 19 ++++++++++++++----- lisp/dnd.el | 2 +- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 95b6f0d3605..5a12dd84340 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2005-05-11 Reiner Steib + + * dnd.el (dnd-protocol-alist): Improve custom type. + + * dired.el (dired-dnd-protocol-alist): New variable. + (dired-mode): Use `dired-dnd-protocol-alist'. Move call of + `dired-mode-hook' to the end. + 2005-05-11 Stefan Monnier * files.el (executable-find): Move from executable.el. Use locate-file. diff --git a/lisp/dired.el b/lisp/dired.el index 474b4f3d9b5..afea6b173a6 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -200,6 +200,18 @@ with the buffer narrowed to the listing." ;; Note this can't simply be run inside function `dired-ls' as the hook ;; functions probably depend on the dired-subdir-alist to be OK. +(defcustom dired-dnd-protocol-alist + '(("^file:///" . dired-dnd-handle-local-file) + ("^file://" . dired-dnd-handle-file) + ("^file:" . dired-dnd-handle-local-file)) + "The functions to call when a drop in `dired-mode' is made. +See `dnd-protocol-alist' for more information. When nil, behave +as in other buffers." + :type '(choice (repeat (cons (regexp) (function))) + (const :tag "Behave as in other buffers" nil)) + :version "22.1" + :group 'dired) + ;; Internal variables (defvar dired-marker-char ?* ; the answer is 42 @@ -1522,14 +1534,11 @@ Keybindings: 'dired-desktop-buffer-misc-data) (setq dired-switches-alist nil) (dired-sort-other dired-actual-switches t) - (run-mode-hooks 'dired-mode-hook) (when (featurep 'dnd) (make-variable-buffer-local 'dnd-protocol-alist) (setq dnd-protocol-alist - (append '(("^file:///" . dired-dnd-handle-local-file) - ("^file://" . dired-dnd-handle-file) - ("^file:" . dired-dnd-handle-local-file)) - dnd-protocol-alist)))) + (append dired-dnd-protocol-alist dnd-protocol-alist))) + (run-mode-hooks 'dired-mode-hook)) ;; Idiosyncratic dired commands that don't deal with marks. diff --git a/lisp/dnd.el b/lisp/dnd.el index b6d4d498c95..927f2e3bdb6 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el @@ -55,7 +55,7 @@ If no match is found, the URL is inserted as text by calling `dnd-insert-text'. The function shall return the action done (move, copy, link or private) if some action was made, or nil if the URL is ignored." :version "22.1" - :type 'alist + :type '(repeat (cons (regexp) (function))) :group 'dnd) From be239defd95615fa89e89e342e49755fb73a688f Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Wed, 11 May 2005 21:00:41 +0000 Subject: [PATCH 41/90] *** empty log message *** --- man/ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/ChangeLog b/man/ChangeLog index 5244b52de73..8574bd8f205 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1691,8 +1691,8 @@ (Indentation Commands): Correct description of `indent-relative'. (Tab Stops): is no longer bound to `tab-to-tab-stop' in Text mode. The *Tab Stops* buffer uses Overwrite Mode. - (Just Spaces): `untabify' converts sequences of at least two - spaces to tabs. + (Just Spaces): `tabify' converts sequences of at least two spaces + to tabs. 2004-08-28 Eli Zaretskii From 8cec35c42eefe184f694c62f5d58b7fd6009141c Mon Sep 17 00:00:00 2001 From: Dan Nicolaescu Date: Wed, 11 May 2005 22:57:25 +0000 Subject: [PATCH 42/90] (sh-mode-default-syntax-table): Set the syntax of $ to "'" (quote). --- lisp/ChangeLog | 5 +++++ lisp/progmodes/sh-script.el | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5a12dd84340..9ae919c98c4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-11 Dan Nicolaescu + + * progmodes/sh-script.el (sh-mode-default-syntax-table): Set the + syntax of $ to "'" (quote). + 2005-05-11 Reiner Steib * dnd.el (dnd-protocol-alist): Improve custom type. diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 70172e22732..ae024e8111e 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -414,6 +414,10 @@ This is buffer-local in every such buffer.") ?\" "\"\"" ?\' "\"'" ?\` "\"`" + ;; ?$ might also have a ". p" syntax. Both "'" and ". p" seem + ;; to work fine. This is needed so that dabbrev-expand + ;; $VARNAME works. + ?$ "'" ?! "_" ?% "_" ?: "_" From 4b0fcb5dcf999e50f61ce307e1c701f9b2b3e90a Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Wed, 11 May 2005 23:04:08 +0000 Subject: [PATCH 43/90] (latexenc-find-file-coding-system): Avoid `re-search-forward' when looking for input encoding because of speed and safety. Better regular expressions for recognizing input encoding. Limit a search for TeX-master/tex-main-file to the local variable section. --- lisp/international/latexenc.el | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/lisp/international/latexenc.el b/lisp/international/latexenc.el index 1fd04b55919..39acbb33dfd 100644 --- a/lisp/international/latexenc.el +++ b/lisp/international/latexenc.el @@ -120,24 +120,32 @@ coding system names is determined from `latex-inputenc-coding-alist'." (save-excursion ;; try to find the coding system in this file (goto-char (point-min)) - (if (or - (re-search-forward "^[^%\n]*\\\\inputencoding{\\(.*\\)}" nil t) - (re-search-forward "^[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t)) - (let* ((match (match-string 1)) - (sym (intern match))) - (when (latexenc-inputenc-to-coding-system match) - (setq sym (latexenc-inputenc-to-coding-system match)) - (when (coding-system-p sym) - sym - (if (and (require 'code-pages nil t) (coding-system-p sym)) - sym - 'undecided)))) + (if (catch 'cs + (let ((case-fold-search nil)) + (while (search-forward "inputenc" nil t) + (goto-char (match-beginning 0)) + (beginning-of-line) + (if (or (looking-at "[^%\n]*\\\\usepackage\\[\\([^]]*\\)\\]{\\([^}]*,\\)?inputenc\\(,[^}]*\\)?}") + (looking-at "[^%\n]*\\\\inputencoding{\\([^}]*\\)}")) + (throw 'cs t) + (goto-char (match-end 0)))))) + (let* ((match (match-string 1)) + (sym (intern match))) + (when (latexenc-inputenc-to-coding-system match) + (setq sym (latexenc-inputenc-to-coding-system match))) + (when (coding-system-p sym) + sym + (if (and (require 'code-pages nil t) (coding-system-p sym)) + sym + 'undecided))) ;; else try to find it in the master/main file (let (latexenc-main-file) ;; is there a TeX-master or tex-main-file in the local variable section (unless latexenc-dont-use-TeX-master-flag (goto-char (point-max)) - (when (re-search-backward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t) + (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) + (search-forward "Local Variables:" nil t) + (when (re-search-forward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t) (let ((file (concat (file-name-directory (nth 1 arg-list)) (match-string 2)))) (if (file-exists-p file) (setq latexenc-main-file file) From f3280ac53e83e827b3360ce51f6777e8295bb342 Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Wed, 11 May 2005 23:25:27 +0000 Subject: [PATCH 44/90] (Top): Update to the current structure of the manual. --- lispref/elisp.texi | 263 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 199 insertions(+), 64 deletions(-) diff --git a/lispref/elisp.texi b/lispref/elisp.texi index d6a6b28dac3..061d826e711 100644 --- a/lispref/elisp.texi +++ b/lispref/elisp.texi @@ -101,7 +101,6 @@ Reference Manual, corresponding to GNU Emacs version 22.1. @menu * Introduction:: Introduction and conventions used. -* Standards: Coding Conventions. Coding conventions for Emacs Lisp. * Lisp Data Types:: Data types of objects in Emacs Lisp. * Numbers:: Numbers and arithmetic functions. @@ -184,6 +183,7 @@ Introduction * Caveats:: Flaws and a request for help. * Lisp History:: Emacs Lisp is descended from Maclisp. * Conventions:: How the manual is formatted. +* Version Info:: Which Emacs version is running? * Acknowledgements:: The authors, editors, and sponsors of this manual. Conventions @@ -196,14 +196,6 @@ Conventions * Buffer Text Notation:: The format we use for buffer contents in examples. * Format of Descriptions:: Notation for describing functions, variables, etc. -Tips and Conventions - -* Coding Conventions:: Conventions for clean and robust programs. -* Compilation Tips:: Making compiled code run fast. -* Documentation Tips:: Writing readable documentation strings. -* Comment Tips:: Conventions for writing comments. -* Library Headers:: Standard headers for library packages. - Format of Descriptions * A Sample Function Description:: @@ -215,6 +207,7 @@ Lisp Data Types * Comments:: Comments and their formatting conventions. * Programming Types:: Types found in all Lisp systems. * Editing Types:: Types specific to Emacs. +* Circular Objects:: Read syntax for circular structure. * Type Predicates:: Tests related to types. * Equality Predicates:: Tests of equality between any two objects. @@ -224,13 +217,16 @@ Programming Types * Floating Point Type:: Numbers with fractional parts and with a large range. * Character Type:: The representation of letters, numbers and control characters. +* Symbol Type:: A multi-use object that refers to a function, + variable, property list, or itself. * Sequence Type:: Both lists and arrays are classified as sequences. * Cons Cell Type:: Cons cells, and lists (which are made from cons cells). * Array Type:: Arrays include strings and vectors. * String Type:: An (efficient) array of characters. * Vector Type:: One-dimensional arrays. -* Symbol Type:: A multi-use object that refers to a function, - variable, property list, or itself. +* Char-Table Type:: One-dimensional sparse arrays indexed by characters. +* Bool-Vector Type:: One-dimensional arrays of @code{t} or @code{nil}. +* Hash Table Type:: Super-fast lookup tables. * Function Type:: A piece of executable code you can call from elsewhere. * Macro Type:: A method of expanding an expression into another expression, more fundamental but less pretty. @@ -239,17 +235,20 @@ Programming Types * Autoload Type:: A type used for automatically loading seldom-used functions. -List Type +Cons Cell and List Types +* Box Diagrams:: Drawing pictures of lists. * Dotted Pair Notation:: An alternative syntax for lists. * Association List Type:: A specially constructed list. Editing Types * Buffer Type:: The basic object of editing. -* Window Type:: What makes buffers visible. -* Window Configuration Type::Save what the screen looks like. * Marker Type:: A position in a buffer. +* Window Type:: What makes buffers visible. +* Frame Type:: Windows subdivide frames. +* Window Configuration Type::Save what the screen looks like. +* Frame Configuration Type::Recording the status of all frames. * Process Type:: A process running on the underlying OS. * Stream Type:: Receive or send characters. * Keymap Type:: What function a keystroke invokes. @@ -261,9 +260,10 @@ Numbers * Float Basics:: Representation and range of floating point. * Predicates on Numbers:: Testing for numbers. * Comparison of Numbers:: Equality and inequality predicates. -* Arithmetic Operations:: How to add, subtract, multiply and divide. -* Bitwise Operations:: Logical and, or, not, shifting. * Numeric Conversions:: Converting float to integer and vice versa. +* Arithmetic Operations:: How to add, subtract, multiply and divide. +* Rounding Operations:: Explicitly rounding floating point numbers. +* Bitwise Operations:: Logical and, or, not, shifting. * Math Functions:: Trig, exponential and logarithmic functions. * Random Numbers:: Obtaining random integers, predictable or not. @@ -272,10 +272,12 @@ Strings and Characters * String Basics:: Basic properties of strings and characters. * Predicates for Strings:: Testing whether an object is a string or char. * Creating Strings:: Functions to allocate new strings. +* Modifying Strings:: Altering the contents of an existing string. * Text Comparison:: Comparing characters or strings. * String Conversion:: Converting characters or strings and vice versa. * Formatting Strings:: @code{format}: Emacs's analogue of @code{printf}. * Case Conversion:: Case conversion functions. +* Case Tables:: Customizing case conversion. Lists @@ -300,6 +302,16 @@ Sequences, Arrays, and Vectors * Arrays:: Characteristics of arrays in Emacs Lisp. * Array Functions:: Functions specifically for arrays. * Vectors:: Functions specifically for vectors. +* Vector Functions:: Functions specifically for vectors. +* Char-Tables:: How to work with char-tables. +* Bool-Vectors:: How to work with bool-vectors. + +Hash Tables + +* Creating Hash:: Functions to create hash tables. +* Hash Access:: Reading and writing the hash table contents. +* Defining Hash:: Defining new comparison methods +* Other Hash:: Miscellaneous. Symbols @@ -313,16 +325,18 @@ Symbols Evaluation * Intro Eval:: Evaluation in the scheme of things. -* Eval:: How to invoke the Lisp interpreter explicitly. * Forms:: How various sorts of objects are evaluated. * Quoting:: Avoiding evaluation (to put constants in the program). +* Eval:: How to invoke the Lisp interpreter explicitly. Kinds of Forms * Self-Evaluating Forms:: Forms that evaluate to themselves. * Symbol Forms:: Symbols evaluate as variables. * Classifying Lists:: How to distinguish various sorts of list forms. +* Function Indirection:: When a symbol appears as the car of a list, + we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. * Special Forms:: ``Special forms'' are idiosyncratic primitives, @@ -333,7 +347,7 @@ Kinds of Forms Control Structures * Sequencing:: Evaluation in textual order. -* Conditionals:: @code{if}, @code{cond}. +* Conditionals:: @code{if}, @code{cond}, @code{when}, @code{unless}. * Combining Conditions:: @code{and}, @code{or}, @code{not}. * Iteration:: @code{while} loops. * Nonlocal Exits:: Jumping out of a sequence. @@ -360,11 +374,19 @@ Variables * Local Variables:: Variable values that exist only temporarily. * Void Variables:: Symbols that lack values. * Defining Variables:: A definition says a symbol is used as a variable. +* Tips for Defining:: Things you should think about when you + define a variable. * Accessing Variables:: Examining values of variables whose names are known only at run time. * Setting Variables:: Storing new values in variables. * Variable Scoping:: How Lisp chooses among local and global values. * Buffer-Local Variables:: Variable values in effect only in one buffer. +* Frame-Local Variables:: Variable values in effect only in one frame. +* Future Local Variables:: New kinds of local values we might add some day. +* Variable Aliases:: Variables that are aliases for other variables. +* File Local Variables:: Handling local variable lists in files. +* Variables with Restricted Values:: Non-constant variables whose value can + @emph{not} be an arbitrary Lisp object. Scoping Rules for Variable Bindings @@ -393,6 +415,9 @@ Functions * Anonymous Functions:: Lambda-expressions are functions with no names. * Function Cells:: Accessing or setting the function definition of a symbol. +* Obsolete Functions:: Declaring functions obsolete. +* Inline Functions:: Defining functions that the compiler will open code. +* Function Safety:: Determining whether a function is safe to call. * Related Topics:: Cross-references to specific Lisp primitives that have a special bearing on how functions work. @@ -415,6 +440,14 @@ Macros Don't hide the user's variables. * Indenting Macros:: Specifying how to indent macro calls. +Writing Customization Definitions + +* Common Keywords:: Common keyword arguments for all kinds of + customization declarations. +* Group Definitions:: Writing customization group definitions. +* Variable Definitions:: Declaring user options. +* Customization Types:: Specifying the type of a user option. + Loading * How Programs Do Loading:: The @code{load} function and others. @@ -430,13 +463,20 @@ Loading Byte Compilation +* Speed of Byte-Code:: An example of speedup from byte compilation. * Compilation Functions:: Byte compilation functions. +* Docs and Compilation:: Dynamic loading of documentation strings. +* Dynamic Loading:: Dynamic loading of individual functions. +* Eval During Compile:: Code to be evaluated when you compile. +* Compiler Errors:: Handling compiler error messages. +* Byte-Code Objects:: The data type used for byte-compiled functions. * Disassembly:: Disassembling byte-code; how to read byte-code. -Advising Functions +Advising Emacs Lisp Functions * Simple Advice:: A simple example to explain the basics of advice. * Defining Advice:: Detailed description of @code{defadvice}. +* Around-Advice:: Wrapping advice around a function's definition. * Computed Advice:: ...is to @code{defadvice} as @code{fset} is to @code{defun}. * Activation of Advice:: Advice doesn't do anything until you activate it. * Enabling Advice:: You can enable or disable each piece of advice. @@ -449,14 +489,16 @@ Advising Functions Debugging Lisp Programs * Debugger:: How the Emacs Lisp debugger is implemented. +* Edebug:: A source-level Emacs Lisp debugger. * Syntax Errors:: How to find syntax errors. +* Test Coverage:: Ensuring you have tested all branches in your code. * Compilation Errors:: How to find errors that show up in byte compilation. -* Edebug:: A source-level Emacs Lisp debugger. The Lisp Debugger * Error Debugging:: Entering the debugger when an error happens. +* Infinite Loops:: Stopping and debugging a program that doesn't exit. * Function Debugging:: Entering it when a certain function is called. * Explicit Debug:: Entering it at a certain point in the program. * Using Debugger:: What the debugger does; what you see while in it. @@ -464,6 +506,27 @@ The Lisp Debugger * Invoking the Debugger:: How to call the function @code{debug}. * Internals of Debugger:: Subroutines of the debugger, and global variables. +Edebug + +* Using Edebug:: Introduction to use of Edebug. +* Instrumenting:: You must instrument your code + in order to debug it with Edebug. +* Edebug Execution Modes:: Execution modes, stopping more or less often. +* Jumping:: Commands to jump to a specified place. +* Edebug Misc:: Miscellaneous commands. +* Breakpoints:: Setting breakpoints to make the program stop. +* Trapping Errors:: Trapping errors with Edebug. +* Edebug Views:: Views inside and outside of Edebug. +* Edebug Eval:: Evaluating expressions within Edebug. +* Eval List:: Expressions whose values are displayed + each time you enter Edebug. +* Printing in Edebug:: Customization of printing. +* Trace Buffer:: How to produce trace output in a buffer. +* Coverage Testing:: How to test evaluation coverage. +* The Outside Context:: Data that Edebug saves and restores. +* Instrumenting Macro Calls:: Specifying how to handle macro calls. +* Edebug Options:: Option variables for customizing Edebug. + Debugging Invalid Lisp Syntax * Excess Open:: How to find a spurious open paren or missing close. @@ -478,14 +541,21 @@ Reading and Printing Lisp Objects * Output Streams:: Various data types that can be used as output streams. * Output Functions:: Functions to print Lisp objects as text. +* Output Variables:: Variables that control what the printing + functions do. Minibuffers * Intro to Minibuffers:: Basic information about minibuffers. * Text from Minibuffer:: How to read a straight text string. * Object from Minibuffer:: How to read a Lisp object or expression. +* Minibuffer History:: Recording previous minibuffer inputs + so the user can reuse them. +* Initial Input:: Specifying initial contents for the minibuffer. * Completion:: How to invoke and customize completion. * Yes-or-No Queries:: Asking a question with a simple answer. +* Multiple Queries:: Asking a series of similar questions. +* Reading a Password:: Reading a password from the terminal. * Minibuffer Misc:: Various customization hooks and variables. Completion @@ -505,8 +575,10 @@ Command Loop * Defining Commands:: Specifying how a function should read arguments. * Interactive Call:: Calling a command, so that it will read arguments. * Command Loop Info:: Variables set by the command loop for you to examine. +* Adjusting Point:: Adjustment of point after a command. * Input Events:: What input looks like when you read it. * Reading Input:: How to read input events from the keyboard or mouse. +* Special Events:: Events processed immediately and individually. * Waiting:: Waiting for user input or elapsed time. * Quitting:: How @kbd{C-g} works. How to catch or defer quitting. * Prefix Command Arguments:: How the commands to set prefix args work. @@ -531,8 +603,6 @@ Keymaps * Inheritance and Keymaps:: How one keymap can inherit the bindings of another keymap. * Prefix Keys:: Defining a key with a keymap as its definition. -* Menu Keymaps:: A keymap can define a menu for X - or for use from the terminal. * Active Keymaps:: Each buffer has a local keymap to override the standard (global) bindings. Each minor mode can also override them. @@ -542,6 +612,8 @@ Keymaps * Remapping Commands:: Bindings that translate one command to another. * Key Binding Commands:: Interactive interfaces for redefining keys. * Scanning Keymaps:: Looking through all keymaps, for printing help. +* Menu Keymaps:: A keymap can define a menu for X + or for use from the terminal. Major and Minor Modes @@ -600,11 +672,15 @@ Files * Reading from Files:: Reading files into other buffers. * Writing to Files:: Writing new files from parts of buffers. * File Locks:: Locking and unlocking files, to prevent - simultaneous editing by two people. -* Information about Files:: Testing existence, accessibility, size of files. -* Contents of Directories:: Getting a list of the files in a directory. + simultaneous editing by two people. +* Information about Files:: Testing existence, accessibility, size of files. * Changing Files:: Renaming files, changing protection, etc. * File Names:: Decomposing and expanding file names. +* Contents of Directories:: Getting a list of the files in a directory. +* Create/Delete Dirs:: Creating and Deleting Directories. +* Magic File Names:: Defining "magic" special handling + for certain file names. +* Format Conversion:: Conversion to and from various file formats. Visiting Files @@ -614,19 +690,22 @@ Visiting Files Information about Files * Testing Accessibility:: Is a given file readable? Writable? -* Kinds of Files:: Is it a directory? A link? +* Kinds of Files:: Is it a directory? A symbolic link? +* Truenames:: Eliminating symbolic links from a file name. * File Attributes:: How large is it? Any other names? Etc. File Names * File Name Components:: The directory part of a file name, and the rest. -* Directory Names:: A directory's name as a directory - is different from its name as a file. * Relative File Names:: Some file names are relative to a current directory. +* Directory Names:: A directory's name as a directory + is different from its name as a file. * File Name Expansion:: Converting relative file names to absolute ones. * Unique File Names:: Generating names for temporary files. * File Name Completion:: Finding the completions for a given file name. +* Standard File Names:: If your package uses a fixed file name, + how to handle various operating systems simply. Backups and Auto-Saving @@ -648,6 +727,8 @@ Backup Files Buffers * Buffer Basics:: What is a buffer? +* Current Buffer:: Designating a buffer as current + so primitives will access its contents. * Buffer Names:: Accessing and changing buffer names. * Buffer File Name:: The buffer file name indicates which file is visited. @@ -659,8 +740,9 @@ Buffers * The Buffer List:: How to look at all the existing buffers. * Creating Buffers:: Functions that create buffers. * Killing Buffers:: Buffers exist until explicitly killed. -* Current Buffer:: Designating a buffer as current - so primitives will access its contents. +* Indirect Buffers:: An indirect buffer shares text with some + other buffer. +* Buffer Gap:: The gap in the buffer. Windows @@ -672,14 +754,20 @@ Windows * Buffers and Windows:: Each window displays the contents of a buffer. * Displaying Buffers:: Higher-lever functions for displaying a buffer and choosing a window for it. +* Choosing Window:: How to choose a window for displaying a buffer. * Window Point:: Each window has its own location of point. * Window Start:: The display-start position controls which text is on-screen in the window. -* Vertical Scrolling:: Moving text up and down in the window. -* Horizontal Scrolling:: Moving text sideways on the window. +* Textual Scrolling:: Moving text up and down through the window. +* Vertical Scrolling:: Moving the contents up and down on the window. +* Horizontal Scrolling:: Moving the contents sideways on the window. * Size of Window:: Accessing the size of a window. * Resizing Windows:: Changing the size of a window. +* Coordinates and Windows:: Converting coordinates to windows. * Window Configurations:: Saving and restoring the state of the screen. +* Window Hooks:: Hooks for scrolling, window size changes, + redisplay going past a certain point, + or window configuration changes. Frames @@ -704,6 +792,7 @@ Frames * Pointer Shapes:: Specifying the shape of the mouse pointer. * Window System Selections::Transferring text to and from other windows. * Color Names:: Getting the definitions of color names. +* Text Terminal Colors:: Defining colors for text-only terminals. * Resources:: Getting resource values from the server. * Display Feature Testing:: Determining the features of a terminal. @@ -729,8 +818,10 @@ Markers * Overview of Markers:: The components of a marker, and how it relocates. * Predicates on Markers:: Testing whether an object is a marker. * Creating Markers:: Making empty markers or markers at certain places. -* Information from Markers:: Finding the marker's buffer or character - position. +* Information from Markers::Finding the marker's buffer or character + position. +* Marker Insertion Types:: Two ways a marker can relocate when you + insert where it points. * Moving Markers:: Moving the marker to a new buffer or position. * The Mark:: How ``the mark'' is implemented with a marker. * The Region:: How to access ``the region''. @@ -739,6 +830,7 @@ Text * Near Point:: Examining text in the vicinity of point. * Buffer Contents:: Examining text in a general fashion. +* Comparing Text:: Comparing substrings of buffers. * Insertion:: Adding new text to a buffer. * Commands for Insertion:: User-level commands to insert text. * Deletion:: Removing text from a buffer. @@ -746,21 +838,25 @@ Text * The Kill Ring:: Where removed text sometimes is saved for later use. * Undo:: Undoing changes to the text of a buffer. -* Auto Filling:: How auto-fill mode is implemented to break lines. +* Maintaining Undo:: How to enable and disable undo information. + How to control how much information is kept. * Filling:: Functions for explicit filling. * Margins:: How to specify margins for filling commands. +* Adaptive Fill:: Adaptive Fill mode chooses a fill prefix + from context. +* Auto Filling:: How auto-fill mode is implemented to break lines. * Sorting:: Functions for sorting parts of the buffer. -* Indentation:: Functions to insert or adjust indentation. * Columns:: Computing horizontal positions, and using them. +* Indentation:: Functions to insert or adjust indentation. * Case Changes:: Case conversion of parts of the buffer. * Text Properties:: Assigning Lisp property lists to text characters. * Substitution:: Replacing a given character wherever it appears. * Transposition:: Swapping two portions of a buffer. * Registers:: How registers are implemented. Accessing the text or position stored in a register. -* Atomic Changes:: Installing several buffer changes ``atomically''. * Base 64:: Conversion to or from base 64 encoding. * MD5 Checksum:: Compute the MD5 ``message digest''/``checksum''. +* Atomic Changes:: Installing several buffer changes ``atomically''. * Change Hooks:: Supplying functions to be run when text is changed. The Kill Ring @@ -796,6 +892,7 @@ Text Properties only when text is examined. * Clickable Text:: Using text properties to make regions of text do something when you click on them. +* Links and Mouse-1:: How to make @key{Mouse-1} follow a link. * Fields:: The @code{field} property defines fields within the buffer. * Not Intervals:: Why text properties do not use @@ -824,25 +921,31 @@ Searching and Matching * String Search:: Search for an exact match. * Regular Expressions:: Describing classes of strings. * Regexp Search:: Searching for a match for a regexp. +* POSIX Regexps:: Searching POSIX-style for the longest match. +* Search and Replace:: Internals of @code{query-replace}. * Match Data:: Finding out which part of the text matched various parts of a regexp, after regexp search. -* Saving Match Data:: Saving and restoring this information. -* Standard Regexps:: Useful regexps for finding sentences, pages,... * Searching and Case:: Case-independent or case-significant searching. +* Standard Regexps:: Useful regexps for finding sentences, pages,... Regular Expressions * Syntax of Regexps:: Rules for writing regular expressions. * Regexp Example:: Illustrates regular expression syntax. +* Regexp Functions:: Functions for operating on regular expressions. Syntax Tables +* Syntax Basics:: Basic concepts of syntax tables. * Syntax Descriptors:: How characters are classified. * Syntax Table Functions:: How to create, examine and alter syntax tables. +* Syntax Properties:: Overriding syntax with text properties. +* Motion and Syntax:: Moving over characters with certain syntaxes. * Parsing Expressions:: Parsing balanced expressions using the syntax table. * Standard Syntax Tables:: Syntax tables used by various major modes. * Syntax Table Internals:: How syntax table information is stored. +* Categories:: Another way of classifying character syntax. Syntax Descriptors @@ -852,15 +955,16 @@ Syntax Descriptors Abbrevs And Abbrev Expansion * Abbrev Mode:: Setting up Emacs for abbreviation. -* Tables: Abbrev Tables. Creating and working with abbrev tables. +* Abbrev Tables:: Creating and working with abbrev tables. * Defining Abbrevs:: Specifying abbreviations and their expansions. -* Files: Abbrev Files. Saving abbrevs in files. -* Expansion: Abbrev Expansion. Controlling expansion; expansion subroutines. +* Abbrev Files:: Saving abbrevs in files. +* Abbrev Expansion:: Controlling expansion; expansion subroutines. * Standard Abbrev Tables:: Abbrev tables used by various major modes. Processes * Subprocess Creation:: Functions that start subprocesses. +* Shell Arguments:: Quoting an argument to pass it to a shell. * Synchronous Processes:: Details of using synchronous subprocesses. * Asynchronous Processes:: Starting up an asynchronous subprocess. * Deleting Processes:: Eliminating an asynchronous subprocess. @@ -870,7 +974,13 @@ Processes an asynchronous subprocess. * Output from Processes:: Collecting output from an asynchronous subprocess. * Sentinels:: Sentinels run when process run-status changes. +* Query Before Exit:: Whether to query if exiting will kill a process. +* Transaction Queues:: Transaction-based communication with subprocesses. * Network:: Opening network connections. +* Network Servers:: Network servers let Emacs accept net connections. +* Datagrams:: UDP network connections. +* Low-Level Network:: Lower-level but more general function + to create connections and servers. Receiving Output from Processes @@ -879,14 +989,53 @@ Receiving Output from Processes * Decoding Output:: Filters can get unibyte or multibyte strings. * Accepting Output:: How to wait until process output arrives. +Emacs Display + +* Refresh Screen:: Clearing the screen and redrawing everything on it. +* Forcing Redisplay:: Forcing redisplay. +* Truncation:: Folding or wrapping long text lines. +* The Echo Area:: Where messages are displayed. +* Warnings:: Displaying warning messages for the user. +* Progress:: Informing user about progress of a long operation. +* Invisible Text:: Hiding part of the buffer text. +* Selective Display:: Hiding part of the buffer text. +* Temporary Displays:: Displays that go away automatically. +* Overlays:: Use overlays to highlight parts of the buffer. +* Width:: How wide a character or string is on the screen. +* Line Height:: Controlling the height of lines. +* Faces:: A face defines a graphics style + for text characters: font, colors, etc. +* Fringes:: Controlling window fringes. +* Scroll Bars:: Controlling vertical scroll bars. +* Pointer Shape:: Controlling the mouse pointer shape. +* Display Property:: Enabling special display features. +* Images:: Displaying images in Emacs buffers. +* Buttons:: Adding clickable buttons to Emacs buffers. +* Blinking:: How Emacs shows the matching open parenthesis. +* Inverse Video:: Specifying how the screen looks. +* Usual Display:: The usual conventions for displaying nonprinting chars. +* Display Tables:: How to specify other conventions. +* Beeping:: Audible signal to the user. +* Window Systems:: Which window system is being used. + Operating System Interface * Starting Up:: Customizing Emacs start-up processing. * Getting Out:: How exiting works (permanent or temporary). * System Environment:: Distinguish the name and kind of system. +* User Identification:: Finding the name and user id of the user. +* Time of Day:: Getting the current time. +* Time Conversion:: Converting a time from numeric form to a string, or + to calendrical data (or vice versa). +* Processor Run Time:: Getting the run time used by Emacs. +* Time Calculations:: Adding, subtracting, comparing times, etc. +* Timers:: Setting a timer to call a function at a certain time. * Terminal Input:: Recording terminal input for debugging. * Terminal Output:: Recording terminal output for debugging. +* Sound Output:: Playing sounds on the computer's speaker. +* X11 Keysyms:: Operating on key symbols for X Windows * Batch Mode:: Running Emacs without terminal interaction. +* Session Management:: Saving and restoring state with X Session Management. Starting Up Emacs @@ -901,36 +1050,22 @@ Getting out of Emacs * Killing Emacs:: Exiting Emacs irreversibly. * Suspending Emacs:: Exiting Emacs reversibly. -Emacs Display +Tips and Conventions -* Refresh Screen:: Clearing the screen and redrawing everything on it. -* Truncation:: Folding or wrapping long text lines. -* The Echo Area:: Where messages are displayed. -* Warnings:: Displaying warning messages for the user. -* Selective Display:: Hiding part of the buffer text. -* Overlay Arrow:: Display of an arrow to indicate position. -* Temporary Displays:: Displays that go away automatically. -* Overlays:: Use overlays to highlight parts of the buffer. -* Width:: How wide a character or string is on the screen. -* Faces:: A face defines a graphics style - for text characters: font, colors, etc. -* Fringes:: Controlling window fringes. -* Display Property:: Enabling special display features. -* Images:: Displaying images in Emacs buffers. -* Blinking:: How Emacs shows the matching open parenthesis. -* Inverse Video:: Specifying how the screen looks. -* Usual Display:: The usual conventions for displaying nonprinting chars. -* Display Tables:: How to specify other conventions. -* Beeping:: Audible signal to the user. -* Window Systems:: Which window system is being used. +* Coding Conventions:: Conventions for clean and robust programs. +* Compilation Tips:: Making compiled code run fast. +* Documentation Tips:: Writing readable documentation strings. +* Comment Tips:: Conventions for writing comments. +* Library Headers:: Standard headers for library packages. GNU Emacs Internals * Building Emacs:: How to preload Lisp libraries into Emacs. * Pure Storage:: A kludge to make preloaded Lisp functions sharable. * Garbage Collection:: Reclaiming space for Lisp objects no longer used. -* Object Internals:: Data formats of buffers, windows, processes. +* Memory Usage:: Info about total size of Lisp objects made so far. * Writing Emacs Primitives:: Writing C code for Emacs. +* Object Internals:: Data formats of buffers, windows, processes. Object Internals From b4b2903b59c0c3b56e5b4cb1c7fd2f0fa52deebc Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Wed, 11 May 2005 23:26:33 +0000 Subject: [PATCH 45/90] (Processes): Add menu description. --- lispref/processes.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lispref/processes.texi b/lispref/processes.texi index abe6384728a..6ffacebce8a 100644 --- a/lispref/processes.texi +++ b/lispref/processes.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999 +@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2005 @c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/processes @@ -49,7 +49,7 @@ This function returns @code{t} if @var{object} is a process, * Transaction Queues:: Transaction-based communication with subprocesses. * Network:: Opening network connections. * Network Servers:: Network servers let Emacs accept net connections. -* Datagrams:: +* Datagrams:: UDP network connections. * Low-Level Network:: Lower-level but more general function to create connections and servers. @end menu From 5f43de89be9fe08dfbea848f48b710bc9c55058c Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Wed, 11 May 2005 23:27:17 +0000 Subject: [PATCH 46/90] (Customization): Add menu descriptions. --- lispref/customize.texi | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lispref/customize.texi b/lispref/customize.texi index 10911cea165..53c9fa92c32 100644 --- a/lispref/customize.texi +++ b/lispref/customize.texi @@ -1,6 +1,6 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. -@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. +@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/customize @node Customization, Loading, Macros, Top @@ -12,10 +12,11 @@ and also customization groups for classifying them. We use the term definitions---as well as face definitions (@pxref{Defining Faces}). @menu -* Common Keywords:: -* Group Definitions:: -* Variable Definitions:: -* Customization Types:: +* Common Keywords:: Common keyword arguments for all kinds of + customization declarations. +* Group Definitions:: Writing customization group definitions. +* Variable Definitions:: Declaring user options. +* Customization Types:: Specifying the type of a user option. @end menu @node Common Keywords From 405cb12a9de63dee759330a9899096f7276cdef4 Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Wed, 11 May 2005 23:30:04 +0000 Subject: [PATCH 47/90] *** empty log message *** --- admin/FOR-RELEASE | 2 +- lisp/ChangeLog | 8 ++++++++ lispref/ChangeLog | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index ab8fc4a5274..fd15c3c82a0 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -175,7 +175,7 @@ lispref/customize.texi Chong Yidong lispref/debugging.texi Joakim Verona Lute Kamstra lispref/display.texi Chong Yidong lispref/edebug.texi Chong Yidong -lispref/elisp.texi "Luc Teirlinck" +lispref/elisp.texi "Luc Teirlinck" Lute Kamstra lispref/errors.texi "Luc Teirlinck" lispref/eval.texi "Luc Teirlinck" Chong Yidong lispref/files.texi "Luc Teirlinck" Chong Yidong diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9ae919c98c4..7c8ec531cb6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2005-05-11 Arne J,Ax(Brgensen + + * international/latexenc.el (latexenc-find-file-coding-system): + Avoid `re-search-forward' when looking for input encoding because + of speed and safety. Better regular expressions for recognizing + input encoding. Limit a search for TeX-master/tex-main-file to + the local variable section. + 2005-05-11 Dan Nicolaescu * progmodes/sh-script.el (sh-mode-default-syntax-table): Set the diff --git a/lispref/ChangeLog b/lispref/ChangeLog index 6502f1d3858..b5ef4428396 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,3 +1,9 @@ +2005-05-12 Lute Kamstra + + * elisp.texi (Top): Update to the current structure of the manual. + * processes.texi (Processes): Add menu description. + * customize.texi (Customization): Add menu descriptions. + 2005-05-11 Thien-Thi Nguyen * processes.texi (Signals to Processes) From aa3280d6987e060c7e4c98ea1505c5b6996287b9 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Thu, 12 May 2005 00:53:05 +0000 Subject: [PATCH 48/90] *** empty log message *** --- admin/FOR-RELEASE | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index fd15c3c82a0..b0169008af0 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -95,7 +95,9 @@ DIRECTORY STATUS IN CHARGE --------- ------ --------- lisp/international working Kenichi Handa lisp/languages working Kenichi Handa -lisp/play working Thien-Thi Nguyen +lisp/net working Thien-Thi Nguyen +lisp/play done Thien-Thi Nguyen +lisp/term working Thien-Thi Nguyen ** Update AUTHORS. From 0ec2b560eaf693a1d0d0abb7fb605779a9b39579 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Thu, 12 May 2005 01:35:20 +0000 Subject: [PATCH 49/90] Update years in copyright notice; nfc. --- lisp/play/5x5.el | 2 +- lisp/play/animate.el | 2 +- lisp/play/blackbox.el | 2 +- lisp/play/decipher.el | 2 +- lisp/play/doctor.el | 2 +- lisp/play/fortune.el | 2 +- lisp/play/gamegrid.el | 2 +- lisp/play/gametree.el | 2 +- lisp/play/handwrite.el | 2 +- lisp/play/landmark.el | 2 +- lisp/play/life.el | 2 +- lisp/play/morse.el | 2 +- lisp/play/mpuz.el | 2 +- lisp/play/pong.el | 2 +- lisp/play/snake.el | 2 +- lisp/play/tetris.el | 2 +- lisp/play/zone.el | 2 +- lisp/term/mac-win.el | 2 +- lisp/term/sun.el | 2 +- lisp/term/tty-colors.el | 2 +- lisp/term/w32-win.el | 2 +- lisp/term/x-win.el | 2 +- lisp/term/xterm.el | 2 +- 23 files changed, 23 insertions(+), 23 deletions(-) diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el index 83d67958f44..a7860244a8a 100644 --- a/lisp/play/5x5.el +++ b/lisp/play/5x5.el @@ -1,6 +1,6 @@ ;;; 5x5.el --- simple little puzzle game -;; Copyright (C) 1999,2000 Free Software Foundation, Inc. +;; Copyright (C) 1999,2000,2005 Free Software Foundation, Inc. ;; Author: Dave Pearson ;; Maintainer: Dave Pearson diff --git a/lisp/play/animate.el b/lisp/play/animate.el index dcbf3bc2610..c7d659e0c99 100644 --- a/lisp/play/animate.el +++ b/lisp/play/animate.el @@ -1,6 +1,6 @@ ;;; animate.el --- make text dance -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 2001,2005 Free Software Foundation, Inc. ;; Maintainer: Richard Stallman ;; Keywords: games diff --git a/lisp/play/blackbox.el b/lisp/play/blackbox.el index 4d6cbfbeaf8..6fad15b8155 100644 --- a/lisp/play/blackbox.el +++ b/lisp/play/blackbox.el @@ -1,6 +1,6 @@ ;;; blackbox.el --- blackbox game in Emacs Lisp -;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2005 Free Software Foundation, Inc. ;; Author: F. Thomas May ;; Adapted-By: ESR diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el index 00bcbbf13c5..f314a10a9e2 100644 --- a/lisp/play/decipher.el +++ b/lisp/play/decipher.el @@ -1,6 +1,6 @@ ;;; decipher.el --- cryptanalyze monoalphabetic substitution ciphers ;; -;; Copyright (C) 1995, 1996, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1996, 2003, 2005 Free Software Foundation, Inc. ;; ;; Author: Christopher J. Madsen ;; Keywords: games diff --git a/lisp/play/doctor.el b/lisp/play/doctor.el index 3cbb16fc2dc..798abbc790a 100644 --- a/lisp/play/doctor.el +++ b/lisp/play/doctor.el @@ -1,6 +1,6 @@ ;;; doctor.el --- psychological help for frustrated users -;; Copyright (C) 1985, 1987, 1994, 1996, 2000 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1987, 1994, 1996, 2000, 2005 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: games diff --git a/lisp/play/fortune.el b/lisp/play/fortune.el index 3919f57e78c..fed7cf5b179 100644 --- a/lisp/play/fortune.el +++ b/lisp/play/fortune.el @@ -1,6 +1,6 @@ ;;; fortune.el --- use fortune to create signatures -;; Copyright (C) 1999, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc. ;; Author: Holger Schauer ;; Keywords: games utils mail diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el index 54a8f361c99..404f5871144 100644 --- a/lisp/play/gamegrid.el +++ b/lisp/play/gamegrid.el @@ -1,6 +1,6 @@ ;;; gamegrid.el --- library for implementing grid-based games on Emacs -;; Copyright (C) 1997, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc. ;; Author: Glynn Clements ;; Version: 1.02 diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el index 0ccb16be942..f79ded4955e 100644 --- a/lisp/play/gametree.el +++ b/lisp/play/gametree.el @@ -1,6 +1,6 @@ ;;; gametree.el --- manage game analysis trees in Emacs -;; Copyright (C) 1997 Free Software Foundation, Inc +;; Copyright (C) 1997, 1999 Free Software Foundation, Inc ;; Author: Ian T Zimmerman ;; Created: Wed Dec 10 07:41:46 PST 1997 diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el index 11499444920..e4efcd13110 100644 --- a/lisp/play/handwrite.el +++ b/lisp/play/handwrite.el @@ -1,6 +1,6 @@ ;;; handwrite.el --- turns your emacs buffer into a handwritten document -*- coding: iso-latin-1; -*- -;; (C) Copyright 1996 Free Software Foundation, Inc. +;; (C) Copyright 1996, 2005 Free Software Foundation, Inc. ;; Author: Danny Roozendaal (was: ) ;; Created: October 21 1996 diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el index 4b5e8f68c2c..87ebd88fd58 100644 --- a/lisp/play/landmark.el +++ b/lisp/play/landmark.el @@ -1,6 +1,6 @@ ;;; landmark.el --- neural-network robot that learns landmarks -;; Copyright (c) 1996, 1997, 2000, 2003 Free Software Foundation, Inc. +;; Copyright (c) 1996, 1997, 2000, 2003, 2005 Free Software Foundation, Inc. ;; Author: Terrence Brannon (was: ) ;; Created: December 16, 1996 - first release to usenet diff --git a/lisp/play/life.el b/lisp/play/life.el index e92ac208491..53c9389c245 100644 --- a/lisp/play/life.el +++ b/lisp/play/life.el @@ -1,6 +1,6 @@ ;;; life.el --- John Horton Conway's `Life' game for GNU Emacs -;; Copyright (C) 1988, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001, 2005 Free Software Foundation, Inc. ;; Author: Kyle Jones ;; Maintainer: FSF diff --git a/lisp/play/morse.el b/lisp/play/morse.el index ce4e4877e5e..ccdf38cedb0 100644 --- a/lisp/play/morse.el +++ b/lisp/play/morse.el @@ -1,6 +1,6 @@ ;;; morse.el --- convert text to morse code and back -*- coding: utf-8 -*- -;; Copyright (C) 1995, 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2005 Free Software Foundation, Inc. ;; Author: Rick Farnbach ;; Keywords: games diff --git a/lisp/play/mpuz.el b/lisp/play/mpuz.el index 1a667606da3..a637a2e98d1 100644 --- a/lisp/play/mpuz.el +++ b/lisp/play/mpuz.el @@ -1,6 +1,6 @@ ;;; mpuz.el --- multiplication puzzle for GNU Emacs -;; Copyright (C) 1990, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1990, 2002, 2005 Free Software Foundation, Inc. ;; Author: Philippe Schnoebelen ;; Overhauled: Daniel Pfeiffer diff --git a/lisp/play/pong.el b/lisp/play/pong.el index 05e9e488e3d..66661835f5e 100644 --- a/lisp/play/pong.el +++ b/lisp/play/pong.el @@ -1,6 +1,6 @@ ;;; pong.el --- classical implementation of pong -;; Copyright 1999, 2000, 2001 by Free Software Foundation, Inc. +;; Copyright 1999, 2000, 2001, 2005 by Free Software Foundation, Inc. ;; Author: Benjamin Drieu ;; Keywords: games diff --git a/lisp/play/snake.el b/lisp/play/snake.el index d21b25f598f..71c460feae5 100644 --- a/lisp/play/snake.el +++ b/lisp/play/snake.el @@ -1,6 +1,6 @@ ;;; snake.el --- implementation of Snake for Emacs -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002 Free Software Foundation, Inc. ;; Author: Glynn Clements ;; Created: 1997-09-10 diff --git a/lisp/play/tetris.el b/lisp/play/tetris.el index ddf647d6a8c..045534c2cea 100644 --- a/lisp/play/tetris.el +++ b/lisp/play/tetris.el @@ -1,6 +1,6 @@ ;;; tetris.el --- implementation of Tetris for Emacs -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2002 Free Software Foundation, Inc. ;; Author: Glynn Clements ;; Version: 2.01 diff --git a/lisp/play/zone.el b/lisp/play/zone.el index 80d0760bed2..40e8de790b3 100644 --- a/lisp/play/zone.el +++ b/lisp/play/zone.el @@ -1,6 +1,6 @@ ;;; zone.el --- idle display hacks -;; Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc. ;; Author: Victor Zandy ;; Maintainer: Thien-Thi Nguyen diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index 64623e76ce9..8fbbc7cd41a 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el @@ -1,6 +1,6 @@ ;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 +;; Copyright (C) 1999, 2000, 2002, 2003, 2005 ;; Free Software Foundation, Inc. ;; Author: Andrew Choi diff --git a/lisp/term/sun.el b/lisp/term/sun.el index e0564d44ecb..238bb2f7212 100644 --- a/lisp/term/sun.el +++ b/lisp/term/sun.el @@ -1,6 +1,6 @@ ;;; sun.el --- keybinding for standard default sunterm keys -;; Copyright (C) 1987 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2001 Free Software Foundation, Inc. ;; Author: Jeff Peck ;; Keywords: terminals diff --git a/lisp/term/tty-colors.el b/lisp/term/tty-colors.el index 1de35822b39..62308a5460e 100644 --- a/lisp/term/tty-colors.el +++ b/lisp/term/tty-colors.el @@ -1,6 +1,6 @@ ;;; tty-colors.el --- color support for character terminals -;; Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. ;; Author: Eli Zaretskii ;; Maintainer: FSF diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index ca3c0e2e963..f99eff9ef1a 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -1,6 +1,6 @@ ;;; w32-win.el --- parse switches controlling interface with W32 window system -;; Copyright (C) 1993, 1994, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2003, 2005 Free Software Foundation, Inc. ;; Author: Kevin Gallo ;; Keywords: terminals diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index 17ec969e45b..c37c98f6781 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -1,6 +1,6 @@ ;;; x-win.el --- parse relevant switches and set up for X -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 1993, 1994, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 2001, 2002, 2005 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals, i18n diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index d4fe99f1f6a..b55f18f6883 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el @@ -1,6 +1,6 @@ ;;; xterm.el --- define function key sequences and standard colors for xterm -;; Copyright (C) 1995, 2002, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1995, 2002, 2005 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals From 913d55fe7f6090b4ace4d910c397086607e4e878 Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Thu, 12 May 2005 01:39:56 +0000 Subject: [PATCH 50/90] *** empty log message *** --- admin/FOR-RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index b0169008af0..ea0f46377e5 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -97,7 +97,7 @@ lisp/international working Kenichi Handa lisp/languages working Kenichi Handa lisp/net working Thien-Thi Nguyen lisp/play done Thien-Thi Nguyen -lisp/term working Thien-Thi Nguyen +lisp/term done Thien-Thi Nguyen ** Update AUTHORS. From 218cf475f59c3cd89e82d71b84b1d0cde88273b1 Mon Sep 17 00:00:00 2001 From: Masatake YAMATO Date: Thu, 12 May 2005 05:29:57 +0000 Subject: [PATCH 51/90] (find-change-log): Fix typos in the docstring of function. --- lisp/ChangeLog | 5 +++++ lisp/add-log.el | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7c8ec531cb6..669bcdd9540 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-12 Masatake YAMATO + + * add-log.el (find-change-log): Fix typos in the docstring + of function. + 2005-05-11 Arne J,Ax(Brgensen * international/latexenc.el (latexenc-find-file-coding-system): diff --git a/lisp/add-log.el b/lisp/add-log.el index 2714df554b8..ab8d60c0c04 100644 --- a/lisp/add-log.el +++ b/lisp/add-log.el @@ -375,10 +375,10 @@ nil, by matching `change-log-version-number-regexp-list'." Optional arg FILE-NAME specifies the file to use. If FILE-NAME is nil, use the value of `change-log-default-name'. -If 'change-log-default-name' is nil, behave as though it were 'ChangeLog' +If `change-log-default-name' is nil, behave as though it were 'ChangeLog' \(or whatever we use on this operating system). -If 'change-log-default-name' contains a leading directory component, then +If `change-log-default-name' contains a leading directory component, then simply find it in the current directory. Otherwise, search in the current directory and its successive parents for a file so named. From 6da4411e2eb4e93b1a294bc37c024a7bfea798d9 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Thu, 12 May 2005 08:57:04 +0000 Subject: [PATCH 52/90] *** empty log message *** --- lisp/ChangeLog | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 669bcdd9540..a19fe8b6db9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,10 @@ +2005-05-12 Kim F. Storm + + * font-lock.el (font-lock-negation-char-face): Default to "off". + + * progmodes/cc-fonts.el (c-basic-matchers-before): Don't apply + font-lock-negation-char-face to ! in !=. + 2005-05-12 Masatake YAMATO * add-log.el (find-change-log): Fix typos in the docstring From 39eae0731cd39b0a84866873e3281f4ac9ae13a5 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Thu, 12 May 2005 08:57:17 +0000 Subject: [PATCH 53/90] (font-lock-negation-char-face): Default to "off". --- lisp/font-lock.el | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index f1199d1e14e..1657400fe77 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1798,13 +1798,8 @@ Sets various variables using `font-lock-defaults' (or, if nil, using "Font Lock mode face used to highlight warnings." :group 'font-lock-highlighting-faces) -;; Matches font-lock-builtin-face, because that is used for #ifndef and -;; font-lock-keyword-face, which alas make-mode uses for ifndef (defface font-lock-negation-char-face - '((((class color) (min-colors 88) (background light)) (:foreground "VioletRed" :weight bold)) - (((class color) (min-colors 88) (background dark)) (:foreground "MediumOrchid1" :weight bold)) - (((class color) (min-colors 8)) (:foreground "red" :weight bold)) - (t (:inverse-video t :weight bold))) + '((t nil)) "Font Lock mode face used to highlight easy to overlook negation." :group 'font-lock-highlighting-faces) From 5ba65c038f76705077234087966fd5c3707fe1c1 Mon Sep 17 00:00:00 2001 From: "Kim F. Storm" Date: Thu, 12 May 2005 08:57:42 +0000 Subject: [PATCH 54/90] (c-basic-matchers-before): Don't apply font-lock-negation-char-face to ! in !=. --- lisp/progmodes/cc-fonts.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el index 74efef4133f..26c0bdaf60f 100644 --- a/lisp/progmodes/cc-fonts.el +++ b/lisp/progmodes/cc-fonts.el @@ -673,7 +673,7 @@ casts and declarations are fontified. Used on level 2 and higher." (c-font-lock-objc-iip-decl))) nil)))))) - ("!" . font-lock-negation-char-face) + ("\\(!\\)[^=]" 1 font-lock-negation-char-face) )) (defun c-font-lock-complex-decl-prepare (limit) From c50089c9bb8e6c32e6fe85d796e93750c6d6eae1 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 12 May 2005 09:26:17 +0000 Subject: [PATCH 55/90] Comment change. --- lisp/ChangeLog | 5 +++++ lisp/add-log.el | 3 +++ 2 files changed, 8 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a19fe8b6db9..0a6abfdebd3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -45,6 +45,11 @@ (mouse-select, mouse-select-internal, mouse-extend-internal): Use it to implement mouse-1-click-follows-link functionality. +2005-05-11 Richard M. Stallman + + * font-lock.el (font-lock-fontify-syntactically-region): + Use font-lock-comment-delimiter-face for comment delimiters. + 2005-05-10 Jay Belanger * calc/calc-help.el (calc-m-prefix-help): Add mention of diff --git a/lisp/add-log.el b/lisp/add-log.el index ab8d60c0c04..7c5f8462f77 100644 --- a/lisp/add-log.el +++ b/lisp/add-log.el @@ -250,6 +250,9 @@ Note: The search is conducted only within 10%, at the beginning of the file." ;; Acknowledgements. ;; Don't include plain "From" because that is vague; ;; we want to encourage people to say something more specific. + ;; Note that the FSF does not use "Patches by"; our convention + ;; is to put the name of the author of the changes at the top + ;; of the change log entry. ("\\(^\\( +\\|\t\\)\\| \\)\\(Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)" 3 'change-log-acknowledgement-face)) "Additional expressions to highlight in Change Log mode.") From 0598b84f1047c188814a6f00efb33a31cf612aef Mon Sep 17 00:00:00 2001 From: Thien-Thi Nguyen Date: Thu, 12 May 2005 11:14:42 +0000 Subject: [PATCH 56/90] *** empty log message *** --- admin/FOR-RELEASE | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index ea0f46377e5..1d43b530793 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -93,6 +93,7 @@ you're going to handle. DIRECTORY STATUS IN CHARGE --------- ------ --------- +lisp/emulation working Thien-Thi Nguyen lisp/international working Kenichi Handa lisp/languages working Kenichi Handa lisp/net working Thien-Thi Nguyen @@ -216,10 +217,10 @@ lispref/windows.texi "Luc Teirlinck" Chong Yidong ** Check the Emacs Tutorial. -The first line of every tutorial must begin with a sentence saying -"Emacs Tutorial" in the respective language. This should be followed -by "See end for copying conditions", likewise in the respective -language. +The first line of every tutorial must begin with text ending in a period +(".", ASCII 0x2E) saying "Emacs Tutorial" in the respective language. +This should be followed by "See end for copying conditions", likewise +in the respective language. After each file name, on the same line or the following line, come the names of the people who have checked it. From d4fb185de92d5c4a27e7b15f94217697eca32cda Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Thu, 12 May 2005 13:19:29 +0000 Subject: [PATCH 57/90] Fix callers of define-generic-mode. (generic-x-modes): Delete group. (show-tabs-tab-face, show-tabs-space-face): Put them in the generic-x customization group. --- lisp/generic-x.el | 110 +++++++++++++++------------------------------- 1 file changed, 36 insertions(+), 74 deletions(-) diff --git a/lisp/generic-x.el b/lisp/generic-x.el index 31aa9299fbb..e0fb811f88b 100644 --- a/lisp/generic-x.el +++ b/lisp/generic-x.el @@ -116,11 +116,6 @@ :group 'data :version "20.3") -(defgroup generic-x-modes nil - "Individual modes in the collection of generic modes." - :group 'generic-x - :version "22.1") - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Default-Generic mode ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -158,7 +153,7 @@ the regexp in `generic-find-file-regexp'. If the value is nil, :type '(choice (const :tag "Don't check file names" nil) regexp)) ;; This generic mode is always defined -(define-generic-mode default-generic-mode (list ?#) nil nil nil nil :group 'generic-x-modes) +(define-generic-mode default-generic-mode (list ?#) nil nil nil nil) ;; A more general solution would allow us to enter generic-mode for ;; *any* comment character, but would require us to synthesize a new @@ -308,8 +303,7 @@ your changes into effect." '((nil "^\\([-A-Za-z0-9_]+\\)" 1) ("*Directories*" "^\\s-*]+\\)>" 1) ("*Locations*" "^\\s-*]+\\)>" 1)))))) - "Generic mode for Apache or HTTPD configuration files." - :group 'generic-x-modes)) + "Generic mode for Apache or HTTPD configuration files.")) (when (memq 'apache-log-generic-mode generic-extras-enable-list) @@ -322,8 +316,7 @@ your changes into effect." (2 font-lock-variable-name-face))) '("access_log\\'") nil - "Mode for Apache log files" - :group 'generic-x-modes)) + "Mode for Apache log files")) ;;; Samba (when (memq 'samba-generic-mode generic-extras-enable-list) @@ -337,8 +330,7 @@ your changes into effect." (2 font-lock-type-face))) '("smb\\.conf\\'") '(generic-bracket-support) - "Generic mode for Samba configuration files." - :group 'generic-x-modes)) + "Generic mode for Samba configuration files.")) ;;; Fvwm ;; This is pretty basic. Also, modes for other window managers could @@ -363,8 +355,7 @@ your changes into effect." nil '("\\.fvwmrc\\'" "\\.fvwm2rc\\'") nil - "Generic mode for FVWM configuration files." - :group 'generic-x-modes)) + "Generic mode for FVWM configuration files.")) ;;; X Resource ;; I'm pretty sure I've seen an actual mode to do this, but I don't @@ -377,8 +368,7 @@ your changes into effect." '(("^\\([^:\n]+:\\)" 1 font-lock-variable-name-face)) '("\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'") nil - "Generic mode for X Resource configuration files." - :group 'generic-x-modes)) + "Generic mode for X Resource configuration files.")) ;;; Hosts (when (memq 'hosts-generic-mode generic-extras-enable-list) @@ -389,8 +379,7 @@ your changes into effect." '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face)) '("[hH][oO][sS][tT][sS]\\'") nil - "Generic mode for HOSTS files." - :group 'generic-x-modes)) + "Generic mode for HOSTS files.")) ;;; Windows INF files (when (memq 'inf-generic-mode generic-extras-enable-list) @@ -401,8 +390,7 @@ your changes into effect." '(("^\\(\\[.*\\]\\)" 1 font-lock-constant-face)) '("\\.[iI][nN][fF]\\'") '(generic-bracket-support) - "Generic mode for MS-Windows INF files." - :group 'generic-x-modes)) + "Generic mode for MS-Windows INF files.")) ;;; Windows INI files ;; Should define escape character as well! @@ -424,8 +412,7 @@ your changes into effect." ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1)))))) "Generic mode for MS-Windows INI files. You can use `ini-generic-mode-find-file-hook' to enter this mode -automatically for INI files whose names do not end in \".ini\"." - :group 'generic-x-modes) +automatically for INI files whose names do not end in \".ini\".") (defun ini-generic-mode-find-file-hook () "Hook function to enter Ini-Generic mode automatically for INI files. @@ -453,8 +440,7 @@ like an INI file. You can add this hook to `find-file-hook'." (lambda () (setq imenu-generic-expression '((nil "^\\s-*\\(.*\\)\\s-*=" 1)))))) - "Generic mode for MS-Windows Registry files." - :group 'generic-x-modes)) + "Generic mode for MS-Windows Registry files.")) ;;; DOS/Windows BAT files (when (memq 'bat-generic-mode generic-extras-enable-list) @@ -528,8 +514,7 @@ like an INI file. You can add this hook to `find-file-hook'." "\\`[cC][oO][nN][fF][iI][gG]\\." "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\.") '(generic-bat-mode-setup-function) - "Generic mode for MS-Windows BAT files." - :group 'generic-x-modes) + "Generic mode for MS-Windows BAT files.") (defvar bat-generic-mode-syntax-table nil "Syntax table in use in `bat-generic-mode' buffers.") @@ -608,8 +593,7 @@ like an INI file. You can add this hook to `find-file-hook'." (lambda () (setq imenu-generic-expression '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1)))))) - "Mode for Mailagent rules files." - :group 'generic-x-modes)) + "Mode for Mailagent rules files.")) ;; Solaris/Sys V prototype files (when (memq 'prototype-generic-mode generic-extras-enable-list) @@ -632,8 +616,7 @@ like an INI file. You can add this hook to `find-file-hook'." (2 font-lock-variable-name-face))) '("prototype\\'") nil - "Mode for Sys V prototype files." - :group 'generic-x-modes)) + "Mode for Sys V prototype files.")) ;; Solaris/Sys V pkginfo files (when (memq 'pkginfo-generic-mode generic-extras-enable-list) @@ -646,8 +629,7 @@ like an INI file. You can add this hook to `find-file-hook'." (2 font-lock-variable-name-face))) '("pkginfo\\'") nil - "Mode for Sys V pkginfo files." - :group 'generic-x-modes)) + "Mode for Sys V pkginfo files.")) ;; Javascript mode ;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU] @@ -726,8 +708,7 @@ like an INI file. You can add this hook to `find-file-hook'." (setq imenu-generic-expression '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1) ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1)))))) - "Mode for JavaScript files." - :group 'generic-x-modes)) + "Mode for JavaScript files.")) ;; VRML files (when (memq 'vrml-generic-mode generic-extras-enable-list) @@ -780,8 +761,7 @@ like an INI file. You can add this hook to `find-file-hook'." ("*Definitions*" "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{" 1)))))) - "Generic Mode for VRML files." - :group 'generic-x-modes)) + "Generic Mode for VRML files.")) ;; Java Manifests (when (memq 'java-manifest-generic-mode generic-extras-enable-list) @@ -802,8 +782,7 @@ like an INI file. You can add this hook to `find-file-hook'." (2 font-lock-constant-face))) '("[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'") nil - "Mode for Java Manifest files" - :group 'generic-x-modes)) + "Mode for Java Manifest files")) ;; Java properties files (when (memq 'java-properties-generic-mode generic-extras-enable-list) @@ -835,8 +814,7 @@ like an INI file. You can add this hook to `find-file-hook'." (lambda () (setq imenu-generic-expression '((nil "^\\([^#! \t\n\r=:]+\\)" 1)))))) - "Mode for Java properties files." - :group 'generic-x-modes)) + "Mode for Java properties files.")) ;; C shell alias definitions (when (memq 'alias-generic-mode generic-extras-enable-list) @@ -854,8 +832,7 @@ like an INI file. You can add this hook to `find-file-hook'." (lambda () (setq imenu-generic-expression '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2)))))) - "Mode for C Shell alias files." - :group 'generic-x-modes)) + "Mode for C Shell alias files.")) ;;; Windows RC files ;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira) @@ -947,8 +924,7 @@ like an INI file. You can add this hook to `find-file-hook'." (2 font-lock-variable-name-face nil t)))) '("\\.[rR][cC]\\'") nil - "Generic mode for MS-Windows Resource files." - :group 'generic-x-modes)) + "Generic mode for MS-Windows Resource files.")) ;; InstallShield RUL files ;; Contributed by Alfred.Correira@Pervasive.Com @@ -1568,8 +1544,7 @@ like an INI file. You can add this hook to `find-file-hook'." font-lock-variable-name-face "[^_]" "[^_]"))) ; is this face the best choice? '("\\.[rR][uU][lL]\\'") '(generic-rul-mode-setup-function) - "Generic mode for InstallShield RUL files." - :group 'generic-x-modes) + "Generic mode for InstallShield RUL files.") (define-skeleton rul-if "Insert an if statement." @@ -1619,8 +1594,7 @@ like an INI file. You can add this hook to `find-file-hook'." (2 font-lock-variable-name-face))) '("\\.mailrc\\'") nil - "Mode for mailrc files." - :group 'generic-x-modes)) + "Mode for mailrc files.")) ;; Inetd.conf (when (memq 'inetd-conf-generic-mode generic-extras-enable-list) @@ -1640,8 +1614,7 @@ like an INI file. You can add this hook to `find-file-hook'." (function (lambda () (setq imenu-generic-expression - '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))))) - :group 'generic-x-modes)) + '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))))))) ;; Services (when (memq 'etc-services-generic-mode generic-extras-enable-list) @@ -1659,8 +1632,7 @@ like an INI file. You can add this hook to `find-file-hook'." (function (lambda () (setq imenu-generic-expression - '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))))) - :group 'generic-x-modes)) + '((nil "^\\([-A-Za-z0-9_]+\\)" 1)))))))) ;; Password and Group files (when (memq 'etc-passwd-generic-mode generic-extras-enable-list) @@ -1702,8 +1674,7 @@ like an INI file. You can add this hook to `find-file-hook'." (function (lambda () (setq imenu-generic-expression - '((nil "^\\([-A-Za-z0-9_]+\\):" 1)))))) - :group 'generic-x-modes)) + '((nil "^\\([-A-Za-z0-9_]+\\):" 1)))))))) ;; Fstab (when (memq 'etc-fstab-generic-mode generic-extras-enable-list) @@ -1753,8 +1724,7 @@ like an INI file. You can add this hook to `find-file-hook'." (function (lambda () (setq imenu-generic-expression - '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1)))))) - :group 'generic-x-modes)) + '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1)))))))) ;; From Jacques Duthen (when (memq 'show-tabs-generic-mode generic-extras-enable-list) @@ -1780,7 +1750,7 @@ like an INI file. You can add this hook to `find-file-hook'." (((class color)) (:background "red")) (t (:weight bold))) "Font Lock mode face used to highlight TABs." - :group 'generic-x-modes) + :group 'generic-x) (defface show-tabs-space-face '((((class grayscale) (background light)) (:background "DimGray" :weight bold)) @@ -1789,7 +1759,7 @@ like an INI file. You can add this hook to `find-file-hook'." (((class color)) (:background "yellow")) (t (:weight bold))) "Font Lock mode face used to highlight spaces." - :group 'generic-x-modes) + :group 'generic-x) (define-generic-mode show-tabs-generic-mode nil ;; no comment char @@ -1798,8 +1768,7 @@ like an INI file. You can add this hook to `find-file-hook'." nil ;; no auto-mode-alist ;; '(show-tabs-generic-mode-hook-fun) nil - "Generic mode to show tabs and trailing spaces" - :group 'generic-x-modes)) + "Generic mode to show tabs and trailing spaces")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; DNS modes @@ -1822,8 +1791,7 @@ like an INI file. You can add this hook to `find-file-hook'." ;; List of additional automode-alist expressions '("/etc/named.boot\\'") ;; List of set up functions to call - nil - :group 'generic-x-modes)) + nil)) (when (memq 'named-database-generic-mode generic-extras-enable-list) @@ -1838,8 +1806,7 @@ like an INI file. You can add this hook to `find-file-hook'." ;; List of additional auto-mode-alist expressions nil ;; List of set up functions to call - nil - :group 'generic-x-modes) + nil) (defvar named-database-time-string "%Y%m%d%H" "Timestring for named serial numbers.") @@ -1861,8 +1828,7 @@ like an INI file. You can add this hook to `find-file-hook'." ;; List of additional auto-mode-alist expressions '("/etc/resolv[e]?.conf\\'") ;; List of set up functions to call - nil - :group 'generic-x-modes)) + nil)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Modes for spice and common electrical engineering circuit netlist formats @@ -1906,8 +1872,7 @@ like an INI file. You can add this hook to `find-file-hook'." (function (lambda() (setq font-lock-defaults '(generic-font-lock-keywords nil t))))) - "Generic mode for SPICE circuit netlist files." - :group 'generic-x-modes)) + "Generic mode for SPICE circuit netlist files.")) (when (memq 'ibis-generic-mode generic-extras-enable-list) @@ -1918,8 +1883,7 @@ like an INI file. You can add this hook to `find-file-hook'." ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 font-lock-variable-name-face)) '("\\.[iI][bB][sS]\\'") '(generic-bracket-support) - "Generic mode for IBIS circuit netlist files." - :group 'generic-x-modes)) + "Generic mode for IBIS circuit netlist files.")) (when (memq 'astap-generic-mode generic-extras-enable-list) @@ -1956,8 +1920,7 @@ like an INI file. You can add this hook to `find-file-hook'." (function (lambda() (setq font-lock-defaults '(generic-font-lock-keywords nil t))))) - "Generic mode for ASTAP circuit netlist files." - :group 'generic-x-modes)) + "Generic mode for ASTAP circuit netlist files.")) (when (memq 'etc-modules-conf-generic-mode generic-extras-enable-list) @@ -2001,8 +1964,7 @@ like an INI file. You can add this hook to `find-file-hook'." ;; List of additional automode-alist expressions '("/etc/modules.conf" "/etc/conf.modules") ;; List of set up functions to call - nil - :group 'generic-x-modes)) + nil)) (provide 'generic-x) From 28e7aba4fd2bc5e3178ce4a4358722a327808538 Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Thu, 12 May 2005 13:20:56 +0000 Subject: [PATCH 58/90] (Generic Modes): Update. (Major Modes): Refer to node "Generic Modes". --- lispref/modes.texi | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/lispref/modes.texi b/lispref/modes.texi index 12c4493b36f..4e6085566c4 100644 --- a/lispref/modes.texi +++ b/lispref/modes.texi @@ -71,10 +71,9 @@ it is convenient to use @code{define-derived-mode} with a @code{nil} parent argument, since it automatically enforces the most important coding conventions for you. -@findex define-generic-mode For a very simple programming language major mode that handles -comments and fontification, you can use @code{define-generic-mode} -in @file{generic.el}. +comments and fontification, you can use @code{define-generic-mode}. +@xref{Generic Modes}. Rmail Edit mode offers an example of changing the major mode temporarily for a buffer, so it can be edited in a different way (with @@ -873,7 +872,7 @@ configuration files. To define a generic mode, use the macro @code{define-generic-mode}. See the file @file{generic-x.el} for some examples of the use of @code{define-generic-mode}. -@defmac define-generic-mode mode comment-list keyword-list font-lock-list auto-mode-list function-list &optional docstring &rest custom-keyword-args +@defmac define-generic-mode mode comment-list keyword-list font-lock-list auto-mode-list function-list &optional docstring This macro creates a new generic mode. The argument @var{mode} (an unquoted symbol) is the major mode command. The optional argument @var{docstring} is the documentation for the mode command. If you do @@ -902,16 +901,7 @@ when Emacs runs the macro expansion. @var{function-list} is a list of functions to call to do some additional setup. The mode command calls these functions just before -it runs the mode hook. - -The optional @var{custom-keyword-args} are pairs of keywords and -values to include in the generated @code{defcustom} form for the mode -hook variable @code{@var{mode}-hook}. The default value for the -@samp{:group} keyword is @var{mode} with the final @samp{-mode} (if -any) removed. Don't use this default group name unless you have -written a @code{defgroup} to define that group properly (@pxref{Group -Definitions}). You can specify keyword arguments without specifying a -docstring. +it runs the mode hook variable @code{@var{mode}-hook}. @end defmac @node Mode Hooks From 7e8035019d4729795d9c2536f6d33ffd631e49eb Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Thu, 12 May 2005 13:23:31 +0000 Subject: [PATCH 59/90] (define-generic-mode): Don't generate a defcustom for the mode hook variable. Delete the last argument. --- lisp/emacs-lisp/generic.el | 74 +++++++++++++------------------------- 1 file changed, 24 insertions(+), 50 deletions(-) diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el index 03f389aa4d1..4d778bf35c6 100644 --- a/lisp/emacs-lisp/generic.el +++ b/lisp/emacs-lisp/generic.el @@ -117,46 +117,37 @@ instead (which see).") ;;;###autoload (defmacro define-generic-mode (mode comment-list keyword-list font-lock-list auto-mode-list - function-list &optional docstring - &rest custom-keyword-args) + function-list &optional docstring) "Create a new generic mode MODE. -MODE is the name of the command for the generic mode; don't quote -it. The optional DOCSTRING is the documentation for the mode -command. If you do not supply it, `define-generic-mode' uses a -default documentation string instead. +MODE is the name of the command for the generic mode; don't quote it. +The optional DOCSTRING is the documentation for the mode command. If +you do not supply it, `define-generic-mode' uses a default +documentation string instead. -COMMENT-LIST is a list in which each element is either a -character, a string of one or two characters, or a cons cell. A -character or a string is set up in the mode's syntax table as a -\"comment starter\". If the entry is a cons cell, the `car' is -set up as a \"comment starter\" and the `cdr' as a \"comment -ender\". (Use nil for the latter if you want comments to end at -the end of the line.) Note that the syntax table has limitations -about what comment starters and enders are actually possible. +COMMENT-LIST is a list in which each element is either a character, a +string of one or two characters, or a cons cell. A character or a +string is set up in the mode's syntax table as a \"comment starter\". +If the entry is a cons cell, the `car' is set up as a \"comment +starter\" and the `cdr' as a \"comment ender\". (Use nil for the +latter if you want comments to end at the end of the line.) Note that +the syntax table has limitations about what comment starters and +enders are actually possible. KEYWORD-LIST is a list of keywords to highlight with `font-lock-keyword-face'. Each keyword should be a string. -FONT-LOCK-LIST is a list of additional expressions to highlight. -Each element of this list should have the same form as an element -of `font-lock-keywords'. +FONT-LOCK-LIST is a list of additional expressions to highlight. Each +element of this list should have the same form as an element of +`font-lock-keywords'. AUTO-MODE-LIST is a list of regular expressions to add to -`auto-mode-alist'. These regular expressions are added when -Emacs runs the macro expansion. +`auto-mode-alist'. These regular expressions are added when Emacs +runs the macro expansion. -FUNCTION-LIST is a list of functions to call to do some -additional setup. The mode command calls these functions just -before it runs the mode hook. - -The optional CUSTOM-KEYWORD-ARGS are pairs of keywords and values -to include in the generated `defcustom' form for the mode hook -variable `MODE-hook'. The default value for the `:group' keyword -is MODE with the final \"-mode\" (if any) removed. (Don't use -this default group name unless you have written a `defgroup' to -define that group properly.) You can specify keyword arguments -without specifying a docstring. +FUNCTION-LIST is a list of functions to call to do some additional +setup. The mode command calls these functions just before it runs the +mode hook `MODE-hook'. See the file generic-x.el for some examples of `define-generic-mode'." (declare (debug (sexp def-form def-form def-form form def-form @@ -167,22 +158,9 @@ See the file generic-x.el for some examples of `define-generic-mode'." (when (eq (car-safe mode) 'quote) (setq mode (eval mode))) - (when (and docstring (not (stringp docstring))) - ;; DOCSTRING is not a string so we assume that it's actually the - ;; first keyword of CUSTOM-KEYWORD-ARGS. - (push docstring custom-keyword-args) - (setq docstring nil)) - (let* ((name (symbol-name mode)) (pretty-name (capitalize (replace-regexp-in-string - "-mode\\'" "" name))) - (mode-hook (intern (concat name "-hook")))) - - (unless (plist-get custom-keyword-args :group) - (setq custom-keyword-args - (plist-put custom-keyword-args - :group `',(intern (replace-regexp-in-string - "-mode\\'" "" name))))) + "-mode\\'" "" name)))) `(progn ;; Add a new entry. @@ -192,15 +170,11 @@ See the file generic-x.el for some examples of `define-generic-mode'." (dolist (re ,auto-mode-list) (add-to-list 'auto-mode-alist (cons re ',mode))) - (defcustom ,mode-hook nil - ,(concat "Hook run when entering " pretty-name " mode.") - :type 'hook - ,@custom-keyword-args) - (defun ,mode () ,(or docstring (concat pretty-name " mode.\n" - "This a generic mode defined with `define-generic-mode'.")) + "This a generic mode defined with `define-generic-mode'.\n" + "It runs `" name "-hook' as the last thing it does.")) (interactive) (generic-mode-internal ',mode ,comment-list ,keyword-list ,font-lock-list ,function-list))))) From 199581247bd0480ce256d18ef66ec32b2ba7d6dd Mon Sep 17 00:00:00 2001 From: Lute Kamstra Date: Thu, 12 May 2005 13:25:15 +0000 Subject: [PATCH 60/90] *** empty log message *** --- lisp/ChangeLog | 9 +++++++++ lispref/ChangeLog | 3 +++ 2 files changed, 12 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0a6abfdebd3..58b9df80dbe 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,12 @@ +2005-05-12 Lute Kamstra + + * emacs-lisp/generic.el (define-generic-mode): Don't generate a + defcustom for the mode hook variable. Delete the last argument. + * generic-x.el: Fix callers of define-generic-mode. + (generic-x-modes): Delete group. + (show-tabs-tab-face, show-tabs-space-face): Put them in the + generic-x customization group. + 2005-05-12 Kim F. Storm * font-lock.el (font-lock-negation-char-face): Default to "off". diff --git a/lispref/ChangeLog b/lispref/ChangeLog index b5ef4428396..d436eac5195 100644 --- a/lispref/ChangeLog +++ b/lispref/ChangeLog @@ -1,5 +1,8 @@ 2005-05-12 Lute Kamstra + * modes.texi (Generic Modes): Update. + (Major Modes): Refer to node "Generic Modes". + * elisp.texi (Top): Update to the current structure of the manual. * processes.texi (Processes): Add menu description. * customize.texi (Customization): Add menu descriptions. From e94dae7fe3eb571843cfe6397b0ddcfa9b48a49a Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 12 May 2005 14:12:25 +0000 Subject: [PATCH 61/90] (eshell-send-input): Doc fix. --- lisp/ChangeLog | 4 ++++ lisp/eshell/esh-mode.el | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 58b9df80dbe..6f298bace3e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2005-05-12 Andreas Schwab + + * eshell/esh-mode.el (eshell-send-input): Doc fix. + 2005-05-12 Lute Kamstra * emacs-lisp/generic.el (define-generic-mode): Don't generate a diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index ea9ae01a2f4..7b07b84563a 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -663,7 +663,7 @@ waiting for input." (eshell-match-result "alpha\n")) (defun eshell-send-input (&optional use-region queue-p no-newline) - "Send the input received to Eshell for parsing and processing.. + "Send the input received to Eshell for parsing and processing. After `eshell-last-output-end', sends all text from that marker to point as input. Before that marker, calls `eshell-get-old-input' to retrieve old input, copies it to the end of the buffer, and sends it. From bf2cea1da000b3e5ee09239ecf00cd885fac193d Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 12 May 2005 20:04:32 +0000 Subject: [PATCH 62/90] (font-lock-comment-delimiter-face): Inherit from font-lock-comment-face rather than copying its setting. --- lisp/ChangeLog | 5 +++++ lisp/font-lock.el | 26 +++++--------------------- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6f298bace3e..0c25bc236d6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-12 Stefan Monnier + + * font-lock.el (font-lock-comment-delimiter-face): Inherit from + font-lock-comment-face rather than copying its setting. + 2005-05-12 Andreas Schwab * eshell/esh-mode.el (eshell-send-input): Doc fix. diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 1657400fe77..006d8713f9a 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1655,27 +1655,6 @@ Sets various variables using `font-lock-defaults' (or, if nil, using ;; But now we do it the custom way. Note that `defface' will not overwrite any ;; faces declared above via `custom-declare-face'. -(defface font-lock-comment-delimiter-face - '((((class grayscale) (background light)) - (:foreground "DimGray" :weight bold :slant italic)) - (((class grayscale) (background dark)) - (:foreground "LightGray" :weight bold :slant italic)) - (((class color) (min-colors 88) (background light)) - (:foreground "Firebrick")) - (((class color) (min-colors 88) (background dark)) - (:foreground "chocolate1")) - (((class color) (min-colors 16) (background light)) - (:foreground "red")) - (((class color) (min-colors 16) (background dark)) - (:foreground "red1")) - (((class color) (min-colors 8) (background light)) - (:foreground "red")) - (((class color) (min-colors 8) (background dark)) - (:foreground "red1")) - (t (:weight bold :slant italic))) - "Font Lock mode face used to highlight comment delimiters." - :group 'font-lock-highlighting-faces) - (defface font-lock-comment-face '((((class grayscale) (background light)) (:foreground "DimGray" :weight bold :slant italic)) @@ -1697,6 +1676,11 @@ Sets various variables using `font-lock-defaults' (or, if nil, using "Font Lock mode face used to highlight comments." :group 'font-lock-highlighting-faces) +(defface font-lock-comment-delimiter-face + '((t :inherit font-lock-comment-face)) + "Font Lock mode face used to highlight comment delimiters." + :group 'font-lock-highlighting-faces) + (defface font-lock-string-face '((((class grayscale) (background light)) (:foreground "DimGray" :slant italic)) (((class grayscale) (background dark)) (:foreground "LightGray" :slant italic)) From 3187cffc0d4c0b80b7d098e5a4a5614b6eb183dd Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 12 May 2005 21:23:04 +0000 Subject: [PATCH 63/90] (font-lock-comment-delimiter-face): Fix last change. --- lisp/font-lock.el | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 006d8713f9a..762923809d5 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1677,7 +1677,11 @@ Sets various variables using `font-lock-defaults' (or, if nil, using :group 'font-lock-highlighting-faces) (defface font-lock-comment-delimiter-face - '((t :inherit font-lock-comment-face)) + '((default :inherit font-lock-comment-face) + (((class color) (min-colors 8) (background light)) + :foreground "red") + (((class color) (min-colors 8) (background dark)) + :foreground "red1")) "Font Lock mode face used to highlight comment delimiters." :group 'font-lock-highlighting-faces) From 0cc615112c2973fb4b0235512391784f73a23b8f Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Thu, 12 May 2005 23:07:24 +0000 Subject: [PATCH 64/90] *** empty log message *** --- lisp/ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0c25bc236d6..855efc8a798 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2005-05-12 Luc Teirlinck + + * files.el (normal-mode): Extend the scope of the + `enable-local-variables' binding to include the `set-auto-mode' call. + (magic-mode-alist): Doc fix. + 2005-05-12 Stefan Monnier * font-lock.el (font-lock-comment-delimiter-face): Inherit from From 0fc205c63e853605b0af6af63fe7effff636f3df Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Thu, 12 May 2005 23:09:33 +0000 Subject: [PATCH 65/90] (normal-mode): Extend the scope of the `enable-local-variables' binding to include the `set-auto-mode' call. (magic-mode-alist): Doc fix. --- lisp/files.el | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index 99847b2f3fc..e08381cdccb 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1728,10 +1728,10 @@ or from Lisp without specifying the optional argument FIND-FILE; in that case, this function acts as if `enable-local-variables' were t." (interactive) (or find-file (funcall (or default-major-mode 'fundamental-mode))) - (report-errors "File mode specification error: %s" - (set-auto-mode)) - (report-errors "File local-variables error: %s" - (let ((enable-local-variables (or (not find-file) enable-local-variables))) + (let ((enable-local-variables (or (not find-file) enable-local-variables))) + (report-errors "File mode specification error: %s" + (set-auto-mode)) + (report-errors "File local-variables error: %s" (hack-local-variables))) (if (fboundp 'ucs-set-table-for-input) ; don't lose when building (ucs-set-table-for-input))) @@ -1992,7 +1992,7 @@ if REGEXP matches the text at the beginning of the buffer, to decide the buffer's major mode. If FUNCTION is nil, then it is not called. (That is a way of saying -\"allow `auto-mode-alist' to decide for these files.") +\"allow `auto-mode-alist' to decide for these files.)") (defun set-auto-mode (&optional keep-mode-if-same) "Select major mode appropriate for current buffer. From 0de01c281a54b9d36ed6612f1730568fecdeaf13 Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Fri, 13 May 2005 02:25:35 +0000 Subject: [PATCH 66/90] *** empty log message *** --- lisp/ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 855efc8a798..39ed1402c07 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2005-05-12 Luc Teirlinck + * progmodes/inf-lisp.el (inferior-lisp-mode-hook) + (inferior-lisp-load-hook): Convert defcustoms back to defvars. + * files.el (normal-mode): Extend the scope of the `enable-local-variables' binding to include the `set-auto-mode' call. (magic-mode-alist): Doc fix. From 0f64661897f7a2afa00de96f5d08f58ec567389b Mon Sep 17 00:00:00 2001 From: Luc Teirlinck Date: Fri, 13 May 2005 02:28:52 +0000 Subject: [PATCH 67/90] (inferior-lisp-mode-hook, inferior-lisp-load-hook): Convert defcustoms back to defvars. --- lisp/progmodes/inf-lisp.el | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el index 083d87f581c..13bc7f08999 100644 --- a/lisp/progmodes/inf-lisp.el +++ b/lisp/progmodes/inf-lisp.el @@ -214,10 +214,8 @@ processes, you can change `inferior-lisp-buffer' to another process buffer with \\[set-variable].") ;;;###autoload -(defcustom inferior-lisp-mode-hook '() - "*Hook for customising Inferior Lisp mode." - :type 'hook - :group 'inferior-lisp) +(defvar inferior-lisp-mode-hook '() + "*Hook for customising Inferior Lisp mode.") (put 'inferior-lisp-mode 'mode-class 'special) @@ -590,10 +588,8 @@ See variable `lisp-describe-sym-command'." ;;; Do the user's customisation... ;;;=============================== -(defcustom inferior-lisp-load-hook nil - "This hook is run when the library `inf-lisp' is loaded." - :type 'hook - :group 'inferior-lisp) +(defvar inferior-lisp-load-hook nil + "This hook is run when the library `inf-lisp' is loaded.") (run-hooks 'inferior-lisp-load-hook) From 3f2bf04a77828d521245c29324340decc2f8c2f3 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 02:28:53 +0000 Subject: [PATCH 68/90] (syms_of_macselect) [MAC_OSX]: Apply a change that was previously mentioned but actually not applied. --- src/macselect.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/macselect.c b/src/macselect.c index a115c9b3229..890bb62d1d4 100644 --- a/src/macselect.c +++ b/src/macselect.c @@ -1104,9 +1104,11 @@ next communication only. After the communication, this variable is set to nil. */); Vnext_selection_coding_system = Qnil; +#ifdef MAC_OSX DEFVAR_LISP ("mac-services-selection", &Vmac_services_selection, doc: /* Selection name for communication via Services menu. */); - Vmac_services_selection = intern ("CLIPBOARD"); + Vmac_services_selection = intern ("PRIMARY"); +#endif QPRIMARY = intern ("PRIMARY"); staticpro (&QPRIMARY); QSECONDARY = intern ("SECONDARY"); staticpro (&QSECONDARY); From 3989c3e714ac2b9b8e7ab62f8cd1b16ffaf69e10 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 13 May 2005 03:34:50 +0000 Subject: [PATCH 69/90] (font-lock-comment-delimiter-face): Fix up the inheritance. --- lisp/ChangeLog | 11 +++++++++++ lisp/font-lock.el | 2 ++ 2 files changed, 13 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 39ed1402c07..af10efb5c2d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-05-12 Stefan Monnier + + * font-lock.el (font-lock-comment-delimiter-face): Fix up + the inheritance. + 2005-05-12 Luc Teirlinck * progmodes/inf-lisp.el (inferior-lisp-mode-hook) @@ -58,6 +63,12 @@ (dired-mode): Use `dired-dnd-protocol-alist'. Move call of `dired-mode-hook' to the end. +2005-05-11 Stefan Monnier + + * font-lock.el (font-lock-fontify-syntactically-region): Don't use + comment-end if comment-start-skip is not set. + Obey the font-lock-comment-delimiter-face variables. + 2005-05-11 Stefan Monnier * files.el (executable-find): Move from executable.el. Use locate-file. diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 762923809d5..eb3ad97d7ce 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1678,6 +1678,8 @@ Sets various variables using `font-lock-defaults' (or, if nil, using (defface font-lock-comment-delimiter-face '((default :inherit font-lock-comment-face) + (((class grayscale))) + (((class color) (min-colors 16))) (((class color) (min-colors 8) (background light)) :foreground "red") (((class color) (min-colors 8) (background dark)) From 2fd125a339a79f6653ab4d100069d342af7778ea Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 13 May 2005 06:03:46 +0000 Subject: [PATCH 70/90] Fix copyrights. --- lisp/international/ccl.el | 7 ++++--- lisp/international/characters.el | 8 +++++--- lisp/international/code-pages.el | 3 +++ lisp/international/codepage.el | 5 ++++- lisp/international/encoded-kb.el | 6 ++++-- lisp/international/fontset.el | 7 ++++--- lisp/international/isearch-x.el | 7 ++++--- lisp/international/iso-ascii.el | 2 +- lisp/international/iso-cvt.el | 4 ++-- lisp/international/iso-transl.el | 3 ++- lisp/international/ja-dic-cnv.el | 5 +++-- lisp/international/ja-dic-utl.el | 5 +++-- lisp/international/kinsoku.el | 6 ++++-- lisp/international/kkc.el | 6 ++++-- lisp/international/latin1-disp.el | 2 +- lisp/international/mule-cmds.el | 8 +++++--- lisp/international/mule-conf.el | 8 +++++--- lisp/international/mule-diag.el | 8 +++++--- lisp/international/mule-util.el | 8 +++++--- lisp/international/mule.el | 8 +++++--- lisp/international/ogonek.el | 2 +- lisp/international/quail.el | 6 ++---- lisp/international/subst-jis.el | 3 +++ lisp/international/swedish.el | 2 +- lisp/international/titdic-cnv.el | 6 ++++-- lisp/international/ucs-tables.el | 5 ++++- lisp/international/utf-16.el | 5 ++++- lisp/international/utf-8.el | 7 ++++--- 28 files changed, 96 insertions(+), 56 deletions(-) diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el index 93ad9358721..04f0e957d7a 100644 --- a/lisp/international/ccl.el +++ b/lisp/international/ccl.el @@ -1,8 +1,9 @@ ;;; ccl.el --- CCL (Code Conversion Language) compiler -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1998, 1999, 2000 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: CCL, mule, multilingual, character set, coding-system diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 77eb49807c0..33db40103a4 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -1,8 +1,10 @@ ;;; characters.el --- set syntax and category for multibyte characters -;; Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004 +;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: multibyte character, character set, syntax, category diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el index 7cd92e58aa5..73c953a2fe4 100644 --- a/lisp/international/code-pages.el +++ b/lisp/international/code-pages.el @@ -1,6 +1,9 @@ ;;; code-pages.el --- coding systems for assorted codepages -*-coding: utf-8;-*- ;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2004, 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Author: Dave Love ;; Keywords: i18n diff --git a/lisp/international/codepage.el b/lisp/international/codepage.el index c94b2798f59..f0cf818b52e 100644 --- a/lisp/international/codepage.el +++ b/lisp/international/codepage.el @@ -1,6 +1,9 @@ ;;; codepage.el --- MS-DOS/MS-Windows specific coding systems -;; Copyright (C) 1998 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 2000 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Author: Eli Zaretskii ;; Maintainer: FSF diff --git a/lisp/international/encoded-kb.el b/lisp/international/encoded-kb.el index fdb35b34533..3da034a05ed 100644 --- a/lisp/international/encoded-kb.el +++ b/lisp/international/encoded-kb.el @@ -1,7 +1,9 @@ ;;; encoded-kb.el --- handler to input multibyte characters encoded somehow -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2004, 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; This file is part of GNU Emacs. diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 2d98cd25406..c67030ac067 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -1,8 +1,9 @@ ;;; fontset.el --- commands for handling fontset -;; Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual, fontset diff --git a/lisp/international/isearch-x.el b/lisp/international/isearch-x.el index aad6b6e745e..31691268c9c 100644 --- a/lisp/international/isearch-x.el +++ b/lisp/international/isearch-x.el @@ -1,8 +1,9 @@ ;;; isearch-x.el --- extended isearch handling commands -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2001 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 2000 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: multilingual, isearch diff --git a/lisp/international/iso-ascii.el b/lisp/international/iso-ascii.el index 3bffb1795f0..0dbb4e4093a 100644 --- a/lisp/international/iso-ascii.el +++ b/lisp/international/iso-ascii.el @@ -1,6 +1,6 @@ ;;; iso-ascii.el --- set up char tables for ISO 8859/1 on ASCII terminals -;; Copyright (C) 1987, 1995 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1995, 1998, 2003 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/international/iso-cvt.el b/lisp/international/iso-cvt.el index 232fe5037ee..f7e325b0ca3 100644 --- a/lisp/international/iso-cvt.el +++ b/lisp/international/iso-cvt.el @@ -1,8 +1,8 @@ ;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: iso-latin-1 -*- ;; This file was formerly called gm-lingo.el. -;; Copyright (C) 1993, 1994, 1995, 1996, 1998, 2000, 2003, 2004 -;; Free Software Foundation, Inc. +;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2003, 2004 +;; Free Software Foundation, Inc. ;; Author: Michael Gschwind ;; Keywords: tex, iso, latin, i18n diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el index a071b14b3d2..e0aa17b4916 100644 --- a/lisp/international/iso-transl.el +++ b/lisp/international/iso-transl.el @@ -1,6 +1,7 @@ ;;; iso-transl.el --- keyboard input definitions for ISO 8859-1 -*- coding: iso-8859-1 -*- -;; Copyright (C) 1987, 1993, 1994, 1995, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001 +;; Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el index ff9769cb136..a18bde35a1b 100644 --- a/lisp/international/ja-dic-cnv.el +++ b/lisp/international/ja-dic-cnv.el @@ -1,7 +1,8 @@ ;;; ja-dic-cnv.el --- convert a Japanese dictionary (SKK-JISYO.L) to Emacs Lisp -;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1995, 2000 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual, Japanese diff --git a/lisp/international/ja-dic-utl.el b/lisp/international/ja-dic-utl.el index c25be8aae93..d022a6b0a37 100644 --- a/lisp/international/ja-dic-utl.el +++ b/lisp/international/ja-dic-utl.el @@ -1,7 +1,8 @@ ;;; ja-dic-utl.el --- utilities for handling Japanese dictionary (SKK-JISYO.L) -;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1995, 2000 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual, Japanese diff --git a/lisp/international/kinsoku.el b/lisp/international/kinsoku.el index 28d6409d46b..76ec5ded397 100644 --- a/lisp/international/kinsoku.el +++ b/lisp/international/kinsoku.el @@ -1,7 +1,9 @@ ;;; kinsoku.el --- `Kinsoku' processing funcs -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1997, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, kinsoku diff --git a/lisp/international/kkc.el b/lisp/international/kkc.el index 972bbbfdddf..be8d242c63e 100644 --- a/lisp/international/kkc.el +++ b/lisp/international/kkc.el @@ -1,7 +1,9 @@ ;;; kkc.el --- Kana Kanji converter -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1997, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 2000, 2001, 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual, Japanese diff --git a/lisp/international/latin1-disp.el b/lisp/international/latin1-disp.el index 86f5bf7a726..12b0c22b7ab 100644 --- a/lisp/international/latin1-disp.el +++ b/lisp/international/latin1-disp.el @@ -1,6 +1,6 @@ ;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals -*-coding: iso-2022-7bit;-*- -;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. ;; Author: Dave Love ;; Keywords: i18n diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index bdf49c8de81..72bc84762a1 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -1,8 +1,10 @@ ;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*- -;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -;; Copyright (C) 1995, 2003 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el index 9a6b7152684..43259ed2d5b 100644 --- a/lisp/international/mule-conf.el +++ b/lisp/international/mule-conf.el @@ -1,8 +1,10 @@ ;;; mule-conf.el --- configure multilingual environment -*- no-byte-compile: t -*- -;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2005 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005 +;; Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual, character set, coding system diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el index c2e46c1be62..0dc8b3d8ca8 100644 --- a/lisp/international/mule-diag.el +++ b/lisp/international/mule-diag.el @@ -1,8 +1,10 @@ ;;; mule-diag.el --- show diagnosis of multilingual environment (Mule) -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003 +;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1999, 2000, 2001, 2002, 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: multilingual, charset, coding system, fontset, diagnosis, i18n diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index 1c59d6ba1db..918e9751aad 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el @@ -1,8 +1,10 @@ ;;; mule-util.el --- utility functions for mulitilingual environment (mule) -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004 +;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 1999, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 4b5a56a55b6..b48ce4698c4 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1,8 +1,10 @@ ;;; mule.el --- basic commands for mulitilingual environment -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, multilingual, character set, coding system diff --git a/lisp/international/ogonek.el b/lisp/international/ogonek.el index ebe2eaec900..c3fe365d8a5 100644 --- a/lisp/international/ogonek.el +++ b/lisp/international/ogonek.el @@ -1,6 +1,6 @@ ;;; ogonek.el --- change the encoding of Polish diacritics -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc. ;; Author: W{\l}odek Bzyl, Ryszard Kubiak ;; Maintainer: rysiek@ipipan.gda.pl (Ryszard Kubiak) diff --git a/lisp/international/quail.el b/lisp/international/quail.el index bcd076aae7a..5828d0f550c 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -1,9 +1,7 @@ ;;; quail.el --- provides simple input method for multilingual text -;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. -;; Copyright (C) 2005 +;; Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 diff --git a/lisp/international/subst-jis.el b/lisp/international/subst-jis.el index 2dfe3297ba0..3c7911f1e82 100644 --- a/lisp/international/subst-jis.el +++ b/lisp/international/subst-jis.el @@ -1,5 +1,8 @@ ;;; subst-jis.el --- Unicode/JISX translation -*-coding: euc-jp;-*- ;; Copyright (C) 2002, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Author: Dave Love ;; Keywords: i18n diff --git a/lisp/international/swedish.el b/lisp/international/swedish.el index 424f052e327..7f300da9c45 100644 --- a/lisp/international/swedish.el +++ b/lisp/international/swedish.el @@ -1,6 +1,6 @@ ;;; swedish.el --- miscellaneous functions for dealing with Swedish -;; Copyright (C) 1988 Free Software Foundation, Inc. +;; Copyright (C) 1988, 2001 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el index b1ce0a0255b..c27963fa83a 100644 --- a/lisp/international/titdic-cnv.el +++ b/lisp/international/titdic-cnv.el @@ -1,7 +1,9 @@ ;;; titdic-cnv.el --- convert cxterm dictionary (TIT format) to Quail package -*- coding:iso-2022-7bit; -*- -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: Quail, TIT, cxterm diff --git a/lisp/international/ucs-tables.el b/lisp/international/ucs-tables.el index 80a7a960709..0ee7fc94028 100644 --- a/lisp/international/ucs-tables.el +++ b/lisp/international/ucs-tables.el @@ -1,6 +1,9 @@ ;;; ucs-tables.el --- translation to, from and via Unicode -*- coding: iso-2022-7bit -*- -;; Copyright (C) 2001, 2002, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Author: Dave Love ;; Keywords: i18n diff --git a/lisp/international/utf-16.el b/lisp/international/utf-16.el index 0c3d3724ea4..dde4123e879 100644 --- a/lisp/international/utf-16.el +++ b/lisp/international/utf-16.el @@ -1,6 +1,9 @@ ;;; utf-16.el --- UTF-16 encoding/decoding -;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Author: Dave Love ;; Keywords: Unicode, UTF-16, i18n diff --git a/lisp/international/utf-8.el b/lisp/international/utf-8.el index 863bb22ef0a..e73d8b38af3 100644 --- a/lisp/international/utf-8.el +++ b/lisp/international/utf-8.el @@ -1,8 +1,9 @@ ;;; utf-8.el --- UTF-8 decoding/encoding support -*- coding: iso-2022-7bit -*- -;; Copyright (C) 2001, 2004 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. -;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 2001, 2002, 2003, 2004 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Author: TAKAHASHI Naoto ;; Maintainer: FSF From a30c8f4bf972a54a70f994284b8ee9ba0947151e Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 13 May 2005 06:04:28 +0000 Subject: [PATCH 71/90] *** empty log message *** --- admin/FOR-RELEASE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index 1d43b530793..e51573fef61 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE @@ -94,7 +94,7 @@ you're going to handle. DIRECTORY STATUS IN CHARGE --------- ------ --------- lisp/emulation working Thien-Thi Nguyen -lisp/international working Kenichi Handa +lisp/international done Kenichi Handa lisp/languages working Kenichi Handa lisp/net working Thien-Thi Nguyen lisp/play done Thien-Thi Nguyen From 9c859203d9997db5a265ec6fd84806dc5659f784 Mon Sep 17 00:00:00 2001 From: Daniel Pfeiffer Date: Fri, 13 May 2005 07:51:15 +0000 Subject: [PATCH 72/90] (makefile-targets-face, makefile-shell-face, makefile-makepp-perl-face): New faces. (makefile-dependency-regex): Fix it to not make the colon in $(var:a=b) special. (makefile-rule-action-regex): New regexp for highlighting embedded Shell strings. (makefile-macroassign-regex): Handle != for highlighting as embedded Shell strings. (makefile-var-use-regex): New const. (makefile-statements, makefile-automake-statements) (makefile-gmake-statements, makefile-makepp-statements) (makefile-bsdmake-statements): New consts. (makefile-make-font-lock-keywords): New function. (makefile-automake-font-lock-keywords) (makefile-gmake-font-lock-keywords) (makefile-makepp-font-lock-keywords) (makefile-bsdmake-font-lock-keywords): New consts. (makefile-mode-map): Add switchers between the various submodes. (makefile-mode): Document the availability of the variants. (makefile-automake-mode, makefile-gmake-mode) (makefile-makepp-mode, makefile-bsdmake-mode): New derived modes. --- lisp/progmodes/make-mode.el | 387 ++++++++++++++++++++++++++++-------- 1 file changed, 305 insertions(+), 82 deletions(-) diff --git a/lisp/progmodes/make-mode.el b/lisp/progmodes/make-mode.el index 7c1ccb25fb0..bc30bfdfc56 100644 --- a/lisp/progmodes/make-mode.el +++ b/lisp/progmodes/make-mode.el @@ -100,12 +100,35 @@ :prefix "makefile-") (defface makefile-space-face - '((((class color)) (:background "hotpink")) - (t (:reverse-video t))) + '((((class color)) (:background "hotpink")) + (t (:reverse-video t))) "Face to use for highlighting leading spaces in Font-Lock mode." :group 'faces :group 'makefile) +(defface makefile-targets-face + ;; This needs to go along both with foreground and background colors (i.e. shell) + '((t (:underline t))) + "Face to use for additionally highlighting rule targets in Font-Lock mode." + :group 'faces + :group 'makefile) + +(defface makefile-shell-face + '((((class color) (background light)) (:background "seashell1")) + (((class color) (background dark)) (:background "seashell4")) + (t (:reverse-video t))) + "Face to use for additionally highlighting Shell commands in Font-Lock mode." + :group 'faces + :group 'makefile) + +(defface makefile-makepp-perl-face + '((((class color) (background light)) (:background "LightBlue1")) ; Camel Book + (((class color) (background dark)) (:background "DarkBlue")) + (t (:reverse-video t))) + "Face to use for additionally highlighting Perl code in Font-Lock mode." + :group 'faces + :group 'makefile) + (defcustom makefile-browser-buffer-name "*Macros and Targets*" "*Name of the macro- and target browser buffer." :type 'string @@ -235,16 +258,27 @@ not be enclosed in { } or ( )." ;; that if you change this regexp you might have to fix the imenu ;; index in makefile-imenu-generic-expression. (defconst makefile-dependency-regex - "^ *\\([^ \n\t#:=]+\\([ \t]+\\([^ \t\n#:=]+\\|\\$[({][^ \t\n#})]+[})]\\)\\)*\\)[ \t]*:\\([ \t]*$\\|\\([^=\n].*$\\)\\)" + ;; Allow for one nested level $($(var:a=b):c=d) + ;; Scan non-$ constructs char by char, so we don't miss a $ while allowing $$. + ;; Since we must allow space between targets, I then don't know how to evite a command starting with :. + "^ *\\(\\(?:\\$[({]\\(?:\\$[({][^ \t\n#})]+?[})]\\|[^\n#]\\)+?[})]\\|[^\n#:=]\\)+?\\)[ \t]*:\\(?:[ \t]*$\\|[^=\n].*$\\)" "Regex used to find dependency lines in a makefile.") -;; Note that the first subexpression is used by font lock. Note -;; that if you change this regexp you might have to fix the imenu -;; index in makefile-imenu-generic-expression. +(defconst makefile-rule-action-regex + "^\t[ \t]*\\([-@]*\\)[ \t]*\\(.+\\)" + "Regex used to highlight rule action lines in font lock mode.") + +;; Note that the first and second subexpression is used by font lock. Note +;; that if you change this regexp you might have to fix the imenu index in +;; makefile-imenu-generic-expression. (defconst makefile-macroassign-regex - "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*[*:+]?[:?]?=" + "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*\\(?:!=[ \t]*\\(.*\\)\\|[*:+]?[:?]?=\\)" "Regex used to find macro assignment lines in a makefile.") +(defconst makefile-var-use-regex + "[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%\\)" + 1 font-lock-constant-face prepend) + ("[^$]\\(\\$[@%*]\\)" + 1 'makefile-targets-face prepend) + + ;; Fontify conditionals and includes. + ;; Note that plain `if' is an automake conditional, and not a bug. + (,(concat "^\\(?: [ \t]*\\)?" + (regexp-opt keywords t) + "\\>[ \t]*\\([^: \t\n#]*\\)") + (1 font-lock-keyword-face) (2 font-lock-variable-name-face)) + + ,(if negation + `(,negation (1 font-lock-negation-char-face prepend) + (2 font-lock-negation-char-face prepend t))) + + ,@(if space + '(;; Highlight lines that contain just whitespace. + ;; They can cause trouble, especially if they start with a tab. + ("^[ \t]+$" . makefile-space-face) + + ;; Highlight shell comments that Make treats as commands, + ;; since these can fool people. + ("^\t+#" 0 makefile-space-face t) + + ;; Highlight spaces that precede tabs. + ;; They can make a tab fail to be effective. + ("^\\( +\\)\t" 1 makefile-space-face))) + + ,@font-lock-keywords)) + (defconst makefile-font-lock-keywords - (list + (makefile-make-font-lock-keywords + makefile-dependency-regex + makefile-rule-action-regex + makefile-var-use-regex + makefile-statements + t)) - ;; Do macro assignments. These get the "variable-name" face rather - ;; arbitrarily. - (list makefile-macroassign-regex 1 'font-lock-variable-name-face) +(defconst makefile-automake-font-lock-keywords + (makefile-make-font-lock-keywords + makefile-dependency-regex + makefile-rule-action-regex + makefile-var-use-regex + makefile-automake-statements + t)) - ;; Do dependencies. These get the function name face. - (list makefile-dependency-regex 1 'font-lock-function-name-face) +(defconst makefile-gmake-font-lock-keywords + (makefile-make-font-lock-keywords + makefile-dependency-regex + makefile-rule-action-regex + makefile-var-use-regex + makefile-gmake-statements + t + "^\\(?: [ \t]*\\)?if\\(n\\)\\(?:def\\|eq\\)\\>" - ;; Variable references even in targets/strings/comments. - '("[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%\\)" - 1 font-lock-constant-face prepend) + ;; $(function ...) ${function ...} + '("[^$]\\$[({]\\(\\S +\\s \\)" + 1 font-lock-function-name-face) - ;; Fontify conditionals and includes. - ;; Note that plain `if' is an automake conditional, and not a bug. - (list - (concat "^\\(?: [ \t]*\\)?" - (regexp-opt '("-include" "-sinclude" "include" "sinclude" "ifeq" - "if" "ifneq" "ifdef" "ifndef" "endif" "else" - "define" "endef" "override" - "export" "unexport" "vpath") t) - "\\>[ \t]*\\([^: \t\n#]*\\)") - '(1 font-lock-keyword-face) '(2 font-lock-variable-name-face)) + ;; $(shell ...) ${shell ...} + '("[^$]\\$\\([({]\\)shell[ \t]+" + makefile-match-function-end nil nil + (1 'makefile-shell-face prepend t)))) - '("^\\(?: [ \t]*\\)?if\\(n\\)\\(?:def\\|eq\\)\\>" - 1 font-lock-negation-char-face prepend) +(defconst makefile-makepp-font-lock-keywords + (makefile-make-font-lock-keywords + makefile-dependency-regex + ;; Don't care about initial tab, but I don't know how to font-lock correctly without. + "^\t[ \t]*\\(\\(?:[ \t]*noecho\\>\\|[ \t]*ignore[-_]error\\>\\|[ \t]*[-@]+\\)*\\)[ \t]*\\(\\(&\\S +\\)?.+\\)" + makefile-var-use-regex + makefile-makepp-statements + nil + "^\\(?: [ \t]*\\)?\\(?:and[ \t]+\\|else[ \t]+\\|or[ \t]+\\)?if\\(n\\)\\(?:def\\|eq\\|sys\\)\\>" - ;; Highlight lines that contain just whitespace. - ;; They can cause trouble, especially if they start with a tab. - '("^[ \t]+$" . makefile-space-face) + '("[^$]\\(\\$[({]\\(?:target\\|output\\)s?[})]\\)" + 1 'makefile-targets-face prepend) - ;; Highlight shell comments that Make treats as commands, - ;; since these can fool people. - '("^\t+#" 0 makefile-space-face t) + ;; Colon modifier keywords. + '(":\\s *\\(build_c\\(?:ache\\|heck\\)\\|env\\(?:ironment\\)?\\|foreach\\|signature\\|scanner\\|quickscan\\|smartscan\\)\\>" + 1 font-lock-keyword-face t) + + ;; $(function ...) $((function ...)) ${function ...} ${{function ...}} + '("[^$]\\$\\(((?\\|{{?\\)\\(\\S +\\s \\)" + 2 font-lock-function-name-face) + + ;; $(shell ...) $((shell ...)) ${shell ...} ${{shell ...}} + '("[^$]\\$\\(((?\\|{{?\\)shell\\(?:[-_]\\(?:global[-_]\\)?once\\)?[ \t]+" + makefile-match-function-end nil nil + (1 'makefile-shell-face prepend t)) + + ;; $(perl ...) $((perl ...)) ${perl ...} ${{perl ...}} + '("[^$]\\$\\(((?\\|{{?\\)makeperl[ \t]+" + makefile-match-function-end nil nil + (1 'makefile-makepp-perl-face prepend t)) + '("[^$]\\$\\(((?\\|{{?\\)perl[ \t]+" + makefile-match-function-end nil nil + (1 'makefile-makepp-perl-face t t)) + + ;; Can we unify these with (if (match-end 1) 'prepend t)? + '("ifmakeperl\\s +\\(.*\\)" 1 'makefile-makepp-perl-face prepend) + '("ifperl\\s +\\(.*\\)" 1 'makefile-makepp-perl-face t) + + ;; Perl block single- or multiline, as statement or rule action. + ;; Don't know why the initial newline in 2nd variant of group 2 doesn't get skipped. + '("\\" + 1 'makefile-makepp-perl-face t))) + +;; A lot more could be done for variables here: +(defconst makefile-bsdmake-font-lock-keywords + (makefile-make-font-lock-keywords + "^ *\\(\\(?:\\$[({]\\(?:\\$[({][^\n#})]+?[})]\\|[^\n#]\\)+?[})]\\|[^\n#:=]\\)+?\\)[ \t]*[:!]\\(?:[ \t]*$\\|[^=\n].*$\\)" + "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(.+\\)" + makefile-var-use-regex + makefile-bsdmake-statements + t + "^\\(?: [ \t]*\\)?\\.\\(?:el\\)?if\\(n?\\)\\(?:def\\|make\\)?\\>[ \t]*\\(!?\\)" + '("^[ \t]*\\.for[ \t].+[ \t]\\(in\\)\\>" 1 font-lock-keyword-face))) - ;; Highlight spaces that precede tabs. - ;; They can make a tab fail to be effective. - '("^\\( +\\)\t" 1 makefile-space-face))) (defconst makefile-font-lock-syntactic-keywords ;; From sh-script.el. @@ -371,47 +550,50 @@ The function must satisfy this calling convention: () (define-abbrev-table 'makefile-mode-abbrev-table ())) -(defvar makefile-mode-map nil +(defvar makefile-mode-map + (let ((map (make-sparse-keymap))) + ;; set up the keymap + (define-key map "\C-c:" 'makefile-insert-target-ref) + (if makefile-electric-keys + (progn + (define-key map "$" 'makefile-insert-macro-ref) + (define-key map ":" 'makefile-electric-colon) + (define-key map "=" 'makefile-electric-equal) + (define-key map "." 'makefile-electric-dot))) + (define-key map "\C-c\C-f" 'makefile-pickup-filenames-as-targets) + (define-key map "\C-c\C-b" 'makefile-switch-to-browser) + (define-key map "\C-c\C-c" 'comment-region) + (define-key map "\C-c\C-p" 'makefile-pickup-everything) + (define-key map "\C-c\C-u" 'makefile-create-up-to-date-overview) + (define-key map "\C-c\C-i" 'makefile-insert-gmake-function) + (define-key map "\C-c\C-\\" 'makefile-backslash-region) + (define-key map "\C-c\C-m\C-a" 'makefile-automake-mode) + (define-key map "\C-c\C-m\C-b" 'makefile-bsdmake-mode) + (define-key map "\C-c\C-m\C-g" 'makefile-gmake-mode) + (define-key map "\C-c\C-m\C-m" 'makefile-mode) + (define-key map "\C-c\C-m\C-p" 'makefile-makepp-mode) + (define-key map "\M-p" 'makefile-previous-dependency) + (define-key map "\M-n" 'makefile-next-dependency) + (define-key map "\e\t" 'makefile-complete) + + ;; Make menus. + (define-key map [menu-bar makefile-mode] + (cons "Makefile" (make-sparse-keymap "Makefile"))) + + (define-key map [menu-bar makefile-mode browse] + '("Pop up Makefile Browser" . makefile-switch-to-browser)) + (define-key map [menu-bar makefile-mode complete] + '("Complete Target or Macro" . makefile-complete)) + (define-key map [menu-bar makefile-mode pickup] + '("Find Targets and Macros" . makefile-pickup-everything)) + + (define-key map [menu-bar makefile-mode prev] + '("Move to Previous Dependency" . makefile-previous-dependency)) + (define-key map [menu-bar makefile-mode next] + '("Move to Next Dependency" . makefile-next-dependency)) + map) "The keymap that is used in Makefile mode.") -(if makefile-mode-map - () - (setq makefile-mode-map (make-sparse-keymap)) - ;; set up the keymap - (define-key makefile-mode-map "\C-c:" 'makefile-insert-target-ref) - (if makefile-electric-keys - (progn - (define-key makefile-mode-map "$" 'makefile-insert-macro-ref) - (define-key makefile-mode-map ":" 'makefile-electric-colon) - (define-key makefile-mode-map "=" 'makefile-electric-equal) - (define-key makefile-mode-map "." 'makefile-electric-dot))) - (define-key makefile-mode-map "\C-c\C-f" 'makefile-pickup-filenames-as-targets) - (define-key makefile-mode-map "\C-c\C-b" 'makefile-switch-to-browser) - (define-key makefile-mode-map "\C-c\C-c" 'comment-region) - (define-key makefile-mode-map "\C-c\C-p" 'makefile-pickup-everything) - (define-key makefile-mode-map "\C-c\C-u" 'makefile-create-up-to-date-overview) - (define-key makefile-mode-map "\C-c\C-i" 'makefile-insert-gmake-function) - (define-key makefile-mode-map "\C-c\C-\\" 'makefile-backslash-region) - (define-key makefile-mode-map "\M-p" 'makefile-previous-dependency) - (define-key makefile-mode-map "\M-n" 'makefile-next-dependency) - (define-key makefile-mode-map "\e\t" 'makefile-complete) - - ;; Make menus. - (define-key makefile-mode-map [menu-bar makefile-mode] - (cons "Makefile" (make-sparse-keymap "Makefile"))) - - (define-key makefile-mode-map [menu-bar makefile-mode browse] - '("Pop up Makefile Browser" . makefile-switch-to-browser)) - (define-key makefile-mode-map [menu-bar makefile-mode complete] - '("Complete Target or Macro" . makefile-complete)) - (define-key makefile-mode-map [menu-bar makefile-mode pickup] - '("Find Targets and Macros" . makefile-pickup-everything)) - - (define-key makefile-mode-map [menu-bar makefile-mode prev] - '("Move to Previous Dependency" . makefile-previous-dependency)) - (define-key makefile-mode-map [menu-bar makefile-mode next] - '("Move to Next Dependency" . makefile-next-dependency))) - (defvar makefile-browser-map nil "The keymap that is used in the macro- and target browser.") (if makefile-browser-map @@ -504,8 +686,14 @@ The function must satisfy this calling convention: ;;;###autoload (defun makefile-mode () - "Major mode for editing Makefiles. -This function ends by invoking the function(s) `makefile-mode-hook'. + "Major mode for editing standard Makefiles. + +If you are editing a file for a different make, try one of the +variants `makefile-automake-mode', `makefile-gmake-mode', +`makefile-makepp-mode' or `makefile-bsdmake-mode'. All but the +last should be correctly chosen based on the file name, except if +it is *.mk. This function ends by invoking the function(s) +`makefile-mode-hook'. \\{makefile-mode-map} @@ -645,6 +833,31 @@ Makefile mode can be configured by modifying the following variables: (setq indent-tabs-mode t) (run-hooks 'makefile-mode-hook)) +;; These should do more than just differentiate font-lock. +;;;###autoload +(define-derived-mode makefile-automake-mode makefile-mode "Makefile.am" + "An adapted `makefile-mode' that knows about automake." + (setq font-lock-defaults + `(makefile-automake-font-lock-keywords ,@(cdr font-lock-defaults)))) + +;;;###autoload +(define-derived-mode makefile-gmake-mode makefile-mode "GNUmakefile" + "An adapted `makefile-mode' that knows about gmake." + (setq font-lock-defaults + `(makefile-gmake-font-lock-keywords ,@(cdr font-lock-defaults)))) + +;;;###autoload +(define-derived-mode makefile-makepp-mode makefile-mode "Makeppfile" + "An adapted `makefile-mode' that knows about makepp." + (setq font-lock-defaults + `(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults)))) + +;;;###autoload +(define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile" + "An adapted `makefile-mode' that knows about BSD make." + (setq font-lock-defaults + `(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults)))) + ;;; Motion code. @@ -1453,6 +1666,16 @@ Then prompts for all required parameters." ;;; Utility functions ;;; ------------------------------------------------------------ +(defun makefile-match-function-end (end) + "To be called as an anchored matcher by font-lock. +The anchor must have matched the opening parens in the first group." + (let ((s (match-string-no-properties 1))) + (setq s (cond ((string= s "(") "\\(.*?\\)[ \t]*)") + ((string= s "{") "\\(.*?\\)[ \t]*}") + ((string= s "((") "\\(.*?\\)[ \t]*))") + ((string= s "{{") "\\(.*?\\)[ \t]*}}"))) + (if s (looking-at s)))) + (defun makefile-do-macro-insertion (macro-name) "Insert a macro reference." (if (not (zerop (length macro-name))) From 27a7c83f09343ead590263074f40e2036c350844 Mon Sep 17 00:00:00 2001 From: Daniel Pfeiffer Date: Fri, 13 May 2005 07:58:44 +0000 Subject: [PATCH 73/90] (auto-mode-alist, interpreter-mode-alist): Set up the new variants of makefile-mode. --- lisp/ChangeLog | 27 +++++++++++++++++++++++++++ lisp/files.el | 10 ++++++---- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index af10efb5c2d..11fd1eb9359 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,30 @@ +2005-05-13 Daniel Pfeiffer + + * progmodes/make-mode.el (makefile-targets-face) + (makefile-shell-face, makefile-makepp-perl-face): New faces. + (makefile-dependency-regex): Fix it to not make the colon in + $(var:a=b) special. + (makefile-rule-action-regex): New regexp for highlighting embedded + Shell strings. + (makefile-macroassign-regex): Handle != for highlighting as + embedded Shell strings. + (makefile-var-use-regex): New const. + (makefile-statements, makefile-automake-statements) + (makefile-gmake-statements, makefile-makepp-statements) + (makefile-bsdmake-statements): New consts. + (makefile-make-font-lock-keywords): New function. + (makefile-automake-font-lock-keywords) + (makefile-gmake-font-lock-keywords) + (makefile-makepp-font-lock-keywords) + (makefile-bsdmake-font-lock-keywords): New consts. + (makefile-mode-map): Add switchers between the various submodes. + (makefile-mode): Document the availability of the variants. + (makefile-automake-mode, makefile-gmake-mode) + (makefile-makepp-mode, makefile-bsdmake-mode): New derived modes. + + * files.el (auto-mode-alist, interpreter-mode-alist): Set up the + new variants of makefile-mode. + 2005-05-12 Stefan Monnier * font-lock.el (font-lock-comment-delimiter-face): Fix up diff --git a/lisp/files.el b/lisp/files.el index e08381cdccb..16438b78073 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1762,9 +1762,11 @@ in that case, this function acts as if `enable-local-variables' were t." ("\\.ad[abs]\\'" . ada-mode) ("\\.ad[bs].dg\\'" . ada-mode) ("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode) - ("\\.mk\\'" . makefile-mode) - ("\\([Mm]\\|GNUm\\)akep*file\\'" . makefile-mode) - ("\\.am\\'" . makefile-mode) ;For Automake. + ("\\.mk\\'" . makefile-gmake-mode) ; Might be any make, give Gnu the host advantage + ("[Mm]akefile\\'" . makefile-mode) + ("GNUmakefile\\'" . makefile-gmake-mode) + ("Makeppfile\\'" . makefile-makepp-mode) + ("\\.am\\'" . makefile-automake-mode) ;; Less common extensions come here ;; so more common ones above are found faster. ("\\.texinfo\\'" . texinfo-mode) @@ -1936,7 +1938,7 @@ and `magic-mode-alist', which determines modes based on file contents.") ("more" . text-mode) ("less" . text-mode) ("pg" . text-mode) - ("make" . makefile-mode) ; Debian uses this + ("make" . makefile-gmake-mode) ; Debian uses this ("guile" . scheme-mode) ("clisp" . lisp-mode))) "Alist mapping interpreter names to major modes. From dda6a1685ba3ec0fed127855d8a47a6e8d28d568 Mon Sep 17 00:00:00 2001 From: Daniel Pfeiffer Date: Fri, 13 May 2005 08:06:41 +0000 Subject: [PATCH 74/90] Advertize Makefile mode changes. --- etc/NEWS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 8edc121a7a0..e0375dd8439 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1755,6 +1755,11 @@ an error if the argument actually returns differing values. * Changes in Specialized Modes and Packages in Emacs 22.1: +** Makefile mode has now been split up into specialized modes for automake, +gmake, makepp and BSD make. The former two couldn't be differentiated before, +and the latter two are new. Font-locking is robust now and offers new +customizable faces. + +++ ** In Outline mode, hide-body no longer hides lines at the top of the file that precede the first header line. From 40ef069579b4c2d2e09c3a5115e91284b5dbafe3 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:41:03 +0000 Subject: [PATCH 75/90] Include assert.h. (MACOSX_MALLOC_MULT16): New define. [MACOSX_MALLOC_MULT16] (ptr_in_unexec_regions): Determine whether ptr is in unexec regions by checking it is multiple of 16. (unexec_malloc_header_t): New typedef. (unexec_malloc, unexec_realloc, unexec_free): Store and use allocated size information in unexec_malloc_header. --- src/unexmacosx.c | 94 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 76 insertions(+), 18 deletions(-) diff --git a/src/unexmacosx.c b/src/unexmacosx.c index 1f2b4c96620..fc369eab7cd 100644 --- a/src/unexmacosx.c +++ b/src/unexmacosx.c @@ -105,6 +105,8 @@ Boston, MA 02111-1307, USA. */ #include #endif +#include + #define VERBOSE 1 @@ -998,6 +1000,23 @@ unexec_init_emacs_zone () malloc_set_zone_name (emacs_zone, "EmacsZone"); } +#ifndef MACOSX_MALLOC_MULT16 +#define MACOSX_MALLOC_MULT16 1 +#endif + +typedef struct unexec_malloc_header { + union { + char c[8]; + size_t size; + } u; +} unexec_malloc_header_t; + +#if MACOSX_MALLOC_MULT16 + +#define ptr_in_unexec_regions(p) ((((vm_address_t) (p)) & 8) != 0) + +#else + int ptr_in_unexec_regions (void *ptr) { @@ -1011,36 +1030,75 @@ ptr_in_unexec_regions (void *ptr) return 0; } +#endif + void * unexec_malloc (size_t size) { if (in_dumped_exec) - return malloc (size); + { + void *p; + + p = malloc (size); +#if MACOSX_MALLOC_MULT16 + assert (((vm_address_t) p % 16) == 0); +#endif + return p; + } else - return malloc_zone_malloc (emacs_zone, size); + { + unexec_malloc_header_t *ptr; + + ptr = (unexec_malloc_header_t *) + malloc_zone_malloc (emacs_zone, size + sizeof (unexec_malloc_header_t)); + ptr->u.size = size; + ptr++; +#if MACOSX_MALLOC_MULT16 + assert (((vm_address_t) ptr % 16) == 8); +#endif + return (void *) ptr; + } } void * unexec_realloc (void *old_ptr, size_t new_size) { if (in_dumped_exec) - if (ptr_in_unexec_regions (old_ptr)) - { - char *p = malloc (new_size); - /* 2002-04-15 T. Ikegami . The original - code to get size failed to reallocate read_buffer - (lread.c). */ - int old_size = malloc_default_zone()->size (emacs_zone, old_ptr); - int size = new_size > old_size ? old_size : new_size; + { + void *p; - if (size) - memcpy (p, old_ptr, size); - return p; - } - else - return realloc (old_ptr, new_size); + if (ptr_in_unexec_regions (old_ptr)) + { + p = (size_t *) malloc (new_size); + size_t old_size = ((unexec_malloc_header_t *) old_ptr)[-1].u.size; + size_t size = new_size > old_size ? old_size : new_size; + + if (size) + memcpy (p, old_ptr, size); + } + else + { + p = realloc (old_ptr, new_size); + } +#if MACOSX_MALLOC_MULT16 + assert (((vm_address_t) p % 16) == 0); +#endif + return p; + } else - return malloc_zone_realloc (emacs_zone, old_ptr, new_size); + { + unexec_malloc_header_t *ptr; + + ptr = (unexec_malloc_header_t *) + malloc_zone_realloc (emacs_zone, (unexec_malloc_header_t *) old_ptr - 1, + new_size + sizeof (unexec_malloc_header_t)); + ptr->u.size = new_size; + ptr++; +#if MACOSX_MALLOC_MULT16 + assert (((vm_address_t) ptr % 16) == 8); +#endif + return (void *) ptr; + } } void @@ -1052,7 +1110,7 @@ unexec_free (void *ptr) free (ptr); } else - malloc_zone_free (emacs_zone, ptr); + malloc_zone_free (emacs_zone, (unexec_malloc_header_t *) ptr - 1); } /* arch-tag: 1a784f7b-a184-4c4f-9544-da8619593d72 From e6bdfa32e4c6ad5b36ce0397dade0fde7837565b Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:42:38 +0000 Subject: [PATCH 76/90] [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds): Rename from get_control_part_bound. All callers changed. (x_scroll_bar_clear): New function. (x_clear_frame): Use it. (XTset_vertical_scroll_bar): Don't call Draw1Control. (x_scroll_bar_handle_click): Change type of second argument from int to ControlPartCode. (check_alarm): Remove declaration. (XTread_Socket) [!TARGET_API_MAC_CARBON]: Don't call it. (XTread_Socket): Use ControlPartCode instead of SInt16. --- src/macterm.c | 85 ++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/src/macterm.c b/src/macterm.c index b83419ef6da..b94c3a1bbba 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -3271,11 +3271,9 @@ x_clear_frame () BLOCK_INPUT; XClearWindow (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f)); -#if 0 /* Clearing frame on Mac OS clears scroll bars. */ /* We have to clear the scroll bars, too. If we have changed colors or something like that, then they should be notified. */ x_scroll_bar_clear (f); -#endif XFlush (FRAME_MAC_DISPLAY (f)); UNBLOCK_INPUT; @@ -4135,12 +4133,12 @@ XTmouse_position (fp, insist, bar_window, part, x, y, time) static pascal void scroll_bar_timer_callback P_ ((EventLoopTimerRef, void *)); static OSStatus install_scroll_bar_timer P_ ((void)); static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval)); -static int control_part_code_to_scroll_bar_part P_((ControlPartCode)); +static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode)); static void construct_scroll_bar_click P_ ((struct scroll_bar *, int, unsigned long, struct input_event *)); -static OSErr get_control_part_bound P_((ControlHandle, ControlPartCode, - Rect *)); +static OSErr get_control_part_bounds P_ ((ControlHandle, ControlPartCode, + Rect *)); static void x_scroll_bar_handle_press P_ ((struct scroll_bar *, ControlPartCode, unsigned long, @@ -4267,7 +4265,7 @@ construct_scroll_bar_click (bar, part, timestamp, bufp) } static OSErr -get_control_part_bound (ch, part_code, rect) +get_control_part_bounds (ch, part_code, rect) ControlHandle ch; ControlPartCode part_code; Rect *rect; @@ -4340,8 +4338,8 @@ x_scroll_bar_handle_drag (win, bar, mouse_pos, timestamp, bufp) int top, top_range; Rect r; - get_control_part_bound (SCROLL_BAR_CONTROL_HANDLE (bar), - kControlIndicatorPart, &r); + get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar), + kControlIndicatorPart, &r); if (GC_NILP (bar->dragging)) XSETINT (bar->dragging, mouse_pos.v - r.top); @@ -4669,13 +4667,11 @@ XTset_vertical_scroll_bar (w, portion, whole, position) BLOCK_INPUT; /* If already correctly positioned, do nothing. */ - if (XINT (bar->left) == sb_left - && XINT (bar->top) == top - && XINT (bar->width) == sb_width - && XINT (bar->height) == height) - Draw1Control (ch); - else - { + if (!(XINT (bar->left) == sb_left + && XINT (bar->top) == top + && XINT (bar->width) == sb_width + && XINT (bar->height) == height)) + { /* Clear areas not covered by the scroll bar because it's not as wide as the area reserved for it . This makes sure a previous mode line display is cleared after C-x 2 C-x 1, for @@ -4724,11 +4720,11 @@ XTset_vertical_scroll_bar (w, portion, whole, position) /* Move the scroll bar thumb to the top. */ SetControl32BitValue (ch, 0); - get_control_part_bound (ch, kControlIndicatorPart, &r0); + get_control_part_bounds (ch, kControlIndicatorPart, &r0); /* Move the scroll bar thumb to the bottom. */ SetControl32BitValue (ch, 1); - get_control_part_bound (ch, kControlIndicatorPart, &r1); + get_control_part_bounds (ch, kControlIndicatorPart, &r1); UnionRect (&r0, &r1, &r0); XSETINT (bar->track_top, r0.top); @@ -4876,7 +4872,7 @@ XTjudge_scroll_bars (f) static void x_scroll_bar_handle_click (bar, part_code, er, bufp) struct scroll_bar *bar; - int part_code; + ControlPartCode part_code; EventRecord *er; struct input_event *bufp; { @@ -5034,6 +5030,21 @@ x_scroll_bar_report_motion (fp, bar_window, part, x, y, time) *time = last_mouse_movement_time; } + + +/* The screen has been cleared so we may have changed foreground or + background colors, and the scroll bars may need to be redrawn. + Clear out the scroll bars, and ask for expose events, so we can + redraw them. */ + +void +x_scroll_bar_clear (f) + FRAME_PTR f; +{ + XTcondemn_scroll_bars (f); + XTjudge_scroll_bars (f); +} + /*********************************************************************** Text Cursor @@ -7498,7 +7509,6 @@ OSErr install_window_handler (WindowPtr); extern void init_emacs_passwd_dir (); extern int emacs_main (int, char **, char **); -extern void check_alarm (); extern void initialize_applescript(); extern void terminate_applescript(); @@ -8650,23 +8660,18 @@ profiler_exit_proc () #endif /* These few functions implement Emacs as a normal Mac application - (almost): set up the heap and the Toolbox, handle necessary - system events plus a few simple menu events. They also set up - Emacs's access to functions defined in the rest of this file. - Emacs uses function hooks to perform all its terminal I/O. A - complete list of these functions appear in termhooks.h. For what - they do, read the comments there and see also w32term.c and - xterm.c. What's noticeably missing here is the event loop, which - is normally present in most Mac application. After performing the - necessary Mac initializations, main passes off control to - emacs_main (corresponding to main in emacs.c). Emacs_main calls - mac_read_socket (defined further below) to read input. This is - where WaitNextEvent is called to process Mac events. This is also - where check_alarm in sysdep.c is called to simulate alarm signals. - This makes the cursor jump back to its correct position after - briefly jumping to that of the matching parenthesis, print useful - hints and prompts in the minibuffer after the user stops typing for - a wait, etc. */ + (almost): set up the heap and the Toolbox, handle necessary system + events plus a few simple menu events. They also set up Emacs's + access to functions defined in the rest of this file. Emacs uses + function hooks to perform all its terminal I/O. A complete list of + these functions appear in termhooks.h. For what they do, read the + comments there and see also w32term.c and xterm.c. What's + noticeably missing here is the event loop, which is normally + present in most Mac application. After performing the necessary + Mac initializations, main passes off control to emacs_main + (corresponding to main in emacs.c). Emacs_main calls XTread_socket + (defined further below) to read input. This is where + WaitNextEvent/ReceiveNextEvent is called to process Mac events. */ #ifdef MAC_OS8 #undef main @@ -8929,7 +8934,7 @@ XTread_socket (sd, expected, hold_quit) case mouseUp: { WindowPtr window_ptr; - SInt16 part_code; + ControlPartCode part_code; int tool_bar_p = 0; #if USE_CARBON_EVENTS @@ -8973,7 +8978,7 @@ XTread_socket (sd, expected, hold_quit) SelectWindow (window_ptr); else { - SInt16 control_part_code; + ControlPartCode control_part_code; ControlHandle ch; Point mouse_loc = er.where; #ifdef MAC_OSX @@ -9548,10 +9553,6 @@ XTread_socket (sd, expected, hold_quit) pending_autoraise_frame = 0; } -#if !TARGET_API_MAC_CARBON - check_alarm (); /* simulate the handling of a SIGALRM */ -#endif - UNBLOCK_INPUT; return count; } From b78c807ab4eea0030be9394525c59109e5883884 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:43:18 +0000 Subject: [PATCH 77/90] Don't include signal.h. --- src/macfns.c | 1 - src/macmenu.c | 1 - 2 files changed, 2 deletions(-) diff --git a/src/macfns.c b/src/macfns.c index a8b685582d5..d0dd9b9c072 100644 --- a/src/macfns.c +++ b/src/macfns.c @@ -22,7 +22,6 @@ Boston, MA 02111-1307, USA. */ #include -#include #include #include #include diff --git a/src/macmenu.c b/src/macmenu.c index 35615cc3796..eb870176f12 100644 --- a/src/macmenu.c +++ b/src/macmenu.c @@ -21,7 +21,6 @@ Boston, MA 02111-1307, USA. */ /* Contributed by Andrew Choi (akochoi@mac.com). */ #include -#include #include #include "lisp.h" From 62b00a46873ee0b8ea41d5e20573e27cc9b94be8 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:44:20 +0000 Subject: [PATCH 78/90] [!MAC_OSX] Include keyboard.h and syssignal.h. [!MAC_OSX] (target_ticks): Remove variable. [!MAC_OSX] (check_alarm, pause, index): Remove functions. [!MAC_OSX && __MRC__] (sys_strftime): Likewise. [!MAC_OSX] (select): If fd 0 is not set in rfds and some input event occurs before timeout, behave as if the function were interrupted. [!MAC_OSX] (sigblock, sigsetmask, alarm): Simulate SIGALRM handling using Time Manager routines. [!MAC_OSX] (mac_atimer_task, mac_atimer_qlink, signal_mask): New variables. [!MAC_OSX] (mac_atimer_handler, set_mac_atimer, remove_mac_atimer) (setitimer): New functions. --- src/mac.c | 299 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 174 insertions(+), 125 deletions(-) diff --git a/src/mac.c b/src/mac.c index 14257fdee94..eaf4f029cf1 100644 --- a/src/mac.c +++ b/src/mac.c @@ -1672,37 +1672,7 @@ sys_fopen (const char *name, const char *mode) } -long target_ticks = 0; - -#ifdef __MRC__ -__sigfun alarm_signal_func = (__sigfun) 0; -#elif __MWERKS__ -__signal_func_ptr alarm_signal_func = (__signal_func_ptr) 0; -#else /* not __MRC__ and not __MWERKS__ */ -You lose!!! -#endif /* not __MRC__ and not __MWERKS__ */ - - -/* These functions simulate SIG_ALRM. The stub for function signal - stores the signal handler function in alarm_signal_func if a - SIG_ALRM is encountered. check_alarm is called in XTread_socket, - which emacs calls periodically. A pending alarm is represented by - a non-zero target_ticks value. check_alarm calls the handler - function pointed to by alarm_signal_func if one has been set up and - an alarm is pending. */ - -void -check_alarm () -{ - if (target_ticks && TickCount () > target_ticks) - { - target_ticks = 0; - if (alarm_signal_func) - (*alarm_signal_func)(SIGALRM); - } -} - - +#include "keyboard.h" extern Boolean mac_wait_next_event (EventRecord *, UInt32, Boolean); int @@ -1713,25 +1683,17 @@ select (n, rfds, wfds, efds, timeout) SELECT_TYPE *efds; struct timeval *timeout; { -#if TARGET_API_MAC_CARBON OSErr err; +#if TARGET_API_MAC_CARBON EventTimeout timeout_sec = (timeout ? (EMACS_SECS (*timeout) * kEventDurationSecond + EMACS_USECS (*timeout) * kEventDurationMicrosecond) : kEventDurationForever); - if (FD_ISSET (0, rfds)) - { - BLOCK_INPUT; - err = ReceiveNextEvent (0, NULL, timeout_sec, kEventLeaveInQueue, NULL); - UNBLOCK_INPUT; - if (err == noErr) - return 1; - else - FD_ZERO (rfds); - } - return 0; + BLOCK_INPUT; + err = ReceiveNextEvent (0, NULL, timeout_sec, kEventLeaveInQueue, NULL); + UNBLOCK_INPUT; #else /* not TARGET_API_MAC_CARBON */ EventRecord e; UInt32 sleep_time = EMACS_SECS (*timeout) * 60 + @@ -1746,47 +1708,62 @@ select (n, rfds, wfds, efds, timeout) read_avail_input which in turn calls XTread_socket to poll for these events. Otherwise these never get processed except but a very slow poll timer. */ - if (FD_ISSET (0, rfds) && mac_wait_next_event (&e, sleep_time, false)) - return 1; - - return 0; + if (mac_wait_next_event (&e, sleep_time, false)) + err = noErr; + else + err = -9875; /* eventLoopTimedOutErr */ #endif /* not TARGET_API_MAC_CARBON */ + + if (FD_ISSET (0, rfds)) + if (err == noErr) + return 1; + else + { + FD_ZERO (rfds); + return 0; + } + else + if (err == noErr) + { + if (input_polling_used ()) + { + /* It could be confusing if a real alarm arrives while + processing the fake one. Turn it off and let the + handler reset it. */ + extern void poll_for_input_1 P_ ((void)); + int old_poll_suppress_count = poll_suppress_count; + poll_suppress_count = 1; + poll_for_input_1 (); + poll_suppress_count = old_poll_suppress_count; + } + errno = EINTR; + return -1; + } + else + return 0; } -/* Called in sys_select to wait for an alarm signal to arrive. */ +/* Simulation of SIGALRM. The stub for function signal stores the + signal handler function in alarm_signal_func if a SIGALRM is + encountered. */ -int -pause () -{ - EventRecord e; - unsigned long tick; +#include +#include "syssignal.h" - if (!target_ticks) /* no alarm pending */ - return -1; +static TMTask mac_atimer_task; - if ((tick = TickCount ()) < target_ticks) - WaitNextEvent (0, &e, target_ticks - tick, NULL); /* Accept no event; - just wait. by T.I. */ +static QElemPtr mac_atimer_qlink = (QElemPtr) &mac_atimer_task; - target_ticks = 0; - if (alarm_signal_func) - (*alarm_signal_func)(SIGALRM); - - return 0; -} - - -int -alarm (int seconds) -{ - long remaining = target_ticks ? (TickCount () - target_ticks) / 60 : 0; - - target_ticks = seconds ? TickCount () + 60 * seconds : 0; - - return (remaining < 0) ? 0 : (unsigned int) remaining; -} +static int signal_mask = 0; +#ifdef __MRC__ +__sigfun alarm_signal_func = (__sigfun) 0; +#elif __MWERKS__ +__signal_func_ptr alarm_signal_func = (__signal_func_ptr) 0; +#else /* not __MRC__ and not __MWERKS__ */ +You lose!!! +#endif /* not __MRC__ and not __MWERKS__ */ #undef signal #ifdef __MRC__ @@ -1819,6 +1796,128 @@ sys_signal (int signal_num, __signal_func_ptr signal_func) } +static pascal void +mac_atimer_handler (qlink) + TMTaskPtr qlink; +{ + if (alarm_signal_func) + (alarm_signal_func) (SIGALRM); +} + + +static void +set_mac_atimer (count) + long count; +{ + static TimerUPP mac_atimer_handlerUPP = NULL; + + if (mac_atimer_handlerUPP == NULL) + mac_atimer_handlerUPP = NewTimerUPP (mac_atimer_handler); + mac_atimer_task.tmCount = 0; + mac_atimer_task.tmAddr = mac_atimer_handlerUPP; + mac_atimer_qlink = (QElemPtr) &mac_atimer_task; + InsTime (mac_atimer_qlink); + if (count) + PrimeTime (mac_atimer_qlink, count); +} + + +int +remove_mac_atimer (remaining_count) + long *remaining_count; +{ + if (mac_atimer_qlink) + { + RmvTime (mac_atimer_qlink); + if (remaining_count) + *remaining_count = mac_atimer_task.tmCount; + mac_atimer_qlink = NULL; + + return 0; + } + else + return -1; +} + + +int +sigblock (int mask) +{ + int old_mask = signal_mask; + + signal_mask |= mask; + + if ((old_mask ^ signal_mask) & sigmask (SIGALRM)) + remove_mac_atimer (NULL); + + return old_mask; +} + + +int +sigsetmask (int mask) +{ + int old_mask = signal_mask; + + signal_mask = mask; + + if ((old_mask ^ signal_mask) & sigmask (SIGALRM)) + if (signal_mask & sigmask (SIGALRM)) + remove_mac_atimer (NULL); + else + set_mac_atimer (mac_atimer_task.tmCount); + + return old_mask; +} + + +int +alarm (int seconds) +{ + long remaining_count; + + if (remove_mac_atimer (&remaining_count) == 0) + { + set_mac_atimer (seconds * 1000); + + return remaining_count / 1000; + } + else + { + mac_atimer_task.tmCount = seconds * 1000; + + return 0; + } +} + + +int +setitimer (which, value, ovalue) + int which; + const struct itimerval *value; + struct itimerval *ovalue; +{ + long remaining_count; + long count = (EMACS_SECS (value->it_value) * 1000 + + (EMACS_USECS (value->it_value) + 999) / 1000); + + if (remove_mac_atimer (&remaining_count) == 0) + { + if (ovalue) + { + bzero (ovalue, sizeof (*ovalue)); + EMACS_SET_SECS_USECS (ovalue->it_value, remaining_count / 1000, + (remaining_count % 1000) * 1000); + } + set_mac_atimer (count); + } + else + mac_atimer_task.tmCount = count; + + return 0; +} + + /* gettimeofday should return the amount of time (in a timeval structure) since midnight today. The toolbox function Microseconds returns the number of microseconds (in a UnsignedWide value) since @@ -1946,35 +2045,6 @@ sys_time (time_t *timer) } -/* MPW strftime broken for "%p" format */ -#ifdef __MRC__ -#undef strftime -#include -size_t -sys_strftime (char * s, size_t maxsize, const char * format, - const struct tm * timeptr) -{ - if (strcmp (format, "%p") == 0) - { - if (maxsize < 3) - return 0; - if (timeptr->tm_hour < 12) - { - strcpy (s, "AM"); - return 2; - } - else - { - strcpy (s, "PM"); - return 2; - } - } - else - return strftime (s, maxsize, format, timeptr); -} -#endif /* __MRC__ */ - - /* no subprocesses, empty wait */ int @@ -1992,13 +2062,6 @@ croak (char *badfunc) } -char * -index (const char * str, int chr) -{ - return strchr (str, chr); -} - - char * mktemp (char *template) { @@ -2187,20 +2250,6 @@ sys_subshell () } -int -sigsetmask (int x) -{ - return 0; -} - - -int -sigblock (int mask) -{ - return 0; -} - - void request_sigio (void) { From 354344a20a06e2052bc23a4b92ac44af1075cdbe Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:44:49 +0000 Subject: [PATCH 79/90] (readable_events) [USE_TOOLKIT_SCROLL_BARS]: Regard toolkit scroll bar thumb drag events as squeezable and prevent redisplay from being paused by them. --- src/keyboard.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/keyboard.c b/src/keyboard.c index 3e7510205af..09472e5a5e6 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -3531,9 +3531,11 @@ readable_events (flags) READABLE_EVENTS_FILTER_EVENTS is set, report it as empty. */ if (kbd_fetch_ptr != kbd_store_ptr) { - int have_live_event = 1; - - if (flags & READABLE_EVENTS_FILTER_EVENTS) + if (flags & (READABLE_EVENTS_FILTER_EVENTS +#ifdef USE_TOOLKIT_SCROLL_BARS + | READABLE_EVENTS_IGNORE_SQUEEZABLES +#endif + )) { struct input_event *event; @@ -3541,16 +3543,29 @@ readable_events (flags) ? kbd_fetch_ptr : kbd_buffer); - while (have_live_event && event->kind == FOCUS_IN_EVENT) - { - event++; + do + { + if (!( +#ifdef USE_TOOLKIT_SCROLL_BARS + (flags & READABLE_EVENTS_FILTER_EVENTS) && +#endif + event->kind == FOCUS_IN_EVENT) +#ifdef USE_TOOLKIT_SCROLL_BARS + && !((flags & READABLE_EVENTS_IGNORE_SQUEEZABLES) + && event->kind == SCROLL_BAR_CLICK_EVENT + && event->part == scroll_bar_handle + && event->modifiers == 0) +#endif + ) + return 1; + event++; if (event == kbd_buffer + KBD_BUFFER_SIZE) event = kbd_buffer; - if (event == kbd_store_ptr) - have_live_event = 0; - } + } + while (event != kbd_store_ptr); } - if (have_live_event) return 1; + else + return 1; } #ifdef HAVE_MOUSE @@ -6545,7 +6560,7 @@ lucid_event_type_list_p (object) If READABLE_EVENTS_FILTER_EVENTS is set in FLAGS, ignore internal events (FOCUS_IN_EVENT). If READABLE_EVENTS_IGNORE_SQUEEZABLES is set in FLAGS, ignore mouse - movements. */ + movements and toolkit scroll bar thumb drags. */ static void get_input_pending (addr, flags) From 34e1bbc25ec8c93fb8f454715bbd759509a275a6 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:45:13 +0000 Subject: [PATCH 80/90] (main) [MAC_OS8]: Call init_atimer before mac_term_init. --- src/emacs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/emacs.c b/src/emacs.c index ad9c28e7fec..8e38bffc28e 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1325,6 +1325,7 @@ main (argc, argv syms_of_search (); syms_of_frame (); + init_atimer (); mac_term_init (build_string ("Mac"), NULL, NULL); init_keyboard (); #endif @@ -1350,7 +1351,9 @@ main (argc, argv #ifdef CLASH_DETECTION init_filelock (); #endif +#ifndef MAC_OS8 init_atimer (); +#endif running_asynch_code = 0; /* Handle --unibyte and the EMACS_UNIBYTE envvar, From bfd3cbc4773edf4110eb751d44596214e825c99c Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:48:01 +0000 Subject: [PATCH 81/90] (ITIMER_REAL): New macro. (struct itimerval): New struct. (setitimer): New extern. --- mac/inc/sys/time.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/mac/inc/sys/time.h b/mac/inc/sys/time.h index b80135b7b5e..4ae305cf026 100644 --- a/mac/inc/sys/time.h +++ b/mac/inc/sys/time.h @@ -28,6 +28,21 @@ struct timeval { long tv_usec; /* microseconds */ }; +#define ITIMER_REAL 0 +#if 0 +#define ITIMER_VIRTUAL 1 +#define ITIMER_PROF 2 +#endif + +struct itimerval { +#if 0 + struct timeval it_interval; /* timer interval */ +#endif + struct timeval it_value; /* current value */ +}; + +extern int setitimer(int, const struct itimerval *, struct itimerval *); + #endif /* _SYS_TYPES_H */ /* arch-tag: f85ed04d-0e99-4f97-892b-fe029d0e92f9 From 58f3150e5d226dea583a79c40c84c6741d80bd2d Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:48:45 +0000 Subject: [PATCH 82/90] Sync with src/s/template.h. Don't include fcntl.h, time.h, or signal.h. (index, rindex): New macros. [__MRC__] (sigmask, __signal_max, NSIG): Adjust signal numbers for compatibility with predefined ones. (PTR): Move from s-mac.h. (HAVE_PWD_H): Move to config.h. (volatile): Remove macro. [__MRC__] (strftime): Likewise. (read_input_waiting, sys_gmtime, sys_localtime, sys_ctime) (sys_time, sys_signal, atof): Remove declarations. --- mac/inc/s-mac.h | 77 +++++++++++++++++-------------------------------- 1 file changed, 27 insertions(+), 50 deletions(-) diff --git a/mac/inc/s-mac.h b/mac/inc/s-mac.h index 56f4df5941c..149d465f59f 100644 --- a/mac/inc/s-mac.h +++ b/mac/inc/s-mac.h @@ -53,8 +53,8 @@ Boston, MA 02111-1307, USA. */ Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO) - Emacs uses the presence or absence of the SIGIO macro to indicate - whether or not signal-driven I/O is possible. It uses + Emacs uses the presence or absence of the SIGIO and BROKEN_SIGIO macros + to indicate whether or not signal-driven I/O is possible. It uses INTERRUPT_INPUT to decide whether to use it by default. SIGIO can be used only on systems that implement it (4.2 and 4.3). @@ -96,8 +96,6 @@ Boston, MA 02111-1307, USA. */ /* #define HAVE_PTYS */ -#define HAVE_PWD_H 1 - /* * Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate * The 4.2 opendir, etc., library functions. @@ -148,6 +146,9 @@ Boston, MA 02111-1307, USA. */ is not ':', #define this to be the appropriate character constant. */ /* #define SEPCHAR ':' */ +/* Define this if the system can use mmap for buffer text allocation. */ +/* #define USE_MMAP_FOR_BUFFERS 1 */ + /* ============================================================ */ /* Here, add any special hacks needed @@ -164,6 +165,14 @@ Boston, MA 02111-1307, USA. */ /* #define static */ +/* If the system's imake configuration file defines `NeedWidePrototypes' + as `NO', we must define NARROWPROTO manually. Such a define is + generated in the Makefile generated by `xmkmf'. If we don't + define NARROWPROTO, we will see the wrong function prototypes + for X functions taking float or double parameters. */ + +/* #define NARROWPROTO 1 */ + /* ============================================================ */ /* After adding support for a new system, modify the large case @@ -176,7 +185,12 @@ Boston, MA 02111-1307, USA. */ of known problems in that configuration should be updated. */ #ifdef __MRC__ -#define __signal_max SIGTERM /* largest one in signal.h */ +/* MrC predefines signal numbers as powers of 2. */ +#define sigmask(no) (((no) & (no) - 1) ? 1L << ((no) - 1) : (no)) +#define __signal_max 8 /* There's enough room for the following + signals between 8 and 16, and the + maximum predefined one (32) is less + than 8th power of 2. */ #endif #define SIGHUP (__signal_max+1) @@ -185,7 +199,12 @@ Boston, MA 02111-1307, USA. */ #define SIGKILL (__signal_max+4) #define SIGALRM (__signal_max+5) #define SIGPIPE (__signal_max+6) + +#ifdef __MRC__ +#define NSIG SIGTERM /* largest one in signal.h */ +#else #define NSIG (__signal_max+6) +#endif #ifdef __MRC__ #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base) @@ -230,19 +249,11 @@ Boston, MA 02111-1307, USA. */ #define READ_BUF_SIZE (8 << 10) #include -void read_input_waiting (); - -/* #define GETTIMEOFDAY_ONE_ARGUMENT */ #define SYSV_SYSTEM_DIR #define SYSTEM_MALLOC -/* Constants such as O_RDONLY are defined in fcntl.h. Best solution is - really to patch individual files to include it: callproc.c, doc.c, - fileio.c, getloadavg.c, lread.c, and termcap.c. */ -#include - #define _setjmp setjmp #define _longjmp longjmp @@ -284,44 +295,10 @@ void read_input_waiting (); #define ctime sys_ctime #define time sys_time -#ifndef bcmp -#define bcmp(s1, s2, n) memcmp ((s1), (s2), (n)) -#endif -#ifndef bcopy -#define bcopy(s, d, n) memcpy ((d), (s), (n)) -#endif -#ifndef bzero -#define bzero(s, n) memset ((s), 0, (n)) -#endif +#define index strchr +#define rindex strrchr -extern char *index (const char *, int); - -/* MPW strftime broken for "%p" format */ -#ifdef __MRC__ -#define strftime sys_strftime -#endif - -#include -/* Editfns.c includes types.h which indirectly includes time.h before config.h. - So gmtime (localtime) is defined and not sys_gmtime (sys_localtime). Define - here explicitly. */ -extern struct tm *sys_gmtime (const time_t *); -extern struct tm *sys_localtime (const time_t *); -extern char *sys_ctime (const time_t *); -extern time_t sys_time (time_t *); - -/* Emacs.c includes signal.h before config.h. Define this to make it happy. */ -#ifdef __MRC__ -#include -extern __sigfun sys_signal (int signal_num, __sigfun signal_func); -#elif __MWERKS__ -#include -extern __signal_func_ptr sys_signal (int signal_num, __signal_func_ptr signal_func); -#endif - -extern double atof (const char *); - -#define volatile +#define PTR POINTER_TYPE * /* For strftime.c. */ #define SYMS_SYSTEM syms_of_mac() From 948e665681747c591f85f586992cd69c44f838f9 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:49:15 +0000 Subject: [PATCH 83/90] (HAVE_ALLOCA, C_ALLOCA): Move to config.h. --- mac/inc/m-mac.h | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/mac/inc/m-mac.h b/mac/inc/m-mac.h index bb4011af4a6..356a557c5fa 100644 --- a/mac/inc/m-mac.h +++ b/mac/inc/m-mac.h @@ -80,19 +80,6 @@ Boston, MA 02111-1307, USA. */ #define VIRT_ADDR_VARIES -/* Define C_ALLOCA if this machine does not support a true alloca - and the one written in C should be used instead. - Define HAVE_ALLOCA to say that the system provides a properly - working alloca function and it should be used. - Define neither one if an assembler-language alloca - in the file alloca.s should be used. */ - -#ifdef __MRC__ -#define HAVE_ALLOCA -#else -#define C_ALLOCA -#endif - /* Define NO_REMAP if memory segmentation makes it not work well to change the boundary between the text section and data section when Emacs is dumped. If you define this, the preloaded Lisp @@ -129,18 +116,5 @@ Boston, MA 02111-1307, USA. */ #define IEEE_FLOATING_POINT 1 #endif -#if 0 -/* The usual definition of XINT, which involves shifting, does not - sign-extend properly on this machine. */ - -#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \ - ? (sign_extend_temp | 0xFF000000) \ - : (sign_extend_temp & 0x00FFFFFF)) - -#ifdef emacs /* Don't do this when making xmakefile! */ -extern int sign_extend_temp; -#endif -#endif - /* arch-tag: 9e759031-ab7b-4c76-99d7-3ae94a98de38 (do not change this comment) */ From 29b78ea8f60868cc0eb11016c74632d2a3060a20 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:49:50 +0000 Subject: [PATCH 84/90] Sync with src/config.in. (DO_BLOCK_INPUT, HAVE_DIFFTIME, HAVE_LOCALE_H, HAVE_MEMCMP) (HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_SETITIMER) (HAVE_SIZE_T, HAVE_SYS_IOCTL_H, HAVE_SYS_PARAM_H, HAVE_SYS_STAT_H) (HAVE_SYS_TYPES_H, TIME_WITH_SYS_TIME, SYNC_INPUT): Define them. [__MRC__] (HAVE_ALLOCA_H): Likewise. (config_machfile, config_opsysfile, my_strftime): New macros. (HAVE_PWD_H): Move from s-mac.h. (HAVE_ALLOCA, C_ALLOCA): Move from m-mac.h. (PTR): Move to s-mac.h. --- mac/inc/config.h | 1240 +++++++++++++++++++++++++++++++++------------- 1 file changed, 908 insertions(+), 332 deletions(-) diff --git a/mac/inc/config.h b/mac/inc/config.h index c81db673cca..4ac6a9d61f0 100644 --- a/mac/inc/config.h +++ b/mac/inc/config.h @@ -22,84 +22,882 @@ Boston, MA 02111-1307, USA. */ /* Contributed by Andrew Choi (akochoi@mac.com). */ - -/* No code in Emacs #includes config.h twice, but some of the code +/* No code in Emacs #includes config.h twice, but some bits of code intended to work with other packages as well (like gmalloc.c) think they can include it as many times as they like. */ #ifndef EMACS_CONFIG_H #define EMACS_CONFIG_H -/* These are all defined in the top-level Makefile by configure. - They're here only for reference. */ -/* Define GNU_MALLOC if you want to use the GNU memory allocator. */ -/* #undef GNU_MALLOC */ +/* Define to 1 if the mktime function is broken. */ +/* #undef BROKEN_MKTIME */ -/* Define if you are using the GNU C Library. */ +/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP + systems. This function is required for `alloca.c' support on those systems. + */ +/* #undef CRAY_STACKSEG_END */ + +/* Define to 1 if using `alloca.c'. */ +#ifndef __MRC__ /* CodeWarrior */ +#define C_ALLOCA 1 +#endif + +/* Define to 1 if using `getloadavg.c'. */ +/* #undef C_GETLOADAVG */ + +/* Define C_SWITCH_X_SITE to contain any special flags your compiler + may need to deal with X Windows. For instance, if you've defined + HAVE_X_WINDOWS above and your X include files aren't in a place + that your compiler can find on its own, you might want to add + "-I/..." or something similar. */ +/* #undef C_SWITCH_X_SITE */ + +/* Define to 1 for DGUX with . */ +/* #undef DGUX */ + +/* Define to 1 if you are using the GNU C Library. */ /* #undef DOUG_LEA_MALLOC */ -/* Define REL_ALLOC if you want to use the relocating allocator for - buffer space. */ -/* #undef REL_ALLOC */ +/* Define to the canonical Emacs configuration name. */ +#ifdef __MRC__ +#define EMACS_CONFIGURATION "macos-mpw" +#else /* Assume CodeWarrior */ +#define EMACS_CONFIGURATION "macos-cw" +#endif -/* Define HAVE_X_WINDOWS if you want to use the X window system. */ -/* #undef HAVE_X_WINDOWS */ +/* Define to the options passed to configure. */ +#define EMACS_CONFIG_OPTIONS "" -/* Define HAVE_X11 if you want to use version 11 of X windows. - Otherwise, Emacs expects to use version 10. */ -/* #undef HAVE_X11 */ +/* Define to 1 if the `getpgrp' function requires zero arguments. */ +/* #undef GETPGRP_VOID */ -/* Define if using an X toolkit. */ -/* #undef USE_X_TOOLKIT */ +/* Define to 1 if gettimeofday accepts only one argument. */ +#define GETTIMEOFDAY_ONE_ARGUMENT 1 -/* Define this if you're using XFree386. */ -/* #undef HAVE_XFREE386 */ +/* Define to 1 if you want to use the GNU memory allocator. */ +/* #undef GNU_MALLOC */ -/* Define this if you have Motif 2.1 or newer. */ -/* #undef HAVE_MOTIF_2_1 */ +/* Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists. */ +/* #undef HAVE_AIX_SMT_EXP */ -/* Define HAVE_MENUS if you have mouse menus. - (This is automatic if you use X, but the option to specify it remains.) - It is also defined with other window systems that support xmenu.c. */ -#define HAVE_MENUS 1 +/* Define to 1 if you have the `alarm' function. */ +/* #undef HAVE_ALARM */ -/* Define if we have the X11R6 or newer version of Xt. */ -/* #undef HAVE_X11XTR6 */ +/* Define to 1 if you have `alloca', as a function or macro. */ +#ifdef __MRC__ +#define HAVE_ALLOCA 1 +#endif -/* Define if we have the X11R6 or newer version of Xlib. */ -/* #undef HAVE_X11R6 */ +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +#ifdef __MRC__ +#define HAVE_ALLOCA_H 1 +#endif -/* Define if we have the X11R5 or newer version of Xlib. */ -/* #undef HAVE_X11R5 */ +/* Define to 1 if you have the `bcmp' function. */ +/* #define HAVE_BCMP */ -/* Define if we have the XPM libary. */ -/* #undef HAVE_XPM */ +/* Define to 1 if you have the `bcopy' function. */ +/* #define HAVE_BCOPY */ -/* Define if we have the PNG library. */ -/* #undef HAVE_PNG */ +/* Define to 1 if you have the `bzero' function. */ +/* #define HAVE_BZERO */ -/* Define if we have the JPEG library. */ -/* #undef HAVE_JPEG */ +/* Define to 1 if you are using the Carbon API on Mac OS X. */ +/* #undef HAVE_CARBON */ -/* Define if we have the TIFF library. */ -/* #undef HAVE_TIFF */ +/* Define to 1 if you have the `cbrt' function. */ +/* #undef HAVE_CBRT */ -/* Define if we have the GIF library. */ +/* Define to 1 if you have the `closedir' function. */ +#define HAVE_CLOSEDIR 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_COFF_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_COM_ERR_H */ + +/* Define to 1 if you have /usr/lib/crti.o. */ +/* #undef HAVE_CRTIN */ + +/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you + don't. */ +/* #undef HAVE_DECL_SYS_SIGLIST */ + +/* Define to 1 if you have the declaration of `__sys_siglist', and to 0 if you + don't. */ +/* #undef HAVE_DECL___SYS_SIGLIST */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DES_H */ + +/* Define to 1 if dynamic ptys are supported. */ +/* #undef HAVE_DEV_PTMX */ + +/* Define to 1 if you have the `difftime' function. */ +#define HAVE_DIFFTIME 1 + +/* Define to 1 if you have the `dup2' function. */ +/* #undef HAVE_DUP2 */ + +/* Define to 1 if you have the `euidaccess' function. */ +/* #undef HAVE_EUIDACCESS */ + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `fmod' function. */ +#define HAVE_FMOD 1 + +/* Define to 1 if you have the `fork' function. */ +/* #undef HAVE_FORK */ + +/* Define to 1 if you have the `fpathconf' function. */ +/* #undef HAVE_FPATHCONF */ + +/* Define to 1 if you have the `frexp' function. */ +#define HAVE_FREXP 1 + +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +/* #undef HAVE_FSEEKO */ + +/* Define to 1 if you have the `fsync' function. */ +/* #undef HAVE_FSYNC */ + +/* Define to 1 if you have the `ftime' function. */ +/* #undef HAVE_FTIME */ + +/* Define to 1 if you have the `gai_strerror' function. */ +/* #undef HAVE_GAI_STRERROR */ + +/* Define to 1 if you have the `gdk_display_open' function. */ +/* #undef HAVE_GDK_DISPLAY_OPEN */ + +/* Define to 1 if you have the `getaddrinfo' function. */ +/* #undef HAVE_GETADDRINFO */ + +/* Define to 1 if you have the `getcwd' function. */ +/* #undef HAVE_GETCWD */ + +/* Define to 1 if you have the `getdelim' function. */ +/* #undef HAVE_GETDELIM */ + +/* Define to 1 if you have the `getdomainname' function. */ +/* #undef HAVE_GETDOMAINNAME */ + +/* Define to 1 if you have the `gethostname' function. */ +/* #undef HAVE_GETHOSTNAME */ + +/* Define to 1 if you have the `getline' function. */ +/* #undef HAVE_GETLINE */ + +/* Define to 1 if you have the `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define to 1 if you have the `getpagesize' function. */ +/* #undef HAVE_GETPAGESIZE */ + +/* Define to 1 if you have the `getpeername' function. */ +/* #undef HAVE_GETPEERNAME */ + +/* Define to 1 if you have the `getpt' function. */ +/* #undef HAVE_GETPT */ + +/* Define to 1 if you have the `getrusage' function. */ +/* #undef HAVE_GETRUSAGE */ + +/* Define to 1 if you have the `getsockname' function. */ +/* #undef HAVE_GETSOCKNAME */ + +/* Define to 1 if you have the `getsockopt' function. */ +/* #undef HAVE_GETSOCKOPT */ + +/* Define to 1 if you have the `gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the `getwd' function. */ +#define HAVE_GETWD 1 + +/* Define to 1 if you have the ungif library (-lungif). */ /* #undef HAVE_GIF */ -/* Define if libXaw3d is available. */ +/* Define to 1 if you have the `grantpt' function. */ +/* #undef HAVE_GRANTPT */ + +/* Define to 1 if using GTK. */ +/* #undef HAVE_GTK */ + +/* Define to 1 if you have GTK and pthread (-lpthread). */ +/* #undef HAVE_GTK_AND_PTHREAD */ + +/* Define to 1 if GTK has both file selection and chooser dialog. */ +/* #undef HAVE_GTK_FILE_BOTH */ + +/* Define to 1 if you have the `gtk_file_chooser_dialog_new' function. */ +/* #undef HAVE_GTK_FILE_CHOOSER_DIALOG_NEW */ + +/* Define to 1 if you have the `gtk_file_selection_new' function. */ +/* #undef HAVE_GTK_FILE_SELECTION_NEW */ + +/* Define to 1 if GTK can handle more than one display. */ +/* #undef HAVE_GTK_MULTIDISPLAY */ + +/* Define to 1 if netdb.h declares h_errno. */ +/* #undef HAVE_H_ERRNO */ + +/* Define to 1 if you have the `index' function. */ +/* #undef HAVE_INDEX */ + +/* Define to 1 if you have inet sockets. */ +/* #undef HAVE_INET_SOCKETS */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_INTTYPES_H */ + +/* Define to 1 if you have the jpeg library (-ljpeg). */ +/* #undef HAVE_JPEG */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KERBEROSIV_DES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KERBEROSIV_KRB_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KERBEROS_DES_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KERBEROS_KRB_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KRB5_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_KRB_H */ + +/* Define if you have and nl_langinfo(CODESET). */ +/* #undef HAVE_LANGINFO_CODESET */ + +/* Define to 1 if you have the `com_err' library (-lcom_err). */ +/* #undef HAVE_LIBCOM_ERR */ + +/* Define to 1 if you have the `crypto' library (-lcrypto). */ +/* #undef HAVE_LIBCRYPTO */ + +/* Define to 1 if you have the `des' library (-ldes). */ +/* #undef HAVE_LIBDES */ + +/* Define to 1 if you have the `des425' library (-ldes425). */ +/* #undef HAVE_LIBDES425 */ + +/* Define to 1 if you have the `dgc' library (-ldgc). */ +/* #undef HAVE_LIBDGC */ + +/* Define to 1 if you have the `dnet' library (-ldnet). */ +/* #undef HAVE_LIBDNET */ + +/* Define to 1 if you have the hesiod library (-lhesiod). */ +/* #undef HAVE_LIBHESIOD */ + +/* Define to 1 if you have the `intl' library (-lintl). */ +/* #undef HAVE_LIBINTL */ + +/* Define to 1 if you have the `k5crypto' library (-lk5crypto). */ +/* #undef HAVE_LIBK5CRYPTO */ + +/* Define to 1 if you have the `krb' library (-lkrb). */ +/* #undef HAVE_LIBKRB */ + +/* Define to 1 if you have the `krb4' library (-lkrb4). */ +/* #undef HAVE_LIBKRB4 */ + +/* Define to 1 if you have the `krb5' library (-lkrb5). */ +/* #undef HAVE_LIBKRB5 */ + +/* Define to 1 if you have the `kstat' library (-lkstat). */ +/* #undef HAVE_LIBKSTAT */ + +/* Define to 1 if you have the `lockfile' library (-llockfile). */ +/* #undef HAVE_LIBLOCKFILE */ + +/* Define to 1 if you have the `m' library (-lm). */ +/* #undef HAVE_LIBM */ + +/* Define to 1 if you have the `mail' library (-lmail). */ +/* #undef HAVE_LIBMAIL */ + +/* Define to 1 if you have the `ncurses' library (-lncurses). */ +/* #undef HAVE_LIBNCURSES */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LIBPNG_PNG_H */ + +/* Define to 1 if you have the `pthreads' library (-lpthreads). */ +/* #undef HAVE_LIBPTHREADS */ + +/* Define to 1 if you have the resolv library (-lresolv). */ +/* #undef HAVE_LIBRESOLV */ + +/* Define to 1 if you have the `Xext' library (-lXext). */ +/* #undef HAVE_LIBXEXT */ + +/* Define to 1 if you have the `Xmu' library (-lXmu). */ +/* #undef HAVE_LIBXMU */ + +/* Define to 1 if you have the Xp library (-lXp). */ +/* #undef HAVE_LIBXP */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_VERSION_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `logb' function. */ +#define HAVE_LOGB 1 + +/* Define to 1 if you support file names longer than 14 characters. */ +/* #undef HAVE_LONG_FILE_NAMES */ + +/* Define to 1 if you have the `lrand48' function. */ +/* #undef HAVE_LRAND48 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACHINE_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACH_MACH_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MAILLOCK_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MALLOC_MALLOC_H */ + +/* Define to 1 if you have the `mblen' function. */ +/* #undef HAVE_MBLEN */ + +/* Define to 1 if you have the `mbrlen' function. */ +/* #undef HAVE_MBRLEN */ + +/* Define to 1 if you have the `mbsinit' function. */ +/* #undef HAVE_MBSINIT */ + +/* Define to 1 if declares mbstate_t. */ +/* #undef HAVE_MBSTATE_T */ + +/* Define to 1 if you have the `memcmp' function. */ +#define HAVE_MEMCMP 1 + +/* Define to 1 if you have the `memcpy' function. */ +#define HAVE_MEMCPY 1 + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MEMORY_H */ + +/* Define to 1 if you have the `mempcpy' function. */ +/* #undef HAVE_MEMPCPY */ + +/* Define to 1 if you have the `memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have mouse menus. (This is automatic if you use X, but + the option to specify it remains.) It is also defined with other window + systems that support xmenu.c. */ +#define HAVE_MENUS 1 + +/* Define to 1 if you have the `mkdir' function. */ +#define HAVE_MKDIR 1 + +/* Define to 1 if you have the `mkstemp' function. */ +/* #undef HAVE_MKSTEMP */ + +/* Define to 1 if you have the `mktime' function. */ +/* #undef HAVE_MKTIME */ + +/* Define to 1 if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define to 1 if you have Motif 2.1 or newer. */ +/* #undef HAVE_MOTIF_2_1 */ + +/* Define to 1 if you have the `mremap' function. */ +/* #undef HAVE_MREMAP */ + +/* Define to 1 if you have the header file. */ +/* #define HAVE_NET_IF_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NLIST_H */ + +/* Define to 1 if personality LINUX32 can be set. */ +/* #undef HAVE_PERSONALITY_LINUX32 */ + +/* Define to 1 if you have the png library (-lpng). */ +/* #undef HAVE_PNG */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PNG_H */ + +/* Define to 1 if you have the `posix_memalign' function. */ +/* #undef HAVE_POSIX_MEMALIGN */ + +/* Define to 1 if you have the `pstat_getdynamic' function. */ +/* #undef HAVE_PSTAT_GETDYNAMIC */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PTHREAD_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_PTY_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_PWD_H 1 + +/* Define to 1 if you have the `random' function. */ +/* #undef HAVE_RANDOM */ + +/* Define to 1 if you have the `recvfrom' function. */ +/* #undef HAVE_RECVFROM */ + +/* Define to 1 if you have the `rename' function. */ +#define HAVE_RENAME 1 + +/* Define to 1 if you have the `res_init' function. */ +/* #undef HAVE_RES_INIT */ + +/* Define to 1 if you have the `rindex' function. */ +/* #undef HAVE_RINDEX */ + +/* Define to 1 if you have the `rint' function. */ +#ifdef __MRC__ +#undef HAVE_RINT +#else /* CodeWarrior */ +#define HAVE_RINT +#endif + +/* Define to 1 if you have the `rmdir' function. */ +#define HAVE_RMDIR 1 + +/* Define to 1 if you have the `select' function. */ +#define HAVE_SELECT 1 + +/* Define to 1 if you have the `sendto' function. */ +/* #undef HAVE_SENDTO */ + +/* Define to 1 if you have the `setitimer' function. */ +#define HAVE_SETITIMER 1 + +/* Define to 1 if you have the `setlocale' function. */ +#define HAVE_SETLOCALE 1 + +/* Define to 1 if you have the `setpgid' function. */ +/* #undef HAVE_SETPGID */ + +/* Define to 1 if you have the `setrlimit' function. */ +/* #undef HAVE_SETRLIMIT */ + +/* Define to 1 if you have the `setsid' function. */ +/* #undef HAVE_SETSID */ + +/* Define to 1 if you have the `setsockopt' function. */ +/* #undefine HAVE_SETSOCKOPT */ + +/* Define to 1 if you have the `shutdown' function. */ +/* #undef HAVE_SHUTDOWN */ + +/* Define to 1 if the system has the type `size_t'. */ +#define HAVE_SIZE_T 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SOUNDCARD_H */ + +/* Define to 1 if `speed_t' is declared by . */ +/* #undef HAVE_SPEED_T */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STDINT_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STDIO_EXT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the `strftime' function. */ +#ifndef __MRC__ /* CodeWarrior */ +#define HAVE_STRFTIME 1 +#endif + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STRINGS_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strsignal' function. */ +/* #undef HAVE_STRSIGNAL */ + +/* Define to 1 if `ifr_addr' is member of `struct ifreq'. */ +/* #undef HAVE_STRUCT_IFREQ_IFR_ADDR */ + +/* Define to 1 if `ifr_broadaddr' is member of `struct ifreq'. */ +/* #undef HAVE_STRUCT_IFREQ_IFR_BROADADDR */ + +/* Define to 1 if `ifr_flags' is member of `struct ifreq'. */ +/* #undef HAVE_STRUCT_IFREQ_IFR_FLAGS */ + +/* Define to 1 if `ifr_hwaddr' is member of `struct ifreq'. */ +/* #undef HAVE_STRUCT_IFREQ_IFR_HWADDR */ + +/* Define to 1 if `ifr_netmask' is member of `struct ifreq'. */ +/* #undef HAVE_STRUCT_IFREQ_IFR_NETMASK */ + +/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */ +/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */ + +/* Define to 1 if `tm_zone' is member of `struct tm'. */ +/* #undef HAVE_STRUCT_TM_TM_ZONE */ + +/* Define to 1 if `struct utimbuf' is declared by . */ +#define HAVE_STRUCT_UTIMBUF 1 + +/* Define to 1 if you have the `sysinfo' function. */ +/* #undef HAVE_SYSINFO */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MMAN_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +/* #undefine HAVE_SYS_RESOURCE_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SELECT_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOCKET_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SOUNDCARD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_SYSTEMINFO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_TIMEB_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_UN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_UTSNAME_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_VLIMIT_H */ + +/* Define to 1 if you have that is POSIX.1 compatible. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS__MBSTATE_T_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERMCAP_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERMIOS_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_TERM_H */ + +/* Define to 1 if you have the tiff library (-ltiff). */ +/* #undef HAVE_TIFF */ + +/* Define to 1 if `struct timeval' is declared by . */ +#define HAVE_TIMEVAL 1 + +/* Define to 1 if `tm_gmtoff' is member of `struct tm'. */ +/* #undef HAVE_TM_GMTOFF */ + +/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use + `HAVE_STRUCT_TM_TM_ZONE' instead. */ +/* #undef HAVE_TM_ZONE */ + +/* Define to 1 if you have the `touchlock' function. */ +/* #undef HAVE_TOUCHLOCK */ + +/* Define to 1 if you don't have `tm_zone' but do have the external array + `tzname'. */ +/* #undef HAVE_TZNAME */ + +/* Define to 1 if you have the `tzset' function. */ +/* #undef HAVE_TZSET */ + +/* Define to 1 if you have the `ualarm' function. */ +/* #undef HAVE_UALARM */ + +/* Define to 1 if you have the header file. */ +#ifdef __MRC__ +#undef HAVE_UNISTD_H +#else /* CodeWarrior */ +#define HAVE_UNISTD_H 1 +#endif + +/* Define to 1 if you have the `utimes' function. */ +/* #undef HAVE_UTIMES */ + +/* Define to 1 if you have the header file. */ +#define HAVE_UTIME_H 1 + +/* Define to 1 if you have the `vfork' function. */ +/* #undef HAVE_VFORK */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 if `fork' works. */ +/* #undef HAVE_WORKING_FORK */ + +/* Define to 1 if `vfork' works. */ +/* #undef HAVE_WORKING_VFORK */ + +/* Define to 1 if you want to use version 11 of X windows. Otherwise, Emacs + expects to use version 10. */ +/* #undef HAVE_X11 */ + +/* Define to 1 if you have the X11R5 or newer version of Xlib. */ +/* #undef HAVE_X11R5 */ + +/* Define to 1 if you have the X11R6 or newer version of Xlib. */ +/* #undef HAVE_X11R6 */ + +/* Define to 1 if you have the X11R6 or newer version of Xt. */ +/* #undef HAVE_X11XTR6 */ + +/* Define to 1 if you have the Xaw3d library (-lXaw3d). */ /* #undef HAVE_XAW3D */ -/* Define if we should use toolkit scroll bars. */ +/* Define to 1 if you're using XFree386. */ +/* #undef HAVE_XFREE386 */ + +/* Define to 1 if XIM is available */ +/* #undef HAVE_XIM */ + +/* Define to 1 if you have the XkbGetKeyboard function. */ +/* #undef HAVE_XKBGETKEYBOARD */ + +/* Define to 1 if you have the Xpm libary (-lXpm). */ +/* #undef HAVE_XPM */ + +/* Define to 1 if you have the `XrmSetDatabase' function. */ +/* #undef HAVE_XRMSETDATABASE */ + +/* Define to 1 if you have the `XScreenNumberOfScreen' function. */ +/* #undef HAVE_XSCREENNUMBEROFSCREEN */ + +/* Define to 1 if you have the `XScreenResourceString' function. */ +/* #undef HAVE_XSCREENRESOURCESTRING */ + +/* Define to 1 if you have the `XSetWMProtocols' function. */ +/* #undef HAVE_XSETWMPROTOCOLS */ + +/* Define to 1 if you have the SM library (-lSM). */ +/* #undef HAVE_X_SM */ + +/* Define to 1 if you want to use the X window system. */ +/* #undef HAVE_X_WINDOWS */ + +/* Define to 1 if you have the `__fpending' function. */ +/* #undef HAVE___FPENDING */ + +/* Define to support using a Hesiod database to find the POP server. */ +/* #undef HESIOD */ + +/* Define to support Kerberos-authenticated POP mail retrieval. */ +/* #undef KERBEROS */ + +/* Define to use Kerberos 5 instead of Kerberos 4. */ +/* #undef KERBEROS5 */ + +/* Define LD_SWITCH_X_SITE to contain any special flags your loader may need + to deal with X Windows. For instance, if you've defined HAVE_X_WINDOWS + above and your X libraries aren't in a place that your loader can find on + its own, you might want to add "-L/..." or something similar. */ +/* #undef LD_SWITCH_X_SITE */ + +/* Define LD_SWITCH_X_SITE_AUX with an -R option in case it's needed (for + Solaris, for example). */ +/* #undef LD_SWITCH_X_SITE_AUX */ + +/* Define to 1 if localtime caches TZ. */ +/* #undef LOCALTIME_CACHE */ + +/* Define to support POP mail retrieval. */ +/* #undef MAIL_USE_POP 1 */ + +/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend + on `HAVE_STRUCT_NLIST_N_UN_N_NAME */ +/* #undef NLIST_NAME_UNION */ + +/* Define to 1 if you don't have struct exception in math.h. */ +/* #undef NO_MATHERR */ + +/* Define to the address where bug reports for this package should be sent. */ +/* #undef PACKAGE_BUGREPORT */ + +/* Define to the full name of this package. */ +/* #undef PACKAGE_NAME */ + +/* Define to the full name and version of this package. */ +/* #undef PACKAGE_STRING */ + +/* Define to the one symbol short name of this package. */ +/* #undef PACKAGE_TARNAME */ + +/* Define to the version of this package. */ +/* #undef PACKAGE_VERSION */ + +/* Define as `void' if your compiler accepts `void *'; otherwise define as + `char'. */ +#define POINTER_TYPE void + +/* Define to 1 if the C compiler supports function prototypes. */ +/* #undef PROTOTYPES */ + +/* Define REL_ALLOC if you want to use the relocating allocator for buffer + space. */ +/* #undef REL_ALLOC */ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +/* #undef STACK_DIRECTION */ + +/* Define to 1 if you have the ANSI C header files. */ +/* #undef STDC_HEADERS */ + +/* Define to 1 on System V Release 4. */ +/* #undef SVR4 */ + +/* Define to 1 if you can safely include both and . */ +#define TIME_WITH_SYS_TIME 1 + +/* Define to 1 if your declares `struct tm'. */ +/* #undef TM_IN_SYS_TIME */ + +/* Define to 1 for Encore UMAX. */ +/* #undef UMAX */ + +/* Define to 1 for Encore UMAX 4.3 that has instead of + . */ +/* #undef UMAX4_3 */ + +/* Define to the unexec source file name. */ +/* #undef UNEXEC_SRC */ + +/* Define to 1 if we should use toolkit scroll bars. */ #ifdef HAVE_CARBON #define USE_TOOLKIT_SCROLL_BARS 1 #endif -/* Define if we should use XIM, if it is available. */ +/* Define to 1 if we should use XIM, if it is available. */ /* #undef USE_XIM */ -/* Define if netdb.h declares h_errno. */ -/* #undef HAVE_H_ERRNO */ +/* Define to 1 if using an X toolkit. */ +/* #undef USE_X_TOOLKIT */ + +/* Define to the type of the 6th arg of XRegisterIMInstantiateCallback, either + XPointer or XPointer*. */ +/* #undef XRegisterIMInstantiateCallback_arg6 */ + +/* Define to 1 if on AIX 3. + System headers sometimes define this. + We just want to avoid a redefinition error message. */ +#ifndef _ALL_SOURCE +/* #undef _ALL_SOURCE */ +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +/* # undef _GNU_SOURCE */ +#endif + +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* #undef _LARGEFILE_SOURCE */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define like PROTOTYPES; this can be used by system headers. */ +/* #undef __PROTOTYPES */ + +/* Define to compiler's equivalent of C99 restrict keyword. Don't define if + equivalent is `__restrict'. */ +/* #undef __restrict */ + +/* Define to compiler's equivalent of C99 restrict keyword in array + declarations. Define as empty for no equivalent. */ +/* #undef __restrict_arr */ + +/* Define to the used machine dependent file. */ +#define config_machfile "m-mac.h" + +/* Define to the used os dependent file. */ +#define config_opsysfile "s-mac.h" + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to a type if does not define. */ +/* #undef mbstate_t */ + +/* Define to `int' if does not define. */ +/* #undef pid_t */ + +/* Define to any substitute for sys_siglist. */ +/* #undef sys_siglist */ + +/* Define as `fork' if `vfork' does not work. */ +/* #undef vfork */ + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +/* #undef volatile */ + /* If we're using any sort of window system, define some consequences. */ #ifdef HAVE_X_WINDOWS @@ -128,25 +926,8 @@ Boston, MA 02111-1307, USA. */ /* Turned on June 1996 supposing nobody will mind it. */ /* #undef AMPERSAND_FULL_NAME */ -/* Things set by --with options in the configure script. */ - -/* Define to support POP mail retrieval. */ -/* #undef MAIL_USE_POP 1 */ - -/* Define to support Kerberos-authenticated POP mail retrieval. */ -/* #undef KERBEROS */ -/* Define to use Kerberos 5 instead of Kerberos 4 */ -/* #undef KERBEROS5 */ -/* Define to support GSS-API in addition to (or instead of) Kerberos */ -/* #undef GSSAPI */ - -/* Define to support using a Hesiod database to find the POP server. */ -/* #undef HESIOD */ - -/* Header for Voxware or PCM sound card driver. */ -/* #undef HAVE_MACHINE_SOUNDCARD_H */ -/* #undef HAVE_SYS_SOUNDCARD_H */ -/* #undef HAVE_SOUNDCARD_H */ +/* We have blockinput.h. */ +#define DO_BLOCK_INPUT /* Define HAVE_SOUND if we have sound support. We know it works and compiles only on the specified platforms. For others, @@ -164,210 +945,16 @@ Boston, MA 02111-1307, USA. */ #endif #endif /* __FreeBSD__ || __NetBSD__ || __linux__ */ -/* Some things figured out by the configure script, grouped as they are in - configure.in. */ -#ifndef _ALL_SOURCE /* suppress warning if this is pre-defined */ -/* #undef _ALL_SOURCE */ -#endif - -/* #undef HAVE_SYS_SELECT_H */ -/* #undef HAVE_SYS_TIMEB_H */ -#define HAVE_SYS_TIME_H 1 - -#ifdef __MRC__ -#undef HAVE_UNISTD_H -#else /* CodeWarrior */ -#define HAVE_UNISTD_H 1 -#endif - -#define HAVE_UTIME_H 1 -/* #undef HAVE_LINUX_VERSION_H */ -/* #undef HAVE_SYS_SYSTEMINFO_H */ -/* #undef HAVE_TERMIOS_H */ -#define HAVE_LIMITS_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STDLIB_H 1 -/* #undef HAVE_TERMCAP_H */ -/* #undef HAVE_TERM_H */ -/* #undef HAVE_STDIO_EXT_H */ -/* #undef STDC_HEADERS */ -/* #undef TIME_WITH_SYS_TIME */ -/* #undef HAVE_VFORK_H */ -#define HAVE_FCNTL_H 1 -/* #undef HAVE_SETITIMER */ -/* #undef HAVE_UALARM */ -/* #undef HAVE_SYS_WAIT_H */ - -/* #undef HAVE_LIBDNET */ -/* #undef HAVE_LIBPTHREADS */ -/* #undef HAVE_LIBRESOLV */ -/* #undef HAVE_LIBXMU */ -/* #undef HAVE_LIBNCURSES */ -/* #undef HAVE_LIBINTL */ -/* #undef HAVE_LIBXP */ - -/* movemail Kerberos support */ -/* libraries */ -/* #undef HAVE_LIBKRB */ -/* #undef HAVE_LIBKRB4 */ -/* #undef HAVE_LIBDES */ -/* #undef HAVE_LIBDES425 */ -/* #undef HAVE_LIBKRB5 */ -/* #undef HAVE_LIBCRYPTO */ -/* #undef HAVE_LIBCOM_ERR */ -/* header files */ -/* #undef HAVE_KRB5_H */ -/* #undef HAVE_DES_H */ -/* #undef HAVE_KRB_H */ -/* #undef HAVE_KERBEROSIV_DES_H */ -/* #undef HAVE_KERBEROSIV_KRB_H */ -/* #undef HAVE_KERBEROS_DES_H */ -/* #undef HAVE_KERBEROS_KRB_H */ -/* #undef HAVE_COM_ERR_H */ - -/* GSS-API libraries and headers */ -/* #undef HAVE_LIBGSSAPI_KRB5 */ -/* #undef HAVE_LIBGSSAPI */ -/* #undef HAVE_GSSAPI_H */ - -/* Mail-file locking */ -/* #undef HAVE_LIBMAIL */ -/* #undef HAVE_MAILLOCK_H */ -/* #undef HAVE_TOUCHLOCK */ - -/* #undef HAVE_ALLOCA_H */ - -/* #undef HAVE_DEV_PTMX */ - -#define HAVE_GETTIMEOFDAY 1 -/* If we don't have gettimeofday, - the test for GETTIMEOFDAY_ONE_ARGUMENT may succeed, - but we should ignore it. */ -#ifdef HAVE_GETTIMEOFDAY -#define GETTIMEOFDAY_ONE_ARGUMENT 1 -#endif -/* #undef HAVE_GETHOSTNAME */ -/* #undef HAVE_GETDOMAINNAME */ -/* #undef HAVE_DUP2 */ -#define HAVE_RENAME 1 -#define HAVE_CLOSEDIR 1 - -/* #undef TM_IN_SYS_TIME */ -/* #undef HAVE_TM_ZONE */ -/* #undef HAVE_TZNAME */ -/* #undef HAVE_TM_GMTOFF */ - -/* #undef const */ - -/* #undef HAVE_LONG_FILE_NAMES */ - -/* #undef CRAY_STACKSEG_END */ - -/* #undef UNEXEC_SRC */ - -/* #undef HAVE_LIBXBSD */ -/* #undef HAVE_XRMSETDATABASE */ -/* #undef HAVE_XSCREENRESOURCESTRING */ -/* #undef HAVE_XSCREENNUMBEROFSCREEN */ -/* #undef HAVE_XSETWMPROTOCOLS */ - -#define HAVE_MKDIR 1 -#define HAVE_RMDIR 1 -/* #undef HAVE_SYSINFO */ -/* #undef HAVE_RANDOM */ -/* #undef HAVE_LRAND48 */ -/* #undef HAVE_BCOPY */ -/* #undef HAVE_BCMP */ -#define HAVE_LOGB 1 -#define HAVE_FREXP 1 -#define HAVE_FMOD 1 - -#ifdef __MRC__ -#undef HAVE_RINT -#else /* CodeWarrior */ -#define HAVE_RINT -#endif - -/* #undef HAVE_CBRT */ -/* #undef HAVE_FTIME */ -/* #undef HAVE_RES_INIT */ /* For -lresolv on Suns. */ -/* #undef HAVE_SETSID */ -/* #undef HAVE_FPATHCONF */ -#define HAVE_SELECT 1 -/* #undef HAVE_MKTIME */ -/* #undef BROKEN_MKTIME */ /* have mktime but it's broken */ -/* #undef HAVE_EUIDACCESS */ -/* #undef HAVE_GETPAGESIZE */ -/* #undef HAVE_TZSET */ -#define HAVE_SETLOCALE 1 -/* #undef HAVE_UTIMES */ -/* #undef HAVE_SETRLIMIT */ -/* #undef HAVE_SETPGID */ -/* #undef HAVE_GETCWD */ -#define HAVE_GETWD 1 -/* #undef HAVE_SHUTDOWN */ -#define HAVE_STRFTIME 1 -/* #undef HAVE_GETADDRINFO */ -/* #undef HAVE___FPENDING */ -/* #undef HAVE_FTELLO */ -/* #undef HAVE_GETLOADAVG */ -/* #undef NLIST_STRUCT */ -/* #undef NLIST_NAME_UNION */ -/* #undef HAVE_MBLEN */ -/* #undef HAVE_MBRLEN */ -/* #undef HAVE_STRSIGNAL */ -/* #undef HAVE_GRANTPT */ -/* #undef HAVE_GETPT */ -/* #undef HAVE_SPEED_T */ /* speed_t typedef in termios.h */ -/* #undef HAVE_STRUCT_TIMEZONE */ - -/* #undef LOCALTIME_CACHE */ -/* #undef HAVE_INET_SOCKETS */ - -/* #undef HAVE_AIX_SMT_EXP */ - -/* #undef vfork */ - -/* Define if you have the ANSI `strerror' function. - Otherwise you must have the variable `char *sys_errlist[]'. */ -#define HAVE_STRERROR 1 - -/* Define if `sys_siglist' is declared by . */ -/* #undef SYS_SIGLIST_DECLARED */ - -/* Define if `struct utimbuf' is declared by . */ -#define HAVE_STRUCT_UTIMBUF 1 - -/* Define if `struct timeval' is declared by . */ -#define HAVE_TIMEVAL 1 - /* If using GNU, then support inline function declarations. */ /* Don't try to switch on inline handling as detected by AC_C_INLINE generally, because even if non-gcc compilers accept `inline', they may reject `extern inline'. */ -#ifdef __GNUC__ +#if defined (__GNUC__) && defined (OPTIMIZE) #define INLINE __inline__ #else #define INLINE #endif -/* Define this if you don't have struct exception in math.h. */ -/* #undef NO_MATHERR */ - -/* Define as `void' if your compiler accepts `void *'; otherwise - define as `char'. */ -#define POINTER_TYPE void -#define PTR POINTER_TYPE * /* For strftime.c. */ - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef _FILE_OFFSET_BITS */ -/* Define to make ftello visible on some hosts (e.g. HP-UX 10.20). */ -/* #undef _LARGEFILE_SOURCE */ -/* Define for large files, on AIX-style hosts. */ -/* #undef _LARGE_FILES */ -/* Define to make ftello visible on some hosts (e.g. glibc 2.1.3). */ -/* #undef _XOPEN_SOURCE */ - #ifdef __MRC__ /* Use low-bits for tags. If ENABLE_CHECKING is turned on together with USE_LSB_TAG, optimization flags should be explicitly turned @@ -375,35 +962,9 @@ Boston, MA 02111-1307, USA. */ #define USE_LSB_TAG #endif -#ifdef __MRC__ -#define EMACS_CONFIGURATION "macos-mpw" -#else /* Assume CodeWarrior */ -#define EMACS_CONFIGURATION "macos-cw" -#endif - -#define EMACS_CONFIG_OPTIONS "" - -/* The configuration script defines opsysfile to be the name of the - s/SYSTEM.h file that describes the system type you are using. The file - is chosen based on the configuration name you give. - - See the file ../etc/MACHINES for a list of systems and the - configuration names to use for them. - - See s/template.h for documentation on writing s/SYSTEM.h files. */ -#undef config_opsysfile -#include "s-mac.h" - -/* The configuration script defines machfile to be the name of the - m/MACHINE.h file that describes the machine you are using. The file is - chosen based on the configuration name you give. - - See the file ../etc/MACHINES for a list of machines and the - configuration names to use for them. - - See m/template.h for documentation on writing m/MACHINE.h files. */ -#undef config_machfile -#include "m-mac.h" +/* Include the os and machine dependent files. */ +#include config_opsysfile +#include config_machfile /* Load in the conversion definitions if this system needs them and the source file being compiled has not @@ -434,39 +995,6 @@ Boston, MA 02111-1307, USA. */ #endif #endif -/* Define LD_SWITCH_SITE to contain any special flags your loader may need. */ -/* #undef LD_SWITCH_SITE */ - -/* Define C_SWITCH_SITE to contain any special flags your compiler needs. */ -/* #undef C_SWITCH_SITE */ - -/* Define LD_SWITCH_X_SITE to contain any special flags your loader - may need to deal with X Windows. For instance, if you've defined - HAVE_X_WINDOWS above and your X libraries aren't in a place that - your loader can find on its own, you might want to add "-L/..." or - something similar. */ -/* #undef LD_SWITCH_X_SITE */ - -/* Define LD_SWITCH_X_SITE_AUX with an -R option - in case it's needed (for Solaris, for example). */ -/* #undef LD_SWITCH_X_SITE_AUX */ - -/* Define C_SWITCH_X_SITE to contain any special flags your compiler - may need to deal with X Windows. For instance, if you've defined - HAVE_X_WINDOWS above and your X include files aren't in a place - that your compiler can find on its own, you might want to add - "-I/..." or something similar. */ -/* #undef C_SWITCH_X_SITE */ - -/* Define STACK_DIRECTION here, but not if m/foo.h did. */ -#ifndef STACK_DIRECTION -/* #undef STACK_DIRECTION */ -#endif - -/* Define the return type of signal handlers if the s-xxx file - did not already do so. */ -#define RETSIGTYPE void - /* SIGTYPE is the macro we actually use. */ #ifndef SIGTYPE #define SIGTYPE RETSIGTYPE @@ -476,7 +1004,13 @@ Boston, MA 02111-1307, USA. */ /* Tell regex.c to use a type compatible with Emacs. */ #define RE_TRANSLATE_TYPE Lisp_Object #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C) -#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0) +#ifdef make_number +/* If make_number is a macro, use it. */ +#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0))) +#else +/* If make_number is a function, avoid it. */ +#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0)) +#endif #endif /* Avoid link-time collision with system mktime if we will use our own. */ @@ -484,6 +1018,8 @@ Boston, MA 02111-1307, USA. */ #define mktime emacs_mktime #endif +#define my_strftime nstrftime /* for strftime.c */ + /* The rest of the code currently tests the CPP symbol BSTRING. Override any claims made by the system-description files. Note that on some SCO version it is possible to have bcopy and not bcmp. */ @@ -492,11 +1028,6 @@ Boston, MA 02111-1307, USA. */ #define BSTRING #endif -/* Define to empty if the keyword `volatile' does not work. Warning: - valid code using `volatile' can become incorrect without. Disable - with care. */ -/* #undef volatile */ - /* Some of the files of Emacs which are intended for use with other programs assume that if you have a config.h file, you must declare the type of getenv. @@ -507,8 +1038,6 @@ Boston, MA 02111-1307, USA. */ extern char *getenv (); #endif -#endif /* EMACS_CONFIG_H */ - /* These default definitions are good for almost all machines. The exceptions override them in m/MACHINE.h. */ @@ -548,16 +1077,30 @@ extern char *getenv (); # endif /* GCC. */ #endif /* __P */ - /* Don't include "string.h" or in non-C code. */ #ifndef NOT_C_CODE #ifdef HAVE_STRING_H #include "string.h" #endif +#ifdef HAVE_STRINGS_H +#include "strings.h" /* May be needed for bcopy & al. */ +#endif #ifdef HAVE_STDLIB_H #include #endif +#ifndef __GNUC__ +# ifdef HAVE_ALLOCA_H +# include +# else /* AIX files deal with #pragma. */ +# ifndef alloca /* predefined by HP cc +Olibcalls */ +char *alloca (); +# endif +# endif /* HAVE_ALLOCA_H */ +#endif /* __GNUC__ */ +#ifndef HAVE_SIZE_T +typedef unsigned size_t; #endif +#endif /* NOT_C_CODE */ /* Define HAVE_X_I18N if we have usable i18n support. */ @@ -576,9 +1119,42 @@ extern char *getenv (); /* Should we enable expensive run-time checking of data types? */ /* #undef ENABLE_CHECKING */ -/* #define GLYPH_DEBUG 1 */ +#if defined __GNUC__ && (__GNUC__ > 2 \ + || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) +#define NO_RETURN __attribute__ ((__noreturn__)) +#else +#define NO_RETURN /* nothing */ +#endif -#define NO_RETURN /* nothing */ +/* These won't be used automatically yet. We also need to know, at least, + that the stack is continuous. */ +#ifdef __GNUC__ +# ifndef GC_SETJMP_WORKS + /* GC_SETJMP_WORKS is nearly always appropriate for GCC -- + see NON_SAVING_SETJMP in the target descriptions. */ + /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k, + SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86. + Fixme: Deal with ns32k, SVR3. */ +# define GC_SETJMP_WORKS 1 +# endif +# ifndef GC_LISP_OBJECT_ALIGNMENT +# define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object)) +# endif +#endif + +#ifndef HAVE_BCOPY +#define bcopy(a,b,s) memcpy (b,a,s) +#endif +#ifndef HAVE_BZERO +#define bzero(a,s) memset (a,0,s) +#endif +#ifndef HAVE_BCMP +#define BCMP memcmp +#endif + +#define SYNC_INPUT + +#endif /* EMACS_CONFIG_H */ /* arch-tag: 2596b649-b569-448e-8880-373d2a9909b7 (do not change this comment) */ From 66b8e07b28ba264dddbe36a036225879c8d8b4a1 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:50:27 +0000 Subject: [PATCH 85/90] (buildobj.lst): New target. (Clean): Delete file buildobj.lst. (Emacs, {DocTarget}DOC): Depend on buildobj.lst. (EmacsSource, MacSource, LispSource, LispSourceDontCompile): Remove variables. (SOME_MACHINE_OBJECTS, shortlisp, SOME_MACHINE_LISP): New variables. ({DocTarget}DOC): Use them. (Make-DocFile-PPCCOptions): Add `-d MAC_OS -d MAC_OS8'. --- mac/makefile.MPW | 188 ++++++++++++++++++----------------------------- 1 file changed, 71 insertions(+), 117 deletions(-) diff --git a/mac/makefile.MPW b/mac/makefile.MPW index e7c7e438973..76217d24101 100644 --- a/mac/makefile.MPW +++ b/mac/makefile.MPW @@ -26,8 +26,6 @@ # Clean - remove all object and executable files to prepare for a fresh build. # Doc - generate the "DOC" file in ~emacs/etc/. # Make-DocFile - build the make-docfile tool, utility for generating "DOC". -# PrepSource - prepare the source files after unstuffing the distribution. -# PrepDist - prepare for distribution: generate diff files; move mac-win.el to {Patches}. Src = ::src: # emacs's src directory Includes = :inc: # mac includes directory (common for MPW and CW) @@ -156,7 +154,7 @@ NonCarbonLibs = # The next two are the dependency rules for building Emacs. -Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects} +Emacs ÄÄ {Makefile} buildobj.lst {DocTarget}DOC {EmacsObjects} {MacObjects} PPCLink ¶ {LinkOptions} ¶ {EmacsObjects} {MacObjects} ¶ @@ -182,6 +180,9 @@ NonCarbon "{Source}"EmacsMPW.maclf.r Ä "{Source}"EmacsMPW.r translate ¶0x0a ¶n < "{Source}"EmacsMPW.r > "{Source}"EmacsMPW.maclf.r +buildobj.lst Ä + Echo "{EmacsObjects} {MacObjects}" | StreamEdit -e '1,$ Replace -c ° /[ ]*:([Â: ]*)¨1.c.x/ ¨1".o"' > buildobj.lst + # Here comes a long boring list of rules saying which files depend on which # other ones. I generated them by hand using the "-p" option of the MrC compiler. # Know about MakeMake, but this is probably more accurate. @@ -984,6 +985,7 @@ Clean Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r Delete -i "{NonCarbonMakeOut}" + Delete -i buildobj.lst DistClean Ä Clean Delete -i "Emacs CW"Å @@ -994,96 +996,21 @@ DistClean # Variables and rules for target "Doc" # #--------------------------------------# -EmacsSource = ¶ - "{Src}abbrev.c" ¶ - "{Src}alloc.c" ¶ - "{Src}atimer.c" ¶ - "{Src}buffer.c" ¶ - "{Src}bytecode.c" ¶ - "{Src}callint.c" ¶ - "{Src}callproc.c" ¶ - "{Src}casefiddle.c" ¶ - "{Src}casetab.c" ¶ - "{Src}category.c" ¶ - "{Src}ccl.c" ¶ - "{Src}charset.c" ¶ - "{Src}cm.c" ¶ - "{Src}cmds.c" ¶ - "{Src}coding.c" ¶ - "{Src}composite.c" ¶ - "{Src}data.c" ¶ - "{Src}dired.c" ¶ - "{Src}dispnew.c" ¶ - "{Src}doc.c" ¶ - "{Src}doprnt.c" ¶ - "{Src}editfns.c" ¶ - "{Src}emacs.c" ¶ - "{Src}eval.c" ¶ - "{Src}fileio.c" ¶ - "{Src}filemode.c" ¶ - "{Src}floatfns.c" ¶ - "{Src}fns.c" ¶ - "{Src}fontset.c" ¶ - "{Src}frame.c" ¶ - "{Src}fringe.c" ¶ - "{Src}getloadavg.c" ¶ - "{Src}image.c" ¶ - "{Src}indent.c" ¶ - "{Src}insdel.c" ¶ - "{Src}intervals.c" ¶ - "{Src}keyboard.c" ¶ - "{Src}keymap.c" ¶ - "{Src}lastfile.c" ¶ - "{Src}lread.c" ¶ - "{Src}macros.c" ¶ - "{Src}marker.c" ¶ - "{Src}minibuf.c" ¶ - "{Src}mktime.c" ¶ - "{Src}print.c" ¶ - "{Src}process.c" ¶ - "{Src}regex.c" ¶ - "{Src}region-cache.c" ¶ - "{Src}scroll.c" ¶ - "{Src}search.c" ¶ - "{Src}strftime.c" ¶ - "{Src}syntax.c" ¶ - "{Src}sysdep.c" ¶ - "{Src}term.c" ¶ - "{Src}termcap.c" ¶ - "{Src}textprop.c" ¶ - "{Src}tparam.c" ¶ - "{Src}undo.c" ¶ - "{Src}window.c" ¶ - "{Src}xdisp.c" ¶ - "{Src}xfaces.c" ¶ - "{Src}xmenu.c" +SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o ¶ + xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o ¶ + mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o ¶ + w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o ¶ + w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o -MacSource = ¶ - "{Src}mac.c" ¶ - "{Src}macfns.c" ¶ - "{Src}macterm.c" - - -LispSource = ¶ - {Lisp}menu-bar.elc ¶ - {Lisp}mouse.elc ¶ - {Lisp}select.elc ¶ - {Lisp}scroll-bar.elc ¶ - {Lisp}vmsproc.elc ¶ - {Lisp}vms-patch.elc ¶ - {Lisp}ls-lisp.elc ¶ - {Lisp}dos-fns.elc ¶ - {Lisp}w32-fns.elc ¶ - {Lisp}dos-w32.elc ¶ - {Lisp}disp-table.elc ¶ - {Lisp}dos-vars.elc ¶ - {Lisp}international:ccl.elc ¶ - {Lisp}international:codepage.elc ¶ +shortlisp = ¶ {Lisp}abbrev.elc ¶ {Lisp}buff-menu.elc ¶ + {Lisp}button.elc ¶ {Lisp}emacs-lisp:byte-run.elc ¶ - {Lisp}cus-start.el ¶ + {Lisp}cus-face.elc ¶ + {Lisp}cus-start.elc ¶ {Lisp}custom.elc ¶ + {Lisp}emacs-lisp:backquote.elc ¶ {Lisp}emacs-lisp:lisp-mode.elc ¶ {Lisp}emacs-lisp:lisp.elc ¶ {Lisp}facemenu.elc ¶ @@ -1099,38 +1026,32 @@ LispSource = {Lisp}loaddefs.el ¶ {Lisp}bindings.elc ¶ {Lisp}emacs-lisp:map-ynp.elc ¶ + {Lisp}env.elc ¶ {Lisp}international:mule.elc ¶ {Lisp}international:mule-conf.el ¶ {Lisp}international:mule-cmds.elc ¶ {Lisp}international:characters.elc ¶ + {Lisp}international:ucs-tables.elc ¶ + {Lisp}international:utf-8.elc ¶ + {Lisp}international:utf-16.elc ¶ + {Lisp}international:latin-1.el ¶ + {Lisp}international:latin-2.el ¶ + {Lisp}international:latin-3.el ¶ + {Lisp}international:latin-4.el ¶ + {Lisp}international:latin-5.el ¶ + {Lisp}international:latin-8.el ¶ + {Lisp}international:latin-9.el ¶ {Lisp}case-table.elc ¶ {Lisp}language:chinese.elc ¶ {Lisp}language:cyrillic.elc ¶ {Lisp}language:indian.elc ¶ + {Lisp}language:devanagari.el ¶ + {Lisp}language:kannada.el ¶ + {Lisp}language:malayalam.el ¶ + {Lisp}language:tamil.el ¶ + {Lisp}language:english.el ¶ {Lisp}language:ethiopic.elc ¶ {Lisp}language:european.elc ¶ - {Lisp}language:tibetan.elc ¶ - {Lisp}language:vietnamese.elc ¶ - {Lisp}paths.el ¶ - {Lisp}register.elc ¶ - {Lisp}replace.elc ¶ - {Lisp}simple.elc ¶ - {Lisp}startup.elc ¶ - {Lisp}subr.elc ¶ - {Lisp}term:tty-colors.elc ¶ - {Lisp}textmodes:fill.elc ¶ - {Lisp}textmodes:page.elc ¶ - {Lisp}textmodes:paragraphs.elc ¶ - {Lisp}textmodes:text-mode.elc ¶ - {Lisp}vc-hooks.elc ¶ - {Lisp}ediff-hook.elc ¶ - {Lisp}widget.elc ¶ - {Lisp}window.elc ¶ - {Lisp}version.el - -LispSourceDontCompile = ¶ - {Lisp}language:devanagari.el ¶ - {Lisp}language:english.el ¶ {Lisp}language:czech.el ¶ {Lisp}language:slovak.el ¶ {Lisp}language:romanian.el ¶ @@ -1140,15 +1061,47 @@ LispSourceDontCompile = {Lisp}language:korean.el ¶ {Lisp}language:lao.el ¶ {Lisp}language:thai.el ¶ - {Lisp}language:misc-lang.el + {Lisp}language:tibetan.elc ¶ + {Lisp}language:vietnamese.elc ¶ + {Lisp}language:misc-lang.el ¶ + {Lisp}language:utf-8-lang.el ¶ + {Lisp}language:georgian.el ¶ + {Lisp}menu-bar.elc ¶ + {Lisp}paths.el ¶ + {Lisp}register.elc ¶ + {Lisp}replace.elc ¶ + {Lisp}simple.elc ¶ + {Lisp}startup.elc ¶ + {Lisp}subr.elc ¶ + {Lisp}term:tty-colors.elc ¶ + {Lisp}font-core.elc ¶ + {Lisp}textmodes:fill.elc ¶ + {Lisp}textmodes:page.elc ¶ + {Lisp}textmodes:paragraphs.elc ¶ + {Lisp}textmodes:text-mode.elc ¶ + {Lisp}emacs-lisp:timer.elc ¶ + {Lisp}vc-hooks.elc ¶ + {Lisp}jka-cmpr-hook.elc ¶ + {Lisp}ediff-hook.elc ¶ + {Lisp}widget.elc ¶ + {Lisp}window.elc ¶ + {Lisp}version.el + +SOME_MACHINE_LISP = {Lisp}mouse.elc ¶ + {Lisp}select.elc {Lisp}scroll-bar.elc ¶ + {Lisp}vmsproc.elc {Lisp}vms-patch.elc ¶ + {Lisp}ls-lisp.elc {Lisp}dos-fns.elc ¶ + {Lisp}w32-fns.elc {Lisp}dos-w32.elc ¶ + {Lisp}disp-table.elc {Lisp}dos-vars.elc ¶ + {Lisp}tooltip.elc ¶ + {Lisp}international:ccl.elc ¶ + {Lisp}international:codepage.elc Doc Ä {DocTarget}DOC -{DocTarget}DOC Ä {Makefile} {EmacsSource} {MacSource} {LispSource} {LispSourceDontCompile} {Make-DocFileDir}Make-DocFile - {Make-DocFileDir}make-docfile {EmacsSource} > {DocTarget}DOC - {Make-DocFileDir}make-docfile {MacSource} >> {DocTarget}DOC - {Make-DocFileDir}make-docfile {LispSource} >> {DocTarget}DOC - {Make-DocFileDir}make-docfile {LispSourceDontCompile} >> {DocTarget}DOC +{DocTarget}DOC Ä {Makefile} {shortlisp} {SOME_MACHINE_LISP} {Make-DocFileDir}Make-DocFile buildobj.lst + {Make-DocFileDir}make-docfile -d {Src} {SOME_MACHINE_OBJECTS} `Catenate buildobj.lst` > {DocTarget}DOC + {Make-DocFileDir}make-docfile -a {DocTarget}DOC -d {Src} {SOME_MACHINE_LISP} {shortlisp} #-----------------------------------------------# @@ -1159,7 +1112,8 @@ Make-DocFile-Includes = -i :inc: Make-DocFile-Sym = Make-DocFile-PPCCOptions = -typecheck relaxed -w off -noMapCR ¶ - {Make-DocFile-Includes} {Make-DocFile-Sym} + -d MAC_OS -d MAC_OS8 ¶ + {Make-DocFile-Includes} {Make-DocFile-Sym} Make-DocFile-Objects = ¶ "{Lib-Src}make-docfile.c.x" ¶ From 5a537870e39b4caf1dccc69c07b499ed9a69f8de Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:51:35 +0000 Subject: [PATCH 86/90] (mac-select-convert-to-string): Try coding systems in mac-script-code-coding-systems if specified one cannot encode string for `com.apple.traditional-mac-plain-text'. --- lisp/term/mac-win.el | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index 8fbbc7cd41a..366668c66f3 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el @@ -1328,6 +1328,13 @@ in `selection-converter-alist', which see." coding 'utf-16))) (setq str (or s (encode-coding-string str 'utf-16-mac))))) ((eq type 'com.apple.traditional-mac-plain-text) + (let ((encodables (find-coding-systems-string str)) + (rest mac-script-code-coding-systems)) + (unless (memq coding encodables) + (while (and rest (not (memq (cdar rest) encodables))) + (setq rest (cdr rest))) + (if rest + (setq coding (cdar rest))))) (setq coding (coding-system-change-eol-conversion coding 'mac)) (setq str (encode-coding-string str coding))) (t From ef7c480ddf4314de7f809a2b7048afe71220f86e Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:53:17 +0000 Subject: [PATCH 87/90] (DIRECTORY_SEP): New macro. (IS_DIRECTORY_SEP): Use it. --- lib-src/make-docfile.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index e502061b759..dafd8f8914c 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -60,8 +60,16 @@ Boston, MA 02111-1307, USA. */ #define READ_BINARY "r" #endif /* not DOS_NT */ +#ifndef DIRECTORY_SEP +#ifdef MAC_OS8 +#define DIRECTORY_SEP ':' +#else /* not MAC_OS8 */ +#define DIRECTORY_SEP '/' +#endif /* not MAC_OS8 */ +#endif + #ifndef IS_DIRECTORY_SEP -#define IS_DIRECTORY_SEP(_c_) ((_c_) == '/') +#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP) #endif int scan_file (); From de0a3247ca629356262b000a0a368bcb32f70bc6 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:54:23 +0000 Subject: [PATCH 88/90] Don't check HAVE_CARBON if HAVE_X11 is set to yes. Check HAVE_CARBON before USE_TOOLKIT_SCROLL_BARS. Define USE_TOOLKIT_SCROLL_BARS by default if HAVE_CARBON is set to yes. --- configure.in | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/configure.in b/configure.in index e384ed68b5d..181b86007df 100644 --- a/configure.in +++ b/configure.in @@ -1694,6 +1694,13 @@ if test "${opsys}" = "hpux9shr"; then esac fi +HAVE_CARBON=no +if test "${HAVE_X11}" != "yes"; then + if test "${with_carbon}" != "no"; then + AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) + fi +fi + ### Compute the unexec source name from the object name. UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" @@ -2155,6 +2162,9 @@ if test "${with_toolkit_scroll_bars}" != "no"; then elif test "${HAVE_GTK}" = "yes"; then AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_CARBON}" = "yes"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + USE_TOOLKIT_SCROLL_BARS=yes fi fi @@ -2308,15 +2318,10 @@ if test "${HAVE_X11}" = "yes"; then fi fi -### Use Mac OS X Carbon API to implement GUI. -HAVE_CARBON=no -if test "${with_carbon}" != "no"; then - AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) -fi - dnl Check for malloc/malloc.h on darwin AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the header file.])) +### Use Mac OS X Carbon API to implement GUI. if test "${HAVE_CARBON}" = "yes"; then AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.]) window_system=mac From 5d6da11edb622f93fd1392836a0d3187bab838ff Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:55:10 +0000 Subject: [PATCH 89/90] Regenerate. --- configure | 302 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 155 insertions(+), 147 deletions(-) diff --git a/configure b/configure index 228bb144ac0..ddb992deb1c 100755 --- a/configure +++ b/configure @@ -8215,6 +8215,154 @@ if test "${opsys}" = "hpux9shr"; then esac fi +HAVE_CARBON=no +if test "${HAVE_X11}" != "yes"; then + if test "${with_carbon}" != "no"; then + if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then + echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 +echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 +if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 +echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 +else + # Is the header compilable? +echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5 +echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_header_compiler=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6 + +# Is the header present? +echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5 +echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6 +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi +rm -f conftest.err conftest.$ac_ext +echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6 + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +## ------------------------------------------ ## +## Report this to the AC_PACKAGE_NAME lists. ## +## ------------------------------------------ ## +_ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 +echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 +if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_Carbon_Carbon_h=$ac_header_preproc +fi +echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 +echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 + +fi +if test $ac_cv_header_Carbon_Carbon_h = yes; then + HAVE_CARBON=yes +fi + + + fi +fi + ### Compute the unexec source name from the object name. UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" @@ -11042,6 +11190,12 @@ _ACEOF elif test "${HAVE_GTK}" = "yes"; then cat >>confdefs.h <<\_ACEOF #define USE_TOOLKIT_SCROLL_BARS 1 +_ACEOF + + USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_CARBON}" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define USE_TOOLKIT_SCROLL_BARS 1 _ACEOF USE_TOOLKIT_SCROLL_BARS=yes @@ -12384,153 +12538,6 @@ _ACEOF fi fi -### Use Mac OS X Carbon API to implement GUI. -HAVE_CARBON=no -if test "${with_carbon}" != "no"; then - if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then - echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 -echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 -if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 -echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5 -echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5 -echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 -echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 -if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_header_Carbon_Carbon_h=$ac_header_preproc -fi -echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5 -echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6 - -fi -if test $ac_cv_header_Carbon_Carbon_h = yes; then - HAVE_CARBON=yes -fi - - -fi - if test "${ac_cv_header_malloc_malloc_h+set}" = set; then echo "$as_me:$LINENO: checking for malloc/malloc.h" >&5 echo $ECHO_N "checking for malloc/malloc.h... $ECHO_C" >&6 @@ -12678,6 +12685,7 @@ fi +### Use Mac OS X Carbon API to implement GUI. if test "${HAVE_CARBON}" = "yes"; then cat >>confdefs.h <<\_ACEOF From 5063dbbf5a6145d5feb0c951d153d376bebb668f Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 13 May 2005 08:55:33 +0000 Subject: [PATCH 90/90] *** empty log message *** --- ChangeLog | 7 +++++++ lib-src/ChangeLog | 5 +++++ lisp/ChangeLog | 6 ++++++ mac/ChangeLog | 45 +++++++++++++++++++++++++++++++++++++++++++-- src/ChangeLog | 45 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 106 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7468324b229..0820d4984da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-05-13 YAMAMOTO Mitsuharu + + * configure.in: Don't check HAVE_CARBON if HAVE_X11 is set to yes. + Check HAVE_CARBON before USE_TOOLKIT_SCROLL_BARS. Define + USE_TOOLKIT_SCROLL_BARS by default if HAVE_CARBON is set to yes. + * configure: Regenerate. + 2005-05-07 J,Ai(Br,At(Bme Marant * make-dist: Remove references to makefile.nt and makefile.def. diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 513bc8f21ba..1370f05a9d6 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,8 @@ +2005-05-13 YAMAMOTO Mitsuharu + + * make-docfile.c (DIRECTORY_SEP): New macro. + (IS_DIRECTORY_SEP): Use it. + 2005-03-18 Jan Dj,Ad(Brv * emacsclient.c: Avoid expansion of getcwd when defined as a macro. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 11fd1eb9359..3a960bc8067 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2005-05-13 YAMAMOTO Mitsuharu + + * term/mac-win.el (mac-select-convert-to-string): Try coding + systems in mac-script-code-coding-systems if specified one cannot + encode string for `com.apple.traditional-mac-plain-text'. + 2005-05-13 Daniel Pfeiffer * progmodes/make-mode.el (makefile-targets-face) diff --git a/mac/ChangeLog b/mac/ChangeLog index 96ba2ee5201..61489e5a88e 100644 --- a/mac/ChangeLog +++ b/mac/ChangeLog @@ -1,6 +1,47 @@ +2005-05-13 YAMAMOTO Mitsuharu + + * makefile.MPW (buildobj.lst): New target. + (Clean): Delete file buildobj.lst. + (Emacs, {DocTarget}DOC): Depend on buildobj.lst. + (EmacsSource, MacSource, LispSource, LispSourceDontCompile): + Remove variables. + (SOME_MACHINE_OBJECTS, shortlisp, SOME_MACHINE_LISP): New + variables. + ({DocTarget}DOC): Use them. + (Make-DocFile-PPCCOptions): Add `-d MAC_OS -d MAC_OS8'. + + * inc/config.h: Sync with src/config.in. + (DO_BLOCK_INPUT, HAVE_DIFFTIME, HAVE_LOCALE_H, HAVE_MEMCMP) + (HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_SETITIMER) + (HAVE_SIZE_T, HAVE_SYS_IOCTL_H, HAVE_SYS_PARAM_H, HAVE_SYS_STAT_H) + (HAVE_SYS_TYPES_H, TIME_WITH_SYS_TIME, SYNC_INPUT): Define them. + [__MRC__] (HAVE_ALLOCA_H): Likewise. + (config_machfile, config_opsysfile, my_strftime): New macros. + (HAVE_PWD_H): Move from s-mac.h. + (HAVE_ALLOCA, C_ALLOCA): Move from m-mac.h. + (PTR): Move to s-mac.h. + + * inc/m-mac.h: (HAVE_ALLOCA, C_ALLOCA): Move to config.h. + + * inc/s-mac.h: Sync with src/s/template.h. Don't include fcntl.h, + time.h, or signal.h. + (index, rindex): New macros. + [__MRC__] (sigmask, __signal_max, NSIG): Adjust signal numbers for + compatibility with predefined ones. + (PTR): Move from s-mac.h. + (HAVE_PWD_H): Move to config.h. + (volatile): Remove macro. + [__MRC__] (strftime): Likewise. + (read_input_waiting, sys_gmtime, sys_localtime, sys_ctime) + (sys_time, sys_signal, atof): Remove declarations. + + * inc/sys/time.h (ITIMER_REAL): New macro. + (struct itimerval): New struct. + (setitimer): New extern. + 2005-05-06 YAMAMOTO Mitsuharu - * inc/config.h [HAVE_CARBON]: Define USE_TOOLKIT_SCROLL_BARS. + * inc/config.h [HAVE_CARBON] (USE_TOOLKIT_SCROLL_BARS): Define. 2005-04-24 YAMAMOTO Mitsuharu @@ -10,7 +51,7 @@ * Emacs.app/Contents/Info.plist: Add NSServices key and data. - * inc/s-mac.h: Define HAVE_PWD_H. + * inc/s-mac.h (HAVE_PWD_H): Define. 2005-04-14 YAMAMOTO Mitsuharu diff --git a/src/ChangeLog b/src/ChangeLog index c20072eb80c..a86f78e5b96 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,48 @@ +2005-05-13 YAMAMOTO Mitsuharu + + * emacs.c (main) [MAC_OS8]: Call init_atimer before mac_term_init. + + * keyboard.c (readable_events) [USE_TOOLKIT_SCROLL_BARS]: Regard + toolkit scroll bar thumb drag events as squeezable and prevent + redisplay from being paused by them. + + * mac.c [!MAC_OSX]: Include keyboard.h and syssignal.h. + [!MAC_OSX] (target_ticks): Remove variable. + [!MAC_OSX] (check_alarm, pause, index): Remove functions. + [!MAC_OSX && __MRC__] (sys_strftime): Likewise. + [!MAC_OSX] (select): If fd 0 is not set in rfds and some input + event occurs before timeout, behave as if the function were + interrupted. + [!MAC_OSX] (sigblock, sigsetmask, alarm): Simulate SIGALRM + handling using Time Manager routines. + [!MAC_OSX] (mac_atimer_task, mac_atimer_qlink, signal_mask): New + variables. + [!MAC_OSX] (mac_atimer_handler, set_mac_atimer, remove_mac_atimer) + (setitimer): New functions. + + * macfns.c, macmenu.c: Don't include signal.h. + + * macterm.c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds): + Rename from get_control_part_bound. All callers changed. + (x_scroll_bar_clear): New function. + (x_clear_frame): Use it. + (XTset_vertical_scroll_bar): Don't call Draw1Control. + (x_scroll_bar_handle_click): Change type of second argument from + int to ControlPartCode. + (check_alarm): Remove declaration. + (XTread_Socket) [!TARGET_API_MAC_CARBON]: Don't call it. + (XTread_Socket): Use ControlPartCode instead of SInt16. + +2005-05-13 Nozomu Ando + + * unexmacosx.c: Include assert.h. + (MACOSX_MALLOC_MULT16): New define. + [MACOSX_MALLOC_MULT16] (ptr_in_unexec_regions): Determine whether + ptr is in unexec regions by checking it is multiple of 16. + (unexec_malloc_header_t): New typedef. + (unexec_malloc, unexec_realloc, unexec_free): Store and use + allocated size information in unexec_malloc_header. + 2005-05-10 Richard M. Stallman * xterm.c (noinclude): Add #undef.