From MAILER-DAEMON Tue Jul 01 18:14:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XTOD-0005X8-WD for mharc-emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:14:18 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XTOA-0005UY-6h for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:14:14 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XTNx-0005G5-Bz for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:14:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XTNq-0005Bq-D5 for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:13:54 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XTMp-0005Xc-95 for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:12:51 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Tue, 01 Jul 2003 18:12:51 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 01 Jul 2003 22:14:16 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5249 emacs/lisp/ChangeLog:1.5250 *** emacs/lisp/ChangeLog:1.5249 Mon Jun 30 06:38:03 2003 --- emacs/lisp/ChangeLog Tue Jul 1 18:12:50 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-01 Luc Teirlinck + + * simple.el (vis-mode): Update documentation string to reflect + earlier changes. + 2003-06-30 Richard M. Stallman * loadup.el (pure-space-overflow): Set it if overflow. From MAILER-DAEMON Tue Jul 01 18:18:00 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XTRS-0000Cg-0w for mharc-emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:17:38 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XTR6-0008D2-P6 for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:17:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XTQv-00087i-SC for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:17:06 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XTQS-0007lX-9J for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:16:36 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XTPR-0005d1-DQ for emacs-diffs@gnu.org; Tue, 01 Jul 2003 18:15:33 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Tue, 01 Jul 2003 18:15:33 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/simple.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 01 Jul 2003 22:17:37 -0000 Index: emacs/lisp/simple.el diff -c emacs/lisp/simple.el:1.612 emacs/lisp/simple.el:1.613 *** emacs/lisp/simple.el:1.612 Sun Jun 22 12:49:31 2003 --- emacs/lisp/simple.el Tue Jul 1 18:15:33 2003 *************** *** 4489,4496 **** Enabling vis-mode sets `buffer-invisibility-spec' to nil, after saving the old value in the variable ! `saved-buffer-invisibility-spec', making all invisible text in ! the buffer visible. Disabling vis-mode restores the saved value of `buffer-invisibility-spec'." --- 4489,4496 ---- Enabling vis-mode sets `buffer-invisibility-spec' to nil, after saving the old value in the variable ! `vis-mode-saved-buffer-invisibility-spec', making all invisible ! text in the buffer visible. Disabling vis-mode restores the saved value of `buffer-invisibility-spec'." From MAILER-DAEMON Tue Jul 01 20:46:32 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XVlQ-0004zr-3G for mharc-emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:46:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XVlE-0004nC-Ic for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:46:12 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XVke-0003zI-Rp for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:45:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XViZ-0001Vg-TV for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:43:27 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XVhZ-00012p-2y for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:42:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Tue, 01 Jul 2003 20:42:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Wed, 02 Jul 2003 00:46:21 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5250 emacs/lisp/ChangeLog:1.5251 *** emacs/lisp/ChangeLog:1.5250 Tue Jul 1 18:12:50 2003 --- emacs/lisp/ChangeLog Tue Jul 1 20:42:24 2003 *************** *** 1,5 **** --- 1,12 ---- 2003-07-01 Luc Teirlinck + * info.el (Info-fontify-menu-headers): Only fontify `* Menu:' at + the beginning of a line. + (Info-extract-menu-node-name): Correctly initialize while loop. + (Info-scroll-prefer-subnodes): Change default to nil. + + 2003-07-01 Luc Teirlinck + * simple.el (vis-mode): Update documentation string to reflect earlier changes. From MAILER-DAEMON Tue Jul 01 20:56:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XVu3-0008CE-84 for mharc-emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:55:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XVtl-0007W0-MV for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:55:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XVte-0007HU-C9 for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:54:55 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XVtZ-000757-SW for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:54:49 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XVsZ-0001IW-4d for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:53:47 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Tue, 01 Jul 2003 20:53:47 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Wed, 02 Jul 2003 00:55:17 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5251 emacs/lisp/ChangeLog:1.5252 *** emacs/lisp/ChangeLog:1.5251 Tue Jul 1 20:42:24 2003 --- emacs/lisp/ChangeLog Tue Jul 1 20:53:46 2003 *************** *** 5,12 **** (Info-extract-menu-node-name): Correctly initialize while loop. (Info-scroll-prefer-subnodes): Change default to nil. - 2003-07-01 Luc Teirlinck - * simple.el (vis-mode): Update documentation string to reflect earlier changes. --- 5,10 ---- From MAILER-DAEMON Tue Jul 01 21:01:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XVyt-0004IN-Ks for mharc-emacs-diffs@gnu.org; Tue, 01 Jul 2003 21:00:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XVyM-0003ej-6K for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:59:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XVxR-0003II-5u for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:58:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XVx3-0003GZ-7r for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:58:25 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XVw0-0001OR-B8 for emacs-diffs@gnu.org; Tue, 01 Jul 2003 20:57:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Tue, 01 Jul 2003 20:57:20 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Wed, 02 Jul 2003 01:00:17 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.358 emacs/lisp/info.el:1.359 *** emacs/lisp/info.el:1.358 Thu Jun 19 16:53:06 2003 --- emacs/lisp/info.el Tue Jul 1 20:57:20 2003 *************** *** 139,145 **** :type '(repeat directory) :group 'info) ! (defcustom Info-scroll-prefer-subnodes t "*If non-nil, \\\\[Info-scroll-up] in a menu visits subnodes. If this is non-nil, and you scroll far enough in a node that its menu appears on the screen, the next \\\\[Info-scroll-up] --- 139,145 ---- :type '(repeat directory) :group 'info) ! (defcustom Info-scroll-prefer-subnodes nil "*If non-nil, \\\\[Info-scroll-up] in a menu visits subnodes. If this is non-nil, and you scroll far enough in a node that its menu appears on the screen, the next \\\\[Info-scroll-up] *************** *** 1547,1555 **** (skip-chars-forward " \t\n") (let ((beg (point)) str) ! (while (not (looking-at ":*[,.;() \t\n]")) ! (skip-chars-forward "^:") ! (forward-char 1)) (setq str (if (looking-at ":") (buffer-substring-no-properties beg (1- (point))) --- 1547,1556 ---- (skip-chars-forward " \t\n") (let ((beg (point)) str) ! (while (progn ! (skip-chars-forward "^:") ! (forward-char 1) ! (not (looking-at ":*[,.;() \t\n]")))) (setq str (if (looking-at ":") (buffer-substring-no-properties beg (1- (point))) *************** *** 2747,2753 **** "Add the face `info-menu-header' to any header before a menu entry." (save-excursion (goto-char (point-min)) ! (when (re-search-forward "\\* Menu:" nil t) (put-text-property (match-beginning 0) (match-end 0) 'font-lock-face 'info-menu-header) (while (re-search-forward "\n\n\\([^*\n ].*\\)\n\n?[*]" nil t) --- 2748,2754 ---- "Add the face `info-menu-header' to any header before a menu entry." (save-excursion (goto-char (point-min)) ! (when (re-search-forward "^\\* Menu:" nil t) (put-text-property (match-beginning 0) (match-end 0) 'font-lock-face 'info-menu-header) (while (re-search-forward "\n\n\\([^*\n ].*\\)\n\n?[*]" nil t) From MAILER-DAEMON Wed Jul 02 00:33:00 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XZI0-00040H-OM for mharc-emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:32:16 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XZEH-00033q-ME for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:28:25 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XZ8I-0000ub-J6 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:22:15 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XYxM-0006by-21 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:10:56 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XYwK-0006Pd-W9 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:09:52 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Wed, 02 Jul 2003 00:09:53 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Wed, 02 Jul 2003 04:32:15 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.826 emacs/etc/NEWS:1.827 *** emacs/etc/NEWS:1.826 Mon Jun 23 14:28:55 2003 --- emacs/etc/NEWS Wed Jul 2 00:09:52 2003 *************** *** 89,94 **** --- 89,106 ---- * Changes in Emacs 21.4 + ** New minor mode `vis-mode' toggles invisibility in the current buffer. + When enabled, it makes all invisible text visible. When disabled, it + restores the previous value of `buffer-invisibility-spec'. + + ** New command `kill-whole-line' kills an entire line at once. + By default, it is bound to C-S-. + + +++ + ** Info now hides node names in menus and cross references by default. + If you prefer the old behavior, you can set the new user option + `Info-hide-note-references' to nil. + ** Support for the SQLite interpreter has been added to sql.el by calling 'sql-sqlite'. From MAILER-DAEMON Wed Jul 02 00:39:21 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XZMY-0005yi-Tr for mharc-emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:36:58 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XZLQ-0005Yx-Nx for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:35:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XZKS-0005Cy-FF for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:34:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XZFq-0003Nf-Ty for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:30:03 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XZEp-00018Q-N4 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 00:28:59 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Wed, 02 Jul 2003 00:28:59 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Wed, 02 Jul 2003 04:36:57 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.827 emacs/etc/NEWS:1.828 *** emacs/etc/NEWS:1.827 Wed Jul 2 00:09:52 2003 --- emacs/etc/NEWS Wed Jul 2 00:28:58 2003 *************** *** 484,496 **** ** The new option `Info-scroll-prefer-subnodes' causes Info to behave like the stand-alone Info reader (from the GNU Texinfo package) as far as motion between nodes and their subnodes is concerned. If it is t ! (the default), Emacs behaves as before when you type SPC in a menu: it ! visits the subnode pointed to by the first menu entry. If this option ! is nil, SPC scrolls to the end of the current node, and only then goes ! to the first menu item, like the stand-alone reader does. ! This change was already in Emacs 21.1, but wasn't advertised in the ! NEWS. --- ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. --- 484,498 ---- ** The new option `Info-scroll-prefer-subnodes' causes Info to behave like the stand-alone Info reader (from the GNU Texinfo package) as far as motion between nodes and their subnodes is concerned. If it is t ! Emacs behaves as before when you type SPC in a menu: it visits the ! subnode pointed to by the first menu entry. If this option is nil, ! SPC scrolls to the end of the current node, and only then goes to the ! first menu item, like the stand-alone reader does. ! This option was already introduced in Emacs 21.1, but wasn't ! advertised in the NEWS. ! ! The default is now nil. (Prior to Emacs 21.4, it was t.) --- ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. From MAILER-DAEMON Wed Jul 02 21:57:43 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XtLr-0005WP-0U for mharc-emacs-diffs@gnu.org; Wed, 02 Jul 2003 21:57:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XtLf-0005Ny-Lm for emacs-diffs@gnu.org; Wed, 02 Jul 2003 21:57:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XtLW-0005DL-I3 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 21:57:15 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XtJn-0004MX-4L for emacs-diffs@gnu.org; Wed, 02 Jul 2003 21:55:27 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XtIj-0006sX-V5 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 21:54:21 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Wed, 02 Jul 2003 21:54:21 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 01:57:33 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.186 emacs/man/ChangeLog:1.187 *** emacs/man/ChangeLog:1.186 Tue Jun 17 10:05:19 2003 --- emacs/man/ChangeLog Wed Jul 2 21:54:21 2003 *************** *** 1,3 **** --- 1,18 ---- + 2003-07-02 Luc Teirlinck + + * info.texi (Help): Mention existence of Emacs and stand-alone + Info at the very beginning of the tutorial. + (Help-Inv): New node. + (Help-]): New node. + (Help-M): Systematically point out the differences between default + Emacs and stand-alone versions. Delete second menu. + (Help-Xref): Systematically point out the differences between + default Emacs and stand-alone versions. + (Help-Int): Change `l' example. + (Expert Info): Fix typos. + (Emacs Info Variables): Mention `Info-hide-note-references' and + new default for `Info-scroll-prefer-subnodes'. + 2003-06-17 Kai Gro,A_(Bjohann Version 2.0.35 of Tramp released. *************** *** 17,23 **** * programs.texi (Expressions): Delete C-M-DEL. * misc.texi (Shell Options): Clarify comint-scroll-show-maximum-output. ! comint-move-point-for-output renamed from comint-scroll-to-bottom-on-output. * custom.texi (Init Rebinding): Replace previous change with xref. --- 32,38 ---- * programs.texi (Expressions): Delete C-M-DEL. * misc.texi (Shell Options): Clarify comint-scroll-show-maximum-output. ! comint-move-point-for-output renamed from comint-scroll-to-bottom-on-output. * custom.texi (Init Rebinding): Replace previous change with xref. From MAILER-DAEMON Wed Jul 02 22:04:05 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19XtS1-0002Pw-Fj for mharc-emacs-diffs@gnu.org; Wed, 02 Jul 2003 22:03:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19XtRh-0001g4-8E for emacs-diffs@gnu.org; Wed, 02 Jul 2003 22:03:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19XtQR-0008QL-38 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 22:02:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19XtOs-0007x2-R4 for emacs-diffs@gnu.org; Wed, 02 Jul 2003 22:00:42 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19XtNs-00070V-4s for emacs-diffs@gnu.org; Wed, 02 Jul 2003 21:59:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Wed, 02 Jul 2003 21:59:40 -0400 Subject: [Emacs-diffs] Changes to emacs/man/info.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 02:03:56 -0000 Index: emacs/man/info.texi diff -c emacs/man/info.texi:1.27 emacs/man/info.texi:1.28 *** emacs/man/info.texi:1.27 Tue Nov 5 19:45:03 2002 --- emacs/man/info.texi Wed Jul 2 21:59:39 2003 *************** *** 6,12 **** @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.27 2002/11/06 00:45:03 karl Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU --- 6,12 ---- @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.28 2003/07/03 01:59:39 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU *************** *** 51,57 **** @end titlepage @ifnottex ! @node Top @top Info: An Introduction The GNU Project distributes most of its on-line manuals in the --- 51,57 ---- @end titlepage @ifnottex ! @node Top, Getting Started, (dir), (dir) @top Info: An Introduction The GNU Project distributes most of its on-line manuals in the *************** *** 125,137 **** * Help:: How to use Info * Help-P:: Returning to the Previous node * Help-^L:: The Space, DEL, B and ^L commands. * Help-M:: Menus * Help-Xref:: Following cross-references * Help-Int:: Some intermediate Info commands * Help-Q:: Quitting Info @end menu ! @node Help-Small-Screen @section Starting Info on a Small Screen @ifnotinfo --- 125,138 ---- * Help:: How to use Info * Help-P:: Returning to the Previous node * Help-^L:: The Space, DEL, B and ^L commands. + * Help-Inv:: Invisible text in Emacs Info. * Help-M:: Menus * Help-Xref:: Following cross-references * Help-Int:: Some intermediate Info commands * Help-Q:: Quitting Info @end menu ! @node Help-Small-Screen, Help, Getting Started, Getting Started @section Starting Info on a Small Screen @ifnotinfo *************** *** 213,218 **** --- 214,223 ---- You are talking to the program Info, for reading documentation. + There are two ways to use Info: from within Emacs or as a + stand-alone reader that you can invoke from a shell using the command + @command{info}. + @cindex node, in Info documents Right now you are looking at one @dfn{Node} of Information. A node contains text describing a specific topic at a specific *************** *** 283,291 **** link, to get to the node @samp{Help-^L} and learn more. @end format ! @node Help-^L, Help-M, Help-P, Getting Started @comment node-name, next, previous, up ! @section The Space, DEL, B and ^L commands. This node's mode line tells you that you are now at node @samp{Help-^L}, and the header line tells you that @kbd{p} would get --- 288,296 ---- link, to get to the node @samp{Help-^L} and learn more. @end format ! @node Help-^L, Help-Inv, Help-P, Getting Started @comment node-name, next, previous, up ! @section The Space, DEL, B and ^L commands This node's mode line tells you that you are now at node @samp{Help-^L}, and the header line tells you that @kbd{p} would get *************** *** 409,438 **** @format >> Now type @kbd{n}, or click the middle mouse button on the @samp{Next} link, ! to see the description of the @kbd{m} command. @end format ! @node Help-M, Help-Xref, Help-^L, Getting Started @comment node-name, next, previous, up @section Menus and the @kbd{m} command @cindex menus in an Info document @cindex Info menus ! With only the @kbd{n} (next) and @kbd{p} (previous) commands for ! moving between nodes, nodes are restricted to a linear sequence. ! Menus allow a branching structure. A menu is a list of other nodes ! you can move to. It is actually just part of the text of the node ! formatted specially so that Info can interpret it. The beginning of a ! menu is always identified by a line which starts with @samp{* Menu:}. ! A node contains a menu if and only if it has a line in it which starts ! that way. The only menu you can use at any moment is the one in the ! node you are in. To use a menu in any other node, you must move to ! that node first. After the start of the menu, each line that starts with a @samp{*} ! identifies one subtopic. The line usually contains a brief name ! for the subtopic (followed by a @samp{:}), the name of the node that talks ! about that subtopic, and optionally some further description of the subtopic. Lines in the menu that do not start with a @samp{*} have no special meaning---they are only for the human reader's benefit and do not define additional subtopics. Here is an example: --- 414,516 ---- @format >> Now type @kbd{n}, or click the middle mouse button on the @samp{Next} link, ! to visit the next node. @end format ! @node Help-Inv, Help-M, Help-^L, Getting Started ! @comment node-name, next, previous, up ! @section Invisible text in Emacs Info ! ! Before discussing menus, we need to make some remarks that are only ! relevant to users reading Info using Emacs. Users of the stand-alone ! version can skip this node by typing @kbd{]} now. ! ! @cindex invisible text in Emacs ! In Emacs, certain text that appears in the stand-alone version is ! normally hidden, technically because it has the @samp{invisibility} ! property. Invisible text is really a part of the text. It becomes ! visible (by default) after killing and yanking, it appears in printed ! output, it gets saved to file just like any other text, and so on. ! Thus it is useful to know it is there. ! ! @findex vis-mode ! You can make invisible text visible by using the command @kbd{M-x ! vis-mode}. @code{vis-mode} is a minor mode, so using it a second time ! will make the text invisible again. Use this command and watch its ! effect on the ``menu'' below and the top line of this node. ! ! If you prefer to @emph{always} see the invisible text, you can set ! @code{Info-hide-note-references} to @code{nil}. Enabling ! @code{vis-mode} permanently is not a real alternative, because Emacs ! Info also uses (although less extensively) another text property that ! can change the text being displayed, the @samp{display} property. ! Only the invisibility property is affected by @code{vis-mode}. When, ! in this tutorial, we refer to the @samp{Emacs} behavior, we mean the ! @emph{default} Emacs behavior. ! ! Now type @kbd{]}, to learn about the @kbd{]} and @kbd{[} commands. ! ! @menu ! * ]: Help-]. Node telling about ]. ! * stuff: Help-]. Same node. ! * Help-]:: Yet again, same node. ! @end menu ! ! @node Help-], , , Help-Inv ! @subsection The @kbd{]} and @kbd{[} commands. ! ! If you type @kbd{n} now, you get an error message saying that this ! node has no next node. Similarly, if you type @kbd{p}, the error ! message tells you that there is no previous node. (The exact message ! depends on the Info reader you use.) This is because @kbd{n} and ! @kbd{p} carry you to the next and previous node @emph{at the same ! level}. The present node is contained in a menu (see next) of the ! node you came from, and hence is considered to be at a lower level. ! It is the only node in the previous node's menu (even though it was ! listed three times). Hence it has no next or previous node that ! @kbd{n} or @kbd{p} could move to. ! ! If you systematically move through a manual by typing @kbd{n}, you run ! the risk of skipping many nodes. You do not run this risk if you ! systematically use @kbd{@key{SPC}}, because, when you scroll to the ! bottom of a node and type another @kbd{@key{SPC}}, then this carries ! you to the following node in the manual @emph{regardless of level}. ! If you immediately want to go to that node, without having to scroll ! to the bottom of the screen first, you can type @kbd{]}. ! ! Similarly, @kbd{@key{BACKSPACE}} carries you to the preceding node ! regardless of level, after you scrolled to the beginning of the ! present node. If you want to go to the preceding node immediately, ! you can type @kbd{[}. ! ! For instance, typing this sequence will come back here in three steps: ! @kbd{[ n [}. To do the same backward, type @kbd{] p ]}. ! ! Now type @kbd{]} to go to the next node and learn about menus. ! ! @node Help-M, Help-Xref, Help-Inv, Getting Started @comment node-name, next, previous, up @section Menus and the @kbd{m} command @cindex menus in an Info document @cindex Info menus ! With only the @kbd{n} (next), @kbd{p} (previous), @kbd{@key{SPC}}, ! @kbd{@key{BACKSPACE}}, @kbd{]} and @kbd{[} commands for moving between ! nodes, nodes are restricted to a linear sequence. Menus allow a ! branching structure. A menu is a list of other nodes you can move to. ! It is actually just part of the text of the node formatted specially ! so that Info can interpret it. The beginning of a menu is always ! identified by a line which starts with @w{@samp{* Menu:}}. A node ! contains a menu if and only if it has a line in it which starts that ! way. The only menu you can use at any moment is the one in the node ! you are in. To use a menu in any other node, you must move to that ! node first. After the start of the menu, each line that starts with a @samp{*} ! identifies one subtopic. The line usually contains a brief name for ! the subtopic (followed by a @samp{:}, normally hidden in Emacs), the ! name of the node that talks about that subtopic (again, normally ! hidden in Emacs), and optionally some further description of the subtopic. Lines in the menu that do not start with a @samp{*} have no special meaning---they are only for the human reader's benefit and do not define additional subtopics. Here is an example: *************** *** 444,450 **** The subtopic name is Foo, and the node describing it is @samp{Node about FOO}. The rest of the line is just for the reader's Information. [[ But this line is not a real menu item, simply because ! there is no line above it which starts with @samp{* Menu:}.]] When you use a menu to go to another node (in a way that will be described soon), what you specify is the subtopic name, the first --- 522,532 ---- The subtopic name is Foo, and the node describing it is @samp{Node about FOO}. The rest of the line is just for the reader's Information. [[ But this line is not a real menu item, simply because ! there is no line above it which starts with @w{@samp{* Menu:}}. Also, ! in a real menu item, the @samp{*} would appear at the very start of ! the line. This is why the ``normally hidden'' text in Emacs, namely ! @samp{: Node about FOO.}, is actually visible in this example, even ! when @code{vis-mode} is off.]] When you use a menu to go to another node (in a way that will be described soon), what you specify is the subtopic name, the first *************** *** 463,469 **** @noindent This means that the subtopic name and node name are the same; they are ! both @samp{Foo}. @format >> Now use @key{SPC} to find the menu in this node, then come back to --- 545,551 ---- @noindent This means that the subtopic name and node name are the same; they are ! both @samp{Foo}. (The @samp{::} is normally hidden in Emacs.) @format >> Now use @key{SPC} to find the menu in this node, then come back to *************** *** 488,503 **** the @dfn{name of the subtopic}. Once you have typed @kbd{m}, Info tries to read the subtopic name. ! Now look for the line containing many dashes near the bottom of the ! screen. There is one more line beneath that one, but usually it is ! blank. When it is blank, Info is ready for a command, such as @kbd{n} ! or @kbd{b} or @key{SPC} or @kbd{m}. If that line contains text ending ! in a colon, it means Info is reading more input for the last command. ! You can't type an Info command then, because Info is trying to read ! input, not commands. You must either give the input and finish the ! command you started, or type @kbd{Control-g} to cancel the command. ! When you have done one of those things, the input entry line becomes ! blank again. Then you can type Info commands again. @findex Info-menu The command to go to a subnode via a menu is @kbd{m}. After you type --- 570,587 ---- the @dfn{name of the subtopic}. Once you have typed @kbd{m}, Info tries to read the subtopic name. ! Now, in the stand-alone Info, look for the line containing many ! dashes near the bottom of the screen. (This is the stand-alone ! equivalent for the mode line in Emacs.) There is one more line ! beneath that one, but usually it is blank. (In Emacs, this is the ! echo area.) When it is blank, Info is ready for a command, such as ! @kbd{n} or @kbd{b} or @key{SPC} or @kbd{m}. If that line contains ! text ending in a colon, it means Info is reading more input for the ! last command. You can't type an Info command then, because Info is ! trying to read input, not commands. You must either give the input ! and finish the command you started, or type @kbd{Control-g} to cancel ! the command. When you have done one of those things, the input entry ! line becomes blank again. Then you can type Info commands again. @findex Info-menu The command to go to a subnode via a menu is @kbd{m}. After you type *************** *** 535,540 **** --- 619,626 ---- * Help-FOO:: And yet another! @end menu + (Turn @code{vis-mode} on if you are using Emacs.) + @format >> Now type just an @kbd{m} and see what happens: @end format *************** *** 610,623 **** end of the node's text @kbd{Mouse-2} moves to the next node, or up if there's no next node. - Here is another way to get to Help-FOO, a menu. You can ignore this - if you want, or else try it by typing @key{TAB} and then @key{RET}, or - clicking @kbd{Mouse-2} on it (but then please come back to here). - - @menu - * Help-FOO:: - @end menu - @format >> Type @kbd{n} to see more commands. @end format --- 696,701 ---- *************** *** 656,662 **** In Info documentation, you will see many @dfn{cross references}. Cross references look like this: @xref{Help-Cross, Cross}. That text is a real, live cross reference, whose name is @samp{Cross} and which ! points to the node named @samp{Help-Cross}. @kindex f @r{(Info mode)} @findex Info-follow-reference --- 734,741 ---- In Info documentation, you will see many @dfn{cross references}. Cross references look like this: @xref{Help-Cross, Cross}. That text is a real, live cross reference, whose name is @samp{Cross} and which ! points to the node named @samp{Help-Cross}. (The node name is hidden ! in Emacs. Do @kbd{M-x vis-mode} to show or hide it.) @kindex f @r{(Info mode)} @findex Info-follow-reference *************** *** 699,704 **** --- 778,824 ---- The @key{TAB} and @kbd{M-@key{TAB}} key, which move between menu items in a menu, also move between cross references outside of menus. + Sometimes a cross reference (or a node) can lead to another file (in + other words another ``manual''), or, on occasion, even a file on a + remote machine (although Info files distributed with Emacs or the + stand-alone Info avoid using remote links). Such a cross reference + looks like this: @xref{Overview,,,texinfo}. (After following this + link, type @kbd{l} to get back to this node.) Here the name + @samp{texinfo} between parentheses (shown in the stand-alone version) + refers to the file name. This file name appears in cross references + and node names if it differs from the current file. In Emacs, the + file name is hidden (along with other text). (Use @kbd{M-x vis-mode} + to show or hide it.) + + The remainder of this node applies only to the Emacs version. If + you use the stand-alone version, you can type @kbd{n} immediately. + + To some users, switching manuals is a much bigger switch than + switching sections. These users like to know that they are going to + be switching to another manual (and which one) before actually doing + so, especially given that, if one does not notice, Info commands like + @kbd{t} (see the next node) can have confusing results. + + If you put your mouse over the cross reference and if the cross + reference leads to a different manual, then the information appearing + in a separate box (tool tip) or in the echo area, will mention the + file the cross reference will carry you to (between parentheses). + This is also true for menu subtopic names. If you have a mouse, just + leave it over the @samp{Overview} cross reference above and watch what + happens. + + If you always like to have that information available without having + to move your mouse over the cross reference, set + @code{Info-hide-note-references} to a value other than t (@pxref{Emacs + Info Variables}). You might also want to do that if you have a lot of + cross references to files on remote machines and have non-permanent or + slow access, since otherwise you might not be able to distinguish + between local and remote links. + + @format + >> Now type @kbd{n} to learn more commands. + @end format + @node Help-Int, Help-Q, Help-Xref, Getting Started @comment node-name, next, previous, up @section Some intermediate Info commands *************** *** 728,750 **** @kbd{l} command revisits nodes in the history list; each successive @kbd{l} command moves one step back through the history. - If you have been following directions, an @kbd{l} command now will get - you back to @samp{Help-M}. Another @kbd{l} command would undo the - @kbd{u} and get you back to @samp{Help-FOO}. Another @kbd{l} would undo - the @kbd{m} and get you back to @samp{Help-M}. - In Emacs, @kbd{l} runs the command @code{Info-last}. @format ! >> Try typing three @kbd{l}'s, pausing in between to see what each ! @kbd{l} does. Then follow directions again and you will end up ! back here. @end format Note the difference between @kbd{l} and @kbd{p}: @kbd{l} moves to where @emph{you} last were, whereas @kbd{p} always moves to the node which the header says is the @samp{Previous} node (from this node, the ! @samp{Prev} link leads to @samp{Help-M}). @kindex d @r{(Info mode)} @findex Info-directory --- 848,864 ---- @kbd{l} command revisits nodes in the history list; each successive @kbd{l} command moves one step back through the history. In Emacs, @kbd{l} runs the command @code{Info-last}. @format ! >> Try typing @kbd{p p n} and then three @kbd{l}'s, pausing in between ! to see what each @kbd{l} does. You should wind up right back here. @end format Note the difference between @kbd{l} and @kbd{p}: @kbd{l} moves to where @emph{you} last were, whereas @kbd{p} always moves to the node which the header says is the @samp{Previous} node (from this node, the ! @samp{Prev} link leads to @samp{Help-Xref}). @kindex d @r{(Info mode)} @findex Info-directory *************** *** 796,805 **** better, since you can use it to make a printed manual or produce other formats, such as HTML and DocBook, as well as for generating Info files.) @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU ! Documentation Format}.) @menu ! * Advanced:: Advanced Info commands: g, s, e, and 1 - 5. * Info Search:: How to search Info documents for specific subjects. * Add:: Describes how to add new nodes to the hierarchy. Also tells what nodes look like. --- 910,919 ---- better, since you can use it to make a printed manual or produce other formats, such as HTML and DocBook, as well as for generating Info files.) @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU ! Documentation Format}. @menu ! * Advanced:: Advanced Info commands: g, e, and 1 - 9. * Info Search:: How to search Info documents for specific subjects. * Add:: Describes how to add new nodes to the hierarchy. Also tells what nodes look like. *************** *** 1049,1063 **** reads from the terminal. @cindex menu and menu entry format ! A menu begins with a line starting with @samp{* Menu:}. The rest of the ! line is a comment. After the starting line, every line that begins ! with a @samp{* } lists a single topic. The name of the topic--what ! the user must type at the @kbd{m}'s command prompt to select this ! topic---comes right after the star and space, and is followed by a ! colon, spaces and tabs, and the name of the node which discusses that ! topic. The node name, like node names following @samp{Next}, @samp{Previous} ! and @samp{Up}, may be terminated with a tab, comma, or newline; it may also ! be terminated with a period. If the node name and topic name are the same, then rather than giving the name twice, the abbreviation @samp{* @var{name}::} may be --- 1163,1177 ---- reads from the terminal. @cindex menu and menu entry format ! A menu begins with a line starting with @w{@samp{* Menu:}}. The ! rest of the line is a comment. After the starting line, every line ! that begins with a @samp{* } lists a single topic. The name of the ! topic--what the user must type at the @kbd{m}'s command prompt to ! select this topic---comes right after the star and space, and is ! followed by a colon, spaces and tabs, and the name of the node which ! discusses that topic. The node name, like node names following ! @samp{Next}, @samp{Previous} and @samp{Up}, may be terminated with a ! tab, comma, or newline; it may also be terminated with a period. If the node name and topic name are the same, then rather than giving the name twice, the abbreviation @samp{* @var{name}::} may be *************** *** 1278,1283 **** --- 1392,1405 ---- not scroll with the rest of the buffer, making these links always visible. + @item Info-hide-note-references + As explained in earlier nodes, the Emacs version of Info normally + hides some text in menus and cross-references. You can completely + disable this feature, by setting this option to @code{nil}. Setting + it to a value that is neither @code{nil} nor @code{t} produces an + intermediate behavior, hiding a limited amount of text, but showing + all text that could potentially be useful. + @item Info-scroll-prefer-subnodes If set to a non-@code{nil} value, @key{SPC} and @key{BACKSPACE} (or @key{DEL}) keys in a menu visit subnodes of the current node before *************** *** 1286,1292 **** subnode indicated by the following menu item. Setting this option to @code{nil} results in behavior similar to the stand-alone Info reader program, which visits the first subnode from the menu only when you ! hit the end of the current node. The default is @code{t}. @item Info-enable-active-nodes When set to a non-@code{nil} value, allows Info to execute Lisp code --- 1408,1414 ---- subnode indicated by the following menu item. Setting this option to @code{nil} results in behavior similar to the stand-alone Info reader program, which visits the first subnode from the menu only when you ! hit the end of the current node. The default is @code{nil}. @item Info-enable-active-nodes When set to a non-@code{nil} value, allows Info to execute Lisp code From MAILER-DAEMON Thu Jul 03 08:39:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3NW-0007x5-DP for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:39:58 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3I0-00076u-Th for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:34:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3HK-0006Py-SR for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:35 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fv-0006Hc-UA for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:07 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Eu-0005Gr-Uu for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:04 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-fonts.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:39:58 -0000 From MAILER-DAEMON Thu Jul 03 08:40:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3Ir-0007Am-CO for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:35:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3Hx-00071R-IV for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:34:13 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3HQ-0006Rv-Gc for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fu-0006HV-N1 for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:06 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Er-0005GV-Qz for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:01 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-bytecomp.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:35:07 -0000 Index: emacs/lisp/progmodes/cc-bytecomp.el diff -c emacs/lisp/progmodes/cc-bytecomp.el:1.6 emacs/lisp/progmodes/cc-bytecomp.el:1.7 *** emacs/lisp/progmodes/cc-bytecomp.el:1.6 Wed Dec 4 06:46:31 2002 --- emacs/lisp/progmodes/cc-bytecomp.el Thu Jul 3 08:30:59 2003 *************** *** 1,6 **** ;;; cc-bytecomp.el --- compile time setup for proper compilation ! ;; Copyright (C) 2000, 01 Free Software Foundation, Inc. ;; Author: Martin Stjernholm ;; Maintainer: bug-cc-mode@gnu.org --- 1,6 ---- ;;; cc-bytecomp.el --- compile time setup for proper compilation ! ;; Copyright (C) 2000, 01, 02, 03 Free Software Foundation, Inc. ;; Author: Martin Stjernholm ;; Maintainer: bug-cc-mode@gnu.org *************** *** 34,40 **** ;; ;; There's really nothing CC Mode specific here; this functionality ;; ought to be provided by the byte compilers or some accompanying ! ;; library. ;;; Code: --- 34,77 ---- ;; ;; There's really nothing CC Mode specific here; this functionality ;; ought to be provided by the byte compilers or some accompanying ! ;; library. To use it from some package "foo.el", begin by putting ! ;; the following blurb at the top of the file: ! ;; ! ;; (eval-when-compile ! ;; (let ((load-path ! ;; (if (and (boundp 'byte-compile-dest-file) ! ;; (stringp byte-compile-dest-file)) ! ;; (cons (file-name-directory byte-compile-dest-file) load-path) ! ;; load-path))) ! ;; (load "cc-bytecomp" nil t)) ! ;; ! ;; This (unfortunately rather clumsy) form will ensure that the ! ;; cc-bytecomp.el in the same directory as foo.el is loaded during ! ;; byte compilation of the latter. ! ;; ! ;; At the end of foo.el there should normally be a "(provide 'foo)". ! ;; Replace it with "(cc-provide 'foo)"; that is necessary to restore ! ;; the environment after the byte compilation. If you don't have a ! ;; `provide' at the end, you have to add the following as the very ! ;; last form in the file: ! ;; ! ;; (eval-when-compile (cc-bytecomp-restore-environment)) ! ;; ! ;; Now everything is set to use the various functions and macros in ! ;; this package. ! ;; ! ;; If your package is split into several files, you should use ! ;; `cc-require', `cc-require-when-compile' or `cc-load' to load them. ! ;; That ensures that the files in the same directory always are ! ;; loaded, to avoid mixup with other versions of them that might exist ! ;; elsewhere in the load path. ! ;; ! ;; To suppress byte compiler warnings, use the macros ! ;; `cc-bytecomp-defun', `cc-bytecomp-defvar', ! ;; `cc-bytecomp-obsolete-fun', and `cc-bytecomp-obsolete-var'. ! ;; ! ;; This file is not used at all after the package has been byte ! ;; compiled. It is however necessary when running uncompiled. ;;; Code: *************** *** 42,94 **** (defvar cc-bytecomp-unbound-variables nil) (defvar cc-bytecomp-original-functions nil) (defvar cc-bytecomp-original-properties nil) - (defvar cc-bytecomp-load-depth 0) (defvar cc-bytecomp-loaded-files nil) (defvar cc-bytecomp-environment-set nil) ! (put 'cc-eval-when-compile 'lisp-indent-hook 0) ! (defmacro cc-eval-when-compile (&rest body) ! "Like `progn', but evaluates the body at compile time. ! The result of the body appears to the compiler as a quoted constant. ! ! This variant works around what looks like a bug in ! `eval-when-compile': During byte compilation it byte compiles its ! contents before evaluating it. That can cause forms to be compiled in ! situations they aren't intended to be compiled. See cc-bytecomp.el ! for further discussion." ! ;; ! ;; Example: It's not possible to defsubst a primitive, e.g. the ! ;; following will produce an error (in any emacs flavor), since ! ;; `nthcdr' is a primitive function that's handled specially by the ! ;; byte compiler and thus can't be redefined: ! ;; ! ;; (defsubst nthcdr (val) val) ! ;; ! ;; `defsubst', like `defmacro', needs to be evaluated at compile ! ;; time, so this will produce an error during byte compilation. ! ;; ! ;; CC Mode occasionally needs to do things like this for cross-emacs ! ;; compatibility (although we try to avoid it since it results in ! ;; byte code that isn't compatible between emacsen). It therefore ! ;; uses the following to conditionally do a `defsubst': ! ;; ! ;; (eval-when-compile ! ;; (if (not (fboundp 'foo)) ! ;; (defsubst foo ...))) ! ;; ! ;; But `eval-when-compile' byte compiles its contents and _then_ ! ;; evaluates it (in all current emacs versions, up to and including ! ;; Emacs 20.6 and XEmacs 21.1 as of this writing). So this will ! ;; still produce an error, since the byte compiler will get to the ! ;; defsubst anyway. That's arguably a bug because the point with ! ;; `eval-when-compile' is that it should evaluate rather than ! ;; compile its contents. ! `(eval-when-compile (eval '(progn ,@body)))) (defun cc-bytecomp-setup-environment () ;; Eval'ed during compilation to setup variables, functions etc ;; declared with `cc-bytecomp-defvar' et al. ! (if (= cc-bytecomp-load-depth 0) (let (p) (if cc-bytecomp-environment-set (error "Byte compilation environment already set - \ --- 79,98 ---- (defvar cc-bytecomp-unbound-variables nil) (defvar cc-bytecomp-original-functions nil) (defvar cc-bytecomp-original-properties nil) (defvar cc-bytecomp-loaded-files nil) (defvar cc-bytecomp-environment-set nil) ! (defmacro cc-bytecomp-debug-msg (&rest args) ! ;;`(message ,@args) ! ) (defun cc-bytecomp-setup-environment () ;; Eval'ed during compilation to setup variables, functions etc ;; declared with `cc-bytecomp-defvar' et al. ! (if (not load-in-progress) ! ;; Look at `load-in-progress' to tell whether we're called ! ;; directly in the file being compiled or just from some file ! ;; being loaded during compilation. (let (p) (if cc-bytecomp-environment-set (error "Byte compilation environment already set - \ *************** *** 98,143 **** (if (not (boundp (car p))) (progn (eval `(defvar ,(car p))) ! (set (car p) 'cc-bytecomp-ignore))) (setq p (cdr p))) (setq p cc-bytecomp-original-functions) (while p (let ((fun (car (car p))) (temp-macro (car (cdr (car p))))) ! (if temp-macro ! (eval `(defmacro ,fun ,@temp-macro)) ! (fset fun 'cc-bytecomp-ignore))) (setq p (cdr p))) (setq p cc-bytecomp-original-properties) (while p (let ((sym (car (car (car p)))) (prop (cdr (car (car p)))) (tempdef (car (cdr (car p))))) ! (put sym prop tempdef)) (setq p (cdr p))) ! (setq cc-bytecomp-environment-set t)))) (defun cc-bytecomp-restore-environment () ;; Eval'ed during compilation to restore variables, functions etc ;; declared with `cc-bytecomp-defvar' et al. ! (if (= cc-bytecomp-load-depth 0) (let (p) (setq p cc-bytecomp-unbound-variables) (while p (let ((var (car p))) ! (if (and (boundp var) ! (eq var 'cc-bytecomp-ignore)) ! (makunbound var))) (setq p (cdr p))) (setq p cc-bytecomp-original-functions) (while p (let ((fun (car (car p))) (def (car (cdr (cdr (car p)))))) ! (if (and (fboundp fun) ! (eq (symbol-function fun) 'cc-bytecomp-ignore)) ! (if (eq def 'unbound) ! (fmakunbound fun) ! (fset fun def)))) (setq p (cdr p))) (setq p cc-bytecomp-original-properties) (while p --- 102,186 ---- (if (not (boundp (car p))) (progn (eval `(defvar ,(car p))) ! (set (car p) (intern (concat "cc-bytecomp-ignore-var:" ! (symbol-name (car p))))) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-setup-environment: Covered variable %s" ! (car p)))) (setq p (cdr p))) (setq p cc-bytecomp-original-functions) (while p (let ((fun (car (car p))) (temp-macro (car (cdr (car p))))) ! (if (not (fboundp fun)) ! (if temp-macro ! (progn ! (eval `(defmacro ,fun ,@temp-macro)) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-setup-environment: Bound macro %s" fun)) ! (fset fun (intern (concat "cc-bytecomp-ignore-fun:" ! (symbol-name fun)))) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-setup-environment: Covered function %s" fun)))) (setq p (cdr p))) (setq p cc-bytecomp-original-properties) (while p (let ((sym (car (car (car p)))) (prop (cdr (car (car p)))) (tempdef (car (cdr (car p))))) ! (put sym prop tempdef) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-setup-environment: Bound property %s for %s to %s" ! prop sym tempdef)) (setq p (cdr p))) ! (setq cc-bytecomp-environment-set t) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-setup-environment: Done")))) (defun cc-bytecomp-restore-environment () ;; Eval'ed during compilation to restore variables, functions etc ;; declared with `cc-bytecomp-defvar' et al. ! (if (not load-in-progress) (let (p) (setq p cc-bytecomp-unbound-variables) (while p (let ((var (car p))) ! (if (boundp var) ! (if (eq (intern (concat "cc-bytecomp-ignore-var:" ! (symbol-name var))) ! (symbol-value var)) ! (progn ! (makunbound var) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Unbound variable %s" ! var)) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Not restoring variable %s" ! var)))) (setq p (cdr p))) (setq p cc-bytecomp-original-functions) (while p (let ((fun (car (car p))) + (temp-macro (car (cdr (car p)))) (def (car (cdr (cdr (car p)))))) ! (if (fboundp fun) ! (if (eq (or temp-macro ! (intern (concat "cc-bytecomp-ignore-fun:" ! (symbol-name fun)))) ! (symbol-function fun)) ! (if (eq def 'unbound) ! (progn ! (fmakunbound fun) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Unbound function %s" ! fun)) ! (fset fun def) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Restored function %s" ! fun)) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Not restoring function %s" ! fun)))) (setq p (cdr p))) (setq p cc-bytecomp-original-properties) (while p *************** *** 146,185 **** (tempdef (car (cdr (car p)))) (origdef (cdr (cdr (car p))))) (if (eq (get sym prop) tempdef) ! (put sym prop origdef))) (setq p (cdr p))) ! (setq cc-bytecomp-environment-set nil)))) ! ! (defun cc-bytecomp-load (cc-part) ! ;; Eval'ed during compilation to load a CC Mode file from the source ! ;; directory (assuming it's the same as the compiled file ! ;; destination dir). ! (if (and (boundp 'byte-compile-dest-file) ! (stringp byte-compile-dest-file)) ! (progn ! (cc-bytecomp-restore-environment) ! (let ((cc-bytecomp-load-depth (1+ cc-bytecomp-load-depth)) ! (load-path ! (cons (file-name-directory byte-compile-dest-file) ! load-path)) ! (cc-file (concat cc-part ".el"))) ! (if (member cc-file cc-bytecomp-loaded-files) ! () ! (setq cc-bytecomp-loaded-files ! (cons cc-file cc-bytecomp-loaded-files)) ! (load cc-file nil t t))) ! (cc-bytecomp-setup-environment) ! t))) (defmacro cc-require (cc-part) ! "Force loading of the corresponding .el file in the current ! directory during compilation, but compile in a `require'. Don't use ! within `eval-when-compile'. Having cyclic cc-require's will result in infinite recursion. That's somewhat intentional." `(progn ! (cc-eval-when-compile (cc-bytecomp-load (symbol-name ,cc-part))) (require ,cc-part))) (defmacro cc-provide (feature) --- 189,248 ---- (tempdef (car (cdr (car p)))) (origdef (cdr (cdr (car p))))) (if (eq (get sym prop) tempdef) ! (progn ! (put sym prop origdef) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Restored property %s for %s to %s" ! prop sym origdef)) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Not restoring property %s for %s" ! prop sym))) (setq p (cdr p))) ! (setq cc-bytecomp-environment-set nil) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-restore-environment: Done")))) ! ! (eval ! ;; This eval is to avoid byte compilation of the function below. ! ;; There's some bug in XEmacs 21.4.6 that can cause it to dump core ! ;; here otherwise. My theory is that `cc-bytecomp-load' might be ! ;; redefined recursively during the `load' inside it, and if it in ! ;; that case is byte compiled then the byte interpreter gets ! ;; confused. I haven't succeeded in isolating the bug, though. /mast ! ! '(defun cc-bytecomp-load (cc-part) ! ;; Eval'ed during compilation to load a CC Mode file from the source ! ;; directory (assuming it's the same as the compiled file ! ;; destination dir). ! (if (and (boundp 'byte-compile-dest-file) ! (stringp byte-compile-dest-file)) ! (progn ! (cc-bytecomp-restore-environment) ! (let ((load-path ! (cons (file-name-directory byte-compile-dest-file) ! load-path)) ! (cc-file (concat cc-part ".el"))) ! (if (member cc-file cc-bytecomp-loaded-files) ! () ! (setq cc-bytecomp-loaded-files ! (cons cc-file cc-bytecomp-loaded-files)) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-load: Loading %S" cc-file) ! (load cc-file nil t t) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-load: Loaded %S" cc-file))) ! (cc-bytecomp-setup-environment) ! t)))) (defmacro cc-require (cc-part) ! "Force loading of the corresponding .el file in the current directory ! during compilation, but compile in a `require'. Don't use within ! `eval-when-compile'. Having cyclic cc-require's will result in infinite recursion. That's somewhat intentional." `(progn ! (eval-when-compile (cc-bytecomp-load (symbol-name ,cc-part))) (require ,cc-part))) (defmacro cc-provide (feature) *************** *** 190,198 **** (provide ,feature))) (defmacro cc-load (cc-part) ! "Force loading of the corresponding .el file in the current ! directory during compilation. Don't use outside `eval-when-compile' ! or `eval-and-compile'. Having cyclic cc-load's will result in infinite recursion. That's somewhat intentional." --- 253,261 ---- (provide ,feature))) (defmacro cc-load (cc-part) ! "Force loading of the corresponding .el file in the current directory ! during compilation. Don't use outside `eval-when-compile' or ! `eval-and-compile'. Having cyclic cc-load's will result in infinite recursion. That's somewhat intentional." *************** *** 200,205 **** --- 263,289 ---- (cc-bytecomp-load ,cc-part)) (load ,cc-part nil t nil))) + (defmacro cc-require-when-compile (cc-part) + "Force loading of the corresponding .el file in the current directory + during compilation, but do a compile time `require' otherwise. Don't + use within `eval-when-compile'." + `(eval-when-compile + (if (and (featurep 'cc-bytecomp) + (cc-bytecomp-is-compiling)) + (if (or (not load-in-progress) + (not (featurep ,cc-part))) + (cc-bytecomp-load (symbol-name ,cc-part))) + (require ,cc-part)))) + + (defmacro cc-external-require (feature) + "Do a `require' of an external package. + This restores and sets up the compilation environment before and + afterwards. Don't use within `eval-when-compile'." + `(progn + (eval-when-compile (cc-bytecomp-restore-environment)) + (require ,feature) + (eval-when-compile (cc-bytecomp-setup-environment)))) + (defun cc-bytecomp-is-compiling () "Return non-nil if eval'ed during compilation. Don't use outside `eval-when-compile'." *************** *** 211,268 **** to silence the byte compiler. Don't use within `eval-when-compile'." `(eval-when-compile (if (boundp ',var) ! nil (if (not (memq ',var cc-bytecomp-unbound-variables)) ! (setq cc-bytecomp-unbound-variables ! (cons ',var cc-bytecomp-unbound-variables))) (if (and (cc-bytecomp-is-compiling) ! (= cc-bytecomp-load-depth 0)) (progn (defvar ,var) ! (set ',var 'cc-bytecomp-ignore)))))) (defmacro cc-bytecomp-defun (fun) "Bind the symbol as a function during compilation of the file, ! to silence the byte compiler. Don't use within `eval-when-compile'." `(eval-when-compile (if (fboundp ',fun) ! nil (if (not (assq ',fun cc-bytecomp-original-functions)) ! (setq cc-bytecomp-original-functions ! (cons (list ',fun nil 'unbound) ! cc-bytecomp-original-functions))) (if (and (cc-bytecomp-is-compiling) ! (= cc-bytecomp-load-depth 0)) ! (fset ',fun 'cc-bytecomp-ignore))))) (put 'cc-bytecomp-defmacro 'lisp-indent-function 'defun) (defmacro cc-bytecomp-defmacro (fun &rest temp-macro) "Bind the symbol as a macro during compilation (and evaluation) of the file. Don't use outside `eval-when-compile'." ! `(progn ! (if (not (assq ',fun cc-bytecomp-original-functions)) ! (setq cc-bytecomp-original-functions ! (cons (list ',fun ! ',temp-macro ! (if (fboundp ',fun) ! (symbol-function ',fun) ! 'unbound)) ! cc-bytecomp-original-functions))) ! (defmacro ,fun ,@temp-macro))) (defmacro cc-bytecomp-put (symbol propname value) "Set a property on a symbol during compilation (and evaluation) of the file. Don't use outside `eval-when-compile'." ! `(cc-eval-when-compile (if (not (assoc (cons ,symbol ,propname) cc-bytecomp-original-properties)) ! (setq cc-bytecomp-original-properties ! (cons (cons (cons ,symbol ,propname) ! (cons ,value (get ,symbol ,propname))) ! cc-bytecomp-original-properties))) ! (put ,symbol ,propname ,value))) (defmacro cc-bytecomp-obsolete-var (symbol) ! "Suppress warnings about that the given symbol is an obsolete variable. Don't use within `eval-when-compile'." `(eval-when-compile (if (get ',symbol 'byte-obsolete-variable) --- 295,389 ---- to silence the byte compiler. Don't use within `eval-when-compile'." `(eval-when-compile (if (boundp ',var) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defvar: %s bound already as variable" ',var) (if (not (memq ',var cc-bytecomp-unbound-variables)) ! (progn ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defvar: Saving %s (as unbound)" ',var) ! (setq cc-bytecomp-unbound-variables ! (cons ',var cc-bytecomp-unbound-variables)))) (if (and (cc-bytecomp-is-compiling) ! (not load-in-progress)) (progn (defvar ,var) ! (set ',var (intern (concat "cc-bytecomp-ignore-var:" ! (symbol-name ',var)))) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defvar: Covered variable %s" ',var)))))) (defmacro cc-bytecomp-defun (fun) "Bind the symbol as a function during compilation of the file, ! to silence the byte compiler. Don't use within `eval-when-compile'. ! ! If the symbol already is bound as a function, it will keep that ! definition. That means that this macro will not shut up warnings ! about incorrect number of arguments. It's dangerous to try to replace ! existing functions since the byte compiler might need the definition ! at compile time, e.g. for macros and inline functions." `(eval-when-compile (if (fboundp ',fun) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defun: %s bound already as function" ',fun) (if (not (assq ',fun cc-bytecomp-original-functions)) ! (progn ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defun: Saving %s (as unbound)" ',fun) ! (setq cc-bytecomp-original-functions ! (cons (list ',fun nil 'unbound) ! cc-bytecomp-original-functions)))) (if (and (cc-bytecomp-is-compiling) ! (not load-in-progress)) ! (progn ! (fset ',fun (intern (concat "cc-bytecomp-ignore-fun:" ! (symbol-name ',fun)))) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defun: Covered function %s" ',fun)))))) (put 'cc-bytecomp-defmacro 'lisp-indent-function 'defun) (defmacro cc-bytecomp-defmacro (fun &rest temp-macro) "Bind the symbol as a macro during compilation (and evaluation) of the file. Don't use outside `eval-when-compile'." ! `(let ((orig-fun (assq ',fun cc-bytecomp-original-functions))) ! (if (not orig-fun) ! (setq orig-fun ! (list ',fun ! nil ! (if (fboundp ',fun) ! (progn ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defmacro: Saving %s" ',fun) ! (symbol-function ',fun)) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defmacro: Saving %s as unbound" ',fun) ! 'unbound)) ! cc-bytecomp-original-functions ! (cons orig-fun cc-bytecomp-original-functions))) ! (defmacro ,fun ,@temp-macro) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-defmacro: Bound macro %s" ',fun) ! (setcar (cdr orig-fun) (symbol-function ',fun)))) (defmacro cc-bytecomp-put (symbol propname value) "Set a property on a symbol during compilation (and evaluation) of the file. Don't use outside `eval-when-compile'." ! `(eval-when-compile (if (not (assoc (cons ,symbol ,propname) cc-bytecomp-original-properties)) ! (progn ! (cc-bytecomp-debug-msg ! "cc-bytecomp-put: Saving property %s for %s with value %s" ! ,propname ,symbol (get ,symbol ,propname)) ! (setq cc-bytecomp-original-properties ! (cons (cons (cons ,symbol ,propname) ! (cons ,value (get ,symbol ,propname))) ! cc-bytecomp-original-properties)))) ! (put ,symbol ,propname ,value) ! (cc-bytecomp-debug-msg ! "cc-bytecomp-put: Bound property %s for %s to %s" ! ,propname ,symbol ,value))) (defmacro cc-bytecomp-obsolete-var (symbol) ! "Suppress warnings that the given symbol is an obsolete variable. Don't use within `eval-when-compile'." `(eval-when-compile (if (get ',symbol 'byte-obsolete-variable) *************** *** 278,298 **** (byte-compile-obsolete form))) (defmacro cc-bytecomp-obsolete-fun (symbol) ! "Suppress warnings about that the given symbol is an obsolete function. Don't use within `eval-when-compile'." `(eval-when-compile (if (eq (get ',symbol 'byte-compile) 'byte-compile-obsolete) (cc-bytecomp-put ',symbol 'byte-compile ! 'cc-bytecomp-ignore-obsolete)))) ! ;; Override ourselves with a version loaded from source if we're ! ;; compiling, like cc-require does for all the other files. ! (if (and (cc-bytecomp-is-compiling) ! (= cc-bytecomp-load-depth 0)) ! (let ((load-path ! (cons (file-name-directory byte-compile-dest-file) load-path)) ! (cc-bytecomp-load-depth 1)) ! (load "cc-bytecomp.el" nil t t))) (provide 'cc-bytecomp) --- 399,436 ---- (byte-compile-obsolete form))) (defmacro cc-bytecomp-obsolete-fun (symbol) ! "Suppress warnings that the given symbol is an obsolete function. Don't use within `eval-when-compile'." `(eval-when-compile (if (eq (get ',symbol 'byte-compile) 'byte-compile-obsolete) (cc-bytecomp-put ',symbol 'byte-compile ! 'cc-bytecomp-ignore-obsolete) ! ;; This avoids a superfluous compiler warning ! ;; about calling `get' for effect. ! t))) ! (defmacro cc-bytecomp-boundp (symbol) ! "Return non-nil if the given symbol is bound as a variable outside ! the compilation. This is the same as using `boundp' but additionally ! exclude any variables that have been bound during compilation with ! `cc-bytecomp-defvar'." ! (if (and (cc-bytecomp-is-compiling) ! (memq (car (cdr symbol)) cc-bytecomp-unbound-variables)) ! nil ! `(boundp ,symbol))) ! ! (defmacro cc-bytecomp-fboundp (symbol) ! "Return non-nil if the given symbol is bound as a function outside ! the compilation. This is the same as using `fboundp' but additionally ! exclude any functions that have been bound during compilation with ! `cc-bytecomp-defun'." ! (let (fun-elem) ! (if (and (cc-bytecomp-is-compiling) ! (setq fun-elem (assq (car (cdr symbol)) ! cc-bytecomp-original-functions)) ! (eq (elt fun-elem 2) 'unbound)) ! nil ! `(fboundp ,symbol)))) (provide 'cc-bytecomp) From MAILER-DAEMON Thu Jul 03 08:44:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3RL-0000Sf-U6 for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:43:55 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3Lm-0007gJ-QZ for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:38:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3J4-0007FC-Pc for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:35:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fx-0006HW-Sw for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:09 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Es-0005Ga-Ch for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:02 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:02 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-cmds.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:43:52 -0000 Index: emacs/lisp/progmodes/cc-cmds.el diff -c emacs/lisp/progmodes/cc-cmds.el:1.30 emacs/lisp/progmodes/cc-cmds.el:1.31 *** emacs/lisp/progmodes/cc-cmds.el:1.30 Tue Feb 4 08:24:34 2003 --- emacs/lisp/progmodes/cc-cmds.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-cmds.el --- user level commands for CC Mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-cmds.el --- user level commands for CC Mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 39,49 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) (cc-require 'cc-vars) - (cc-require 'cc-langs) (cc-require 'cc-engine) ;; Silence the compiler. --- 38,47 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) (cc-require 'cc-vars) (cc-require 'cc-engine) ;; Silence the compiler. *************** *** 57,62 **** --- 55,61 ---- (defvar c-fix-backslashes t) (defun c-shift-line-indentation (shift-amt) + ;; This function does not do any hidden buffer changes. (let ((pos (- (point-max) (point))) (c-macro-start c-macro-start) tmp-char-inserted) *************** *** 96,101 **** --- 95,103 ---- is otherwise empty \(ignoring any line continuation backslash), but that's not done if IGNORE-POINT-POS is non-nil. Returns the amount of indentation change \(in columns)." + ;; + ;; This function does not do any hidden buffer changes. + (let ((line-cont-backslash (save-excursion (end-of-line) (eq (char-before) ?\\))) *************** *** 124,141 **** (setq c-fix-backslashes t)) (if c-syntactic-indentation (setq c-parsing-error ! (or (let* ((c-parsing-error nil) ! (c-syntactic-context (or syntax ! c-syntactic-context ! (c-guess-basic-syntax))) ! indent) ! (setq indent (c-get-syntactic-indentation ! c-syntactic-context)) ! (and (not (c-echo-parsing-error quiet)) ! c-echo-syntactic-information-p ! (message "syntax: %s, indent: %d" ! c-syntactic-context indent)) ! (setq shift-amt (- indent (current-indentation))) (c-shift-line-indentation shift-amt) (run-hooks 'c-special-indent-hook) c-parsing-error) --- 126,146 ---- (setq c-fix-backslashes t)) (if c-syntactic-indentation (setq c-parsing-error ! (or (let ((c-parsing-error nil) ! (c-syntactic-context ! (or syntax ! (and (boundp 'c-syntactic-context) ! c-syntactic-context)))) ! (c-save-buffer-state (indent) ! (unless c-syntactic-context ! (setq c-syntactic-context (c-guess-basic-syntax))) ! (setq indent (c-get-syntactic-indentation ! c-syntactic-context)) ! (and (not (c-echo-parsing-error quiet)) ! c-echo-syntactic-information-p ! (message "syntax: %s, indent: %d" ! c-syntactic-context indent)) ! (setq shift-amt (- indent (current-indentation)))) (c-shift-line-indentation shift-amt) (run-hooks 'c-special-indent-hook) c-parsing-error) *************** *** 165,171 **** and takes care to set the indentation before calling `indent-according-to-mode', so that lineup functions like `c-lineup-dont-change' works better." ! ;; FIXME: Backslashes before eol in comments and literals aren't ;; kept intact. (let ((c-macro-start (c-query-macro-start)) ;; Avoid calling c-backslash-region from c-indent-line if it's --- 170,179 ---- and takes care to set the indentation before calling `indent-according-to-mode', so that lineup functions like `c-lineup-dont-change' works better." ! ;; ! ;; This function does not do any hidden buffer changes. ! ! ;; TODO: Backslashes before eol in comments and literals aren't ;; kept intact. (let ((c-macro-start (c-query-macro-start)) ;; Avoid calling c-backslash-region from c-indent-line if it's *************** *** 210,216 **** ;; Reindent syntactically. The indentation done above is not ;; wasted, since c-indent-line might look at the current ;; indentation. ! (let ((c-syntactic-context (c-guess-basic-syntax))) ;; We temporarily insert another line break, so that the ;; lineup functions will see the line as empty. That makes ;; e.g. c-lineup-cpp-define more intuitive since it then --- 218,225 ---- ;; Reindent syntactically. The indentation done above is not ;; wasted, since c-indent-line might look at the current ;; indentation. ! (let ((c-syntactic-context (c-save-buffer-state nil ! (c-guess-basic-syntax)))) ;; We temporarily insert another line break, so that the ;; lineup functions will see the line as empty. That makes ;; e.g. c-lineup-cpp-define more intuitive since it then *************** *** 236,242 **** With universal argument, inserts the analysis as a comment on that line." (interactive "P") (let* ((c-parsing-error nil) ! (syntax (c-guess-basic-syntax))) (if (not (consp arg)) (message "syntactic analysis: %s" syntax) (indent-for-comment) --- 245,256 ---- With universal argument, inserts the analysis as a comment on that line." (interactive "P") (let* ((c-parsing-error nil) ! (syntax (if (boundp 'c-syntactic-context) ! ;; Use `c-syntactic-context' in the same way as ! ;; `c-indent-line', to be consistent. ! c-syntactic-context ! (c-save-buffer-state nil ! (c-guess-basic-syntax))))) (if (not (consp arg)) (message "syntactic analysis: %s" syntax) (indent-for-comment) *************** *** 325,352 **** ;; Electric keys (defun c-electric-backspace (arg) ! "Deletes preceding character or whitespace. If `c-hungry-delete-key' is non-nil, as evidenced by the \"/h\" or \"/ah\" string on the mode line, then all preceding whitespace is consumed. If however a prefix argument is supplied, or `c-hungry-delete-key' is nil, or point is inside a literal then the ! function in the variable `c-backspace-function' is called. ! ! See also \\[c-electric-delete]." (interactive "*P") (if (or (not c-hungry-delete-key) arg (c-in-literal)) (funcall c-backspace-function (prefix-numeric-value arg)) ! (let ((here (point))) ! (c-skip-ws-backward) ! (if (/= (point) here) ! (delete-region (point) here) ! (funcall c-backspace-function 1) ! )))) (defun c-electric-delete-forward (arg) ! "Deletes following character or whitespace. If `c-hungry-delete-key' is non-nil, as evidenced by the \"/h\" or \"/ah\" string on the mode line, then all following whitespace is consumed. If however a prefix argument is supplied, or --- 339,370 ---- ;; Electric keys (defun c-electric-backspace (arg) ! "Delete the preceding character or whitespace. If `c-hungry-delete-key' is non-nil, as evidenced by the \"/h\" or \"/ah\" string on the mode line, then all preceding whitespace is consumed. If however a prefix argument is supplied, or `c-hungry-delete-key' is nil, or point is inside a literal then the ! function in the variable `c-backspace-function' is called." (interactive "*P") (if (or (not c-hungry-delete-key) arg (c-in-literal)) (funcall c-backspace-function (prefix-numeric-value arg)) ! (c-hungry-backspace))) ! ! (defun c-hungry-backspace () ! "Delete the preceding character or all preceding whitespace ! back to the previous non-whitespace character. ! See also \\[c-hungry-delete-forward]." ! (interactive) ! (let ((here (point))) ! (c-skip-ws-backward) ! (if (/= (point) here) ! (delete-region (point) here) ! (funcall c-backspace-function 1)))) (defun c-electric-delete-forward (arg) ! "Delete the following character or whitespace. If `c-hungry-delete-key' is non-nil, as evidenced by the \"/h\" or \"/ah\" string on the mode line, then all following whitespace is consumed. If however a prefix argument is supplied, or *************** *** 357,368 **** arg (c-in-literal)) (funcall c-delete-function (prefix-numeric-value arg)) ! (let ((here (point))) ! (c-skip-ws-forward) ! (if (/= (point) here) ! (delete-region (point) here) ! (funcall c-delete-function 1))))) (defun c-electric-delete (arg) "Deletes preceding or following character or whitespace. This function either deletes forward as `c-electric-delete-forward' or --- 375,394 ---- arg (c-in-literal)) (funcall c-delete-function (prefix-numeric-value arg)) ! (c-hungry-delete-forward))) + (defun c-hungry-delete-forward () + "Delete the following character or all following whitespace + up to the next non-whitespace character. + See also \\[c-hungry-backspace]." + (interactive) + (let ((here (point))) + (c-skip-ws-forward) + (if (/= (point) here) + (delete-region (point) here) + (funcall c-delete-function 1)))) + + ;; This function is only used in XEmacs. (defun c-electric-delete (arg) "Deletes preceding or following character or whitespace. This function either deletes forward as `c-electric-delete-forward' or *************** *** 455,462 **** substatement-open statement-case-open extern-lang-open extern-lang-close namespace-open namespace-close inexpr-class-open inexpr-class-close ! )) (insertion-point (point)) (preserve-p (and (not (bobp)) (eq ?\ (char-syntax (char-before))))) --- 481,493 ---- substatement-open statement-case-open extern-lang-open extern-lang-close namespace-open namespace-close + module-open module-close + composition-open composition-close inexpr-class-open inexpr-class-close ! ;; `statement-cont' is here for the case with a brace ! ;; list opener inside a statement. C.f. CASE B.2 in ! ;; `c-guess-continued-construct'. ! statement-cont)) (insertion-point (point)) (preserve-p (and (not (bobp)) (eq ?\ (char-syntax (char-before))))) *************** *** 476,482 **** (if (eq last-command-char ?{) (setq c-state-cache (cons (point) c-state-cache))) (self-insert-command (prefix-numeric-value arg)) ! (let ((c-syntactic-indentation-in-macros t)) ;; Turn on syntactic macro analysis to help with auto ;; newlines only. (setq syntax (c-guess-basic-syntax))) --- 507,514 ---- (if (eq last-command-char ?{) (setq c-state-cache (cons (point) c-state-cache))) (self-insert-command (prefix-numeric-value arg)) ! (c-save-buffer-state ((c-syntactic-indentation-in-macros t) ! (c-auto-newline-analysis t)) ;; Turn on syntactic macro analysis to help with auto ;; newlines only. (setq syntax (c-guess-basic-syntax))) *************** *** 501,510 **** ;; (Pike-style) brace list. (if (and c-special-brace-lists (save-excursion ! (c-safe (if (= (char-before) ?{) ! (forward-char -1) ! (c-forward-sexp -1)) ! (c-looking-at-special-brace-list)))) (setq newlines nil)) ;; If syntax is a function symbol, then call it using the ;; defined semantics. --- 533,543 ---- ;; (Pike-style) brace list. (if (and c-special-brace-lists (save-excursion ! (c-save-buffer-state nil ! (c-safe (if (= (char-before) ?{) ! (forward-char -1) ! (c-forward-sexp -1)) ! (c-looking-at-special-brace-list))))) (setq newlines nil)) ;; If syntax is a function symbol, then call it using the ;; defined semantics. *************** *** 533,539 **** ;; indentation, we need to recalculate syntax for ;; the current line. (if (/= (point) here) ! (let ((c-syntactic-indentation-in-macros t)) ;; Turn on syntactic macro analysis to help ;; with auto newlines only. (setq syntax (c-guess-basic-syntax)))))))) --- 566,574 ---- ;; indentation, we need to recalculate syntax for ;; the current line. (if (/= (point) here) ! (c-save-buffer-state ! ((c-syntactic-indentation-in-macros t) ! (c-auto-newline-analysis t)) ;; Turn on syntactic macro analysis to help ;; with auto newlines only. (setq syntax (c-guess-basic-syntax)))))))) *************** *** 553,559 **** (if (not (memq 'before newlines)) ;; since we're hanging the brace, we need to recalculate ;; syntax. ! (let ((c-syntactic-indentation-in-macros t)) ;; Turn on syntactic macro analysis to help with auto ;; newlines only. (setq syntax (c-guess-basic-syntax)))) --- 588,595 ---- (if (not (memq 'before newlines)) ;; since we're hanging the brace, we need to recalculate ;; syntax. ! (c-save-buffer-state ((c-syntactic-indentation-in-macros t) ! (c-auto-newline-analysis t)) ;; Turn on syntactic macro analysis to help with auto ;; newlines only. (setq syntax (c-guess-basic-syntax)))) *************** *** 605,611 **** (c-skip-ws-backward) (setq mbeg (point)) (eq (char-before) ?\))) ! (= (c-backward-token-1 1 t) 0) (eq (char-after) ?\() (progn (setq tmp (point)) --- 641,647 ---- (c-skip-ws-backward) (setq mbeg (point)) (eq (char-before) ?\))) ! (zerop (c-save-buffer-state nil (c-backward-token-2 1 t))) (eq (char-after) ?\() (progn (setq tmp (point)) *************** *** 632,638 **** (not executing-kbd-macro) old-blink-paren (save-excursion ! (c-backward-syntactic-ws safepos) (funcall old-blink-paren))))) (defun c-electric-slash (arg) --- 668,675 ---- (not executing-kbd-macro) old-blink-paren (save-excursion ! (c-save-buffer-state nil ! (c-backward-syntactic-ws safepos)) (funcall old-blink-paren))))) (defun c-electric-slash (arg) *************** *** 804,810 **** ;; since that's made with c-syntactic-indentation-in-macros ;; always set to t. (indent-according-to-mode)) ! (let* ((c-syntactic-indentation-in-macros t) ;; Turn on syntactic macro analysis to help with auto newlines ;; only. (syntax (c-guess-basic-syntax)) --- 841,849 ---- ;; since that's made with c-syntactic-indentation-in-macros ;; always set to t. (indent-according-to-mode)) ! (c-save-buffer-state ! ((c-syntactic-indentation-in-macros t) ! (c-auto-newline-analysis t) ;; Turn on syntactic macro analysis to help with auto newlines ;; only. (syntax (c-guess-basic-syntax)) *************** *** 822,828 **** (or (c-lookup-lists '(case-label label access-label) syntax c-hanging-colons-alist) (c-lookup-lists '(member-init-intro inher-intro) ! (let ((buffer-undo-list t)) (insert ?\n) (unwind-protect (c-guess-basic-syntax) --- 861,867 ---- (or (c-lookup-lists '(case-label label access-label) syntax c-hanging-colons-alist) (c-lookup-lists '(member-init-intro inher-intro) ! (progn (insert ?\n) (unwind-protect (c-guess-basic-syntax) *************** *** 995,1008 **** ;; originally contributed by Terry_Glanfield.Southern@rxuk.xerox.com (defun c-forward-into-nomenclature (&optional arg) "Move forward to end of a nomenclature section or word. ! With arg, to it arg times." (interactive "p") (let ((case-fold-search nil)) (if (> arg 0) ! (re-search-forward "\\W*\\([A-Z]*[a-z0-9]*\\)" (point-max) t arg) (while (and (< arg 0) (re-search-backward ! "\\(\\(\\W\\|[a-z0-9]\\)[A-Z]+\\|\\W\\w+\\)" (point-min) 0)) (forward-char 1) (setq arg (1+ arg))))) --- 1034,1053 ---- ;; originally contributed by Terry_Glanfield.Southern@rxuk.xerox.com (defun c-forward-into-nomenclature (&optional arg) "Move forward to end of a nomenclature section or word. ! With arg, do it arg times." (interactive "p") (let ((case-fold-search nil)) (if (> arg 0) ! (re-search-forward ! (cc-eval-when-compile ! (concat "\\W*\\([" c-upper "]*[" c-lower c-digit "]*\\)")) ! (point-max) t arg) (while (and (< arg 0) (re-search-backward ! (cc-eval-when-compile ! (concat ! "\\(\\(\\W\\|[" c-lower c-digit "]\\)[" c-upper "]+" ! "\\|\\W\\w+\\)")) (point-min) 0)) (forward-char 1) (setq arg (1+ arg))))) *************** *** 1040,1054 **** (if (< arg 0) (when (c-end-of-defun (- arg)) ! (c-forward-syntactic-ws) t) ! (catch 'exit ! (while (> arg 0) ! ;; Note: Partial code duplication in `c-end-of-defun' and ! ;; `c-declaration-limits'. ! (let ((paren-state (c-parse-state)) lim pos) (unless (c-safe (goto-char (c-least-enclosing-brace paren-state)) ;; If we moved to the outermost enclosing paren --- 1085,1100 ---- (if (< arg 0) (when (c-end-of-defun (- arg)) ! (c-save-buffer-state nil (c-forward-syntactic-ws)) t) ! (c-save-buffer-state (paren-state lim pos) ! (catch 'exit ! (while (> arg 0) ! ;; Note: Partial code duplication in `c-end-of-defun' and ! ;; `c-declaration-limits'. ! (setq paren-state (c-parse-state)) (unless (c-safe (goto-char (c-least-enclosing-brace paren-state)) ;; If we moved to the outermost enclosing paren *************** *** 1079,1086 **** ;; Check if the declaration contains a brace ;; block. If not, we try another one. (setq pos (point)) ! (not (and (c-syntactic-re-search-forward ! "[;{]" nil t 1 t) (or (eq (char-before) ?{) (and c-recognize-knr-p ;; Might have stopped on the --- 1125,1131 ---- ;; Check if the declaration contains a brace ;; block. If not, we try another one. (setq pos (point)) ! (not (and (c-syntactic-re-search-forward "[;{]" nil t t) (or (eq (char-before) ?{) (and c-recognize-knr-p ;; Might have stopped on the *************** *** 1113,1119 **** ;; the previous declaration then we use the current point ;; instead. (while (and (/= (point) (c-point 'boi)) ! (c-forward-comment -1))) (if (/= (point) (c-point 'boi)) (goto-char pos)) --- 1158,1164 ---- ;; the previous declaration then we use the current point ;; instead. (while (and (/= (point) (c-point 'boi)) ! (c-backward-single-comment))) (if (/= (point) (c-point 'boi)) (goto-char pos)) *************** *** 1135,1149 **** (if (< arg 0) (when (c-beginning-of-defun (- arg)) ! (c-backward-syntactic-ws) t) ! (catch 'exit ! (while (> arg 0) ! ;; Note: Partial code duplication in `c-beginning-of-defun' ! ;; and `c-declaration-limits'. ! (let ((paren-state (c-parse-state)) lim pos) (unless (c-safe (goto-char (c-least-enclosing-brace paren-state)) ;; If we moved to the outermost enclosing paren --- 1180,1195 ---- (if (< arg 0) (when (c-beginning-of-defun (- arg)) ! (c-save-buffer-state nil (c-backward-syntactic-ws)) t) ! (c-save-buffer-state (paren-state lim pos) ! (catch 'exit ! (while (> arg 0) ! ;; Note: Partial code duplication in `c-beginning-of-defun' ! ;; and `c-declaration-limits'. ! (setq paren-state (c-parse-state)) (unless (c-safe (goto-char (c-least-enclosing-brace paren-state)) ;; If we moved to the outermost enclosing paren *************** *** 1170,1176 **** ;; in a `c-opt-block-decls-with-vars-key' declaration, but ;; then we won't move significantly far here. (goto-char pos) ! (c-forward-token-1 0)) (while (let ((start (point))) (c-end-of-decl-1) --- 1216,1222 ---- ;; in a `c-opt-block-decls-with-vars-key' declaration, but ;; then we won't move significantly far here. (goto-char pos) ! (c-forward-token-2 0)) (while (let ((start (point))) (c-end-of-decl-1) *************** *** 1188,1194 **** ;; block. If not, we try another one. (setq pos (point)) (goto-char start) ! (not (c-syntactic-re-search-forward "{" pos t 1 t)))))) (setq pos (point)) ;; Try to be line oriented; position point after the next --- 1234,1240 ---- ;; block. If not, we try another one. (setq pos (point)) (goto-char start) ! (not (c-syntactic-re-search-forward "{" pos t t)))))) (setq pos (point)) ;; Try to be line oriented; position point after the next *************** *** 1196,1202 **** ;; next declaration then we use the current point instead. (while (and (not (bolp)) (not (looking-at "\\s *$")) ! (c-forward-comment 1))) (cond ((bolp)) ((looking-at "\\s *$") (forward-line 1)) --- 1242,1248 ---- ;; next declaration then we use the current point instead. (while (and (not (bolp)) (not (looking-at "\\s *$")) ! (c-forward-single-comment))) (cond ((bolp)) ((looking-at "\\s *$") (forward-line 1)) *************** *** 1254,1260 **** ;; declaration, but then we won't move significantly far ;; here. (goto-char pos) ! (while (c-forward-comment 10)) (when (and near (c-beginning-of-macro)) (throw 'exit --- 1300,1306 ---- ;; declaration, but then we won't move significantly far ;; here. (goto-char pos) ! (c-forward-comments) (when (and near (c-beginning-of-macro)) (throw 'exit *************** *** 1294,1300 **** (cons (progn (setq pos (point)) (while (and (/= (point) (c-point 'boi)) ! (c-forward-comment -1))) (if (/= (point) (c-point 'boi)) pos (point))) --- 1340,1346 ---- (cons (progn (setq pos (point)) (while (and (/= (point) (c-point 'boi)) ! (c-backward-single-comment))) (if (/= (point) (c-point 'boi)) pos (point))) *************** *** 1305,1311 **** (setq pos (point)) (while (and (not (bolp)) (not (looking-at "\\s *$")) ! (c-forward-comment 1))) (cond ((bolp) (point)) ((looking-at "\\s *$") --- 1351,1357 ---- (setq pos (point)) (while (and (not (bolp)) (not (looking-at "\\s *$")) ! (c-forward-single-comment))) (cond ((bolp) (point)) ((looking-at "\\s *$") *************** *** 1323,1334 **** function does not require the declaration to contain a brace block." (interactive) ! ;; We try to be line oriented, unless there are several ! ;; declarations on the same line. ! (if (looking-at c-syntactic-eol) ! (c-backward-token-1 1 nil (c-point 'bol))) - (let ((decl-limits (c-declaration-limits t))) (if (not decl-limits) (error "Cannot find any declaration") (goto-char (car decl-limits)) --- 1369,1382 ---- function does not require the declaration to contain a brace block." (interactive) ! (let (decl-limits) ! (c-save-buffer-state nil ! ;; We try to be line oriented, unless there are several ! ;; declarations on the same line. ! (if (looking-at c-syntactic-eol) ! (c-backward-token-2 1 nil (c-point 'bol))) ! (setq decl-limits (c-declaration-limits t))) (if (not decl-limits) (error "Cannot find any declaration") (goto-char (car decl-limits)) *************** *** 1354,1362 **** more \"DWIM:ey\"." (interactive (list (prefix-numeric-value current-prefix-arg) nil t)) ! (let* ((count (or count 1)) ! here ! (range (c-collect-line-comments (c-literal-limits lim)))) (while (and (/= count 0) (or (not lim) (> (point) lim))) (setq here (point)) --- 1402,1411 ---- more \"DWIM:ey\"." (interactive (list (prefix-numeric-value current-prefix-arg) nil t)) ! (c-save-buffer-state ! ((count (or count 1)) ! here ! (range (c-collect-line-comments (c-literal-limits lim)))) (while (and (/= count 0) (or (not lim) (> (point) lim))) (setq here (point)) *************** *** 1364,1372 **** (save-excursion ;; Find the comment next to point if we're not in one. (if (> count 0) ! (if (c-forward-comment-lc -1) (setq range (cons (point) ! (progn (c-forward-comment-lc 1) (point)))) (c-skip-ws-backward) (setq range (point)) --- 1413,1421 ---- (save-excursion ;; Find the comment next to point if we're not in one. (if (> count 0) ! (if (c-backward-single-comment) (setq range (cons (point) ! (progn (c-forward-single-comment) (point)))) (c-skip-ws-backward) (setq range (point)) *************** *** 1381,1387 **** (c-forward-sexp 1) (point)))) (setq range (point)) ! (setq range (if (c-forward-comment-lc 1) (cons range (point)) nil)))) (setq range (c-collect-line-comments range)))) --- 1430,1436 ---- (c-forward-sexp 1) (point)))) (setq range (point)) ! (setq range (if (c-forward-single-comment) (cons range (point)) nil)))) (setq range (c-collect-line-comments range)))) *************** *** 1509,1515 **** ;; into parens. Also stop before `#' when it's at boi ;; on a line. (let ((literal-pos (not sentence-flag)) - (large-enough (- (point-max))) last last-below-line) (catch 'done (while t --- 1558,1563 ---- *************** *** 1532,1544 **** ;; style comment. /mast ;;(c-skip-ws-backward) (if literal-pos ! (c-forward-comment-lc large-enough) ! (when (c-forward-comment-lc -1) ;; Record position of first comment. (save-excursion ! (c-forward-comment-lc 1) (setq literal-pos (point))) ! (c-forward-comment-lc large-enough))) (unless last-below-line (if (save-excursion (re-search-forward "\\(^\\|[^\\]\\)$" last t)) --- 1580,1592 ---- ;; style comment. /mast ;;(c-skip-ws-backward) (if literal-pos ! (c-backward-comments) ! (when (c-backward-single-comment) ;; Record position of first comment. (save-excursion ! (c-forward-single-comment) (setq literal-pos (point))) ! (c-backward-comments))) (unless last-below-line (if (save-excursion (re-search-forward "\\(^\\|[^\\]\\)$" last t)) *************** *** 1590,1608 **** ;; and move into parens. Also stop at eol of lines ;; with `#' at the boi. (let ((literal-pos (not sentence-flag)) - (large-enough (point-max)) last) (catch 'done (while t (setq last (point)) (if literal-pos ! (c-forward-comment-lc large-enough) (if (progn (c-skip-ws-forward) ;; Record position of first comment. (setq literal-pos (point)) ! (c-forward-comment-lc 1)) ! (c-forward-comment-lc large-enough) (setq literal-pos nil))) (cond ((and (eq (char-after) ?{) (not (and c-special-brace-lists --- 1638,1655 ---- ;; and move into parens. Also stop at eol of lines ;; with `#' at the boi. (let ((literal-pos (not sentence-flag)) last) (catch 'done (while t (setq last (point)) (if literal-pos ! (c-forward-comments) (if (progn (c-skip-ws-forward) ;; Record position of first comment. (setq literal-pos (point)) ! (c-forward-single-comment)) ! (c-forward-comments) (setq literal-pos nil))) (cond ((and (eq (char-after) ?{) (not (and c-special-brace-lists *************** *** 1736,1751 **** ;; Recurse to handle value as a new spec. (c-calc-comment-indent (cdr entry))))))) - ;; To avoid warning about assignment without reference wrt - ;; c-add-syntax below. - (cc-bytecomp-defvar syntactic-relpos) - (defun c-comment-indent () "Used by `indent-for-comment' to create and indent comments. See `c-indent-comment-alist' for a description." (save-excursion (end-of-line) ! (let* ((eot (let ((lim (c-literal-limits (c-point 'bol) t))) (or (when (consp lim) (goto-char (car lim)) (when (looking-at "/[/*]") --- 1783,1795 ---- ;; Recurse to handle value as a new spec. (c-calc-comment-indent (cdr entry))))))) (defun c-comment-indent () "Used by `indent-for-comment' to create and indent comments. See `c-indent-comment-alist' for a description." (save-excursion (end-of-line) ! (c-save-buffer-state ! ((eot (let ((lim (c-literal-limits (c-point 'bol) t))) (or (when (consp lim) (goto-char (car lim)) (when (looking-at "/[/*]") *************** *** 1771,1778 **** 'other)))) (if (and (memq line-type '(anchored-comment empty-line)) c-indent-comments-syntactically-p) ! (let ((syntax (c-guess-basic-syntax)) ! syntactic-relpos) ;; BOGOSITY ALERT: if we're looking at the eol, its ;; because indent-for-comment hasn't put the comment-start ;; in the buffer yet. this will screw up the syntactic --- 1815,1821 ---- 'other)))) (if (and (memq line-type '(anchored-comment empty-line)) c-indent-comments-syntactically-p) ! (let ((c-syntactic-context (c-guess-basic-syntax))) ;; BOGOSITY ALERT: if we're looking at the eol, its ;; because indent-for-comment hasn't put the comment-start ;; in the buffer yet. this will screw up the syntactic *************** *** 1787,1793 **** c-comment-only-line-offset (cons c-comment-only-line-offset c-comment-only-line-offset)))) ! (c-get-syntactic-indentation syntax))) (goto-char eot) (c-calc-comment-indent line-type))))) --- 1830,1836 ---- c-comment-only-line-offset (cons c-comment-only-line-offset c-comment-only-line-offset)))) ! (c-get-syntactic-indentation c-syntactic-context))) (goto-char eot) (c-calc-comment-indent line-type))))) *************** *** 1811,1817 **** (interactive "p") (c-forward-conditional (- count) -1) (c-keep-region-active)) ! (defun c-up-conditional-with-else (count) "Move back to the containing preprocessor conditional, including `#else'. Just like `c-up-conditional', except it also stops at `#else' --- 1854,1860 ---- (interactive "p") (c-forward-conditional (- count) -1) (c-keep-region-active)) ! (defun c-up-conditional-with-else (count) "Move back to the containing preprocessor conditional, including `#else'. Just like `c-up-conditional', except it also stops at `#else' *************** *** 2071,2085 **** continuation backslashes, unless `c-auto-align-backslashes' is nil." (interactive "*") (let ((here (point-marker)) decl-limits) - ;; We try to be line oriented, unless there are several - ;; declarations on the same line. - (if (looking-at c-syntactic-eol) - (c-backward-token-1 1 nil (c-point 'bol)) - (c-forward-token-1 0 nil (c-point 'eol))) (unwind-protect ! (if (setq decl-limits (c-declaration-limits nil)) ! (c-indent-region (car decl-limits) ! (cdr decl-limits))) (goto-char here) (set-marker here nil)))) --- 2114,2131 ---- continuation backslashes, unless `c-auto-align-backslashes' is nil." (interactive "*") (let ((here (point-marker)) decl-limits) (unwind-protect ! (progn ! (c-save-buffer-state nil ! ;; We try to be line oriented, unless there are several ! ;; declarations on the same line. ! (if (looking-at c-syntactic-eol) ! (c-backward-token-2 1 nil (c-point 'bol)) ! (c-forward-token-2 0 nil (c-point 'eol))) ! (setq decl-limits (c-declaration-limits nil))) ! (if decl-limits ! (c-indent-region (car decl-limits) ! (cdr decl-limits)))) (goto-char here) (set-marker here nil)))) *************** *** 2090,2101 **** non-nil." (save-excursion (goto-char end) ! (skip-chars-backward " \t\n\r") (setq end (point)) (goto-char start) ;; Advance to first nonblank line. (beginning-of-line) ! (skip-chars-forward " \t\n\r") (setq start (point)) (beginning-of-line) (setq c-parsing-error --- 2136,2147 ---- non-nil." (save-excursion (goto-char end) ! (skip-chars-backward " \t\n\r\f\v") (setq end (point)) (goto-char start) ;; Advance to first nonblank line. (beginning-of-line) ! (skip-chars-forward " \t\n\r\f\v") (setq start (point)) (beginning-of-line) (setq c-parsing-error *************** *** 2120,2126 **** (skip-chars-forward " \t\n") (beginning-of-line) ;; Get syntax and indent. ! (setq syntax (c-guess-basic-syntax)) (if (and c-auto-align-backslashes (assq 'cpp-macro syntax)) ;; Record macro start. --- 2166,2173 ---- (skip-chars-forward " \t\n") (beginning-of-line) ;; Get syntax and indent. ! (c-save-buffer-state nil ! (setq syntax (c-guess-basic-syntax))) (if (and c-auto-align-backslashes (assq 'cpp-macro syntax)) ;; Record macro start. *************** *** 2149,2154 **** --- 2196,2203 ---- (defun c-fn-region-is-active-p () ;; Function version of the macro for use in places that aren't ;; compiled, e.g. in the menus. + ;; + ;; This function does not do any hidden buffer changes. (c-region-is-active-p)) (defun c-indent-line-or-region () *************** *** 2165,2170 **** --- 2214,2220 ---- (defvar c-progress-info nil) (defun c-progress-init (start end context) + ;; This function does not do any hidden buffer changes. (cond ;; Be silent ((not c-progress-interval)) *************** *** 2186,2192 **** )) (defun c-progress-update () ! ;; update progress (if (not (and c-progress-info c-progress-interval)) nil (let ((now (nth 1 (current-time))) --- 2236,2242 ---- )) (defun c-progress-update () ! ;; This function does not do any hidden buffer changes. (if (not (and c-progress-info c-progress-interval)) nil (let ((now (nth 1 (current-time))) *************** *** 2203,2209 **** ))) (defun c-progress-fini (context) ! ;; finished (if (not c-progress-interval) nil (if (or (eq context (aref c-progress-info 3)) --- 2253,2259 ---- ))) (defun c-progress-fini (context) ! ;; This function does not do any hidden buffer changes. (if (not c-progress-interval) nil (if (or (eq context (aref c-progress-info 3)) *************** *** 2364,2369 **** --- 2414,2420 ---- (set-marker point-pos nil)))) (defun c-append-backslashes-forward (to-mark column point-pos) + ;; This function does not do any hidden buffer changes. (let ((state (parse-partial-sexp (c-point 'bol) (point)))) (if column (while *************** *** 2435,2440 **** --- 2486,2492 ---- (= (forward-line 1) 0))))))) (defun c-delete-backslashes-forward (to-mark point-pos) + ;; This function does not do any hidden buffer changes. (while (and (<= (point) to-mark) (progn *************** *** 2478,2483 **** --- 2530,2536 ---- ;; comment. Return a cons of the prefix string and the column where ;; it ends. If fill-prefix is set, it'll override. Note that this ;; function also uses the value of point in some heuristics. + (let* ((here (point)) (prefix-regexp (concat "[ \t]*\\(" c-current-comment-prefix *************** *** 2486,2523 **** prefix-regexp comment-start-skip)) prefix-line comment-prefix res comment-text-end) (cond (fill-prefix (setq res (cons fill-prefix ;; Ugly way of getting the column after the fill ;; prefix; it'd be nice with a current-column ;; that works on strings.. ! (let ((buffer-modified (buffer-modified-p)) ! (buffer-undo-list t) ! (start (point))) (unwind-protect (progn (insert-and-inherit "\n" fill-prefix) (current-column)) ! (delete-region start (point)) ! (set-buffer-modified-p buffer-modified)))))) ((eq lit-type 'c++) (save-excursion ;; Set fallback for comment-prefix if none is found. (setq comment-prefix "// " comment-text-end (cdr lit-limits)) (beginning-of-line) (if (> (point) (car lit-limits)) ;; The current line is not the comment starter, so the ;; comment has more than one line, and it can therefore be ;; used to find the comment fill prefix. (setq prefix-line (point)) (goto-char (car lit-limits)) (if (and (= (forward-line 1) 0) (< (point) (cdr lit-limits))) ;; The line after the comment starter is inside the ;; comment, so we can use it. (setq prefix-line (point)) ;; The comment is only one line. Take the comment prefix ;; from it and keep the indentation. (goto-char (car lit-limits)) --- 2539,2578 ---- prefix-regexp comment-start-skip)) prefix-line comment-prefix res comment-text-end) + (cond (fill-prefix (setq res (cons fill-prefix ;; Ugly way of getting the column after the fill ;; prefix; it'd be nice with a current-column ;; that works on strings.. ! (let ((start (point))) (unwind-protect (progn (insert-and-inherit "\n" fill-prefix) (current-column)) ! (delete-region start (point))))))) ! ((eq lit-type 'c++) (save-excursion ;; Set fallback for comment-prefix if none is found. (setq comment-prefix "// " comment-text-end (cdr lit-limits)) + (beginning-of-line) (if (> (point) (car lit-limits)) ;; The current line is not the comment starter, so the ;; comment has more than one line, and it can therefore be ;; used to find the comment fill prefix. (setq prefix-line (point)) + (goto-char (car lit-limits)) (if (and (= (forward-line 1) 0) (< (point) (cdr lit-limits))) ;; The line after the comment starter is inside the ;; comment, so we can use it. (setq prefix-line (point)) + ;; The comment is only one line. Take the comment prefix ;; from it and keep the indentation. (goto-char (car lit-limits)) *************** *** 2525,2530 **** --- 2580,2586 ---- (goto-char (match-end 0)) (forward-char 2) (skip-chars-forward " \t")) + (let (str col) (if (eq (c-point 'boi) (car lit-limits)) ;; There is only whitespace before the comment *************** *** 2532,2543 **** (setq str (buffer-substring-no-properties (c-point 'bol) (point)) col (current-column)) ;; There is code before the comment starter, so we ;; have to temporarily insert and indent a new line to ;; get the right space/tab mix in the indentation. ! (let ((buffer-modified (buffer-modified-p)) ! (buffer-undo-list t) ! (prefix-len (- (point) (car lit-limits))) tmp) (unwind-protect (progn --- 2588,2598 ---- (setq str (buffer-substring-no-properties (c-point 'bol) (point)) col (current-column)) + ;; There is code before the comment starter, so we ;; have to temporarily insert and indent a new line to ;; get the right space/tab mix in the indentation. ! (let ((prefix-len (- (point) (car lit-limits))) tmp) (unwind-protect (progn *************** *** 2549,2556 **** (setq str (buffer-substring-no-properties (c-point 'bol) (point)) col (current-column))) ! (delete-region (car lit-limits) tmp) ! (set-buffer-modified-p buffer-modified)))) (setq res (if (or (string-match "\\s \\'" str) (not (eolp))) (cons str col) --- 2604,2611 ---- (setq str (buffer-substring-no-properties (c-point 'bol) (point)) col (current-column))) ! (delete-region (car lit-limits) tmp)))) ! (setq res (if (or (string-match "\\s \\'" str) (not (eolp))) (cons str col) *************** *** 2558,2568 **** --- 2613,2625 ---- ;; after it. Default to a single space. (cons (concat str " ") (1+ col)))) ))))) + (t (setq comment-text-end (save-excursion (goto-char (- (cdr lit-limits) 2)) (if (looking-at "\\*/") (point) (cdr lit-limits)))) + (save-excursion (beginning-of-line) (if (and (> (point) (car lit-limits)) *************** *** 2573,2647 **** ;; to be used for the comment fill prefix. (setq prefix-line (point)) (goto-char (car lit-limits)) ! (if (or (/= (forward-line 1) 0) ! (>= (point) (cdr lit-limits)) ! (and (looking-at "[ \t]*\\*/") ! (eq (cdr lit-limits) (match-end 0))) ! (and (looking-at prefix-regexp) ! (<= (1- (cdr lit-limits)) (match-end 0))) ! (and (< here (point)) ! (or (not (match-beginning 0)) ! (looking-at "[ \t]*\\\\?$")))) ! ;; The comment is either one line or the next line ! ;; contains just the comment ender. Also, if point is ! ;; on the comment opener line and the following line is ! ;; empty or doesn't match c-current-comment-prefix we ! ;; assume that this is in fact a not yet closed one line ! ;; comment, so we shouldn't look for the comment prefix ! ;; on the next line. In these cases we have no ! ;; information about a suitable comment prefix, so we ! ;; resort to c-block-comment-prefix. ! (setq comment-prefix (or c-block-comment-prefix "") ! res (let ((buffer-modified (buffer-modified-p)) ! (buffer-undo-list t) ! tmp-pre tmp-post) ! ;; The comment doesn't give any information ! ;; about the indentation column. We'll have to ! ;; temporarily insert a new comment line and ! ;; indent it to find the correct column. ! (unwind-protect ! (progn ! (goto-char (car lit-limits)) ! (if (looking-at comment-start-regexp) ! (goto-char (min (match-end 0) ! comment-text-end)) ! (forward-char 2) ! (skip-chars-forward " \t")) ! (when (eq (char-syntax (char-before)) ?\ ) ! ;; If there's ws on the current ! ;; line, we'll use it instead of ! ;; what's ending comment-prefix. ! (setq comment-prefix ! (concat (substring comment-prefix ! 0 (string-match ! "\\s *\\'" ! comment-prefix)) ! (buffer-substring-no-properties ! (save-excursion ! (skip-chars-backward " \t") ! (point)) ! (point))))) ! (setq tmp-pre (point-marker)) ! ;; We insert an extra non-whitespace ! ;; character before the line break and ! ;; after comment-prefix in case it's ! ;; "" or ends with whitespace. ! (insert-and-inherit "x\n" comment-prefix "x") ! (setq tmp-post (point-marker)) ! (indent-according-to-mode) ! (goto-char (1- tmp-post)) ! (cons (buffer-substring-no-properties ! (c-point 'bol) (point)) ! (current-column))) ! (when tmp-post ! (delete-region tmp-pre tmp-post) ! (set-marker tmp-pre nil) ! (set-marker tmp-post nil)) ! (set-buffer-modified-p buffer-modified)))) ! ;; Otherwise the line after the comment starter is good ! ;; enough to find the prefix in. ! (setq prefix-line (point))))))) ! (or res (save-excursion ;; prefix-line is the bol of a line on which we should try ;; to find the prefix. --- 2630,2753 ---- ;; to be used for the comment fill prefix. (setq prefix-line (point)) (goto-char (car lit-limits)) ! ! (cond ((or (/= (forward-line 1) 0) ! (>= (point) (cdr lit-limits)) ! (and (looking-at "[ \t]*\\*/") ! (eq (cdr lit-limits) (match-end 0))) ! (and (looking-at prefix-regexp) ! (<= (1- (cdr lit-limits)) (match-end 0)))) ! ;; The comment is either one line or the next line contains ! ;; just the comment ender. In this case we have no ! ;; information about a suitable comment prefix, so we resort ! ;; to c-block-comment-prefix. ! (setq comment-prefix (or c-block-comment-prefix ""))) ! ! ((< here (point)) ! ;; The point was on the comment opener line, so we might want ! ;; to treat this as a not yet closed comment. ! ! (if (and (match-beginning 1) ! (/= (match-beginning 1) (match-end 1))) ! ;; Above `prefix-regexp' matched a nonempty prefix on the ! ;; second line, so let's use it. Normally it should do ! ;; to set `prefix-line' and let the code below pick up ! ;; the whole prefix, but if there's no text after the ! ;; match then it will probably fall back to no prefix at ! ;; all if the comment isn't closed yet, so in that case ! ;; it's better to force use of the prefix matched now. ! (if (= (match-end 0) (c-point 'eol)) ! (setq comment-prefix (match-string 1)) ! (setq prefix-line (point))) ! ! ;; There's no nonempty prefix on the line after the ! ;; comment opener. If the line is empty, or if the ! ;; text on has less or equal indentation than the ! ;; comment starter we assume it's an unclosed ! ;; comment starter, i.e. that ! ;; `c-block-comment-prefix' should be used. ! ;; Otherwise we assume it's a closed comment where ! ;; the prefix really is the empty string. ! ;; E.g. this is an unclosed comment: ! ;; ! ;; /* ! ;; foo ! ;; ! ;; But this is not: ! ;; ! ;; /* ! ;; foo ! ;; */ ! ;; ! ;; (Looking for the presence of the comment closer ! ;; rarely works since it's probably the closer of ! ;; some comment further down when the comment ! ;; really is unclosed.) ! (if (<= (save-excursion (back-to-indentation) ! (current-column)) ! (save-excursion (goto-char (car lit-limits)) ! (current-column))) ! (setq comment-prefix (or c-block-comment-prefix "")) ! (setq prefix-line (point))))) ! ! (t ! ;; Otherwise the line after the comment starter is good ! ;; enough to find the prefix in. ! (setq prefix-line (point)))) ! ! (when comment-prefix ! ;; Haven't got the comment prefix on any real line that we ! ;; can take it from, so we have to temporarily insert ! ;; `comment-prefix' on a line and indent it to find the ! ;; correct column and the correct mix of tabs and spaces. ! (setq res ! (let (tmp-pre tmp-post) ! (unwind-protect ! (progn ! ! (goto-char (car lit-limits)) ! (if (looking-at comment-start-regexp) ! (goto-char (min (match-end 0) ! comment-text-end)) ! (forward-char 2) ! (skip-chars-forward " \t")) ! ! (when (eq (char-syntax (char-before)) ?\ ) ! ;; If there's ws on the current line, we'll use it ! ;; instead of what's ending comment-prefix. ! (setq comment-prefix ! (concat (substring comment-prefix ! 0 (string-match ! "\\s *\\'" ! comment-prefix)) ! (buffer-substring-no-properties ! (save-excursion ! (skip-chars-backward " \t") ! (point)) ! (point))))) ! ! (setq tmp-pre (point-marker)) ! ! ;; We insert an extra non-whitespace character ! ;; before the line break and after comment-prefix in ! ;; case it's "" or ends with whitespace. ! (insert-and-inherit "x\n" comment-prefix "x") ! (setq tmp-post (point-marker)) ! ! (indent-according-to-mode) ! ! (goto-char (1- tmp-post)) ! (cons (buffer-substring-no-properties ! (c-point 'bol) (point)) ! (current-column))) ! ! (when tmp-post ! (delete-region tmp-pre tmp-post) ! (set-marker tmp-pre nil) ! (set-marker tmp-post nil)))))))))) ! ! (or res ; Found a good prefix above. ! (save-excursion ;; prefix-line is the bol of a line on which we should try ;; to find the prefix. *************** *** 2664,2674 **** --- 2770,2782 ---- (match-beginning 0) (match-end 0)) fb-endpos (match-end 0))) t)))) + (or (catch 'found ;; Search for a line which has text after the prefix ;; so that we get the proper amount of whitespace ;; after it. We start with the current line, then ;; search backwards, then forwards. + (goto-char prefix-line) (when (and (funcall test-line) (or (/= (match-end 1) (match-end 0)) *************** *** 2681,2686 **** --- 2789,2795 ---- (throw 'found (cons fb-string (progn (goto-char fb-endpos) (current-column))))) + (if (eq lit-type 'c++) ;; For line comments we can search up to and ;; including the first line. *************** *** 2692,2703 **** --- 2801,2815 ---- (while (and (zerop (forward-line -1)) (> (point) (car lit-limits))) (funcall test-line))) + (goto-char prefix-line) (while (and (zerop (forward-line 1)) (< (point) (cdr lit-limits))) (funcall test-line)) + (goto-char prefix-line) nil) + (when fb-string ;; A good line wasn't found, but at least we have a ;; fallback that matches the comment prefix regexp. *************** *** 2708,2713 **** --- 2820,2826 ---- ;; There are ws or text after the prefix, so ;; let's use it. (cons fb-string (current-column))) + ((progn ;; Check if there's any whitespace padding ;; on the comment start line that we can *************** *** 2719,2724 **** --- 2832,2838 ---- (skip-chars-forward " \t")) (or (not (eolp)) (eq (char-syntax (char-before)) ?\ ))) + (setq fb-string (buffer-substring-no-properties (save-excursion (skip-chars-backward " \t") *************** *** 2726,2734 **** (point))) (goto-char fb-endpos) (skip-chars-backward " \t") ! (let ((buffer-modified (buffer-modified-p)) ! (buffer-undo-list t) ! (tmp (point))) ;; Got to mess in the buffer once again to ;; ensure the column gets correct. :P (unwind-protect --- 2840,2847 ---- (point))) (goto-char fb-endpos) (skip-chars-backward " \t") ! ! (let ((tmp (point))) ;; Got to mess in the buffer once again to ;; ensure the column gets correct. :P (unwind-protect *************** *** 2738,2751 **** (c-point 'bol) (point)) (current-column))) ! (delete-region tmp (point)) ! (set-buffer-modified-p buffer-modified)))) (t ;; Last resort: Just add a single space after ;; the prefix. (cons (concat fb-string " ") (progn (goto-char fb-endpos) (1+ (current-column))))))) ;; The line doesn't match the comment prefix regexp. (if comment-prefix ;; We have a fallback for line comments that we must use. --- 2851,2865 ---- (c-point 'bol) (point)) (current-column))) ! (delete-region tmp (point))))) ! (t ;; Last resort: Just add a single space after ;; the prefix. (cons (concat fb-string " ") (progn (goto-char fb-endpos) (1+ (current-column))))))) + ;; The line doesn't match the comment prefix regexp. (if comment-prefix ;; We have a fallback for line comments that we must use. *************** *** 2754,2759 **** --- 2868,2874 ---- comment-prefix) (progn (back-to-indentation) (+ (current-column) (length comment-prefix)))) + ;; Assume we are dealing with a "free text" block ;; comment where the lines doesn't have any comment ;; prefix at all and we should just fill it as *************** *** 2761,2774 **** '("" . 0)))))) )) ! (defun c-mask-comment (fill-paragraph apply-outside-literal fun &rest args) ! ;; Calls FUN with ARGS ar arguments. If point is inside a comment, ! ;; the comment starter and ender are masked and the buffer is ! ;; narrowed to make it look like a normal paragraph during the call. ;; ! ;; FILL-PARAGRAPH is non-nil if called for paragraph filling. The ! ;; position of point is then less significant when doing masking and ! ;; narrowing. (let (fill ;; beg and end limits the region to narrow. end is a marker. beg end --- 2876,2896 ---- '("" . 0)))))) )) ! (defun c-mask-paragraph (fill-paragraph apply-outside-literal fun &rest args) ! ;; Calls FUN with ARGS ar arguments while the current paragraph is ! ;; masked to allow adaptive filling to work correctly. That ! ;; includes narrowing the buffer and, if point is inside a comment, ! ;; masking the comment starter and ender appropriately. ! ;; ! ;; FILL-PARAGRAPH is non-nil if called for whole paragraph filling. ! ;; The position of point is then less significant when doing masking ! ;; and narrowing. ;; ! ;; If APPLY-OUTSIDE-LITERAL is nil then the function will be called ! ;; only if the point turns out to be inside a comment or a string. ! ;; ! ;; This function does not do any hidden buffer changes. ! (let (fill ;; beg and end limits the region to narrow. end is a marker. beg end *************** *** 2785,2795 **** --- 2907,2919 ---- (here (point)) (c-lit-limits c-lit-limits) (c-lit-type c-lit-type)) + ;; Restore point on undo. It's necessary since we do a lot of ;; hidden inserts and deletes below that should be as transparent ;; as possible. (if (and buffer-undo-list (not (eq buffer-undo-list t))) (setq buffer-undo-list (cons (point) buffer-undo-list))) + (save-restriction ;; Widen to catch comment limits correctly. (widen) *************** *** 2798,2803 **** --- 2922,2928 ---- (setq c-lit-limits (c-collect-line-comments c-lit-limits)) (unless c-lit-type (setq c-lit-type (c-literal-type c-lit-limits)))) + (save-excursion (unless (c-safe (backward-char) (forward-paragraph) *************** *** 2812,2825 **** --- 2937,2953 ---- (goto-char here) (backward-paragraph)) (setq beg (point))) + (unwind-protect (progn (cond + ((eq c-lit-type 'c++) ; Line comment. (save-excursion ;; Limit to the comment or paragraph end, whichever ;; comes first. (set-marker end (min end (cdr c-lit-limits))) + (when (<= beg (car c-lit-limits)) ;; The region includes the comment starter, so we must ;; check it. *************** *** 2830,2837 **** (setq beg (c-point 'bol)) ;; The first line contains code before the ;; comment. We must fake a line that doesn't. ! (setq tmp-pre t))) ! )) ((eq c-lit-type 'c) ; Block comment. (when (>= end (cdr c-lit-limits)) ;; The region includes the comment ender which we might --- 2958,2967 ---- (setq beg (c-point 'bol)) ;; The first line contains code before the ;; comment. We must fake a line that doesn't. ! (setq tmp-pre t)))) ! ! (setq apply-outside-literal t)) ! ((eq c-lit-type 'c) ; Block comment. (when (>= end (cdr c-lit-limits)) ;; The region includes the comment ender which we might *************** *** 2843,2905 **** c-current-comment-prefix "\\)\\*/")) (eq (cdr c-lit-limits) (match-end 0)) ! ;; Leave the comment ender on its own line. (set-marker end (point)))) ! (when fill-paragraph ! ;; The comment ender should hang. Replace all cruft ! ;; between it and the last word with one or two 'x' ! ;; and include it in the region. We'll change them ! ;; back to spaces afterwards. ! (let* ((ender-start (save-excursion ! (goto-char (cdr c-lit-limits)) ! (skip-syntax-backward "^w ") ! (point))) ! (point-rel (- ender-start here)) ! spaces) ! (save-excursion ! (goto-char (cdr c-lit-limits)) ! (setq tmp-post (point-marker)) ! (insert ?\n) ! (set-marker end (point)) ! (forward-line -1) ! (if (and (looking-at (concat "[ \t]*\\(\\(" ! c-current-comment-prefix ! "\\)[ \t]*\\)")) ! (eq ender-start (match-end 0))) ! ;; The comment ender is prefixed by nothing ! ;; but a comment line prefix. Remove it ! ;; along with surrounding ws. ! (setq spaces (- (match-end 1) (match-end 2))) ! (goto-char ender-start)) ! (skip-chars-backward " \t\r\n") ! (if (/= (point) ender-start) ! (progn ! (if (<= here (point)) ! ;; Don't adjust point below if it's ! ;; before the string we replace. ! (setq point-rel -1)) ! ;; Keep one or two spaces between the text and ! ;; the ender, depending on how many there are now. ! (unless spaces ! (setq spaces (- ender-start (point)))) ! (setq spaces ! (max (min spaces ! (if sentence-end-double-space 2 1)) ! 1)) ! ;; Insert the filler first to keep marks right. ! (insert-char ?x spaces t) ! (delete-region (point) (+ ender-start spaces)) ! (setq hang-ender-stuck spaces) ! (setq point-rel ! (and (>= point-rel 0) ! (- (point) (min point-rel spaces))))) ! (setq point-rel nil))) ! (if point-rel ! ;; Point was in the middle of the string we ! ;; replaced above, so put it back in the same ! ;; relative position, counting from the end. ! (goto-char point-rel)) ! )))) (when (<= beg (car c-lit-limits)) ;; The region includes the comment starter. (save-excursion --- 2973,3050 ---- c-current-comment-prefix "\\)\\*/")) (eq (cdr c-lit-limits) (match-end 0)) ! ;; The comment ender is on a line of its ! ;; own. Keep it that way. (set-marker end (point)))) ! ! (if fill-paragraph ! ;; The comment ender should hang. Replace all ! ;; cruft between it and the last word with one or ! ;; two 'x' and include it in the region. We'll ! ;; change them back to spaces afterwards. This ! ;; isn't done when auto filling, since that'd ! ;; effectively make it impossible to insert extra ! ;; spaces before the comment ender. ! (let* ((ender-start (save-excursion ! (goto-char (cdr c-lit-limits)) ! (skip-syntax-backward "^w ") ! (point))) ! (point-rel (- ender-start here)) ! spaces) ! ! (save-excursion ! (goto-char (cdr c-lit-limits)) ! (setq tmp-post (point-marker)) ! (insert ?\n) ! (set-marker end (point)) ! (forward-line -1) ! (if (and (looking-at (concat "[ \t]*\\(\\(" ! c-current-comment-prefix ! "\\)[ \t]*\\)")) ! (eq ender-start (match-end 0))) ! ;; The comment ender is prefixed by nothing ! ;; but a comment line prefix. Remove it ! ;; along with surrounding ws. ! (setq spaces (- (match-end 1) (match-end 2))) ! (goto-char ender-start)) ! (skip-chars-backward " \t\r\n") ! ! (if (/= (point) ender-start) ! (progn ! (if (<= here (point)) ! ;; Don't adjust point below if it's ! ;; before the string we replace. ! (setq point-rel -1)) ! ;; Keep one or two spaces between the ! ;; text and the ender, depending on how ! ;; many there are now. ! (unless spaces ! (setq spaces (- ender-start (point)))) ! (setq spaces ! (max ! (min spaces ! (if sentence-end-double-space 2 1)) ! 1)) ! ;; Insert the filler first to keep marks right. ! (insert-char ?x spaces t) ! (delete-region (point) (+ ender-start spaces)) ! (setq hang-ender-stuck spaces) ! (setq point-rel ! (and (>= point-rel 0) ! (- (point) (min point-rel spaces))))) ! (setq point-rel nil))) ! ! (if point-rel ! ;; Point was in the middle of the string we ! ;; replaced above, so put it back in the same ! ;; relative position, counting from the end. ! (goto-char point-rel))) ! ! ;; We're doing auto filling. Just move the marker ! ;; to the comment end to ignore any code after the ! ;; comment. ! (move-marker end (cdr c-lit-limits))))) ! (when (<= beg (car c-lit-limits)) ;; The region includes the comment starter. (save-excursion *************** *** 2908,2914 **** ;; Begin with the next line. (setq beg (c-point 'bonl)) ;; Fake the fill prefix in the first line. ! (setq tmp-pre t))))) ((eq c-lit-type 'string) ; String. (save-excursion (when (>= end (cdr c-lit-limits)) --- 3053,3062 ---- ;; Begin with the next line. (setq beg (c-point 'bonl)) ;; Fake the fill prefix in the first line. ! (setq tmp-pre t)))) ! ! (setq apply-outside-literal t)) ! ((eq c-lit-type 'string) ; String. (save-excursion (when (>= end (cdr c-lit-limits)) *************** *** 2922,2934 **** ;; Leave the start line if it's ;; nothing but an escaped newline. (1+ (match-end 0)) ! (point)))))) ! (t (setq beg nil))) (when tmp-pre ;; Temporarily insert the fill prefix after the comment ;; starter so that the first line looks like any other ;; comment line in the narrowed region. ! (setq fill (c-guess-fill-prefix c-lit-limits c-lit-type)) (unless (string-match (concat "\\`[ \t]*\\(" c-current-comment-prefix "\\)[ \t]*\\'") --- 3070,3115 ---- ;; Leave the start line if it's ;; nothing but an escaped newline. (1+ (match-end 0)) ! (point))))) ! (setq apply-outside-literal t)) ! ! ((eq c-lit-type 'pound) ; Macro ! ;; Narrow to the macro limits if they are nearer than the ! ;; paragraph limits. Don't know if this is necessary but ! ;; do it for completeness sake (doing auto filling at all ! ;; inside macros is bogus to begin with since the line ! ;; continuation backslashes aren't handled). ! (save-excursion ! (c-beginning-of-macro) ! (beginning-of-line) ! (if (> (point) beg) ! (setq beg (point))) ! (c-end-of-macro) ! (forward-line) ! (if (< (point) end) ! (set-marker end (point))))) ! ! (t ; Other code. ! ;; Try to avoid comments and macros in the paragraph to ! ;; avoid that the adaptive fill mode gets the prefix from ! ;; them. ! (c-save-buffer-state nil ! (save-excursion ! (goto-char beg) ! (c-forward-syntactic-ws end) ! (beginning-of-line) ! (setq beg (point)) ! (goto-char end) ! (c-backward-syntactic-ws beg) ! (forward-line) ! (set-marker end (point)))))) ! (when tmp-pre ;; Temporarily insert the fill prefix after the comment ;; starter so that the first line looks like any other ;; comment line in the narrowed region. ! (setq fill (c-save-buffer-state nil ! (c-guess-fill-prefix c-lit-limits c-lit-type))) (unless (string-match (concat "\\`[ \t]*\\(" c-current-comment-prefix "\\)[ \t]*\\'") *************** *** 2965,3013 **** (insert-and-inherit "\n" (car fill)) (insert-char ?x (- col (current-column)) t)) (setcdr tmp-pre (point)))))) ! (if beg ! (let ((fill-prefix ! (or fill-prefix ! ;; Kludge: If the function that adapts the ! ;; fill prefix doesn't produce the required ! ;; comment starter for line comments, then ! ;; force it by setting fill-prefix. ! (when (and (eq c-lit-type 'c++) ! ;; Kludge the kludge: ! ;; filladapt-mode doesn't have ! ;; this problem, but it doesn't ! ;; override fill-context-prefix ! ;; currently (version 2.12). ! (not (and (boundp 'filladapt-mode) ! filladapt-mode)) ! (not (string-match ! "\\`[ \t]*//" ! (or (fill-context-prefix beg end) ! "")))) (car (or fill (c-guess-fill-prefix ! c-lit-limits c-lit-type)))))) ! ;; Save the relative position of point if it's ! ;; outside the region we're going to narrow. Want ! ;; to restore it in that case, but otherwise it ! ;; should be moved according to the called ! ;; function. ! (point-rel (cond ((< (point) beg) (- (point) beg)) ! ((> (point) end) (- (point) end))))) ! ;; Preparations finally done! Now we can call the ! ;; actual function. ! (prog1 ! (save-restriction ! (narrow-to-region beg end) ! (apply fun args)) ! (if point-rel ! ;; Restore point if it was outside the region. ! (if (< point-rel 0) ! (goto-char (+ beg point-rel)) ! (goto-char (+ end point-rel)))))) ! (when apply-outside-literal ! (apply fun args)))) (when (consp tmp-pre) (delete-region (car tmp-pre) (cdr tmp-pre))) (when tmp-post (save-excursion (goto-char tmp-post) --- 3146,3198 ---- (insert-and-inherit "\n" (car fill)) (insert-char ?x (- col (current-column)) t)) (setcdr tmp-pre (point)))))) ! ! (when apply-outside-literal ! ;; `apply-outside-literal' is always set to t here if ! ;; we're inside a literal. ! ! (let ((fill-prefix ! (or fill-prefix ! ;; Kludge: If the function that adapts the fill prefix ! ;; doesn't produce the required comment starter for ! ;; line comments, then force it by setting fill-prefix. ! (when (and (eq c-lit-type 'c++) ! ;; Kludge the kludge: filladapt-mode doesn't ! ;; have this problem, but it currently ! ;; doesn't override fill-context-prefix ! ;; (version 2.12). ! (not (and (boundp 'filladapt-mode) ! filladapt-mode)) ! (not (string-match ! "\\`[ \t]*//" ! (or (fill-context-prefix beg end) ! "")))) ! (c-save-buffer-state nil (car (or fill (c-guess-fill-prefix ! c-lit-limits c-lit-type))))))) ! ! ;; Save the relative position of point if it's outside the ! ;; region we're going to narrow. Want to restore it in that ! ;; case, but otherwise it should be moved according to the ! ;; called function. ! (point-rel (cond ((< (point) beg) (- (point) beg)) ! ((> (point) end) (- (point) end))))) ! ! ;; Preparations finally done! Now we can call the ! ;; actual function. ! (prog1 ! (save-restriction ! (narrow-to-region beg end) ! (apply fun args)) ! (if point-rel ! ;; Restore point if it was outside the region. ! (if (< point-rel 0) ! (goto-char (+ beg point-rel)) ! (goto-char (+ end point-rel)))))))) ! (when (consp tmp-pre) (delete-region (car tmp-pre) (cdr tmp-pre))) + (when tmp-post (save-excursion (goto-char tmp-post) *************** *** 3023,3028 **** --- 3208,3214 ---- (delete-char hang-ender-stuck) (goto-char here)) (set-marker tmp-post nil)) + (set-marker end nil)))) (defun c-fill-paragraph (&optional arg) *************** *** 3050,3056 **** ;; Avoid infinite recursion. (if (not (eq fill-paragraph-function 'c-fill-paragraph)) fill-paragraph-function))) ! (c-mask-comment t nil 'fill-paragraph arg)) ;; Always return t. This has the effect that if filling isn't done ;; above, it isn't done at all, and it's therefore effectively ;; disabled in normal code. --- 3236,3242 ---- ;; Avoid infinite recursion. (if (not (eq fill-paragraph-function 'c-fill-paragraph)) fill-paragraph-function))) ! (c-mask-paragraph t nil 'fill-paragraph arg)) ;; Always return t. This has the effect that if filling isn't done ;; above, it isn't done at all, and it's therefore effectively ;; disabled in normal code. *************** *** 3059,3064 **** --- 3245,3252 ---- (defun c-do-auto-fill () ;; Do automatic filling if not inside a context where it should be ;; ignored. + ;; + ;; This function does not do any hidden buffer changes. (let ((c-auto-fill-prefix ;; The decision whether the line should be broken is actually ;; done in c-indent-new-comment-line, which do-auto-fill *************** *** 3067,3073 **** ;; also used to detect whether fill-prefix is user set or ;; generated automatically by do-auto-fill. fill-prefix)) ! (c-mask-comment nil t 'do-auto-fill))) (defun c-indent-new-comment-line (&optional soft allow-auto-fill) "Break line at point and indent, continuing comment or macro if within one. --- 3255,3261 ---- ;; also used to detect whether fill-prefix is user set or ;; generated automatically by do-auto-fill. fill-prefix)) ! (c-mask-paragraph nil t 'do-auto-fill))) (defun c-indent-new-comment-line (&optional soft allow-auto-fill) "Break line at point and indent, continuing comment or macro if within one. *************** *** 3143,3152 **** (end-of-line) (< (point) (cdr c-lit-limits)))) ;; Inside a comment that should be continued. ! (let ((fill (c-guess-fill-prefix ! (setq c-lit-limits ! (c-collect-line-comments c-lit-limits)) ! c-lit-type)) (pos (point)) (comment-text-end (or (and (eq c-lit-type 'c) --- 3331,3341 ---- (end-of-line) (< (point) (cdr c-lit-limits)))) ;; Inside a comment that should be continued. ! (let ((fill (c-save-buffer-state nil ! (c-guess-fill-prefix ! (setq c-lit-limits ! (c-collect-line-comments c-lit-limits)) ! c-lit-type))) (pos (point)) (comment-text-end (or (and (eq c-lit-type 'c) *************** *** 3279,3285 **** (c-query-and-set-macro-start) (<= (save-excursion (goto-char c-macro-start) ! (if (looking-at "#[ \t]*[a-zA-Z0-9!]+") (goto-char (match-end 0))) (point)) (point)))) --- 3468,3474 ---- (c-query-and-set-macro-start) (<= (save-excursion (goto-char c-macro-start) ! (if (looking-at c-opt-cpp-start) (goto-char (match-end 0))) (point)) (point)))) From MAILER-DAEMON Thu Jul 03 08:46:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3RG-0000Ph-2k for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:43:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3Mz-0007pU-MZ for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:39:25 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3Hd-0006fW-8e for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:34:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fw-0006He-6j for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:08 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Ev-0005H0-A4 for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-langs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:43:42 -0000 Index: emacs/lisp/progmodes/cc-langs.el diff -c emacs/lisp/progmodes/cc-langs.el:1.22 emacs/lisp/progmodes/cc-langs.el:1.23 *** emacs/lisp/progmodes/cc-langs.el:1.22 Tue May 13 17:03:53 2003 --- emacs/lisp/progmodes/cc-langs.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-langs.el --- language specific settings for CC Mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-langs.el --- language specific settings for CC Mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 31,36 **** --- 30,116 ---- ;;; Commentary: + ;; HACKERS NOTE: There's heavy macro magic here. If you need to make + ;; changes in this or other files containing `c-lang-defconst' but + ;; don't want to read through the longer discussion below then read + ;; this: + ;; + ;; o A change in a `c-lang-defconst' or `c-lang-defvar' will not take + ;; effect if the file containing the mode init function (typically + ;; cc-mode.el) is byte compiled. + ;; o To make changes show in font locking you need to reevaluate the + ;; `*-font-lock-keywords-*' constants, which normally is easiest to + ;; do with M-x eval-buffer in cc-fonts.el. + ;; o In either case it's necessary to reinitialize the mode to make + ;; the changes show in an existing buffer. + + ;;; Introduction to the language dependent variable system: + ;; + ;; This file contains all the language dependent variables, except + ;; those specific for font locking which reside in cc-fonts.el. As + ;; far as possible, all the differences between the languages that CC + ;; Mode supports are described with these variables only, so that the + ;; code can be shared. + ;; + ;; The language constant system (see cc-defs.el) is used to specify + ;; various language dependent info at a high level, such as lists of + ;; keywords, and then from them generate - at compile time - the + ;; various regexps and other low-level structures actually employed in + ;; the code at runtime. + ;; + ;; This system is also designed to make it easy for developers of + ;; derived modes to customize the source constants for new language + ;; variants, without having to keep up with the exact regexps etc that + ;; are used in each CC Mode version. It's possible from an external + ;; package to add a new language by inheriting an existing one, and + ;; then change specific constants as necessary for the new language. + ;; The old values for those constants (and the values of all the other + ;; high-level constants) may be used to build the new ones, and those + ;; new values will in turn be used by the low-level definitions here + ;; to build the runtime constants appropriately for the new language + ;; in the current version of CC Mode. + ;; + ;; Like elsewhere in CC Mode, the existence of a doc string signifies + ;; that a language constant is part of the external API, and that it + ;; therefore can be used with a high confidence that it will continue + ;; to work with future versions of CC Mode. Even so, it's not + ;; unlikely that such constants will change meaning slightly as this + ;; system is refined further; a certain degree of dependence on the CC + ;; Mode version is unavoidable when hooking in at this level. Also + ;; note that there's still work to be done to actually use these + ;; constants everywhere inside CC Mode; there are still hardcoded + ;; values in many places in the code. + ;; + ;; Separate packages will also benefit from the compile time + ;; evaluation; the byte compiled file(s) for them will contain the + ;; compiled runtime constants ready for use by (the byte compiled) CC + ;; Mode, and the source definitions in this file don't have to be + ;; loaded then. However, if a byte compiled package is loaded that + ;; has been compiled with a different version of CC Mode than the one + ;; currently loaded, then the compiled-in values will be discarded and + ;; new ones will be built when the mode is initialized. That will + ;; automatically trig a load of the file(s) containing the source + ;; definitions (i.e. this file and/or cc-fonts.el) if necessary. + ;; + ;; A small example of a derived mode is available at + ;; . It also + ;; contains some useful hints for derived mode developers. + + ;;; Using language variables: + ;; + ;; The `c-lang-defvar' forms in this file comprise the language + ;; variables that CC Mode uses. It does not work to use + ;; `c-lang-defvar' anywhere else (which isn't much of a limitation + ;; since these variables sole purpose is to interface with the CC Mode + ;; core functions). The values in these `c-lang-defvar's are not + ;; evaluated right away but instead collected to a single large `setq' + ;; that can be inserted for a particular language with the + ;; `c-init-language-vars' macro. + + ;; This file is only required at compile time, or when not running + ;; from byte compiled files, or when the source definitions for the + ;; language constants are requested. + ;;; Code: (eval-when-compile *************** *** 39,738 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) (cc-require 'cc-vars) ! ;; Some support functions that are used when the language specific ! ;; constants are built. Since the constants are built during compile ! ;; time, these need to be defined then too. (eval-and-compile ! ;; `require' in XEmacs doesn't have the third NOERROR argument. ! (condition-case nil (require 'regexp-opt) (file-error nil)) ! (if (fboundp 'regexp-opt) ! (fset 'c-regexp-opt (symbol-function 'regexp-opt)) ! ;; Emacs 19.34 doesn't have the regexp-opt package. ! (defun c-regexp-opt (strings &optional paren) ! (if paren ! (concat "\\(" (mapconcat 'regexp-quote strings "\\|") "\\)") ! (mapconcat 'regexp-quote strings "\\|")))) ! ! (if (fboundp 'regexp-opt-depth) ! (fset 'c-regexp-opt-depth (symbol-function 'regexp-opt-depth)) ! ;; Emacs 19.34 doesn't have the regexp-opt package. ! (defun c-regexp-opt-depth (regexp) ! ;; This is the definition of `regexp-opt-depth' in Emacs 20. ! (save-match-data ! ;; Hack to signal an error if REGEXP does not have balanced ! ;; parentheses. ! (string-match regexp "") ! ;; Count the number of open parentheses in REGEXP. ! (let ((count 0) start) ! (while (string-match "\\\\(" regexp start) ! (setq count (1+ count) start (match-end 0))) ! count)))) ! ! (defun c-delete-duplicates (list) ! (let ((tail list)) ! (while tail ! (setcdr tail (delete (car tail) (cdr tail))) ! (setq tail (cdr tail))) ! list)) ! ! (defun c-make-keywords-re (adorn &rest lists) ! "Make a regexp that matches all the strings in all the lists. ! Duplicates in the lists are removed. The regexp may contain zero or ! more submatch expressions. If ADORN is non-nil there will be at least ! one submatch which matches the whole keyword, and the regexp will also ! not match a prefix of any identifier. Adorned regexps cannot be ! appended." ! (let ((list (copy-sequence (apply 'append lists)))) ! (setq list (c-delete-duplicates list)) ! (if list ! (let ((re (c-regexp-opt list))) ! ;; Add our own grouping parenthesis around re instead of ! ;; passing adorn to regexp-opt, since it in XEmacs makes the ! ;; top level grouping "shy". ! (if adorn ! (concat "\\(" re "\\)\\>\\([^_]\\|$\\)") ! re)) ! "\\<\\>" ; Matches nothing. ! ))) ! (put 'c-make-keywords-re 'lisp-indent-function 1) ! ) ! ;; Building of constants that are parameterized on a per-language ! ;; basis. ! (eval-and-compile ! (defvar c-macroexpand-mode nil ! ;; Dynamically bound to the mode symbol during `c-lang-defconst' ! ;; so that `c-lang-var' can do the right expansion. ! ) ! ! (defmacro c-lang-defconst (var &rest args) ! ;; Sets the mode specific values of the constant VAR. The rest of ! ;; the arguments are one or more repetitions of MODE VAL. MODE is ! ;; the mode name without the "-mode" suffix, or a list of such ! ;; mode names, or `all' as a shortcut for a list of all modes. ! ;; VAL is evaluated (during compilation) for each mode with ! ;; `c-macroexpand-mode' temporarily bound, so `c-lang-var' without ! ;; an explicit mode may be used within it. The assignments in ! ;; ARGS are processed in sequence, similar to `setq'. ! (let* ((res (list 'progn)) ! (res-tail res)) ! (while args ! (let ((mode (car args))) ! (cond ((eq mode 'all) ! (setq mode '(c c++ objc java idl pike))) ! ((symbolp mode) ! (setq mode (list mode)))) ! (while mode ! (let* ((c-macroexpand-mode ! (intern (concat (symbol-name (car mode)) "-mode"))) ! (val (eval (car (cdr args))))) ! ;; Need to install the value also during compilation, ! ;; since val might refer to earlier mode specific ! ;; values. ! (put var c-macroexpand-mode val) ! (setcdr res-tail (list `(put ',var ',c-macroexpand-mode ',val))) ! (setq res-tail (cdr res-tail))) ! (setq mode (cdr mode)))) ! (setq args (cdr (cdr args)))) ! res)) ! (put 'c-lang-defconst 'lisp-indent-function 1) ! ! (defmacro c-lang-var (var &optional mode) ! ;; Get the mode specific value of the variable VAR in mode MODE. ! ;; MODE is the mode name without the "-mode" suffix. It may also ! ;; be nil to use the current value of `c-macroexpand-mode' (which ! ;; is useful inside `c-lang-defconst') or `c-buffer-is-cc-mode' ! ;; (which is useful inside `c-lang-defvar'). ! `(get ',var ,(if (eq mode 'nil) ! (if c-macroexpand-mode ! ;; In the macro expansion of c-lang-defconst. ! `(quote ,c-macroexpand-mode) ! `c-buffer-is-cc-mode) ! `(quote ,(intern (concat (symbol-name mode) "-mode")))))) ! ;; These are used to collect the init forms from the subsequent ! ;; `c-lang-defvar'. They become a big setq in the ! ;; `c-init-lang-defvars' lambda below. ! (defconst c-lang-defvar-init-form (list 'setq)) ! (defvar c-lang-defvar-init-form-tail nil) ! (setq c-lang-defvar-init-form-tail c-lang-defvar-init-form) ! ! (defmacro c-lang-defvar (var val) ! ;; Declares the buffer local variable VAR to get the value VAL at ! ;; mode initialization, at which point VAL is evaluated. ! ;; `c-lang-var' is typically used in VAL to get the right value ! ;; according to `c-buffer-is-cc-mode'. ! (setcdr c-lang-defvar-init-form-tail (list var val)) ! (setq c-lang-defvar-init-form-tail ! (cdr (cdr c-lang-defvar-init-form-tail))) ! `(progn ! (defvar ,var nil) ! (make-variable-buffer-local ',var))) ! (put 'c-lang-defvar 'lisp-indent-function 1) ! ) - ;; Regexp describing a `symbol' in all languages, not excluding - ;; keywords. (c-lang-defconst c-symbol-key ! (c c++ objc java idl) ! (if (string-match "[[:alpha:]]" "a") ! "[[:alpha:]_][[:alnum:]_]*" ; Emacs 21. ! ;; We cannot use just `word' syntax class since `_' cannot be ! ;; in word class. Putting underscore in word class breaks ! ;; forward word movement behavior that users are familiar ! ;; with. Besides, it runs counter to Emacs convention. ! "[a-zA-Z_]\\(\\w\\|_\\)*") ! pike (concat "\\(" (c-lang-var c-symbol-key c) "\\|" ! (c-make-keywords-re nil ! '("`+" "`-" "`&" "`|" "`^" "`<<" "`>>" "`*" "`/" "`%" "`~" ! "`==" "`<" "`>" "`!" "`[]" "`[]=" "`->" "`->=" "`()" "``+" ! "``-" "``&" "``|" "``^" "``<<" "``>>" "``*" "``/" "``%" ! "`+=")) ! "\\)")) ! (c-lang-defvar c-symbol-key (c-lang-var c-symbol-key)) ! ! ;; Number of regexp grouping parens in c-symbol-key. ! (c-lang-defvar c-symbol-key-depth (c-regexp-opt-depth c-symbol-key)) ! ! (defvar c-stmt-delim-chars "^;{}?:") ! ;; The characters that should be considered to bound statements. To ! ;; optimize c-crosses-statement-barrier-p somewhat, it's assumed to ! ;; begin with "^" to negate the set. If ? : operators should be ! ;; detected then the string must end with "?:". ! ! (defvar c-stmt-delim-chars-with-comma "^;,{}?:") ! ;; Variant of c-stmt-delim-chars that additionally contains ','. ! ! ;; HELPME: Many of the following keyword lists are more or less bogus ! ;; for some languages (notably ObjC and IDL). The effects of the ! ;; erroneous values in the language handling are mostly negligible ! ;; since the constants that actually matter in the syntax detection ! ;; code are mostly correct in the situations they are used, but I'd ! ;; still appreciate help to get them correct for other uses. - ;; Primitive type keywords. (c-lang-defconst c-primitive-type-kwds ! (c c++ objc idl) '("char" "double" "float" "int" "long" "short" ! "signed" "unsigned" "void") java '("boolean" "byte" "char" "double" "float" "int" "long" "short" "void") ! pike '("constant" "float" "int" "mapping" "multiset" "object" "program" ! "string" "void")) ! ! ;; Declaration specifier keywords. ! (c-lang-defconst c-specifier-kwds ! c '("auto" "const" "extern" "register" "static" "volatile") ! (c++ objc idl) (append '("friend" "inline" "virtual") ! (c-lang-var c-specifier-kwds c)) ! ;; Note: `const' is not used in Java, but it's still a reserved keyword. ! java '("abstract" "const" "final" "native" "private" "protected" ! "public" "static" "synchronized" "transient" "volatile") ! pike '("final" "inline" "local" "nomask" "optional" "private" ! "protected" "static" "variant")) ! ! ;; Class/struct declaration keywords. ! (c-lang-defconst c-class-kwds ! c '("struct" "union") ! c++ '("class" "struct" "union") ! objc '("interface" "implementation") java '("class" "interface") ! idl '("interface" "valuetype" "class" "struct" "union") pike '("class")) - ;; Regexp matching the start of a class. (c-lang-defconst c-class-key ! all (c-make-keywords-re t (c-lang-var c-class-kwds))) ! (c-lang-defconst c-class-key ; ObjC needs some tuning of the regexp. ! objc (concat "@" (c-lang-var c-class-key))) ! (c-lang-defvar c-class-key (c-lang-var c-class-key)) ! ! ;; Keywords introducing blocks besides classes that contain another ! ;; declaration level. ! (c-lang-defconst c-other-decl-block-kwds ! c '("extern") c++ '("namespace" "extern") ! idl '("module")) - ;; Regexp matching the start of blocks besides classes that contain - ;; another declaration level. (c-lang-defconst c-other-decl-block-key ! all (c-make-keywords-re t (c-lang-var c-other-decl-block-kwds))) ! (c-lang-defvar c-other-decl-block-key (c-lang-var c-other-decl-block-key)) - ;; Keywords introducing declarations that can contain a block which - ;; might be followed by variable declarations, e.g. like "foo" in - ;; "class Foo { ... } foo;". So if there is a block in a declaration - ;; like that, it ends with the following ';' and not right away. (c-lang-defconst c-block-decls-with-vars ! c '("struct" "union" "enum" "typedef") ! c++ '("class" "struct" "union" "enum" "typedef")) - ;; Regexp matching the `c-block-decls-with-vars' keywords, or nil in - ;; languages without such constructs. (c-lang-defconst c-opt-block-decls-with-vars-key ! all (and (c-lang-var c-block-decls-with-vars) ! (c-make-keywords-re t (c-lang-var c-block-decls-with-vars)))) (c-lang-defvar c-opt-block-decls-with-vars-key ! (c-lang-var c-opt-block-decls-with-vars-key)) ! ! ;; Keywords introducing declarations that has not been accounted for ! ;; by any of the above. ! (c-lang-defconst c-other-decl-kwds ! ;; FIXME: Shouldn't "template" be moved to c-specifier-kwds for C++? ! c++ '("template") ! java '("import" "package") ! pike '("import" "inherit")) ! ! ;; Keywords introducing extra declaration specifiers in the region ! ;; between the header and the body (i.e. the "K&R-region") in ! ;; declarations. ! (c-lang-defconst c-decl-spec-kwds java '("extends" "implements" "throws")) ! ;; Protection label keywords in classes. ! (c-lang-defconst c-protection-kwds ! (c++ objc) '("private" "protected" "public")) - ;; Statement keywords followed directly by a substatement. (c-lang-defconst c-block-stmt-1-kwds ! (c pike) '("do" "else") ! (c++ objc) '("do" "else" "asm" "try") ! java '("do" "else" "finally" "try")) - ;; Regexp matching the start of any statement followed directly by a - ;; substatement (doesn't match a bare block, however). (c-lang-defconst c-block-stmt-1-key ! all (c-make-keywords-re t (c-lang-var c-block-stmt-1-kwds))) ! (c-lang-defvar c-block-stmt-1-key (c-lang-var c-block-stmt-1-key)) - ;; Statement keywords followed by a paren sexp and then by a substatement. (c-lang-defconst c-block-stmt-2-kwds ! c '("for" "if" "switch" "while") ! (c++ objc) '("for" "if" "switch" "while" "catch") java '("for" "if" "switch" "while" "catch" "synchronized") ! pike '("for" "if" "switch" "while" "foreach")) - ;; Regexp matching the start of any statement followed by a paren sexp - ;; and then by a substatement. (c-lang-defconst c-block-stmt-2-key ! all (c-make-keywords-re t (c-lang-var c-block-stmt-2-kwds))) ! (c-lang-defvar c-block-stmt-2-key (c-lang-var c-block-stmt-2-key)) - ;; Regexp matching the start of any statement that has a substatement - ;; (except a bare block). Nil in languages that doesn't have such - ;; constructs. (c-lang-defconst c-opt-block-stmt-key ! all (if (or (c-lang-var c-block-stmt-1-kwds) ! (c-lang-var c-block-stmt-2-kwds)) ! (c-make-keywords-re t ! (c-lang-var c-block-stmt-1-kwds) ! (c-lang-var c-block-stmt-2-kwds)))) ! (c-lang-defvar c-opt-block-stmt-key (c-lang-var c-opt-block-stmt-key)) - ;; Statement keywords followed by an expression or nothing. (c-lang-defconst c-simple-stmt-kwds ! (c c++ objc) '("break" "continue" "goto" "return") ;; Note: `goto' is not valid in Java, but the keyword is still reserved. java '("break" "continue" "goto" "return" "throw") ! pike '("break" "continue" "return")) - ;; Statement keywords followed by an assembler expression. (c-lang-defconst c-asm-stmt-kwds ! (c c++) '("asm" "__asm__")) - ;; Regexp matching the start of an assembler statement. Nil in - ;; languages that doesn't support that. (c-lang-defconst c-opt-asm-stmt-key ! all (if (c-lang-var c-asm-stmt-kwds) ! (c-make-keywords-re t (c-lang-var c-asm-stmt-kwds)))) ! (c-lang-defvar c-opt-asm-stmt-key (c-lang-var c-opt-asm-stmt-key)) ! ! ;; Keywords introducing labels in blocks. ! (c-lang-defconst c-label-kwds (c c++ objc java pike) '("case" "default")) - ;; Regexp matching any keyword that introduces a label. (c-lang-defconst c-label-kwds-regexp ! all (c-make-keywords-re t (c-lang-var c-label-kwds))) ! (c-lang-defvar c-label-kwds-regexp (c-lang-var c-label-kwds-regexp)) - ;; Keywords that can occur anywhere in expressions. (c-lang-defconst c-expr-kwds ! (c objc) '("sizeof") ! c++ '("sizeof" "delete" "new" "operator" "this" "throw") ! java '("instanceof" "new" "super" "this") ! pike '("sizeof" "catch" "class" "gauge" "lambda" "predef")) ! ! ;; Keywords that start lambda constructs, i.e. function definitions in ! ;; expressions. ! (c-lang-defconst c-lambda-kwds pike '("lambda")) - ;; Regexp matching the start of lambda constructs, or nil in languages - ;; that doesn't have such things. (c-lang-defconst c-opt-lambda-key ! pike (c-make-keywords-re t (c-lang-var c-lambda-kwds))) ! (c-lang-defvar c-opt-lambda-key (c-lang-var c-opt-lambda-key)) ! ! ;; Keywords that start constructs followed by statement blocks which ! ;; can be used in expressions (the gcc extension for this in C and C++ ! ;; is handled separately). ! (c-lang-defconst c-inexpr-block-kwds pike '("catch" "gauge")) - ;; Regexp matching the start of in-expression statements, or nil in - ;; languages that doesn't have such things. (c-lang-defconst c-opt-inexpr-block-key ! pike (c-make-keywords-re t (c-lang-var c-inexpr-block-kwds))) ! (c-lang-defvar c-opt-inexpr-block-key (c-lang-var c-opt-inexpr-block-key)) - ;; Keywords that start classes in expressions. (c-lang-defconst c-inexpr-class-kwds java '("new") pike '("class")) - ;; Regexp matching the start of a class in an expression, or nil in - ;; languages that doesn't have such things. (c-lang-defconst c-opt-inexpr-class-key ! (java pike) (c-make-keywords-re t (c-lang-var c-inexpr-class-kwds))) ! (c-lang-defvar c-opt-inexpr-class-key (c-lang-var c-opt-inexpr-class-key)) - ;; Regexp matching the start of any class, both at top level and in - ;; expressions. (c-lang-defconst c-any-class-key ! all (c-make-keywords-re t ! (c-lang-var c-class-kwds) ! (c-lang-var c-inexpr-class-kwds))) ! (c-lang-defconst c-any-class-key ; ObjC needs some tuning of the regexp. ! objc (concat "@" (c-lang-var c-any-class-key))) ! (c-lang-defvar c-any-class-key (c-lang-var c-any-class-key)) ! ! ;; Regexp matching the start of any declaration-level block that ! ;; contain another declaration level, i.e. that isn't a function ! ;; block. (c-lang-defconst c-decl-block-key ! all (c-make-keywords-re t ! (c-lang-var c-class-kwds) ! (c-lang-var c-other-decl-block-kwds) ! (c-lang-var c-inexpr-class-kwds))) ! (c-lang-defconst c-decl-block-key ; ObjC needs some tuning of the regexp. ! objc (concat "@" (c-lang-var c-decl-block-key))) ! (c-lang-defvar c-decl-block-key (c-lang-var c-decl-block-key)) - ;; Keywords that can introduce bitfields. (c-lang-defconst c-bitfield-kwds ! (c c++) '("char" "int" "long" "signed" "unsigned")) - ;; Regexp matching the start of a bitfield (not uniquely), or nil in - ;; languages without bitfield support. (c-lang-defconst c-opt-bitfield-key ! (c c++) (c-make-keywords-re t (c-lang-var c-bitfield-kwds))) ! (c-lang-defvar c-opt-bitfield-key (c-lang-var c-opt-bitfield-key)) - ;; All keywords as a list. (c-lang-defconst c-keywords ! all (c-delete-duplicates ! (append (c-lang-var c-primitive-type-kwds) ! (c-lang-var c-specifier-kwds) ! (c-lang-var c-class-kwds) ! (c-lang-var c-other-decl-block-kwds) ! (c-lang-var c-block-decls-with-vars) ! (c-lang-var c-other-decl-kwds) ! (c-lang-var c-decl-spec-kwds) ! (c-lang-var c-protection-kwds) ! (c-lang-var c-block-stmt-1-kwds) ! (c-lang-var c-block-stmt-2-kwds) ! (c-lang-var c-simple-stmt-kwds) ! (c-lang-var c-asm-stmt-kwds) ! (c-lang-var c-label-kwds) ! (c-lang-var c-expr-kwds) ! (c-lang-var c-lambda-kwds) ! (c-lang-var c-inexpr-block-kwds) ! (c-lang-var c-inexpr-class-kwds) ! (c-lang-var c-bitfield-kwds) ! nil))) ! (c-lang-defvar c-keywords (c-lang-var c-keywords)) - ;; All keywords as an adorned regexp. (c-lang-defconst c-keywords-regexp ! all (c-make-keywords-re t (c-lang-var c-keywords))) ! (c-lang-defvar c-keywords-regexp (c-lang-var c-keywords-regexp)) ! ;; Regexp matching an access protection label in a class, or nil in ! ;; languages that doesn't have such things. ! (c-lang-defconst c-opt-access-key ! c++ (concat "\\(" ! (c-make-keywords-re nil (c-lang-var c-protection-kwds)) ! "\\)[ \t\n\r]*:")) ! (c-lang-defconst c-opt-access-key ! objc (concat "@" (c-make-keywords-re t (c-lang-var c-protection-kwds)))) ! (c-lang-defvar c-opt-access-key (c-lang-var c-opt-access-key)) ! ;; Regexp matching a normal label, i.e. not a label that's recognized ! ;; with a keyword, like switch labels. It's only used at the ! ;; beginning of a statement. ! (c-lang-defconst c-label-key ! all (concat (c-lang-var c-symbol-key) "[ \t\n\r]*:\\([^:]\\|$\\)")) ! (c-lang-defvar c-label-key (c-lang-var c-label-key)) ! ;; Regexp matching the beginning of a declaration specifier in the ! ;; region between the header and the body of a declaration. ! ;; ! ;; FIXME: This is currently not used in a uniformly; c++-mode and ! ;; java-mode each have their own ways of using it. ! (c-lang-defconst c-opt-decl-spec-key ! c++ (concat ":?[ \t\n\r]*\\(virtual[ \t\n\r]+\\)?\\(" ! (c-make-keywords-re nil (c-lang-var c-protection-kwds)) ! "\\)[ \t\n\r]+" ! (c-lang-var c-symbol-key)) ! java (c-make-keywords-re t (c-lang-var c-decl-spec-kwds))) ! (c-lang-defvar c-opt-decl-spec-key (c-lang-var c-opt-decl-spec-key)) - ;; Regexp describing friend declarations classes, or nil in languages - ;; that doesn't have such things. (c-lang-defconst c-opt-friend-key ! ;; FIXME: Ought to use c-specifier-kwds or similar, and the template ! ;; skipping isn't done properly. c++ "friend[ \t]+\\|template[ \t]*<.+>[ \t]*friend[ \t]+") ! (c-lang-defvar c-opt-friend-key (c-lang-var c-opt-friend-key)) - ;; Special regexp to match the start of methods. (c-lang-defconst c-opt-method-key objc (concat ! "^\\s *[+-]\\s *" ! "\\(([^)]*)\\)?" ; return type ! ;; \\s- in objc syntax table does not include \n ! ;; since it is considered the end of //-comments. ! "[ \t\n]*" (c-lang-var c-symbol-key))) ! (c-lang-defvar c-opt-method-key (c-lang-var c-opt-method-key)) ! ! ;; Name of functions in cpp expressions that take an identifier as the ! ;; argument. ! (c-lang-defconst c-cpp-defined-fns ! (c c++) '("defined") ! pike '("defined" "efun" "constant")) ! ! ;; List of open- and close-chars that makes up a pike-style brace ! ;; list, i.e. for a `([ ])' list there should be a cons (?\[ . ?\]) in ! ;; this list. ! (c-lang-defconst c-special-brace-lists pike '((?{ . ?}) ! (?\[ . ?\]) ! (?< . ?>))) ! (c-lang-defvar c-special-brace-lists (c-lang-var c-special-brace-lists)) ! ! ;; Non-nil means K&R style argument declarations are valid. ! (c-lang-defconst c-recognize-knr-p c t) ! (c-lang-defvar c-recognize-knr-p (c-lang-var c-recognize-knr-p)) ! ! ;; Regexp to match the start of any type of comment. ! ;; ! ;; FIXME: Ought to use c-comment-prefix-regexp with some modifications ! ;; instead of this. ! (c-lang-defconst c-comment-start-regexp ! (c c++ objc idl pike) "/[/*]" ! ;; We need to match all 3 Java style comments ! ;; 1) Traditional C block; 2) javadoc /** ...; 3) C++ style ! java "/\\(/\\|[*][*]?\\)") ! (c-lang-defvar c-comment-start-regexp (c-lang-var c-comment-start-regexp)) ! ! ;; Strings that starts and ends comments inserted with M-; etc. ! ;; comment-start and comment-end are initialized from these. ! (c-lang-defconst comment-start ! c "/* " ! (c++ objc java idl pike) "// ") ! (c-lang-defvar comment-start (c-lang-var comment-start)) ! (c-lang-defconst comment-end ! c "*/" ! (c++ objc java idl pike) "") ! (c-lang-defvar comment-end (c-lang-var comment-end)) ! ! ;; Regexp that matches when there is no syntactically significant text ! ;; before eol. Macros are regarded as syntactically significant text ! ;; here. ! (c-lang-defvar c-syntactic-eol ! (concat (concat ! ;; Match horizontal whitespace and block comments that ! ;; doesn't contain newlines. ! "\\(\\s \\|" ! (concat "/\\*" ! "\\([^*\n\r]\\|\\*[^/\n\r]\\)*" ! "\\*/") ! "\\)*") ! (concat ! ;; Match eol (possibly inside a block comment), or the ! ;; beginning of a line comment. Note: This has to be ! ;; modified for awk where line comments start with '#'. ! "\\(" ! (concat "\\(" ! "/\\*\\([^*\n\r]\\|\\*[^/\n\r]\\)*" ! "\\)?" ! "$") ! "\\|//\\)"))) ! ! ;; Regexp to append to paragraph-start. ! (c-lang-defconst paragraph-start ! (c c++ objc idl) "$" ! java "\\(@[a-zA-Z]+\\>\\|$\\)" ; For Javadoc. ! pike "\\(@[a-zA-Z]+\\>\\([^{]\\|$\\)\\|$\\)") ; For Pike refdoc. ! ! ;; Regexp to append to paragraph-separate. ! (c-lang-defconst paragraph-separate ! (c c++ objc java idl) "$" ! pike (c-lang-var paragraph-start)) ! ! ;; Prefix added to `c-current-comment-prefix' to set ! ;; `c-opt-in-comment-lc', or nil if it should be nil. ! (c-lang-defconst c-in-comment-lc-prefix pike "@[\n\r]\\s *") ! ! ;; Regexp to match in-comment line continuations, or nil in languages ! ;; where that isn't applicable. It's assumed that it only might match ! ;; from and including the last character on a line. Built from ! ;; *-in-comment-lc-prefix and the current value of ! ;; c-current-comment-prefix. ! (c-lang-defvar c-opt-in-comment-lc ! (if (c-lang-var c-in-comment-lc-prefix) ! (concat (c-lang-var c-in-comment-lc-prefix) ! c-current-comment-prefix))) ! ! (defconst c-init-lang-defvars ! ;; Make a lambda of the collected `c-lang-defvar' initializations. ! (cc-eval-when-compile ! (if (cc-bytecomp-is-compiling) ! (byte-compile-lambda `(lambda () ,c-lang-defvar-init-form)) ! `(lambda () ,c-lang-defvar-init-form)))) ! ! (defun c-init-language-vars () ! ;; Initialize all `c-lang-defvar' variables according to ! ;; `c-buffer-is-cc-mode'. ! (if (not (memq c-buffer-is-cc-mode ! '(c-mode c++-mode objc-mode java-mode idl-mode pike-mode))) ! (error "Cannot initialize language variables for unknown mode %s" ! c-buffer-is-cc-mode)) ! (funcall c-init-lang-defvars)) ! ! ;; Regexp trying to describe the beginning of a Java top-level ! ;; definition. This is not used by CC Mode, nor is it maintained ! ;; since it's practically impossible to write a regexp that reliably ! ;; matches such a construct. Other tools are necessary. ! (defconst c-Java-defun-prompt-regexp ! "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*") ! ;; Syntax tables. ! (defun c-populate-syntax-table (table) ! ;; Populate the syntax TABLE ! (modify-syntax-entry ?_ "_" table) ! (modify-syntax-entry ?\\ "\\" table) ! (modify-syntax-entry ?+ "." table) ! (modify-syntax-entry ?- "." table) ! (modify-syntax-entry ?= "." table) ! (modify-syntax-entry ?% "." table) ! (modify-syntax-entry ?< "." table) ! (modify-syntax-entry ?> "." table) ! (modify-syntax-entry ?& "." table) ! (modify-syntax-entry ?| "." table) ! (modify-syntax-entry ?\' "\"" table) ! ;; Set up block and line oriented comments. The new C standard ! ;; mandates both comment styles even in C, so since all languages ! ;; now require dual comments, we make this the default. ! (cond ! ;; XEmacs 19 & 20 ! ((memq '8-bit c-emacs-features) ! (modify-syntax-entry ?/ ". 1456" table) ! (modify-syntax-entry ?* ". 23" table)) ! ;; Emacs 19 & 20 ! ((memq '1-bit c-emacs-features) ! (modify-syntax-entry ?/ ". 124b" table) ! (modify-syntax-entry ?* ". 23" table)) ! ;; incompatible ! (t (error "CC Mode is incompatible with this version of Emacs")) ! ) ! (modify-syntax-entry ?\n "> b" table) ! ;; Give CR the same syntax as newline, for selective-display ! (modify-syntax-entry ?\^m "> b" table)) ! ! ;;;###autoload ! (defvar c-mode-syntax-table nil ! "Syntax table used in c-mode buffers.") ! (if c-mode-syntax-table ! () ! (setq c-mode-syntax-table (make-syntax-table)) ! (c-populate-syntax-table c-mode-syntax-table)) ! ! ;;;###autoload ! (defvar c++-mode-syntax-table nil ! "Syntax table used in c++-mode buffers.") ! (if c++-mode-syntax-table ! () ! (setq c++-mode-syntax-table (make-syntax-table)) ! (c-populate-syntax-table c++-mode-syntax-table)) ! ! (defvar c++-template-syntax-table nil ! "A variant of `c++-mode-syntax-table' that defines `<' and `>' as ! parenthesis characters. Used temporarily when template argument lists ! are parsed.") ! (if c++-template-syntax-table ! () ! (setq c++-template-syntax-table ! (copy-syntax-table c++-mode-syntax-table)) ! (modify-syntax-entry ?< "(>" c++-template-syntax-table) ! (modify-syntax-entry ?> ")<" c++-template-syntax-table)) ! ! ;;;###autoload ! (defvar objc-mode-syntax-table nil ! "Syntax table used in objc-mode buffers.") ! (if objc-mode-syntax-table ! () ! (setq objc-mode-syntax-table (make-syntax-table)) ! (c-populate-syntax-table objc-mode-syntax-table) ! ;; add extra Objective-C only syntax ! (modify-syntax-entry ?@ "_" objc-mode-syntax-table)) ! ! ;;;###autoload ! (defvar java-mode-syntax-table nil ! "Syntax table used in java-mode buffers.") ! (if java-mode-syntax-table ! () ! (setq java-mode-syntax-table (make-syntax-table)) ! (c-populate-syntax-table java-mode-syntax-table)) ! ! ;;;###autoload ! (defvar idl-mode-syntax-table nil ! "Syntax table used in idl-mode buffers.") ! (if idl-mode-syntax-table ! nil ! (setq idl-mode-syntax-table (make-syntax-table)) ! (c-populate-syntax-table idl-mode-syntax-table)) ! ! ;;;###autoload ! (defvar pike-mode-syntax-table nil ! "Syntax table used in pike-mode buffers.") ! (if pike-mode-syntax-table ! () ! (setq pike-mode-syntax-table (make-syntax-table)) ! (c-populate-syntax-table pike-mode-syntax-table) ! (modify-syntax-entry ?@ "." pike-mode-syntax-table)) ! ! ! ;; internal state variables ! ;; Internal state of hungry delete key feature ! (defvar c-hungry-delete-key nil) ! (make-variable-buffer-local 'c-hungry-delete-key) ! ! ;; Internal state of auto newline feature. ! (defvar c-auto-newline nil) ! (make-variable-buffer-local 'c-auto-newline) ! ! ;; Internal auto-newline/hungry-delete designation string for mode line. ! (defvar c-auto-hungry-string nil) ! (make-variable-buffer-local 'c-auto-hungry-string) (cc-provide 'cc-langs) --- 119,2303 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) (cc-require 'cc-vars) ! ;;; Setup for the `c-lang-defvar' system. (eval-and-compile ! ;; These are used to collect the init forms from the subsequent ! ;; `c-lang-defvar'. They are used to build the lambda in ! ;; `c-make-init-lang-vars-fun' below. ! (defconst c-lang-variable-inits (list nil)) ! (defconst c-lang-variable-inits-tail c-lang-variable-inits)) ! ! (defmacro c-lang-defvar (var val &optional doc) ! "Declares the buffer local variable VAR to get the value VAL at mode ! initialization, at which point VAL is evaluated. More accurately, VAL ! is evaluated and bound to VAR when the result from the macro ! `c-init-language-vars' is evaluated. ! ! `c-lang-const' is typically used in VAL to get the right value for the ! language being initialized, and such calls will be macro expanded to ! the evaluated constant value at compile time. ! ! This macro does not do any hidden buffer changes." ! ! (when (and (not doc) ! (eq (car-safe val) 'c-lang-const) ! (eq (nth 1 val) var) ! (not (nth 2 val))) ! ;; Special case: If there's no docstring and the value is a ! ;; simple (c-lang-const foo) where foo is the same name as VAR ! ;; then take the docstring from the language constant foo. ! (setq doc (get (intern (symbol-name (nth 1 val)) c-lang-constants) ! 'variable-documentation))) ! (or (stringp doc) ! (setq doc nil)) ! ! (let ((elem (assq var (cdr c-lang-variable-inits)))) ! (if elem ! (setcdr elem (list val doc)) ! (setcdr c-lang-variable-inits-tail (list (list var val doc))) ! (setq c-lang-variable-inits-tail (cdr c-lang-variable-inits-tail)))) ! ! ;; Return the symbol, like the other def* forms. ! `',var) ! ! (put 'c-lang-defvar 'lisp-indent-function 'defun) ! (eval-after-load "edebug" ! '(def-edebug-spec c-lang-defvar ! (&define name def-form &optional stringp))) ! ! ;;; Various mode specific values that aren't language related. ! ! (c-lang-defconst c-mode-menu ! ;; The definition for the mode menu. The menu title is prepended to ! ;; this before it's fed to `easy-menu-define'. ! t `(["Comment Out Region" comment-region ! (c-fn-region-is-active-p)] ! ["Uncomment Region" (comment-region (region-beginning) ! (region-end) '(4)) ! (c-fn-region-is-active-p)] ! ["Indent Expression" c-indent-exp ! (memq (char-after) '(?\( ?\[ ?\{))] ! ["Indent Line or Region" c-indent-line-or-region t] ! ["Fill Comment Paragraph" c-fill-paragraph t] ! "----" ! ["Backward Statement" c-beginning-of-statement t] ! ["Forward Statement" c-end-of-statement t] ! ,@(when (c-lang-const c-opt-cpp-prefix) ! ;; Only applicable if there's a cpp preprocessor. ! `(["Up Conditional" c-up-conditional t] ! ["Backward Conditional" c-backward-conditional t] ! ["Forward Conditional" c-forward-conditional t] ! "----" ! ["Macro Expand Region" c-macro-expand ! (c-fn-region-is-active-p)] ! ["Backslashify" c-backslash-region ! (c-fn-region-is-active-p)])) ! "----" ! ("Toggle..." ! ["Syntactic indentation" c-toggle-syntactic-indentation t] ! ["Auto newline" c-toggle-auto-state t] ! ["Hungry delete" c-toggle-hungry-state t]))) ! ;;; Syntax tables. ! (defun c-populate-syntax-table (table) ! "Populate the given syntax table as necessary for a C-like language. ! This includes setting ' and \" as string delimiters, and setting up ! the comment syntax to handle both line style \"//\" and block style ! \"/*\" \"*/\" comments." ! (modify-syntax-entry ?_ "_" table) ! (modify-syntax-entry ?\\ "\\" table) ! (modify-syntax-entry ?+ "." table) ! (modify-syntax-entry ?- "." table) ! (modify-syntax-entry ?= "." table) ! (modify-syntax-entry ?% "." table) ! (modify-syntax-entry ?< "." table) ! (modify-syntax-entry ?> "." table) ! (modify-syntax-entry ?& "." table) ! (modify-syntax-entry ?| "." table) ! (modify-syntax-entry ?\' "\"" table) ! (modify-syntax-entry ?\240 "." table) ! ! ;; Set up block and line oriented comments. The new C ! ;; standard mandates both comment styles even in C, so since ! ;; all languages now require dual comments, we make this the ! ;; default. ! (cond ! ;; XEmacs ! ((memq '8-bit c-emacs-features) ! (modify-syntax-entry ?/ ". 1456" table) ! (modify-syntax-entry ?* ". 23" table)) ! ;; Emacs ! ((memq '1-bit c-emacs-features) ! (modify-syntax-entry ?/ ". 124b" table) ! (modify-syntax-entry ?* ". 23" table)) ! ;; incompatible ! (t (error "CC Mode is incompatible with this version of Emacs"))) ! ! (modify-syntax-entry ?\n "> b" table) ! ;; Give CR the same syntax as newline, for selective-display ! (modify-syntax-entry ?\^m "> b" table)) ! ! (c-lang-defconst c-make-mode-syntax-table ! "Functions that generates the mode specific syntax tables. ! The syntax tables aren't stored directly since they're quite large." ! t `(lambda () ! (let ((table (make-syntax-table))) ! (c-populate-syntax-table table) ! ;; Mode specific syntaxes. ! ,(cond ((c-major-mode-is 'objc-mode) ! `(modify-syntax-entry ?@ "_" table)) ! ((c-major-mode-is 'pike-mode) ! `(modify-syntax-entry ?@ "." table))) ! table))) ! ! (c-lang-defconst c-mode-syntax-table ! ;; The syntax tables in evaluated form. Only used temporarily when ! ;; the constants in this file are evaluated. ! t (funcall (c-lang-const c-make-mode-syntax-table))) ! ! (c-lang-defconst make-c++-template-syntax-table ! ;; A variant of `c++-mode-syntax-table' that defines `<' and `>' as ! ;; parenthesis characters. Used temporarily when template argument ! ;; lists are parsed. Note that this encourages incorrect parsing of ! ;; templates since they might contain normal operators that uses the ! ;; '<' and '>' characters. Therefore this syntax table might go ! ;; away when CC Mode handles templates correctly everywhere. ! t nil ! c++ `(lambda () ! (let ((table (funcall ,(c-lang-const c-make-mode-syntax-table)))) ! (modify-syntax-entry ?< "(>" table) ! (modify-syntax-entry ?> ")<" table) ! table))) ! (c-lang-defvar c++-template-syntax-table ! (and (c-lang-const make-c++-template-syntax-table) ! (funcall (c-lang-const make-c++-template-syntax-table)))) ! ! (c-lang-defconst c-identifier-syntax-modifications ! "A list that describes the modifications that should be done to the ! mode syntax table to get a syntax table that matches all identifiers ! and keywords as words. ! ! The list is just like the one used in `font-lock-defaults': Each ! element is a cons where the car is the character to modify and the cdr ! the new syntax, as accepted by `modify-syntax-entry'." ! ;; The $ character is not allowed in most languages (one exception ! ;; is Java which allows it for legacy reasons) but we still classify ! ;; it as an indentifier character since it's often used in various ! ;; machine generated identifiers. ! t '((?_ . "w") (?$ . "w")) ! objc (append '((?@ . "w")) ! (c-lang-const c-identifier-syntax-modifications)) ! awk '((?_ . "w"))) ! (c-lang-defvar c-identifier-syntax-modifications ! (c-lang-const c-identifier-syntax-modifications)) ! ! (c-lang-defvar c-identifier-syntax-table ! (let ((table (copy-syntax-table (c-mode-var "mode-syntax-table"))) ! (mods c-identifier-syntax-modifications) ! mod) ! (while mods ! (setq mod (car mods) ! mods (cdr mods)) ! (modify-syntax-entry (car mod) (cdr mod) table)) ! table) ! "Syntax table built on the mode syntax table but additionally ! classifies symbol constituents like '_' and '$' as word constituents, ! so that all identifiers are recognized as words.") ! ! ! ;;; Lexer-level syntax (identifiers, tokens etc). ! ! (c-lang-defconst c-symbol-start ! "Regexp that matches the start of a symbol, i.e. any identifier or ! keyword. It's unspecified how far it matches. Does not contain a \\| ! operator at the top level." ! t (concat "[" c-alpha "_]") ! pike (concat "[" c-alpha "_`]")) ! (c-lang-defvar c-symbol-start (c-lang-const c-symbol-start)) ! ! (c-lang-defconst c-symbol-chars ! "Set of characters that can be part of a symbol. ! This is on the form that fits inside [ ] in a regexp." ! ;; Pike note: With the backquote identifiers this would include most ! ;; operator chars too, but they are handled with other means instead. ! t (concat c-alnum "_$") ! objc (concat c-alnum "_$@")) (c-lang-defconst c-symbol-key ! "Regexp matching identifiers and keywords. Assumed to match if ! `c-symbol-start' matches on the same position." ! t (concat (c-lang-const c-symbol-start) ! "[" (c-lang-const c-symbol-chars) "]*") ! pike (concat ! ;; Use the value from C here since the operator backquote is ! ;; covered by the other alternative. ! (c-lang-const c-symbol-key c) ! "\\|" ! (c-make-keywords-re nil ! (c-lang-const c-overloadable-operators)))) ! (c-lang-defvar c-symbol-key (c-lang-const c-symbol-key)) ! ! (c-lang-defconst c-symbol-key-depth ! ;; Number of regexp grouping parens in `c-symbol-key'. ! t (c-regexp-opt-depth (c-lang-const c-symbol-key))) ! ! (c-lang-defconst c-nonsymbol-chars ! "This is the set of chars that can't be part of a symbol, i.e. the ! negation of `c-symbol-chars'." ! t (concat "^" (c-lang-const c-symbol-chars))) ! (c-lang-defvar c-nonsymbol-chars (c-lang-const c-nonsymbol-chars)) ! ! (c-lang-defconst c-nonsymbol-key ! "Regexp that matches any character that can't be part of a symbol. ! It's usually appended to other regexps to avoid matching a prefix. ! It's assumed to not contain any submatchers." ! ;; The same thing regarding Unicode identifiers applies here as to ! ;; `c-symbol-key'. ! t (concat "[" (c-lang-const c-nonsymbol-chars) "]")) ! ! (c-lang-defconst c-opt-identifier-concat-key ! "Regexp matching the operators that join symbols to fully qualified ! identifiers, or nil in languages that don't have such things. Does ! not contain a \\| operator at the top level." ! t nil ! c++ "::" ! java "\\." ! idl "::" ! pike "\\(::\\|\\.\\)") ! (c-lang-defvar c-opt-identifier-concat-key ! (c-lang-const c-opt-identifier-concat-key) ! 'dont-doc) ! ! (c-lang-defconst c-opt-after-id-concat-key ! "Regexp that must match the token after `c-opt-identifier-concat-key' ! for it to be considered an identifier concatenation operator (which ! e.g. causes the preceding identifier to be fontified as a reference). ! Assumed to be a string if `c-opt-identifier-concat-key' is." ! t (if (c-lang-const c-opt-identifier-concat-key) ! (c-lang-const c-symbol-start)) ! c++ (concat (c-lang-const c-symbol-start) ! "\\|[~*]") ! java (concat (c-lang-const c-symbol-start) ! "\\|\\*")) ! ! (c-lang-defconst c-identifier-start ! "Regexp that matches the start of an \(optionally qualified) ! identifier. It should also match all keywords. It's unspecified how ! far it matches." ! t (concat (c-lang-const c-symbol-start) ! (if (c-lang-const c-opt-identifier-concat-key) ! (concat "\\|" (c-lang-const c-opt-identifier-concat-key)) ! "")) ! c++ (concat (c-lang-const c-identifier-start) ! "\\|" ! "[~*][ \t\n\r\f\v]*" (c-lang-const c-symbol-start)) ! ;; Java does not allow a leading qualifier operator. ! java (c-lang-const c-symbol-start)) ! (c-lang-defvar c-identifier-start (c-lang-const c-identifier-start)) ! ! (c-lang-defconst c-identifier-key ! "Regexp matching a fully qualified identifier, like \"A::B::c\" in ! C++. It does not recognize the full range of syntactic whitespace ! between the tokens; `c-forward-name' has to be used for that." ! t (c-lang-const c-symbol-key) ; Default to `c-symbol-key'. ! ;; C++ allows a leading qualifier operator and a `~' before the last ! ;; symbol. This regexp is more complex than strictly necessary to ! ;; ensure that it can be matched with a minimum of backtracking. ! c++ (concat ! "\\(" (c-lang-const c-opt-identifier-concat-key) "[ \t\n\r\f\v]*\\)?" ! (concat ! "\\(" ! ;; The submatch below is depth of `c-opt-identifier-concat-key' + 3. ! "\\(" (c-lang-const c-symbol-key) "\\)" ! (concat "\\(" ! "[ \t\n\r\f\v]*" ! (c-lang-const c-opt-identifier-concat-key) ! "[ \t\n\r\f\v]*" ! ;; The submatch below is: `c-symbol-key-depth' + ! ;; 2 * depth of `c-opt-identifier-concat-key' + 5. ! "\\(" (c-lang-const c-symbol-key) "\\)" ! "\\)*") ! (concat "\\(" ! "[ \t\n\r\f\v]*" ! (c-lang-const c-opt-identifier-concat-key) ! "[ \t\n\r\f\v]*" ! "[~*]" ! "[ \t\n\r\f\v]*" ! ;; The submatch below is: 2 * `c-symbol-key-depth' + ! ;; 3 * depth of `c-opt-identifier-concat-key' + 7. ! "\\(" (c-lang-const c-symbol-key) "\\)" ! "\\)?") ! "\\|" ! "~[ \t\n\r\f\v]*" ! ;; The submatch below is: 3 * `c-symbol-key-depth' + ! ;; 3 * depth of `c-opt-identifier-concat-key' + 8. ! "\\(" (c-lang-const c-symbol-key) "\\)" ! "\\)")) ! ;; IDL and Pike allows a leading qualifier operator. ! (idl pike) (concat ! "\\(" ! (c-lang-const c-opt-identifier-concat-key) ! "[ \t\n\r\f\v]*" ! "\\)?" ! ;; The submatch below is depth of ! ;; `c-opt-identifier-concat-key' + 2. ! "\\(" (c-lang-const c-symbol-key) "\\)" ! (concat "\\(" ! "[ \t\n\r\f\v]*" ! (c-lang-const c-opt-identifier-concat-key) ! "[ \t\n\r\f\v]*" ! ;; The submatch below is: `c-symbol-key-depth' + ! ;; 2 * depth of `c-opt-identifier-concat-key' + 4. ! "\\(" (c-lang-const c-symbol-key) "\\)" ! "\\)*")) ! ;; Java does not allow a leading qualifier operator. If it ends ! ;; with ".*" (used in import declarations) we also consider that as ! ;; part of the name. ("*" is actually recognized in any position ! ;; except the first by this regexp, but we don't bother.) ! java (concat "\\(" (c-lang-const c-symbol-key) "\\)" ; 1 ! (concat "\\(" ! "[ \t\n\r\f\v]*" ! (c-lang-const c-opt-identifier-concat-key) ! "[ \t\n\r\f\v]*" ! (concat "\\(" ! ;; The submatch below is `c-symbol-key-depth' + ! ;; depth of `c-opt-identifier-concat-key' + 4. ! "\\(" (c-lang-const c-symbol-key) "\\)" ! "\\|\\*\\)") ! "\\)*"))) ! (c-lang-defvar c-identifier-key (c-lang-const c-identifier-key)) ! ! (c-lang-defconst c-identifier-last-sym-match ! "Used to identify the submatch in `c-identifier-key' that surrounds ! the last symbol in the qualified identifier. It's a list of submatch ! numbers, of which the first that has a match is taken. It's assumed ! that at least one does when the regexp has matched." ! t '(0) ! c++ (list (+ (* 3 (c-lang-const c-symbol-key-depth)) ! (* 3 (c-regexp-opt-depth ! (c-lang-const c-opt-identifier-concat-key))) ! 8) ! (+ (* 2 (c-lang-const c-symbol-key-depth)) ! (* 3 (c-regexp-opt-depth ! (c-lang-const c-opt-identifier-concat-key))) ! 7) ! (+ (c-lang-const c-symbol-key-depth) ! (* 2 (c-regexp-opt-depth ! (c-lang-const c-opt-identifier-concat-key))) ! 5) ! (+ (c-regexp-opt-depth ! (c-lang-const c-opt-identifier-concat-key)) ! 3)) ! (idl pike) (list (+ (c-lang-const c-symbol-key-depth) ! (* 2 (c-regexp-opt-depth ! (c-lang-const c-opt-identifier-concat-key))) ! 4) ! (+ (c-regexp-opt-depth ! (c-lang-const c-opt-identifier-concat-key)) ! 2)) ! java (list (+ (c-lang-const c-symbol-key-depth) ! (c-regexp-opt-depth ! (c-lang-const c-opt-identifier-concat-key)) ! 4) ! 1)) ! (c-lang-defvar c-identifier-last-sym-match ! (c-lang-const c-identifier-last-sym-match) ! 'dont-doc) ! ! (c-lang-defconst c-opt-cpp-prefix ! "Regexp matching the prefix of a cpp directive in the languages that ! normally use that macro preprocessor. Tested at bol or at boi. ! Assumed to not contain any submatches or \\| operators." ! t "\\s *#\\s *" ! (java awk) nil) ! (c-lang-defvar c-opt-cpp-prefix (c-lang-const c-opt-cpp-prefix)) ! ! (c-lang-defconst c-opt-cpp-start ! "Regexp matching the prefix of a cpp directive including the directive ! name, or nil in languages without preprocessor support. The first ! submatch surrounds the directive name." ! t (if (c-lang-const c-opt-cpp-prefix) ! (concat (c-lang-const c-opt-cpp-prefix) ! "\\([" c-alnum "]+\\)")) ! ;; Pike, being a scripting language, recognizes hash-bangs too. ! pike (concat (c-lang-const c-opt-cpp-prefix) ! "\\([" c-alnum "]+\\|!\\)")) ! (c-lang-defvar c-opt-cpp-start (c-lang-const c-opt-cpp-start)) ! ! (c-lang-defconst c-cpp-defined-fns ! ;; Name of functions in cpp expressions that take an identifier as ! ;; the argument. ! t (if (c-lang-const c-opt-cpp-prefix) ! '("defined")) ! pike '("defined" "efun" "constant")) ! ! (c-lang-defconst c-operators ! "List describing all operators, along with their precedence and ! associativity. The order in the list corresponds to the precedence of ! the operators: The operators in each element is a group with the same ! precedence, and the group has higher precedence than the groups in all ! following elements. The car of each element describes the type of of ! the operator group, and the cdr is a list of the operator tokens in ! it. The operator group types are: ! ! 'prefix Unary prefix operators. ! 'postfix Unary postfix operators. ! 'left-assoc Binary left associative operators (i.e. a+b+c means (a+b)+c). ! 'right-assoc Binary right associative operators (i.e. a=b=c means a=(b=c)). ! 'right-assoc-sequence ! Right associative operator that constitutes of a ! sequence of tokens that separate expressions. All the ! tokens in the group are in this case taken as ! describing the sequence in one such operator, and the ! order between them is therefore significant. ! ! Operators containing a character with paren syntax are taken to match ! with a corresponding open/close paren somewhere else. A postfix ! operator with close paren syntax is taken to end a postfix expression ! started somewhere earlier, rather than start a new one at point. Vice ! versa for prefix operators with open paren syntax. ! ! Note that operators like \".\" and \"->\" which in language references ! often are described as postfix operators are considered binary here, ! since CC Mode treats every identifier as an expression." ! ! ;; There's currently no code in CC Mode that exploit all the info ! ;; in this variable; precedence, associativity etc are present as a ! ;; preparation for future work. ! ! t `(;; Preprocessor. ! ,@(when (c-lang-const c-opt-cpp-prefix) ! `((prefix "#" ! ,@(when (c-major-mode-is '(c-mode c++-mode)) ! '("%:" "??="))) ! (left-assoc "##" ! ,@(when (c-major-mode-is '(c-mode c++-mode)) ! '("%:%:" "??=??="))))) ! ! ;; Primary. Info duplicated in `c-opt-identifier-concat-key' ! ;; and `c-identifier-key'. ! ,@(cond ((c-major-mode-is 'c++-mode) ! `((postfix-if-paren "<" ">") ; Templates. ! (prefix "~" "??-" "compl") ! (right-assoc "::") ! (prefix "::"))) ! ((c-major-mode-is 'pike-mode) ! `((left-assoc "::") ! (prefix "::" "global" "predef"))) ! ((c-major-mode-is 'java-mode) ! `(;; Not necessary since it's also in the postfix group below. ! ;;(left-assoc ".") ! (prefix "super")))) ! ! ;; Postfix. ! ,@(when (c-major-mode-is 'c++-mode) ! ;; The following need special treatment. ! `((prefix "dynamic_cast" "static_cast" ! "reinterpret_cast" "const_cast" "typeid"))) ! (left-assoc "." ! ,@(unless (c-major-mode-is 'java-mode) ! '("->"))) ! (postfix "++" "--" "[" "]" "(" ")" ! ,@(when (c-major-mode-is '(c-mode c++-mode)) ! '("<:" ":>" "??(" "??)"))) ! ! ;; Unary. ! (prefix "++" "--" "+" "-" "!" "~" ! ,@(when (c-major-mode-is 'c++-mode) '("not" "compl")) ! ,@(when (c-major-mode-is '(c-mode c++-mode)) ! '("*" "&" "sizeof" "??-")) ! ,@(when (c-major-mode-is 'objc-mode) ! '("@selector" "@protocol" "@encode")) ! ;; The following need special treatment. ! ,@(cond ((c-major-mode-is 'c++-mode) ! '("new" "delete")) ! ((c-major-mode-is 'java-mode) ! '("new")) ! ((c-major-mode-is 'pike-mode) ! '("class" "lambda" "catch" "throw" "gauge"))) ! "(" ")" ; Cast. ! ,@(when (c-major-mode-is 'pike-mode) ! '("[" "]"))) ; Type cast. ! ! ;; Member selection. ! ,@(when (c-major-mode-is 'c++-mode) ! `((left-assoc ".*" "->*"))) ! ! ;; Multiplicative. ! (left-assoc "*" "/" "%") ! ! ;; Additive. ! (left-assoc "+" "-") ! ! ;; Shift. ! (left-assoc "<<" ">>" ! ,@(when (c-major-mode-is 'java-mode) ! '(">>>"))) ! ! ;; Relational. ! (left-assoc "<" ">" "<=" ">=" ! ,@(when (c-major-mode-is 'java-mode) ! '("instanceof"))) ! ! ;; Equality. ! (left-assoc "==" "!=" ! ,@(when (c-major-mode-is 'c++-mode) '("not_eq"))) ! ! ;; Bitwise and. ! (left-assoc "&" ! ,@(when (c-major-mode-is 'c++-mode) '("bitand"))) ! ! ;; Bitwise exclusive or. ! (left-assoc "^" ! ,@(when (c-major-mode-is '(c-mode c++-mode)) ! '("??'")) ! ,@(when (c-major-mode-is 'c++-mode) '("xor"))) ! ! ;; Bitwise or. ! (left-assoc "|" ! ,@(when (c-major-mode-is '(c-mode c++-mode)) ! '("??!")) ! ,@(when (c-major-mode-is 'c++-mode) '("bitor"))) ! ! ;; Logical and. ! (left-assoc "&&" ! ,@(when (c-major-mode-is 'c++-mode) '("and"))) ! ! ;; Logical or. ! (left-assoc "||" ! ,@(when (c-major-mode-is '(c-mode c++-mode)) ! '("??!??!")) ! ,@(when (c-major-mode-is 'c++-mode) '("or"))) ! ! ;; Conditional. ! (right-assoc-sequence "?" ":") ! ! ;; Assignment. ! (right-assoc "=" "*=" "/=" "%=" "+=" "-=" ">>=" "<<=" "&=" "^=" "|=" ! ,@(when (c-major-mode-is 'java-mode) ! '(">>>=")) ! ,@(when (c-major-mode-is 'c++-mode) ! '("and_eq" "or_eq" "xor_eq"))) ! ! ;; Exception. ! ,@(when (c-major-mode-is 'c++-mode) ! '((prefix "throw"))) ! ! ;; Sequence. ! (left-assoc ",")) ! ! ;; IDL got its own definition since it has a much smaller operator ! ;; set than the other languages. ! idl `(;; Preprocessor. ! (prefix "#") ! (left-assoc "##") ! ;; Primary. Info duplicated in `c-opt-identifier-concat-key' ! ;; and `c-identifier-key'. ! (left-assoc "::") ! (prefix "::") ! ;; Unary. ! (prefix "+" "-" "~") ! ;; Multiplicative. ! (left-assoc "*" "/" "%") ! ;; Additive. ! (left-assoc "+" "-") ! ;; Shift. ! (left-assoc "<<" ">>") ! ;; And. ! (left-assoc "&") ! ;; Xor. ! (left-assoc "^") ! ;; Or. ! (left-assoc "|"))) ! ! (c-lang-defconst c-operator-list ! ;; The operators as a flat list (without duplicates). ! t (delete-duplicates (mapcan (lambda (elem) (append (cdr elem) nil)) ! (c-lang-const c-operators)) ! :test 'string-equal)) ! ! (c-lang-defconst c-overloadable-operators ! "List of the operators that are overloadable, in their \"identifier form\"." ! t nil ! ;; The preceding "operator" keyword is treated separately in C++. ! c++ '("new" "delete" ;; Can be followed by "[]" but we ignore that. ! "+" "-" "*" "/" "%" ! "^" "??'" "xor" "&" "bitand" "|" "??!" "bitor" "~" "??-" "compl" ! "!" "=" "<" ">" "+=" "-=" "*=" "/=" "%=" "^=" ! "??'=" "xor_eq" "&=" "and_eq" "|=" "??!=" "or_eq" ! "<<" ">>" ">>=" "<<=" "==" "!=" "not_eq" "<=" ">=" ! "&&" "and" "||" "??!??!" "or" "++" "--" "," "->*" "->" ! "()" "[]" "<::>" "??(??)") ! ;; These work like identifiers in Pike. ! pike '("`+" "`-" "`&" "`|" "`^" "`<<" "`>>" "`*" "`/" "`%" "`~" ! "`==" "`<" "`>" "`!" "`[]" "`[]=" "`->" "`->=" "`()" "``+" ! "``-" "``&" "``|" "``^" "``<<" "``>>" "``*" "``/" "``%" ! "`+=")) ! ! (c-lang-defconst c-overloadable-operators-regexp ! ;; Regexp tested after an "operator" token in C++. ! t nil ! c++ (c-make-keywords-re nil (c-lang-const c-overloadable-operators))) ! (c-lang-defvar c-overloadable-operators-regexp ! (c-lang-const c-overloadable-operators-regexp)) ! ! (c-lang-defconst c-other-op-syntax-tokens ! "List of the tokens made up of characters in the punctuation or ! parenthesis syntax classes that have uses other than as expression ! operators." ! t '("{" "}" "(" ")" "[" "]" ";" ":" "," "=" "/*" "*/" "//") ! (c c++ pike) (append '("#" "##" ; Used by cpp. ! "::" "...") ! (c-lang-const c-other-op-syntax-tokens)) ! (c c++) (append '("<%" "%>" "<:" ":>" "%:" "%:%:" "*") ! (c-lang-const c-other-op-syntax-tokens)) ! c++ (append '("&") (c-lang-const c-other-op-syntax-tokens)) ! objc (append '("#" "##" ; Used by cpp. ! "+" "-") (c-lang-const c-other-op-syntax-tokens)) ! idl (append '("#" "##") ; Used by cpp. ! (c-lang-const c-other-op-syntax-tokens)) ! pike (append '("..") ! (c-lang-const c-other-op-syntax-tokens) ! (c-lang-const c-overloadable-operators)) ! awk '("{" "}" "(" ")" "[" "]" ";" "," "=" "/")) ! ! (c-lang-defconst c-nonsymbol-token-regexp ! ;; Regexp matching all tokens in the punctuation and parenthesis ! ;; syntax classes. Note that this also matches ".", which can start ! ;; a float. ! t (c-make-keywords-re nil ! (c-with-syntax-table (c-lang-const c-mode-syntax-table) ! (mapcan (lambda (op) ! (if (string-match "\\`\\(\\s.\\|\\s\(\\|\\s\)\\)+\\'" op) ! (list op))) ! (append (c-lang-const c-other-op-syntax-tokens) ! (c-lang-const c-operator-list)))))) ! (c-lang-defvar c-nonsymbol-token-regexp ! (c-lang-const c-nonsymbol-token-regexp)) ! ! (c-lang-defconst c-<-op-cont-regexp ! ;; Regexp matching the second and subsequent characters of all ! ;; multicharacter tokens that begin with "<". ! t (c-make-keywords-re nil ! (mapcan (lambda (op) ! (if (string-match "\\`<." op) ! (list (substring op 1)))) ! (append (c-lang-const c-other-op-syntax-tokens) ! (c-lang-const c-operator-list))))) ! (c-lang-defvar c-<-op-cont-regexp (c-lang-const c-<-op-cont-regexp)) ! ! (c-lang-defconst c->-op-cont-regexp ! ;; Regexp matching the second and subsequent characters of all ! ;; multicharacter tokens that begin with ">". ! t (c-make-keywords-re nil ! (mapcan (lambda (op) ! (if (string-match "\\`>." op) ! (list (substring op 1)))) ! (append (c-lang-const c-other-op-syntax-tokens) ! (c-lang-const c-operator-list))))) ! (c-lang-defvar c->-op-cont-regexp (c-lang-const c->-op-cont-regexp)) ! ! (c-lang-defconst c-stmt-delim-chars ! ;; The characters that should be considered to bound statements. To ! ;; optimize `c-crosses-statement-barrier-p' somewhat, it's assumed to ! ;; begin with "^" to negate the set. If ? : operators should be ! ;; detected then the string must end with "?:". ! t "^;{}?:" ! awk "^;{}\n\r?:") ; The newline chars gets special treatment. ! (c-lang-defvar c-stmt-delim-chars (c-lang-const c-stmt-delim-chars)) ! ! (c-lang-defconst c-stmt-delim-chars-with-comma ! ;; Variant of `c-stmt-delim-chars' that additionally contains ','. ! t "^;,{}?:" ! awk "^;,{}\n\r?:") ; The newline chars gets special treatment. ! (c-lang-defvar c-stmt-delim-chars-with-comma ! (c-lang-const c-stmt-delim-chars-with-comma)) ! ! ! ;;; Syntactic whitespace. ! ! (c-lang-defconst c-comment-start-regexp ! ;; Regexp to match the start of any type of comment. ! ;; ! ;; TODO: Ought to use `c-comment-prefix-regexp' with some ! ;; modifications instead of this. ! t "/[/*]" ! awk "#") ! (c-lang-defvar c-comment-start-regexp (c-lang-const c-comment-start-regexp)) ! ! (c-lang-defconst c-literal-start-regexp ! ;; Regexp to match the start of comments and string literals. ! t (concat (c-lang-const c-comment-start-regexp) ! "\\|" ! (if (memq 'gen-string-delim c-emacs-features) ! "\"|" ! "\""))) ! (c-lang-defvar c-literal-start-regexp (c-lang-const c-literal-start-regexp)) ! ! (c-lang-defconst c-doc-comment-start-regexp ! "Regexp to match the start of documentation comments." ! t "\\<\\>" ! ;; From font-lock.el: `doxygen' uses /*! while others use /**. ! (c c++ objc) "/\\*[*!]" ! java "/\\*\\*" ! pike "/[/*]!") ! (c-lang-defvar c-doc-comment-start-regexp ! (c-lang-const c-doc-comment-start-regexp)) ! ! (c-lang-defconst comment-start ! "String that starts comments inserted with M-; etc. ! `comment-start' is initialized from this." ! t "// " ! c "/* " ! awk "# ") ! (c-lang-defvar comment-start (c-lang-const comment-start) ! 'dont-doc) ! ! (c-lang-defconst comment-end ! "String that ends comments inserted with M-; etc. ! `comment-end' is initialized from this." ! t "" ! c " */") ! (c-lang-defvar comment-end (c-lang-const comment-end) ! 'dont-doc) ! ! (c-lang-defconst comment-start-skip ! "Regexp to match the start of a comment plus everything up to its body. ! `comment-start-skip' is initialized from this." ! t "/\\*+ *\\|//+ *" ! awk "#+ *") ! (c-lang-defvar comment-start-skip (c-lang-const comment-start-skip) ! 'dont-doc) ! ! (c-lang-defconst syntactic-ws-start ! "Regexp matching any sequence that can start syntactic whitespace. ! The only uncertain case is '#' when there are cpp directives." ! t "[ \n\t\r\v\f#]\\|/[/*]\\|\\\\[\n\r]" ! awk "[ \n\t\r\v\f#]\\|\\\\[\n\r]") ! (c-lang-defvar c-syntactic-ws-start (c-lang-const syntactic-ws-start) ! 'dont-doc) ! ! (c-lang-defconst syntactic-ws-end ! "Regexp matching any single character that might end syntactic whitespace." ! t "[ \n\t\r\v\f/]" ! awk "[ \n\t\r\v\f]") ! (c-lang-defvar c-syntactic-ws-end (c-lang-const syntactic-ws-end) ! 'dont-doc) ! ! (c-lang-defconst c-nonwhite-syntactic-ws ! ;; Regexp matching a piece of syntactic whitespace that isn't a ! ;; sequence of simple whitespace characters. As opposed to ! ;; `c-(forward|backward)-syntactic-ws', this doesn't regard cpp ! ;; directives as syntactic whitespace. ! t (concat "/" (concat ! "\\(" ! "/[^\n\r]*[\n\r]" ; Line comment. ! "\\|" ! ;; Block comment. We intentionally don't allow line ! ;; breaks in them to avoid going very far and risk ! ;; running out of regexp stack; this regexp is ! ;; intended to handle only short comments that ! ;; might be put in the middle of limited constructs ! ;; like declarations. ! "\\*\\([^*\n\r]\\|\\*[^/\n\r]\\)*\\*/" ! "\\)") ! "\\|" ! "\\\\[\n\r]") ; Line continuations. ! awk ("#.*[\n\r]\\|\\\\[\n\r]")) ! ! (c-lang-defconst c-syntactic-ws ! ;; Regexp matching syntactic whitespace, including possibly the ! ;; empty string. As opposed to `c-(forward|backward)-syntactic-ws', ! ;; this doesn't regard cpp directives as syntactic whitespace. Does ! ;; not contain a \| operator at the top level. ! t (concat "[ \t\n\r\f\v]*\\(" ! "\\(" (c-lang-const c-nonwhite-syntactic-ws) "\\)" ! "[ \t\n\r\f\v]*\\)*")) ! ! (c-lang-defconst c-syntactic-ws-depth ! ;; Number of regexp grouping parens in `c-syntactic-ws'. ! t (c-regexp-opt-depth (c-lang-const c-syntactic-ws))) ! ! (c-lang-defconst c-nonempty-syntactic-ws ! ;; Regexp matching syntactic whitespace, which is at least one ! ;; character long. As opposed to `c-(forward|backward)-syntactic-ws', ! ;; this doesn't regard cpp directives as syntactic whitespace. Does ! ;; not contain a \| operator at the top level. ! t (concat "\\([ \t\n\r\f\v]\\|" ! (c-lang-const c-nonwhite-syntactic-ws) ! "\\)+")) ! ! (c-lang-defconst c-nonempty-syntactic-ws-depth ! ;; Number of regexp grouping parens in `c-nonempty-syntactic-ws'. ! t (c-regexp-opt-depth (c-lang-const c-nonempty-syntactic-ws))) ! ! (c-lang-defconst c-single-line-syntactic-ws ! ;; Regexp matching syntactic whitespace without any line breaks. As ! ;; opposed to `c-(forward|backward)-syntactic-ws', this doesn't ! ;; regard cpp directives as syntactic whitespace. Does not contain ! ;; a \| operator at the top level. ! t (concat "[ \t]*\\(" ! "/\\*\\([^*\n\r]\\|\\*[^/\n\r]\\)*\\*/" ; Block comment ! "[ \t]*\\)*") ! awk ("[ \t]*\\(#.*$\\)?")) ! ! (c-lang-defconst c-single-line-syntactic-ws-depth ! ;; Number of regexp grouping parens in `c-single-line-syntactic-ws'. ! t (c-regexp-opt-depth (c-lang-const c-single-line-syntactic-ws))) ! ! (c-lang-defvar c-syntactic-eol ! ;; Regexp that matches when there is no syntactically significant ! ;; text before eol. Macros are regarded as syntactically ! ;; significant text here. ! (concat (concat ! ;; Match horizontal whitespace and block comments that ! ;; don't contain newlines. ! "\\(\\s \\|" ! (concat "/\\*" ! "\\([^*\n\r]\\|\\*[^/\n\r]\\)*" ! "\\*/") ! "\\)*") ! (concat ! ;; Match eol (possibly inside a block comment or preceded ! ;; by a line continuation backslash), or the beginning of a ! ;; line comment. Note: This has to be modified for awk ! ;; where line comments start with '#'. ! "\\(" ! (concat "\\(" ! "/\\*\\([^*\n\r]\\|\\*[^/\n\r]\\)*" ! "\\|" ! "\\\\" ! "\\)?" ! "$") ! "\\|//\\)"))) ! ! ! ;;; In-comment text handling. ! ! (c-lang-defconst c-paragraph-start ! "Regexp to append to `paragraph-start'." ! t "$" ! java "\\(@[a-zA-Z]+\\>\\|$\\)" ; For Javadoc. ! pike "\\(@[a-zA-Z_-]+\\>\\([^{]\\|$\\)\\|$\\)") ; For Pike refdoc. ! (c-lang-defvar c-paragraph-start (c-lang-const c-paragraph-start)) ! ! (c-lang-defconst c-paragraph-separate ! "Regexp to append to `paragraph-separate'." ! t "$" ! pike (c-lang-const c-paragraph-start)) ! (c-lang-defvar c-paragraph-separate (c-lang-const c-paragraph-separate)) ! ! ! ;;; Keyword lists. ! ! ;; Note: All and only all language constants containing keyword lists ! ;; should end with "-kwds"; they're automatically collected into the ! ;; `c-kwds-lang-consts' list below and used to build `c-keywords' etc. (c-lang-defconst c-primitive-type-kwds ! "Primitive type keywords. As opposed to the other keyword lists, the ! keywords listed here are fontified with the type face instead of the ! keyword face. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled. ! ! Do not try to modify this list for end user customizations; the ! `*-font-lock-extra-types' variable, where `*' is the mode prefix, is ! the appropriate place for that." ! t '("char" "double" "float" "int" "long" "short" "signed" ! "unsigned" "void") ! c (append ! '("_Bool" "_Complex" "_Imaginary") ; Conditionally defined in C99. ! (c-lang-const c-primitive-type-kwds)) ! c++ (append ! '("bool" "wchar_t") ! (c-lang-const c-primitive-type-kwds)) ! ;; Objective-C extends C, but probably not the new stuff in C99. ! objc (append ! '("id" "Class" "SEL" "IMP" "BOOL") ! (c-lang-const c-primitive-type-kwds)) java '("boolean" "byte" "char" "double" "float" "int" "long" "short" "void") ! idl '("Object" "ValueBase" "any" "boolean" "char" "double" "fixed" "float" ! "long" "octet" "sequence" "short" "string" "void" "wchar" "wstring" ! ;; In CORBA PSDL: ! "ref" ! ;; The following can't really end a type, but we have to specify them ! ;; here due to the assumption in `c-primitive-type-prefix-kwds'. It ! ;; doesn't matter that much. ! "unsigned" "strong") ! pike '(;; this_program isn't really a keyword, but it's practically ! ;; used as a builtin type. ! "array" "float" "function" "int" "mapping" "mixed" "multiset" ! "object" "program" "string" "this_program" "void")) ! ! (c-lang-defconst c-primitive-type-key ! ;; An adorned regexp that matches `c-primitive-type-kwds'. ! t (c-make-keywords-re t (c-lang-const c-primitive-type-kwds))) ! (c-lang-defvar c-primitive-type-key (c-lang-const c-primitive-type-key)) ! ! (c-lang-defconst c-primitive-type-prefix-kwds ! "Keywords that might act as prefixes for primitive types. Assumed to ! be a subset of `c-primitive-type-kwds'." ! t nil ! (c c++) '("long" "short" "signed" "unsigned") ! idl '("long" "unsigned" ! ;; In CORBA PSDL: ! "strong")) ! ! (c-lang-defconst c-type-prefix-kwds ! "Keywords where the following name - if any - is a type name, and ! where the keyword together with the symbol works as a type in ! declarations. ! ! Note that an alternative if the second part doesn't hold is ! `c-type-list-kwds'. Keywords on this list are typically also present ! on one of the `*-decl-kwds' lists." ! t nil ! c '("struct" "union" "enum") ! c++ (append '("class" "typename") ! (c-lang-const c-type-prefix-kwds c))) ! ! (c-lang-defconst c-type-prefix-key ! ;; Adorned regexp matching `c-type-prefix-kwds'. ! t (c-make-keywords-re t (c-lang-const c-type-prefix-kwds))) ! (c-lang-defvar c-type-prefix-key (c-lang-const c-type-prefix-key)) ! ! (c-lang-defconst c-type-modifier-kwds ! "Type modifier keywords. These can occur almost anywhere in types ! but they don't build a type of themselves. Unlike the keywords on ! `c-primitive-type-kwds', they are fontified with the keyword face and ! not the type face." ! t nil ! c '("const" "restrict" "volatile") ! c++ '("const" "volatile" "throw") ! objc '("const" "volatile")) ! ! (c-lang-defconst c-opt-type-modifier-key ! ;; Adorned regexp matching `c-type-modifier-kwds', or nil in ! ;; languages without such keywords. ! t (and (c-lang-const c-type-modifier-kwds) ! (c-make-keywords-re t (c-lang-const c-type-modifier-kwds)))) ! (c-lang-defvar c-opt-type-modifier-key (c-lang-const c-opt-type-modifier-key)) ! ! (c-lang-defconst c-opt-type-component-key ! ;; An adorned regexp that matches `c-primitive-type-prefix-kwds' and ! ;; `c-type-modifier-kwds', or nil in languages without any of them. ! t (and (or (c-lang-const c-primitive-type-prefix-kwds) ! (c-lang-const c-type-modifier-kwds)) ! (c-make-keywords-re t ! (append (c-lang-const c-primitive-type-prefix-kwds) ! (c-lang-const c-type-modifier-kwds))))) ! (c-lang-defvar c-opt-type-component-key ! (c-lang-const c-opt-type-component-key)) ! ! (c-lang-defconst c-class-decl-kwds ! "Keywords introducing declarations where the following block (if any) ! contains another declaration level that should be considered a class. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled. ! ! Note that presence on this list does not automatically treat the ! following identifier as a type; the keyword must also be present on ! `c-type-prefix-kwds' or `c-type-list-kwds' to accomplish that." ! t nil ! c '("struct" "union") ! c++ '("class" "struct" "union") ! objc '("struct" "union" ! "@interface" "@implementation" "@protocol") java '("class" "interface") ! idl '("component" "eventtype" "exception" "home" "interface" "struct" ! "union" "valuetype" ! ;; In CORBA PSDL: ! "storagehome" "storagetype" ! ;; In CORBA CIDL: ! "catalog" "executor" "manages" "segment") pike '("class")) (c-lang-defconst c-class-key ! ;; Regexp matching the start of a class. ! t (c-make-keywords-re t (c-lang-const c-class-decl-kwds))) ! (c-lang-defvar c-class-key (c-lang-const c-class-key)) ! ! (c-lang-defconst c-brace-list-decl-kwds ! "Keywords introducing declarations where the following block (if ! any) is a brace list. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled." ! t '("enum") ! (java awk) nil) ! ! (c-lang-defconst c-brace-list-key ! ;; Regexp matching the start of declarations where the following ! ;; block is a brace list. ! t (c-make-keywords-re t (c-lang-const c-brace-list-decl-kwds))) ! (c-lang-defvar c-brace-list-key (c-lang-const c-brace-list-key)) ! ! (c-lang-defconst c-other-block-decl-kwds ! "Keywords where the following block (if any) contain another ! declaration level that should not be considered a class. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled." ! t nil ! c '("extern") c++ '("namespace" "extern") ! idl '("module" ! ;; In CORBA CIDL: ! "composition")) (c-lang-defconst c-other-decl-block-key ! ;; Regexp matching the start of blocks besides classes that contain ! ;; another declaration level. ! t (c-make-keywords-re t (c-lang-const c-other-block-decl-kwds))) ! (c-lang-defvar c-other-decl-block-key (c-lang-const c-other-decl-block-key)) ! ! (c-lang-defconst c-typedef-decl-kwds ! "Keywords introducing declarations where the identifiers are defined ! to be types. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled." ! t '("typedef") ! (java awk) nil) ! ! (c-lang-defconst c-typeless-decl-kwds ! "Keywords introducing declarations where the identifier (declarator) ! list follows directly after the keyword, without any type. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled." ! t nil ! ;; Unlike most other languages, exception names are not handled as ! ;; types in IDL since they only can occur in "raises" specs. ! idl '("exception" "factory" "finder" "native" ! ;; In CORBA PSDL: ! "key" "stores" ! ;; In CORBA CIDL: ! ;; Note that "manages" here clashes with its presence on ! ;; `c-type-list-kwds' for IDL. ! "executor" "facet" "manages" "segment") ! pike '("constant")) ! ! (c-lang-defconst c-modifier-kwds ! "Keywords that can prefix normal declarations of identifiers ! \(and typically acts as flags). Things like argument declarations ! inside function headers are also considered declarations in this ! sense. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled." ! t nil ! (c c++) '("auto" "extern" "inline" "register" "static") ! c++ (append '("explicit" "friend" "mutable" "template" "using" "virtual") ! (c-lang-const c-modifier-kwds)) ! objc '("auto" "bycopy" "byref" "extern" "in" "inout" "oneway" "out" "static") ! ;; FIXME: Some of those below ought to be on `c-other-decl-kwds' instead. ! idl '("abstract" "attribute" "const" "consumes" "custom" "emits" "import" ! "in" "inout" "local" "multiple" "oneway" "out" "private" "provides" ! "public" "publishes" "readonly" "typeid" "typeprefix" "uses" ! ;; In CORBA PSDL: ! "primary" "state" ! ;; In CORBA CIDL: ! "bindsTo" "delegatesTo" "implements" "proxy" "storedOn") ! ;; Note: "const" is not used in Java, but it's still a reserved keyword. ! java '("abstract" "const" "final" "native" "private" "protected" "public" ! "static" "strictfp" "synchronized" "transient" "volatile") ! pike '("final" "inline" "local" "nomask" "optional" "private" "protected" ! "public" "static" "variant")) ! ! (c-lang-defconst c-other-decl-kwds ! "Keywords that can start or prefix any declaration level construct, ! besides those on `c-class-decl-kwds', `c-brace-list-decl-kwds', ! `c-other-block-decl-kwds', `c-typedef-decl-kwds', ! `c-typeless-decl-kwds' and `c-modifier-kwds'. In a declaration, these ! keywords are also recognized inside or after the identifiers that ! makes up the type. ! ! If any of these also are on `c-type-list-kwds', `c-ref-list-kwds', ! `c-colon-type-list-kwds', `c-paren-nontype-kwds', `c-paren-type-kwds', ! `c-<>-type-kwds', or `c-<>-arglist-kwds' then the associated clauses ! will be handled." ! t nil ! (c c++) '("__declspec") ; MSVC extension. ! objc '("@class" "@end" "@defs") ! java '("import" "package") ! pike '("import" "inherit")) ! ! (c-lang-defconst c-specifier-key ! ;; Adorned regexp matching keywords that can start a declaration but ! ;; not a type. ! t (c-make-keywords-re t ! (set-difference (append (c-lang-const c-class-decl-kwds) ! (c-lang-const c-brace-list-decl-kwds) ! (c-lang-const c-other-block-decl-kwds) ! (c-lang-const c-typedef-decl-kwds) ! (c-lang-const c-typeless-decl-kwds) ! (c-lang-const c-modifier-kwds) ! (c-lang-const c-other-decl-kwds)) ! (append (c-lang-const c-primitive-type-kwds) ! (c-lang-const c-type-prefix-kwds) ! (c-lang-const c-type-modifier-kwds)) ! :test 'string-equal))) ! (c-lang-defvar c-specifier-key (c-lang-const c-specifier-key)) ! ! (c-lang-defconst c-protection-kwds ! "Protection label keywords in classes." ! t nil ! c++ '("private" "protected" "public") ! objc '("@private" "@protected" "@public")) ! ! (c-lang-defconst c-opt-access-key ! ;; Regexp matching an access protection label in a class, or nil in ! ;; languages that don't have such things. ! t (if (c-lang-const c-protection-kwds) ! (c-make-keywords-re t (c-lang-const c-protection-kwds))) ! c++ (concat "\\(" ! (c-make-keywords-re nil (c-lang-const c-protection-kwds)) ! "\\)[ \t\n\r\f\v]*:")) ! (c-lang-defvar c-opt-access-key (c-lang-const c-opt-access-key)) (c-lang-defconst c-block-decls-with-vars ! "Keywords introducing declarations that can contain a block which ! might be followed by variable declarations, e.g. like \"foo\" in ! \"class Foo { ... } foo;\". So if there is a block in a declaration ! like that, it ends with the following ';' and not right away. ! ! The keywords on list are assumed to also be present on one of the ! `*-decl-kwds' lists." ! t nil ! (c objc) '("struct" "union" "enum" "typedef") ! c++ '("class" "struct" "union" "enum" "typedef")) (c-lang-defconst c-opt-block-decls-with-vars-key ! ;; Regexp matching the `c-block-decls-with-vars' keywords, or nil in ! ;; languages without such constructs. ! t (and (c-lang-const c-block-decls-with-vars) ! (c-make-keywords-re t (c-lang-const c-block-decls-with-vars)))) (c-lang-defvar c-opt-block-decls-with-vars-key ! (c-lang-const c-opt-block-decls-with-vars-key)) ! (c-lang-defconst c-postfix-decl-spec-kwds ! "Keywords introducing extra declaration specifiers in the region ! between the header and the body \(i.e. the \"K&R-region\") in ! declarations." ! t nil ! (c c++) '("__attribute__") ; GCC extension. ! java '("extends" "implements" "throws") ! idl '("context" "getraises" "manages" "primarykey" "raises" "setraises" ! "supports" ! ;; In CORBA PSDL: ! "as" "const" "implements" "of" "ref")) ! ! (c-lang-defconst c-nonsymbol-sexp-kwds ! "Keywords that may be followed by a nonsymbol sexp before whatever ! construct it's part of continues." ! t nil ! (c c++ objc) '("extern")) ! ! (c-lang-defconst c-type-list-kwds ! "Keywords that may be followed by a comma separated list of type ! identifiers, where each optionally can be prefixed by keywords. (Can ! also be used for the special case when the list can contain only one ! element.) ! ! Assumed to be mutually exclusive with `c-ref-list-kwds'. There's no ! reason to put keywords on this list if they are on `c-type-prefix-kwds'. ! There's also no reason to add keywords that prefixes a normal ! declaration consisting of a type followed by a declarator (list), so ! the keywords on `c-modifier-kwds' should normally not be listed here ! too. ! ! Note: Use `c-typeless-decl-kwds' for keywords followed by a function ! or variable identifier (that's being defined)." ! t '("struct" "union" "enum") ! (c c++ awk) nil ! objc (append '("@class" "@interface" "@implementation" "@protocol") ! (c-lang-const c-type-list-kwds)) ! java '("class" "import" "interface" "new" "extends" "implements" "throws") ! idl (append '("component" "eventtype" "home" "interface" "manages" "native" ! "primarykey" "supports" "valuetype" ! ;; In CORBA PSDL: ! "as" "implements" "of" "scope" "storagehome" "storagetype") ! (c-lang-const c-type-list-kwds)) ! pike '("class" "enum" "inherit")) ! ! (c-lang-defconst c-ref-list-kwds ! "Keywords that may be followed by a comma separated list of ! reference (i.e. namespace/scope/module) identifiers, where each ! optionally can be prefixed by keywords. (Can also be used for the ! special case when the list can contain only one element.) Assumed to ! be mutually exclusive with `c-type-list-kwds'. ! ! Note: Use `c-typeless-decl-kwds' for keywords followed by a function ! or variable identifier (that's being defined)." ! t nil ! c++ '("namespace") ! java '("package") ! idl '("import" "module" ! ;; In CORBA CIDL: ! "composition") ! pike '("import")) ! ! (c-lang-defconst c-colon-type-list-kwds ! "Keywords that may be followed (not necessarily directly) by a colon ! and then a comma separated list of type identifiers, where each ! optionally can be prefixed by keywords. (Can also be used for the ! special case when the list can contain only one element.)" ! t nil ! c++ '("class" "struct") ! idl '("component" "eventtype" "home" "interface" "valuetype" ! ;; In CORBA PSDL: ! "storagehome" "storagetype")) ! ! (c-lang-defconst c-colon-type-list-re ! "Regexp matched after the keywords in `c-colon-type-list-kwds' to skip ! forward to the colon. The end of the match is assumed to be directly ! after the colon, so the regexp should end with \":\" although that ! isn't necessary. Must be a regexp if `c-colon-type-list-kwds' isn't ! nil." ! t (if (c-lang-const c-colon-type-list-kwds) ! ;; Disallow various common punctuation chars that can't come ! ;; before the ":" that starts the inherit list after "class" ! ;; or "struct" in C++. (Also used as default for other ! ;; languages.) ! "[^\]\[{}();,/#=:]*:")) ! (c-lang-defvar c-colon-type-list-re (c-lang-const c-colon-type-list-re)) ! ! (c-lang-defconst c-paren-nontype-kwds ! "Keywords that may be followed by a parenthesis expression that doesn't ! contain type identifiers." ! t nil ! (c c++) '("__declspec")) ; MSVC extension. ! ! (c-lang-defconst c-paren-type-kwds ! "Keywords that may be followed by a parenthesis expression containing ! type identifiers separated by arbitrary tokens." ! t nil ! c++ '("throw") ! objc '("@defs") ! idl '("switch") ! pike '("array" "function" "int" "mapping" "multiset" "object" "program")) ! ! (c-lang-defconst c-paren-any-kwds ! t (delete-duplicates (append (c-lang-const c-paren-nontype-kwds) ! (c-lang-const c-paren-type-kwds)) ! :test 'string-equal)) ! ! (c-lang-defconst c-<>-type-kwds ! "Keywords that may be followed by an angle bracket expression ! containing type identifiers separated by \",\". The difference from ! `c-<>-arglist-kwds' is that unknown names are taken to be types and ! not other identifiers. `c-recognize-<>-arglists' is assumed to be set ! if this isn't nil." ! t nil ! objc '("id") ! idl '("sequence" ! ;; In CORBA PSDL: ! "ref")) ! ! (c-lang-defconst c-<>-arglist-kwds ! "Keywords that can be followed by a C++ style template arglist; see ! `c-recognize-<>-arglists' for details. That language constant is ! assumed to be set if this isn't nil." ! t nil ! c++ '("template") ! idl '("fixed" "string" "wstring")) ! ! (c-lang-defconst c-<>-sexp-kwds ! ;; All keywords that can be followed by an angle bracket sexp. ! t (delete-duplicates (append (c-lang-const c-<>-type-kwds) ! (c-lang-const c-<>-arglist-kwds)) ! :test 'string-equal)) ! ! (c-lang-defconst c-opt-<>-sexp-key ! ;; Adorned regexp matching keywords that can be followed by an angle ! ;; bracket sexp. ! t (if (c-lang-const c-recognize-<>-arglists) ! (c-make-keywords-re t (c-lang-const c-<>-sexp-kwds)))) ! (c-lang-defvar c-opt-<>-sexp-key (c-lang-const c-opt-<>-sexp-key)) ! ! (c-lang-defconst c-brace-id-list-kwds ! "Keywords that may be followed by a brace block containing a comma ! separated list of identifier definitions, i.e. like the list of ! identifiers that follows the type in a normal declaration." ! t (c-lang-const c-brace-list-decl-kwds)) (c-lang-defconst c-block-stmt-1-kwds ! "Statement keywords followed directly by a substatement." ! t '("do" "else") ! c++ '("do" "else" "try") ! java '("do" "else" "finally" "try") ! idl nil) (c-lang-defconst c-block-stmt-1-key ! ;; Regexp matching the start of any statement followed directly by a ! ;; substatement (doesn't match a bare block, however). ! t (c-make-keywords-re t (c-lang-const c-block-stmt-1-kwds))) ! (c-lang-defvar c-block-stmt-1-key (c-lang-const c-block-stmt-1-key)) (c-lang-defconst c-block-stmt-2-kwds ! "Statement keywords followed by a paren sexp and then by a substatement." ! t '("for" "if" "switch" "while") ! c++ '("for" "if" "switch" "while" "catch") java '("for" "if" "switch" "while" "catch" "synchronized") ! idl nil ! pike '("for" "if" "switch" "while" "foreach") ! awk '("for" "if" "while")) (c-lang-defconst c-block-stmt-2-key ! ;; Regexp matching the start of any statement followed by a paren sexp ! ;; and then by a substatement. ! t (c-make-keywords-re t (c-lang-const c-block-stmt-2-kwds))) ! (c-lang-defvar c-block-stmt-2-key (c-lang-const c-block-stmt-2-key)) (c-lang-defconst c-opt-block-stmt-key ! ;; Regexp matching the start of any statement that has a ! ;; substatement (except a bare block). Nil in languages that ! ;; don't have such constructs. ! t (if (or (c-lang-const c-block-stmt-1-kwds) ! (c-lang-const c-block-stmt-2-kwds)) ! (c-make-keywords-re t ! (append (c-lang-const c-block-stmt-1-kwds) ! (c-lang-const c-block-stmt-2-kwds))))) ! (c-lang-defvar c-opt-block-stmt-key (c-lang-const c-opt-block-stmt-key)) (c-lang-defconst c-simple-stmt-kwds ! "Statement keywords followed by an expression or nothing." ! t '("break" "continue" "goto" "return") ;; Note: `goto' is not valid in Java, but the keyword is still reserved. java '("break" "continue" "goto" "return" "throw") ! idl nil ! pike '("break" "continue" "return") ! awk '(;; Not sure about "delete", "exit", "getline", etc. ; ACM 2002/5/30 ! "break" "continue" "return" "delete" "exit" "getline" "next" ! "nextfile" "print" "printf")) ! ! (c-lang-defconst c-simple-stmt-key ! ;; Adorned regexp matching `c-simple-stmt-kwds'. ! t (c-make-keywords-re t (c-lang-const c-simple-stmt-kwds))) ! (c-lang-defvar c-simple-stmt-key (c-lang-const c-simple-stmt-key)) ! ! (c-lang-defconst c-paren-stmt-kwds ! "Statement keywords followed by a parenthesis expression that ! nevertheless contains a list separated with ';' and not ','." ! t '("for") ! idl nil) ! ! (c-lang-defconst c-paren-stmt-key ! ;; Adorned regexp matching `c-paren-stmt-kwds'. ! t (c-make-keywords-re t (c-lang-const c-paren-stmt-kwds))) ! (c-lang-defvar c-paren-stmt-key (c-lang-const c-paren-stmt-key)) (c-lang-defconst c-asm-stmt-kwds ! "Statement keywords followed by an assembler expression." ! t nil ! (c c++) '("asm" "__asm__")) ;; Not standard, but common. (c-lang-defconst c-opt-asm-stmt-key ! ;; Regexp matching the start of an assembler statement. Nil in ! ;; languages that don't support that. ! t (if (c-lang-const c-asm-stmt-kwds) ! (c-make-keywords-re t (c-lang-const c-asm-stmt-kwds)))) ! (c-lang-defvar c-opt-asm-stmt-key (c-lang-const c-opt-asm-stmt-key)) ! ! (c-lang-defconst c-label-kwds ! "Keywords introducing labels in blocks." ! t '("case" "default") ! awk nil) ! ! (c-lang-defconst c-before-label-kwds ! "Keywords that might be followed by a label identifier." ! t '("goto") ! (java pike) (append '("break" "continue") ! (c-lang-const c-before-label-kwds)) ! idl nil ! awk nil) (c-lang-defconst c-label-kwds-regexp ! ;; Regexp matching any keyword that introduces a label. ! t (c-make-keywords-re t (c-lang-const c-label-kwds))) ! (c-lang-defvar c-label-kwds-regexp (c-lang-const c-label-kwds-regexp)) ! ! (c-lang-defconst c-constant-kwds ! "Keywords for constants." ! t nil ! (c c++) '("NULL" ;; Not a keyword, but practically works as one. ! "false" "true") ; Defined in C99. ! objc '("nil" "Nil") ! idl '("TRUE" "FALSE") ! pike '("UNDEFINED")) ;; Not a keyword, but practically works as one. ! ! (c-lang-defconst c-primary-expr-kwds ! "Keywords besides constants and operators that start primary expressions." ! t nil ! c++ '("operator" "this") ! objc '("super" "self") ! java '("this") ! pike '("this")) ;; Not really a keyword, but practically works as one. (c-lang-defconst c-expr-kwds ! ;; Keywords that can occur anywhere in expressions. Built from ! ;; `c-primary-expr-kwds' and all keyword operators in `c-operators'. ! t (delete-duplicates ! (append (c-lang-const c-primary-expr-kwds) ! (c-with-syntax-table (c-lang-const c-mode-syntax-table) ! (mapcan (lambda (op) ! (and (string-match "\\`\\(\\w\\|\\s_\\)+\\'" op) ! (list op))) ! (c-lang-const c-operator-list)))) ! :test 'string-equal)) ! ! (c-lang-defconst c-lambda-kwds ! "Keywords that start lambda constructs, i.e. function definitions in ! expressions." ! t nil ! pike '("lambda")) (c-lang-defconst c-opt-lambda-key ! ;; Adorned regexp matching the start of lambda constructs, or nil in ! ;; languages that don't have such things. ! t (and (c-lang-const c-lambda-kwds) ! (c-make-keywords-re t (c-lang-const c-lambda-kwds)))) ! (c-lang-defvar c-opt-lambda-key (c-lang-const c-opt-lambda-key)) ! ! (c-lang-defconst c-inexpr-block-kwds ! "Keywords that start constructs followed by statement blocks which can ! be used in expressions \(the gcc extension for this in C and C++ is ! handled separately)." ! t nil ! pike '("catch" "gauge")) (c-lang-defconst c-opt-inexpr-block-key ! ;; Regexp matching the start of in-expression statements, or nil in ! ;; languages that don't have such things. ! t nil ! pike (c-make-keywords-re t (c-lang-const c-inexpr-block-kwds))) ! (c-lang-defvar c-opt-inexpr-block-key (c-lang-const c-opt-inexpr-block-key)) (c-lang-defconst c-inexpr-class-kwds + "Keywords that can start classes inside expressions." + t nil java '("new") pike '("class")) (c-lang-defconst c-opt-inexpr-class-key ! ;; Regexp matching the start of a class in an expression, or nil in ! ;; languages that don't have such things. ! t (and (c-lang-const c-inexpr-class-kwds) ! (c-make-keywords-re t (c-lang-const c-inexpr-class-kwds)))) ! (c-lang-defvar c-opt-inexpr-class-key (c-lang-const c-opt-inexpr-class-key)) ! ! (c-lang-defconst c-inexpr-brace-list-kwds ! "Keywords that can start brace list blocks inside expressions. ! Note that Java specific rules are currently applied to tell this from ! `c-inexpr-class-kwds'." ! t nil ! java '("new")) ! ! (c-lang-defconst c-opt-inexpr-brace-list-key ! ;; Regexp matching the start of a brace list in an expression, or ! ;; nil in languages that don't have such things. This should not ! ;; match brace lists recognized through `c-special-brace-lists'. ! t (and (c-lang-const c-inexpr-brace-list-kwds) ! (c-make-keywords-re t (c-lang-const c-inexpr-brace-list-kwds)))) ! (c-lang-defvar c-opt-inexpr-brace-list-key ! (c-lang-const c-opt-inexpr-brace-list-key)) (c-lang-defconst c-any-class-key ! ;; Regexp matching the start of any class, both at top level and in ! ;; expressions. ! t (c-make-keywords-re t ! (append (c-lang-const c-class-decl-kwds) ! (c-lang-const c-inexpr-class-kwds)))) ! (c-lang-defvar c-any-class-key (c-lang-const c-any-class-key)) ! (c-lang-defconst c-decl-block-key ! ;; Regexp matching the start of any declaration-level block that ! ;; contain another declaration level, i.e. that isn't a function ! ;; block or brace list. ! t (c-make-keywords-re t ! (append (c-lang-const c-class-decl-kwds) ! (c-lang-const c-other-block-decl-kwds) ! (c-lang-const c-inexpr-class-kwds))) ! ;; In Pike modifiers might be followed by a block ! ;; to apply to several declarations. ! pike (concat (c-lang-const c-decl-block-key) ! "\\|" ! "\\(" (c-make-keywords-re nil ! (c-lang-const c-modifier-kwds)) "\\)" ! (c-lang-const c-syntactic-ws) ! "{")) ! (c-lang-defvar c-decl-block-key (c-lang-const c-decl-block-key)) (c-lang-defconst c-bitfield-kwds ! "Keywords that can introduce bitfields." ! t nil ! (c c++ objc) '("char" "int" "long" "signed" "unsigned")) (c-lang-defconst c-opt-bitfield-key ! ;; Regexp matching the start of a bitfield (not uniquely), or nil in ! ;; languages without bitfield support. ! t nil ! (c c++) (c-make-keywords-re t (c-lang-const c-bitfield-kwds))) ! (c-lang-defvar c-opt-bitfield-key (c-lang-const c-opt-bitfield-key)) ! ! (c-lang-defconst c-other-kwds ! "Keywords not accounted for by any other `*-kwds' language constant." ! t nil ! idl '("truncatable" ! ;; In CORBA CIDL: (These are declaration keywords that never ! ;; can start a declaration.) ! "entity" "process" "service" "session" "storage")) ! ! ! ;;; Constants built from keywords. ! ! ;; Note: No `*-kwds' language constants may be defined below this point. ! ! (eval-and-compile ! (defconst c-kwds-lang-consts ! ;; List of all the language constants that contain keyword lists. ! (let (list) ! (mapatoms (lambda (sym) ! (when (and (boundp sym) ! (string-match "-kwds\\'" (symbol-name sym))) ! ;; Make the list of globally interned symbols ! ;; instead of ones interned in `c-lang-constants'. ! (setq list (cons (intern (symbol-name sym)) list)))) ! c-lang-constants) ! list))) (c-lang-defconst c-keywords ! ;; All keywords as a list. ! t (delete-duplicates ! (c-lang-defconst-eval-immediately ! `(append ,@(mapcar (lambda (kwds-lang-const) ! `(c-lang-const ,kwds-lang-const)) ! c-kwds-lang-consts) ! nil)) ! :test 'string-equal)) (c-lang-defconst c-keywords-regexp ! ;; All keywords as an adorned regexp. ! t (c-make-keywords-re t (c-lang-const c-keywords))) ! (c-lang-defvar c-keywords-regexp (c-lang-const c-keywords-regexp)) ! ! (c-lang-defconst c-keyword-member-alist ! ;; An alist with all the keywords in the cars. The cdr for each ! ;; keyword is a list of the symbols for the `*-kwds' lists that ! ;; contains it. ! t (let ((kwd-list-alist ! (c-lang-defconst-eval-immediately ! `(list ,@(mapcar (lambda (kwds-lang-const) ! `(cons ',kwds-lang-const ! (c-lang-const ,kwds-lang-const))) ! c-kwds-lang-consts)))) ! lang-const kwd-list kwd ! result-alist elem) ! (while kwd-list-alist ! (setq lang-const (caar kwd-list-alist) ! kwd-list (cdar kwd-list-alist) ! kwd-list-alist (cdr kwd-list-alist)) ! (while kwd-list ! (setq kwd (car kwd-list) ! kwd-list (cdr kwd-list)) ! (unless (setq elem (assoc kwd result-alist)) ! (setq result-alist (cons (setq elem (list kwd)) result-alist))) ! (unless (memq lang-const (cdr elem)) ! (setcdr elem (cons lang-const (cdr elem)))))) ! result-alist)) ! ! (c-lang-defvar c-keywords-obarray ! ;; An obarray containing all keywords as symbols. The property list ! ;; of each symbol has a non-nil entry for the specific `*-kwds' ! ;; lists it's a member of. ! ;; ! ;; E.g. to see whether the string str contains a keyword on ! ;; `c-class-decl-kwds', one can do like this: ! ;; (get (intern-soft str c-keyword-obarray) 'c-class-decl-kwds) ! ;; Which preferably is written using the associated functions in ! ;; cc-engine: ! ;; (c-keyword-member (c-keyword-sym str) 'c-class-decl-kwds) ! ! ;; The obarray is not stored directly as a language constant since ! ;; the printed representation for obarrays used in .elc files isn't ! ;; complete. ! ! (let* ((alist (c-lang-const c-keyword-member-alist)) ! kwd lang-const-list ! (obarray (make-vector (* (length alist) 2) 0))) ! (while alist ! (setq kwd (caar alist) ! lang-const-list (cdar alist) ! alist (cdr alist)) ! (setplist (intern kwd obarray) ! ;; Emacs has an odd bug that causes `mapcan' to fail ! ;; with unintelligible errors. (XEmacs >= 20 works.) ! ;;(mapcan (lambda (lang-const) ! ;; (list lang-const t)) ! ;; lang-const-list) ! (apply 'nconc (mapcar (lambda (lang-const) ! (list lang-const t)) ! lang-const-list)))) ! obarray)) ! ! (c-lang-defconst c-regular-keywords-regexp ! ;; Adorned regexp matching all keywords that aren't types or ! ;; constants. ! t (c-make-keywords-re t ! (set-difference (c-lang-const c-keywords) ! (append (c-lang-const c-primitive-type-kwds) ! (c-lang-const c-constant-kwds)) ! :test 'string-equal))) ! (c-lang-defvar c-regular-keywords-regexp ! (c-lang-const c-regular-keywords-regexp)) ! ! (c-lang-defconst c-not-decl-init-keywords ! ;; Adorned regexp matching all keywords that can't appear at the ! ;; start of a declaration. ! t (c-make-keywords-re t ! (set-difference (c-lang-const c-keywords) ! (append (c-lang-const c-primitive-type-kwds) ! (c-lang-const c-type-prefix-kwds) ! (c-lang-const c-type-modifier-kwds) ! (c-lang-const c-class-decl-kwds) ! (c-lang-const c-brace-list-decl-kwds) ! (c-lang-const c-other-block-decl-kwds) ! (c-lang-const c-typedef-decl-kwds) ! (c-lang-const c-typeless-decl-kwds) ! (c-lang-const c-modifier-kwds) ! (c-lang-const c-other-decl-kwds)) ! :test 'string-equal))) ! (c-lang-defvar c-not-decl-init-keywords ! (c-lang-const c-not-decl-init-keywords)) ! ! (c-lang-defconst c-primary-expr-regexp ! ;; Regexp matching the start of any primary expression, i.e. any ! ;; literal, symbol, prefix operator, and '('. It doesn't need to ! ;; exclude keywords; they are excluded afterwards unless the second ! ;; submatch matches. If the first but not the second submatch ! ;; matches then it is an ambiguous primary expression; it could also ! ;; be a match of e.g. an infix operator. (The case with ambiguous ! ;; keyword operators isn't handled.) ! ! t (c-with-syntax-table (c-lang-const c-mode-syntax-table) ! (let* ((prefix-ops ! (mapcan (lambda (op) ! ;; Filter out the special case prefix ! ;; operators that are close parens. ! (unless (string-match "\\s\)" op) ! (list op))) ! (mapcan ! (lambda (opclass) ! (when (eq (car opclass) 'prefix) ! (append (cdr opclass) nil))) ! (c-lang-const c-operators)))) ! ! (nonkeyword-prefix-ops ! (mapcan (lambda (op) ! (unless (string-match "\\`\\(\\w\\|\\s_\\)+\\'" op) ! (list op))) ! prefix-ops)) ! ! (in-or-postfix-ops ! (mapcan (lambda (opclass) ! (when (memq (car opclass) ! '(postfix ! left-assoc ! right-assoc ! right-assoc-sequence)) ! (append (cdr opclass) nil))) ! (c-lang-const c-operators))) ! ! (unambiguous-prefix-ops (set-difference nonkeyword-prefix-ops ! in-or-postfix-ops ! :test 'string-equal)) ! (ambiguous-prefix-ops (intersection nonkeyword-prefix-ops ! in-or-postfix-ops ! :test 'string-equal))) ! ! (concat ! "\\(" ! ;; Take out all symbol class operators from `prefix-ops' and make the ! ;; first submatch from them together with `c-primary-expr-kwds'. ! (c-make-keywords-re t ! (append (c-lang-const c-primary-expr-kwds) ! (set-difference prefix-ops nonkeyword-prefix-ops ! :test 'string-equal))) ! ! "\\|" ! ;; Match all ambiguous operators. ! (c-make-keywords-re nil ! (intersection nonkeyword-prefix-ops in-or-postfix-ops ! :test 'string-equal)) ! "\\)" ! ! "\\|" ! ;; Now match all other symbols. ! (c-lang-const c-symbol-start) ! ! "\\|" ! ;; The chars that can start integer and floating point ! ;; constants. ! "\\.?[0-9]" ! ! "\\|" ! ;; The nonambiguous operators from `prefix-ops'. ! (c-make-keywords-re nil ! (set-difference nonkeyword-prefix-ops in-or-postfix-ops ! :test 'string-equal)) ! ! "\\|" ! ;; Match string and character literals. ! "\\s\"" ! (if (memq 'gen-string-delim c-emacs-features) ! "\\|\\s|" ! ""))))) ! (c-lang-defvar c-primary-expr-regexp (c-lang-const c-primary-expr-regexp)) ! ! ;;; Additional constants for parser-level constructs. ! (c-lang-defconst c-decl-prefix-re ! "Regexp matching something that might precede a declaration or a cast, ! such as the last token of a preceding statement or declaration. It ! should not match bob, though. It can't require a match longer than ! one token. The end of the token is taken to be at the end of the ! first submatch. It must not include any following whitespace. It's ! undefined whether identifier syntax (see `c-identifier-syntax-table') ! is in effect or not." ! ;; We match a sequence of characters to skip over things like \"};\" ! ;; more quickly. We match ")" in C for K&R region declarations, and ! ;; in all languages except Java for when a cpp macro definition ! ;; begins with a declaration. ! t "\\([\{\}\(\);,]+\\)" ! java "\\([\{\}\(;,]+\\)" ! ;; Match "<" in C++ to get the first argument in a template arglist. ! ;; In that case there's an additional check in `c-find-decl-spots' ! ;; that it got open paren syntax. ! ;; ! ;; Also match a single ":" for protection labels. We cheat a little ! ;; and require a symbol immediately before to avoid false matches ! ;; when starting directly on a single ":", which can be the start of ! ;; the base class initializer list in a constructor. ! c++ "\\([\{\}\(\);,<]+\\|\\(\\w\\|\\s_\\):\\)\\([^:]\\|\\'\\)" ! ;; Additionally match the protection directives in Objective-C. ! ;; Note that this doesn't cope with the longer directives, which we ! ;; would have to match from start to end since they don't end with ! ;; any easily recognized characters. ! objc (concat "\\([\{\}\(\);,]+\\|" ! (c-make-keywords-re nil (c-lang-const c-protection-kwds)) ! "\\)") ! ;; Match ":" for switch labels inside union declarations in IDL. ! idl "\\([\{\}\(\);:,]+\\)\\([^:]\\|\\'\\)" ! ;; Pike is like C but we also match "[" for multiple value ! ;; assignments and type casts. ! pike "\\([\{\}\(\)\[;,]+\\)") ! (c-lang-defvar c-decl-prefix-re (c-lang-const c-decl-prefix-re) ! 'dont-doc) ! ! (c-lang-defconst c-cast-parens ! ;; List containing the paren characters that can open a cast, or nil in ! ;; languages without casts. ! t (c-with-syntax-table (c-lang-const c-mode-syntax-table) ! (mapcan (lambda (opclass) ! (when (eq (car opclass) 'prefix) ! (mapcan (lambda (op) ! (when (string-match "\\`\\s\(\\'" op) ! (list (elt op 0)))) ! (cdr opclass)))) ! (c-lang-const c-operators)))) ! (c-lang-defvar c-cast-parens (c-lang-const c-cast-parens)) ! ! (c-lang-defconst c-type-decl-prefix-key ! "Regexp matching the operators that might precede the identifier in a ! declaration, e.g. the \"*\" in \"char *argv\". This regexp should ! match \"(\" if parentheses are valid in type declarations. The end of ! the first submatch is taken as the end of the operator. Identifier ! syntax is in effect when this is matched (see `c-identifier-syntax-table')." ! t (if (c-lang-const c-type-modifier-kwds) ! (concat (c-regexp-opt (c-lang-const c-type-modifier-kwds) t) "\\>") ! ;; Default to a regexp that never matches. ! "\\<\\>") ! (c objc) (concat "\\(" ! "[*\(]" ! "\\|" ! (c-lang-const c-type-decl-prefix-key) ! "\\)" ! "\\([^=]\\|$\\)") ! c++ (concat "\\(" ! "[*\(&]" ! "\\|" ! (concat "\\(" ; 2 ! ;; If this matches there's special treatment in ! ;; `c-font-lock-declarators' and ! ;; `c-font-lock-declarations' that check for a ! ;; complete name followed by ":: *". ! (c-lang-const c-identifier-start) ! "\\)") ! "\\|" ! (c-lang-const c-type-decl-prefix-key) ! "\\)" ! "\\([^=]\\|$\\)") ! pike "\\([*\(!~]\\)\\([^=]\\|$\\)") ! (c-lang-defvar c-type-decl-prefix-key (c-lang-const c-type-decl-prefix-key) ! 'dont-doc) ! ! (c-lang-defconst c-type-decl-suffix-key ! "Regexp matching the operators that might follow after the identifier ! in a declaration, e.g. the \"[\" in \"char argv[]\". This regexp ! should match \")\" if parentheses are valid in type declarations. If ! it matches an open paren of some kind, the type declaration check ! continues at the corresponding close paren, otherwise the end of the ! first submatch is taken as the end of the operator. Identifier syntax ! is in effect when this is matched (see `c-identifier-syntax-table')." ! ;; Default to a regexp that matches `c-type-modifier-kwds' and a ! ;; function argument list parenthesis. ! t (if (c-lang-const c-type-modifier-kwds) ! (concat "\\(\(\\|" ! (c-regexp-opt (c-lang-const c-type-modifier-kwds) t) "\\>" ! "\\)") ! "\\(\(\\)") ! (c c++ objc) (concat ! "\\(" ! "[\)\[\(]" ! "\\|" ! ;; "throw" in `c-type-modifier-kwds' is followed by a ! ;; parenthesis list, but no extra measures are ! ;; necessary to handle that. ! (c-regexp-opt (c-lang-const c-type-modifier-kwds) t) "\\>" ! "\\)") ! (java idl) "\\([\[\(]\\)") ! (c-lang-defvar c-type-decl-suffix-key (c-lang-const c-type-decl-suffix-key) ! 'dont-doc) ! ! (c-lang-defconst c-after-suffixed-type-decl-key ! "This regexp is matched after a type declaration expression where ! `c-type-decl-suffix-key' has matched. If it matches then the ! construct is taken as a declaration. It's typically used to match the ! beginning of a function body or whatever might occur after the ! function header in a function declaration or definition. It's ! undefined whether identifier syntax (see `c-identifier-syntax-table') ! is in effect or not. ! ! Note that it's used in cases like after \"foo (bar)\" so it should ! only match when it's certain that it's a declaration, e.g \"{\" but ! not \",\" or \";\"." ! t "{" ! ;; If K&R style declarations should be recognized then one could ! ;; consider to match the start of any symbol since we want to match ! ;; the start of the first declaration in the "K&R region". That ! ;; could however produce false matches on code like "FOO(bar) x" ! ;; where FOO is a cpp macro, so it's better to leave it out and rely ! ;; on the other heuristics in that case. ! t (if (c-lang-const c-postfix-decl-spec-kwds) ! ;; Add on the keywords in `c-postfix-decl-spec-kwds'. ! (concat (c-lang-const c-after-suffixed-type-decl-key) ! "\\|" ! (c-make-keywords-re t (c-lang-const c-postfix-decl-spec-kwds))) ! (c-lang-const c-after-suffixed-type-decl-key)) ! ;; Also match the colon that starts a base class initializer list in ! ;; C++. That can be confused with a function call before the colon ! ;; in a ? : operator, but we count on that `c-decl-prefix-re' won't ! ;; match before such a thing (as a declaration-level construct; ! ;; matches inside arglist contexts are already excluded). ! c++ "[{:]") ! (c-lang-defvar c-after-suffixed-type-decl-key ! (c-lang-const c-after-suffixed-type-decl-key) ! 'dont-doc) ! ! (c-lang-defconst c-after-suffixed-type-maybe-decl-key ! ;; Regexp that in addition to `c-after-suffixed-type-decl-key' ! ;; matches ";" and ",". ! t (concat "\\(" (c-lang-const c-after-suffixed-type-decl-key) "\\)" ! "\\|[;,]")) ! (c-lang-defvar c-after-suffixed-type-maybe-decl-key ! (c-lang-const c-after-suffixed-type-maybe-decl-key)) ! ! (c-lang-defconst c-opt-type-concat-key ! "Regexp matching operators that concatenate types, e.g. the \"|\" in ! \"int|string\" in Pike. The end of the first submatch is taken as the ! end of the operator. nil in languages without such operators. It's ! undefined whether identifier syntax (see `c-identifier-syntax-table') ! is in effect or not." ! t nil ! pike "\\([|.&]\\)\\($\\|[^|.&]\\)") ! (c-lang-defvar c-opt-type-concat-key (c-lang-const c-opt-type-concat-key) ! 'dont-doc) ! ! (c-lang-defconst c-opt-type-suffix-key ! "Regexp matching operators that might follow after a type, or nil in ! languages that don't have such operators. The end of the first ! submatch is taken as the end of the operator. This should not match ! things like C++ template arglists if `c-recognize-<>-arglists' is set. ! It's undefined whether identifier syntax (see `c-identifier-syntax-table') ! is in effect or not." ! t nil ! (c c++ objc pike) "\\(\\.\\.\\.\\)" ! java "\\(\\[[ \t\n\r\f\v]*\\]\\)") ! (c-lang-defvar c-opt-type-suffix-key (c-lang-const c-opt-type-suffix-key)) ! ! (c-lang-defvar c-known-type-key ! ;; Regexp matching the known type identifiers. This is initialized ! ;; from the type keywords and `*-font-lock-extra-types'. The first ! ;; submatch is the one that matches the type. Note that this regexp ! ;; assumes that symbol constituents like '_' and '$' have word ! ;; syntax. ! (let ((extra-types (when (boundp (c-mode-symbol "font-lock-extra-types")) ! (c-mode-var "font-lock-extra-types")))) ! (concat "\\<\\(" ! (c-make-keywords-re nil (c-lang-const c-primitive-type-kwds)) ! (if (consp extra-types) ! (concat "\\|" (mapconcat 'identity extra-types "\\|")) ! "") ! "\\)\\>"))) ! ! (c-lang-defconst c-special-brace-lists ! "List of open- and close-chars that makes up a pike-style brace list, ! i.e. for a ([ ]) list there should be a cons (?\\[ . ?\\]) in this ! list." ! t nil ! pike '((?{ . ?}) (?\[ . ?\]) (?< . ?>))) ! (c-lang-defvar c-special-brace-lists (c-lang-const c-special-brace-lists)) ! ! (c-lang-defconst c-recognize-knr-p ! "Non-nil means K&R style argument declarations are valid." ! t nil ! c t) ! (c-lang-defvar c-recognize-knr-p (c-lang-const c-recognize-knr-p)) ! ! (c-lang-defconst c-recognize-typeless-decls ! "Non-nil means function declarations without return type should be ! recognized. That can introduce an ambiguity with parenthesized macro ! calls before a brace block. This setting does not affect declarations ! that are preceded by a declaration starting keyword, so ! e.g. `c-typeless-decl-kwds' may still be used when it's set to nil." ! t nil ! (c c++ objc) t) ! (c-lang-defvar c-recognize-typeless-decls ! (c-lang-const c-recognize-typeless-decls)) ! ! (c-lang-defconst c-recognize-<>-arglists ! "Non-nil means C++ style template arglists should be handled. More ! specifically, this means a comma separated list of types or ! expressions surrounded by \"<\" and \">\". It's always preceded by an ! identifier or one of the keywords on `c-<>-type-kwds' or ! `c-<>-arglist-kwds'. If there's an identifier before then the whole ! expression is considered to be a type." ! t (or (consp (c-lang-const c-<>-type-kwds)) ! (consp (c-lang-const c-<>-arglist-kwds)))) ! (c-lang-defvar c-recognize-<>-arglists (c-lang-const c-recognize-<>-arglists)) ! ! (c-lang-defconst c-recognize-paren-inits ! "Non-nil means that parenthesis style initializers exist, ! i.e. constructs like ! ! Foo bar (gnu); ! ! in addition to the more classic ! ! Foo bar = gnu;" ! t nil ! c++ t) ! (c-lang-defvar c-recognize-paren-inits (c-lang-const c-recognize-paren-inits)) ! ! (c-lang-defconst c-opt-<>-arglist-start ! ;; Regexp matching the start of angle bracket arglists in languages ! ;; where `c-recognize-<>-arglists' is set. Does not exclude ! ;; keywords outside `c-<>-arglist-kwds'. The first submatch is ! ;; assumed to surround the preceding symbol. The whole match is ! ;; assumed to end directly after the opening "<". ! t (if (c-lang-const c-recognize-<>-arglists) ! (concat "\\(" ! (c-lang-const c-symbol-key) ! "\\)" ! (c-lang-const c-syntactic-ws) ! "<"))) ! (c-lang-defvar c-opt-<>-arglist-start (c-lang-const c-opt-<>-arglist-start)) ! ! (c-lang-defconst c-opt-<>-arglist-start-in-paren ! ;; Regexp that in addition to `c-opt-<>-arglist-start' matches close ! ;; parens. The first submatch is assumed to surround ! ;; `c-opt-<>-arglist-start'. ! t (if (c-lang-const c-opt-<>-arglist-start) ! (concat "\\(" ! (c-lang-const c-opt-<>-arglist-start) ! "\\)\\|\\s\)"))) ! (c-lang-defvar c-opt-<>-arglist-start-in-paren ! (c-lang-const c-opt-<>-arglist-start-in-paren)) ! (c-lang-defconst c-label-key ! "Regexp matching a normal label, i.e. a label that doesn't begin with ! a keyword like switch labels. It's only used at the beginning of a ! statement." ! t "\\<\\>" ! (c c++ objc java pike) (concat "\\(" (c-lang-const c-symbol-key) "\\)" ! "[ \t\n\r\f\v]*:\\([^:]\\|$\\)")) ! (c-lang-defvar c-label-key (c-lang-const c-label-key) ! 'dont-doc) ! ! (c-lang-defconst c-opt-postfix-decl-spec-key ! ;; Regexp matching the beginning of a declaration specifier in the ! ;; region between the header and the body of a declaration. ! ;; ! ;; TODO: This is currently not used uniformly; c++-mode and ! ;; java-mode each have their own ways of using it. ! t nil ! c++ (concat ":?[ \t\n\r\f\v]*\\(virtual[ \t\n\r\f\v]+\\)?\\(" ! (c-make-keywords-re nil (c-lang-const c-protection-kwds)) ! "\\)[ \t\n\r\f\v]+" ! "\\(" (c-lang-const c-symbol-key) "\\)") ! java (c-make-keywords-re t (c-lang-const c-postfix-decl-spec-kwds))) ! (c-lang-defvar c-opt-postfix-decl-spec-key ! (c-lang-const c-opt-postfix-decl-spec-key)) (c-lang-defconst c-opt-friend-key ! ;; Regexp describing friend declarations classes, or nil in ! ;; languages that don't have such things. ! ;; ! ;; TODO: Ought to use `c-specifier-key' or similar, and the template ! ;; skipping isn't done properly. This will disappear soon. ! t nil c++ "friend[ \t]+\\|template[ \t]*<.+>[ \t]*friend[ \t]+") ! (c-lang-defvar c-opt-friend-key (c-lang-const c-opt-friend-key)) (c-lang-defconst c-opt-method-key + ;; Special regexp to match the start of Objective-C methods. The + ;; first submatch is assumed to end after the + or - key. + t nil objc (concat ! ;; TODO: Ought to use a better method than anchoring on bol. ! "^[ \t]*\\([+-]\\)[ \t\n\r\f\v]*" ! "\\(([^)]*)[ \t\n\r\f\v]*\\)?" ; return type ! "\\(" (c-lang-const c-symbol-key) "\\)")) ! (c-lang-defvar c-opt-method-key (c-lang-const c-opt-method-key)) ! ;;; Wrap up the `c-lang-defvar' system. ! ;; Compile in the list of language variables that has been collected ! ;; with the `c-lang-defvar' macro. Note that the first element is ! ;; nil. ! (defconst c-lang-variable-inits (cc-eval-when-compile c-lang-variable-inits)) ! ! (defun c-make-init-lang-vars-fun (mode) ! "Create a function that initializes all the language dependent variables ! for the given mode. ! ! This function should be evaluated at compile time, so that the ! function it returns is byte compiled with all the evaluated results ! from the language constants. Use the `c-init-language-vars' macro to ! accomplish that conveniently. ! ! This function does not do any hidden buffer changes." ! ! (if (and (not load-in-progress) ! (boundp 'byte-compile-dest-file) ! (stringp byte-compile-dest-file)) ! ! ;; No need to byte compile this lambda since the byte compiler is ! ;; smart enough to detect the `funcall' construct in the ! ;; `c-init-language-vars' macro below and compile it all straight ! ;; into the function that contains `c-init-language-vars'. ! `(lambda () ! ! ;; This let sets up the context for `c-mode-var' and similar ! ;; that could be in the result from `cl-macroexpand-all'. ! (let ((c-buffer-is-cc-mode ',mode) ! current-var) ! (condition-case err ! ! (if (eq c-version-sym ',c-version-sym) ! (setq ,@(let ((c-buffer-is-cc-mode mode) ! (c-lang-const-expansion 'immediate)) ! ;; `c-lang-const' will expand to the evaluated ! ;; constant immediately in `cl-macroexpand-all' ! ;; below. ! (mapcan ! (lambda (init) ! `(current-var ',(car init) ! ,(car init) ,(cl-macroexpand-all ! (elt init 1)))) ! (cdr c-lang-variable-inits)))) ! ! (unless (get ',mode 'c-has-warned-lang-consts) ! (message ,(concat "%s compiled with CC Mode %s " ! "but loaded with %s - evaluating " ! "language constants from source") ! ',mode ,c-version c-version) ! (put ',mode 'c-has-warned-lang-consts t)) ! ! (require 'cc-langs) ! (let ((init (cdr c-lang-variable-inits))) ! (while init ! (setq current-var (caar init)) ! (set (caar init) (eval (cadar init))) ! (setq init (cdr init))))) ! ! (error ! (if current-var ! (message "Eval error in the `c-lang-defvar' for `%s': %S" ! current-var err) ! (signal (car err) (cdr err))))))) ! ! ;; Being evaluated from source. Always use the dynamic method to ! ;; work well when `c-lang-defvar's in this file are reevaluated ! ;; interactively. ! `(lambda () ! (require 'cc-langs) ! (let ((c-buffer-is-cc-mode ',mode) ! (init (cdr c-lang-variable-inits)) ! current-var) ! (condition-case err ! ! (while init ! (setq current-var (caar init)) ! (set (caar init) (eval (cadar init))) ! (setq init (cdr init))) ! ! (error ! (if current-var ! (message "Eval error in the `c-lang-defvar' for `%s': %S" ! current-var err) ! (signal (car err) (cdr err))))))) ! )) ! ! (defmacro c-init-language-vars (mode) ! "Initialize all the language dependent variables for the given mode. ! This macro is expanded at compile time to a form tailored for the mode ! in question, so MODE must be a constant. Therefore MODE is not ! evaluated and should not be quoted. ! This macro does not do any hidden buffer changes." ! `(funcall ,(c-make-init-lang-vars-fun mode))) (cc-provide 'cc-langs) From MAILER-DAEMON Thu Jul 03 08:48:01 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3Hj-0006lW-RU for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3Ha-0006c2-Uu for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3HL-0006QB-V6 for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:35 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fv-0006Ha-IF for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:07 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Et-0005Gn-Oo for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:03 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-engine.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:33:54 -0000 Index: emacs/lisp/progmodes/cc-engine.el diff -c emacs/lisp/progmodes/cc-engine.el:1.28 emacs/lisp/progmodes/cc-engine.el:1.29 *** emacs/lisp/progmodes/cc-engine.el:1.28 Sat Mar 22 20:58:30 2003 --- emacs/lisp/progmodes/cc-engine.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-engine.el --- core syntax guessing engine for CC mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-engine.el --- core syntax guessing engine for CC mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 41,46 **** --- 40,122 ---- ;; probably also applies to many other Emacs packages, but here it's ;; clearly spelled out.) + ;; Hidden buffer changes + ;; + ;; Various functions in CC Mode use text properties for caching and + ;; syntactic markup purposes, and those of them that might modify such + ;; properties are said to do "hidden buffer changes". They should be + ;; used within `c-save-buffer-state' or a similar function that saves + ;; and restores buffer modifiedness etc. + ;; + ;; Interactive functions are assumed to not do hidden buffer changes + ;; (this isn't applicable in the specific parts of them that do real + ;; changes, though). + ;; + ;; All other functions are assumed to do hidden buffer changes and + ;; must thus be wrapped inside `c-save-buffer-state' if they're used + ;; from any function that does not do hidden buffer changes. + ;; + ;; Every function, except the interactive ones, that doesn't do hidden + ;; buffer changes have that explicitly stated in their docstring or + ;; comment. + + ;; Use of text properties + ;; + ;; CC Mode uses several text properties internally to mark up various + ;; positions, e.g. to improve speed and to eliminate glitches in + ;; interactive refontification. + ;; + ;; 'syntax-table + ;; Used to modify the syntax of some characters. Currently used to + ;; mark the "<" and ">" of angle bracket parens with paren syntax. + ;; + ;; This property is used on single characters and is therefore + ;; always treated as front and rear nonsticky (or start and end open + ;; in XEmacs vocabulary). It's therefore installed on + ;; `text-property-default-nonsticky' if that variable exists (Emacs + ;; >= 21). + ;; + ;; 'c-is-sws and 'c-in-sws + ;; Used by `c-forward-syntactic-ws' and `c-backward-syntactic-ws' to + ;; speed them up. See the comment blurb before `c-put-is-sws' + ;; below for further details. + ;; + ;; 'c-type + ;; This property is used on single characters to mark positions with + ;; special syntactic relevance of various sorts. It's primary use + ;; is to avoid glitches when multiline constructs are refontified + ;; interactively (on font lock decoration level 3). It's cleared in + ;; a region before it's fontified and is then put on relevant chars + ;; in that region as they are encountered during the fontification. + ;; The value specifies the kind of position: + ;; + ;; 'c-decl-arg-start + ;; Put on the last char of the token preceding each declaration + ;; inside a declaration style arglist (typically in a function + ;; prototype). + ;; + ;; 'c-decl-end + ;; Put on the last char of the token preceding a declaration. + ;; This is used in cases where declaration boundaries can't be + ;; recognized simply by looking for a token like ";" or "}". + ;; `c-type-decl-end-used' must be set if this is used (see also + ;; `c-find-decl-spots'). + ;; + ;; 'c-<>-arg-sep + ;; Put on the commas that separate arguments in angle bracket + ;; arglists like C++ template arglists. + ;; + ;; 'c-decl-id-start and 'c-decl-type-start + ;; Put on the last char of the token preceding each declarator + ;; in the declarator list of a declaration. They are also used + ;; between the identifiers cases like enum declarations. + ;; 'c-decl-type-start is used when the declarators are types, + ;; 'c-decl-id-start otherwise. + ;; + ;; 'c-awk-NL-prop + ;; Used in AWK mode to mark the various kinds of newlines. See + ;; cc-awk.el. + ;;; Code: (eval-when-compile *************** *** 49,64 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) (cc-require 'cc-vars) ! (cc-require 'cc-langs) ;; Silence the compiler. (cc-bytecomp-defun buffer-syntactic-context) ; XEmacs (defun c-calculate-state (arg prevstate) ;; Calculate the new state of PREVSTATE, t or nil, based on arg. If ;; arg is nil or zero, toggle the state. If arg is negative, turn --- 125,180 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) + (cc-require-when-compile 'cc-langs) (cc-require 'cc-vars) ! ! ;; Some functions/constants in cc-awk.el that are called/referenced here. ! ;; (Can't use cc-require due to cyclicity.) ! (cc-bytecomp-defun c-awk-unstick-NL-prop) ! (cc-bytecomp-defun c-awk-clear-NL-props) ! (cc-bytecomp-defvar awk-mode-syntax-table) ! (cc-bytecomp-defun c-awk-backward-syntactic-ws) ! (cc-bytecomp-defun c-awk-after-logical-semicolon) ! (cc-bytecomp-defun c-awk-NL-prop-not-set) ! (cc-bytecomp-defun c-awk-completed-stmt-ws-ends-line-p) ! (cc-bytecomp-defun c-awk-completed-stmt-ws-ends-prev-line-p) ! (cc-bytecomp-defun c-awk-prev-line-incomplete-p) ! (cc-bytecomp-defun c-awk-after-change) ;; Silence the compiler. (cc-bytecomp-defun buffer-syntactic-context) ; XEmacs + ;; Make declarations for all the `c-lang-defvar' variables in cc-langs. + + (defmacro c-declare-lang-variables () + `(progn + ,@(mapcan (lambda (init) + `(,(if (elt init 2) + `(defvar ,(car init) nil ,(elt init 2)) + `(defvar ,(car init) nil)) + (make-variable-buffer-local ',(car init)))) + (cdr c-lang-variable-inits)))) + (c-declare-lang-variables) + + + ;;; Internal state variables. + + ;; Internal state of hungry delete key feature + (defvar c-hungry-delete-key nil) + (make-variable-buffer-local 'c-hungry-delete-key) + + ;; Internal state of auto newline feature. + (defvar c-auto-newline nil) + (make-variable-buffer-local 'c-auto-newline) + + ;; Internal auto-newline/hungry-delete designation string for mode line. + (defvar c-auto-hungry-string nil) + (make-variable-buffer-local 'c-auto-hungry-string) + (defun c-calculate-state (arg prevstate) ;; Calculate the new state of PREVSTATE, t or nil, based on arg. If ;; arg is nil or zero, toggle the state. If arg is negative, turn *************** *** 68,76 **** (not prevstate) (> arg 0))) ! (defvar c-in-literal-cache t) (defvar c-parsing-error nil) ;; KLUDGE ALERT: c-maybe-labelp is used to pass information between ;; c-crosses-statement-barrier-p and c-beginning-of-statement-1. A --- 184,309 ---- (not prevstate) (> arg 0))) ! ;; Dynamically bound cache for `c-in-literal'. (defvar c-in-literal-cache t) + + ;; Must be set in buffers where the `c-type' text property might be used + ;; with the value `c-decl-end'. + (defvar c-type-decl-end-used nil) + (make-variable-buffer-local 'c-type-decl-end-used) + + + ;;; Basic utility functions. + + (defun c-syntactic-content (from to) + ;; Return the given region as a string where all syntactic + ;; whitespace is removed or, where necessary, replaced with a single + ;; space. + (save-excursion + (goto-char from) + (let* ((parts (list nil)) (tail parts) pos) + (while (re-search-forward c-syntactic-ws-start to t) + (goto-char (setq pos (match-beginning 0))) + (c-forward-syntactic-ws to) + (if (= (point) pos) + (forward-char) + (if (and (> pos from) + (< (point) to) + (looking-at "\\w\\|\\s_") + (save-excursion + (goto-char (1- pos)) + (looking-at "\\w\\|\\s_"))) + (progn + (setcdr tail (list (buffer-substring-no-properties from pos) + " ")) + (setq tail (cddr tail))) + (setcdr tail (list (buffer-substring-no-properties from pos))) + (setq tail (cdr tail))) + (setq from (point)))) + (setcdr tail (list (buffer-substring-no-properties from to))) + (apply 'concat (cdr parts))))) + + (defsubst c-keyword-sym (keyword) + ;; Return non-nil if the string KEYWORD is a known keyword. More + ;; precisely, the value is the symbol for the keyword in + ;; `c-keywords-obarray'. + (intern-soft keyword c-keywords-obarray)) + + (defsubst c-keyword-member (keyword-sym lang-constant) + ;; Return non-nil if the symbol KEYWORD-SYM, as returned by + ;; `c-keyword-sym', is a member of LANG-CONSTANT, which is the name + ;; of a language constant that ends with "-kwds". If KEYWORD-SYM is + ;; nil then the result is nil. + (get keyword-sym lang-constant)) + + ;; String syntax chars, suitable for skip-syntax-(forward|backward). + (defconst c-string-syntax (if (memq 'gen-string-delim c-emacs-features) + "\"|" + "\"")) + + ;; Regexp matching string start syntax. + (defconst c-string-limit-regexp (if (memq 'gen-string-delim c-emacs-features) + "\\s\"\\|\\s|" + "\\s\"")) + + ;; Holds formatted error strings for the few cases where parse errors + ;; are reported. (defvar c-parsing-error nil) + (make-variable-buffer-local 'c-parsing-error) + + (defun c-echo-parsing-error (&optional quiet) + ;; This function does not do any hidden buffer changes. + (when (and c-report-syntactic-errors c-parsing-error (not quiet)) + (c-benign-error "%s" c-parsing-error)) + c-parsing-error) + + ;; Faces given to comments and string literals. This is used in some + ;; situations to speed up recognition; it isn't mandatory that font + ;; locking is in use. This variable is extended with the face in + ;; `c-doc-face-name' when fontification is activated in cc-fonts.el. + (defconst c-literal-faces + '(font-lock-comment-face font-lock-string-face)) + + + ;; Some debug tools to visualize various special positions. This + ;; debug code isn't as portable as the rest of CC Mode. + + (cc-bytecomp-defun overlays-in) + (cc-bytecomp-defun overlay-get) + (cc-bytecomp-defun overlay-start) + (cc-bytecomp-defun overlay-end) + (cc-bytecomp-defun delete-overlay) + (cc-bytecomp-defun overlay-put) + (cc-bytecomp-defun make-overlay) + + (defun c-debug-add-face (beg end face) + (c-save-buffer-state ((overlays (overlays-in beg end)) overlay) + (while overlays + (setq overlay (car overlays) + overlays (cdr overlays)) + (when (eq (overlay-get overlay 'face) face) + (setq beg (min beg (overlay-start overlay)) + end (max end (overlay-end overlay))) + (delete-overlay overlay))) + (overlay-put (make-overlay beg end) 'face face))) + + (defun c-debug-remove-face (beg end face) + (c-save-buffer-state ((overlays (overlays-in beg end)) overlay + (ol-beg beg) (ol-end end)) + (while overlays + (setq overlay (car overlays) + overlays (cdr overlays)) + (when (eq (overlay-get overlay 'face) face) + (setq ol-beg (min ol-beg (overlay-start overlay)) + ol-end (max ol-end (overlay-end overlay))) + (delete-overlay overlay))) + (when (< ol-beg beg) + (overlay-put (make-overlay ol-beg beg) 'face face)) + (when (> ol-end end) + (overlay-put (make-overlay end ol-end) 'face face)))) + + + ;; `c-beginning-of-statement-1' and accompanying stuff. ;; KLUDGE ALERT: c-maybe-labelp is used to pass information between ;; c-crosses-statement-barrier-p and c-beginning-of-statement-1. A *************** *** 78,83 **** --- 311,318 ---- ;; the byte compiler. (defvar c-maybe-labelp nil) + ;; New awk-compatible version of c-beginning-of-statement-1, ACM 2002/6/22 + ;; Macros used internally in c-beginning-of-statement-1 for the ;; automaton actions. (defmacro c-bos-push-state () *************** *** 123,134 **** statements/declarations on the same level are considered, i.e. don't move into or out of sexps (not even normal expression parentheses). ! Stop at statement continuations like \"else\", \"catch\", \"finally\" ! and the \"while\" in \"do ... while\" if the start point is within ! them. If starting at such a continuation, move to the corresponding ! statement start. If at the beginning of a statement, move to the ! closest containing statement if there is any. This might also stop at ! a continuation clause. Labels are treated as separate statements if IGNORE-LABELS is non-nil. The function is not overly intelligent in telling labels from other --- 358,369 ---- statements/declarations on the same level are considered, i.e. don't move into or out of sexps (not even normal expression parentheses). ! Stop at statement continuation tokens like \"else\", \"catch\", ! \"finally\" and the \"while\" in \"do ... while\" if the start point ! is within the continuation. If starting at such a token, move to the ! corresponding statement start. If at the beginning of a statement, ! move to the closest containing statement if there is any. This might ! also stop at a continuation clause. Labels are treated as separate statements if IGNORE-LABELS is non-nil. The function is not overly intelligent in telling labels from other *************** *** 159,194 **** Normally only ';' is considered to delimit statements, but if COMMA-DELIM is non-nil then ',' is treated likewise." ! ;; The bulk of this function is a pushdown automaton that looks at ! ;; statement boundaries and the tokens in c-opt-block-stmt-key. ;; ;; Note: The position of a boundary is the following token. ;; ! ;; Begin with current token, stop when stack is empty and the ! ;; position has been moved. ;; ;; Common state: ! ;; "else": Push state, goto state `else': ! ;; boundary: Goto state `else-boundary': ! ;; "if": Pop state. ! ;; boundary: Error, pop state. ! ;; other: See common state. ! ;; other: Error, pop state, retry token. ! ;; "while": Push state, goto state `while': ! ;; boundary: Save position, goto state `while-boundary': ! ;; "do": Pop state. ! ;; boundary: Restore position if it's not at start, pop state. ! ;; other: See common state. ! ;; other: Pop state, retry token. ! ;; "catch" or "finally": Push state, goto state `catch': ! ;; boundary: Goto state `catch-boundary': ! ;; "try": Pop state. ! ;; "catch": Goto state `catch'. ! ;; boundary: Error, pop state. ! ;; other: See common state. ! ;; other: Error, pop state, retry token. ;; other: Do nothing special. ;; ;; In addition to the above there is some special handling of labels ;; and macros. --- 394,477 ---- Normally only ';' is considered to delimit statements, but if COMMA-DELIM is non-nil then ',' is treated likewise." ! ;; The bulk of this function is a pushdown automaton that looks at statement ! ;; boundaries and the tokens (such as "while") in c-opt-block-stmt-key. Its ! ;; purpose is to keep track of nested statements, ensuring that such ! ;; statments are skipped over in their entirety (somewhat akin to what C-M-p ! ;; does with nested braces/brackets/parentheses). ;; ;; Note: The position of a boundary is the following token. ;; ! ;; Beginning with the current token (the one following point), move back one ! ;; sexp at a time (where a sexp is, more or less, either a token or the ! ;; entire contents of a brace/bracket/paren pair). Each time a statement ! ;; boundary is crossed or a "while"-like token is found, update the state of ! ;; the PDA. Stop at the beginning of a statement when the stack (holding ! ;; nested statement info) is empty and the position has been moved. ! ;; ! ;; The following variables constitute the PDA: ! ;; ! ;; sym: This is either the "while"-like token (e.g. 'for) we've just ! ;; scanned back over, 'boundary if we've just gone back over a ! ;; statement boundary, or nil otherwise. ! ;; state: takes one of the values (nil else else-boundary while ! ;; while-boundary catch catch-boundary). ! ;; nil means "no "while"-like token yet scanned". ! ;; 'else, for example, means "just gone back over an else". ! ;; 'else-boundary means "just gone back over a statement boundary ! ;; immediately after having gone back over an else". ! ;; saved-pos: A vector of either saved positions (tok ptok pptok, etc.) or ! ;; of error reporting information. ! ;; stack: The stack onto which the PDA pushes its state. Each entry ! ;; consists of a saved value of state and saved-pos. An entry is ! ;; pushed when we move back over a "continuation" token (e.g. else) ! ;; and popped when we encounter the corresponding opening token ! ;; (e.g. if). ! ;; ! ;; ! ;; The following diagram briefly outlines the PDA. ;; ;; Common state: ! ;; "else": Push state, goto state `else'. ! ;; "while": Push state, goto state `while'. ! ;; "catch" or "finally": Push state, goto state `catch'. ! ;; boundary: Pop state. ;; other: Do nothing special. ;; + ;; State `else': + ;; boundary: Goto state `else-boundary'. + ;; other: Error, pop state, retry token. + ;; + ;; State `else-boundary': + ;; "if": Pop state. + ;; boundary: Error, pop state. + ;; other: See common state. + ;; + ;; State `while': + ;; boundary: Save position, goto state `while-boundary'. + ;; other: Pop state, retry token. + ;; + ;; State `while-boundary': + ;; "do": Pop state. + ;; boundary: Restore position if it's not at start, pop state. [*see below] + ;; other: See common state. + ;; + ;; State `catch': + ;; boundary: Goto state `catch-boundary'. + ;; other: Error, pop state, retry token. + ;; + ;; State `catch-boundary': + ;; "try": Pop state. + ;; "catch": Goto state `catch'. + ;; boundary: Error, pop state. + ;; other: See common state. + ;; + ;; [*] In the `while-boundary' state, we had pushed a 'while state, and were + ;; searching for a "do" which would have opened a do-while. If we didn't + ;; find it, we discard the analysis done since the "while", go back to this + ;; token in the buffer and restart the scanning there, this time WITHOUT + ;; pushing the 'while state onto the stack. + ;; ;; In addition to the above there is some special handling of labels ;; and macros. *************** *** 200,215 **** c-stmt-delim-chars-with-comma c-stmt-delim-chars)) pos ; Current position. ! boundary-pos ; Position of last boundary. after-labels-pos ; Value of tok after first found colon. last-label-pos ; Value of tok after last found colon. ! sym ; Current symbol in the alphabet. ! state ; Current state in the automaton. ! saved-pos ; Current saved positions. stack ; Stack of conses (state . saved-pos). ! (cond-key (or c-opt-block-stmt-key "\\<\\>")) ; Matches nothing. ! (ret 'same) tok ptok pptok ; Pos of last three sexps or bounds. c-in-literal-cache c-maybe-labelp saved) --- 483,499 ---- c-stmt-delim-chars-with-comma c-stmt-delim-chars)) pos ; Current position. ! boundary-pos ; Position of last stmt boundary character (e.g. ;). after-labels-pos ; Value of tok after first found colon. last-label-pos ; Value of tok after last found colon. ! sym ; Symbol just scanned back over (e.g. 'while or ! ; 'boundary). See above ! state ; Current state in the automaton. See above. ! saved-pos ; Current saved positions. See above stack ; Stack of conses (state . saved-pos). ! (cond-key (or c-opt-block-stmt-key ; regexp which matches "for", "if", etc. "\\<\\>")) ; Matches nothing. ! (ret 'same) ; Return value. tok ptok pptok ; Pos of last three sexps or bounds. c-in-literal-cache c-maybe-labelp saved) *************** *** 221,244 **** (/= (point) start))) (setq macro-start (point))) ! ;; Try to skip over unary operator characters, to register ;; that we've moved. (while (progn (setq pos (point)) ! (c-backward-syntactic-ws) ! (/= (skip-chars-backward "-+!*&~@`#") 0))) ! ! ;; First check for bare semicolon. Later on we ignore the ! ;; boundaries for statements that doesn't contain any sexp. ! ;; The only thing that is affected is that the error checking ! ;; is a little less strict, and we really don't bother. (if (and (memq (char-before) delims) (progn (forward-char -1) (setq saved (point)) ! (c-backward-syntactic-ws) (or (memq (char-before) delims) (memq (char-before) '(?: nil)) ! (eq (char-syntax (char-before)) ?\()))) (setq ret 'previous pos saved) --- 505,541 ---- (/= (point) start))) (setq macro-start (point))) ! ;; Try to skip back over unary operator characters, to register ;; that we've moved. (while (progn (setq pos (point)) ! (c-backward-syntactic-ws) ; might go back an awk-mode virtual semicolon, here. ! ; How about using c-awk-NL-prop for AWK Mode, here. ! ; Something like c-awk-backward-syntactic-ws. ! ; 2002/6/22. Doesn't matter! Leave it as it is. ! (/= (skip-chars-backward "-+!*&~@`#") 0))) ; ACM, 2002/5/31; ! ; Make a variable in ! ; cc-langs.el, maybe ! ! ;; Skip back over any semicolon here. If it was a bare semicolon, we're ! ;; done. Later on we ignore the boundaries for statements that doesn't ! ;; contain any sexp. The only thing that is affected is that the error ! ;; checking is a little less strict, and we really don't bother. (if (and (memq (char-before) delims) (progn (forward-char -1) (setq saved (point)) ! (if (c-mode-is-new-awk-p) ! (c-awk-backward-syntactic-ws) ! (c-backward-syntactic-ws)) (or (memq (char-before) delims) (memq (char-before) '(?: nil)) ! (eq (char-syntax (char-before)) ?\() ! (and (c-mode-is-new-awk-p) ! (c-awk-after-logical-semicolon))))) ; ACM 2002/6/22 ! ;; ACM, 2002/7/20: What about giving a limit to the above function? ! ;; ACM, 2003/6/16: The above two lines (checking for ! ;; awk-logical-semicolon) are probably redundant after rewriting ! ;; c-awk-backward-syntactic-ws. (setq ret 'previous pos saved) *************** *** 249,266 **** ;; Record this as the first token if not starting inside it. (setq tok start)) (while (catch 'loop ;; Throw nil to break, non-nil to continue. (cond ! ;; Check for macro start. ((save-excursion (and macro-start - (looking-at "[ \t]*[a-zA-Z0-9!]") (progn (skip-chars-backward " \t") (eq (char-before) ?#)) (progn (setq saved (1- (point))) (beginning-of-line) (not (eq (char-before (1- (point))) ?\\))) (progn (skip-chars-forward " \t") (eq (point) saved)))) (goto-char saved) --- 546,569 ---- ;; Record this as the first token if not starting inside it. (setq tok start)) + ;; The following while loop goes back one sexp (balanced parens, + ;; etc. with contents, or symbol or suchlike) each iteration. This + ;; movement is accomplished with a call to scan-sexps approx 130 lines + ;; below. (while (catch 'loop ;; Throw nil to break, non-nil to continue. (cond ! ;; Check for macro start. Take this out for AWK Mode (ACM, 2002/5/31) ! ;; NO!! just make sure macro-start is nil in AWK Mode (ACM, 2002/6/22) ! ;; It always is (ACM, 2002/6/23) ((save-excursion (and macro-start (progn (skip-chars-backward " \t") (eq (char-before) ?#)) (progn (setq saved (1- (point))) (beginning-of-line) (not (eq (char-before (1- (point))) ?\\))) + (looking-at c-opt-cpp-start) (progn (skip-chars-forward " \t") (eq (point) saved)))) (goto-char saved) *************** *** 275,282 **** ignore-labels t)) (throw 'loop nil)) ! ;; Do a round through the automaton if we found a ! ;; boundary or if looking at a statement keyword. ((or sym (and (looking-at cond-key) (setq sym (intern (match-string 1))))) --- 578,585 ---- ignore-labels t)) (throw 'loop nil)) ! ;; Do a round through the automaton if we've just passed a ! ;; statement boundary or passed a "while"-like token. ((or sym (and (looking-at cond-key) (setq sym (intern (match-string 1))))) *************** *** 284,291 **** (when (and (< pos start) (null stack)) (throw 'loop nil)) ! ;; The state handling. Continue in the common state for ! ;; unhandled cases. (or (cond ((eq state 'else) (if (eq sym 'boundary) --- 587,606 ---- (when (and (< pos start) (null stack)) (throw 'loop nil)) ! ;; The PDA state handling. ! ;; ! ;; Refer to the description of the PDA in the openining ! ;; comments. In the following OR form, the first leaf ! ;; attempts to handles one of the specific actions detailed ! ;; (e.g., finding token "if" whilst in state `else-boundary'). ! ;; We drop through to the second leaf (which handles common ! ;; state) if no specific handler is found in the first cond. ! ;; If a parsing error is detected (e.g. an "else" with no ! ;; preceding "if"), we throw to the enclosing catch. ! ;; ! ;; Note that the (eq state 'else) means ! ;; "we've just passed an else", NOT "we're looking for an ! ;; else". (or (cond ((eq state 'else) (if (eq sym 'boundary) *************** *** 309,322 **** (not after-labels-pos)) (progn (c-bos-save-pos) (setq state 'while-boundary)) ! (c-bos-pop-state-and-retry))) ((eq state 'while-boundary) (cond ((eq sym 'do) (c-bos-pop-state (setq ret 'beginning))) ! ((eq sym 'boundary) ! (c-bos-restore-pos) ! (c-bos-pop-state)))) ((eq state 'catch) (if (eq sym 'boundary) --- 624,637 ---- (not after-labels-pos)) (progn (c-bos-save-pos) (setq state 'while-boundary)) ! (c-bos-pop-state-and-retry))) ; Can't be a do-while ((eq state 'while-boundary) (cond ((eq sym 'do) (c-bos-pop-state (setq ret 'beginning))) ! ((eq sym 'boundary) ; isn't a do-while ! (c-bos-restore-pos) ; the position of the while ! (c-bos-pop-state)))) ; no longer searching for do. ((eq state 'catch) (if (eq sym 'boundary) *************** *** 334,355 **** (c-bos-report-error) (c-bos-pop-state))))) ! ;; This is state common. (cond ((eq sym 'boundary) ! (if (< pos start) ! (c-bos-pop-state) ! (c-bos-push-state))) ((eq sym 'else) (c-bos-push-state) (c-bos-save-error-info 'if 'else) (setq state 'else)) ((eq sym 'while) (when (or (not pptok) ! (memq (char-after pptok) delims)) ;; Since this can cause backtracking we do a ;; little more careful analysis to avoid it: If ;; the while isn't followed by a semicolon it ;; can't be a do-while. (c-bos-push-state) (setq state 'while))) ((memq sym '(catch finally)) --- 649,685 ---- (c-bos-report-error) (c-bos-pop-state))))) ! ;; This is state common. We get here when the previous ! ;; cond statement found no particular state handler. (cond ((eq sym 'boundary) ! ;; If we have a boundary at the start ! ;; position we push a frame to go to the ! ;; previous statement. ! (if (>= pos start) ! (c-bos-push-state) ! (c-bos-pop-state))) ((eq sym 'else) (c-bos-push-state) (c-bos-save-error-info 'if 'else) (setq state 'else)) ((eq sym 'while) (when (or (not pptok) ! (memq (char-after pptok) delims) ! (and (c-mode-is-new-awk-p) ! (or ! ;; might we be calling this from ! ;; c-awk-after-if-do-for-while-condition-p? ! ;; If so, avoid infinite recursion. ! (and (eq (point) start) ! (c-awk-NL-prop-not-set)) ! ;; The following may recursively ! ;; call this function. ! (c-awk-completed-stmt-ws-ends-line-p pptok)))) ;; Since this can cause backtracking we do a ;; little more careful analysis to avoid it: If ;; the while isn't followed by a semicolon it ;; can't be a do-while. + ;; ACM, 2002/5/31; IT CAN IN AWK Mode. ;-( (c-bos-push-state) (setq state 'while))) ((memq sym '(catch finally)) *************** *** 365,377 **** last-label-pos nil c-maybe-labelp nil)))) ! ;; Step to next sexp, but not if we crossed a boundary, since ! ;; that doesn't consume a sexp. (if (eq sym 'boundary) (setq ret 'previous) (while (progn (or (c-safe (goto-char (scan-sexps (point) -1)) t) (throw 'loop nil)) (cond ((looking-at "\\\\$") ;; Step again if we hit a line continuation. --- 695,715 ---- last-label-pos nil c-maybe-labelp nil)))) ! ;; Step to the previous sexp, but not if we crossed a ! ;; boundary, since that doesn't consume an sexp. (if (eq sym 'boundary) (setq ret 'previous) + + ;; HERE IS THE SINGLE PLACE INSIDE THE PDA LOOP WHERE WE MOVE + ;; BACKWARDS THROUGH THE SOURCE. The following loop goes back + ;; one sexp and then only loops in special circumstances (line + ;; continuations and skipping past entire macros). (while (progn (or (c-safe (goto-char (scan-sexps (point) -1)) t) + ;; Give up if we hit an unbalanced block. + ;; Since the stack won't be empty the code + ;; below will report a suitable error. (throw 'loop nil)) (cond ((looking-at "\\\\$") ;; Step again if we hit a line continuation. *************** *** 380,386 **** ;; If we started inside a macro then this ;; sexp is always interesting. nil) ! (t ;; Otherwise check that we didn't step ;; into a macro from the end. (let ((macro-start --- 718,724 ---- ;; If we started inside a macro then this ;; sexp is always interesting. nil) ! ((not (c-mode-is-new-awk-p)) ; Changed from t, ACM 2002/6/25 ;; Otherwise check that we didn't step ;; into a macro from the end. (let ((macro-start *************** *** 391,412 **** (goto-char macro-start) t)))))) ! ;; Check for statement boundary. (when (save-excursion (if (if (eq (char-after) ?{) (c-looking-at-inexpr-block lim nil) ! (eq (char-syntax (char-after)) ?\()) ! ;; Need to move over parens and ! ;; in-expression blocks to get a good start ! ;; position for the boundary check. ! (c-forward-sexp 1)) (setq boundary-pos (c-crosses-statement-barrier-p (point) pos))) (setq pptok ptok ptok tok tok boundary-pos sym 'boundary) ! (throw 'loop t))) (when (and (numberp c-maybe-labelp) (not ignore-labels)) ;; c-crosses-statement-barrier-p has found a colon, so --- 729,770 ---- (goto-char macro-start) t)))))) ! ;; Did the last movement by a sexp cross a statement boundary? (when (save-excursion (if (if (eq (char-after) ?{) (c-looking-at-inexpr-block lim nil) ! (looking-at "\\s\(")) ! ! ;; Should not include the paren sexp we've ! ;; passed over in the boundary check. ! (if (> (point) (- pos 100)) ! (c-forward-sexp 1) ! ! ;; Find its end position this way instead of ! ;; moving forward if the sexp is large. ! (goto-char pos) ! (while ! (progn ! (goto-char (1+ (c-down-list-backward))) ! (unless macro-start ! ;; Check that we didn't step into ! ;; a macro from the end. ! (let ((macro-start ! (save-excursion ! (and (c-beginning-of-macro) ! (point))))) ! (when macro-start ! (goto-char macro-start) ! t))))))) ! (setq boundary-pos (c-crosses-statement-barrier-p (point) pos))) + (setq pptok ptok ptok tok tok boundary-pos sym 'boundary) ! (throw 'loop t))) ; like a C "continue". Analyze the next sexp. (when (and (numberp c-maybe-labelp) (not ignore-labels)) ;; c-crosses-statement-barrier-p has found a colon, so *************** *** 423,433 **** ignore-labels t) ; Avoid the label check on exit. (throw 'loop nil)) (setq sym nil pptok ptok ptok tok tok (point) ! pos tok))) ; Not nil. ;; If the stack isn't empty there might be errors to report. (while stack --- 781,792 ---- ignore-labels t) ; Avoid the label check on exit. (throw 'loop nil)) + ;; We've moved back by a sexp, so update the token positions. (setq sym nil pptok ptok ptok tok tok (point) ! pos tok))) ; Not nil (for the while loop). ;; If the stack isn't empty there might be errors to report. (while stack *************** *** 446,452 **** (cond ((> start saved) (setq pos saved)) ((= start saved) (setq ret 'up))))) ! (when (and c-maybe-labelp (not ignore-labels) after-labels-pos) ;; We're in a label. Maybe we should step to the statement ;; after it. (if (< after-labels-pos start) --- 805,814 ---- (cond ((> start saved) (setq pos saved)) ((= start saved) (setq ret 'up))))) ! (when (and c-maybe-labelp ! (not ignore-labels) ! (not (eq ret 'beginning)) ! after-labels-pos) ;; We're in a label. Maybe we should step to the statement ;; after it. (if (< after-labels-pos start) *************** *** 459,465 **** (goto-char pos) (while (progn (c-backward-syntactic-ws) ! (/= (skip-chars-backward "-+!*&~@`#") 0)) (setq pos (point))) (goto-char pos) ret))) --- 821,827 ---- (goto-char pos) (while (progn (c-backward-syntactic-ws) ! (/= (skip-chars-backward "-+!*&~@`#") 0)) ; Hopefully the # won't hurt awk. (setq pos (point))) (goto-char pos) ret))) *************** *** 467,473 **** (defun c-crosses-statement-barrier-p (from to) "Return non-nil if buffer positions FROM to TO cross one or more statement or declaration boundaries. The returned value is actually ! the position of the earliest boundary char. The variable `c-maybe-labelp' is set to the position of the first `:' that might start a label (i.e. not part of `::' and not preceded by `?'). If a --- 829,836 ---- (defun c-crosses-statement-barrier-p (from to) "Return non-nil if buffer positions FROM to TO cross one or more statement or declaration boundaries. The returned value is actually ! the position of the earliest boundary char. FROM must not be within ! a string or comment. The variable `c-maybe-labelp' is set to the position of the first `:' that might start a label (i.e. not part of `::' and not preceded by `?'). If a *************** *** 479,486 **** (goto-char from) (while (progn (skip-chars-forward skip-chars to) (< (point) to)) ! (if (setq lit-range (c-literal-limits from)) ! (goto-char (setq from (cdr lit-range))) (cond ((eq (char-after) ?:) (forward-char) (if (and (eq (char-after) ?:) --- 842,851 ---- (goto-char from) (while (progn (skip-chars-forward skip-chars to) (< (point) to)) ! (if (setq lit-range (c-literal-limits from)) ; Have we landed in a string/comment? ! (progn (goto-char (setq from (cdr lit-range))) ! (if (and (c-mode-is-new-awk-p) (bolp)) ; ACM 2002/7/17. Make sure we ! (backward-char))) ; don't skip over a virtual semi-colon after an awk comment. :-( (cond ((eq (char-after) ?:) (forward-char) (if (and (eq (char-after) ?:) *************** *** 493,508 **** ;; looking for more : and ?. (setq c-maybe-labelp nil skip-chars (substring c-stmt-delim-chars 0 -2))) (t (throw 'done (point)))))) nil)))) ;; This is a dynamically bound cache used together with ! ;; c-query-macro-start and c-query-and-set-macro-start. It only works ! ;; as long as point doesn't cross a macro boundary. (defvar c-macro-start 'unknown) (defsubst c-query-and-set-macro-start () (if (symbolp c-macro-start) (setq c-macro-start (save-excursion (and (c-beginning-of-macro) --- 858,1021 ---- ;; looking for more : and ?. (setq c-maybe-labelp nil skip-chars (substring c-stmt-delim-chars 0 -2))) + ((and (eolp) ; Can only happen in AWK Mode + (not (c-awk-completed-stmt-ws-ends-line-p))) + (forward-char)) + ((and (c-mode-is-new-awk-p) + (bolp) lit-range ; awk: comment/string ended prev line. + (not (c-awk-completed-stmt-ws-ends-prev-line-p)))) (t (throw 'done (point)))))) nil)))) + ;; A set of functions that covers various idiosyncrasies in + ;; implementations of `forward-comment'. + + ;; Note: Some emacsen considers incorrectly that any line comment + ;; ending with a backslash continues to the next line. I can't think + ;; of any way to work around that in a reliable way without changing + ;; the buffer, though. Suggestions welcome. ;) (No, temporarily + ;; changing the syntax for backslash doesn't work since we must treat + ;; escapes in string literals correctly.) + + (defun c-forward-single-comment () + "Move forward past whitespace and the closest following comment, if any. + Return t if a comment was found, nil otherwise. In either case, the + point is moved past the following whitespace. Line continuations, + i.e. a backslashes followed by line breaks, are treated as whitespace. + The line breaks that end line comments are considered to be the + comment enders, so the point will be put on the beginning of the next + line if it moved past a line comment. + + This function does not do any hidden buffer changes." + + (let ((start (point))) + (when (looking-at "\\([ \t\n\r\f\v]\\|\\\\[\n\r]\\)+") + (goto-char (match-end 0))) + + (when (forward-comment 1) + (if (eobp) + ;; Some emacsen (e.g. XEmacs 21) return t when moving + ;; forwards at eob. + nil + + ;; Emacs includes the ending newline in a b-style (c++) + ;; comment, but XEmacs doesn't. We depend on the Emacs + ;; behavior (which also is symmetric). + (if (and (eolp) (elt (parse-partial-sexp start (point)) 7)) + (condition-case nil (forward-char 1))) + + t)))) + + (defsubst c-forward-comments () + "Move forward past all following whitespace and comments. + Line continuations, i.e. a backslashes followed by line breaks, are + treated as whitespace. + + This function does not do any hidden buffer changes." + + (while (or + ;; If forward-comment in at least XEmacs 21 is given a large + ;; positive value, it'll loop all the way through if it hits + ;; eob. + (and (forward-comment 5) + ;; Some emacsen (e.g. XEmacs 21) return t when moving + ;; forwards at eob. + (not (eobp))) + + (when (looking-at "\\\\[\n\r]") + (forward-char 2) + t)))) + + (defun c-backward-single-comment () + "Move backward past whitespace and the closest preceding comment, if any. + Return t if a comment was found, nil otherwise. In either case, the + point is moved past the preceding whitespace. Line continuations, + i.e. a backslashes followed by line breaks, are treated as whitespace. + The line breaks that end line comments are considered to be the + comment enders, so the point cannot be at the end of the same line to + move over a line comment. + + This function does not do any hidden buffer changes." + + (let ((start (point))) + ;; When we got newline terminated comments, forward-comment in all + ;; supported emacsen so far will stop at eol of each line not + ;; ending with a comment when moving backwards. This corrects for + ;; that, and at the same time handles line continuations. + (while (progn + (skip-chars-backward " \t\n\r\f\v") + (and (looking-at "[\n\r]") + (eq (char-before) ?\\) + (< (point) start))) + (backward-char)) + + (if (bobp) + ;; Some emacsen (e.g. Emacs 19.34) return t when moving + ;; backwards at bob. + nil + + ;; Leave point after the closest following newline if we've + ;; backed up over any above, since forward-comment won't move + ;; backward over a line comment if point is at the end of the + ;; same line. + (re-search-forward "\\=\\s *[\n\r]" start t) + + (if (if (forward-comment -1) + (if (eolp) + ;; If forward-comment above succeeded and we're at eol + ;; then the newline we moved over above didn't end a + ;; line comment, so we give it another go. + (forward-comment -1) + t)) + + ;; Emacs <= 20 and XEmacs move back over the closer of a + ;; block comment that lacks an opener. + (if (looking-at "\\*/") + (progn (forward-char 2) nil) + t))))) + + (defsubst c-backward-comments () + "Move backward past all preceding whitespace and comments. + Line continuations, i.e. a backslashes followed by line breaks, are + treated as whitespace. The line breaks that end line comments are + considered to be the comment enders, so the point cannot be at the end + of the same line to move over a line comment. + + This function does not do any hidden buffer changes." + + (let ((start (point))) + (while (and + ;; `forward-comment' in some emacsen (e.g. Emacs 19.34) + ;; return t when moving backwards at bob. + (not (bobp)) + + (if (forward-comment -1) + (if (looking-at "\\*/") + ;; Emacs <= 20 and XEmacs move back over the + ;; closer of a block comment that lacks an opener. + (progn (forward-char 2) nil) + t) + + ;; XEmacs treats line continuations as whitespace but + ;; only in the backward direction, which seems a bit + ;; odd. Anyway, this is necessary for Emacs. + (when (and (looking-at "[\n\r]") + (eq (char-before) ?\\) + (< (point) start)) + (backward-char) + t)))))) + + + ;; Basic handling of preprocessor directives. + ;; This is a dynamically bound cache used together with ! ;; `c-query-macro-start' and `c-query-and-set-macro-start'. It only ! ;; works as long as point doesn't cross a macro boundary. (defvar c-macro-start 'unknown) (defsubst c-query-and-set-macro-start () + ;; This function does not do any hidden buffer changes. (if (symbolp c-macro-start) (setq c-macro-start (save-excursion (and (c-beginning-of-macro) *************** *** 510,515 **** --- 1023,1029 ---- c-macro-start)) (defsubst c-query-macro-start () + ;; This function does not do any hidden buffer changes. (if (symbolp c-macro-start) (save-excursion (and (c-beginning-of-macro) *************** *** 517,542 **** c-macro-start)) (defun c-beginning-of-macro (&optional lim) ! "Go to the beginning of a cpp macro definition. ! Leave point at the beginning of the macro and return t if in a cpp ! macro definition, otherwise return nil and leave point unchanged." ! (let ((here (point))) ! (save-restriction ! (if lim (narrow-to-region lim (point-max))) ! (beginning-of-line) ! (while (eq (char-before (1- (point))) ?\\) ! (forward-line -1)) ! (back-to-indentation) ! (if (and (<= (point) here) ! (looking-at "#[ \t]*[a-zA-Z0-9!]")) ! t ! (goto-char here) ! nil)))) (defun c-end-of-macro () ! "Go to the end of a cpp macro definition. More accurately, move point to the end of the closest following line ! that doesn't end with a line continuation backslash." (while (progn (end-of-line) (when (and (eq (char-before) ?\\) --- 1031,1061 ---- c-macro-start)) (defun c-beginning-of-macro (&optional lim) ! "Go to the beginning of a preprocessor directive. ! Leave point at the beginning of the directive and return t if in one, ! otherwise return nil and leave point unchanged. ! ! This function does not do any hidden buffer changes." ! (when c-opt-cpp-prefix ! (let ((here (point))) ! (save-restriction ! (if lim (narrow-to-region lim (point-max))) ! (beginning-of-line) ! (while (eq (char-before (1- (point))) ?\\) ! (forward-line -1)) ! (back-to-indentation) ! (if (and (<= (point) here) ! (looking-at c-opt-cpp-start)) ! t ! (goto-char here) ! nil))))) (defun c-end-of-macro () ! "Go to the end of a preprocessor directive. More accurately, move point to the end of the closest following line ! that doesn't end with a line continuation backslash. ! ! This function does not do any hidden buffer changes." (while (progn (end-of-line) (when (and (eq (char-before) ?\\) *************** *** 544,1114 **** (forward-char) t)))) ! (defun c-forward-comment (count) ! ;; Insulation from various idiosyncrasies in implementations of ! ;; `forward-comment'. ! ;; ! ;; Note: Some emacsen considers incorrectly that any line comment ! ;; ending with a backslash continues to the next line. I can't ! ;; think of any way to work around that in a reliable way without ! ;; changing the buffer, though. Suggestions welcome. ;) (No, ! ;; temporarily changing the syntax for backslash doesn't work since ! ;; we must treat escapes in string literals correctly.) ! ;; ! ;; Another note: When moving backwards over a block comment, there's ! ;; a bug in forward-comment that can make it stop at "/*" inside a ! ;; line comment. Haven't yet found a reasonably cheap way to kludge ! ;; around that one either. :\ ! (let ((here (point))) ! (if (>= count 0) ! (when (forward-comment count) ! (if (eobp) ! ;; Some emacsen (e.g. XEmacs 21) return t when moving ! ;; forwards at eob. ! nil ! ;; Emacs includes the ending newline in a b-style (c++) ! ;; comment, but XEmacs doesn't. We depend on the Emacs ! ;; behavior (which also is symmetric). ! (if (and (eolp) (nth 7 (parse-partial-sexp here (point)))) ! (condition-case nil (forward-char 1))) ! t)) ! ;; When we got newline terminated comments, ! ;; forward-comment in all supported emacsen so far will ! ;; stop at eol of each line not ending with a comment when ! ;; moving backwards. The following corrects for it when ! ;; count is -1. The other common case, when count is ! ;; large and negative, works regardless. It's too much ! ;; work to correct for the rest of the cases. ! (skip-chars-backward " \t\n\r\f") ! (if (bobp) ! ;; Some emacsen return t when moving backwards at bob. ! nil ! (re-search-forward "[\n\r]" here t) ! (let* ((res (if (forward-comment count) ! (if (eolp) (forward-comment -1) t))) ! (savepos (point))) ! ;; XEmacs treats line continuations as whitespace (but only ! ;; in the backward direction). ! (while (and (progn (end-of-line) (< (point) here)) ! (eq (char-before) ?\\)) ! (setq res nil ! savepos (point)) ! (forward-line)) ! (goto-char savepos) ! res))))) ! ! (defun c-forward-comment-lc (count) ! ;; Like `c-forward-comment', but treat line continuations as ! ;; whitespace. ! (catch 'done ! (if (> count 0) ! (while (if (c-forward-comment 1) ! (progn ! (setq count (1- count)) ! (> count 0)) ! (if (looking-at "\\\\$") ! (progn ! (forward-char) ! t) ! (throw 'done nil)))) ! (while (if (c-forward-comment -1) ! (progn ! (setq count (1+ count)) ! (< count 0)) ! (if (and (eolp) (eq (char-before) ?\\)) ! (progn ! (backward-char) ! t) ! (throw 'done nil))))) ! t)) ! (defun c-forward-syntactic-ws (&optional lim) ! "Forward skip of syntactic whitespace. ! Syntactic whitespace is defined as whitespace characters, comments, ! and preprocessor directives. However if point starts inside a comment ! or preprocessor directive, the content of it is not treated as ! whitespace. LIM sets an upper limit of the forward movement, if ! specified." ! (let ((here (point-max))) ! (or lim (setq lim here)) ! (while (/= here (point)) ! ;; If forward-comment in at least XEmacs 21 is given a large ! ;; positive value, it'll loop all the way through if it hits eob. ! (while (c-forward-comment 5)) ! (setq here (point)) ! (cond ! ;; Skip line continuations. ! ((looking-at "\\\\$") ! (forward-char)) ! ;; Skip preprocessor directives. ! ((and (looking-at "#[ \t]*[a-zA-Z0-9!]") ! (save-excursion ! (skip-chars-backward " \t") ! (bolp))) ! (end-of-line) ! (while (and (<= (point) lim) ! (eq (char-before) ?\\) ! (= (forward-line 1) 0)) ! (end-of-line)) ! (when (> (point) lim) ! ;; Don't move past the macro if that'd take us past the limit. ! (goto-char here))) ! ;; Skip in-comment line continuations (used for Pike refdoc). ! ((and c-opt-in-comment-lc (looking-at c-opt-in-comment-lc)) ! (goto-char (match-end 0))))) ! (goto-char (min (point) lim)))) ! ! (defun c-backward-syntactic-ws (&optional lim) ! "Backward skip of syntactic whitespace. ! Syntactic whitespace is defined as whitespace characters, comments, ! and preprocessor directives. However if point starts inside a comment ! or preprocessor directive, the content of it is not treated as ! whitespace. LIM sets a lower limit of the backward movement, if ! specified." ! (let ((start-line (c-point 'bol)) ! (here (point-min)) ! (line-cont 'maybe) ! prev-pos) ! (or lim (setq lim here)) ! (while (/= here (point)) ! (setq prev-pos (point)) ! ;; If forward-comment in Emacs 19.34 is given a large negative ! ;; value, it'll loop all the way through if it hits bob. ! (while (c-forward-comment -5)) ! (setq here (point)) ! (cond ! ((and (eolp) ! (eq (char-before) ?\\) ! (if (<= prev-pos (c-point 'eonl)) ! t ! ;; Passed a line continuation, but not from the line we ! ;; started on. ! (forward-char) ! (setq line-cont nil))) ! (backward-char) ! (setq line-cont t)) ! ((progn ! (when (eq line-cont 'maybe) ! (save-excursion ! (end-of-line) ! (setq line-cont (eq (char-before) ?\\)))) ! (or line-cont ! (and (< (point) start-line) ! (c-beginning-of-macro)))) ! (if (< (point) lim) ! ;; Don't move past the macro if we began inside it or at ! ;; the end of the same line, or if the move would take us ! ;; past the limit. ! (goto-char here)) ! (setq line-cont nil)) ! ;; Skip in-comment line continuations (used for Pike refdoc). ! ((and c-opt-in-comment-lc ! (save-excursion ! (and (c-safe (beginning-of-line) ! (backward-char 2) ! t) ! (looking-at c-opt-in-comment-lc) ! (eq (match-end 0) here)))) ! (goto-char (match-beginning 0))))) ! (goto-char (max (point) lim)))) ! (defun c-forward-token-1 (&optional count balanced lim) ! "Move forward by tokens. ! A token is defined as all symbols and identifiers which aren't ! syntactic whitespace \(note that e.g. \"->\" is considered to be two ! tokens). Point is always either left at the beginning of a token or ! not moved at all. COUNT specifies the number of tokens to move; a ! negative COUNT moves in the opposite direction. A COUNT of 0 moves to ! the next token beginning only if not already at one. If BALANCED is ! true, move over balanced parens, otherwise move into them. Also, if ! BALANCED is true, never move out of an enclosing paren. LIM sets the ! limit for the movement and defaults to the point limit. ! Return the number of tokens left to move \(positive or negative). If ! BALANCED is true, a move over a balanced paren counts as one. Note ! that if COUNT is 0 and no appropriate token beginning is found, 1 will ! be returned. Thus, a return value of 0 guarantees that point is at ! the requested position and a return value less \(without signs) than ! COUNT guarantees that point is at the beginning of some token." ! (or count (setq count 1)) ! (if (< count 0) ! (- (c-backward-token-1 (- count) balanced lim)) ! (let ((jump-syntax (if balanced ! '(?w ?_ ?\( ?\) ?\" ?\\ ?/ ?$ ?') ! '(?w ?_ ?\" ?\\ ?/ ?'))) ! (last (point)) ! (prev (point))) ! (save-restriction ! (if lim (narrow-to-region (point-min) lim)) ! (if (/= (point) ! (progn (c-forward-syntactic-ws) (point))) ! ;; Skip whitespace. Count this as a move if we did in fact ! ;; move and aren't out of bounds. ! (or (eobp) ! (setq count (max (1- count) 0)))) ! (if (and (= count 0) ! (or (and (memq (char-syntax (or (char-after) ? )) '(?w ?_)) ! (memq (char-syntax (or (char-before) ? )) '(?w ?_))) ! (eobp))) ! ;; If count is zero we should jump if in the middle of a ! ;; token or if there is whitespace between point and the ! ;; following token beginning. ! (setq count 1)) ! (if (eobp) ! (goto-char last) ! ;; Avoid having the limit tests inside the loop. ! (condition-case nil ! (while (> count 0) ! (setq prev last ! last (point)) ! (if (memq (char-syntax (char-after)) jump-syntax) ! (goto-char (scan-sexps (point) 1)) ! (forward-char)) ! (c-forward-syntactic-ws) ! (setq count (1- count))) ! (error (goto-char last))) ! (when (eobp) ! (goto-char prev) ! (setq count (1+ count))))) ! count))) - (defun c-backward-token-1 (&optional count balanced lim) - "Move backward by tokens. - See `c-forward-token-1' for details." - (or count (setq count 1)) - (if (< count 0) - (- (c-forward-token-1 (- count) balanced lim)) - (let ((jump-syntax (if balanced - '(?w ?_ ?\( ?\) ?\" ?\\ ?/ ?$ ?') - '(?w ?_ ?\" ?\\ ?/ ?'))) - last) - (if (and (= count 0) - (or (and (memq (char-syntax (or (char-after) ? )) '(?w ?_)) - (memq (char-syntax (or (char-before) ? )) '(?w ?_))) - (/= (point) - (save-excursion - (c-forward-syntactic-ws (1+ lim)) - (point))) - (eobp))) - ;; If count is zero we should jump if in the middle of a - ;; token or if there is whitespace between point and the - ;; following token beginning. - (setq count 1)) - (save-restriction - (if lim (narrow-to-region lim (point-max))) - (or (bobp) (progn ! ;; Avoid having the limit tests inside the loop. ! (condition-case nil ! (while (progn ! (setq last (point)) ! (> count 0)) ! (c-backward-syntactic-ws) ! (if (memq (char-syntax (char-before)) jump-syntax) ! (goto-char (scan-sexps (point) -1)) ! (backward-char)) ! (setq count (1- count))) ! (error (goto-char last))) ! (if (bobp) (goto-char last))))) ! count))) ! (defun c-syntactic-re-search-forward (regexp &optional bound noerror count ! paren-level) ! ;; Like `re-search-forward', but only report matches that are found ! ;; in syntactically significant text. I.e. matches that begins in ! ;; comments, macros or string literals are ignored. The start point ! ;; is assumed to be outside any comment, macro or string literal, or ! ;; else the content of that region is taken as syntactically ! ;; significant text. If PAREN-LEVEL is non-nil, an additional ! ;; restriction is added to ignore matches in nested paren sexps, and ! ;; the search will also not go outside the current paren sexp. ! (or bound (setq bound (point-max))) ! (or count (setq count 1)) ! (if paren-level (setq paren-level -1)) ! (let ((start (point)) ! (pos (point)) ! match-pos state) ! (condition-case err ! (while (and (> count 0) ! (re-search-forward regexp bound noerror)) ! (setq match-pos (point) ! state (parse-partial-sexp pos (match-beginning 0) ! paren-level nil state) ! pos (point)) ! (cond ((nth 3 state) ! ;; Match inside a string. Skip to the end of it ! ;; before continuing. ! (let ((ender (make-string 1 (nth 3 state)))) ! (while (progn ! (search-forward ender bound noerror) ! (setq state (parse-partial-sexp pos (point) ! nil nil state) ! pos (point)) ! (nth 3 state))))) ! ((nth 7 state) ! ;; Match inside a line comment. Skip to eol. Use ! ;; re-search-forward for it to get the right bound ! ;; behavior. ! (re-search-forward "[\n\r]" bound noerror)) ! ((nth 4 state) ! ;; Match inside a block comment. Skip to the '*/'. ! (re-search-forward "\\*/" bound noerror)) ! ((save-excursion (c-beginning-of-macro start)) ! ;; Match inside a macro. Skip to the end of it. ! (c-end-of-macro)) ! ((and paren-level (/= (car state) 0)) ! (if (> (car state) 0) ! ;; Match inside a nested paren sexp. Skip out of it. ! (setq state (parse-partial-sexp pos bound 0 nil state) ! pos (point)) ! ;; Have exited the current paren sexp. The ! ;; parse-partial-sexp above has left us just after ! ;; the closing paren in this case. Just make ! ;; re-search-forward above fail in the appropriate ! ;; way; we'll adjust the leave off point below if ! ;; necessary. ! (setq bound (point)))) ! (t ! ;; A real match. ! (setq count (1- count))))) ! (error ! (goto-char start) ! (signal (car err) (cdr err)))) ! (if (= count 0) ! (progn ! (goto-char match-pos) ! match-pos) ! ;; Search failed. Set point as appropriate. ! (cond ((eq noerror t) ! (goto-char start)) ! (paren-level ! (if (eq (car (parse-partial-sexp pos bound -1 nil state)) -1) ! (backward-char))) ! (t ! (goto-char bound))) ! nil))) ! ! (defun c-in-literal (&optional lim detect-cpp) ! "Return the type of literal point is in, if any. ! The return value is `c' if in a C-style comment, `c++' if in a C++ ! style comment, `string' if in a string literal, `pound' if DETECT-CPP ! is non-nil and on a preprocessor line, or nil if somewhere else. ! Optional LIM is used as the backward limit of the search. If omitted, ! or nil, `c-beginning-of-defun' is used. ! The last point calculated is cached if the cache is enabled, i.e. if ! `c-in-literal-cache' is bound to a two element vector." ! (if (and (vectorp c-in-literal-cache) ! (= (point) (aref c-in-literal-cache 0))) ! (aref c-in-literal-cache 1) ! (let ((rtn (save-excursion ! (let* ((lim (or lim (c-point 'bod))) ! (state (parse-partial-sexp lim (point)))) ! (cond ! ((nth 3 state) 'string) ! ((nth 4 state) (if (nth 7 state) 'c++ 'c)) ! ((and detect-cpp (c-beginning-of-macro lim)) 'pound) ! (t nil)))))) ! ;; cache this result if the cache is enabled ! (if (not c-in-literal-cache) ! (setq c-in-literal-cache (vector (point) rtn))) ! rtn))) ! ;; XEmacs has a built-in function that should make this much quicker. ! ;; I don't think we even need the cache, which makes our lives more ! ;; complicated anyway. In this case, lim is only used to detect ! ;; cpp directives. ! (defun c-fast-in-literal (&optional lim detect-cpp) ! (let ((context (buffer-syntactic-context))) ! (cond ! ((eq context 'string) 'string) ! ((eq context 'comment) 'c++) ! ((eq context 'block-comment) 'c) ! ((and detect-cpp (save-excursion (c-beginning-of-macro lim))) 'pound)))) ! (if (fboundp 'buffer-syntactic-context) ! (defalias 'c-in-literal 'c-fast-in-literal)) ! (defun c-literal-limits (&optional lim near not-in-delimiter) ! "Return a cons of the beginning and end positions of the comment or ! string surrounding point (including both delimiters), or nil if point ! isn't in one. If LIM is non-nil, it's used as the \"safe\" position ! to start parsing from. If NEAR is non-nil, then the limits of any ! literal next to point is returned. \"Next to\" means there's only [ ! \t] between point and the literal. The search for such a literal is ! done first in forward direction. If NOT-IN-DELIMITER is non-nil, the ! case when point is inside a starting delimiter won't be recognized. ! This only has effect for comments, which have starting delimiters with ! more than one character." ! (save-excursion ! (let* ((pos (point)) ! (lim (or lim (c-point 'bod))) ! (state (parse-partial-sexp lim (point)))) ! (cond ((nth 3 state) ! ;; String. Search backward for the start. ! (while (nth 3 state) ! (search-backward (make-string 1 (nth 3 state))) ! (setq state (parse-partial-sexp lim (point)))) ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ((nth 7 state) ! ;; Line comment. Search from bol for the comment starter. ! (beginning-of-line) ! (setq state (parse-partial-sexp lim (point)) ! lim (point)) ! (while (not (nth 7 state)) ! (search-forward "//") ; Should never fail. ! (setq state (parse-partial-sexp ! lim (point) nil nil state) ! lim (point))) ! (backward-char 2) ! (cons (point) (progn (c-forward-comment 1) (point)))) ! ((nth 4 state) ! ;; Block comment. Search backward for the comment starter. ! (while (nth 4 state) ! (search-backward "/*") ; Should never fail. ! (setq state (parse-partial-sexp lim (point)))) ! (cons (point) (progn (c-forward-comment 1) (point)))) ! ((and (not not-in-delimiter) ! (not (nth 5 state)) ! (eq (char-before) ?/) ! (looking-at "[/*]")) ! ;; We're standing in a comment starter. ! (backward-char 1) ! (cons (point) (progn (c-forward-comment 1) (point)))) ! (near ! (goto-char pos) ! ;; Search forward for a literal. ! (skip-chars-forward " \t") ! (cond ! ((eq (char-syntax (or (char-after) ?\ )) ?\") ; String. ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ((looking-at "/[/*]") ; Line or block comment. ! (cons (point) (progn (c-forward-comment 1) (point)))) ! (t ! ;; Search backward. ! (skip-chars-backward " \t") ! (let ((end (point)) beg) ! (cond ! ((eq (char-syntax (or (char-before) ?\ )) ?\") ; String. ! (setq beg (c-safe (c-backward-sexp 1) (point)))) ! ((and (c-safe (forward-char -2) t) ! (looking-at "*/")) ! ;; Block comment. Due to the nature of line ! ;; comments, they will always be covered by the ! ;; normal case above. ! (goto-char end) ! (c-forward-comment -1) ! ;; If LIM is bogus, beg will be bogus. ! (setq beg (point)))) ! (if beg (cons beg end)))))) ! )))) ! ! (defun c-literal-limits-fast (&optional lim near not-in-delimiter) ! ;; Like c-literal-limits, but for emacsen whose `parse-partial-sexp' ! ;; returns the pos of the comment start. ! (save-excursion ! (let* ((pos (point)) ! (lim (or lim (c-point 'bod))) ! (state (parse-partial-sexp lim (point)))) ! (cond ((nth 3 state) ; String. ! (goto-char (nth 8 state)) ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ((nth 4 state) ; Comment. ! (goto-char (nth 8 state)) ! (cons (point) (progn (c-forward-comment 1) (point)))) ! ((and (not not-in-delimiter) ! (not (nth 5 state)) ! (eq (char-before) ?/) ! (looking-at "[/*]")) ! ;; We're standing in a comment starter. ! (backward-char 1) ! (cons (point) (progn (c-forward-comment 1) (point)))) ! (near ! (goto-char pos) ! ;; Search forward for a literal. ! (skip-chars-forward " \t") ! (cond ! ((eq (char-syntax (or (char-after) ?\ )) ?\") ; String. ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ((looking-at "/[/*]") ; Line or block comment. ! (cons (point) (progn (c-forward-comment 1) (point)))) ! (t ! ;; Search backward. ! (skip-chars-backward " \t") ! (let ((end (point)) beg) ! (cond ! ((eq (char-syntax (or (char-before) ?\ )) ?\") ; String. ! (setq beg (c-safe (c-backward-sexp 1) (point)))) ! ((and (c-safe (forward-char -2) t) ! (looking-at "*/")) ! ;; Block comment. Due to the nature of line ! ;; comments, they will always be covered by the ! ;; normal case above. ! (goto-char end) ! (c-forward-comment -1) ! ;; If LIM is bogus, beg will be bogus. ! (setq beg (point)))) ! (if beg (cons beg end)))))) ! )))) ! (if (c-safe (> (length (save-excursion (parse-partial-sexp 1 1))) 8)) ! (defalias 'c-literal-limits 'c-literal-limits-fast)) ! ! (defun c-collect-line-comments (range) ! "If the argument is a cons of two buffer positions (such as returned by ! `c-literal-limits'), and that range contains a C++ style line comment, ! then an extended range is returned that contains all adjacent line ! comments (i.e. all comments that starts in the same column with no ! empty lines or non-whitespace characters between them). Otherwise the ! argument is returned." ! (save-excursion ! (condition-case nil ! (if (and (consp range) (progn ! (goto-char (car range)) ! (looking-at "//"))) ! (let ((col (current-column)) ! (beg (point)) ! (bopl (c-point 'bopl)) ! (end (cdr range))) ! ;; Got to take care in the backward direction to handle ! ;; comments which are preceded by code. ! (while (and (c-forward-comment -1) ! (>= (point) bopl) ! (looking-at "//") ! (= col (current-column))) ! (setq beg (point) ! bopl (c-point 'bopl))) ! (goto-char end) ! (while (and (progn (skip-chars-forward " \t") ! (looking-at "//")) ! (= col (current-column)) ! (prog1 (zerop (forward-line 1)) ! (setq end (point))))) ! (cons beg end)) ! range) ! (error range)))) ! (defun c-literal-type (range) ! "Convenience function that given the result of `c-literal-limits', ! returns nil or the type of literal that the range surrounds. It's ! much faster than using `c-in-literal' and is intended to be used when ! you need both the type of a literal and its limits." ! (if (consp range) ! (save-excursion ! (goto-char (car range)) ! (cond ((eq (char-syntax (or (char-after) ?\ )) ?\") 'string) ! ((looking-at "//") 'c++) ! (t 'c))) ; Assuming the range is valid. ! range)) ! ;; utilities for moving and querying around syntactic elements (defvar c-state-cache nil) (make-variable-buffer-local 'c-state-cache) --- 1063,1670 ---- (forward-char) t)))) ! (defun c-forward-to-cpp-define-body () ! ;; Assuming point is at the "#" that introduces a preprocessor ! ;; directive, it's moved forward to the start of the definition body ! ;; if it's a "#define". Non-nil is returned in this case, in all ! ;; other cases nil is returned and point isn't moved. ! (when (and (looking-at ! (concat "#[ \t]*" ! "define[ \t]+\\(\\sw\\|_\\)+\\(\([^\)]*\)\\)?" ! "\\([ \t]\\|\\\\\n\\)*")) ! (not (= (match-end 0) (c-point 'eol)))) ! (goto-char (match-end 0)))) ! ! ;; Tools for skipping over syntactic whitespace. ! ;; The following functions use text properties to cache searches over ! ;; large regions of syntactic whitespace. It works as follows: ! ;; ! ;; o If a syntactic whitespace region contains anything but simple ! ;; whitespace (i.e. space, tab and line breaks), the text property ! ;; `c-in-sws' is put over it. At places where we have stopped ! ;; within that region there's also a `c-is-sws' text property. ! ;; That since there typically are nested whitespace inside that ! ;; must be handled separately, e.g. whitespace inside a comment or ! ;; cpp directive. Thus, from one point with `c-is-sws' it's safe ! ;; to jump to another point with that property within the same ! ;; `c-in-sws' region. It can be likened to a ladder where ! ;; `c-in-sws' marks the bars and `c-is-sws' the rungs. ! ;; ! ;; o The `c-is-sws' property is put on the simple whitespace chars at ! ;; a "rung position" and also maybe on the first following char. ! ;; As many characters as can be conveniently found in this range ! ;; are marked, but no assumption can be made that the whole range ! ;; is marked (it could be clobbered by later changes, for ! ;; instance). ! ;; ! ;; Note that some part of the beginning of a sequence of simple ! ;; whitespace might be part of the end of a preceding line comment ! ;; or cpp directive and must not be considered part of the "rung". ! ;; Such whitespace is some amount of horizontal whitespace followed ! ;; by a newline. In the case of cpp directives it could also be ! ;; two newlines with horizontal whitespace between them. ! ;; ! ;; The reason to include the first following char is to cope with ! ;; "rung positions" that doesn't have any ordinary whitespace. If ! ;; `c-is-sws' is put on a token character it does not have ! ;; `c-in-sws' set simultaneously. That's the only case when that ! ;; can occur, and the reason for not extending the `c-in-sws' ! ;; region to cover it is that the `c-in-sws' region could then be ! ;; accidentally merged with a following one if the token is only ! ;; one character long. ! ;; ! ;; o On buffer changes the `c-in-sws' and `c-is-sws' properties are ! ;; removed in the changed region. If the change was inside ! ;; syntactic whitespace that means that the "ladder" is broken, but ! ;; a later call to `c-forward-sws' or `c-backward-sws' will use the ! ;; parts on either side and use an ordinary search only to "repair" ! ;; the gap. ! ;; ! ;; Special care needs to be taken if a region is removed: If there ! ;; are `c-in-sws' on both sides of it which do not connect inside ! ;; the region then they can't be joined. If e.g. a marked macro is ! ;; broken, syntactic whitespace inside the new text might be ! ;; marked. If those marks would become connected with the old ! ;; `c-in-sws' range around the macro then we could get a ladder ! ;; with one end outside the macro and the other at some whitespace ! ;; within it. ! ;; ! ;; The main motivation for this system is to increase the speed in ! ;; skipping over the large whitespace regions that can occur at the ! ;; top level in e.g. header files that contain a lot of comments and ! ;; cpp directives. For small comments inside code it's probably ! ;; slower than using `forward-comment' straightforwardly, but speed is ! ;; not a significant factor there anyway. ! ! ; (defface c-debug-is-sws-face ! ; '((t (:background "GreenYellow"))) ! ; "Debug face to mark the `c-is-sws' property.") ! ; (defface c-debug-in-sws-face ! ; '((t (:underline t))) ! ; "Debug face to mark the `c-in-sws' property.") ! ! ; (defun c-debug-put-sws-faces () ! ; ;; Put the sws debug faces on all the `c-is-sws' and `c-in-sws' ! ; ;; properties in the buffer. ! ; (interactive) ! ; (save-excursion ! ; (let (in-face) ! ; (goto-char (point-min)) ! ; (setq in-face (if (get-text-property (point) 'c-is-sws) ! ; (point))) ! ; (while (progn ! ; (goto-char (next-single-property-change ! ; (point) 'c-is-sws nil (point-max))) ! ; (if in-face ! ; (progn ! ; (c-debug-add-face in-face (point) 'c-debug-is-sws-face) ! ; (setq in-face nil)) ! ; (setq in-face (point))) ! ; (not (eobp)))) ! ; (goto-char (point-min)) ! ; (setq in-face (if (get-text-property (point) 'c-in-sws) ! ; (point))) ! ; (while (progn ! ; (goto-char (next-single-property-change ! ; (point) 'c-in-sws nil (point-max))) ! ; (if in-face ! ; (progn ! ; (c-debug-add-face in-face (point) 'c-debug-in-sws-face) ! ; (setq in-face nil)) ! ; (setq in-face (point))) ! ; (not (eobp))))))) ! ! (defmacro c-debug-sws-msg (&rest args) ! ;;`(message ,@args) ! ) ! ! (defmacro c-put-is-sws (beg end) ! `(let ((beg ,beg) (end ,end)) ! (put-text-property beg end 'c-is-sws t) ! ,@(when (facep 'c-debug-is-sws-face) ! `((c-debug-add-face beg end 'c-debug-is-sws-face))))) ! ! (defmacro c-put-in-sws (beg end) ! `(let ((beg ,beg) (end ,end)) ! (put-text-property beg end 'c-in-sws t) ! ,@(when (facep 'c-debug-is-sws-face) ! `((c-debug-add-face beg end 'c-debug-in-sws-face))))) ! ! (defmacro c-remove-is-sws (beg end) ! `(let ((beg ,beg) (end ,end)) ! (remove-text-properties beg end '(c-is-sws nil)) ! ,@(when (facep 'c-debug-is-sws-face) ! `((c-debug-remove-face beg end 'c-debug-is-sws-face))))) ! ! (defmacro c-remove-in-sws (beg end) ! `(let ((beg ,beg) (end ,end)) ! (remove-text-properties beg end '(c-in-sws nil)) ! ,@(when (facep 'c-debug-is-sws-face) ! `((c-debug-remove-face beg end 'c-debug-in-sws-face))))) ! ! (defmacro c-remove-is-and-in-sws (beg end) ! `(let ((beg ,beg) (end ,end)) ! (remove-text-properties beg end '(c-is-sws nil c-in-sws nil)) ! ,@(when (facep 'c-debug-is-sws-face) ! `((c-debug-remove-face beg end 'c-debug-is-sws-face) ! (c-debug-remove-face beg end 'c-debug-in-sws-face))))) ! ! (defsubst c-invalidate-sws-region-after (beg end) ! ;; Called from `after-change-functions'. Note that if ! ;; `c-forward-sws' or `c-backward-sws' are used outside ! ;; `c-save-buffer-state' or similar then this will remove the cache ! ;; properties right after they're added. ! (save-excursion ! ;; Adjust the end to remove the properties in any following simple ! ;; ws up to and including the next line break, if there is any ! ;; after the changed region. This is necessary e.g. when a rung ! ;; marked empty line is converted to a line comment by inserting ! ;; "//" before the line break. In that case the line break would ! ;; keep the rung mark which could make a later `c-backward-sws' ! ;; move into the line comment instead of over it. ! (goto-char end) ! (skip-chars-forward " \t\f\v") ! (when (and (eolp) (not (eobp))) ! (setq end (1+ (point))))) ! ! (when (and (= beg end) ! (get-text-property beg 'c-in-sws) ! (not (bobp)) ! (get-text-property (1- beg) 'c-in-sws)) ! ;; Ensure that an `c-in-sws' range gets broken. Note that it isn't ! ;; safe to keep a range that was continuous before the change. E.g: ! ;; ! ;; #define foo ! ;; \ ! ;; bar ! ;; ! ;; There can be a "ladder" between "#" and "b". Now, if the newline ! ;; after "foo" is removed then "bar" will become part of the cpp ! ;; directive instead of a syntactically relevant token. In that ! ;; case there's no longer syntactic ws from "#" to "b". ! (setq beg (1- beg))) ! ! (c-debug-sws-msg "c-invalidate-sws-region-after [%s..%s]" beg end) ! (c-remove-is-and-in-sws beg end)) ! ! (defun c-forward-sws () ! ;; Used by `c-forward-syntactic-ws' to implement the unbounded search. ! ! (let (;; `rung-pos' is set to a position as early as possible in the ! ;; unmarked part of the simple ws region. ! (rung-pos (point)) next-rung-pos rung-end-pos last-put-in-sws-pos ! rung-is-marked next-rung-is-marked simple-ws-end ! ;; `safe-start' is set when it's safe to cache the start position. ! ;; It's not set if we've initially skipped over comments and line ! ;; continuations since we might have gone out through the end of a ! ;; macro then. This provision makes `c-forward-sws' not populate the ! ;; cache in the majority of cases, but otoh is `c-backward-sws' by far ! ;; more common. ! safe-start) ! ! ;; Skip simple ws and do a quick check on the following character to see ! ;; if it's anything that can't start syntactic ws, so we can bail out ! ;; early in the majority of cases when there just are a few ws chars. ! (skip-chars-forward " \t\n\r\f\v") ! (when (looking-at c-syntactic-ws-start) ! ! (setq rung-end-pos (min (1+ (point)) (point-max))) ! (if (setq rung-is-marked (text-property-any rung-pos rung-end-pos ! 'c-is-sws t)) ! ;; Find the last rung position to avoid setting properties in all ! ;; the cases when the marked rung is complete. ! ;; (`next-single-property-change' is certain to move at least one ! ;; step forward.) ! (setq rung-pos (1- (next-single-property-change ! rung-is-marked 'c-is-sws nil rung-end-pos))) ! ;; Got no marked rung here. Since the simple ws might have started ! ;; inside a line comment or cpp directive we must set `rung-pos' as ! ;; high as possible. ! (setq rung-pos (point))) ! ! (while ! (progn ! (while ! (when (and rung-is-marked ! (get-text-property (point) 'c-in-sws)) ! ! ;; The following search is the main reason that `c-in-sws' ! ;; and `c-is-sws' aren't combined to one property. ! (goto-char (next-single-property-change ! (point) 'c-in-sws nil (point-max))) ! (unless (get-text-property (point) 'c-is-sws) ! ;; If the `c-in-sws' region extended past the last ! ;; `c-is-sws' char we have to go back a bit. ! (or (get-text-property (1- (point)) 'c-is-sws) ! (goto-char (previous-single-property-change ! (point) 'c-is-sws))) ! (backward-char)) ! ! (c-debug-sws-msg ! "c-forward-sws cached move %s -> %s (max %s)" ! rung-pos (point) (point-max)) ! ! (setq rung-pos (point)) ! (and (> (skip-chars-forward " \t\n\r\f\v") 0) ! (not (eobp)))) ! ! ;; We'll loop here if there is simple ws after the last rung. ! ;; That means that there's been some change in it and it's ! ;; possible that we've stepped into another ladder, so extend ! ;; the previous one to join with it if there is one, and try to ! ;; use the cache again. ! (c-debug-sws-msg ! "c-forward-sws extending rung with [%s..%s] (max %s)" ! (1+ rung-pos) (1+ (point)) (point-max)) ! (unless (get-text-property (point) 'c-is-sws) ! ;; Remove any `c-in-sws' property from the last char of ! ;; the rung before we mark it with `c-is-sws', so that we ! ;; won't connect with the remains of a broken "ladder". ! (c-remove-in-sws (point) (1+ (point)))) ! (c-put-is-sws (1+ rung-pos) ! (1+ (point))) ! (c-put-in-sws rung-pos ! (setq rung-pos (point) ! last-put-in-sws-pos rung-pos))) ! ! (setq simple-ws-end (point)) ! (c-forward-comments) ! ! (cond ! ((/= (point) simple-ws-end) ! ;; Skipped over comments. Don't cache at eob in case the buffer ! ;; is narrowed. ! (not (eobp))) ! ! ((save-excursion ! (and c-opt-cpp-prefix ! (looking-at c-opt-cpp-start) ! (progn (skip-chars-backward " \t") ! (bolp)) ! (or (bobp) ! (progn (backward-char) ! (not (eq (char-before) ?\\)))))) ! ;; Skip a preprocessor directive. ! (end-of-line) ! (while (and (eq (char-before) ?\\) ! (= (forward-line 1) 0)) ! (end-of-line)) ! (forward-line 1) ! (setq safe-start t) ! ;; Don't cache at eob in case the buffer is narrowed. ! (not (eobp))))) ! ! ;; We've searched over a piece of non-white syntactic ws. See if this ! ;; can be cached. ! (setq next-rung-pos (point)) ! (skip-chars-forward " \t\n\r\f\v") ! (setq rung-end-pos (min (1+ (point)) (point-max))) ! ! (if (or ! ;; Cache if we haven't skipped comments only, and if we started ! ;; either from a marked rung or from a completely uncached ! ;; position. ! (and safe-start ! (or rung-is-marked ! (not (get-text-property simple-ws-end 'c-in-sws)))) ! ! ;; See if there's a marked rung in the encountered simple ws. If ! ;; so then we can cache, unless `safe-start' is nil. Even then ! ;; we need to do this to check if the cache can be used for the ! ;; next step. ! (and (setq next-rung-is-marked ! (text-property-any next-rung-pos rung-end-pos ! 'c-is-sws t)) ! safe-start)) (progn ! (c-debug-sws-msg ! "c-forward-sws caching [%s..%s] - [%s..%s] (max %s)" ! rung-pos (1+ simple-ws-end) next-rung-pos rung-end-pos ! (point-max)) ! ! ;; Remove the properties for any nested ws that might be cached. ! ;; Only necessary for `c-is-sws' since `c-in-sws' will be set ! ;; anyway. ! (c-remove-is-sws (1+ simple-ws-end) next-rung-pos) ! (unless (and rung-is-marked (= rung-pos simple-ws-end)) ! (c-put-is-sws rung-pos ! (1+ simple-ws-end)) ! (setq rung-is-marked t)) ! (c-put-in-sws rung-pos ! (setq rung-pos (point) ! last-put-in-sws-pos rung-pos)) ! (unless (get-text-property (1- rung-end-pos) 'c-is-sws) ! ;; Remove any `c-in-sws' property from the last char of ! ;; the rung before we mark it with `c-is-sws', so that we ! ;; won't connect with the remains of a broken "ladder". ! (c-remove-in-sws (1- rung-end-pos) rung-end-pos)) ! (c-put-is-sws next-rung-pos ! rung-end-pos)) ! ! (c-debug-sws-msg ! "c-forward-sws not caching [%s..%s] - [%s..%s] (max %s)" ! rung-pos (1+ simple-ws-end) next-rung-pos rung-end-pos ! (point-max)) ! ! ;; Set `rung-pos' for the next rung. It's the same thing here as ! ;; initially, except that the rung position is set as early as ! ;; possible since we can't be in the ending ws of a line comment or ! ;; cpp directive now. ! (if (setq rung-is-marked next-rung-is-marked) ! (setq rung-pos (1- (next-single-property-change ! rung-is-marked 'c-is-sws nil rung-end-pos))) ! (setq rung-pos next-rung-pos)) ! (setq safe-start t))) ! ! ;; Make sure that the newly marked `c-in-sws' region doesn't connect to ! ;; another one after the point (which might occur when editing inside a ! ;; comment or macro). ! (when (eq last-put-in-sws-pos (point)) ! (cond ((< last-put-in-sws-pos (point-max)) ! (c-debug-sws-msg ! "c-forward-sws clearing at %s for cache separation" ! last-put-in-sws-pos) ! (c-remove-in-sws last-put-in-sws-pos ! (1+ last-put-in-sws-pos))) ! (t ! ;; If at eob we have to clear the last character before the end ! ;; instead since the buffer might be narrowed and there might ! ;; be a `c-in-sws' after (point-max). In this case it's ! ;; necessary to clear both properties. ! (c-debug-sws-msg ! "c-forward-sws clearing thoroughly at %s for cache separation" ! (1- last-put-in-sws-pos)) ! (c-remove-is-and-in-sws (1- last-put-in-sws-pos) ! last-put-in-sws-pos)))) ! ))) ! (defun c-backward-sws () ! ;; Used by `c-backward-syntactic-ws' to implement the unbounded search. ! (let (;; `rung-pos' is set to a position as late as possible in the unmarked ! ;; part of the simple ws region. ! (rung-pos (point)) next-rung-pos last-put-in-sws-pos ! rung-is-marked simple-ws-beg cmt-skip-pos) ! ! ;; Skip simple horizontal ws and do a quick check on the preceding ! ;; character to see if it's anying that can't end syntactic ws, so we can ! ;; bail out early in the majority of cases when there just are a few ws ! ;; chars. Newlines are complicated in the backward direction, so we can't ! ;; skip over them. ! (skip-chars-backward " \t\f") ! (when (and (not (bobp)) ! (save-excursion ! (backward-char) ! (looking-at c-syntactic-ws-end))) ! ;; Try to find a rung position in the simple ws preceding point, so that ! ;; we can get a cache hit even if the last bit of the simple ws has ! ;; changed recently. ! (setq simple-ws-beg (point)) ! (skip-chars-backward " \t\n\r\f\v") ! (if (setq rung-is-marked (text-property-any ! (point) (min (1+ rung-pos) (point-max)) ! 'c-is-sws t)) ! ;; `rung-pos' will be the earliest marked position, which means that ! ;; there might be later unmarked parts in the simple ws region. ! ;; It's not worth the effort to fix that; the last part of the ! ;; simple ws is also typically edited often, so it could be wasted. ! (goto-char (setq rung-pos rung-is-marked)) ! (goto-char simple-ws-beg)) ! (while ! (progn ! (while ! (when (and rung-is-marked ! (not (bobp)) ! (get-text-property (1- (point)) 'c-in-sws)) ! ! ;; The following search is the main reason that `c-in-sws' ! ;; and `c-is-sws' aren't combined to one property. ! (goto-char (previous-single-property-change ! (point) 'c-in-sws nil (point-min))) ! (unless (get-text-property (point) 'c-is-sws) ! ;; If the `c-in-sws' region extended past the first ! ;; `c-is-sws' char we have to go forward a bit. ! (goto-char (next-single-property-change ! (point) 'c-is-sws))) ! ! (c-debug-sws-msg ! "c-backward-sws cached move %s <- %s (min %s)" ! (point) rung-pos (point-min)) ! ! (setq rung-pos (point)) ! (if (and (< (min (skip-chars-backward " \t\f\v") ! (progn ! (setq simple-ws-beg (point)) ! (skip-chars-backward " \t\n\r\f\v"))) ! 0) ! (setq rung-is-marked ! (text-property-any (point) rung-pos ! 'c-is-sws t))) ! t ! (goto-char simple-ws-beg) ! nil)) ! ;; We'll loop here if there is simple ws before the first rung. ! ;; That means that there's been some change in it and it's ! ;; possible that we've stepped into another ladder, so extend ! ;; the previous one to join with it if there is one, and try to ! ;; use the cache again. ! (c-debug-sws-msg ! "c-backward-sws extending rung with [%s..%s] (min %s)" ! rung-is-marked rung-pos (point-min)) ! (unless (get-text-property (1- rung-pos) 'c-is-sws) ! ;; Remove any `c-in-sws' property from the last char of ! ;; the rung before we mark it with `c-is-sws', so that we ! ;; won't connect with the remains of a broken "ladder". ! (c-remove-in-sws (1- rung-pos) rung-pos)) ! (c-put-is-sws rung-is-marked ! rung-pos) ! (c-put-in-sws rung-is-marked ! (1- rung-pos)) ! (setq rung-pos rung-is-marked ! last-put-in-sws-pos rung-pos)) ! (c-backward-comments) ! (setq cmt-skip-pos (point)) ! (cond ! ((and c-opt-cpp-prefix ! (/= cmt-skip-pos simple-ws-beg) ! (c-beginning-of-macro)) ! ;; Inside a cpp directive. See if it should be skipped over. ! (let ((cpp-beg (point))) ! ! ;; Move back over all line continuations in the region skipped ! ;; over by `c-backward-comments'. If we go past it then we ! ;; started inside the cpp directive. ! (goto-char simple-ws-beg) ! (beginning-of-line) ! (while (and (> (point) cmt-skip-pos) ! (progn (backward-char) ! (eq (char-before) ?\\))) ! (beginning-of-line)) ! ! (if (< (point) cmt-skip-pos) ! ;; Don't move past the cpp directive if we began inside ! ;; it. Note that the position at the end of the last line ! ;; of the macro is also considered to be within it. ! (progn (goto-char cmt-skip-pos) ! nil) ! ! ;; It's worthwhile to spend a little bit of effort on finding ! ;; the end of the macro, to get a good `simple-ws-beg' ! ;; position for the cache. Note that `c-backward-comments' ! ;; could have stepped over some comments before going into ! ;; the macro, and then `simple-ws-beg' must be kept on the ! ;; same side of those comments. ! (goto-char simple-ws-beg) ! (skip-chars-backward " \t\n\r\f\v") ! (if (eq (char-before) ?\\) ! (forward-char)) ! (forward-line 1) ! (if (< (point) simple-ws-beg) ! ;; Might happen if comments after the macro were skipped ! ;; over. ! (setq simple-ws-beg (point))) ! ! (goto-char cpp-beg) ! t))) ! ! ((/= (save-excursion ! (skip-chars-forward " \t\n\r\f\v" simple-ws-beg) ! (setq next-rung-pos (point))) ! simple-ws-beg) ! ;; Skipped over comments. Must put point at the end of ! ;; the simple ws at point since we might be after a line ! ;; comment or cpp directive that's been partially ! ;; narrowed out, and we can't risk marking the simple ws ! ;; at the end of it. ! (goto-char next-rung-pos) ! t))) ! ! ;; We've searched over a piece of non-white syntactic ws. See if this ! ;; can be cached. ! (setq next-rung-pos (point)) ! (skip-chars-backward " \t\f\v") ! ! (if (or ! ;; Cache if we started either from a marked rung or from a ! ;; completely uncached position. ! rung-is-marked ! (not (get-text-property (1- simple-ws-beg) 'c-in-sws)) ! ;; Cache if there's a marked rung in the encountered simple ws. ! (save-excursion ! (skip-chars-backward " \t\n\r\f\v") ! (text-property-any (point) (min (1+ next-rung-pos) (point-max)) ! 'c-is-sws t))) + (progn + (c-debug-sws-msg + "c-backward-sws caching [%s..%s] - [%s..%s] (min %s)" + (point) (1+ next-rung-pos) + simple-ws-beg (min (1+ rung-pos) (point-max)) + (point-min)) + + ;; Remove the properties for any nested ws that might be cached. + ;; Only necessary for `c-is-sws' since `c-in-sws' will be set + ;; anyway. + (c-remove-is-sws (1+ next-rung-pos) simple-ws-beg) + (unless (and rung-is-marked (= simple-ws-beg rung-pos)) + (let ((rung-end-pos (min (1+ rung-pos) (point-max)))) + (unless (get-text-property (1- rung-end-pos) 'c-is-sws) + ;; Remove any `c-in-sws' property from the last char of + ;; the rung before we mark it with `c-is-sws', so that we + ;; won't connect with the remains of a broken "ladder". + (c-remove-in-sws (1- rung-end-pos) rung-end-pos)) + (c-put-is-sws simple-ws-beg + rung-end-pos) + (setq rung-is-marked t))) + (c-put-in-sws (setq simple-ws-beg (point) + last-put-in-sws-pos simple-ws-beg) + rung-pos) + (c-put-is-sws (setq rung-pos simple-ws-beg) + (1+ next-rung-pos))) + + (c-debug-sws-msg + "c-backward-sws not caching [%s..%s] - [%s..%s] (min %s)" + (point) (1+ next-rung-pos) + simple-ws-beg (min (1+ rung-pos) (point-max)) + (point-min)) + (setq rung-pos next-rung-pos + simple-ws-beg (point)) + )) + + ;; Make sure that the newly marked `c-in-sws' region doesn't connect to + ;; another one before the point (which might occur when editing inside a + ;; comment or macro). + (when (eq last-put-in-sws-pos (point)) + (cond ((< (point-min) last-put-in-sws-pos) + (c-debug-sws-msg + "c-backward-sws clearing at %s for cache separation" + (1- last-put-in-sws-pos)) + (c-remove-in-sws (1- last-put-in-sws-pos) + last-put-in-sws-pos)) + ((> (point-min) 1) + ;; If at bob and the buffer is narrowed, we have to clear the + ;; character we're standing on instead since there might be a + ;; `c-in-sws' before (point-min). In this case it's necessary + ;; to clear both properties. + (c-debug-sws-msg + "c-backward-sws clearing thoroughly at %s for cache separation" + last-put-in-sws-pos) + (c-remove-is-and-in-sws last-put-in-sws-pos + (1+ last-put-in-sws-pos))))) + ))) ! ;; A system for handling noteworthy parens before the point. (defvar c-state-cache nil) (make-variable-buffer-local 'c-state-cache) *************** *** 1121,1129 **** ;; most effective if `c-parse-state' is used on each line while moving ;; forward. ! (defvar c-state-cache-start nil) ! ;; This (point-min) when `c-state-cache' was calculated, to detect ! ;; that the start point hasn't changed due to narrowing. (defun c-parse-state () ;; Finds and records all noteworthy parens between some good point --- 1677,1703 ---- ;; most effective if `c-parse-state' is used on each line while moving ;; forward. ! (defvar c-state-cache-start 1) ! (make-variable-buffer-local 'c-state-cache-start) ! ;; This is (point-min) when `c-state-cache' was calculated, since a ! ;; change of narrowing is likely to affect the parens that are visible ! ;; before the point. ! ! (defsubst c-invalidate-state-cache (pos) ! ;; Invalidate all info on `c-state-cache' that applies to the buffer ! ;; at POS or higher. This is much like `c-whack-state-after', but ! ;; it never changes a paren pair element into an open paren element. ! ;; Doing that would mean that the new open paren wouldn't have the ! ;; required preceding paren pair element. ! ;; ! ;; This function does not do any hidden buffer changes. ! (while (and c-state-cache ! (let ((elem (car c-state-cache))) ! (if (consp elem) ! (or (<= pos (car elem)) ! (< pos (cdr elem))) ! (<= pos elem)))) ! (setq c-state-cache (cdr c-state-cache)))) (defun c-parse-state () ;; Finds and records all noteworthy parens between some good point *************** *** 1134,1160 **** ;; The returned value is a list of the noteworthy parens with the ;; last one first. If an element in the list is an integer, it's ;; the position of an open paren which has not been closed before ! ;; point. If an element is a cons, it gives the position of a ;; closed brace paren pair; the car is the start paren position and ;; the cdr is the position following the closing paren. Only the ;; last closed brace paren pair before each open paren is recorded, ;; and thus the state never contains two cons elements in ;; succession. (save-restriction (let* ((here (point)) (c-macro-start (c-query-macro-start)) (in-macro-start (or c-macro-start (point))) old-state last-pos pairs pos save-pos) ! ;; Somewhat ugly use of c-check-state-cache to get rid of the ! ;; part of the state cache that is after point. Can't use ! ;; c-whack-state-after for the same reasons as in that function. ! (c-check-state-cache (point) nil nil) ;; Get the latest position we know are directly inside the ;; closest containing paren of the cached state. (setq last-pos (and c-state-cache (if (consp (car c-state-cache)) (cdr (car c-state-cache)) (1+ (car c-state-cache))))) ;; Check if the found last-pos is in a macro. If it is, and ;; we're not in the same macro, we must discard everything on ;; c-state-cache that is inside the macro before using it. --- 1708,1761 ---- ;; The returned value is a list of the noteworthy parens with the ;; last one first. If an element in the list is an integer, it's ;; the position of an open paren which has not been closed before ! ;; the point. If an element is a cons, it gives the position of a ;; closed brace paren pair; the car is the start paren position and ;; the cdr is the position following the closing paren. Only the ;; last closed brace paren pair before each open paren is recorded, ;; and thus the state never contains two cons elements in ;; succession. + ;; + ;; Currently no characters which are given paren syntax with the + ;; syntax-table property are recorded, i.e. angle bracket arglist + ;; parens are never present here. Note that this might change. + ;; + ;; This function does not do any hidden buffer changes. + (save-restriction (let* ((here (point)) (c-macro-start (c-query-macro-start)) (in-macro-start (or c-macro-start (point))) old-state last-pos pairs pos save-pos) ! (c-invalidate-state-cache (point)) ! ! ;; If the minimum position has changed due to narrowing then we ! ;; have to fix the tail of `c-state-cache' accordingly. ! (unless (= c-state-cache-start (point-min)) ! (if (> (point-min) c-state-cache-start) ! ;; If point-min has moved forward then we just need to cut ! ;; off a bit of the tail. ! (let ((ptr (cons nil c-state-cache)) elem) ! (while (and (setq elem (cdr ptr)) ! (>= (if (consp elem) (car elem) elem) ! (point-min))) ! (setq ptr elem)) ! (when (consp ptr) ! (if (eq (cdr ptr) c-state-cache) ! (setq c-state-cache nil) ! (setcdr ptr nil)))) ! ;; If point-min has moved backward then we drop the state ! ;; completely. It's possible to do a better job here and ! ;; recalculate the top only. ! (setq c-state-cache nil)) ! (setq c-state-cache-start (point-min))) ! ;; Get the latest position we know are directly inside the ;; closest containing paren of the cached state. (setq last-pos (and c-state-cache (if (consp (car c-state-cache)) (cdr (car c-state-cache)) (1+ (car c-state-cache))))) + ;; Check if the found last-pos is in a macro. If it is, and ;; we're not in the same macro, we must discard everything on ;; c-state-cache that is inside the macro before using it. *************** *** 1163,1179 **** (goto-char last-pos) (when (and (c-beginning-of-macro) (/= (point) in-macro-start)) ! (c-check-state-cache (point) nil nil) ;; Set last-pos again, just like above. (setq last-pos (and c-state-cache (if (consp (car c-state-cache)) (cdr (car c-state-cache)) (1+ (car c-state-cache)))))))) (setq pos ;; Find the start position for the forward search. (Can't ;; search in the backward direction since point might be ;; in some kind of literal.) (or (when last-pos ;; There's a cached state with a containing paren. Pop ;; off the stale containing sexps from it by going ;; forward out of parens as far as possible. --- 1764,1782 ---- (goto-char last-pos) (when (and (c-beginning-of-macro) (/= (point) in-macro-start)) ! (c-invalidate-state-cache (point)) ;; Set last-pos again, just like above. (setq last-pos (and c-state-cache (if (consp (car c-state-cache)) (cdr (car c-state-cache)) (1+ (car c-state-cache)))))))) + (setq pos ;; Find the start position for the forward search. (Can't ;; search in the backward direction since point might be ;; in some kind of literal.) (or (when last-pos + ;; There's a cached state with a containing paren. Pop ;; off the stale containing sexps from it by going ;; forward out of parens as far as possible. *************** *** 1188,1193 **** --- 1791,1797 ---- c-state-cache (cdr-safe (cdr c-state-cache))) (setq pair-beg (car c-state-cache) c-state-cache (cdr c-state-cache)))) + (when (and pair-beg (eq (char-after pair-beg) ?{)) ;; The last paren pair we moved out from was a brace ;; pair. Modify the state to record this as a closed *************** *** 1196,1201 **** --- 1800,1806 ---- (setq c-state-cache (cdr c-state-cache))) (setq c-state-cache (cons (cons pair-beg last-pos) c-state-cache)))) + ;; Check if the preceding balanced paren is within a ;; macro; it should be ignored if we're outside the ;; macro. There's no need to check any further upwards; *************** *** 1208,1216 **** --- 1813,1823 ---- (when (c-beginning-of-macro) (setq here (point) c-state-cache (cdr c-state-cache))))) + (when c-state-cache (setq old-state c-state-cache) last-pos)) + (save-excursion ;; go back 2 bods, but ignore any bogus positions ;; returned by beginning-of-defun (i.e. open paren in *************** *** 1222,1228 **** --- 1829,1837 ---- (if (eq (char-after) ?\{) (setq cnt (1- cnt))))) (point)))) + (narrow-to-region (point-min) here) + (while pos ;; Find the balanced brace pairs. (setq save-pos pos *************** *** 1231,1236 **** --- 1840,1846 ---- (setq pos (c-up-list-forward last-pos))) (if (eq (char-before last-pos) ?{) (setq pairs (cons (cons last-pos pos) pairs)))) + ;; Should ignore any pairs that are in a macro, providing ;; we're not in the same one. (when (and pairs (< (car (car pairs)) in-macro-start)) *************** *** 1238,1243 **** --- 1848,1854 ---- (goto-char (car (car pairs))) (c-beginning-of-macro)) (setq pairs (cdr pairs))))) + ;; Record the last brace pair. (when pairs (if (and (eq c-state-cache old-state) *************** *** 1249,1268 **** (setcar pairs (1- (car pairs))) (when (consp (car-safe c-state-cache)) ;; There could already be a cons first in `c-state-cache' ! ;; if we've jumped over an unbalanced open paren in a ;; macro below. (setq c-state-cache (cdr c-state-cache))) (setq c-state-cache (cons pairs c-state-cache))) (if last-pos ;; Prepare to loop, but record the open paren only if it's ! ;; outside a macro or within the same macro as point. (progn (setq pos last-pos) ! (if (or (>= last-pos in-macro-start) ! (save-excursion ! (goto-char last-pos) ! (not (c-beginning-of-macro)))) ! (setq c-state-cache (cons (1- pos) c-state-cache)))) (if (setq last-pos (c-up-list-forward pos)) ;; Found a close paren without a corresponding opening ;; one. Maybe we didn't go back far enough, so try to --- 1860,1884 ---- (setcar pairs (1- (car pairs))) (when (consp (car-safe c-state-cache)) ;; There could already be a cons first in `c-state-cache' ! ;; if we've e.g. jumped over an unbalanced open paren in a ;; macro below. (setq c-state-cache (cdr c-state-cache))) (setq c-state-cache (cons pairs c-state-cache))) + (if last-pos ;; Prepare to loop, but record the open paren only if it's ! ;; outside a macro or within the same macro as point, and ! ;; if it is a "real" open paren and not some character ! ;; that got an open paren syntax-table property. (progn (setq pos last-pos) ! (if (and (or (>= last-pos in-macro-start) ! (save-excursion ! (goto-char last-pos) ! (not (c-beginning-of-macro)))) ! (= (char-syntax (char-before last-pos)) ?\()) ! (setq c-state-cache (cons (1- last-pos) c-state-cache)))) ! (if (setq last-pos (c-up-list-forward pos)) ;; Found a close paren without a corresponding opening ;; one. Maybe we didn't go back far enough, so try to *************** *** 1283,1288 **** --- 1899,1905 ---- (1+ (count-lines (point-min) (c-point 'bol last-pos))))))) (setq pos nil)))) + c-state-cache))) ;; Debug tool to catch cache inconsistencies. *************** *** 1306,1387 **** 'c-real-parse-state))) (c-keep-region-active)) ! (defun c-check-state-cache (beg end old-length) ! ;; Used on `after-change-functions' to adjust `c-state-cache'. ! ;; Prefer speed to finesse here, since there will be many more calls ! ;; to this function than times `c-state-cache' is used. ! ;; ! ;; This is much like `c-whack-state-after', but it never changes a ! ;; paren pair element into an open paren element. Doing that would ! ;; mean that the new open paren wouldn't have the required preceding ! ;; paren pair element. ! (if (not (eq c-state-cache-start (point-min))) ! (setq c-state-cache-start (point-min) ! c-state-cache nil) ! (while (and c-state-cache ! (let ((elem (car c-state-cache))) ! (if (consp elem) ! (or (<= beg (car elem)) ! (< beg (cdr elem))) ! (<= beg elem)))) ! (setq c-state-cache (cdr c-state-cache))))) ! (defun c-whack-state-before (bufpos paren-state) ! ;; Whack off any state information from PAREN-STATE which lies ! ;; before BUFPOS. Not destructive on PAREN-STATE. ! (let* ((newstate (list nil)) ! (ptr newstate) ! car) ! (while paren-state ! (setq car (car paren-state) ! paren-state (cdr paren-state)) ! (if (< (if (consp car) (car car) car) bufpos) ! (setq paren-state nil) ! (setcdr ptr (list car)) ! (setq ptr (cdr ptr)))) ! (cdr newstate))) ! (defun c-whack-state-after (bufpos paren-state) ! ;; Whack off any state information from PAREN-STATE which lies at or ! ;; after BUFPOS. Not destructive on PAREN-STATE. ! (catch 'done ! (while paren-state ! (let ((car (car paren-state))) ! (if (consp car) ! ;; just check the car, because in a balanced brace ! ;; expression, it must be impossible for the corresponding ! ;; close brace to be before point, but the open brace to ! ;; be after. ! (if (<= bufpos (car car)) ! nil ; whack it off ! (if (< bufpos (cdr car)) ! ;; its possible that the open brace is before ! ;; bufpos, but the close brace is after. In that ! ;; case, convert this to a non-cons element. The ! ;; rest of the state is before bufpos, so we're ! ;; done. ! (throw 'done (cons (car car) (cdr paren-state))) ! ;; we know that both the open and close braces are ! ;; before bufpos, so we also know that everything else ! ;; on state is before bufpos. ! (throw 'done paren-state))) ! (if (<= bufpos car) ! nil ; whack it off ! ;; it's before bufpos, so everything else should too. ! (throw 'done paren-state))) ! (setq paren-state (cdr paren-state))) nil))) (defun c-beginning-of-inheritance-list (&optional lim) ;; Go to the first non-whitespace after the colon that starts a ;; multiple inheritance introduction. Optional LIM is the farthest ;; back we should search. ! (let* ((lim (or lim (c-point 'bod)))) (c-with-syntax-table c++-template-syntax-table ! (c-backward-token-1 0 t lim) ! (while (and (looking-at "[_a-zA-Z<,]") ! (= (c-backward-token-1 1 t lim) 0))) (skip-chars-forward "^:")))) (defun c-in-method-def-p () --- 1923,4203 ---- 'c-real-parse-state))) (c-keep-region-active)) ! (defun c-whack-state-before (bufpos paren-state) ! ;; Whack off any state information from PAREN-STATE which lies ! ;; before BUFPOS. Not destructive on PAREN-STATE. ! ;; ! ;; This function does not do any hidden buffer changes. ! (let* ((newstate (list nil)) ! (ptr newstate) ! car) ! (while paren-state ! (setq car (car paren-state) ! paren-state (cdr paren-state)) ! (if (< (if (consp car) (car car) car) bufpos) ! (setq paren-state nil) ! (setcdr ptr (list car)) ! (setq ptr (cdr ptr)))) ! (cdr newstate))) ! ! (defun c-whack-state-after (bufpos paren-state) ! ;; Whack off any state information from PAREN-STATE which lies at or ! ;; after BUFPOS. Not destructive on PAREN-STATE. ! ;; ! ;; This function does not do any hidden buffer changes. ! (catch 'done ! (while paren-state ! (let ((car (car paren-state))) ! (if (consp car) ! ;; just check the car, because in a balanced brace ! ;; expression, it must be impossible for the corresponding ! ;; close brace to be before point, but the open brace to ! ;; be after. ! (if (<= bufpos (car car)) ! nil ; whack it off ! (if (< bufpos (cdr car)) ! ;; its possible that the open brace is before ! ;; bufpos, but the close brace is after. In that ! ;; case, convert this to a non-cons element. The ! ;; rest of the state is before bufpos, so we're ! ;; done. ! (throw 'done (cons (car car) (cdr paren-state))) ! ;; we know that both the open and close braces are ! ;; before bufpos, so we also know that everything else ! ;; on state is before bufpos. ! (throw 'done paren-state))) ! (if (<= bufpos car) ! nil ; whack it off ! ;; it's before bufpos, so everything else should too. ! (throw 'done paren-state))) ! (setq paren-state (cdr paren-state))) ! nil))) ! ! (defun c-most-enclosing-brace (paren-state &optional bufpos) ! ;; Return the bufpos of the innermost enclosing open paren before ! ;; bufpos that hasn't been narrowed out, or nil if none was found. ! ;; ! ;; This function does not do any hidden buffer changes. ! (let (enclosingp) ! (or bufpos (setq bufpos 134217727)) ! (while paren-state ! (setq enclosingp (car paren-state) ! paren-state (cdr paren-state)) ! (if (or (consp enclosingp) ! (>= enclosingp bufpos)) ! (setq enclosingp nil) ! (if (< enclosingp (point-min)) ! (setq enclosingp nil)) ! (setq paren-state nil))) ! enclosingp)) ! ! (defun c-least-enclosing-brace (paren-state &optional bufpos) ! ;; Return the bufpos of the outermost enclosing open paren before ! ;; bufpos that hasn't been narrowed out, or nil if none was found. ! ;; ! ;; This function does not do any hidden buffer changes. ! (let (pos elem) ! (or bufpos (setq bufpos 134217727)) ! (while paren-state ! (setq elem (car paren-state) ! paren-state (cdr paren-state)) ! (unless (or (consp elem) ! (>= elem bufpos)) ! (if (>= elem (point-min)) ! (setq pos elem)))) ! pos)) ! ! (defun c-safe-position (bufpos paren-state) ! ;; Return the closest known safe position higher up than BUFPOS, or ! ;; nil if PAREN-STATE doesn't contain one. Return nil if BUFPOS is ! ;; nil, which is useful to find the closest limit before a given ! ;; limit that might be nil. ! ;; ! ;; This function does not do any hidden buffer changes. ! (when bufpos ! (let (elem) ! (catch 'done ! (while paren-state ! (setq elem (car paren-state)) ! (if (consp elem) ! (cond ((< (cdr elem) bufpos) ! (throw 'done (cdr elem))) ! ((< (car elem) bufpos) ! ;; See below. ! (throw 'done (min (1+ (car elem)) bufpos)))) ! (if (< elem bufpos) ! ;; elem is the position at and not after the opening paren, so ! ;; we can go forward one more step unless it's equal to ! ;; bufpos. This is useful in some cases avoid an extra paren ! ;; level between the safe position and bufpos. ! (throw 'done (min (1+ elem) bufpos)))) ! (setq paren-state (cdr paren-state))))))) ! ! (defun c-beginning-of-syntax () ! ;; This is used for `font-lock-beginning-of-syntax-function'. It ! ;; goes to the closest previous point that is known to be outside ! ;; any string literal or comment. `c-state-cache' is used if it has ! ;; a position in the vicinity. ! (let* ((paren-state c-state-cache) ! elem ! ! (pos (catch 'done ! ;; Note: Similar code in `c-safe-position'. The ! ;; difference is that we accept a safe position at ! ;; the point and don't bother to go forward past open ! ;; parens. ! (while paren-state ! (setq elem (car paren-state)) ! (if (consp elem) ! (cond ((<= (cdr elem) (point)) ! (throw 'done (cdr elem))) ! ((<= (car elem) (point)) ! (throw 'done (car elem)))) ! (if (<= elem (point)) ! (throw 'done elem))) ! (setq paren-state (cdr paren-state))) ! (point-min)))) ! ! (if (> pos (- (point) 4000)) ! (goto-char pos) ! ;; The position is far back. Try `c-beginning-of-defun-1' ! ;; (although we can't be entirely sure it will go to a position ! ;; outside a comment or string in current emacsen). FIXME: ! ;; Consult `syntax-ppss' here. ! (c-beginning-of-defun-1) ! (if (< (point) pos) ! (goto-char pos))))) ! ! ! ;; Tools for scanning identifiers and other tokens. ! ! (defun c-on-identifier () ! "Return non-nil if the point is on or directly after an identifier. ! Keywords are recognized and not considered identifiers. If an ! identifier is detected, the returned value is its starting position. ! If an identifier both starts and stops at the point \(can only happen ! in Pike) then the point for the preceding one is returned. ! ! This function does not do any hidden buffer changes." ! ! (save-excursion ! (if (zerop (skip-syntax-backward "w_")) ! ! (when (c-major-mode-is 'pike-mode) ! ;; Handle the ` syntax in Pike. ! (let ((pos (point))) ! (skip-chars-backward "!%&*+\\-/<=>^|~[]()") ! (and (if (< (skip-chars-backward "`") 0) ! t ! (goto-char pos) ! (eq (char-after) ?\`)) ! (looking-at c-symbol-key) ! (>= (match-end 0) pos) ! (point)))) ! ! (and (not (looking-at c-keywords-regexp)) ! (point))))) ! ! (defsubst c-simple-skip-symbol-backward () ! ;; If the point is at the end of a symbol then skip backward to the ! ;; beginning of it. Don't move otherwise. Return non-nil if point ! ;; moved. ! (or (< (skip-syntax-backward "w_") 0) ! (and (c-major-mode-is 'pike-mode) ! ;; Handle the ` syntax in Pike. ! (let ((pos (point))) ! (if (and (< (skip-chars-backward "!%&*+\\-/<=>^|~[]()") 0) ! (< (skip-chars-backward "`") 0) ! (looking-at c-symbol-key) ! (>= (match-end 0) pos)) ! t ! (goto-char pos) ! nil))))) ! ! (defsubst c-beginning-of-current-token (&optional back-limit) ! ;; Move to the beginning of the current token. Do not move if not ! ;; in the middle of one. BACK-LIMIT may be used to bound the ! ;; backward search; if given it's assumed to be at the boundary ! ;; between two tokens. ! (if (looking-at "\\w\\|\\s_") ! (skip-syntax-backward "w_" back-limit) ! (let ((start (point))) ! (when (< (skip-syntax-backward ".()" back-limit) 0) ! (while (let ((pos (or (and (looking-at c-nonsymbol-token-regexp) ! (match-end 0)) ! ;; `c-nonsymbol-token-regexp' should always match ! ;; since we've skipped backward over punctuator ! ;; or paren syntax, but consume one char in case ! ;; it doesn't so that we don't leave point before ! ;; some earlier incorrect token. ! (1+ (point))))) ! (if (<= pos start) ! (goto-char pos)) ! (< pos start))))))) ! ! (defsubst c-end-of-current-token (&optional back-limit) ! ;; Move to the end of the current token. Do not move if not in the ! ;; middle of one. BACK-LIMIT may be used to bound the backward ! ;; search; if given it's assumed to be at the boundary between two ! ;; tokens. ! (let ((start (point))) ! (cond ((< (skip-syntax-backward "w_" (1- start)) 0) ! (skip-syntax-forward "w_")) ! ((< (skip-syntax-backward ".()" back-limit) 0) ! (while (progn ! (if (looking-at c-nonsymbol-token-regexp) ! (goto-char (match-end 0)) ! ;; `c-nonsymbol-token-regexp' should always match since ! ;; we've skipped backward over punctuator or paren ! ;; syntax, but move forward in case it doesn't so that ! ;; we don't leave point earlier than we started with. ! (forward-char)) ! (< (point) start))))))) ! ! (defconst c-jump-syntax-balanced ! (if (memq 'gen-string-delim c-emacs-features) ! "\\w\\|\\s_\\|\\s\(\\|\\s\)\\|\\s\"\\|\\s|" ! "\\w\\|\\s_\\|\\s\(\\|\\s\)\\|\\s\"")) ! ! (defconst c-jump-syntax-unbalanced ! (if (memq 'gen-string-delim c-emacs-features) ! "\\w\\|\\s_\\|\\s\"\\|\\s|" ! "\\w\\|\\s_\\|\\s\"")) ! ! (defun c-forward-token-2 (&optional count balanced limit) ! "Move forward by tokens. ! A token is defined as all symbols and identifiers which aren't ! syntactic whitespace \(note that multicharacter tokens like \"==\" are ! treated properly). Point is always either left at the beginning of a ! token or not moved at all. COUNT specifies the number of tokens to ! move; a negative COUNT moves in the opposite direction. A COUNT of 0 ! moves to the next token beginning only if not already at one. If ! BALANCED is true, move over balanced parens, otherwise move into them. ! Also, if BALANCED is true, never move out of an enclosing paren. ! ! LIMIT sets the limit for the movement and defaults to the point limit. ! The case when LIMIT is set in the middle of a token, comment or macro ! is handled correctly, i.e. the point won't be left there. ! ! Return the number of tokens left to move \(positive or negative). If ! BALANCED is true, a move over a balanced paren counts as one. Note ! that if COUNT is 0 and no appropriate token beginning is found, 1 will ! be returned. Thus, a return value of 0 guarantees that point is at ! the requested position and a return value less \(without signs) than ! COUNT guarantees that point is at the beginning of some token." ! ! (or count (setq count 1)) ! (if (< count 0) ! (- (c-backward-token-2 (- count) balanced limit)) ! ! (let ((jump-syntax (if balanced ! c-jump-syntax-balanced ! c-jump-syntax-unbalanced)) ! (last (point)) ! (prev (point))) ! ! (if (zerop count) ! ;; If count is zero we should jump if in the middle of a token. ! (c-end-of-current-token)) ! ! (save-restriction ! (if limit (narrow-to-region (point-min) limit)) ! (if (/= (point) ! (progn (c-forward-syntactic-ws) (point))) ! ;; Skip whitespace. Count this as a move if we did in ! ;; fact move. ! (setq count (max (1- count) 0))) ! ! (if (eobp) ! ;; Moved out of bounds. Make sure the returned count isn't zero. ! (progn ! (if (zerop count) (setq count 1)) ! (goto-char last)) ! ! ;; Use `condition-case' to avoid having the limit tests ! ;; inside the loop. ! (condition-case nil ! (while (and ! (> count 0) ! (progn ! (setq last (point)) ! (cond ((looking-at jump-syntax) ! (goto-char (scan-sexps (point) 1)) ! t) ! ((looking-at c-nonsymbol-token-regexp) ! (goto-char (match-end 0)) ! t) ! ;; `c-nonsymbol-token-regexp' above should always ! ;; match if there are correct tokens. Try to ! ;; widen to see if the limit was set in the ! ;; middle of one, else fall back to treating ! ;; the offending thing as a one character token. ! ((and limit ! (save-restriction ! (widen) ! (looking-at c-nonsymbol-token-regexp))) ! nil) ! (t ! (forward-char) ! t)))) ! (c-forward-syntactic-ws) ! (setq prev last ! count (1- count))) ! (error (goto-char last))) ! ! (when (eobp) ! (goto-char prev) ! (setq count (1+ count))))) ! ! count))) ! ! (defun c-backward-token-2 (&optional count balanced limit) ! "Move backward by tokens. ! See `c-forward-token-2' for details." ! ! (or count (setq count 1)) ! (if (< count 0) ! (- (c-forward-token-2 (- count) balanced limit)) ! ! (or limit (setq limit (point-min))) ! (let ((jump-syntax (if balanced ! c-jump-syntax-balanced ! c-jump-syntax-unbalanced)) ! (last (point))) ! ! (if (zerop count) ! ;; The count is zero so try to skip to the beginning of the ! ;; current token. ! (if (> (point) ! (progn (c-beginning-of-current-token) (point))) ! (if (< (point) limit) ! ;; The limit is inside the same token, so return 1. ! (setq count 1)) ! ! ;; We're not in the middle of a token. If there's ! ;; whitespace after the point then we must move backward, ! ;; so set count to 1 in that case. ! (and (looking-at c-syntactic-ws-start) ! ;; If we're looking at a '#' that might start a cpp ! ;; directive then we have to do a more elaborate check. ! (or (/= (char-after) ?#) ! (not c-opt-cpp-prefix) ! (save-excursion ! (and (= (point) ! (progn (beginning-of-line) ! (looking-at "[ \t]*") ! (match-end 0))) ! (or (bobp) ! (progn (backward-char) ! (not (eq (char-before) ?\\))))))) ! (setq count 1)))) ! ! ;; Use `condition-case' to avoid having to check for buffer ! ;; limits in `backward-char', `scan-sexps' and `goto-char' below. ! (condition-case nil ! (while (and ! (> count 0) ! (progn ! (c-backward-syntactic-ws) ! (backward-char) ! (if (looking-at jump-syntax) ! (goto-char (scan-sexps (1+ (point)) -1)) ! ;; This can be very inefficient if there's a long ! ;; sequence of operator tokens without any separation. ! ;; That doesn't happen in practice, anyway. ! (c-beginning-of-current-token)) ! (>= (point) limit))) ! (setq last (point) ! count (1- count))) ! (error (goto-char last))) ! ! (if (< (point) limit) ! (goto-char last)) ! ! count))) ! ! (defun c-forward-token-1 (&optional count balanced limit) ! "Like `c-forward-token-2' but doesn't treat multicharacter operator ! tokens like \"==\" as single tokens, i.e. all sequences of symbol ! characters are jumped over character by character. This function is ! for compatibility only; it's only a wrapper over `c-forward-token-2'." ! (let ((c-nonsymbol-token-regexp "\\s.\\|\\s\(\\|\\s\)")) ! (c-forward-token-2 count balanced limit))) ! ! (defun c-backward-token-1 (&optional count balanced limit) ! "Like `c-backward-token-2' but doesn't treat multicharacter operator ! tokens like \"==\" as single tokens, i.e. all sequences of symbol ! characters are jumped over character by character. This function is ! for compatibility only; it's only a wrapper over `c-backward-token-2'." ! (let ((c-nonsymbol-token-regexp "\\s.\\|\\s\(\\|\\s\)")) ! (c-backward-token-2 count balanced limit))) ! ! ! ;; Tools for doing searches restricted to syntactically relevant text. ! ! (defun c-syntactic-re-search-forward (regexp &optional bound noerror ! paren-level not-inside-token ! lookbehind-submatch) ! "Like `re-search-forward', but only report matches that are found ! in syntactically significant text. I.e. matches in comments, macros ! or string literals are ignored. The start point is assumed to be ! outside any comment, macro or string literal, or else the content of ! that region is taken as syntactically significant text. ! ! If PAREN-LEVEL is non-nil, an additional restriction is added to ! ignore matches in nested paren sexps, and the search will also not go ! outside the current paren sexp. ! ! If NOT-INSIDE-TOKEN is non-nil, matches in the middle of tokens are ! ignored. Things like multicharacter operators and special symbols ! \(e.g. \"`()\" in Pike) are handled but currently not floating point ! constants. ! ! If LOOKBEHIND-SUBMATCH is non-nil, it's taken as a number of a ! subexpression in REGEXP. The end of that submatch is used as the ! position to check for syntactic significance. If LOOKBEHIND-SUBMATCH ! isn't used or if that subexpression didn't match then the start ! position of the whole match is used instead. The \"look behind\" ! subexpression is never tested before the starting position, so it ! might be a good idea to include \\=\\= as a match alternative in it. ! ! Optimization note: Matches might be missed if the \"look behind\" ! subexpression should match the end of nonwhite syntactic whitespace, ! i.e. the end of comments or cpp directives. This since the function ! skips over such things before resuming the search. It's also not safe ! to assume that the \"look behind\" subexpression never can match ! syntactic whitespace." ! ! (or bound (setq bound (point-max))) ! (if paren-level (setq paren-level -1)) ! ! ;;(message "c-syntactic-re-search-forward %s %s %S" (point) bound regexp) ! ! (let ((start (point)) ! (pos (point)) ! (last-token-end-pos (point-min)) ! match-pos found state check-pos check-state tmp) ! ! (condition-case err ! (while ! (and ! (re-search-forward regexp bound noerror) ! ! (progn ! (setq match-pos (point) ! state (parse-partial-sexp ! pos (match-beginning 0) paren-level nil state) ! pos (point)) ! (if (setq check-pos (and lookbehind-submatch ! (match-end lookbehind-submatch))) ! (setq check-state (parse-partial-sexp ! pos check-pos paren-level nil state)) ! (setq check-pos pos ! check-state state)) ! ! ;; If we got a look behind subexpression and get an ! ;; insignificant match in something that isn't ! ;; syntactic whitespace (i.e. strings or in nested ! ;; parentheses), then we can never skip more than a ! ;; single character from the match position before ! ;; continuing the search. That since the look behind ! ;; subexpression might match the end of the ! ;; insignificant region. ! ! (cond ! ((setq tmp (elt check-state 3)) ! ;; Match inside a string. ! (if (or lookbehind-submatch ! (not (integerp tmp))) ! (goto-char (min (1+ pos) bound)) ! ;; Skip to the end of the string before continuing. ! (let ((ender (make-string 1 tmp)) (continue t)) ! (while (if (search-forward ender bound noerror) ! (progn ! (setq state (parse-partial-sexp ! pos (point) nil nil state) ! pos (point)) ! (elt state 3)) ! (setq continue nil))) ! continue))) ! ! ((elt check-state 7) ! ;; Match inside a line comment. Skip to eol. Use ! ;; `re-search-forward' instead of `skip-chars-forward' to get ! ;; the right bound behavior. ! (re-search-forward "[\n\r]" bound noerror)) ! ! ((elt check-state 4) ! ;; Match inside a block comment. Skip to the '*/'. ! (search-forward "*/" bound noerror)) ! ! ((and (not (elt check-state 5)) ! (eq (char-before check-pos) ?/) ! (memq (char-after check-pos) '(?/ ?*))) ! ;; Match in the middle of the opener of a block or line ! ;; comment. ! (if (= (char-after check-pos) ?/) ! (re-search-forward "[\n\r]" bound noerror) ! (search-forward "*/" bound noerror))) ! ! ((and not-inside-token ! (or (< check-pos last-token-end-pos) ! (< check-pos ! (save-excursion ! (goto-char check-pos) ! (c-end-of-current-token last-token-end-pos) ! (setq last-token-end-pos (point)))))) ! ;; Match inside a token. ! (cond ((<= (point) bound) ! (goto-char (min (1+ pos) bound)) ! t) ! (noerror nil) ! (t (signal 'search-failed "end of token")))) ! ! ((save-excursion ! (save-match-data ! (c-beginning-of-macro start))) ! ;; Match inside a macro. Skip to the end of it. ! (c-end-of-macro) ! (cond ((<= (point) bound) t) ! (noerror nil) ! (t (signal 'search-failed "end of macro")))) ! ! ((and paren-level ! (/= (setq tmp (car check-state)) 0)) ! (if (> tmp 0) ! ;; Match inside a nested paren sexp. ! (if lookbehind-submatch ! (goto-char (min (1+ pos) bound)) ! ;; Skip out of the paren quickly. ! (setq state (parse-partial-sexp pos bound 0 nil state) ! pos (point))) ! ;; Have exited the current paren sexp. The ! ;; `parse-partial-sexp' above has left us just after the ! ;; closing paren in this case. Just make ! ;; `re-search-forward' above fail in the appropriate way; ! ;; we'll adjust the leave off point below if necessary. ! (setq bound (point)))) ! ! (t ! ;; A real match. ! (setq found t) ! nil))))) ! ! (error ! (goto-char start) ! (signal (car err) (cdr err)))) ! ! ;;(message "c-syntactic-re-search-forward done %s" (or match-pos (point))) ! ! (if found ! (progn ! (goto-char match-pos) ! match-pos) ! ! ;; Search failed. Set point as appropriate. ! (cond ((eq noerror t) ! (goto-char start)) ! (paren-level ! (if (eq (car (parse-partial-sexp pos bound -1 nil state)) -1) ! (backward-char))) ! (t ! (goto-char bound))) ! nil))) ! ! (defun c-syntactic-skip-backward (skip-chars &optional limit) ! "Like `skip-chars-backward' but only look at syntactically relevant chars, ! i.e. don't stop at positions inside syntactic whitespace or string ! literals. Preprocessor directives are also ignored, with the exception ! of the one that the point starts within, if any. If LIMIT is given, ! it's assumed to be at a syntactically relevant position. ! ! This function does not do any hidden buffer changes." ! ! (let ((start (point)) ! ;; A list of syntactically relevant positions in descending ! ;; order. It's used to avoid scanning repeatedly over ! ;; potentially large regions with `parse-partial-sexp' to verify ! ;; each position. ! safe-pos-list ! ;; The result from `c-beginning-of-macro' at the start position or the ! ;; start position itself if it isn't within a macro. Evaluated on ! ;; demand. ! start-macro-beg) ! ! (while (progn ! (while (and ! (< (skip-chars-backward skip-chars limit) 0) ! ! ;; Use `parse-partial-sexp' from a safe position down to ! ;; the point to check if it's outside comments and ! ;; strings. ! (let ((pos (point)) safe-pos state) ! ;; Pick a safe position as close to the point as ! ;; possible. ! ;; ! ;; FIXME: Consult `syntax-ppss' here if our ! ;; cache doesn't give a good position. ! (while (and safe-pos-list ! (> (car safe-pos-list) (point))) ! (setq safe-pos-list (cdr safe-pos-list))) ! (unless (setq safe-pos (car-safe safe-pos-list)) ! (setq safe-pos (max (or (c-safe-position ! (point) (or c-state-cache ! (c-parse-state))) ! 0) ! (point-min)) ! safe-pos-list (list safe-pos))) ! ! (while (progn ! (setq state (parse-partial-sexp ! safe-pos pos 0)) ! (< (point) pos)) ! ;; Cache positions along the way to use if we have to ! ;; back up more. Every closing paren on the same ! ;; level seems like fairly well spaced positions. ! (setq safe-pos (point) ! safe-pos-list (cons safe-pos safe-pos-list))) ! ! (cond ! ((or (elt state 3) (elt state 4)) ! ;; Inside string or comment. Continue search at the ! ;; beginning of it. ! (if (setq pos (nth 8 state)) ! ;; It's an emacs where `parse-partial-sexp' ! ;; supplies the starting position. ! (goto-char pos) ! (goto-char (car (c-literal-limits safe-pos)))) ! t) ! ! ((c-beginning-of-macro limit) ! ;; Inside a macro. ! (if (< (point) ! (or start-macro-beg ! (setq start-macro-beg ! (save-excursion ! (goto-char start) ! (c-beginning-of-macro limit) ! (point))))) ! t ! ;; It's inside the same macro we started in so it's ! ;; a relevant match. ! (goto-char pos) ! nil)))))) ! ! (> (point) ! (progn ! ;; Skip syntactic ws afterwards so that we don't stop at the ! ;; end of a comment if `skip-chars' is something like "^/". ! (c-backward-syntactic-ws) ! (point))))) ! ! (- (point) start))) ! ! ! ;; Tools for handling comments and string literals. ! ! (defun c-slow-in-literal (&optional lim detect-cpp) ! "Return the type of literal point is in, if any. ! The return value is `c' if in a C-style comment, `c++' if in a C++ ! style comment, `string' if in a string literal, `pound' if DETECT-CPP ! is non-nil and in a preprocessor line, or nil if somewhere else. ! Optional LIM is used as the backward limit of the search. If omitted, ! or nil, `c-beginning-of-defun' is used. ! ! The last point calculated is cached if the cache is enabled, i.e. if ! `c-in-literal-cache' is bound to a two element vector. ! ! This function does not do any hidden buffer changes." ! (if (and (vectorp c-in-literal-cache) ! (= (point) (aref c-in-literal-cache 0))) ! (aref c-in-literal-cache 1) ! (let ((rtn (save-excursion ! (let* ((pos (point)) ! (lim (or lim (progn ! (c-beginning-of-syntax) ! (point)))) ! (state (parse-partial-sexp lim pos))) ! (cond ! ((elt state 3) 'string) ! ((elt state 4) (if (elt state 7) 'c++ 'c)) ! ((and detect-cpp (c-beginning-of-macro lim)) 'pound) ! (t nil)))))) ! ;; cache this result if the cache is enabled ! (if (not c-in-literal-cache) ! (setq c-in-literal-cache (vector (point) rtn))) ! rtn))) ! ! ;; XEmacs has a built-in function that should make this much quicker. ! ;; I don't think we even need the cache, which makes our lives more ! ;; complicated anyway. In this case, lim is only used to detect ! ;; cpp directives. ! ;; ! ;; Note that there is a bug in Xemacs's buffer-syntactic-context when used in ! ;; conjunction with syntax-table-properties. The bug is present in, e.g., ! ;; Xemacs 21.4.4. It manifested itself thus: ! ;; ! ;; Starting with an empty AWK Mode buffer, type ! ;; /regexp/ { ! ;; Point gets wrongly left at column 0, rather than being indented to tab-width. ! ;; ! ;; AWK Mode is designed such that when the first / is typed, it gets the ! ;; syntax-table property "string fence". When the second / is typed, BOTH /s ! ;; are given the s-t property "string". However, buffer-syntactic-context ! ;; fails to take account of the change of the s-t property on the opening / to ! ;; "string", and reports that the { is within a string started by the second /. ! ;; ! ;; The workaround for this is for the AWK Mode initialisation to switch the ! ;; defalias for c-in-literal to c-slow-in-literal. This will slow down other ! ;; cc-modes in Xemacs whenever an awk-buffer has been initialised. ! ;; ! ;; (Alan Mackenzie, 2003/4/30). ! ! (defun c-fast-in-literal (&optional lim detect-cpp) ! (let ((context (buffer-syntactic-context))) ! (cond ! ((eq context 'string) 'string) ! ((eq context 'comment) 'c++) ! ((eq context 'block-comment) 'c) ! ((and detect-cpp (save-excursion (c-beginning-of-macro lim))) 'pound)))) ! ! (defalias 'c-in-literal ! (if (fboundp 'buffer-syntactic-context) ! 'c-fast-in-literal ; Xemacs ! 'c-slow-in-literal)) ; GNU Emacs ! ! ;; The defalias above isn't enough to shut up the byte compiler. ! (cc-bytecomp-defun c-in-literal) ! ! (defun c-literal-limits (&optional lim near not-in-delimiter) ! "Return a cons of the beginning and end positions of the comment or ! string surrounding point (including both delimiters), or nil if point ! isn't in one. If LIM is non-nil, it's used as the \"safe\" position ! to start parsing from. If NEAR is non-nil, then the limits of any ! literal next to point is returned. \"Next to\" means there's only ! spaces and tabs between point and the literal. The search for such a ! literal is done first in forward direction. If NOT-IN-DELIMITER is ! non-nil, the case when point is inside a starting delimiter won't be ! recognized. This only has effect for comments, which have starting ! delimiters with more than one character. ! ! This function does not do any hidden buffer changes." ! ! (save-excursion ! (let* ((pos (point)) ! (lim (or lim (progn ! (c-beginning-of-syntax) ! (point)))) ! (state (parse-partial-sexp lim pos))) ! ! (cond ((elt state 3) ! ;; String. Search backward for the start. ! (while (elt state 3) ! (search-backward (make-string 1 (elt state 3))) ! (setq state (parse-partial-sexp lim (point)))) ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ! ((elt state 7) ! ;; Line comment. Search from bol for the comment starter. ! (beginning-of-line) ! (setq state (parse-partial-sexp lim (point)) ! lim (point)) ! (while (not (elt state 7)) ! (search-forward "//") ; Should never fail. ! (setq state (parse-partial-sexp ! lim (point) nil nil state) ! lim (point))) ! (backward-char 2) ! (cons (point) (progn (c-forward-single-comment) (point)))) ! ! ((elt state 4) ! ;; Block comment. Search backward for the comment starter. ! (while (elt state 4) ! (search-backward "/*") ; Should never fail. ! (setq state (parse-partial-sexp lim (point)))) ! (cons (point) (progn (c-forward-single-comment) (point)))) ! ! ((and (not not-in-delimiter) ! (not (elt state 5)) ! (eq (char-before) ?/) ! (looking-at "[/*]")) ! ;; We're standing in a comment starter. ! (backward-char 1) ! (cons (point) (progn (c-forward-single-comment) (point)))) ! ! (near ! (goto-char pos) ! ! ;; Search forward for a literal. ! (skip-chars-forward " \t") ! ! (cond ! ((looking-at c-string-limit-regexp) ; String. ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ! ((looking-at c-comment-start-regexp) ; Line or block comment. ! (cons (point) (progn (c-forward-single-comment) (point)))) ! ! (t ! ;; Search backward. ! (skip-chars-backward " \t") ! ! (let ((end (point)) beg) ! (cond ! ((save-excursion ! (< (skip-syntax-backward c-string-syntax) 0)) ; String. ! (setq beg (c-safe (c-backward-sexp 1) (point)))) ! ! ((and (c-safe (forward-char -2) t) ! (looking-at "*/")) ! ;; Block comment. Due to the nature of line ! ;; comments, they will always be covered by the ! ;; normal case above. ! (goto-char end) ! (c-backward-single-comment) ! ;; If LIM is bogus, beg will be bogus. ! (setq beg (point)))) ! ! (if beg (cons beg end)))))) ! )))) ! ! (defun c-literal-limits-fast (&optional lim near not-in-delimiter) ! ;; Like c-literal-limits, but for emacsen whose `parse-partial-sexp' ! ;; returns the pos of the comment start. ! ! "Return a cons of the beginning and end positions of the comment or ! string surrounding point (including both delimiters), or nil if point ! isn't in one. If LIM is non-nil, it's used as the \"safe\" position ! to start parsing from. If NEAR is non-nil, then the limits of any ! literal next to point is returned. \"Next to\" means there's only ! spaces and tabs between point and the literal. The search for such a ! literal is done first in forward direction. If NOT-IN-DELIMITER is ! non-nil, the case when point is inside a starting delimiter won't be ! recognized. This only has effect for comments, which have starting ! delimiters with more than one character. ! ! This function does not do any hidden buffer changes." ! ! (save-excursion ! (let* ((pos (point)) ! (lim (or lim (progn ! (c-beginning-of-syntax) ! (point)))) ! (state (parse-partial-sexp lim pos))) ! ! (cond ((elt state 3) ; String. ! (goto-char (elt state 8)) ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ! ((elt state 4) ; Comment. ! (goto-char (elt state 8)) ! (cons (point) (progn (c-forward-single-comment) (point)))) ! ! ((and (not not-in-delimiter) ! (not (elt state 5)) ! (eq (char-before) ?/) ! (looking-at "[/*]")) ! ;; We're standing in a comment starter. ! (backward-char 1) ! (cons (point) (progn (c-forward-single-comment) (point)))) ! ! (near ! (goto-char pos) ! ! ;; Search forward for a literal. ! (skip-chars-forward " \t") ! ! (cond ! ((looking-at c-string-limit-regexp) ; String. ! (cons (point) (or (c-safe (c-forward-sexp 1) (point)) ! (point-max)))) ! ! ((looking-at c-comment-start-regexp) ; Line or block comment. ! (cons (point) (progn (c-forward-single-comment) (point)))) ! ! (t ! ;; Search backward. ! (skip-chars-backward " \t") ! ! (let ((end (point)) beg) ! (cond ! ((save-excursion ! (< (skip-syntax-backward c-string-syntax) 0)) ; String. ! (setq beg (c-safe (c-backward-sexp 1) (point)))) ! ! ((and (c-safe (forward-char -2) t) ! (looking-at "*/")) ! ;; Block comment. Due to the nature of line ! ;; comments, they will always be covered by the ! ;; normal case above. ! (goto-char end) ! (c-backward-single-comment) ! ;; If LIM is bogus, beg will be bogus. ! (setq beg (point)))) ! ! (if beg (cons beg end)))))) ! )))) ! ! (if (memq 'pps-extended-state c-emacs-features) ! (defalias 'c-literal-limits 'c-literal-limits-fast)) ! ! (defun c-collect-line-comments (range) ! "If the argument is a cons of two buffer positions (such as returned by ! `c-literal-limits'), and that range contains a C++ style line comment, ! then an extended range is returned that contains all adjacent line ! comments (i.e. all comments that starts in the same column with no ! empty lines or non-whitespace characters between them). Otherwise the ! argument is returned. ! ! This function does not do any hidden buffer changes." ! (save-excursion ! (condition-case nil ! (if (and (consp range) (progn ! (goto-char (car range)) ! (looking-at "//"))) ! (let ((col (current-column)) ! (beg (point)) ! (bopl (c-point 'bopl)) ! (end (cdr range))) ! ;; Got to take care in the backward direction to handle ! ;; comments which are preceded by code. ! (while (and (c-backward-single-comment) ! (>= (point) bopl) ! (looking-at "//") ! (= col (current-column))) ! (setq beg (point) ! bopl (c-point 'bopl))) ! (goto-char end) ! (while (and (progn (skip-chars-forward " \t") ! (looking-at "//")) ! (= col (current-column)) ! (prog1 (zerop (forward-line 1)) ! (setq end (point))))) ! (cons beg end)) ! range) ! (error range)))) ! ! (defun c-literal-type (range) ! "Convenience function that given the result of `c-literal-limits', ! returns nil or the type of literal that the range surrounds. It's ! much faster than using `c-in-literal' and is intended to be used when ! you need both the type of a literal and its limits. ! ! This function does not do any hidden buffer changes." ! (if (consp range) ! (save-excursion ! (goto-char (car range)) ! (cond ((looking-at c-string-limit-regexp) 'string) ! ((or (looking-at "//") ; c++ line comment ! (and (looking-at "\\s<") ; comment starter ! (looking-at "#"))) ; awk comment. ! 'c++) ! (t 'c))) ; Assuming the range is valid. ! range)) ! ! ! ;; `c-find-decl-spots' and accompanying stuff. ! ! ;; Variables used in `c-find-decl-spots' to cache the search done for ! ;; the first declaration in the last call. When that function starts, ! ;; it needs to back up over syntactic whitespace to look at the last ! ;; token before the region being searched. That can sometimes cause ! ;; moves back and forth over a quite large region of comments and ! ;; macros, which would be repeated for each changed character when ! ;; we're called during fontification, since font-lock refontifies the ! ;; current line for each change. Thus it's worthwhile to cache the ! ;; first match. ! ;; ! ;; `c-find-decl-syntactic-pos' is a syntactically relevant position in ! ;; the syntactic whitespace less or equal to some start position. ! ;; There's no cached value if it's nil. ! ;; ! ;; `c-find-decl-match-pos' is the match position if ! ;; `c-find-decl-prefix-search' matched before the syntactic whitespace ! ;; at `c-find-decl-syntactic-pos', or nil if there's no such match. ! (defvar c-find-decl-syntactic-pos nil) ! (make-variable-buffer-local 'c-find-decl-syntactic-pos) ! (defvar c-find-decl-match-pos nil) ! (make-variable-buffer-local 'c-find-decl-match-pos) ! ! (defsubst c-invalidate-find-decl-cache (change-min-pos) ! (and c-find-decl-syntactic-pos ! (< change-min-pos c-find-decl-syntactic-pos) ! (setq c-find-decl-syntactic-pos nil))) ! ! ; (defface c-debug-decl-spot-face ! ; '((t (:background "Turquoise"))) ! ; "Debug face to mark the spots where `c-find-decl-spots' stopped.") ! ; (defface c-debug-decl-sws-face ! ; '((t (:background "Khaki"))) ! ; "Debug face to mark the syntactic whitespace between the declaration ! ; spots and the preceding token end.") ! ! (defmacro c-debug-put-decl-spot-faces (match-pos decl-pos) ! (when (facep 'c-debug-decl-spot-face) ! `(let ((match-pos ,match-pos) (decl-pos ,decl-pos)) ! (c-debug-add-face (max match-pos (point-min)) decl-pos ! 'c-debug-decl-sws-face) ! (c-debug-add-face decl-pos (min (1+ decl-pos) (point-max)) ! 'c-debug-decl-spot-face)))) ! (defmacro c-debug-remove-decl-spot-faces (beg end) ! (when (facep 'c-debug-decl-spot-face) ! `(progn ! (c-debug-remove-face ,beg ,end 'c-debug-decl-spot-face) ! (c-debug-remove-face ,beg ,end 'c-debug-decl-sws-face)))) ! ! (defmacro c-find-decl-prefix-search () ! ;; Macro used inside `c-find-decl-spots'. It ought to be a defun, ! ;; but it contains lots of free variables that refer to things ! ;; inside `c-find-decl-spots'. The point is left at `cfd-match-pos' ! ;; if there is a match, otherwise at `cfd-limit'. ! ! '(progn ! ;; Find the next property match position if we haven't got one already. ! (unless cfd-prop-match ! (save-excursion ! (while (progn ! (goto-char (next-single-property-change ! (point) 'c-type nil cfd-limit)) ! (and (< (point) cfd-limit) ! (not (eq (c-get-char-property (1- (point)) 'c-type) ! 'c-decl-end))))) ! (setq cfd-prop-match (point)))) ! ! ;; Find the next `c-decl-prefix-re' match if we haven't got one already. ! (unless cfd-re-match ! (while (and (setq cfd-re-match ! (re-search-forward c-decl-prefix-re cfd-limit 'move)) ! (c-got-face-at (1- (setq cfd-re-match (match-end 1))) ! c-literal-faces)) ! ;; Search again if the match is within a comment or a string literal. ! (while (progn ! (goto-char (next-single-property-change ! cfd-re-match 'face nil cfd-limit)) ! (and (< (point) cfd-limit) ! (c-got-face-at (point) c-literal-faces))) ! (setq cfd-re-match (point)))) ! (unless cfd-re-match ! (setq cfd-re-match cfd-limit))) ! ! ;; Choose whichever match is closer to the start. ! (if (< cfd-re-match cfd-prop-match) ! (setq cfd-match-pos cfd-re-match ! cfd-re-match nil) ! (setq cfd-match-pos cfd-prop-match ! cfd-prop-match nil)) ! ! (goto-char cfd-match-pos) ! ! (when (< cfd-match-pos cfd-limit) ! ;; Skip forward past comments only so we don't skip macros. ! (c-forward-comments) ! ;; Set the position to continue at. We can avoid going over ! ;; the comments skipped above a second time, but it's possible ! ;; that the comment skipping has taken us past `cfd-prop-match' ! ;; since the property might be used inside comments. ! (setq cfd-continue-pos (if cfd-prop-match ! (min cfd-prop-match (point)) ! (point)))))) ! ! (defun c-find-decl-spots (cfd-limit cfd-decl-re cfd-face-checklist cfd-fun) ! ;; Call CFD-FUN for each possible spot for a declaration from the ! ;; point to CFD-LIMIT. A spot for a declaration is the first token ! ;; in the buffer and each token after the ones matched by ! ;; `c-decl-prefix-re' and after the occurrences of the `c-type' ! ;; property with the value `c-decl-end' (if `c-type-decl-end-used' ! ;; is set). Only a spot that match CFD-DECL-RE and whose face is in ! ;; the CFD-FACE-CHECKLIST list causes CFD-FUN to be called. The ! ;; face check is disabled if CFD-FACE-CHECKLIST is nil. ! ;; ! ;; If the match is inside a macro then the buffer is narrowed to the ! ;; end of it, so that CFD-FUN can investigate the following tokens ! ;; without matching something that begins inside a macro and ends ! ;; outside it. It's to avoid this work that the CFD-DECL-RE and ! ;; CFD-FACE-CHECKLIST checks exist. ! ;; ! ;; CFD-FUN is called with point at the start of the spot. It's ! ;; passed two arguments: The first is the end position of the token ! ;; that `c-decl-prefix-re' matched, or 0 for the implicit match at ! ;; bob. The second is a flag that is t when the match is inside a ! ;; macro. ! ;; ! ;; It's assumed that comment and strings are fontified in the ! ;; searched range. ! ;; ! ;; This is mainly used in fontification, and so has an elaborate ! ;; cache to handle repeated calls from the same start position; see ! ;; the variables above. ! ;; ! ;; All variables in this function begin with `cfd-' to avoid name ! ;; collision with the (dynamically bound) variables used in CFD-FUN. ! ! (let ((cfd-buffer-end (point-max)) ! ;; The last regexp match found by `c-find-decl-prefix-search'. ! cfd-re-match ! ;; The last `c-decl-end' found by `c-find-decl-prefix-search'. ! ;; If searching for the property isn't needed then we disable ! ;; it by faking a first match at the limit. ! (cfd-prop-match (unless c-type-decl-end-used cfd-limit)) ! ;; The position of the last match found by ! ;; `c-find-decl-prefix-search'. For regexp matches it's the ! ;; end of the matched token, for property matches it's the end ! ;; of the property. 0 for the implicit match at bob. ! ;; `cfd-limit' if there's no match. ! (cfd-match-pos cfd-limit) ! ;; The position to continue searching at. ! cfd-continue-pos ! ;; The position of the last "real" token we've stopped at. ! ;; This can be greater than `cfd-continue-pos' when we get ! ;; hits inside macros or at `c-decl-end' positions inside ! ;; comments. ! (cfd-token-pos 0) ! ;; The end position of the last entered macro. ! (cfd-macro-end 0)) ! ! ;; Initialize by finding a syntactically relevant start position ! ;; before the point, and do the first `c-decl-prefix-re' search ! ;; unless we're at bob. ! ! (let ((start-pos (point)) syntactic-pos) ! ;; Must back up a bit since we look for the end of the previous ! ;; statement or declaration, which is earlier than the first ! ;; returned match. ! ! (when (c-got-face-at (point) c-literal-faces) ! ;; But first we need to move to a syntactically relevant ! ;; position. Use the faces to back up to the start of the ! ;; comment or string literal. ! (when (and (not (bobp)) ! (c-got-face-at (1- (point)) c-literal-faces)) ! (while (progn ! (goto-char (previous-single-property-change ! (point) 'face nil (point-min))) ! (and (> (point) (point-min)) ! (c-got-face-at (point) c-literal-faces))))) ! ! ;; XEmacs doesn't fontify the quotes surrounding string ! ;; literals. ! (and (featurep 'xemacs) ! (eq (get-text-property (point) 'face) ! 'font-lock-string-face) ! (not (bobp)) ! (progn (backward-char) ! (not (looking-at c-string-limit-regexp))) ! (forward-char)) ! ! ;; The font lock package might not have fontified the start of ! ;; the literal at all so check that we have arrived at ! ;; something that looks like a start or else resort to ! ;; `c-literal-limits'. ! (unless (looking-at c-literal-start-regexp) ! (let ((range (c-literal-limits))) ! (if range (goto-char (car range)))))) ! ! ;; Must back out of any macro so that we don't miss any ! ;; declaration that could follow after it, unless the limit is ! ;; inside the macro. We only check that for the current line to ! ;; save some time; it's enough for the by far most common case ! ;; when font-lock refontifies the current line only. ! (when (save-excursion ! (and (= (forward-line 1) 0) ! (or (< (c-point 'eol) cfd-limit) ! (progn (backward-char) ! (not (eq (char-before) ?\\)))))) ! (c-beginning-of-macro)) ! ! ;; Clear the cache if it applied further down. ! (c-invalidate-find-decl-cache start-pos) ! ! (setq syntactic-pos (point)) ! (c-backward-syntactic-ws c-find-decl-syntactic-pos) ! ! ;; If we hit `c-find-decl-syntactic-pos' and ! ;; `c-find-decl-match-pos' is set then we install the cached ! ;; values. If we hit `c-find-decl-syntactic-pos' and ! ;; `c-find-decl-match-pos' is nil then we know there's no decl ! ;; prefix in the whitespace before `c-find-decl-syntactic-pos' ! ;; and so we can continue the search from this point. If we ! ;; didn't hit `c-find-decl-syntactic-pos' then we're now in the ! ;; right spot to begin searching anyway. ! (if (and (eq (point) c-find-decl-syntactic-pos) ! c-find-decl-match-pos) ! ! (progn ! ;; The match is always outside macros and comments so we ! ;; start at the next token. The loop below will later go ! ;; back using `cfd-continue-pos' to fix declarations inside ! ;; the syntactic ws. ! (goto-char syntactic-pos) ! (c-forward-syntactic-ws) ! (setq cfd-match-pos c-find-decl-match-pos ! cfd-continue-pos syntactic-pos) ! (if (< cfd-continue-pos (point)) ! (setq cfd-token-pos (point)))) ! ! (setq c-find-decl-syntactic-pos syntactic-pos) ! ! (when (if (bobp) ! ;; Always consider bob a match to get the first declaration ! ;; in the file. Do this separately instead of letting ! ;; `c-decl-prefix-re' match bob, so that it always can ! ;; consume at least one character to ensure that we won't ! ;; get stuck in an infinite loop. ! (setq cfd-re-match 0) ! (backward-char) ! (c-beginning-of-current-token) ! (< (point) cfd-limit)) ! ;; Do an initial search now. In the bob case above it's only done ! ;; to search for the `c-type' property. ! (c-find-decl-prefix-search)) ! ! ;; Advance `cfd-continue-pos' if we got a hit before the start ! ;; position. The earliest position that could affect after ! ;; the start position is the char before the preceding ! ;; comments. ! (when (and cfd-continue-pos (< cfd-continue-pos start-pos)) ! (goto-char syntactic-pos) ! (c-backward-comments) ! (unless (bobp) ! (backward-char) ! (c-beginning-of-current-token)) ! (setq cfd-continue-pos (max cfd-continue-pos (point)))) ! ! ;; If we got a match it's always outside macros and comments so ! ;; advance to the next token and set `cfd-token-pos'. The loop ! ;; below will later go back using `cfd-continue-pos' to fix ! ;; declarations inside the syntactic ws. ! (when (and (< cfd-match-pos cfd-limit) (< (point) syntactic-pos)) ! (goto-char syntactic-pos) ! (c-forward-syntactic-ws) ! (and cfd-continue-pos ! (< cfd-continue-pos (point)) ! (setq cfd-token-pos (point)))) ! ! (setq c-find-decl-match-pos (and (< cfd-match-pos start-pos) ! cfd-match-pos)))) ! ! ;; Now loop. We already got the first match. ! ! (while (progn ! (while (and ! (< cfd-match-pos cfd-limit) ! ! (or ! ;; Kludge to filter out matches on the "<" that ! ;; aren't open parens, for the sake of languages ! ;; that got `c-recognize-<>-arglists' set. ! (and (eq (char-before cfd-match-pos) ?<) ! (not (c-get-char-property (1- cfd-match-pos) ! 'syntax-table))) ! ! ;; If `cfd-continue-pos' is less or equal to ! ;; `cfd-token-pos', we've got a hit inside a macro ! ;; that's in the syntactic whitespace before the last ! ;; "real" declaration we've checked. If they're equal ! ;; we've arrived at the declaration a second time, so ! ;; there's nothing to do. ! (= cfd-continue-pos cfd-token-pos) ! ! (progn ! ;; If `cfd-continue-pos' is less than `cfd-token-pos' ! ;; we're still searching for declarations embedded in ! ;; the syntactic whitespace. In that case we need ! ;; only to skip comments and not macros, since they ! ;; can't be nested, and that's already been done in ! ;; `c-find-decl-prefix-search'. ! (when (> cfd-continue-pos cfd-token-pos) ! (c-forward-syntactic-ws) ! (setq cfd-token-pos (point))) ! ! ;; Continue if the following token fails the ! ;; CFD-DECL-RE and CFD-FACE-CHECKLIST checks. ! (when (or (>= (point) cfd-limit) ! (not (looking-at cfd-decl-re)) ! (and cfd-face-checklist ! (not (c-got-face-at ! (point) cfd-face-checklist)))) ! (goto-char cfd-continue-pos) ! t))) ! ! (< (point) cfd-limit)) ! (c-find-decl-prefix-search)) ! ! (< (point) cfd-limit)) ! ! (when (progn ! ;; Narrow to the end of the macro if we got a hit inside ! ;; one, to avoid recognizing things that start inside ! ;; the macro and end outside it. ! (when (> cfd-match-pos cfd-macro-end) ! ;; Not in the same macro as in the previous round. ! (save-excursion ! (goto-char cfd-match-pos) ! (setq cfd-macro-end ! (if (save-excursion (and (c-beginning-of-macro) ! (< (point) cfd-match-pos))) ! (progn (c-end-of-macro) ! (point)) ! 0)))) ! ! (if (zerop cfd-macro-end) ! t ! (if (> cfd-macro-end (point)) ! (progn (narrow-to-region (point-min) cfd-macro-end) ! t) ! ;; The matched token was the last thing in the ! ;; macro, so the whole match is bogus. ! (setq cfd-macro-end 0) ! nil))) ! ! (c-debug-put-decl-spot-faces cfd-match-pos (point)) ! (funcall cfd-fun cfd-match-pos (/= cfd-macro-end 0)) ! ! (when (/= cfd-macro-end 0) ! ;; Restore limits if we did macro narrowment above. ! (narrow-to-region (point-min) cfd-buffer-end))) ! ! (goto-char cfd-continue-pos) ! (if (= cfd-continue-pos cfd-limit) ! (setq cfd-match-pos cfd-limit) ! (c-find-decl-prefix-search))))) ! ! ! ;; A cache for found types. ! ;; Buffer local variable that contains an obarray with the types we've ! ;; found. If a declaration is recognized somewhere we record the ! ;; fully qualified identifier in it to recognize it as a type ! ;; elsewhere in the file too. This is not accurate since we do not ! ;; bother with the scoping rules of the languages, but in practice the ! ;; same name is seldom used as both a type and something else in a ! ;; file, and we only use this as a last resort in ambiguous cases (see ! ;; `c-font-lock-declarations'). ! (defvar c-found-types nil) ! (make-variable-buffer-local 'c-found-types) ! (defsubst c-clear-found-types () ! ;; Clears `c-found-types'. ! ;; ! ;; This function does not do any hidden buffer changes. ! (setq c-found-types (make-vector 53 0))) ! ! (defun c-add-type (from to) ! ;; Add the given region as a type in `c-found-types'. If the region ! ;; doesn't match an existing type but there is a type which is equal ! ;; to the given one except that the last character is missing, then ! ;; the shorter type is removed. That's done to avoid adding all ! ;; prefixes of a type as it's being entered and font locked. This ! ;; doesn't cover cases like when characters are removed from a type ! ;; or added in the middle. We'd need the position of point when the ! ;; font locking is invoked to solve this well. ! (unless (and c-recognize-<>-arglists ! (save-excursion ! (goto-char from) ! (c-syntactic-re-search-forward "<" to t))) ! ;; To avoid storing very long strings, do not add a type that ! ;; contains '<' in languages with angle bracket arglists, since ! ;; the type then probably contains a C++ template spec and those ! ;; can be fairly sized programs in themselves. ! (let ((type (c-syntactic-content from to))) ! (unless (intern-soft type c-found-types) ! (unintern (substring type 0 -1) c-found-types) ! (intern type c-found-types))))) ! ! (defsubst c-check-type (from to) ! ;; Return non-nil if the given region contains a type in ! ;; `c-found-types'. ! (intern-soft (c-syntactic-content from to) c-found-types)) ! ! (defun c-list-found-types () ! ;; Return all the types in `c-found-types' as a sorted list of ! ;; strings. ! (let (type-list) ! (mapatoms (lambda (type) ! (setq type-list (cons (symbol-name type) ! type-list))) ! c-found-types) ! (sort type-list 'string-lessp))) ! ! ! ;; Handling of small scale constructs like types and names. ! ! (defun c-remove-<>-arglist-properties (from to) ! ;; Remove all the properties put by `c-forward-<>-arglist' in the ! ;; specified region. Point is clobbered. ! (goto-char from) ! (while (progn (skip-chars-forward "^<>," to) ! (< (point) to)) ! (if (eq (char-after) ?,) ! (when (eq (c-get-char-property (point) 'c-type) 'c-<>-arg-sep) ! (c-clear-char-property (point) 'c-type)) ! (c-clear-char-property (point) 'syntax-table)) ! (forward-char))) ! ! ;; Dynamically bound variable that instructs `c-forward-type' to also ! ;; treat possible types (i.e. those that it normally returns 'maybe or ! ;; 'found for) as actual types (and always return 'found for them). ! ;; This means that it records them in `c-record-type-identifiers' if ! ;; that is set, and that it adds them to `c-found-types'. ! (defvar c-promote-possible-types nil) ! ! ;; Dynamically bound variable that instructs `c-forward-<>-arglist' to ! ;; not accept arglists that contain more than one argument. It's used ! ;; to handle ambiguous cases like "foo (a < b, c > d)" better. ! (defvar c-disallow-comma-in-<>-arglists nil) ! ! ;; Dynamically bound variables that instructs `c-forward-name', ! ;; `c-forward-type' and `c-forward-<>-arglist' to record the ranges of ! ;; all the type and reference identifiers they encounter. They will ! ;; build lists on these variables where each element is a cons of the ! ;; buffer positions surrounding each identifier. This recording is ! ;; only activated when `c-record-type-identifiers' is non-nil. ! ;; ! ;; All known types that can't be identifiers are recorded, and also ! ;; other possible types if `c-promote-possible-types' is set. ! ;; Recording is however disabled inside angle bracket arglists that ! ;; are encountered inside names and other angle bracket arglists. ! ;; Such occurences are taken care of by `c-font-lock-<>-arglists' ! ;; instead. ! ;; ! ;; Only the names in C++ template style references (e.g. "tmpl" in ! ;; "tmpl::foo") are recorded as references, other references ! ;; aren't handled here. ! (defvar c-record-type-identifiers nil) ! (defvar c-record-ref-identifiers nil) ! ! ;; If `c-record-type-identifiers' is set, this will receive a cons ! ;; cell of the range of the last single identifier symbol stepped over ! ;; by `c-forward-name' if it's successful. This is the range that ! ;; should be put on one of the record lists by the caller. It's ! ;; assigned nil if there's no such symbol in the name. ! (defvar c-last-identifier-range nil) ! ! (defmacro c-record-type-id (range) ! (if (eq (car-safe range) 'cons) ! ;; Always true. ! `(setq c-record-type-identifiers ! (cons ,range c-record-type-identifiers)) ! `(let ((range ,range)) ! (if range ! (setq c-record-type-identifiers ! (cons range c-record-type-identifiers)))))) ! ! (defmacro c-record-ref-id (range) ! (if (eq (car-safe range) 'cons) ! ;; Always true. ! `(setq c-record-ref-identifiers ! (cons ,range c-record-ref-identifiers)) ! `(let ((range ,range)) ! (if range ! (setq c-record-ref-identifiers ! (cons range c-record-ref-identifiers)))))) ! ! ;; Dynamically bound variable that instructs `c-forward-type' to ! ;; record the ranges of types that only are found. Behaves otherwise ! ;; like `c-record-type-identifiers'. ! (defvar c-record-found-types nil) ! ! (defmacro c-forward-keyword-prefixed-id (type) ! ;; Used internally in `c-forward-keyword-clause' to move forward ! ;; over a type (if TYPE is 'type) or a name (otherwise) which ! ;; possibly is prefixed by keywords and their associated clauses. ! ;; Try with a type/name first to not trip up on those that begin ! ;; with a keyword. Return t if a known or found type is moved ! ;; over. The point is clobbered if nil is returned. If range ! ;; recording is enabled, the identifier is recorded on as a type ! ;; if TYPE is 'type or as a reference if TYPE is 'ref. ! `(let (res) ! (while (if (setq res ,(if (eq type 'type) ! `(c-forward-type) ! `(c-forward-name))) ! nil ! (and (looking-at c-keywords-regexp) ! (c-forward-keyword-clause)))) ! (when (memq res '(t known found prefix)) ! ,(when (eq type 'ref) ! `(when c-record-type-identifiers ! (c-record-ref-id c-last-identifier-range))) ! t))) ! ! (defmacro c-forward-id-comma-list (type) ! ;; Used internally in `c-forward-keyword-clause' to move forward ! ;; over a comma separated list of types or names using ! ;; `c-forward-keyword-prefixed-id'. ! `(while (and (progn ! (setq safe-pos (point)) ! (eq (char-after) ?,)) ! (progn ! (forward-char) ! (c-forward-syntactic-ws) ! (c-forward-keyword-prefixed-id ,type))))) ! ! (defun c-forward-keyword-clause () ! ;; The first submatch in the current match data is assumed to ! ;; surround a token. If it's a keyword, move over it and any ! ;; following clauses associated with it, stopping at the next ! ;; following token. t is returned in that case, otherwise the point ! ;; stays and nil is returned. The kind of clauses that are ! ;; recognized are those specified by `c-type-list-kwds', ! ;; `c-ref-list-kwds', `c-colon-type-list-kwds', ! ;; `c-paren-nontype-kwds', `c-paren-type-kwds', `c-<>-type-kwds', ! ;; and `c-<>-arglist-kwds'. ! ! (let ((kwd-sym (c-keyword-sym (match-string 1))) safe-pos pos) ! (when kwd-sym ! (goto-char (match-end 1)) ! (c-forward-syntactic-ws) ! (setq safe-pos (point)) ! ! (cond ! ((and (c-keyword-member kwd-sym 'c-type-list-kwds) ! (c-forward-keyword-prefixed-id type)) ! ;; There's a type directly after a keyword in `c-type-list-kwds'. ! (c-forward-id-comma-list type)) ! ! ((and (c-keyword-member kwd-sym 'c-ref-list-kwds) ! (c-forward-keyword-prefixed-id ref)) ! ;; There's a name directly after a keyword in `c-ref-list-kwds'. ! (c-forward-id-comma-list ref)) ! ! ((and (c-keyword-member kwd-sym 'c-paren-any-kwds) ! (eq (char-after) ?\()) ! ;; There's an open paren after a keyword in `c-paren-any-kwds'. ! ! (forward-char) ! (when (and (setq pos (c-up-list-forward)) ! (eq (char-before pos) ?\))) ! (when (and c-record-type-identifiers ! (c-keyword-member kwd-sym 'c-paren-type-kwds)) ! ;; Use `c-forward-type' on every identifier we can find ! ;; inside the paren, to record the types. ! (while (c-syntactic-re-search-forward c-symbol-start pos t) ! (goto-char (match-beginning 0)) ! (unless (c-forward-type) ! (looking-at c-symbol-key) ; Always matches. ! (goto-char (match-end 0))))) ! ! (goto-char pos) ! (c-forward-syntactic-ws) ! (setq safe-pos (point)))) ! ! ((and (c-keyword-member kwd-sym 'c-<>-sexp-kwds) ! (eq (char-after) ?<) ! (c-forward-<>-arglist (c-keyword-member kwd-sym 'c-<>-type-kwds) ! (or c-record-type-identifiers ! c-disallow-comma-in-<>-arglists))) ! (c-forward-syntactic-ws) ! (setq safe-pos (point))) ! ! ((and (c-keyword-member kwd-sym 'c-nonsymbol-sexp-kwds) ! (not (looking-at c-symbol-start))) ! (c-forward-sexp) ! (c-forward-syntactic-ws) ! (setq safe-pos (point)))) ! ! (when (and (c-keyword-member kwd-sym 'c-colon-type-list-kwds) ! (progn ! ;; If a keyword matched both one of the types above and ! ;; this one, we match `c-colon-type-list-re' after the ! ;; clause matched above. ! (goto-char safe-pos) ! (looking-at c-colon-type-list-re)) ! (progn ! (goto-char (match-end 0)) ! (c-forward-syntactic-ws) ! (c-forward-keyword-prefixed-id type))) ! ;; There's a type after the `c-colon-type-list-re' ! ;; match after a keyword in `c-colon-type-list-kwds'. ! (c-forward-id-comma-list type)) ! ! (goto-char safe-pos) ! t))) ! ! (defun c-forward-<>-arglist (all-types reparse) ! ;; The point is assumed to be at a '<'. Try to treat it as the open ! ;; paren of an angle bracket arglist and move forward to the the ! ;; corresponding '>'. If successful, the point is left after the ! ;; '>' and t is returned, otherwise the point isn't moved and nil is ! ;; returned. If ALL-TYPES is t then all encountered arguments in ! ;; the arglist that might be types are treated as found types. ! ;; ! ;; The surrounding '<' and '>' are given syntax-table properties to ! ;; make them behave like parentheses. Each argument separating ',' ! ;; is also set to `c-<>-arg-sep' in the `c-type' property. These ! ;; properties are also cleared in a relevant region forward from the ! ;; point if they seems to be set and it turns out to not be an ! ;; arglist. ! ;; ! ;; If the arglist has been successfully parsed before then paren ! ;; syntax properties will be exploited to quickly jump to the end, ! ;; but that can be disabled by setting REPARSE to t. That is ! ;; necessary if the various side effects, e.g. recording of type ! ;; ranges, are important. Setting REPARSE to t only applies ! ;; recursively to nested angle bracket arglists if ! ;; `c-disallow-comma-in-<>-arglists' is set. ! ;; ! ;; This is primarily used in C++ to mark up template arglists. C++ ! ;; disambiguates them by checking whether the preceding name is a ! ;; template or not. We can't do that, so we assume it is a template ! ;; if it can be parsed as one. This usually works well since ! ;; comparison expressions on the forms "a < b > c" or "a < b, c > d" ! ;; in almost all cases would be pointless. Cases like function ! ;; calls on the form "foo (a < b, c > d)" needs to be handled ! ;; specially through the `c-disallow-comma-in-<>-arglists' variable. ! ! (let ((start (point)) ! ;; If `c-record-type-identifiers' is set then activate ! ;; recording of any found types that constitute an argument in ! ;; the arglist. ! (c-record-found-types (if c-record-type-identifiers t))) ! (if (catch 'angle-bracket-arglist-escape ! (setq c-record-found-types ! (c-forward-<>-arglist-recur all-types reparse))) ! (progn ! (when (consp c-record-found-types) ! (setq c-record-type-identifiers ! ;; `nconc' doesn't mind that the tail of ! ;; `c-record-found-types' is t. ! (nconc c-record-found-types c-record-type-identifiers))) ! t) ! ! (goto-char start) nil))) + (defun c-forward-<>-arglist-recur (all-types reparse) + ;; Recursive part of `c-forward-<>-arglist'. + + (let ((start (point)) res pos tmp + ;; Cover this so that any recorded found type ranges are + ;; automatically lost if it turns out to not be an angle + ;; bracket arglist. It's propagated through the return value + ;; on successful completion. + (c-record-found-types c-record-found-types) + ;; List that collects the positions after the argument + ;; separating ',' in the arglist. + arg-start-pos) + + ;; If the '<' has paren open syntax then we've marked it as an + ;; angle bracket arglist before, so try to skip to the end and see + ;; that the close paren matches. + (if (and (c-get-char-property (point) 'syntax-table) + (progn + (forward-char) + (if (and (not (looking-at c-<-op-cont-regexp)) + (if (c-parse-sexp-lookup-properties) + (c-go-up-list-forward) + (catch 'at-end + (let ((depth 1)) + (while (c-syntactic-re-search-forward + "[<>]" nil t t) + (when (c-get-char-property (1- (point)) + 'syntax-table) + (if (eq (char-before) ?<) + (setq depth (1+ depth)) + (setq depth (1- depth)) + (when (= depth 0) (throw 'at-end t))))) + nil))) + (not (looking-at c->-op-cont-regexp)) + (save-excursion + (backward-char) + (= (point) + (progn (c-beginning-of-current-token) + (point))))) + + ;; Got an arglist that appears to be valid. + (if reparse + ;; Reparsing is requested, so zap the properties in the + ;; region and go on to redo it. It's done here to + ;; avoid leaving it behind if we exit through + ;; `angle-bracket-arglist-escape' below. + (progn + (c-remove-<>-arglist-properties start (point)) + (goto-char start) + nil) + t) + + ;; Got unmatched paren brackets or either paren was + ;; actually some other token. Recover by clearing the + ;; syntax properties on all the '<' and '>' in the + ;; range where we'll search for the arglist below. + (goto-char start) + (while (progn (skip-chars-forward "^<>,;{}") + (looking-at "[<>,]")) + (if (eq (char-after) ?,) + (when (eq (c-get-char-property (point) 'c-type) + 'c-<>-arg-sep) + (c-clear-char-property (point) 'c-type)) + (c-clear-char-property (point) 'syntax-table)) + (forward-char)) + (goto-char start) + nil))) + t + + (forward-char) + (unless (looking-at c-<-op-cont-regexp) + (while (and + (progn + + (when c-record-type-identifiers + (if all-types + + ;; All encountered identifiers are types, so set the + ;; promote flag and parse the type. + (progn + (c-forward-syntactic-ws) + (when (looking-at c-identifier-start) + (let ((c-promote-possible-types t)) + (c-forward-type)))) + + ;; Check if this arglist argument is a sole type. If + ;; it's known then it's recorded in + ;; `c-record-type-identifiers'. If it only is found + ;; then it's recorded in `c-record-found-types' which we + ;; might roll back if it turns out that this isn't an + ;; angle bracket arglist afterall. + (when (memq (char-before) '(?, ?<)) + (let ((orig-record-found-types c-record-found-types)) + (c-forward-syntactic-ws) + (and (memq (c-forward-type) '(known found)) + (not (looking-at "[,>]")) + ;; A found type was recorded but it's not the + ;; only thing in the arglist argument, so reset + ;; `c-record-found-types'. + (setq c-record-found-types + orig-record-found-types)))))) + + (setq pos (point)) + (or (when (eq (char-after) ?>) + ;; Must check for '>' at the very start separately, + ;; since the regexp below has to avoid ">>" without + ;; using \\=. + (forward-char) + t) + + ;; Note: This regexp exploits the match order in + ;; \| so that "<>" is matched by "<" rather than + ;; "[^>:-]>". + (c-syntactic-re-search-forward + "[<;{},]\\|\\([^>:-]>\\)" nil 'move t t 1) + + ;; If the arglist starter has lost its open paren + ;; syntax but not the closer, we won't find the + ;; closer above since we only search in the + ;; balanced sexp. In that case we stop just short + ;; of it so check if the following char is the closer. + (when (eq (char-after) ?>) + ;; Remove its syntax so that we don't enter the + ;; recovery code below. That's not necessary + ;; since there's no real reason to suspect that + ;; things inside the arglist are unbalanced. + (c-clear-char-property (point) 'syntax-table) + (forward-char) + t))) + + (cond + ((eq (char-before) ?>) + ;; Either an operator starting with '>' or the end of + ;; the angle bracket arglist. + + (if (and (/= (1- (point)) pos) + (c-get-char-property (1- (point)) 'syntax-table) + (progn + (c-clear-char-property (1- (point)) 'syntax-table) + (c-parse-sexp-lookup-properties))) + + ;; We've skipped past a list that ended with '>'. It + ;; must be unbalanced since nested arglists are handled + ;; in the case below. Recover by removing all paren + ;; properties on '<' and '>' in the searched region and + ;; redo the search. + (progn + (c-remove-<>-arglist-properties pos (point)) + (goto-char pos) + t) + + (if (looking-at c->-op-cont-regexp) + (progn + (when (text-property-not-all + (1- (point)) (match-end 0) 'syntax-table nil) + (c-remove-<>-arglist-properties (1- (point)) + (match-end 0))) + (goto-char (match-end 0)) + t) + + ;; The angle bracket arglist is finished. + (while arg-start-pos + (c-put-char-property (1- (car arg-start-pos)) + 'c-type 'c-<>-arg-sep) + (setq arg-start-pos (cdr arg-start-pos))) + (c-mark-<-as-paren start) + (c-mark->-as-paren (1- (point))) + (setq res t) + nil))) + + ((eq (char-before) ?<) + ;; Either an operator starting with '<' or a nested arglist. + + (setq pos (point)) + (let (id-start id-end subres keyword-match) + (if (if (looking-at c-<-op-cont-regexp) + (setq tmp (match-end 0)) + (setq tmp pos) + (backward-char) + (not + (and + + (save-excursion + ;; There's always an identifier before a angle + ;; bracket arglist, or a keyword in + ;; `c-<>-type-kwds' or `c-<>-arglist-kwds'. + (c-backward-syntactic-ws) + (setq id-end (point)) + (c-simple-skip-symbol-backward) + (when (or (setq keyword-match + (looking-at c-opt-<>-sexp-key)) + (not (looking-at c-keywords-regexp))) + (setq id-start (point)))) + + (setq subres + (let ((c-record-type-identifiers nil) + (c-record-found-types nil)) + (c-forward-<>-arglist-recur + (and keyword-match + (c-keyword-member + (c-keyword-sym (match-string 1)) + 'c-<>-type-kwds)) + (and reparse + c-disallow-comma-in-<>-arglists)))) + ))) + + ;; It was not an angle bracket arglist. + (progn + (when (text-property-not-all + (1- pos) tmp 'syntax-table nil) + (if (c-parse-sexp-lookup-properties) + ;; Got an invalid open paren syntax on this + ;; '<'. We'll probably get an unbalanced '>' + ;; further ahead if we just remove the syntax + ;; here, so recover by removing all paren + ;; properties up to and including the + ;; balancing close paren. + (parse-partial-sexp pos (point-max) -1) + (goto-char tmp)) + (c-remove-<>-arglist-properties pos (point))) + (goto-char tmp)) + + ;; It was an angle bracket arglist. + (setq c-record-found-types subres) + + ;; Record the identifier before the template as a type + ;; or reference depending on whether the arglist is last + ;; in a qualified identifier. + (when (and c-record-type-identifiers + (not keyword-match)) + (if (and c-opt-identifier-concat-key + (progn + (c-forward-syntactic-ws) + (looking-at c-opt-identifier-concat-key))) + (c-record-ref-id (cons id-start id-end)) + (c-record-type-id (cons id-start id-end)))))) + t) + + ((and (eq (char-before) ?,) + (not c-disallow-comma-in-<>-arglists)) + ;; Just another argument. Record the position. The + ;; type check stuff that made us stop at it is at + ;; the top of the loop. + (setq arg-start-pos (cons (point) arg-start-pos))) + + (t + ;; Got a character that can't be in an angle bracket + ;; arglist argument. Abort using `throw', since + ;; it's useless to try to find a surrounding arglist + ;; if we're nested. + (throw 'angle-bracket-arglist-escape nil)))))) + + (if res + (or c-record-found-types t))))) + + (defun c-forward-name () + ;; Move forward over a complete name if at the beginning of one, + ;; stopping at the next following token. If the point is not at + ;; something that are recognized as name then it stays put. A name + ;; could be something as simple as "foo" in C or something as + ;; complex as "X::B, BIT_MAX >> b>, ::operator<> :: + ;; Z<(a>b)> :: operator const X<&foo>::T Q::G::*volatile const" in C++ (this function is actually little + ;; more than a `looking-at' call in all modes except those that, + ;; like C++, have `c-recognize-<>-arglists' set). Return nil if no + ;; name is found, 'template if it's an identifier ending with an + ;; angle bracket arglist, 'operator of it's an operator identifier, + ;; or t if it's some other kind of name. + + (let ((pos (point)) res id-start id-end + ;; Turn off `c-promote-possible-types' here since we might + ;; call `c-forward-<>-arglist' and we don't want it to promote + ;; every suspect thing in the arglist to a type. We're + ;; typically called from `c-forward-type' in this case, and + ;; the caller only wants the top level type that it finds to + ;; be promoted. + c-promote-possible-types) + (while + (and + (looking-at c-identifier-key) + + (progn + ;; Check for keyword. We go to the last symbol in + ;; `c-identifier-key' first. + (if (eq c-identifier-key c-symbol-key) + (setq id-start (point) + id-end (match-end 0)) + (goto-char (setq id-end (match-end 0))) + (c-simple-skip-symbol-backward) + (setq id-start (point))) + + (if (looking-at c-keywords-regexp) + (when (and (c-major-mode-is 'c++-mode) + (looking-at + (cc-eval-when-compile + (concat "\\(operator\\|\\(template\\)\\)" + "\\(" (c-lang-const c-nonsymbol-key c++) + "\\|$\\)"))) + (if (match-beginning 2) + ;; "template" is only valid inside an + ;; identifier if preceded by "::". + (save-excursion + (c-backward-syntactic-ws) + (and (c-safe (backward-char 2) t) + (looking-at "::"))) + t)) + + ;; Handle a C++ operator or template identifier. + (goto-char id-end) + (c-forward-syntactic-ws) + (cond ((eq (char-before id-end) ?e) + ;; Got "... ::template". + (let ((subres (c-forward-name))) + (when subres + (setq pos (point) + res subres)))) + + ((looking-at c-identifier-start) + ;; Got a cast operator. + (when (c-forward-type) + (setq pos (point) + res 'operator) + ;; Now we should match a sequence of either + ;; '*', '&' or a name followed by ":: *", + ;; where each can be followed by a sequence + ;; of `c-opt-type-modifier-key'. + (while (cond ((looking-at "[*&]") + (goto-char (match-end 0)) + t) + ((looking-at c-identifier-start) + (and (c-forward-name) + (looking-at "::") + (progn + (goto-char (match-end 0)) + (c-forward-syntactic-ws) + (eq (char-after) ?*)) + (progn + (forward-char) + t)))) + (while (progn + (c-forward-syntactic-ws) + (setq pos (point)) + (looking-at c-opt-type-modifier-key)) + (goto-char (match-end 1)))))) + + ((looking-at c-overloadable-operators-regexp) + ;; Got some other operator. + (when c-record-type-identifiers + (setq c-last-identifier-range + (cons (point) (match-end 0)))) + (goto-char (match-end 0)) + (c-forward-syntactic-ws) + (setq pos (point) + res 'operator))) + + nil) + + (when c-record-type-identifiers + (setq c-last-identifier-range + (cons id-start id-end))) + (goto-char id-end) + (c-forward-syntactic-ws) + (setq pos (point) + res t))) + + (progn + (goto-char pos) + (when (or c-opt-identifier-concat-key + c-recognize-<>-arglists) + + (cond + ((and c-opt-identifier-concat-key + (looking-at c-opt-identifier-concat-key)) + ;; Got a concatenated identifier. This handles the + ;; cases with tricky syntactic whitespace that aren't + ;; covered in `c-identifier-key'. + (goto-char (match-end 0)) + (c-forward-syntactic-ws) + t) + + ((and c-recognize-<>-arglists + (eq (char-after) ?<)) + ;; Maybe an angle bracket arglist. + (when (let ((c-record-type-identifiers nil) + (c-record-found-types nil)) + (c-forward-<>-arglist + nil c-disallow-comma-in-<>-arglists)) + (c-forward-syntactic-ws) + (setq pos (point)) + (if (and c-opt-identifier-concat-key + (looking-at c-opt-identifier-concat-key)) + ;; Continue if there's an identifier concatenation + ;; operator after the template argument. + (progn + (when c-record-type-identifiers + (c-record-ref-id (cons id-start id-end)) + (setq c-last-identifier-range nil)) + (forward-char 2) + (c-forward-syntactic-ws) + t) + ;; `c-add-type' isn't called here since we don't + ;; want to add types containing angle bracket + ;; arglists. + (when c-record-type-identifiers + (c-record-type-id (cons id-start id-end)) + (setq c-last-identifier-range nil)) + (setq res 'template) + nil))) + ))))) + + (goto-char pos) + res)) + + (defun c-forward-type () + ;; Move forward over a type spec if at the beginning of one, + ;; stopping at the next following token. Return t if it's a known + ;; type that can't be a name, 'known if it's an otherwise known type + ;; (according to `*-font-lock-extra-types'), 'prefix if it's a known + ;; prefix of a type, 'found if it's a type that matches one in + ;; `c-found-types', 'maybe if it's an identfier that might be a + ;; type, or nil if it can't be a type (the point isn't moved then). + ;; The point is assumed to be at the beginning of a token. + ;; + ;; Note that this function doesn't skip past the brace definition + ;; that might be considered part of the type, e.g. + ;; "enum {a, b, c} foo". + (let ((start (point)) pos res res2 id-start id-end id-range) + + ;; Skip leading type modifiers. If any are found we know it's a + ;; prefix of a type. + (when c-opt-type-modifier-key + (while (looking-at c-opt-type-modifier-key) + (goto-char (match-end 1)) + (c-forward-syntactic-ws) + (setq res 'prefix))) + + (cond + ((looking-at c-type-prefix-key) + ;; Looking at a keyword that prefixes a type identifier, + ;; e.g. "class". + (goto-char (match-end 1)) + (c-forward-syntactic-ws) + (setq pos (point)) + (if (memq (setq res2 (c-forward-name)) '(t template)) + (progn + (when (eq res2 t) + ;; In many languages the name can be used without the + ;; prefix, so we add it to `c-found-types'. + (c-add-type pos (point)) + (when c-record-type-identifiers + (c-record-type-id c-last-identifier-range))) + (setq res t)) + ;; Invalid syntax. + (goto-char start) + (setq res nil))) + + ((progn + (setq pos nil) + (if (looking-at c-identifier-start) + (save-excursion + (setq id-start (point) + res2 (c-forward-name)) + (when res2 + (setq id-end (point) + id-range c-last-identifier-range)))) + (and (cond ((looking-at c-primitive-type-key) + (setq res t)) + ((c-with-syntax-table c-identifier-syntax-table + (looking-at c-known-type-key)) + (setq res 'known))) + (or (not id-end) + (>= (save-excursion + (save-match-data + (goto-char (match-end 1)) + (c-forward-syntactic-ws) + (setq pos (point)))) + id-end) + (setq res nil)))) + ;; Looking at a primitive or known type identifier. We've + ;; checked for a name first so that we don't go here if the + ;; known type match only is a prefix of another name. + + (setq id-end (match-end 1)) + + (when (and c-record-type-identifiers + (or c-promote-possible-types (eq res t))) + (c-record-type-id (cons (match-beginning 1) (match-end 1)))) + + (if (and c-opt-type-component-key + (save-match-data + (looking-at c-opt-type-component-key))) + ;; There might be more keywords for the type. + (let (safe-pos) + (c-forward-keyword-clause) + (while (progn + (setq safe-pos (point)) + (looking-at c-opt-type-component-key)) + (when (and c-record-type-identifiers + (looking-at c-primitive-type-key)) + (c-record-type-id (cons (match-beginning 1) + (match-end 1)))) + (c-forward-keyword-clause)) + (if (looking-at c-primitive-type-key) + (progn + (when c-record-type-identifiers + (c-record-type-id (cons (match-beginning 1) + (match-end 1)))) + (c-forward-keyword-clause) + (setq res t)) + (goto-char safe-pos) + (setq res 'prefix))) + (unless (save-match-data (c-forward-keyword-clause)) + (if pos + (goto-char pos) + (goto-char (match-end 1)) + (c-forward-syntactic-ws))))) + + (res2 + (cond ((eq res2 t) + ;; A normal identifier. + (goto-char id-end) + (if (or res c-promote-possible-types) + (progn + (c-add-type id-start id-end) + (when c-record-type-identifiers + (c-record-type-id id-range)) + (unless res + (setq res 'found))) + (setq res (if (c-check-type id-start id-end) + ;; It's an identifier that has been used as + ;; a type somewhere else. + 'found + ;; It's an identifier that might be a type. + 'maybe)))) + ((eq res2 'template) + ;; A template is a type. + (goto-char id-end) + (setq res t)) + (t + ;; Otherwise it's an operator identifier, which is not a type. + (goto-char start) + (setq res nil))))) + + (when res + ;; Skip trailing type modifiers. If any are found we know it's + ;; a type. + (when c-opt-type-modifier-key + (while (looking-at c-opt-type-modifier-key) + (goto-char (match-end 1)) + (c-forward-syntactic-ws) + (setq res t))) + + ;; Step over any type suffix operator. Do not let the existence + ;; of these alter the classification of the found type, since + ;; these operators typically are allowed in normal expressions + ;; too. + (when c-opt-type-suffix-key + (while (looking-at c-opt-type-suffix-key) + (goto-char (match-end 1)) + (c-forward-syntactic-ws))) + + (when c-opt-type-concat-key + ;; Look for a trailing operator that concatenate the type with + ;; a following one, and if so step past that one through a + ;; recursive call. + (setq pos (point)) + (let* ((c-promote-possible-types (or (memq res '(t known)) + c-promote-possible-types)) + ;; If we can't promote then set `c-record-found-types' so that + ;; we can merge in the types from the second part afterwards if + ;; it turns out to be a known type there. + (c-record-found-types (and c-record-type-identifiers + (not c-promote-possible-types)))) + (if (and (looking-at c-opt-type-concat-key) + + (progn + (goto-char (match-end 1)) + (c-forward-syntactic-ws) + (setq res2 (c-forward-type)))) + + (progn + ;; If either operand certainly is a type then both are, but we + ;; don't let the existence of the operator itself promote two + ;; uncertain types to a certain one. + (cond ((eq res t)) + ((or (eq res 'known) (memq res2 '(t known))) + (c-add-type id-start id-end) + (when c-record-type-identifiers + (c-record-type-id id-range)) + (setq res t)) + ((eq res 'found)) + ((eq res2 'found) + (setq res 'found)) + (t + (setq res 'maybe))) + + (when (and (eq res t) + (consp c-record-found-types)) + ;; Merge in the ranges of any types found by the second + ;; `c-forward-type'. + (setq c-record-type-identifiers + ;; `nconc' doesn't mind that the tail of + ;; `c-record-found-types' is t. + (nconc c-record-found-types + c-record-type-identifiers)))) + + (goto-char pos)))) + + (when (and c-record-found-types (memq res '(known found)) id-range) + (setq c-record-found-types + (cons id-range c-record-found-types)))) + + ;;(message "c-forward-type %s -> %s: %s" start (point) res) + + res)) + + ;; Handling of large scale constructs like statements and declarations. + (defun c-beginning-of-inheritance-list (&optional lim) ;; Go to the first non-whitespace after the colon that starts a ;; multiple inheritance introduction. Optional LIM is the farthest ;; back we should search. ! (let* ((lim (or lim (save-excursion ! (c-beginning-of-syntax) ! (point))))) (c-with-syntax-table c++-template-syntax-table ! (c-backward-token-2 0 t lim) ! (while (and (or (looking-at c-symbol-start) ! (looking-at "[<,]")) ! (zerop (c-backward-token-2 1 t lim)))) (skip-chars-forward "^:")))) (defun c-in-method-def-p () *************** *** 1414,1421 **** (defun c-at-toplevel-p () "Return a determination as to whether point is at the `top-level'. Being at the top-level means that point is either outside any ! enclosing block (such function definition), or inside a class, ! namespace or extern definition, but outside any method blocks. If point is not at the top-level (e.g. it is inside a method definition), then nil is returned. Otherwise, if point is at a --- 4230,4237 ---- (defun c-at-toplevel-p () "Return a determination as to whether point is at the `top-level'. Being at the top-level means that point is either outside any ! enclosing block (such function definition), or only inside a class, ! namespace or other block that contains another declaration level. If point is not at the top-level (e.g. it is inside a method definition), then nil is returned. Otherwise, if point is at a *************** *** 1428,1460 **** (or (not (c-most-enclosing-brace paren-state)) (c-search-uplist-for-classkey paren-state)))) ! (defun c-forward-to-cpp-define-body () ! ;; Assuming point is at the "#" that introduces a preprocessor ! ;; directive, it's moved forward to the start of the definition body ! ;; if it's a "#define". Non-nil is returned in this case, in all ! ;; other cases nil is returned and point isn't moved. ! (when (and (looking-at ! (concat "#[ \t]*" ! "define[ \t]+\\(\\sw\\|_\\)+\\(\([^\)]*\)\\)?" ! "\\([ \t]\\|\\\\\n\\)*")) ! (not (= (match-end 0) (c-point 'eol)))) ! (goto-char (match-end 0)))) ! ! (defun c-just-after-func-arglist-p (&optional containing lim) ;; Return t if we are between a function's argument list closing ;; paren and its opening brace. Note that the list close brace ;; could be followed by a "const" specifier or a member init hanging ! ;; colon. Optional CONTAINING is position of containing s-exp open ! ;; brace. If not supplied, point is used as search start. LIM is ! ;; used as bound for some backward buffer searches; the search might ! ;; continue past it. ;; ;; Note: This test is easily fooled. It only works reasonably well ;; in the situations where `c-guess-basic-syntax' uses it. (save-excursion ! (c-backward-syntactic-ws lim) ! (let ((checkpoint (or containing (point)))) ! (goto-char checkpoint) ;; could be looking at const specifier (if (and (eq (char-before) ?t) (forward-word -1) --- 4244,4263 ---- (or (not (c-most-enclosing-brace paren-state)) (c-search-uplist-for-classkey paren-state)))) ! (defun c-just-after-func-arglist-p (&optional lim) ;; Return t if we are between a function's argument list closing ;; paren and its opening brace. Note that the list close brace ;; could be followed by a "const" specifier or a member init hanging ! ;; colon. LIM is used as bound for some backward buffer searches; ! ;; the search might continue past it. ;; ;; Note: This test is easily fooled. It only works reasonably well ;; in the situations where `c-guess-basic-syntax' uses it. (save-excursion ! (if (c-mode-is-new-awk-p) ! (c-awk-backward-syntactic-ws lim) ! (c-backward-syntactic-ws lim)) ! (let ((checkpoint (point))) ;; could be looking at const specifier (if (and (eq (char-before) ?t) (forward-word -1) *************** *** 1510,1533 **** ;; position that bounds the backward search for the argument list. ;; ;; Note: A declaration level context is assumed; the test can return ! ;; false positives for statements and #define headers. This test is ! ;; even more easily fooled than `c-just-after-func-arglist-p'. (save-excursion (save-restriction ;; Go back to the closest preceding normal parenthesis sexp. We ;; take that as the argument list in the function header. Then ;; check that it's followed by some symbol before the next ';' ;; or '{'. If it does, it's the header of the K&R argdecl we're ;; in. (if lim (narrow-to-region lim (point))) ! (let (paren-end) ! (and (c-safe (setq paren-end (c-down-list-backward (point)))) ! (eq (char-after paren-end) ?\)) ! (progn ! (goto-char (1+ paren-end)) (c-forward-syntactic-ws) (looking-at "\\w\\|\\s_")) (c-safe (c-up-list-backward paren-end)) (point)))))) (defun c-skip-conditional () --- 4313,4356 ---- ;; position that bounds the backward search for the argument list. ;; ;; Note: A declaration level context is assumed; the test can return ! ;; false positives for statements. This test is even more easily ! ;; fooled than `c-just-after-func-arglist-p'. ! (save-excursion (save-restriction + ;; Go back to the closest preceding normal parenthesis sexp. We ;; take that as the argument list in the function header. Then ;; check that it's followed by some symbol before the next ';' ;; or '{'. If it does, it's the header of the K&R argdecl we're ;; in. (if lim (narrow-to-region lim (point))) ! (let ((outside-macro (not (c-query-macro-start))) ! paren-end) ! ! (catch 'done ! (while (if (and (c-safe (setq paren-end ! (c-down-list-backward (point)))) ! (eq (char-after paren-end) ?\))) ! (progn ! (goto-char (1+ paren-end)) ! (if outside-macro ! (c-beginning-of-macro))) ! (throw 'done nil)))) ! ! (and (progn (c-forward-syntactic-ws) (looking-at "\\w\\|\\s_")) (c-safe (c-up-list-backward paren-end)) + + (save-excursion + ;; If it's a K&R declaration then we're now at the + ;; beginning of the function arglist. Check that there + ;; isn't a '=' before it in this statement since that + ;; means it some kind of initialization instead. + (c-syntactic-skip-backward "^;=}{") + (not (eq (char-before) ?=))) + (point)))))) (defun c-skip-conditional () *************** *** 1551,1560 **** ;; If looking at the token after a conditional then return the ;; position of its start, otherwise return nil. (save-excursion ! (and (= (c-backward-token-1 1 t lim) 0) (or (looking-at c-block-stmt-1-key) (and (eq (char-after) ?\() ! (= (c-backward-token-1 1 t lim) 0) (looking-at c-block-stmt-2-key))) (point)))) --- 4374,4383 ---- ;; If looking at the token after a conditional then return the ;; position of its start, otherwise return nil. (save-excursion ! (and (zerop (c-backward-token-2 1 t lim)) (or (looking-at c-block-stmt-1-key) (and (eq (char-after) ?\() ! (zerop (c-backward-token-2 1 t lim)) (looking-at c-block-stmt-2-key))) (point)))) *************** *** 1594,1608 **** ;; semicolon. I.e. search forward for the closest following ;; (syntactically relevant) '{', '=' or ';' token. Point is left ;; _after_ the first found token, or at point-max if none is found. ! (c-with-syntax-table (if (c-major-mode-is 'c++-mode) ! c++-template-syntax-table ! (syntax-table)) ! (while (and (c-syntactic-re-search-forward "[;{=]" nil 'move 1 t) ! ;; In Pike it can be an operator identifier containing ! ;; '='. ! (c-major-mode-is 'pike-mode) ! (eq (char-before) ?=) ! (c-on-identifier))))) (defun c-beginning-of-decl-1 (&optional lim) ;; Go to the beginning of the current declaration, or the beginning --- 4417,4433 ---- ;; semicolon. I.e. search forward for the closest following ;; (syntactically relevant) '{', '=' or ';' token. Point is left ;; _after_ the first found token, or at point-max if none is found. ! (if (c-major-mode-is 'c++-mode) ! ;; In C++ we need to take special care to handle those pesky ! ;; template brackets. ! (while (and (c-syntactic-re-search-forward "[;{=<]" nil 'move t) ! (when (eq (char-before) ?<) ! (c-with-syntax-table c++-template-syntax-table ! (if (c-safe (goto-char (c-up-list-forward (point)))) ! t ! (goto-char (point-max)) ! nil))))) ! (c-syntactic-re-search-forward "[;{=]" nil 'move t t))) (defun c-beginning-of-decl-1 (&optional lim) ;; Go to the beginning of the current declaration, or the beginning *************** *** 1620,1692 **** ;; declarations, e.g. "struct foo { ... }" and "bar;" in this case. (catch 'return (let* ((start (point)) ! (last-stmt-start (point)) ! (move (c-beginning-of-statement-1 lim t t))) - (while (and (/= last-stmt-start (point)) - (save-excursion - (c-backward-syntactic-ws lim) - (not (memq (char-before) '(?\; ?} ?: nil))))) ;; `c-beginning-of-statement-1' stops at a block start, but we ;; want to continue if the block doesn't begin a top level ;; construct, i.e. if it isn't preceded by ';', '}', ':', or bob. ! (setq last-stmt-start (point) ! move (c-beginning-of-statement-1 lim t t))) ! ! (when c-recognize-knr-p ! (let ((fallback-pos (point)) knr-argdecl-start) ! ;; Handle K&R argdecls. Back up after the "statement" jumped ! ;; over by `c-beginning-of-statement-1', unless it was the ! ;; function body, in which case we're sitting on the opening ! ;; brace now. Then test if we're in a K&R argdecl region and ! ;; that we started at the other side of the first argdecl in ! ;; it. ! (unless (eq (char-after) ?{) ! (goto-char last-stmt-start)) ! (if (and (setq knr-argdecl-start (c-in-knr-argdecl lim)) ! (< knr-argdecl-start start) ! (progn ! (goto-char knr-argdecl-start) ! (not (eq (c-beginning-of-statement-1 lim t t) 'macro)))) ! (throw 'return ! (cons (if (eq (char-after fallback-pos) ?{) ! 'previous ! 'same) ! knr-argdecl-start)) ! (goto-char fallback-pos)))) ! ! (when c-opt-access-key ! ;; Might have ended up before a protection label. This should ! ;; perhaps be checked before `c-recognize-knr-p' to be really ! ;; accurate, but we know that no language has both. ! (while (looking-at c-opt-access-key) ! (goto-char (match-end 0)) ! (c-forward-syntactic-ws) ! (when (>= (point) start) ! (goto-char start) ! (throw 'return (cons 'same nil))))) ! ! ;; `c-beginning-of-statement-1' counts each brace block as a ! ;; separate statement, so the result will be 'previous if we've ! ;; moved over any. If they were brace list initializers we might ! ;; not have moved over a declaration boundary though, so change it ! ;; to 'same if we've moved past a '=' before '{', but not ';'. ! ;; (This ought to be integrated into `c-beginning-of-statement-1', ! ;; so we avoid this extra pass which potentially can search over a ! ;; large amount of text.) ! (if (and (eq move 'previous) ! (c-with-syntax-table (if (c-major-mode-is 'c++-mode) ! c++-template-syntax-table ! (syntax-table)) ! (save-excursion ! (and (c-syntactic-re-search-forward "[;={]" start t 1 t) ! (eq (char-before) ?=) ! (c-syntactic-re-search-forward "[;{]" start t 1 t) ! (eq (char-before) ?{) ! (c-safe (goto-char (c-up-list-forward (point))) t) ! (not (c-syntactic-re-search-forward ";" start t 1 t)))))) ! (cons 'same nil) ! (cons move nil))))) (defun c-end-of-decl-1 () ;; Assuming point is at the start of a declaration (as detected by --- 4445,4529 ---- ;; declarations, e.g. "struct foo { ... }" and "bar;" in this case. (catch 'return (let* ((start (point)) ! (last-stmt-start (point)) ! (move (c-beginning-of-statement-1 lim t t))) ;; `c-beginning-of-statement-1' stops at a block start, but we ;; want to continue if the block doesn't begin a top level ;; construct, i.e. if it isn't preceded by ';', '}', ':', or bob. ! (let ((beg (point)) tentative-move) ! (while (and ! ;; Must check with c-opt-method-key in ObjC mode. ! (not (and c-opt-method-key ! (looking-at c-opt-method-key))) ! (/= last-stmt-start (point)) ! (progn ! (c-backward-syntactic-ws lim) ! (not (memq (char-before) '(?\; ?} ?: nil)))) ! ;; Check that we don't move from the first thing in a ! ;; macro to its header. ! (not (eq (setq tentative-move ! (c-beginning-of-statement-1 lim t t)) ! 'macro))) ! (setq last-stmt-start beg ! beg (point) ! move tentative-move)) ! (goto-char beg)) ! ! (when c-recognize-knr-p ! (let ((fallback-pos (point)) knr-argdecl-start) ! ;; Handle K&R argdecls. Back up after the "statement" jumped ! ;; over by `c-beginning-of-statement-1', unless it was the ! ;; function body, in which case we're sitting on the opening ! ;; brace now. Then test if we're in a K&R argdecl region and ! ;; that we started at the other side of the first argdecl in ! ;; it. ! (unless (eq (char-after) ?{) ! (goto-char last-stmt-start)) ! (if (and (setq knr-argdecl-start (c-in-knr-argdecl lim)) ! (< knr-argdecl-start start) ! (progn ! (goto-char knr-argdecl-start) ! (not (eq (c-beginning-of-statement-1 lim t t) 'macro)))) ! (throw 'return ! (cons (if (eq (char-after fallback-pos) ?{) ! 'previous ! 'same) ! knr-argdecl-start)) ! (goto-char fallback-pos)))) ! ! (when c-opt-access-key ! ;; Might have ended up before a protection label. This should ! ;; perhaps be checked before `c-recognize-knr-p' to be really ! ;; accurate, but we know that no language has both. ! (while (looking-at c-opt-access-key) ! (goto-char (match-end 0)) ! (c-forward-syntactic-ws) ! (when (>= (point) start) ! (goto-char start) ! (throw 'return (cons 'same nil))))) ! ! ;; `c-beginning-of-statement-1' counts each brace block as a ! ;; separate statement, so the result will be 'previous if we've ! ;; moved over any. If they were brace list initializers we might ! ;; not have moved over a declaration boundary though, so change it ! ;; to 'same if we've moved past a '=' before '{', but not ';'. ! ;; (This ought to be integrated into `c-beginning-of-statement-1', ! ;; so we avoid this extra pass which potentially can search over a ! ;; large amount of text.) ! (if (and (eq move 'previous) ! (c-with-syntax-table (if (c-major-mode-is 'c++-mode) ! c++-template-syntax-table ! (syntax-table)) ! (save-excursion ! (and (c-syntactic-re-search-forward "[;={]" start t t t) ! (eq (char-before) ?=) ! (c-syntactic-re-search-forward "[;{]" start t t) ! (eq (char-before) ?{) ! (c-safe (goto-char (c-up-list-forward (point))) t) ! (not (c-syntactic-re-search-forward ";" start t t)))))) ! (cons 'same nil) ! (cons move nil))))) (defun c-end-of-decl-1 () ;; Assuming point is at the start of a declaration (as detected by *************** *** 1711,1724 **** ;; detected using the same criteria as in ;; `c-beginning-of-decl-1'. Move to the following block ;; start. ! (c-syntactic-re-search-forward "{" nil 'move 1 t)) (when (eq (char-before) ?{) ;; Encountered a block in the declaration. Jump over it. (condition-case nil (goto-char (c-up-list-forward (point))) ! (goto-char (point-max)) ! (throw 'return nil)) (if (or (not c-opt-block-decls-with-vars-key) (save-excursion (c-with-syntax-table decl-syntax-table --- 4548,4561 ---- ;; detected using the same criteria as in ;; `c-beginning-of-decl-1'. Move to the following block ;; start. ! (c-syntactic-re-search-forward "{" nil 'move t)) (when (eq (char-before) ?{) ;; Encountered a block in the declaration. Jump over it. (condition-case nil (goto-char (c-up-list-forward (point))) ! (error (goto-char (point-max)) ! (throw 'return nil))) (if (or (not c-opt-block-decls-with-vars-key) (save-excursion (c-with-syntax-table decl-syntax-table *************** *** 1728,1741 **** ;; Check for `c-opt-block-decls-with-vars-key' ;; before the first paren. (c-syntactic-re-search-forward ! (concat "[;=\(\[{]\\|\\<\\(" c-opt-block-decls-with-vars-key "\\)") ! lim t 1 t) (match-beginning 1) (not (eq (char-before) ?_)) ! ;; Check that the first following paren is the block. ! (c-syntactic-re-search-forward "[;=\(\[{]" lim t 1 t) (eq (char-before) ?{))))))) ;; The declaration doesn't have any of the ;; `c-opt-block-decls-with-vars' keywords in the --- 4565,4580 ---- ;; Check for `c-opt-block-decls-with-vars-key' ;; before the first paren. (c-syntactic-re-search-forward ! (concat "[;=\(\[{]\\|\\(" c-opt-block-decls-with-vars-key "\\)") ! lim t t t) (match-beginning 1) (not (eq (char-before) ?_)) ! ;; Check that the first following paren is ! ;; the block. ! (c-syntactic-re-search-forward "[;=\(\[{]" ! lim t t t) (eq (char-before) ?{))))))) ;; The declaration doesn't have any of the ;; `c-opt-block-decls-with-vars' keywords in the *************** *** 1746,1789 **** (while (progn (if (eq (char-before) ?\;) (throw 'return t)) ! (c-syntactic-re-search-forward ";" nil 'move 1 t)))) nil))) (defun c-beginning-of-member-init-list (&optional limit) ;; Goes to the beginning of a member init list (i.e. just after the ! ;; ':') if inside one. Returns t in that case, nil otherwise. (or limit (setq limit (point-min))) (skip-chars-forward " \t") (if (eq (char-after) ?,) (forward-char 1) (c-backward-syntactic-ws limit)) ! (while (and (< limit (point)) ! (eq (char-before) ?,)) ! ;; this will catch member inits with multiple ! ;; line arglists ! (forward-char -1) ! (c-backward-syntactic-ws limit) ! (if (eq (char-before) ?\)) ! (c-backward-sexp 1)) ! (c-backward-syntactic-ws limit) ! ;; Skip over any template arg to the class. ! (if (eq (char-before) ?>) ! (c-with-syntax-table c++-template-syntax-table ! (c-backward-sexp 1))) ! (c-backward-sexp 1) ! (c-backward-syntactic-ws limit) ! ;; Skip backwards over a fully::qualified::name. ! (while (and (eq (char-before) ?:) ! (save-excursion ! (forward-char -1) ! (eq (char-before) ?:))) ! (backward-char 2) ! (c-backward-sexp 1)) ! ;; now continue checking ! (c-backward-syntactic-ws limit)) ! (and (< limit (point)) ! (eq (char-before) ?:))) (defun c-search-uplist-for-classkey (paren-state) ;; search for the containing class, returning a 2 element vector if --- 4585,4645 ---- (while (progn (if (eq (char-before) ?\;) (throw 'return t)) ! (c-syntactic-re-search-forward ";" nil 'move t)))) nil))) (defun c-beginning-of-member-init-list (&optional limit) ;; Goes to the beginning of a member init list (i.e. just after the ! ;; ':') if inside one. Returns t in that case, nil otherwise. (or limit (setq limit (point-min))) (skip-chars-forward " \t") + (if (eq (char-after) ?,) (forward-char 1) (c-backward-syntactic-ws limit)) ! ! (catch 'exit ! (while (and (< limit (point)) ! (eq (char-before) ?,)) ! ! ;; this will catch member inits with multiple ! ;; line arglists ! (forward-char -1) ! (c-backward-syntactic-ws limit) ! (if (eq (char-before) ?\)) ! (unless (c-safe (c-backward-sexp 1)) ! (throw 'exit nil))) ! (c-backward-syntactic-ws limit) ! ! ;; Skip over any template arg to the class. This way with a ! ;; syntax table is bogus but it'll have to do for now. ! (if (and (eq (char-before) ?>) ! (c-major-mode-is 'c++-mode)) ! (c-with-syntax-table c++-template-syntax-table ! (unless (c-safe (c-backward-sexp 1)) ! (throw 'exit nil)))) ! (c-safe (c-backward-sexp 1)) ! (c-backward-syntactic-ws limit) ! ! ;; Skip backwards over a fully::qualified::name. ! (while (and (eq (char-before) ?:) ! (save-excursion ! (forward-char -1) ! (eq (char-before) ?:))) ! (backward-char 2) ! (c-safe (c-backward-sexp 1))) ! ! ;; If we've stepped over a number then this is a bitfield. ! (when (and c-opt-bitfield-key ! (looking-at "[0-9]")) ! (throw 'exit nil)) ! ! ;; now continue checking ! (c-backward-syntactic-ws limit)) ! ! (and (< limit (point)) ! (eq (char-before) ?:)))) (defun c-search-uplist-for-classkey (paren-state) ;; search for the containing class, returning a 2 element vector if *************** *** 1807,1817 **** search-end (nth 0 paren-state))) ;; if search-end is nil, or if the search-end character isn't an ;; open brace, we are definitely not in a class ! (when (consp search-end) ! (setq search-end (car search-end))) ! (unless (or (not search-end) ! (< search-end (point-min)) ! (not (eq (char-after search-end) ?{))) ;; now, we need to look more closely at search-start. if ;; search-start is nil, then our start boundary is really ;; point-min. --- 4663,4672 ---- search-end (nth 0 paren-state))) ;; if search-end is nil, or if the search-end character isn't an ;; open brace, we are definitely not in a class ! (if (or (not search-end) ! (< search-end (point-min)) ! (not (eq (char-after search-end) ?{))) ! nil ;; now, we need to look more closely at search-start. if ;; search-start is nil, then our start boundary is really ;; point-min. *************** *** 1821,1827 **** ;; searching from the end of the balanced sexp just ahead of ;; us (if (consp search-start) ! (setq search-start (cdr search-start)))) ;; now we can do a quick regexp search from search-start to ;; search-end and see if we can find a class key. watch for ;; class like strings in literals --- 4676,4684 ---- ;; searching from the end of the balanced sexp just ahead of ;; us (if (consp search-start) ! (setq search-start (cdr search-start)) ! ;; Otherwise we start searching within the surrounding paren sexp. ! (setq search-start (1+ search-start)))) ;; now we can do a quick regexp search from search-start to ;; search-end and see if we can find a class key. watch for ;; class like strings in literals *************** *** 1833,1839 **** (progn (c-forward-syntactic-ws search-end) (> search-end (point))) ! (re-search-forward c-decl-block-key search-end t)) (setq class (match-beginning 0) match-end (match-end 0)) (goto-char class) --- 4690,4700 ---- (progn (c-forward-syntactic-ws search-end) (> search-end (point))) ! ;; Add one to the search limit, to allow ! ;; matching of the "{" in the regexp. ! (re-search-forward c-decl-block-key ! (1+ search-end) ! t)) (setq class (match-beginning 0) match-end (match-end 0)) (goto-char class) *************** *** 1857,1863 **** ;; Check if this is an anonymous inner class. ((and c-opt-inexpr-class-key (looking-at c-opt-inexpr-class-key)) ! (while (and (= (c-forward-token-1 1 t) 0) (looking-at "(\\|\\w\\|\\s_\\|\\."))) (if (eq (point) search-end) ;; We're done. Just trap this case in the cond. --- 4718,4724 ---- ;; Check if this is an anonymous inner class. ((and c-opt-inexpr-class-key (looking-at c-opt-inexpr-class-key)) ! (while (and (zerop (c-forward-token-2 1 t)) (looking-at "(\\|\\w\\|\\s_\\|\\."))) (if (eq (point) search-end) ;; We're done. Just trap this case in the cond. *************** *** 1900,1914 **** ;; places in inconvenient locations. Its a trade-off we make for ;; speed. (or ! ;; this will pick up enum lists (c-safe (save-excursion (goto-char containing-sexp) (c-forward-sexp -1) (let (bracepos) ! (if (and (or (looking-at "enum\\>[^_]") (progn (c-forward-sexp -1) ! (looking-at "enum\\>[^_]"))) (setq bracepos (c-down-list-forward (point))) (not (c-crosses-statement-barrier-p (point) (- bracepos 2)))) --- 4761,4775 ---- ;; places in inconvenient locations. Its a trade-off we make for ;; speed. (or ! ;; This will pick up brace list declarations. (c-safe (save-excursion (goto-char containing-sexp) (c-forward-sexp -1) (let (bracepos) ! (if (and (or (looking-at c-brace-list-key) (progn (c-forward-sexp -1) ! (looking-at c-brace-list-key))) (setq bracepos (c-down-list-forward (point))) (not (c-crosses-statement-barrier-p (point) (- bracepos 2)))) *************** *** 1941,1957 **** ;; see if the open brace is preceded by = or [...] in ;; this statement, but watch out for operator= (setq braceassignp 'dontknow) ! (c-backward-token-1 1 t lim) ;; Checks to do only on the first sexp before the brace. ! (when (and (c-major-mode-is 'java-mode) (eq (char-after) ?\[)) ;; In Java, an initialization brace list may follow ;; directly after "new Foo[]", so check for a "new" ;; earlier. (while (eq braceassignp 'dontknow) (setq braceassignp ! (cond ((/= (c-backward-token-1 1 t lim) 0) nil) ! ((looking-at "new\\>[^_]") t) ((looking-at "\\sw\\|\\s_\\|[.[]") ;; Carry on looking if this is an ;; identifier (may contain "." in Java) --- 4802,4818 ---- ;; see if the open brace is preceded by = or [...] in ;; this statement, but watch out for operator= (setq braceassignp 'dontknow) ! (c-backward-token-2 1 t lim) ;; Checks to do only on the first sexp before the brace. ! (when (and c-opt-inexpr-brace-list-key (eq (char-after) ?\[)) ;; In Java, an initialization brace list may follow ;; directly after "new Foo[]", so check for a "new" ;; earlier. (while (eq braceassignp 'dontknow) (setq braceassignp ! (cond ((/= (c-backward-token-2 1 t lim) 0) nil) ! ((looking-at c-opt-inexpr-brace-list-key) t) ((looking-at "\\sw\\|\\s_\\|[.[]") ;; Carry on looking if this is an ;; identifier (may contain "." in Java) *************** *** 1971,1977 **** ;; that it isn't something that should be ignored. (setq braceassignp 'maybe) (while (and (eq braceassignp 'maybe) ! (zerop (c-backward-token-1 1 t lim))) (setq braceassignp (cond ;; Check for operator = --- 4832,4838 ---- ;; that it isn't something that should be ignored. (setq braceassignp 'maybe) (while (and (eq braceassignp 'maybe) ! (zerop (c-backward-token-2 1 t lim))) (setq braceassignp (cond ;; Check for operator = *************** *** 2003,2009 **** nil) (t t)))))) (if (and (eq braceassignp 'dontknow) ! (/= (c-backward-token-1 1 t lim) 0)) (setq braceassignp nil))) (if (not braceassignp) (if (eq (char-after) ?\;) --- 4864,4870 ---- nil) (t t)))))) (if (and (eq braceassignp 'dontknow) ! (/= (c-backward-token-2 1 t lim) 0)) (setq braceassignp nil))) (if (not braceassignp) (if (eq (char-after) ?\;) *************** *** 2121,2127 **** ;; in-expression class. (let ((prev (point))) (while (and ! (= (c-backward-token-1 1 nil closest-lim) 0) (eq (char-syntax (char-after)) ?w)) (setq prev (point))) (goto-char prev) --- 4982,4988 ---- ;; in-expression class. (let ((prev (point))) (while (and ! (= (c-backward-token-2 1 nil closest-lim) 0) (eq (char-syntax (char-after)) ?w)) (setq prev (point))) (goto-char prev) *************** *** 2132,2138 **** (save-excursion (and (c-major-mode-is 'pike-mode) (progn (goto-char block-follows) ! (= (c-forward-token-1 1 t) 0)) (eq (char-after) ?\()))) (cons 'inexpr-class (point)))) ((and c-opt-inexpr-block-key --- 4993,4999 ---- (save-excursion (and (c-major-mode-is 'pike-mode) (progn (goto-char block-follows) ! (zerop (c-forward-token-2 1 t))) (eq (char-after) ?\()))) (cons 'inexpr-class (point)))) ((and c-opt-inexpr-block-key *************** *** 2183,2268 **** paren-state) containing-sexp))))) - (defun c-on-identifier () - "Return non-nil if we're on or directly after an identifier. - Keywords are recognized and not considered identifiers." - (if (or (memq (char-syntax (or (char-after) ? )) '(?w ?_)) - (memq (char-syntax (or (char-before) ? )) '(?w ?_))) - (save-excursion - (skip-syntax-backward "w_") - (not (looking-at c-keywords-regexp))) - (if (c-major-mode-is 'pike-mode) - ;; Handle the ` syntax in Pike. - (save-excursion - (if (eq (char-after) ?\`) (forward-char)) - (skip-chars-backward "!%&*+\\-/<=>^|~") - (let ((pos (point))) - (cond ((memq (char-before) '(?\) ?\])) - (c-safe (backward-char 2))) - ((memq (char-before) '(?\( ?\[)) - (c-safe (backward-char 1)))) - (if (not (looking-at "()\\|\\[]")) - (goto-char pos))) - (and (eq (char-before) ?\`) - (looking-at "[-!%&*+/<=>^|~]\\|()\\|\\[]")))))) - - - (defun c-most-enclosing-brace (paren-state &optional bufpos) - ;; Return the bufpos of the innermost enclosing brace before bufpos - ;; that hasn't been narrowed out, or nil if none was found. - (let (enclosingp) - (or bufpos (setq bufpos 134217727)) - (while paren-state - (setq enclosingp (car paren-state) - paren-state (cdr paren-state)) - (if (or (consp enclosingp) - (>= enclosingp bufpos)) - (setq enclosingp nil) - (if (< enclosingp (point-min)) - (setq enclosingp nil)) - (setq paren-state nil))) - enclosingp)) - - (defun c-least-enclosing-brace (paren-state &optional bufpos) - ;; Return the bufpos of the outermost enclosing brace before bufpos - ;; that hasn't been narrowed out, or nil if none was found. - (let (pos elem) - (or bufpos (setq bufpos 134217727)) - (while paren-state - (setq elem (car paren-state) - paren-state (cdr paren-state)) - (unless (or (consp elem) - (>= elem bufpos)) - (if (>= elem (point-min)) - (setq pos elem)))) - pos)) - - (defun c-safe-position (bufpos paren-state) - ;; Return the closest known safe position higher up than BUFPOS, or - ;; nil if PAREN-STATE doesn't contain one. Return nil if BUFPOS is - ;; nil, which is useful to find the closest limit before a given - ;; limit that might be nil. - (when bufpos - (let ((c-macro-start (c-query-macro-start)) safepos) - (if (and c-macro-start - (< c-macro-start bufpos)) - ;; Make sure bufpos is outside the macro we might be in. - (setq bufpos c-macro-start)) - (catch 'done - (while paren-state - (setq safepos - (if (consp (car paren-state)) - (cdr (car paren-state)) - (car paren-state))) - (if (< safepos bufpos) - (throw 'done safepos) - (setq paren-state (cdr paren-state)))) - (if (eq c-macro-start bufpos) - ;; Backed up bufpos to the macro start and got outside the - ;; state. We know the macro is at the top level in this case, - ;; so we can use the macro start as the safe position. - c-macro-start))))) - (defun c-narrow-out-enclosing-class (paren-state lim) ;; Narrow the buffer so that the enclosing class is hidden. Uses ;; and returns the value from c-search-uplist-for-classkey. --- 5044,5049 ---- *************** *** 2289,2309 **** inclass-p)) ! ;; c-guess-basic-syntax implements the main decision tree for ! ;; determining the syntactic analysis of the current line of code. ! ;; Yes, it's huge and bloated! ! ! ;; It's useful to break out some parts of the decision tree to ! ;; separate functions, which are all collected below. Use dynamic ! ;; binding to propagate back the syntax results from them. ! (defvar syntax) ! (defvar syntactic-relpos) (defun c-add-stmt-syntax (syntax-symbol stop-at-boi-only containing-sexp ! paren-state ! &optional at-block-start) ;; Do the generic processing to anchor the given syntax symbol on ;; the preceding statement: Skip over any labels and containing ;; statements on the same line, and then search backward until we --- 5070,5103 ---- inclass-p)) ! ;; `c-guess-basic-syntax' and the functions that precedes it below ! ;; implements the main decision tree for determining the syntactic ! ;; analysis of the current line of code. ! ! ;; Dynamically bound to t when `c-guess-basic-syntax' is called during ! ;; auto newline analysis. ! (defvar c-auto-newline-analysis nil) ! ! (defsubst c-add-syntax (symbol &rest args) ! ;; A simple function to prepend a new syntax element to ! ;; `c-syntactic-context'. Using `setq' on it is unsafe since it ! ;; should always be dynamically bound but since we read it first ! ;; we'll fail properly anyway if this function is misused. ! (setq c-syntactic-context (cons (cons symbol args) ! c-syntactic-context))) ! ! (defsubst c-append-syntax (symbol &rest args) ! ;; Like `c-add-syntax' but appends to the end of the syntax list. ! ;; (Normally not necessary.) ! (setq c-syntactic-context (nconc c-syntactic-context ! (list (cons symbol args))))) (defun c-add-stmt-syntax (syntax-symbol + syntax-extra-args stop-at-boi-only + at-block-start containing-sexp ! paren-state) ;; Do the generic processing to anchor the given syntax symbol on ;; the preceding statement: Skip over any labels and containing ;; statements on the same line, and then search backward until we *************** *** 2312,2320 **** ;; ;; Point is assumed to be at the prospective anchor point for the ;; given SYNTAX-SYMBOL. More syntax entries are added if we need to ! ;; skip past block opens and containing statement. All the added ;; syntax elements will get the same anchor point. ;; ;; If STOP-AT-BOI-ONLY is nil, we might stop in the middle of the ;; line if another statement precedes the current one on this line. ;; --- 5106,5117 ---- ;; ;; Point is assumed to be at the prospective anchor point for the ;; given SYNTAX-SYMBOL. More syntax entries are added if we need to ! ;; skip past open parens and containing statements. All the added ;; syntax elements will get the same anchor point. ;; + ;; SYNTAX-EXTRA-ARGS are a list of the extra arguments for the + ;; syntax symbol. They are appended after the anchor point. + ;; ;; If STOP-AT-BOI-ONLY is nil, we might stop in the middle of the ;; line if another statement precedes the current one on this line. ;; *************** *** 2325,2338 **** (if (= (point) (c-point 'boi)) ;; This is by far the most common case, so let's give it special ;; treatment. ! (c-add-syntax syntax-symbol (point)) ! (let* ((savepos (point)) ! (syms (list syntax-symbol)) ! (syms-tail syms) ! (boi (c-point 'boi)) ! (prev-paren (if at-block-start ?{ (char-after))) ! step-type step-tmp at-comment add-inexpr-stmt) ;; Begin by skipping any labels and containing statements that ;; are on the same line. --- 5122,5135 ---- (if (= (point) (c-point 'boi)) ;; This is by far the most common case, so let's give it special ;; treatment. ! (apply 'c-add-syntax syntax-symbol (point) syntax-extra-args) ! (let ((savepos (point)) ! (syntax-last c-syntactic-context) ! (boi (c-point 'boi)) ! (prev-paren (if at-block-start ?{ (char-after))) ! step-type step-tmp at-comment special-list) ! (apply 'c-add-syntax syntax-symbol nil syntax-extra-args) ;; Begin by skipping any labels and containing statements that ;; are on the same line. *************** *** 2351,2356 **** --- 5148,5154 ---- ;; Loop if we have to back out of the containing block. (while (progn + ;; Loop if we have to back up another statement. (while (progn *************** *** 2358,2364 **** ;; Always start by skipping over any comments that ;; stands between the statement and boi. (while (and (/= (setq savepos (point)) boi) ! (c-forward-comment -1)) (setq at-comment t boi (c-point 'boi))) (goto-char savepos) --- 5156,5162 ---- ;; Always start by skipping over any comments that ;; stands between the statement and boi. (while (and (/= (setq savepos (point)) boi) ! (c-backward-single-comment)) (setq at-comment t boi (c-point 'boi))) (goto-char savepos) *************** *** 2397,2404 **** ;; if" clauses won't indent deeper and deeper. (when (and (eq step-type 'up) (< (point) boi)) ! (setcdr syms-tail (list 'substatement)) ! (setq syms-tail (cdr syms-tail))) (setq boi (c-point 'boi)) (/= (point) savepos))))) --- 5195,5201 ---- ;; if" clauses won't indent deeper and deeper. (when (and (eq step-type 'up) (< (point) boi)) ! (c-add-syntax 'substatement nil)) (setq boi (c-point 'boi)) (/= (point) savepos))))) *************** *** 2410,2439 **** (when (and (eq step-type 'same) containing-sexp) (goto-char containing-sexp) - (setq paren-state (c-whack-state-after containing-sexp - paren-state) - containing-sexp (c-most-enclosing-brace paren-state)) ! (when (eq (setq prev-paren (char-after)) ?\() ! (c-backward-syntactic-ws containing-sexp) ! (when (c-on-identifier) ! ;; Arrived at a function arglist start. Exit with ! ;; the position of the first argument inside it. ! (goto-char savepos) ! (throw 'done t)) ! ;; We're in an in-expression statement. Remember ! ;; this. We'll iterate below, but won't add any ! ;; syntax element. ! (setq add-inexpr-stmt t)) ! (setq savepos (point) ! boi (c-point 'boi) ! step-type (c-beginning-of-statement-1 containing-sexp)) (let ((at-bod (and (eq step-type 'same) (/= savepos (point)) (eq prev-paren ?{)))) (when (= savepos boi) ;; If the open brace was at boi, we're always ;; done. The c-beginning-of-statement-1 call --- 5207,5255 ---- (when (and (eq step-type 'same) containing-sexp) (goto-char containing-sexp) + ;; Don't stop in the middle of a special brace list opener + ;; like "({". + (when (and c-special-brace-lists + (setq special-list + (c-looking-at-special-brace-list))) + (setq containing-sexp (car (car special-list))) + (goto-char containing-sexp)) ! (setq paren-state (c-whack-state-after containing-sexp ! paren-state) ! containing-sexp (c-most-enclosing-brace paren-state) ! savepos (point) ! boi (c-point 'boi)) ! (if (eq (setq prev-paren (char-after)) ?\() ! (progn ! (c-backward-syntactic-ws containing-sexp) ! (when (/= savepos boi) ! (if (and (or (not (looking-at "\\>")) ! (not (c-on-identifier))) ! (not special-list) ! (save-excursion ! (c-forward-syntactic-ws) ! (forward-char) ! (c-forward-syntactic-ws) ! (eq (char-after) ?{))) ! ;; We're in an in-expression statement. ! ;; This syntactic element won't get an anchor pos. ! (c-add-syntax 'inexpr-statement) ! (c-add-syntax 'arglist-cont-nonempty nil savepos))) ! (goto-char (max boi ! (if containing-sexp ! (1+ containing-sexp) ! (point-min)))) ! (setq step-type 'same)) ! (setq step-type ! (c-beginning-of-statement-1 containing-sexp))) (let ((at-bod (and (eq step-type 'same) (/= savepos (point)) (eq prev-paren ?{)))) + (when (= savepos boi) ;; If the open brace was at boi, we're always ;; done. The c-beginning-of-statement-1 call *************** *** 2443,2452 **** (setq savepos nil)) (when (eq prev-paren ?{) ! (setcdr syms-tail (list (if at-bod ! 'defun-block-intro ! 'statement-block-intro))) ! (setq syms-tail (cdr syms-tail))) (when (and (not at-bod) savepos) ;; Loop if the brace wasn't at boi, and we didn't --- 5259,5268 ---- (setq savepos nil)) (when (eq prev-paren ?{) ! (c-add-syntax (if at-bod ! 'defun-block-intro ! 'statement-block-intro) ! nil)) (when (and (not at-bod) savepos) ;; Loop if the brace wasn't at boi, and we didn't *************** *** 2462,2472 **** (setq boi (c-point 'boi))))) ))) ! (while syms ! (c-add-syntax (car syms) (point)) ! (setq syms (cdr syms))) ! (if add-inexpr-stmt ! (c-add-syntax 'inexpr-statement)) ))) (defun c-add-class-syntax (symbol classkey paren-state) --- 5278,5291 ---- (setq boi (c-point 'boi))))) ))) ! ;; Fill in the current point as the anchor for all the symbols ! ;; added above. ! (let ((p c-syntactic-context)) ! (while (not (eq p syntax-last)) ! (if (cdr (car p)) ! (setcar (cdr (car p)) (point))) ! (setq p (cdr p)))) ! ))) (defun c-add-class-syntax (symbol classkey paren-state) *************** *** 2499,2507 **** --- 5318,5328 ---- ;; This function contains the decision tree reached through both ;; cases 18 and 10. It's a continued statement or top level ;; construct of some kind. + (let (special-brace-list) (goto-char indent-point) (skip-chars-forward " \t") + (cond ;; (CASE A removed.) ;; CASE B: open braces for class or brace-lists *************** *** 2509,2574 **** (or (and c-special-brace-lists (c-looking-at-special-brace-list)) (eq char-after-ip ?{))) (cond ;; CASE B.1: class-open ((save-excursion ! (goto-char indent-point) ! (skip-chars-forward " \t{") (let ((decl (c-search-uplist-for-classkey (c-parse-state)))) (and decl (setq beg-of-same-or-containing-stmt (aref decl 0))) )) (c-add-syntax 'class-open beg-of-same-or-containing-stmt)) ;; CASE B.2: brace-list-open ((or (consp special-brace-list) (save-excursion (goto-char beg-of-same-or-containing-stmt) ! (looking-at "enum\\>[^_]")) ! (save-excursion ! (goto-char indent-point) ! (while (and (> (point) beg-of-same-or-containing-stmt) ! (= (c-backward-token-1 1 t) 0) ! (/= (char-after) ?=))) ! (eq (char-after) ?=))) ;; The most semantically accurate symbol here is ! ;; brace-list-open, but we report it simply as a statement-cont. ! ;; The reason is that one normally adjusts brace-list-open for ! ;; brace lists as top-level constructs, and brace lists inside ! ;; statements is a completely different context. (c-beginning-of-statement-1 containing-sexp) ! (c-add-stmt-syntax 'statement-cont nil containing-sexp paren-state)) ;; CASE B.3: The body of a function declared inside a normal ;; block. Can occur e.g. in Pike and when using gcc ;; extensions. Might also trigger it with some macros followed ;; by blocks, and this gives sane indentation then too. ! ;; C.f. cases 16F and 17G. ! ((progn ! (goto-char indent-point) ! (and (not (c-looking-at-bos)) ! (eq (c-beginning-of-statement-1 containing-sexp nil nil t) ! 'same))) ! (c-add-stmt-syntax 'defun-open t containing-sexp paren-state)) ;; CASE B.4: Continued statement with block open. (t (goto-char beg-of-same-or-containing-stmt) ! (c-add-stmt-syntax 'statement-cont nil containing-sexp paren-state) (c-add-syntax 'block-open)) )) ;; CASE C: iostream insertion or extraction operator ! ((and (looking-at "<<\\|>>") (save-excursion (goto-char beg-of-same-or-containing-stmt) ! (while (and (re-search-forward "<<\\|>>" indent-point 'move) ! (c-in-literal beg-of-same-or-containing-stmt))) ! ;; if we ended up at indent-point, then the first streamop is on a ! ;; separate line. Indent the line like a statement-cont instead ! (when (/= (point) indent-point) (c-add-syntax 'stream-op (c-point 'boi)) t)))) ;; CASE D: continued statement. (t (c-beginning-of-statement-1 containing-sexp) ! (c-add-stmt-syntax 'statement-cont nil containing-sexp paren-state)) ))) (defun c-guess-basic-syntax () --- 5330,5424 ---- (or (and c-special-brace-lists (c-looking-at-special-brace-list)) (eq char-after-ip ?{))) + (cond ;; CASE B.1: class-open ((save-excursion ! (skip-chars-forward "{") (let ((decl (c-search-uplist-for-classkey (c-parse-state)))) (and decl (setq beg-of-same-or-containing-stmt (aref decl 0))) )) (c-add-syntax 'class-open beg-of-same-or-containing-stmt)) + ;; CASE B.2: brace-list-open ((or (consp special-brace-list) (save-excursion (goto-char beg-of-same-or-containing-stmt) ! (c-syntactic-re-search-forward "=\\([^=]\\|$\\)" ! indent-point t t t))) ;; The most semantically accurate symbol here is ! ;; brace-list-open, but we normally report it simply as a ! ;; statement-cont. The reason is that one normally adjusts ! ;; brace-list-open for brace lists as top-level constructs, ! ;; and brace lists inside statements is a completely different ! ;; context. C.f. case 5A.3. (c-beginning-of-statement-1 containing-sexp) ! (c-add-stmt-syntax (if c-auto-newline-analysis ! ;; Turn off the dwim above when we're ! ;; analyzing the nature of the brace ! ;; for the auto newline feature. ! 'brace-list-open ! 'statement-cont) ! nil nil nil ! containing-sexp paren-state)) ! ;; CASE B.3: The body of a function declared inside a normal ;; block. Can occur e.g. in Pike and when using gcc ;; extensions. Might also trigger it with some macros followed ;; by blocks, and this gives sane indentation then too. ! ;; C.f. cases E, 16F and 17G. ! ((and (not (c-looking-at-bos)) ! (eq (c-beginning-of-statement-1 containing-sexp nil nil t) ! 'same)) ! (c-add-stmt-syntax 'defun-open nil t nil ! containing-sexp paren-state)) ! ;; CASE B.4: Continued statement with block open. (t (goto-char beg-of-same-or-containing-stmt) ! (c-add-stmt-syntax 'statement-cont nil nil nil ! containing-sexp paren-state) (c-add-syntax 'block-open)) )) + ;; CASE C: iostream insertion or extraction operator ! ((and (looking-at "\\(<<\\|>>\\)\\([^=]\\|$\\)") (save-excursion (goto-char beg-of-same-or-containing-stmt) ! ;; If there is no preceding streamop in the statement ! ;; then indent this line as a normal statement-cont. ! (when (c-syntactic-re-search-forward ! "\\(<<\\|>>\\)\\([^=]\\|$\\)" indent-point 'move t t) (c-add-syntax 'stream-op (c-point 'boi)) t)))) + + ;; CASE E: In the "K&R region" of a function declared inside a + ;; normal block. C.f. case B.3. + ((and (save-excursion + ;; Check that the next token is a '{'. This works as + ;; long as no language that allows nested function + ;; definitions doesn't allow stuff like member init + ;; lists, K&R declarations or throws clauses there. + ;; + ;; Note that we do a forward search for something ahead + ;; of the indentation line here. That's not good since + ;; the user might not have typed it yet. Unfortunately + ;; it's exceedingly tricky to recognize a function + ;; prototype in a code block without resorting to this. + (c-forward-syntactic-ws) + (eq (char-after) ?{)) + (not (c-looking-at-bos)) + (eq (c-beginning-of-statement-1 containing-sexp nil nil t) + 'same)) + (c-add-stmt-syntax 'func-decl-cont nil t nil + containing-sexp paren-state)) + ;; CASE D: continued statement. (t (c-beginning-of-statement-1 containing-sexp) ! (c-add-stmt-syntax 'statement-cont nil nil nil ! containing-sexp paren-state)) ))) (defun c-guess-basic-syntax () *************** *** 2580,2595 **** (case-fold-search nil) (paren-state (c-parse-state)) literal containing-sexp char-before-ip char-after-ip lim ! syntax placeholder c-in-literal-cache step-type tmpsymbol keyword injava-inher special-brace-list ;; narrow out any enclosing class or extern "C" block (inclass-p (c-narrow-out-enclosing-class paren-state indent-point)) ! ;; c-state-cache is shadowed here. That means we must ! ;; not do any changes during the execution of this ! ;; function, since c-check-state-cache then would change ! ;; this local variable and leave a bogus value in the ! ;; global one. (c-state-cache (if inclass-p (c-whack-state-before (point-min) paren-state) paren-state)) --- 5430,5446 ---- (case-fold-search nil) (paren-state (c-parse-state)) literal containing-sexp char-before-ip char-after-ip lim ! c-syntactic-context placeholder c-in-literal-cache step-type tmpsymbol keyword injava-inher special-brace-list ;; narrow out any enclosing class or extern "C" block (inclass-p (c-narrow-out-enclosing-class paren-state indent-point)) ! ;; `c-state-cache' is shadowed here so that we don't ! ;; throw it away due to the narrowing that might be done ! ;; by the function above. That means we must not do any ! ;; changes during the execution of this function, since ! ;; `c-invalidate-state-cache' then would change this local ! ;; variable and leave a bogus value in the global one. (c-state-cache (if inclass-p (c-whack-state-before (point-min) paren-state) paren-state)) *************** *** 2599,2621 **** ;; a relpos. It's stored in syntactic-relpos. syntactic-relpos (c-stmt-delim-chars c-stmt-delim-chars)) ! ;; check for meta top-level enclosing constructs, possible ! ;; extern language definitions, possibly (in C++) namespace ! ;; definitions. (save-excursion (save-restriction (widen) ! (if (and inclass-p ! (progn ! (goto-char (aref inclass-p 0)) ! (looking-at c-other-decl-block-key))) ! (let ((enclosing (match-string 1))) ! (cond ! ((string-equal enclosing "extern") ! (setq inenclosing-p 'extern)) ! ((string-equal enclosing "namespace") ! (setq inenclosing-p 'namespace)) ! ))))) ;; Init some position variables: ;; --- 5450,5469 ---- ;; a relpos. It's stored in syntactic-relpos. syntactic-relpos (c-stmt-delim-chars c-stmt-delim-chars)) ! ;; Check for meta top-level enclosing constructs such as ! ;; extern language definitions. (save-excursion (save-restriction (widen) ! (when (and inclass-p ! (progn ! (goto-char (aref inclass-p 0)) ! (looking-at c-other-decl-block-key))) ! (setq inenclosing-p (match-string 1)) ! (if (string-equal inenclosing-p "extern") ! ;; Compatibility with legacy choice of name for the ! ;; extern-lang syntactic symbols. ! (setq inenclosing-p "extern-lang"))))) ;; Init some position variables: ;; *************** *** 2682,2689 **** ((eq literal 'string) (c-add-syntax 'string (c-point 'bopl))) ;; CASE 2: in a C or C++ style comment. ! ((memq literal '(c c++)) ! (c-add-syntax literal (car (c-literal-limits lim)))) ;; CASE 3: in a cpp preprocessor macro continuation. ((and (save-excursion (when (c-beginning-of-macro) --- 5530,5546 ---- ((eq literal 'string) (c-add-syntax 'string (c-point 'bopl))) ;; CASE 2: in a C or C++ style comment. ! ((and (memq literal '(c c++)) ! ;; This is a kludge for XEmacs where we use ! ;; `buffer-syntactic-context', which doesn't correctly ! ;; recognize "\*/" to end a block comment. ! ;; `parse-partial-sexp' which is used by ! ;; `c-literal-limits' will however do that in most ! ;; versions, which results in that we get nil from ! ;; `c-literal-limits' even when `c-in-literal' claims ! ;; we're inside a comment. ! (setq placeholder (c-literal-limits lim))) ! (c-add-syntax literal (car placeholder))) ;; CASE 3: in a cpp preprocessor macro continuation. ((and (save-excursion (when (c-beginning-of-macro) *************** *** 2712,2718 **** ;; CASE 11: an else clause? ((looking-at "else\\>[^_]") (c-beginning-of-statement-1 containing-sexp) ! (c-add-stmt-syntax 'else-clause t containing-sexp paren-state)) ;; CASE 12: while closure of a do/while construct? ((and (looking-at "while\\>[^_]") (save-excursion --- 5569,5576 ---- ;; CASE 11: an else clause? ((looking-at "else\\>[^_]") (c-beginning-of-statement-1 containing-sexp) ! (c-add-stmt-syntax 'else-clause nil t nil ! containing-sexp paren-state)) ;; CASE 12: while closure of a do/while construct? ((and (looking-at "while\\>[^_]") (save-excursion *************** *** 2720,2726 **** 'beginning) (setq placeholder (point))))) (goto-char placeholder) ! (c-add-stmt-syntax 'do-while-closure t containing-sexp paren-state)) ;; CASE 13: A catch or finally clause? This case is simpler ;; than if-else and do-while, because a block is required ;; after every try, catch and finally. --- 5578,5585 ---- 'beginning) (setq placeholder (point))))) (goto-char placeholder) ! (c-add-stmt-syntax 'do-while-closure nil t nil ! containing-sexp paren-state)) ;; CASE 13: A catch or finally clause? This case is simpler ;; than if-else and do-while, because a block is required ;; after every try, catch and finally. *************** *** 2742,2752 **** (looking-at "\\(try\\|catch\\)\\>[^_]") (setq placeholder (point)))) (goto-char placeholder) ! (c-add-stmt-syntax 'catch-clause t containing-sexp paren-state)) ;; CASE 18: A substatement we can recognize by keyword. ((save-excursion (and c-opt-block-stmt-key ! (not (eq char-before-ip ?\;)) (not (memq char-after-ip '(?\) ?\] ?,))) (or (not (eq char-before-ip ?})) (c-looking-at-inexpr-block-backward c-state-cache)) --- 5601,5614 ---- (looking-at "\\(try\\|catch\\)\\>[^_]") (setq placeholder (point)))) (goto-char placeholder) ! (c-add-stmt-syntax 'catch-clause nil t nil ! containing-sexp paren-state)) ;; CASE 18: A substatement we can recognize by keyword. ((save-excursion (and c-opt-block-stmt-key ! (if (c-mode-is-new-awk-p) ! (c-awk-prev-line-incomplete-p containing-sexp) ; ACM 2002/3/29 ! (not (eq char-before-ip ?\;))) (not (memq char-after-ip '(?\) ?\] ?,))) (or (not (eq char-before-ip ?})) (c-looking-at-inexpr-block-backward c-state-cache)) *************** *** 2780,2786 **** ;; Necessary to catch e.g. synchronized in Java, ;; which can be used both as statement and ;; modifier. ! (and (= (c-forward-token-1 1 nil) 0) (eq (char-after) ?\()) (looking-at c-opt-block-stmt-key)))) (if (eq step-type 'up) --- 5642,5648 ---- ;; Necessary to catch e.g. synchronized in Java, ;; which can be used both as statement and ;; modifier. ! (and (zerop (c-forward-token-2 1 nil)) (eq (char-after) ?\()) (looking-at c-opt-block-stmt-key)))) (if (eq step-type 'up) *************** *** 2789,2804 **** (goto-char placeholder) (cond ((eq char-after-ip ?{) ! (c-add-stmt-syntax 'substatement-open nil containing-sexp paren-state)) ((save-excursion (goto-char indent-point) (back-to-indentation) (looking-at c-label-key)) ! (c-add-stmt-syntax 'substatement-label nil containing-sexp paren-state)) (t ! (c-add-stmt-syntax 'substatement nil containing-sexp paren-state)))) ;; CASE 18B: Some other substatement. This is shared ;; with case 10. --- 5651,5666 ---- (goto-char placeholder) (cond ((eq char-after-ip ?{) ! (c-add-stmt-syntax 'substatement-open nil nil nil containing-sexp paren-state)) ((save-excursion (goto-char indent-point) (back-to-indentation) (looking-at c-label-key)) ! (c-add-stmt-syntax 'substatement-label nil nil nil containing-sexp paren-state)) (t ! (c-add-stmt-syntax 'substatement nil nil nil containing-sexp paren-state)))) ;; CASE 18B: Some other substatement. This is shared ;; with case 10. *************** *** 2829,2835 **** 'lambda-intro-cont))) (goto-char (cdr placeholder)) (back-to-indentation) ! (c-add-stmt-syntax tmpsymbol t (c-most-enclosing-brace c-state-cache (point)) (c-whack-state-after (point) paren-state)) (unless (eq (point) (cdr placeholder)) --- 5691,5697 ---- 'lambda-intro-cont))) (goto-char (cdr placeholder)) (back-to-indentation) ! (c-add-stmt-syntax tmpsymbol nil t nil (c-most-enclosing-brace c-state-cache (point)) (c-whack-state-after (point) paren-state)) (unless (eq (point) (cdr placeholder)) *************** *** 2844,2865 **** (c-looking-at-special-brace-list)) (eq char-after-ip ?{))) (cond ! ;; CASE 5A.1: extern language or namespace construct ((save-excursion (goto-char indent-point) (skip-chars-forward " \t") ! (and (c-safe (progn (c-backward-sexp 2) t)) (looking-at c-other-decl-block-key) (setq keyword (match-string 1) placeholder (point)) ! (or (and (string-equal keyword "namespace") ! (setq tmpsymbol 'namespace-open)) ! (and (string-equal keyword "extern") ! (progn ! (c-forward-sexp 1) ! (c-forward-syntactic-ws) ! (eq (char-after) ?\")) ! (setq tmpsymbol 'extern-lang-open))) )) (goto-char placeholder) (c-add-syntax tmpsymbol (c-point 'boi))) --- 5706,5729 ---- (c-looking-at-special-brace-list)) (eq char-after-ip ?{))) (cond ! ;; CASE 5A.1: Non-class declaration block open. ((save-excursion (goto-char indent-point) (skip-chars-forward " \t") ! (and (c-safe (c-backward-sexp 2) t) (looking-at c-other-decl-block-key) (setq keyword (match-string 1) placeholder (point)) ! (if (string-equal keyword "extern") ! ;; Special case for extern-lang-open. The ! ;; check for a following string is disabled ! ;; since it doesn't disambiguate anything. ! (and ;;(progn ! ;; (c-forward-sexp 1) ! ;; (c-forward-syntactic-ws) ! ;; (eq (char-after) ?\")) ! (setq tmpsymbol 'extern-lang-open)) ! (setq tmpsymbol (intern (concat keyword "-open")))) )) (goto-char placeholder) (c-add-syntax tmpsymbol (c-point 'boi))) *************** *** 2874,2903 **** (c-add-syntax 'class-open placeholder)) ;; CASE 5A.3: brace list open ((save-excursion ! (c-beginning-of-statement-1 lim t) ! (if (looking-at "typedef\\>[^_]") ! (progn (c-forward-sexp 1) ! (c-forward-syntactic-ws indent-point))) (setq placeholder (c-point 'boi)) (or (consp special-brace-list) (and (or (save-excursion (goto-char indent-point) (setq tmpsymbol nil) (while (and (> (point) placeholder) ! (= (c-backward-token-1 1 t) 0) (/= (char-after) ?=)) ! (if (and (not tmpsymbol) ! (looking-at "new\\>[^_]")) ! (setq tmpsymbol 'topmost-intro-cont))) (eq (char-after) ?=)) ! (looking-at "enum\\>[^_]")) (save-excursion (while (and (< (point) indent-point) ! (= (c-forward-token-1 1 t) 0) (not (memq (char-after) '(?\; ?\())))) (not (memq (char-after) '(?\; ?\())) )))) ! (if (and (c-major-mode-is 'java-mode) (eq tmpsymbol 'topmost-intro-cont)) ;; We're in Java and have found that the open brace ;; belongs to a "new Foo[]" initialization list, --- 5738,5769 ---- (c-add-syntax 'class-open placeholder)) ;; CASE 5A.3: brace list open ((save-excursion ! (c-beginning-of-decl-1 lim) ! (while (looking-at c-specifier-key) ! (goto-char (match-end 1)) ! (c-forward-syntactic-ws indent-point)) (setq placeholder (c-point 'boi)) (or (consp special-brace-list) (and (or (save-excursion (goto-char indent-point) (setq tmpsymbol nil) (while (and (> (point) placeholder) ! (zerop (c-backward-token-2 1 t)) (/= (char-after) ?=)) ! (and c-opt-inexpr-brace-list-key ! (not tmpsymbol) ! (looking-at c-opt-inexpr-brace-list-key) ! (setq tmpsymbol 'topmost-intro-cont))) (eq (char-after) ?=)) ! (looking-at c-brace-list-key)) (save-excursion (while (and (< (point) indent-point) ! (zerop (c-forward-token-2 1 t)) (not (memq (char-after) '(?\; ?\())))) (not (memq (char-after) '(?\; ?\())) )))) ! (if (and (not c-auto-newline-analysis) ! (c-major-mode-is 'java-mode) (eq tmpsymbol 'topmost-intro-cont)) ;; We're in Java and have found that the open brace ;; belongs to a "new Foo[]" initialization list, *************** *** 2906,2912 **** ;; therefore treat it as any topmost continuation ;; even though the semantically correct symbol still ;; is brace-list-open, on the same grounds as in ! ;; case 10B.2. (progn (c-beginning-of-statement-1 lim) (c-add-syntax 'topmost-intro-cont (c-point 'boi))) --- 5772,5778 ---- ;; therefore treat it as any topmost continuation ;; even though the semantically correct symbol still ;; is brace-list-open, on the same grounds as in ! ;; case B.2. (progn (c-beginning-of-statement-1 lim) (c-add-syntax 'topmost-intro-cont (c-point 'boi))) *************** *** 2924,2930 **** (c-add-syntax 'defun-open (c-point 'bol))) ))) ;; CASE 5B: first K&R arg decl or member init ! ((c-just-after-func-arglist-p nil lim) (cond ;; CASE 5B.1: a member init ((or (eq char-before-ip ?:) --- 5790,5796 ---- (c-add-syntax 'defun-open (c-point 'bol))) ))) ;; CASE 5B: first K&R arg decl or member init ! ((c-just-after-func-arglist-p lim) (cond ;; CASE 5B.1: a member init ((or (eq char-before-ip ?:) *************** *** 2976,2987 **** (when (eq char-after-ip ?,) (skip-chars-forward " \t") (forward-char)) ! (looking-at c-opt-decl-spec-key))) (and (or (eq char-before-ip ?:) ;; watch out for scope operator (save-excursion (and (eq char-after-ip ?:) ! (c-safe (progn (forward-char 1) t)) (not (eq (char-after) ?:)) ))) (save-excursion --- 5842,5853 ---- (when (eq char-after-ip ?,) (skip-chars-forward " \t") (forward-char)) ! (looking-at c-opt-postfix-decl-spec-key))) (and (or (eq char-before-ip ?:) ;; watch out for scope operator (save-excursion (and (eq char-after-ip ?:) ! (c-safe (forward-char 1) t) (not (eq (char-after) ?:)) ))) (save-excursion *************** *** 3000,3006 **** cont done) (save-excursion (while (not done) ! (cond ((looking-at c-opt-decl-spec-key) (setq injava-inher (cons cont (point)) done t)) ((or (not (c-safe (c-forward-sexp -1) t)) --- 5866,5872 ---- cont done) (save-excursion (while (not done) ! (cond ((looking-at c-opt-postfix-decl-spec-key) (setq injava-inher (cons cont (point)) done t)) ((or (not (c-safe (c-forward-sexp -1) t)) *************** *** 3057,3076 **** (save-excursion ;; Note: We use the fact that lim is always after any ;; preceding brace sexp. ! (while (and (= (c-backward-token-1 1 t lim) 0) (not (looking-at "[;<,=]")))) (or (memq (char-after) '(?, ?=)) (and (c-major-mode-is 'c++-mode) ! (= (c-backward-token-1 1 nil lim) 0) (eq (char-after) ?<))))) (goto-char indent-point) ! (c-beginning-of-member-init-list lim) (cond ;; CASE 5D.1: hanging member init colon, but watch out ;; for bogus matches on access specifiers inside classes. ! ((and (save-excursion (setq placeholder (point)) ! (c-backward-token-1 1 t lim) (and (eq (char-after) ?:) (not (eq (char-before) ?:)))) (save-excursion --- 5923,5944 ---- (save-excursion ;; Note: We use the fact that lim is always after any ;; preceding brace sexp. ! (while (and (zerop (c-backward-token-2 1 t lim)) (not (looking-at "[;<,=]")))) (or (memq (char-after) '(?, ?=)) (and (c-major-mode-is 'c++-mode) ! (zerop (c-backward-token-2 1 nil lim)) (eq (char-after) ?<))))) (goto-char indent-point) ! (setq placeholder ! (c-beginning-of-member-init-list lim)) (cond ;; CASE 5D.1: hanging member init colon, but watch out ;; for bogus matches on access specifiers inside classes. ! ((and placeholder ! (save-excursion (setq placeholder (point)) ! (c-backward-token-2 1 t lim) (and (eq (char-after) ?:) (not (eq (char-before) ?:)))) (save-excursion *************** *** 3118,3129 **** (c-beginning-of-statement-1 lim) (setq placeholder (point)) (if (looking-at "static\\>[^_]") ! (c-forward-token-1 1 nil indent-point)) (and (looking-at c-class-key) ! (= (c-forward-token-1 2 nil indent-point) 0) (if (eq (char-after) ?<) (c-with-syntax-table c++-template-syntax-table ! (= (c-forward-token-1 1 t indent-point) 0)) t) (eq (char-after) ?:)))) (goto-char placeholder) --- 5986,5997 ---- (c-beginning-of-statement-1 lim) (setq placeholder (point)) (if (looking-at "static\\>[^_]") ! (c-forward-token-2 1 nil indent-point)) (and (looking-at c-class-key) ! (zerop (c-forward-token-2 2 nil indent-point)) (if (eq (char-after) ?<) (c-with-syntax-table c++-template-syntax-table ! (zerop (c-forward-token-2 1 t indent-point))) t) (eq (char-after) ?:)))) (goto-char placeholder) *************** *** 3144,3150 **** ;; the first variable declaration. C.f. case 5N. 'topmost-intro-cont 'statement-cont) ! nil containing-sexp paren-state)) )) ;; CASE 5E: we are looking at a access specifier ((and inclass-p --- 6012,6018 ---- ;; the first variable declaration. C.f. case 5N. 'topmost-intro-cont 'statement-cont) ! nil nil nil containing-sexp paren-state)) )) ;; CASE 5E: we are looking at a access specifier ((and inclass-p *************** *** 3153,3166 **** (setq placeholder (c-add-class-syntax 'inclass inclass-p paren-state)) ;; Append access-label with the same anchor point as inclass gets. ! (nconc syntax (list (cons 'access-label placeholder)))) ! ;; CASE 5F: extern-lang-close or namespace-close? ((and inenclosing-p (eq char-after-ip ?})) ! (setq tmpsymbol (if (eq inenclosing-p 'extern) ! 'extern-lang-close ! 'namespace-close)) ! (c-add-syntax tmpsymbol (aref inclass-p 0))) ;; CASE 5G: we are looking at the brace which closes the ;; enclosing nested class decl ((and inclass-p --- 6021,6032 ---- (setq placeholder (c-add-class-syntax 'inclass inclass-p paren-state)) ;; Append access-label with the same anchor point as inclass gets. ! (c-append-syntax 'access-label placeholder)) ! ;; CASE 5F: Close of a non-class declaration level block. ((and inenclosing-p (eq char-after-ip ?})) ! (c-add-syntax (intern (concat inenclosing-p "-close")) ! (aref inclass-p 0))) ;; CASE 5G: we are looking at the brace which closes the ;; enclosing nested class decl ((and inclass-p *************** *** 3169,3175 **** (save-restriction (widen) (forward-char 1) ! (and (c-safe (progn (c-backward-sexp 1) t)) (= (point) (aref inclass-p 1)) )))) (c-add-class-syntax 'class-close inclass-p paren-state)) --- 6035,6041 ---- (save-restriction (widen) (forward-char 1) ! (and (c-safe (c-backward-sexp 1) t) (= (point) (aref inclass-p 1)) )))) (c-add-class-syntax 'class-close inclass-p paren-state)) *************** *** 3193,3198 **** --- 6059,6075 ---- (looking-at c-opt-method-key)) (c-beginning-of-statement-1 lim) (c-add-syntax 'objc-method-intro (c-point 'boi))) + ;; CASE 5P: AWK pattern or function or continuation + ;; thereof. + ((c-mode-is-new-awk-p) + (setq placeholder (point)) + (c-add-stmt-syntax + (if (and (eq (c-beginning-of-statement-1) 'same) + (/= (point) placeholder)) + 'topmost-intro-cont + 'topmost-intro) + nil nil nil + containing-sexp paren-state)) ;; CASE 5N: At a variable declaration that follows a class ;; definition or some other block declaration that doesn't ;; end at the closing '}'. C.f. case 5D.5. *************** *** 3212,3218 **** (c-end-of-decl-1) (> (point) indent-point)))))) (goto-char placeholder) ! (c-add-stmt-syntax 'topmost-intro-cont nil containing-sexp paren-state)) ;; CASE 5J: we are at the topmost level, make ;; sure we skip back past any access specifiers --- 6089,6095 ---- (c-end-of-decl-1) (> (point) indent-point)))))) (goto-char placeholder) ! (c-add-stmt-syntax 'topmost-intro-cont nil nil nil containing-sexp paren-state)) ;; CASE 5J: we are at the topmost level, make ;; sure we skip back past any access specifiers *************** *** 3221,3232 **** c-opt-access-key (not (bobp)) (save-excursion ! (c-safe (progn (c-backward-sexp 1) t)) (looking-at c-opt-access-key))) (c-backward-sexp 1) (c-backward-syntactic-ws lim)) (or (bobp) ! (memq (char-before) '(?\; ?})) (and (c-major-mode-is 'objc-mode) (progn (c-beginning-of-statement-1 lim) --- 6098,6111 ---- c-opt-access-key (not (bobp)) (save-excursion ! (c-safe (c-backward-sexp 1) t) (looking-at c-opt-access-key))) (c-backward-sexp 1) (c-backward-syntactic-ws lim)) (or (bobp) ! (if (c-mode-is-new-awk-p) ! (not (c-awk-prev-line-incomplete-p)) ! (memq (char-before) '(?\; ?}))) (and (c-major-mode-is 'objc-mode) (progn (c-beginning-of-statement-1 lim) *************** *** 3243,3254 **** (goto-char (aref inclass-p 1)) (or (= (point) (c-point 'boi)) (goto-char (aref inclass-p 0))) ! (cond ! ((eq inenclosing-p 'extern) ! (c-add-syntax 'inextern-lang (c-point 'boi))) ! ((eq inenclosing-p 'namespace) ! (c-add-syntax 'innamespace (c-point 'boi))) ! (t (c-add-class-syntax 'inclass inclass-p paren-state))) )) (when (and c-syntactic-indentation-in-macros macro-start --- 6122,6131 ---- (goto-char (aref inclass-p 1)) (or (= (point) (c-point 'boi)) (goto-char (aref inclass-p 0))) ! (if inenclosing-p ! (c-add-syntax (intern (concat "in" inenclosing-p)) ! (c-point 'boi)) ! (c-add-class-syntax 'inclass inclass-p paren-state)) )) (when (and c-syntactic-indentation-in-macros macro-start *************** *** 3284,3299 **** (c-looking-at-special-brace-list))) (eq (char-after containing-sexp) ?{))) (cond ! ;; CASE 7A: we are looking at the arglist closing paren ((memq char-after-ip '(?\) ?\])) (goto-char containing-sexp) (setq placeholder (c-point 'boi)) ! (when (and (c-safe (backward-up-list 1) t) ! (> (point) placeholder)) ! (forward-char) ! (skip-chars-forward " \t") ! (setq placeholder (point))) ! (c-add-syntax 'arglist-close placeholder)) ;; CASE 7B: Looking at the opening brace of an ;; in-expression block or brace list. C.f. cases 4, 16A ;; and 17E. --- 6161,6180 ---- (c-looking-at-special-brace-list))) (eq (char-after containing-sexp) ?{))) (cond ! ;; CASE 7A: we are looking at the arglist closing paren. ! ;; C.f. case 7F. ((memq char-after-ip '(?\) ?\])) (goto-char containing-sexp) (setq placeholder (c-point 'boi)) ! (if (and (c-safe (backward-up-list 1) t) ! (> (point) placeholder)) ! (progn ! (forward-char) ! (skip-chars-forward " \t")) ! (goto-char placeholder)) ! (c-add-stmt-syntax 'arglist-close (list containing-sexp) t nil ! (c-most-enclosing-brace paren-state (point)) ! (c-whack-state-after (point) paren-state))) ;; CASE 7B: Looking at the opening brace of an ;; in-expression block or brace list. C.f. cases 4, 16A ;; and 17E. *************** *** 3315,3321 **** ))) (goto-char placeholder) (back-to-indentation) ! (c-add-stmt-syntax (car tmpsymbol) t (c-most-enclosing-brace paren-state (point)) (c-whack-state-after (point) paren-state)) (if (/= (point) placeholder) --- 6196,6202 ---- ))) (goto-char placeholder) (back-to-indentation) ! (c-add-stmt-syntax (car tmpsymbol) nil t nil (c-most-enclosing-brace paren-state (point)) (c-whack-state-after (point) paren-state)) (if (/= (point) placeholder) *************** *** 3336,3342 **** ;; these things as statements ((progn (goto-char containing-sexp) ! (and (c-safe (progn (c-forward-sexp -1) t)) (looking-at "\\[^_]"))) (goto-char (1+ containing-sexp)) (c-forward-syntactic-ws indent-point) --- 6217,6223 ---- ;; these things as statements ((progn (goto-char containing-sexp) ! (and (c-safe (c-forward-sexp -1) t) (looking-at "\\[^_]"))) (goto-char (1+ containing-sexp)) (c-forward-syntactic-ws indent-point) *************** *** 3359,3365 **** ;; but the preceding argument is on the same line as the ;; opening paren. This case includes multi-line ;; mathematical paren groupings, but we could be on a ! ;; for-list continuation line ((progn (goto-char (1+ containing-sexp)) (skip-chars-forward " \t") --- 6240,6246 ---- ;; but the preceding argument is on the same line as the ;; opening paren. This case includes multi-line ;; mathematical paren groupings, but we could be on a ! ;; for-list continuation line. C.f. case 7A. ((progn (goto-char (1+ containing-sexp)) (skip-chars-forward " \t") *************** *** 3367,3378 **** (not (looking-at "\\\\$")))) (goto-char containing-sexp) (setq placeholder (c-point 'boi)) ! (when (and (c-safe (backward-up-list 1) t) ! (> (point) placeholder)) ! (forward-char) ! (skip-chars-forward " \t") ! (setq placeholder (point))) ! (c-add-syntax 'arglist-cont-nonempty placeholder)) ;; CASE 7G: we are looking at just a normal arglist ;; continuation line (t (c-forward-syntactic-ws indent-point) --- 6248,6263 ---- (not (looking-at "\\\\$")))) (goto-char containing-sexp) (setq placeholder (c-point 'boi)) ! (if (and (c-safe (backward-up-list 1) t) ! (> (point) placeholder)) ! (progn ! (forward-char) ! (skip-chars-forward " \t")) ! (goto-char placeholder)) ! (c-add-stmt-syntax 'arglist-cont-nonempty (list containing-sexp) ! t nil ! (c-most-enclosing-brace c-state-cache (point)) ! (c-whack-state-after (point) paren-state))) ;; CASE 7G: we are looking at just a normal arglist ;; continuation line (t (c-forward-syntactic-ws indent-point) *************** *** 3383,3389 **** (save-excursion (goto-char indent-point) (skip-chars-forward " \t") ! (looking-at c-opt-decl-spec-key))) (goto-char indent-point) (skip-chars-forward " \t") (cond --- 6268,6274 ---- (save-excursion (goto-char indent-point) (skip-chars-forward " \t") ! (looking-at c-opt-postfix-decl-spec-key))) (goto-char indent-point) (skip-chars-forward " \t") (cond *************** *** 3400,3411 **** (c-add-syntax 'inher-cont (point)) ))) ;; CASE 9: we are inside a brace-list ! ((setq special-brace-list ! (or (and c-special-brace-lists ! (save-excursion ! (goto-char containing-sexp) ! (c-looking-at-special-brace-list))) ! (c-inside-bracelist-p containing-sexp paren-state))) (cond ;; CASE 9A: In the middle of a special brace list opener. ((and (consp special-brace-list) --- 6285,6297 ---- (c-add-syntax 'inher-cont (point)) ))) ;; CASE 9: we are inside a brace-list ! ((and (not (c-mode-is-new-awk-p)) ; Maybe this isn't needed (ACM, 2002/3/29) ! (setq special-brace-list ! (or (and c-special-brace-lists ! (save-excursion ! (goto-char containing-sexp) ! (c-looking-at-special-brace-list))) ! (c-inside-bracelist-p containing-sexp paren-state)))) (cond ;; CASE 9A: In the middle of a special brace list opener. ((and (consp special-brace-list) *************** *** 3418,3428 **** (if (and (bolp) (assoc 'statement-cont (setq placeholder (c-guess-basic-syntax)))) ! (setq syntax placeholder) (c-beginning-of-statement-1 (c-safe-position (1- containing-sexp) paren-state)) ! (c-forward-token-1 0) ! (if (looking-at "typedef\\>[^_]") (c-forward-token-1 1)) (c-add-syntax 'brace-list-open (c-point 'boi)))) ;; CASE 9B: brace-list-close brace ((if (consp special-brace-list) --- 6304,6316 ---- (if (and (bolp) (assoc 'statement-cont (setq placeholder (c-guess-basic-syntax)))) ! (setq c-syntactic-context placeholder) (c-beginning-of-statement-1 (c-safe-position (1- containing-sexp) paren-state)) ! (c-forward-token-2 0) ! (while (looking-at c-specifier-key) ! (goto-char (match-end 1)) ! (c-forward-syntactic-ws)) (c-add-syntax 'brace-list-open (c-point 'boi)))) ;; CASE 9B: brace-list-close brace ((if (consp special-brace-list) *************** *** 3438,3464 **** (eq (1+ (point)) (cdr (car special-brace-list)))) ;; We were before the special close char. (and (eq (char-after) (cdr (cdr special-brace-list))) ! (= (c-forward-token-1) 0) (eq (1+ (point)) (cdr (car special-brace-list))))))) ;; Normal brace list check. (and (eq char-after-ip ?}) ! (c-safe (progn (goto-char (c-up-list-backward (point))) ! t)) (= (point) containing-sexp))) (if (eq (point) (c-point 'boi)) (c-add-syntax 'brace-list-close (point)) (setq lim (c-most-enclosing-brace c-state-cache (point))) (c-beginning-of-statement-1 lim) ! (c-add-stmt-syntax 'brace-list-close t lim ! (c-whack-state-after (point) paren-state) ! t))) (t ;; Prepare for the rest of the cases below by going to the ;; token following the opening brace (if (consp special-brace-list) (progn (goto-char (car (car special-brace-list))) ! (c-forward-token-1 1 nil indent-point)) (goto-char containing-sexp)) (forward-char) (let ((start (point))) --- 6326,6350 ---- (eq (1+ (point)) (cdr (car special-brace-list)))) ;; We were before the special close char. (and (eq (char-after) (cdr (cdr special-brace-list))) ! (zerop (c-forward-token-2)) (eq (1+ (point)) (cdr (car special-brace-list))))))) ;; Normal brace list check. (and (eq char-after-ip ?}) ! (c-safe (goto-char (c-up-list-backward (point))) t) (= (point) containing-sexp))) (if (eq (point) (c-point 'boi)) (c-add-syntax 'brace-list-close (point)) (setq lim (c-most-enclosing-brace c-state-cache (point))) (c-beginning-of-statement-1 lim) ! (c-add-stmt-syntax 'brace-list-close nil t t lim ! (c-whack-state-after (point) paren-state)))) (t ;; Prepare for the rest of the cases below by going to the ;; token following the opening brace (if (consp special-brace-list) (progn (goto-char (car (car special-brace-list))) ! (c-forward-token-2 1 nil indent-point)) (goto-char containing-sexp)) (forward-char) (let ((start (point))) *************** *** 3475,3483 **** (c-add-syntax 'brace-list-intro (point)) (setq lim (c-most-enclosing-brace c-state-cache (point))) (c-beginning-of-statement-1 lim) ! (c-add-stmt-syntax 'brace-list-intro t lim ! (c-whack-state-after (point) paren-state) ! t))) ;; CASE 9D: this is just a later brace-list-entry or ;; brace-entry-open (t (if (or (eq char-after-ip ?{) --- 6361,6368 ---- (c-add-syntax 'brace-list-intro (point)) (setq lim (c-most-enclosing-brace c-state-cache (point))) (c-beginning-of-statement-1 lim) ! (c-add-stmt-syntax 'brace-list-intro nil t t lim ! (c-whack-state-after (point) paren-state)))) ;; CASE 9D: this is just a later brace-list-entry or ;; brace-entry-open (t (if (or (eq char-after-ip ?{) *************** *** 3491,3499 **** )) )))) ;; CASE 10: A continued statement or top level construct. ! ((and (not (memq char-before-ip '(?\; ?:))) ! (or (not (eq char-before-ip ?})) ! (c-looking-at-inexpr-block-backward c-state-cache)) (> (point) (save-excursion (c-beginning-of-statement-1 containing-sexp) --- 6376,6386 ---- )) )))) ;; CASE 10: A continued statement or top level construct. ! ((and (if (c-mode-is-new-awk-p) ! (c-awk-prev-line-incomplete-p containing-sexp) ; ACM 2002/3/29 ! (and (not (memq char-before-ip '(?\; ?:))) ! (or (not (eq char-before-ip ?})) ! (c-looking-at-inexpr-block-backward c-state-cache)))) (> (point) (save-excursion (c-beginning-of-statement-1 containing-sexp) *************** *** 3510,3516 **** (goto-char containing-sexp) (setq lim (c-most-enclosing-brace c-state-cache containing-sexp)) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax 'case-label t lim paren-state)) ;; CASE 15: any other label ((looking-at c-label-key) (goto-char containing-sexp) --- 6397,6404 ---- (goto-char containing-sexp) (setq lim (c-most-enclosing-brace c-state-cache containing-sexp)) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax 'case-label nil t nil ! lim paren-state)) ;; CASE 15: any other label ((looking-at c-label-key) (goto-char containing-sexp) *************** *** 3525,3531 **** 'case-label 'label))) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax tmpsymbol t lim paren-state)) ;; CASE 16: block close brace, possibly closing the defun or ;; the class ((eq char-after-ip ?}) --- 6413,6420 ---- 'case-label 'label))) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax tmpsymbol nil t nil ! lim paren-state)) ;; CASE 16: block close brace, possibly closing the defun or ;; the class ((eq char-after-ip ?}) *************** *** 3539,3545 **** ;; e.g. a macro argument. ((c-after-conditional) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax 'block-close t lim paren-state)) ;; CASE 16A: closing a lambda defun or an in-expression ;; block? C.f. cases 4, 7B and 17E. ((setq placeholder (c-looking-at-inexpr-block --- 6428,6435 ---- ;; e.g. a macro argument. ((c-after-conditional) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax 'block-close nil t nil ! lim paren-state)) ;; CASE 16A: closing a lambda defun or an in-expression ;; block? C.f. cases 4, 7B and 17E. ((setq placeholder (c-looking-at-inexpr-block *************** *** 3554,3566 **** (c-add-syntax tmpsymbol (point)) (goto-char (cdr placeholder)) (back-to-indentation) ! (c-add-stmt-syntax tmpsymbol t (c-most-enclosing-brace paren-state (point)) (c-whack-state-after (point) paren-state)) (if (/= (point) (cdr placeholder)) (c-add-syntax (car placeholder))))) ;; CASE 16B: does this close an inline or a function in ! ;; an extern block or namespace? ((setq placeholder (c-search-uplist-for-classkey paren-state)) (c-backward-to-decl-anchor lim) (back-to-indentation) --- 6444,6456 ---- (c-add-syntax tmpsymbol (point)) (goto-char (cdr placeholder)) (back-to-indentation) ! (c-add-stmt-syntax tmpsymbol nil t nil (c-most-enclosing-brace paren-state (point)) (c-whack-state-after (point) paren-state)) (if (/= (point) (cdr placeholder)) (c-add-syntax (car placeholder))))) ;; CASE 16B: does this close an inline or a function in ! ;; a non-class declaration level block? ((setq placeholder (c-search-uplist-for-classkey paren-state)) (c-backward-to-decl-anchor lim) (back-to-indentation) *************** *** 3584,3590 **** (back-to-indentation) (if (/= (point) containing-sexp) (goto-char placeholder)) ! (c-add-stmt-syntax 'defun-close t lim paren-state)) ;; CASE 16C: if there an enclosing brace that hasn't ;; been narrowed out by a class, then this is a ;; block-close. C.f. case 17H. --- 6474,6481 ---- (back-to-indentation) (if (/= (point) containing-sexp) (goto-char placeholder)) ! (c-add-stmt-syntax 'defun-close nil t nil ! lim paren-state)) ;; CASE 16C: if there an enclosing brace that hasn't ;; been narrowed out by a class, then this is a ;; block-close. C.f. case 17H. *************** *** 3603,3609 **** (goto-char containing-sexp) ;; c-backward-to-block-anchor not necessary here; those ;; situations are handled in case 16E above. ! (c-add-stmt-syntax 'block-close t lim paren-state))) ;; CASE 16D: find out whether we're closing a top-level ;; class or a defun (t --- 6494,6501 ---- (goto-char containing-sexp) ;; c-backward-to-block-anchor not necessary here; those ;; situations are handled in case 16E above. ! (c-add-stmt-syntax 'block-close nil t nil ! lim paren-state))) ;; CASE 16D: find out whether we're closing a top-level ;; class or a defun (t *************** *** 3634,3640 **** ;; CASE 17B: continued statement ((and (eq step-type 'same) (/= (point) indent-point)) ! (c-add-stmt-syntax 'statement-cont nil containing-sexp paren-state)) ;; CASE 17A: After a case/default label? ((progn --- 6526,6532 ---- ;; CASE 17B: continued statement ((and (eq step-type 'same) (/= (point) indent-point)) ! (c-add-stmt-syntax 'statement-cont nil nil nil containing-sexp paren-state)) ;; CASE 17A: After a case/default label? ((progn *************** *** 3646,3659 **** (c-add-stmt-syntax (if (eq char-after-ip ?{) 'statement-case-open 'statement-case-intro) ! t containing-sexp paren-state)) ;; CASE 17D: any old statement ((progn (while (eq step-type 'label) (setq step-type (c-beginning-of-statement-1 containing-sexp))) (eq step-type 'previous)) ! (c-add-stmt-syntax 'statement t containing-sexp paren-state) (if (eq char-after-ip ?{) (c-add-syntax 'block-open))) ;; CASE 17I: Inside a substatement block. --- 6538,6552 ---- (c-add-stmt-syntax (if (eq char-after-ip ?{) 'statement-case-open 'statement-case-intro) ! nil t nil containing-sexp paren-state)) ;; CASE 17D: any old statement ((progn (while (eq step-type 'label) (setq step-type (c-beginning-of-statement-1 containing-sexp))) (eq step-type 'previous)) ! (c-add-stmt-syntax 'statement nil t nil ! containing-sexp paren-state) (if (eq char-after-ip ?{) (c-add-syntax 'block-open))) ;; CASE 17I: Inside a substatement block. *************** *** 3664,3670 **** (setq lim (c-most-enclosing-brace paren-state containing-sexp)) (c-after-conditional)) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax 'statement-block-intro t lim paren-state) (if (eq char-after-ip ?{) (c-add-syntax 'block-open))) ;; CASE 17E: first statement in an in-expression block. --- 6557,6564 ---- (setq lim (c-most-enclosing-brace paren-state containing-sexp)) (c-after-conditional)) (c-backward-to-block-anchor lim) ! (c-add-stmt-syntax 'statement-block-intro nil t nil ! lim paren-state) (if (eq char-after-ip ?{) (c-add-syntax 'block-open))) ;; CASE 17E: first statement in an in-expression block. *************** *** 3680,3686 **** (c-add-syntax tmpsymbol (point)) (goto-char (cdr placeholder)) (back-to-indentation) ! (c-add-stmt-syntax tmpsymbol t (c-most-enclosing-brace c-state-cache (point)) (c-whack-state-after (point) paren-state)) (if (/= (point) (cdr placeholder)) --- 6574,6580 ---- (c-add-syntax tmpsymbol (point)) (goto-char (cdr placeholder)) (back-to-indentation) ! (c-add-stmt-syntax tmpsymbol nil t nil (c-most-enclosing-brace c-state-cache (point)) (c-whack-state-after (point) paren-state)) (if (/= (point) (cdr placeholder)) *************** *** 3691,3700 **** ;; statement in a top-level defun. we can tell this is it ;; if there are no enclosing braces that haven't been ;; narrowed out by a class (i.e. don't use bod here). - ;; However, we first check for statements that we can - ;; recognize by keywords. That increases the robustness in - ;; cases where statements are used on the top level, - ;; e.g. in macro definitions. ((save-excursion (save-restriction (widen) --- 6585,6590 ---- *************** *** 3715,3721 **** (back-to-indentation) (if (/= (point) containing-sexp) (goto-char placeholder)) ! (c-add-stmt-syntax 'defun-block-intro t lim paren-state)) ;; CASE 17H: First statement in a block. C.f. case 16C. (t ;; If the block is preceded by a case/switch label on the --- 6605,6612 ---- (back-to-indentation) (if (/= (point) containing-sexp) (goto-char placeholder)) ! (c-add-stmt-syntax 'defun-block-intro nil t nil ! lim paren-state)) ;; CASE 17H: First statement in a block. C.f. case 16C. (t ;; If the block is preceded by a case/switch label on the *************** *** 3731,3737 **** (goto-char containing-sexp) ;; c-backward-to-block-anchor not necessary here; those ;; situations are handled in case 17I above. ! (c-add-stmt-syntax 'statement-block-intro t lim paren-state)) (if (eq char-after-ip ?{) (c-add-syntax 'block-open))) )) --- 6622,6629 ---- (goto-char containing-sexp) ;; c-backward-to-block-anchor not necessary here; those ;; situations are handled in case 17I above. ! (c-add-stmt-syntax 'statement-block-intro nil t nil ! lim paren-state)) (if (eq char-after-ip ?{) (c-add-syntax 'block-open))) )) *************** *** 3741,3774 **** (skip-chars-forward " \t") ;; are we looking at a comment only line? (when (and (looking-at c-comment-start-regexp) ! (/= (c-forward-token-1 0 nil (c-point 'eol)) 0)) ! (c-add-syntax 'comment-intro)) ;; we might want to give additional offset to friends (in C++). (when (and c-opt-friend-key (looking-at c-opt-friend-key)) ! (c-add-syntax 'friend)) ;; Start of or a continuation of a preprocessor directive? (if (and macro-start (eq macro-start (c-point 'boi)) (not (and (c-major-mode-is 'pike-mode) (eq (char-after (1+ macro-start)) ?\")))) ! (c-add-syntax 'cpp-macro) (when (and c-syntactic-indentation-in-macros macro-start) (if in-macro-expr ! (when (or (< syntactic-relpos macro-start) ! (not (or (assq 'arglist-intro syntax) ! (assq 'arglist-cont syntax) ! (assq 'arglist-cont-nonempty syntax) ! (assq 'arglist-close syntax)))) ;; If inside a cpp expression, i.e. anywhere in a ;; cpp directive except a #define body, we only let ;; through the syntactic analysis that is internal ;; in the expression. That means the arglist ;; elements, if they are anchored inside the cpp ;; expression. ! (setq syntax `((cpp-macro-cont . ,macro-start)))) (when (and (eq macro-start syntactic-relpos) ! (not (assq 'cpp-define-intro syntax)) (save-excursion (goto-char macro-start) (or (not (c-forward-to-cpp-define-body)) --- 6633,6680 ---- (skip-chars-forward " \t") ;; are we looking at a comment only line? (when (and (looking-at c-comment-start-regexp) ! (/= (c-forward-token-2 0 nil (c-point 'eol)) 0)) ! (c-append-syntax 'comment-intro)) ;; we might want to give additional offset to friends (in C++). (when (and c-opt-friend-key (looking-at c-opt-friend-key)) ! (c-append-syntax 'friend)) ! ! ;; Set syntactic-relpos. ! (let ((p c-syntactic-context)) ! (while (and p ! (if (integerp (car-safe (cdr-safe (car p)))) ! (progn ! (setq syntactic-relpos (car (cdr (car p)))) ! nil) ! t)) ! (setq p (cdr p)))) ! ;; Start of or a continuation of a preprocessor directive? (if (and macro-start (eq macro-start (c-point 'boi)) (not (and (c-major-mode-is 'pike-mode) (eq (char-after (1+ macro-start)) ?\")))) ! (c-append-syntax 'cpp-macro) (when (and c-syntactic-indentation-in-macros macro-start) (if in-macro-expr ! (when (or ! (< syntactic-relpos macro-start) ! (not (or ! (assq 'arglist-intro c-syntactic-context) ! (assq 'arglist-cont c-syntactic-context) ! (assq 'arglist-cont-nonempty c-syntactic-context) ! (assq 'arglist-close c-syntactic-context)))) ;; If inside a cpp expression, i.e. anywhere in a ;; cpp directive except a #define body, we only let ;; through the syntactic analysis that is internal ;; in the expression. That means the arglist ;; elements, if they are anchored inside the cpp ;; expression. ! (setq c-syntactic-context nil) ! (c-add-syntax 'cpp-macro-cont macro-start)) (when (and (eq macro-start syntactic-relpos) ! (not (assq 'cpp-define-intro c-syntactic-context)) (save-excursion (goto-char macro-start) (or (not (c-forward-to-cpp-define-body)) *************** *** 3779,3791 **** ;; indentation of the #define body. (c-add-syntax 'cpp-define-intro))))) ;; return the syntax ! syntax)))) ! (defun c-echo-parsing-error (&optional quiet) ! (when (and c-report-syntactic-errors c-parsing-error (not quiet)) ! (c-benign-error "%s" c-parsing-error)) ! c-parsing-error) (defun c-evaluate-offset (offset langelem symbol) ;; offset can be a number, a function, a variable, a list, or one of --- 6685,6694 ---- ;; indentation of the #define body. (c-add-syntax 'cpp-define-intro))))) ;; return the syntax ! c-syntactic-context)))) ! ;; Indentation calculation. (defun c-evaluate-offset (offset langelem symbol) ;; offset can be a number, a function, a variable, a list, or one of *************** *** 3799,3805 **** ((eq offset '/) (/ (- c-basic-offset) 2)) ((numberp offset) offset) ((functionp offset) (c-evaluate-offset ! (funcall offset langelem) langelem symbol)) ((vectorp offset) offset) ((null offset) nil) ((listp offset) --- 6702,6711 ---- ((eq offset '/) (/ (- c-basic-offset) 2)) ((numberp offset) offset) ((functionp offset) (c-evaluate-offset ! (funcall offset ! (cons (car langelem) ! (car-safe (cdr langelem)))) ! langelem symbol)) ((vectorp offset) offset) ((null offset) nil) ((listp offset) *************** *** 3813,3822 **** (t (symbol-value offset)) )) ! (defun c-get-offset (langelem) ! "Get offset from LANGELEM which is a cons cell of the form: ! \(SYMBOL . RELPOS). The symbol is matched against `c-offsets-alist' ! and the offset found there is returned." (let* ((symbol (car langelem)) (match (assq symbol c-offsets-alist)) (offset (cdr-safe match))) --- 6719,6731 ---- (t (symbol-value offset)) )) ! (defun c-calc-offset (langelem) ! ;; Get offset from LANGELEM which is a list beginning with the ! ;; syntactic symbol and followed by any analysis data it provides. ! ;; That data may be zero or more elements, but if at least one is ! ;; given then the first is the relpos (or nil). The symbol is ! ;; matched against `c-offsets-alist' and the offset calculated from ! ;; that is returned. (let* ((symbol (car langelem)) (match (assq symbol c-offsets-alist)) (offset (cdr-safe match))) *************** *** 3832,3865 **** 0)) )) (defun c-get-syntactic-indentation (langelems) ! "Apply `c-get-offset' to a list of langelem cells to get the total ! syntactic indentation. The anchor position, whose column is used as a ! base for all the collected offsets, is taken from the first element ! with a relpos." ;; Note that topmost-intro always has a relpos at bol, for ;; historical reasons. It's often used together with other symbols ;; that has more sane positions. Since we always use the first ;; found relpos, we rely on that these other symbols always precede ;; topmost-intro in the LANGELEMS list. (let ((indent 0) anchor) ! (catch 'done ! (while langelems ! (let ((res (c-get-offset (car langelems)))) ! (if (vectorp res) ! (throw 'done (elt res 0)) ! (unless anchor ! (let ((relpos (cdr (car langelems)))) ! (if relpos ! (setq anchor relpos)))) ! (setq indent (+ indent res) ! langelems (cdr langelems))))) ! (+ indent ! (if anchor ! (save-excursion ! (goto-char anchor) ! (current-column)) ! 0))))) (cc-provide 'cc-engine) --- 6741,6796 ---- 0)) )) + (defun c-get-offset (langelem) + ;; This is a compatibility wrapper for `c-calc-offset' in case + ;; someone is calling it directly. It takes an old style syntactic + ;; element on the form (SYMBOL . RELPOS) and converts it to the new + ;; list form. + (if (cdr langelem) + (c-calc-offset (list (car langelem) (cdr langelem))) + (c-calc-offset langelem))) + (defun c-get-syntactic-indentation (langelems) ! ;; Calculate the syntactic indentation from a syntactic description ! ;; as returned by `c-guess-syntax'. ! ;; ;; Note that topmost-intro always has a relpos at bol, for ;; historical reasons. It's often used together with other symbols ;; that has more sane positions. Since we always use the first ;; found relpos, we rely on that these other symbols always precede ;; topmost-intro in the LANGELEMS list. (let ((indent 0) anchor) ! ! (while langelems ! (let* ((c-syntactic-element (car langelems)) ! (res (c-calc-offset c-syntactic-element))) ! ! (if (vectorp res) ! ;; Got an absolute column that overrides any indentation ! ;; we've collected so far, but not the relative ! ;; indentation we might get for the nested structures ! ;; further down the langelems list. ! (setq indent (elt res 0) ! anchor (point-min)) ; A position at column 0. ! ! ;; Got a relative change of the current calculated ! ;; indentation. ! (setq indent (+ indent res)) ! ! ;; Use the anchor position from the first syntactic ! ;; element with one. ! (unless anchor ! (let ((relpos (car-safe (cdr (car langelems))))) ! (if relpos ! (setq anchor relpos))))) ! ! (setq langelems (cdr langelems)))) ! ! (if anchor ! (+ indent (save-excursion ! (goto-char anchor) ! (current-column))) ! indent))) (cc-provide 'cc-engine) From MAILER-DAEMON Thu Jul 03 08:49:32 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3UH-0001HG-Bg for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:46:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3Pe-0008Ar-TI for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:42:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3Iy-0007DR-Jn for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:35:22 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fx-0006Hi-08 for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:09 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Ev-0005H8-SH for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-mode.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:46:56 -0000 Index: emacs/lisp/progmodes/cc-mode.el diff -c emacs/lisp/progmodes/cc-mode.el:1.26 emacs/lisp/progmodes/cc-mode.el:1.27 *** emacs/lisp/progmodes/cc-mode.el:1.26 Thu Jun 19 11:54:21 2003 --- emacs/lisp/progmodes/cc-mode.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ! ;;; cc-mode.el --- major mode for editing C, C++, Objective-C, and Java code ! ;; Copyright (C) 1985,1987,1992-2001,2003 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,10 ---- ! ;;; cc-mode.el --- major mode for editing C and similar languages ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 2003- Alan Mackenzie ! ;; 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 28,64 **** ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ! (defconst c-version "5.29" ! "CC Mode version number.") ;; NOTE: Read the commentary below for the right way to submit bug reports! ;; NOTE: See the accompanying texinfo manual for details on using this mode! ! ! ;;; Commentary: ;; This package provides GNU Emacs major modes for editing C, C++, ! ;; Objective-C, Java, IDL and Pike code. As of the latest Emacs and ! ;; XEmacs releases, it is the default package for editing these ! ;; languages. This package is called "CC Mode", and should be spelled ! ;; exactly this way. ;; CC Mode supports K&R and ANSI C, ANSI C++, Objective-C, Java, ! ;; CORBA's IDL, and Pike with a consistent indentation model across ! ;; all modes. This indentation model is intuitive and very flexible, ! ;; so that almost any desired style of indentation can be supported. ! ;; Installation, usage, and programming details are contained in an ! ;; accompanying texinfo manual. ;; CC Mode's immediate ancestors were, c++-mode.el, cplus-md.el, and ;; cplus-md1.el.. - ;; NOTE: This mode does not perform font-locking (a.k.a syntactic - ;; coloring, keyword highlighting, etc.) for any of the supported - ;; modes. Typically this is done by a package called font-lock.el - ;; which we do *not* maintain. You should contact the Emacs or XEmacs - ;; maintainers for questions about coloring or highlighting in any - ;; language mode. - ;; To submit bug reports, type "C-c C-b". These will be sent to ;; bug-gnu-emacs@gnu.org (mirrored as the Usenet newsgroup ;; gnu.emacs.bug) as well as bug-cc-mode@gnu.org, which directly --- 28,55 ---- ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ! ;;; Commentary: ;; NOTE: Read the commentary below for the right way to submit bug reports! ;; NOTE: See the accompanying texinfo manual for details on using this mode! ! ;; Note: The version string is in cc-defs. ;; This package provides GNU Emacs major modes for editing C, C++, ! ;; Objective-C, Java, CORBA's IDL, Pike and AWK code. As of the ! ;; latest Emacs and XEmacs releases, it is the default package for ! ;; editing these languages. This package is called "CC Mode", and ! ;; should be spelled exactly this way. ;; CC Mode supports K&R and ANSI C, ANSI C++, Objective-C, Java, ! ;; CORBA's IDL, Pike and AWK with a consistent indentation model ! ;; across all modes. This indentation model is intuitive and very ! ;; flexible, so that almost any desired style of indentation can be ! ;; supported. Installation, usage, and programming details are ! ;; contained in an accompanying texinfo manual. ;; CC Mode's immediate ancestors were, c++-mode.el, cplus-md.el, and ;; cplus-md1.el.. ;; To submit bug reports, type "C-c C-b". These will be sent to ;; bug-gnu-emacs@gnu.org (mirrored as the Usenet newsgroup ;; gnu.emacs.bug) as well as bug-cc-mode@gnu.org, which directly *************** *** 89,113 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) ! (cc-require 'cc-menus) (cc-require 'cc-vars) - (cc-require 'cc-langs) - (cc-require 'cc-styles) (cc-require 'cc-engine) (cc-require 'cc-cmds) (cc-require 'cc-align) ! ;; Silence the compiler. (cc-bytecomp-defvar comment-line-break-function) ; (X)Emacs 20+ (cc-bytecomp-defvar adaptive-fill-first-line-regexp) ; Emacs 20+ (cc-bytecomp-defun set-keymap-parents) ; XEmacs ;; Menu support for both XEmacs and Emacs. If you don't have easymenu ;; with your version of Emacs, you are incompatible! ! (require 'easymenu) ;; Other modes and packages which depend on CC Mode should do the --- 80,119 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) ! (cc-require-when-compile 'cc-langs) (cc-require 'cc-vars) (cc-require 'cc-engine) + (cc-require 'cc-styles) (cc-require 'cc-cmds) (cc-require 'cc-align) + (cc-require 'cc-menus) ! ;; SILENCE the compiler. (cc-bytecomp-defvar comment-line-break-function) ; (X)Emacs 20+ (cc-bytecomp-defvar adaptive-fill-first-line-regexp) ; Emacs 20+ (cc-bytecomp-defun set-keymap-parents) ; XEmacs + ;; We set these variables during mode init, yet we don't require + ;; font-lock. + (cc-bytecomp-defvar font-lock-defaults) + (cc-bytecomp-defvar font-lock-syntactic-keywords) + ;; Menu support for both XEmacs and Emacs. If you don't have easymenu ;; with your version of Emacs, you are incompatible! ! (cc-external-require 'easymenu) ! ! ;; Load cc-fonts first after font-lock is loaded, since it isn't ! ;; necessary until font locking is requested. ! (eval-after-load "font-lock" ! '(require 'cc-fonts)) ! ! ;; cc-langs isn't loaded when we're byte compiled, so add autoload ! ;; directives for the interface functions. ! (autoload 'c-make-init-lang-vars-fun "cc-langs") ! (autoload 'c-init-language-vars "cc-langs" nil nil 'macro) ;; Other modes and packages which depend on CC Mode should do the *************** *** 118,131 **** ;; ;; And in the major mode function: ;; ! ;; (c-initialize-cc-mode) (defun c-leave-cc-mode-mode () (setq c-buffer-is-cc-mode nil)) ;;;###autoload ! (defun c-initialize-cc-mode () (setq c-buffer-is-cc-mode t) (let ((initprop 'cc-mode-is-initialized) c-initialization-ok) (unless (get 'c-initialize-cc-mode initprop) --- 124,153 ---- ;; ;; And in the major mode function: ;; ! ;; (c-initialize-cc-mode t) ! ;; (c-init-language-vars some-mode) ! ;; (c-common-init 'some-mode) ; Or perhaps (c-basic-common-init 'some-mode) ! ;; ! ;; See cc-langs.el for further info. A small example of a derived mode ! ;; is also available at . (defun c-leave-cc-mode-mode () (setq c-buffer-is-cc-mode nil)) ;;;###autoload ! (defun c-initialize-cc-mode (&optional new-style-init) ! "Initialize CC Mode for use in the current buffer. ! If the optional NEW-STYLE-INIT is nil or left out then all necessary ! initialization to run CC Mode for the C language is done. Otherwise ! only some basic setup is done, and a call to `c-init-language-vars', ! is necessary too (which gives more control). See \"cc-mode.el\" for ! more info." ! ;; ! ;; This function does not do any hidden buffer changes. ! (setq c-buffer-is-cc-mode t) + (let ((initprop 'cc-mode-is-initialized) c-initialization-ok) (unless (get 'c-initialize-cc-mode initprop) *************** *** 140,160 **** (add-hook 'change-major-mode-hook 'c-leave-cc-mode-mode) (setq c-initialization-ok t)) ;; Will try initialization hooks again if they failed. ! (put 'c-initialize-cc-mode initprop c-initialization-ok))) ! )) ! ;; Common routines (defvar c-mode-base-map () "Keymap shared by all CC Mode related modes.") (defun c-make-inherited-keymap () (let ((map (make-sparse-keymap))) (cond ! ;; XEmacs 19 & 20 ((fboundp 'set-keymap-parents) (set-keymap-parents map c-mode-base-map)) ! ;; Emacs 19 ((fboundp 'set-keymap-parent) (set-keymap-parent map c-mode-base-map)) ;; incompatible --- 162,185 ---- (add-hook 'change-major-mode-hook 'c-leave-cc-mode-mode) (setq c-initialization-ok t)) ;; Will try initialization hooks again if they failed. ! (put 'c-initialize-cc-mode initprop c-initialization-ok)))) ! ! (unless new-style-init ! (c-init-c-language-vars))) ! ;;; Common routines. ! (defvar c-mode-base-map () "Keymap shared by all CC Mode related modes.") (defun c-make-inherited-keymap () (let ((map (make-sparse-keymap))) (cond ! ;; XEmacs ((fboundp 'set-keymap-parents) (set-keymap-parents map c-mode-base-map)) ! ;; Emacs ((fboundp 'set-keymap-parent) (set-keymap-parent map c-mode-base-map)) ;; incompatible *************** *** 165,178 **** ;; Compatibility wrapper for `define-abbrev' which passes a non-nil ;; sixth argument for SYSTEM-FLAG in emacsen that support it ;; (currently only Emacs 21.2). ! (define-abbrev-table name nil) ! (let ((table (symbol-value name))) (while defs (condition-case nil (apply 'define-abbrev table (append (car defs) '(t))) (wrong-number-of-arguments (apply 'define-abbrev table (car defs)))) (setq defs (cdr defs))))) (if c-mode-base-map nil --- 190,205 ---- ;; Compatibility wrapper for `define-abbrev' which passes a non-nil ;; sixth argument for SYSTEM-FLAG in emacsen that support it ;; (currently only Emacs 21.2). ! (let ((table (or (symbol-value name) ! (progn (define-abbrev-table name nil) ! (symbol-value name))))) (while defs (condition-case nil (apply 'define-abbrev table (append (car defs) '(t))) (wrong-number-of-arguments (apply 'define-abbrev table (car defs)))) (setq defs (cdr defs))))) + (put 'c-define-abbrev-table 'lisp-indent-function 1) (if c-mode-base-map nil *************** *** 216,229 **** (substitute-key-definition 'indent-for-tab-command 'c-indent-command c-mode-base-map global-map) ! ;; It doesn't suffice to put c-fill-paragraph on ! ;; fill-paragraph-function due to the way it works. (substitute-key-definition 'fill-paragraph 'c-fill-paragraph c-mode-base-map global-map) ;; In XEmacs the default fill function is called ;; fill-paragraph-or-region. (substitute-key-definition 'fill-paragraph-or-region 'c-fill-paragraph c-mode-base-map global-map) ;; Bind the electric deletion functions to C-d and DEL. Emacs 21 ;; automatically maps the [delete] and [backspace] keys to these two ;; depending on window system and user preferences. (In earlier --- 243,264 ---- (substitute-key-definition 'indent-for-tab-command 'c-indent-command c-mode-base-map global-map) ! ! ;; It doesn't suffice to put `c-fill-paragraph' on ! ;; `fill-paragraph-function' since `c-fill-paragraph' must be called ! ;; before any fill prefix adaption is done. E.g. `filladapt-mode' ! ;; replaces `fill-paragraph' and does the adaption before calling ! ;; `fill-paragraph-function', and we have to mask comments etc ! ;; before that. Also, `c-fill-paragraph' chains on to ! ;; `fill-paragraph' and the value on `fill-parapgraph-function' to ! ;; do the actual filling work. (substitute-key-definition 'fill-paragraph 'c-fill-paragraph c-mode-base-map global-map) ;; In XEmacs the default fill function is called ;; fill-paragraph-or-region. (substitute-key-definition 'fill-paragraph-or-region 'c-fill-paragraph c-mode-base-map global-map) + ;; Bind the electric deletion functions to C-d and DEL. Emacs 21 ;; automatically maps the [delete] and [backspace] keys to these two ;; depending on window system and user preferences. (In earlier *************** *** 237,249 **** ;; `delete-key-deletes-forward' to decide what [delete] should do. (define-key c-mode-base-map [delete] 'c-electric-delete) (define-key c-mode-base-map [backspace] 'c-electric-backspace)) - ;; these are new keybindings, with no counterpart to BOCM (define-key c-mode-base-map "," 'c-electric-semi&comma) (define-key c-mode-base-map "*" 'c-electric-star) (define-key c-mode-base-map "/" 'c-electric-slash) (define-key c-mode-base-map "\C-c\C-q" 'c-indent-defun) (define-key c-mode-base-map "\C-c\C-\\" 'c-backslash-region) - ;; TBD: where if anywhere, to put c-backward|forward-into-nomenclature (define-key c-mode-base-map "\C-c\C-a" 'c-toggle-auto-state) (define-key c-mode-base-map "\C-c\C-b" 'c-submit-bug-report) (define-key c-mode-base-map "\C-c\C-c" 'comment-region) --- 272,282 ---- *************** *** 256,300 **** ;;(define-key c-mode-base-map "\C-c\C-v" 'c-version) ) - (defvar c-c-menu nil) - (defvar c-c++-menu nil) - (defvar c-objc-menu nil) - (defvar c-java-menu nil) - (defvar c-pike-menu nil) - - (defun c-mode-menu (modestr) - (let ((m - '(["Comment Out Region" comment-region (c-fn-region-is-active-p)] - ["Uncomment Region" - (comment-region (region-beginning) (region-end) '(4)) - (c-fn-region-is-active-p)] - ["Fill Comment Paragraph" c-fill-paragraph t] - "----" - ["Indent Expression" c-indent-exp - (memq (char-after) '(?\( ?\[ ?\{))] - ["Indent Line or Region" c-indent-line-or-region t] - ["Up Conditional" c-up-conditional t] - ["Backward Conditional" c-backward-conditional t] - ["Forward Conditional" c-forward-conditional t] - ["Backward Statement" c-beginning-of-statement t] - ["Forward Statement" c-end-of-statement t] - "----" - ["Macro Expand Region" c-macro-expand (c-fn-region-is-active-p)] - ["Backslashify" c-backslash-region - (c-fn-region-is-active-p)] - "----" - ("Toggle..." - ["Syntactic indentation" c-toggle-syntactic-indentation t] - ["Auto newline" c-toggle-auto-state t] - ["Hungry delete" c-toggle-hungry-state t]) - ))) - (cons modestr m))) - ;; We don't require the outline package, but we configure it a bit anyway. (cc-bytecomp-defvar outline-level) ! (defun c-common-init (mode) ! ;; Common initializations for all modes. (setq c-buffer-is-cc-mode mode) ;; these variables should always be buffer local; they do not affect --- 289,357 ---- ;;(define-key c-mode-base-map "\C-c\C-v" 'c-version) ) ;; We don't require the outline package, but we configure it a bit anyway. (cc-bytecomp-defvar outline-level) ! (defun c-mode-menu (modestr) ! "Return a menu spec suitable for `easy-menu-define' that is exactly ! like the C mode menu except that the menu bar item name is MODESTR ! instead of \"C\". ! ! This function is provided for compatibility only; derived modes should ! preferably use the `c-mode-menu' language constant directly." ! (cons modestr (c-lang-const c-mode-menu c))) ! ! ;; Ugly hack to pull in the definition of `c-populate-syntax-table' ! ;; from cc-langs to make it available at runtime. It's either this or ! ;; moving the definition for it to cc-defs, but that would mean to ! ;; break up the syntax table setup over two files. ! (defalias 'c-populate-syntax-table ! (cc-eval-when-compile ! (let ((f (symbol-function 'c-populate-syntax-table))) ! (if (byte-code-function-p f) f (byte-compile f))))) ! ! (defun c-after-change (beg end len) ! ;; Function put on `after-change-functions' to adjust various ! ;; caches. Prefer speed to finesse here, since there will be an ! ;; order of magnitude more calls to this function than any of the ! ;; functions that use the caches. ! ;; ! ;; Note that care must be taken so that this is called before any ! ;; font-lock callbacks since we might get calls to functions using ! ;; these caches from inside them, and we must thus be sure that this ! ;; has already been executed. ! ;; ! ;; This function does not do any hidden buffer changes. ! ! (c-save-buffer-state () ! (when (> end (point-max)) ! ;; Some emacsen might return positions past the end. This has been ! ;; observed in Emacs 20.7 when rereading a buffer changed on disk ! ;; (haven't been able to minimize it, but Emacs 21.3 appears to ! ;; work). ! (setq end (point-max)) ! (when (> beg end) ! (setq beg end))) ! ! (c-invalidate-sws-region-after beg end) ! (c-invalidate-state-cache beg) ! (c-invalidate-find-decl-cache beg))) ! ! (defun c-basic-common-init (mode default-style) ! "Do the necessary initialization for the syntax handling routines ! and the line breaking/filling code. Intended to be used by other ! packages that embed CC Mode. ! ! MODE is the CC Mode flavor to set up, e.g. 'c-mode or 'java-mode. ! DEFAULT-STYLE tells which indentation style to install. It has the ! same format as `c-default-style'. ! ! Note that `c-init-language-vars' must be called before this function. ! This function cannot do that since `c-init-language-vars' is a macro ! that requires a literal mode spec at compile time." ! ;; ! ;; This function does not do any hidden buffer changes. ! (setq c-buffer-is-cc-mode mode) ;; these variables should always be buffer local; they do not affect *************** *** 302,313 **** (make-local-variable 'parse-sexp-ignore-comments) (make-local-variable 'indent-line-function) (make-local-variable 'indent-region-function) - (make-local-variable 'outline-regexp) - (make-local-variable 'outline-level) (make-local-variable 'normal-auto-fill-function) (make-local-variable 'comment-start) (make-local-variable 'comment-end) - (make-local-variable 'comment-column) (make-local-variable 'comment-start-skip) (make-local-variable 'comment-multi-line) (make-local-variable 'paragraph-start) --- 359,367 ---- *************** *** 315,338 **** (make-local-variable 'paragraph-ignore-fill-prefix) (make-local-variable 'adaptive-fill-mode) (make-local-variable 'adaptive-fill-regexp) - (make-local-variable 'imenu-generic-expression) ;set in the mode functions - - ;; X/Emacs 20 only - (and (boundp 'comment-line-break-function) - (progn - (make-local-variable 'comment-line-break-function) - (setq comment-line-break-function - 'c-indent-new-comment-line))) ;; now set their values (setq parse-sexp-ignore-comments t indent-line-function 'c-indent-line indent-region-function 'c-indent-region - outline-regexp "[^#\n\^M]" - outline-level 'c-outline-level normal-auto-fill-function 'c-do-auto-fill - comment-column 32 - comment-start-skip "/\\*+ *\\|//+ *" comment-multi-line t) ;; Install `c-fill-paragraph' on `fill-paragraph-function' so that a --- 369,380 ---- *************** *** 341,360 **** (make-local-variable 'fill-paragraph-function) (setq fill-paragraph-function 'c-fill-paragraph) ! ;; Set `require-final-newline' only if we should. ! (let ((rfn (assq mode c-require-final-newline))) ! (when rfn ! (make-local-variable 'require-final-newline) ! (setq require-final-newline (cdr rfn)))) ! ! ;; Fix keyword regexps. ! (c-init-language-vars) ! ! ;; now set the mode style based on c-default-style ! (let ((style (if (stringp c-default-style) ! c-default-style ! (or (cdr (assq mode c-default-style)) ! (cdr (assq 'other c-default-style)) "gnu")))) ;; Override style variables if `c-old-style-variable-behavior' is ;; set. Also override if we are using global style variables, --- 383,439 ---- (make-local-variable 'fill-paragraph-function) (setq fill-paragraph-function 'c-fill-paragraph) ! ;; (X)Emacs 20 and later. ! (when (boundp 'comment-line-break-function) ! (make-local-variable 'comment-line-break-function) ! (setq comment-line-break-function ! 'c-indent-new-comment-line)) ! ! ;; Emacs 20 and later. ! (when (boundp 'parse-sexp-lookup-properties) ! (make-local-variable 'parse-sexp-lookup-properties) ! (setq parse-sexp-lookup-properties t)) ! ! ;; Same as above for XEmacs 21 (although currently undocumented). ! (when (boundp 'lookup-syntax-properties) ! (make-local-variable 'lookup-syntax-properties) ! (setq lookup-syntax-properties t)) ! ! ;; Use this in Emacs 21 to avoid meddling with the rear-nonsticky ! ;; property on each character. ! (when (boundp 'text-property-default-nonsticky) ! (make-local-variable 'text-property-default-nonsticky) ! (let ((elem (assq 'syntax-table text-property-default-nonsticky))) ! (if elem ! (setcdr elem t) ! (setq text-property-default-nonsticky ! (cons '(syntax-table . t) ! text-property-default-nonsticky)))) ! (setq text-property-default-nonsticky ! (cons '(c-type . t) ! text-property-default-nonsticky))) ! ! ;; In Emacs 21 and later it's possible to turn off the ad-hoc ! ;; heuristic that open parens in column 0 are defun starters. Since ! ;; we have c-state-cache that isn't useful and only causes trouble ! ;; so turn it off. ! (when (memq 'col-0-paren c-emacs-features) ! (make-local-variable 'open-paren-in-column-0-is-defun-start) ! (setq open-paren-in-column-0-is-defun-start nil)) ! ! ;; The `c-type' text property with `c-decl-end' is used to mark the ! ;; ends of access keys to make interactive refontification work ! ;; better. ! (when c-opt-access-key ! (setq c-type-decl-end-used t)) ! ! (c-clear-found-types) ! ! ;; now set the mode style based on default-style ! (let ((style (if (stringp default-style) ! default-style ! (or (cdr (assq mode default-style)) ! (cdr (assq 'other default-style)) "gnu")))) ;; Override style variables if `c-old-style-variable-behavior' is ;; set. Also override if we are using global style variables, *************** *** 378,405 **** (make-local-variable 'comment-indent-function) (setq comment-indent-function 'c-comment-indent) - ;; add menus to menubar - (easy-menu-add (c-mode-menu mode-name)) - ;; put auto-hungry designators onto minor-mode-alist, but only once (or (assq 'c-auto-hungry-string minor-mode-alist) (setq minor-mode-alist (cons '(c-auto-hungry-string c-auto-hungry-string) minor-mode-alist))) ! ;; Install the function that ensures `c-state-cache' doesn't become ! ;; invalid. ! (make-local-variable 'after-change-functions) ! (add-hook 'after-change-functions 'c-check-state-cache)) (defun c-postprocess-file-styles () ! "Function that post processes relevant file local variables. Currently, this function simply applies any style and offset settings found in the file's Local Variable list. It first applies any style setting found in `c-file-style', then it applies any offset settings it finds in `c-file-offsets'. Note that the style variables are always made local to the buffer." ;; apply file styles and offsets (when c-buffer-is-cc-mode (if (or c-file-style c-file-offsets) --- 457,552 ---- (make-local-variable 'comment-indent-function) (setq comment-indent-function 'c-comment-indent) ;; put auto-hungry designators onto minor-mode-alist, but only once (or (assq 'c-auto-hungry-string minor-mode-alist) (setq minor-mode-alist (cons '(c-auto-hungry-string c-auto-hungry-string) minor-mode-alist))) ! ;; Install the functions that ensure that various internal caches ! ;; don't become invalid due to buffer changes. ! (make-local-hook 'after-change-functions) ! (add-hook 'after-change-functions 'c-after-change nil t)) ! ! (defun c-after-font-lock-init () ! ;; Put on `font-lock-mode-hook'. ! (remove-hook 'after-change-functions 'c-after-change t) ! (add-hook 'after-change-functions 'c-after-change nil t)) ! ! (defun c-font-lock-init () ! "Set up the font-lock variables for using the font-lock support in CC Mode. ! This does not load the font-lock package. Use after ! `c-basic-common-init' and after cc-fonts has been loaded." ! ! (make-local-variable 'font-lock-defaults) ! (setq font-lock-defaults ! `(,(if (c-mode-is-new-awk-p) ! ;; awk-mode currently has only one font lock level. ! 'awk-font-lock-keywords ! (mapcar 'c-mode-symbol ! '("font-lock-keywords" "font-lock-keywords-1" ! "font-lock-keywords-2" "font-lock-keywords-3"))) ! nil nil ! ,c-identifier-syntax-modifications ! c-beginning-of-syntax ! (font-lock-mark-block-function ! . c-mark-function))) ! ! (make-local-hook 'font-lock-mode-hook) ! (add-hook 'font-lock-mode-hook 'c-after-font-lock-init nil t)) ! ! (defun c-setup-doc-comment-style () ! "Initialize the variables that depend on the value of `c-doc-comment-style'." ! (when (and (featurep 'font-lock) ! (symbol-value 'font-lock-mode)) ! ;; Force font lock mode to reinitialize itself. ! (font-lock-mode 0) ! (font-lock-mode 1))) ! ! (defun c-common-init (&optional mode) ! "Common initialization for all CC Mode modes. ! In addition to the work done by `c-basic-common-init' and ! `c-font-lock-init', this function sets up various other things as ! customary in CC Mode modes but which aren't strictly necessary for CC ! Mode to operate correctly. ! ! MODE is the symbol for the mode to initialize, like 'c-mode. See ! `c-basic-common-init' for details. It's only optional to be ! compatible with old code; callers should always specify it. ! ! This function does not do any hidden buffer changes." ! ! (unless mode ! ;; Called from an old third party package. The fallback is to ! ;; initialize for C. ! (c-init-c-language-vars)) ! ! (c-basic-common-init mode c-default-style) ! (when mode ! ;; Only initialize font locking if we aren't called from an old package. ! (c-font-lock-init)) ! ! (make-local-variable 'outline-regexp) ! (make-local-variable 'outline-level) ! (setq outline-regexp "[^#\n\^M]" ! outline-level 'c-outline-level) ! ! (let ((rfn (assq mode c-require-final-newline))) ! (when rfn ! (make-local-variable 'require-final-newline) ! (setq require-final-newline (cdr rfn))))) (defun c-postprocess-file-styles () ! "Function that post processes relevant file local variables in CC Mode. Currently, this function simply applies any style and offset settings found in the file's Local Variable list. It first applies any style setting found in `c-file-style', then it applies any offset settings it finds in `c-file-offsets'. Note that the style variables are always made local to the buffer." + ;; + ;; This function does not do any hidden buffer changes. + ;; apply file styles and offsets (when c-buffer-is-cc-mode (if (or c-file-style c-file-offsets) *************** *** 419,424 **** --- 566,578 ---- ;; Support for C + ;;;###autoload + (defvar c-mode-syntax-table nil + "Syntax table used in c-mode buffers.") + (or c-mode-syntax-table + (setq c-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table c)))) + (defvar c-mode-abbrev-table nil "Abbreviation table used in c-mode buffers.") (c-define-abbrev-table 'c-mode-abbrev-table *************** *** 435,441 **** ) (easy-menu-define c-c-menu c-mode-map "C Mode Commands" ! (c-mode-menu "C")) ;;;###autoload (defun c-mode () --- 589,611 ---- ) (easy-menu-define c-c-menu c-mode-map "C Mode Commands" ! (cons "C" (c-lang-const c-mode-menu c))) ! ! ;; In XEmacs >= 21.5 modes should add their own entries to ! ;; `auto-mode-alist'. The comment form of autoload is used to avoid ! ;; doing this on load. That since `add-to-list' prepends the value ! ;; which could cause it to clobber user settings. Later emacsen have ! ;; an append option, but it's not safe to use. ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.[ch]\\'" . c-mode)) ! ! ;; NB: The following two associate yacc and lex files to C Mode, which ! ;; is not really suitable for those formats. Anyway, afaik there's ! ;; currently no better mode for them, and besides this is legacy. ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.y\\(acc\\)?\\'" . c-mode)) ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.lex\\'" . c-mode)) ! ! (defun c-init-c-language-vars () ! (c-init-language-vars c-mode)) ;;;###autoload (defun c-mode () *************** *** 447,468 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `c-mode-hook' is run with no args, if that value is ! bound and has a non-nil value. Also the hook `c-mode-common-hook' is ! run first. Key bindings: \\{c-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode) (set-syntax-table c-mode-syntax-table) (setq major-mode 'c-mode mode-name "C" local-abbrev-table c-mode-abbrev-table abbrev-mode t) (use-local-map c-mode-map) (c-common-init 'c-mode) (cc-imenu-init cc-imenu-c-generic-expression) (run-hooks 'c-mode-common-hook) (run-hooks 'c-mode-hook) --- 617,639 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `c-mode-hook'. Key bindings: \\{c-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode t) (set-syntax-table c-mode-syntax-table) (setq major-mode 'c-mode mode-name "C" local-abbrev-table c-mode-abbrev-table abbrev-mode t) (use-local-map c-mode-map) + (c-init-c-language-vars) (c-common-init 'c-mode) + (easy-menu-add c-c-menu) (cc-imenu-init cc-imenu-c-generic-expression) (run-hooks 'c-mode-common-hook) (run-hooks 'c-mode-hook) *************** *** 471,476 **** --- 642,654 ---- ;; Support for C++ + ;;;###autoload + (defvar c++-mode-syntax-table nil + "Syntax table used in c++-mode buffers.") + (or c++-mode-syntax-table + (setq c++-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table c++)))) + (defvar c++-mode-abbrev-table nil "Abbreviation table used in c++-mode buffers.") (c-define-abbrev-table 'c++-mode-abbrev-table *************** *** 490,496 **** (define-key c++-mode-map ">" 'c-electric-lt-gt)) (easy-menu-define c-c++-menu c++-mode-map "C++ Mode Commands" ! (c-mode-menu "C++")) ;;;###autoload (defun c++-mode () --- 668,678 ---- (define-key c++-mode-map ">" 'c-electric-lt-gt)) (easy-menu-define c-c++-menu c++-mode-map "C++ Mode Commands" ! (cons "C++" (c-lang-const c-mode-menu c++))) ! ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(cc\\|hh\\)\\'" . c++-mode)) ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode)) ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(CC?\\|HH?\\)\\'" . c++-mode)) ;;;###autoload (defun c++-mode () *************** *** 503,524 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `c++-mode-hook' is run with no args, if that ! variable is bound and has a non-nil value. Also the hook ! `c-mode-common-hook' is run first. Key bindings: \\{c++-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode) (set-syntax-table c++-mode-syntax-table) (setq major-mode 'c++-mode mode-name "C++" local-abbrev-table c++-mode-abbrev-table abbrev-mode t) (use-local-map c++-mode-map) (c-common-init 'c++-mode) (cc-imenu-init cc-imenu-c++-generic-expression) (run-hooks 'c-mode-common-hook) (run-hooks 'c++-mode-hook) --- 685,707 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `c++-mode-hook'. Key bindings: \\{c++-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode t) (set-syntax-table c++-mode-syntax-table) (setq major-mode 'c++-mode mode-name "C++" local-abbrev-table c++-mode-abbrev-table abbrev-mode t) (use-local-map c++-mode-map) + (c-init-language-vars c++-mode) (c-common-init 'c++-mode) + (easy-menu-add c-c++-menu) (cc-imenu-init cc-imenu-c++-generic-expression) (run-hooks 'c-mode-common-hook) (run-hooks 'c++-mode-hook) *************** *** 527,532 **** --- 710,722 ---- ;; Support for Objective-C + ;;;###autoload + (defvar objc-mode-syntax-table nil + "Syntax table used in objc-mode buffers.") + (or objc-mode-syntax-table + (setq objc-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table objc)))) + (defvar objc-mode-abbrev-table nil "Abbreviation table used in objc-mode buffers.") (c-define-abbrev-table 'objc-mode-abbrev-table *************** *** 542,548 **** (define-key objc-mode-map "\C-c\C-e" 'c-macro-expand)) (easy-menu-define c-objc-menu objc-mode-map "ObjC Mode Commands" ! (c-mode-menu "ObjC")) ;;;###autoload (defun objc-mode () --- 732,740 ---- (define-key objc-mode-map "\C-c\C-e" 'c-macro-expand)) (easy-menu-define c-objc-menu objc-mode-map "ObjC Mode Commands" ! (cons "ObjC" (c-lang-const c-mode-menu objc))) ! ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.m\\'" . objc-mode)) ;;;###autoload (defun objc-mode () *************** *** 555,577 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `objc-mode-hook' is run with no args, if that value ! is bound and has a non-nil value. Also the hook `c-mode-common-hook' ! is run first. Key bindings: \\{objc-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode) (set-syntax-table objc-mode-syntax-table) (setq major-mode 'objc-mode mode-name "ObjC" local-abbrev-table objc-mode-abbrev-table abbrev-mode t) (use-local-map objc-mode-map) (c-common-init 'objc-mode) ! (cc-imenu-init cc-imenu-objc-generic-expression) (run-hooks 'c-mode-common-hook) (run-hooks 'objc-mode-hook) (c-update-modeline)) --- 747,773 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `objc-mode-hook'. Key bindings: \\{objc-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode t) (set-syntax-table objc-mode-syntax-table) (setq major-mode 'objc-mode mode-name "ObjC" local-abbrev-table objc-mode-abbrev-table abbrev-mode t) + ;; The `c-type' text property with `c-decl-end' is used to mark the + ;; end of the @-style directives. + (setq c-type-decl-end-used t) (use-local-map objc-mode-map) + (c-init-language-vars objc-mode) (c-common-init 'objc-mode) ! (easy-menu-add c-objc-menu) ! (cc-imenu-init nil 'cc-imenu-objc-function) (run-hooks 'c-mode-common-hook) (run-hooks 'objc-mode-hook) (c-update-modeline)) *************** *** 579,584 **** --- 775,787 ---- ;; Support for Java + ;;;###autoload + (defvar java-mode-syntax-table nil + "Syntax table used in java-mode buffers.") + (or java-mode-syntax-table + (setq java-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table java)))) + (defvar java-mode-abbrev-table nil "Abbreviation table used in java-mode buffers.") (c-define-abbrev-table 'java-mode-abbrev-table *************** *** 595,602 **** ;; add bindings which are only useful for Java ) (easy-menu-define c-java-menu java-mode-map "Java Mode Commands" ! (c-mode-menu "Java")) ;;;###autoload (defun java-mode () --- 798,814 ---- ;; add bindings which are only useful for Java ) + ;; Regexp trying to describe the beginning of a Java top-level + ;; definition. This is not used by CC Mode, nor is it maintained + ;; since it's practically impossible to write a regexp that reliably + ;; matches such a construct. Other tools are necessary. + (defconst c-Java-defun-prompt-regexp + "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f\v]*\\)+\\)?\\s-*") + (easy-menu-define c-java-menu java-mode-map "Java Mode Commands" ! (cons "Java" (c-lang-const c-mode-menu java))) ! ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.java\\'" . java-mode)) ;;;###autoload (defun java-mode () *************** *** 609,632 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `java-mode-hook' is run with no args, if that value ! is bound and has a non-nil value. Also the common hook ! `c-mode-common-hook' is run first. Note that this mode automatically ! sets the \"java\" style before calling any hooks so be careful if you ! set styles in `c-mode-common-hook'. Key bindings: \\{java-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode) (set-syntax-table java-mode-syntax-table) (setq major-mode 'java-mode mode-name "Java" local-abbrev-table java-mode-abbrev-table abbrev-mode t) (use-local-map java-mode-map) (c-common-init 'java-mode) (cc-imenu-init cc-imenu-java-generic-expression) (run-hooks 'c-mode-common-hook) (run-hooks 'java-mode-hook) --- 821,843 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `java-mode-hook'. Key bindings: \\{java-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode t) (set-syntax-table java-mode-syntax-table) (setq major-mode 'java-mode mode-name "Java" local-abbrev-table java-mode-abbrev-table abbrev-mode t) (use-local-map java-mode-map) + (c-init-language-vars java-mode) (c-common-init 'java-mode) + (easy-menu-add c-java-menu) (cc-imenu-init cc-imenu-java-generic-expression) (run-hooks 'c-mode-common-hook) (run-hooks 'java-mode-hook) *************** *** 635,640 **** --- 846,858 ---- ;; Support for CORBA's IDL language + ;;;###autoload + (defvar idl-mode-syntax-table nil + "Syntax table used in idl-mode buffers.") + (or idl-mode-syntax-table + (setq idl-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table idl)))) + (defvar idl-mode-abbrev-table nil "Abbreviation table used in idl-mode buffers.") (c-define-abbrev-table 'idl-mode-abbrev-table nil) *************** *** 648,658 **** ) (easy-menu-define c-idl-menu idl-mode-map "IDL Mode Commands" ! (c-mode-menu "IDL")) ;;;###autoload (defun idl-mode () ! "Major mode for editing CORBA's IDL code. To submit a problem report, enter `\\[c-submit-bug-report]' from an idl-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description --- 866,878 ---- ) (easy-menu-define c-idl-menu idl-mode-map "IDL Mode Commands" ! (cons "IDL" (c-lang-const c-mode-menu idl))) ! ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.idl\\'" . idl-mode)) ;;;###autoload (defun idl-mode () ! "Major mode for editing CORBA's IDL, PSDL and CIDL code. To submit a problem report, enter `\\[c-submit-bug-report]' from an idl-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description *************** *** 661,682 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `idl-mode-hook' is run with no args, if that ! variable is bound and has a non-nil value. Also the hook ! `c-mode-common-hook' is run first. Key bindings: \\{idl-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode) (set-syntax-table idl-mode-syntax-table) (setq major-mode 'idl-mode mode-name "IDL" local-abbrev-table idl-mode-abbrev-table) (use-local-map idl-mode-map) (c-common-init 'idl-mode) ! ;;(cc-imenu-init cc-imenu-idl-generic-expression) ;FIXME (run-hooks 'c-mode-common-hook) (run-hooks 'idl-mode-hook) (c-update-modeline)) --- 881,903 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `idl-mode-hook'. Key bindings: \\{idl-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode t) (set-syntax-table idl-mode-syntax-table) (setq major-mode 'idl-mode mode-name "IDL" local-abbrev-table idl-mode-abbrev-table) (use-local-map idl-mode-map) + (c-init-language-vars idl-mode) (c-common-init 'idl-mode) ! (easy-menu-add c-idl-menu) ! ;;(cc-imenu-init cc-imenu-idl-generic-expression) ;TODO (run-hooks 'c-mode-common-hook) (run-hooks 'idl-mode-hook) (c-update-modeline)) *************** *** 684,689 **** --- 905,917 ---- ;; Support for Pike + ;;;###autoload + (defvar pike-mode-syntax-table nil + "Syntax table used in pike-mode buffers.") + (or pike-mode-syntax-table + (setq pike-mode-syntax-table + (funcall (c-lang-const c-make-mode-syntax-table pike)))) + (defvar pike-mode-abbrev-table nil "Abbreviation table used in pike-mode buffers.") (c-define-abbrev-table 'pike-mode-abbrev-table *************** *** 699,705 **** (define-key pike-mode-map "\C-c\C-e" 'c-macro-expand)) (easy-menu-define c-pike-menu pike-mode-map "Pike Mode Commands" ! (c-mode-menu "Pike")) ;;;###autoload (defun pike-mode () --- 927,936 ---- (define-key pike-mode-map "\C-c\C-e" 'c-macro-expand)) (easy-menu-define c-pike-menu pike-mode-map "Pike Mode Commands" ! (cons "Pike" (c-lang-const c-mode-menu pike))) ! ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(pike\\|pmod\\(.in\\)?\\)\\'" . pike-mode)) ! ;;;###autoload (add-to-list 'interpreter-mode-alist '(("pike" . pike-mode))) ;;;###autoload (defun pike-mode () *************** *** 712,739 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `pike-mode-hook' is run with no args, if that value ! is bound and has a non-nil value. Also the common hook ! `c-mode-common-hook' is run first. Key bindings: \\{pike-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode) (set-syntax-table pike-mode-syntax-table) (setq major-mode 'pike-mode mode-name "Pike" local-abbrev-table pike-mode-abbrev-table abbrev-mode t) (use-local-map pike-mode-map) (c-common-init 'pike-mode) ! ;;(cc-imenu-init cc-imenu-pike-generic-expression) ;FIXME (run-hooks 'c-mode-common-hook) (run-hooks 'pike-mode-hook) (c-update-modeline)) ;; bug reporting (defconst c-mode-help-address --- 943,1070 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `pike-mode-hook'. Key bindings: \\{pike-mode-map}" (interactive) (kill-all-local-variables) ! (c-initialize-cc-mode t) (set-syntax-table pike-mode-syntax-table) (setq major-mode 'pike-mode mode-name "Pike" local-abbrev-table pike-mode-abbrev-table abbrev-mode t) (use-local-map pike-mode-map) + (c-init-language-vars pike-mode) (c-common-init 'pike-mode) ! (easy-menu-add c-pike-menu) ! ;;(cc-imenu-init cc-imenu-pike-generic-expression) ;TODO (run-hooks 'c-mode-common-hook) (run-hooks 'pike-mode-hook) (c-update-modeline)) + ;; Support for awk. This is purposely disabled for older (X)Emacsen which + ;; don't support syntax-table properties. + + (if (not (memq 'syntax-properties c-emacs-features)) + (autoload 'awk-mode "awk-mode.el" "Major mode for editing AWK code. + To submit a problem report, enter `\\[c-submit-bug-report]' from an + awk-mode buffer. This automatically sets up a mail buffer with version + information already added. You just need to add a description of the + problem, including a reproducible test case and send the message. + + To see what version of CC Mode you are running, enter `\\[c-version]'. + + The hook `c-mode-common-hook' is run with no args at mode + initialization, then `awk-mode-hook'. + " t) + (defvar awk-mode-abbrev-table nil + "Abbreviation table used in awk-mode buffers.") + (c-define-abbrev-table 'awk-mode-abbrev-table + '(("else" "else" c-electric-continued-statement 0) + ("while" "while" c-electric-continued-statement 0))) + + (defvar awk-mode-map () + "Keymap used in awk-mode buffers.") + (if awk-mode-map + nil + (setq awk-mode-map (c-make-inherited-keymap)) + ;; add bindings which are only useful for awk. + (define-key awk-mode-map "#" 'self-insert-command) + (define-key awk-mode-map "/" 'self-insert-command) + (define-key awk-mode-map "*" 'self-insert-command) + (define-key awk-mode-map "\C-c\C-n" 'undefined) ; #if doesn't exist in awk. + (define-key awk-mode-map "\C-c\C-p" 'undefined) + (define-key awk-mode-map "\C-c\C-u" 'undefined) + (define-key awk-mode-map "\M-a" 'undefined) ; c-awk-beginning-of-statement isn't yet implemented. + (define-key awk-mode-map "\M-e" 'undefined) ; c-awk-end-of-statement isn't yet implemented. + (define-key awk-mode-map "\C-\M-a" 'c-awk-beginning-of-defun) + (define-key awk-mode-map "\C-\M-e" 'c-awk-end-of-defun)) + + (easy-menu-define c-awk-menu awk-mode-map "AWK Mode Commands" + (cons "AWK" (c-lang-const c-mode-menu awk))) + + ;; In XEmacs >= 21.5 modes should add their own entries to + ;; `auto-mode-alist' and `interpreter-mode-alist'. + ;;;###autoload (add-to-list 'auto-mode-alist '("\\.awk\\'" . awk-mode)) + ;;;###autoload (add-to-list 'interpreter-mode-alist '(("awk" . awk-mode) ("mawk" . awk-mode) ("nawk" . awk-mode) ("gawk" . awk-mode))) + + ;;;###autoload + (defun awk-mode () + "Major mode for editing AWK code. + To submit a problem report, enter `\\[c-submit-bug-report]' from an + awk-mode buffer. This automatically sets up a mail buffer with version + information already added. You just need to add a description of the + problem, including a reproducible test case and send the message. + + To see what version of CC Mode you are running, enter `\\[c-version]'. + + The hook `c-mode-common-hook' is run with no args at mode + initialization, then `awk-mode-hook'. + + Key bindings: + \\{awk-mode-map}" + (interactive) + (require 'cc-awk) ; Added 2003/6/10. + (kill-all-local-variables) + (c-initialize-cc-mode t) + (set-syntax-table awk-mode-syntax-table) + (setq major-mode 'awk-mode + mode-name "AWK" + local-abbrev-table awk-mode-abbrev-table + abbrev-mode t) + (use-local-map awk-mode-map) + (c-init-language-vars awk-mode) + (c-common-init 'awk-mode) + ;; The rest of CC Mode does not (yet) use `font-lock-syntactic-keywords', + ;; so it's not set by `c-font-lock-init'. + (make-local-variable 'font-lock-syntactic-keywords) + (setq font-lock-syntactic-keywords + '((c-awk-set-syntax-table-properties + 0 (0) ; Everything on this line is a dummy. + nil t))) + (c-awk-unstick-NL-prop) + (add-hook 'before-change-functions 'c-awk-before-change nil t) + (add-hook 'after-change-functions 'c-awk-after-change nil t) + (c-save-buffer-state nil + (save-restriction + (widen) + (c-awk-clear-NL-props (point-min) (point-max)) + (c-awk-after-change (point-min) (point-max) 0))) ; Set syntax-table props. + + ;; Prevent Xemacs's buffer-syntactic-context being used. See the comment + ;; in cc-engine.el, just before (defun c-fast-in-literal ... + (defalias 'c-in-literal 'c-slow-in-literal) + + (run-hooks 'c-mode-common-hook) + (run-hooks 'awk-mode-hook) + (c-update-modeline)) + ) ;; closes the (if (not (memq 'syntax-properties c-emacs-features)) + + ;; bug reporting (defconst c-mode-help-address *************** *** 764,814 **** (and (if (y-or-n-p "Do you want to submit a report on CC Mode? ") t (message "") nil) - (require 'reporter) (reporter-submit-bug-report c-mode-help-address ! (concat "CC Mode " c-version " (" ! (cond ((eq major-mode 'c++-mode) "C++") ! ((eq major-mode 'c-mode) "C") ! ((eq major-mode 'objc-mode) "ObjC") ! ((eq major-mode 'java-mode) "Java") ! ((eq major-mode 'idl-mode) "IDL") ! ((eq major-mode 'pike-mode) "Pike") ! ) ! ")") (let ((vars (append - ;; report only the vars that affect indentation c-style-variables ! '(c-delete-function ! c-electric-pound-behavior ! c-indent-comments-syntactically-p c-tab-always-indent defun-prompt-regexp tab-width comment-column parse-sexp-ignore-comments ;; A brain-damaged XEmacs only variable that, if ;; set to nil can cause all kinds of chaos. signal-error-on-buffer-boundary ;; Variables that affect line breaking and comments. auto-fill-function filladapt-mode comment-multi-line comment-start-skip fill-prefix paragraph-start adaptive-fill-mode adaptive-fill-regexp) nil))) ! (delq 'c-special-indent-hook vars) ! (mapcar (lambda (var) (unless (boundp var) (delq var vars))) '(signal-error-on-buffer-boundary filladapt-mode ! defun-prompt-regexp)) vars) (lambda () (run-hooks 'c-prepare-bug-report-hooks) ! (insert (format "Buffer Style: %s\n\nc-emacs-features: %s\n" style c-features))))))) --- 1095,1151 ---- (and (if (y-or-n-p "Do you want to submit a report on CC Mode? ") t (message "") nil) (reporter-submit-bug-report c-mode-help-address ! (concat "CC Mode " c-version " (" mode-name ")") (let ((vars (append c-style-variables ! '(c-buffer-is-cc-mode c-tab-always-indent + c-syntactic-indentation + c-syntactic-indentation-in-macros + c-ignore-auto-fill + c-auto-align-backslashes + c-backspace-function + c-delete-function + c-electric-pound-behavior + c-default-style + c-enable-xemacs-performance-kludge-p + c-old-style-variable-behavior defun-prompt-regexp tab-width comment-column parse-sexp-ignore-comments + parse-sexp-lookup-properties + lookup-syntax-properties ;; A brain-damaged XEmacs only variable that, if ;; set to nil can cause all kinds of chaos. signal-error-on-buffer-boundary ;; Variables that affect line breaking and comments. + auto-fill-mode auto-fill-function filladapt-mode comment-multi-line comment-start-skip fill-prefix + fill-column paragraph-start adaptive-fill-mode adaptive-fill-regexp) nil))) ! (mapcar (lambda (var) (unless (boundp var) ! (setq vars (delq var vars)))) '(signal-error-on-buffer-boundary filladapt-mode ! defun-prompt-regexp ! font-lock-mode ! font-lock-maximum-decoration ! parse-sexp-lookup-properties ! lookup-syntax-properties)) vars) (lambda () (run-hooks 'c-prepare-bug-report-hooks) ! (insert (format "Buffer Style: %s\nc-emacs-features: %s\n" style c-features))))))) From MAILER-DAEMON Thu Jul 03 08:50:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3Xx-0002Pi-NO for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:50:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3XM-000292-OC for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:50:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3Iq-0007Ah-1g for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:35:09 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fx-0006Hk-3G for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:09 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Ew-0005HB-5d for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:06 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-styles.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:50:43 -0000 Index: emacs/lisp/progmodes/cc-styles.el diff -c emacs/lisp/progmodes/cc-styles.el:1.27 emacs/lisp/progmodes/cc-styles.el:1.28 *** emacs/lisp/progmodes/cc-styles.el:1.27 Sun Feb 9 19:50:26 2003 --- emacs/lisp/progmodes/cc-styles.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-styles.el --- support for styles in CC Mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-styles.el --- support for styles in CC Mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 39,48 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) - (cc-require 'cc-langs) (cc-require 'cc-vars) (cc-require 'cc-align) ;; cc-align is only indirectly required: Styles added with --- 38,46 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) (cc-require 'cc-vars) (cc-require 'cc-align) ;; cc-align is only indirectly required: Styles added with *************** *** 135,140 **** --- 133,144 ---- (namespace-open . +) (innamespace . c-lineup-whitesmith-in-block) (namespace-close . +) + (module-open . +) + (inmodule . c-lineup-whitesmith-in-block) + (module-close . +) + (composition-open . +) + (incomposition . c-lineup-whitesmith-in-block) + (composition-close . +) )) ) ("ellemtel" *************** *** 242,247 **** --- 246,253 ---- ;; Functions that manipulate styles (defun c-set-style-1 (conscell dont-override) ;; Set the style for one variable + ;; + ;; This function does not do any hidden buffer changes. (let ((attr (car conscell)) (val (cdr conscell))) (cond *************** *** 285,290 **** --- 291,298 ---- (defun c-get-style-variables (style basestyles) ;; Return all variables in a style by resolving inheritances. + ;; + ;; This function does not do any hidden buffer changes. (if (not style) (copy-alist c-fallback-style) (let ((vars (cdr (or (assoc (downcase style) c-style-alist) *************** *** 367,376 **** (c-keep-region-active)) ;;;###autoload ! (defun c-add-style (style descrip &optional set-p) "Adds a style to `c-style-alist', or updates an existing one. ! STYLE is a string identifying the style to add or update. DESCRIP is ! an association list describing the style and must be of the form: ([BASESTYLE] (VARIABLE . VALUE) [(VARIABLE . VALUE) ...]) --- 375,384 ---- (c-keep-region-active)) ;;;###autoload ! (defun c-add-style (style description &optional set-p) "Adds a style to `c-style-alist', or updates an existing one. ! STYLE is a string identifying the style to add or update. DESCRIPTION ! is an association list describing the style and must be of the form: ([BASESTYLE] (VARIABLE . VALUE) [(VARIABLE . VALUE) ...]) *************** *** 380,393 **** (interactive (let ((stylename (completing-read "Style to add: " c-style-alist nil nil nil 'c-set-style-history)) ! (description (eval-minibuffer "Style description: "))) ! (list stylename description (y-or-n-p "Set the style too? ")))) (setq style (downcase style)) (let ((s (assoc style c-style-alist))) (if s ! (setcdr s (copy-alist descrip)) ; replace ! (setq c-style-alist (cons (cons style descrip) c-style-alist)))) (and set-p (c-set-style style))) --- 388,401 ---- (interactive (let ((stylename (completing-read "Style to add: " c-style-alist nil nil nil 'c-set-style-history)) ! (descr (eval-minibuffer "Style description: "))) ! (list stylename descr (y-or-n-p "Set the style too? ")))) (setq style (downcase style)) (let ((s (assoc style c-style-alist))) (if s ! (setcdr s (copy-alist description)) ; replace ! (setq c-style-alist (cons (cons style description) c-style-alist)))) (and set-p (c-set-style style))) *************** *** 396,401 **** --- 404,411 ---- (defun c-read-offset (langelem) ;; read new offset value for LANGELEM from minibuffer. return a ;; legal value only + ;; + ;; This function does not do any hidden buffer changes. (let* ((oldoff (cdr-safe (or (assq langelem c-offsets-alist) (assq langelem (get 'c-offsets-alist 'c-stylevar-fallback))))) *************** *** 446,454 **** ;; on the syntactic analysis list for the current ;; line (and c-buffer-is-cc-mode ! (let* ((syntax (c-guess-basic-syntax)) ! (len (length syntax)) ! (ic (format "%s" (car (nth (1- len) syntax))))) (cons ic 0))) ))) (offset (c-read-offset langelem))) --- 456,465 ---- ;; on the syntactic analysis list for the current ;; line (and c-buffer-is-cc-mode ! (c-save-buffer-state ! ((syntax (c-guess-basic-syntax)) ! (len (length syntax)) ! (ic (format "%s" (car (nth (1- len) syntax))))) (cons ic 0))) ))) (offset (c-read-offset langelem))) *************** *** 471,476 **** --- 482,490 ---- "Fix things up for paragraph recognition and filling inside comments by incorporating the value of `c-comment-prefix-regexp' in the relevant variables." + ;; + ;; This function does not do any hidden buffer changes. + (setq c-current-comment-prefix (if (listp c-comment-prefix-regexp) (cdr-safe (or (assoc major-mode c-comment-prefix-regexp) *************** *** 479,489 **** (let ((comment-line-prefix (concat "[ \t]*\\(" c-current-comment-prefix "\\)[ \t]*"))) (setq paragraph-start (concat comment-line-prefix ! (c-lang-var paragraph-start) "\\|" page-delimiter) paragraph-separate (concat comment-line-prefix ! (c-lang-var paragraph-separate) "\\|" page-delimiter) paragraph-ignore-fill-prefix t --- 493,503 ---- (let ((comment-line-prefix (concat "[ \t]*\\(" c-current-comment-prefix "\\)[ \t]*"))) (setq paragraph-start (concat comment-line-prefix ! c-paragraph-start "\\|" page-delimiter) paragraph-separate (concat comment-line-prefix ! c-paragraph-separate "\\|" page-delimiter) paragraph-ignore-fill-prefix t *************** *** 521,526 **** --- 535,542 ---- ;; This function is intended to be used explicitly by the end user ;; only. ;; + ;; This function does not do any hidden buffer changes. + ;; The default configuration already handles C++ comments, but we ;; need to add handling of C block comments. A new filladapt token ;; `c-comment' is added for that. *************** *** 549,554 **** --- 565,572 ---- ;; crucial because future c-set-style calls will always reset the ;; variables first to the `cc-mode' style before instituting the new ;; style. Only do this once! + ;; + ;; This function does not do any hidden buffer changes. (unless (get 'c-initialize-builtin-style 'is-run) (put 'c-initialize-builtin-style 'is-run t) ;;(c-initialize-cc-mode) *************** *** 573,596 **** (defun c-make-styles-buffer-local (&optional this-buf-only-p) "Make all CC Mode style variables buffer local. ! If you edit primarily one style of C (or C++, Objective-C, Java, etc) ! code, you probably want style variables to be global. This is the ! default. ! ! If you edit many different styles of C (or C++, Objective-C, Java, ! etc) at the same time, you probably want the CC Mode style variables ! to be buffer local. If you do, it's advisable to set any CC Mode ! style variables in a hook function (e.g. off of `c-mode-common-hook'), ! instead of at the top level of your ~/.emacs file. ! ! This function makes all the CC Mode style variables buffer local. ! Call it after CC Mode is loaded into your Emacs environment. ! Conversely, set the variable `c-style-variables-are-local-p' to t in ! your .emacs file, before CC Mode is loaded, and this function will be ! automatically called when CC Mode is loaded. - Optional argument, when non-nil, means use `make-local-variable' - instead of `make-variable-buffer-local'." ;; style variables (let ((func (if this-buf-only-p 'make-local-variable --- 591,606 ---- (defun c-make-styles-buffer-local (&optional this-buf-only-p) "Make all CC Mode style variables buffer local. ! If `this-buf-only-p' is non-nil, the style variables will be made ! buffer local only in the current buffer. Otherwise they'll be made ! permanently buffer local in any buffer that change their values. ! ! The buffer localness of the style variables are normally controlled ! with the variable `c-style-variables-are-local-p', so there's seldom ! any reason to call this function directly." ! ;; ! ;; This function does not do any hidden buffer changes. ;; style variables (let ((func (if this-buf-only-p 'make-local-variable From MAILER-DAEMON Thu Jul 03 08:52:20 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3XO-00029v-QM for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:50:10 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3Hq-0006tW-GJ for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:34:06 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3HF-0006O7-Fs for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fu-0006HX-Px for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:07 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Es-0005Gd-Nr for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:02 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:02 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-compat.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:50:09 -0000 Index: emacs/lisp/progmodes/cc-compat.el diff -c emacs/lisp/progmodes/cc-compat.el:1.15 emacs/lisp/progmodes/cc-compat.el:1.16 *** emacs/lisp/progmodes/cc-compat.el:1.15 Tue Feb 4 08:24:34 2003 --- emacs/lisp/progmodes/cc-compat.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1994-1997 Barry A. Warsaw ;; Maintainer: bug-cc-mode@gnu.org ;; Created: August 1994, split from cc-mode.el ;; Version: See cc-mode.el --- 1,9 ---- ;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1994-1999 Barry A. Warsaw ;; Maintainer: bug-cc-mode@gnu.org ;; Created: August 1994, split from cc-mode.el ;; Version: See cc-mode.el *************** *** 51,57 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) (cc-require 'cc-vars) --- 50,56 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) (cc-require 'cc-vars) *************** *** 106,112 **** (if (eq (char-before) ?{) (forward-char -1) (goto-char (cdr langelem))) ! (let* ((curcol (save-excursion (goto-char (cdr langelem)) (current-column))) (bocm-lossage --- 105,111 ---- (if (eq (char-before) ?{) (forward-char -1) (goto-char (cdr langelem))) ! (let* ((curcol (save-excursion (goto-char (cdr langelem)) (current-column))) (bocm-lossage *************** *** 138,144 **** (defun cc-block-close-offset (langelem) (save-excursion (let* ((here (point)) ! bracep (curcol (progn (goto-char (cdr langelem)) (current-column))) --- 137,143 ---- (defun cc-block-close-offset (langelem) (save-excursion (let* ((here (point)) ! bracep (curcol (progn (goto-char (cdr langelem)) (current-column))) *************** *** 154,160 **** (current-column)))) (- bocm-lossage curcol (if bracep 0 c-indent-level))))) ! (defun cc-substatement-open-offset (langelem) (+ c-continued-statement-offset c-continued-brace-offset)) --- 153,159 ---- (current-column)))) (- bocm-lossage curcol (if bracep 0 c-indent-level))))) ! (defun cc-substatement-open-offset (langelem) (+ c-continued-statement-offset c-continued-brace-offset)) From MAILER-DAEMON Thu Jul 03 09:04:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3ko-0004f8-GF for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:04:02 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3I8-00077R-6Y for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:34:24 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3HN-0006RY-5x for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:40 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fu-0006HS-Lg for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:06 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Er-0005GK-1M for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:01 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-align.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 13:04:00 -0000 Index: emacs/lisp/progmodes/cc-align.el diff -c emacs/lisp/progmodes/cc-align.el:1.19 emacs/lisp/progmodes/cc-align.el:1.20 *** emacs/lisp/progmodes/cc-align.el:1.19 Tue May 6 13:44:11 2003 --- emacs/lisp/progmodes/cc-align.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-align.el --- custom indentation functions for CC Mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-align.el --- custom indentation functions for CC Mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 39,54 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) (cc-require 'cc-vars) - (cc-require 'cc-langs) (cc-require 'cc-engine) ;; Standard indentation line-ups (defun c-lineup-topmost-intro-cont (langelem) "Line up declaration continuation lines zero or one indentation step. For lines in the \"header\" of a definition, zero is used. For other --- 38,64 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) (cc-require 'cc-vars) (cc-require 'cc-engine) ;; Standard indentation line-ups + ;; Calling convention: + ;; + ;; The single argument is a cons cell containing the syntactic symbol + ;; in the car, and the relpos (a.k.a. anchor position) in the cdr. + ;; The cdr may be nil for syntactic symbols which doesn't have an + ;; associated relpos. + ;; + ;; Some syntactic symbols provide more information, usually more + ;; interesting positions. The complete list for the syntactic element + ;; (beginning with the symbol itself) is available in + ;; `c-syntactic-element'. + (defun c-lineup-topmost-intro-cont (langelem) "Line up declaration continuation lines zero or one indentation step. For lines in the \"header\" of a definition, zero is used. For other *************** *** 88,104 **** (defun c-lineup-arglist (langelem) "Line up the current argument line under the first argument. Works with: arglist-cont-nonempty, arglist-close." (save-excursion ! (beginning-of-line) ! (let ((containing-sexp (c-most-enclosing-brace (c-parse-state)))) ! (goto-char (1+ containing-sexp)) ! (let ((eol (c-point 'eol))) (c-forward-syntactic-ws) (when (< (point) eol) ! (goto-char (1+ containing-sexp)) ! (skip-chars-forward " \t"))) ! (vector (current-column))))) ;; Contributed by Kevin Ryde . (defun c-lineup-argcont (elem) --- 98,152 ---- (defun c-lineup-arglist (langelem) "Line up the current argument line under the first argument. + As a special case, if an argument on the same line as the open + parenthesis starts with a brace block opener, the indentation is + `c-basic-offset' only. This is intended as a \"DWIM\" measure in + cases like macros that contains statement blocks, e.g: + + A_VERY_LONG_MACRO_NAME ({ + some (code, with + long, lines * in[it]); + }); + <--> c-basic-offset + + This is motivated partly because it's more in line with how code + blocks are handled, and partly since it approximates the behavior of + earlier CC Mode versions, which due to inaccurate analysis tended to + indent such cases this way. + Works with: arglist-cont-nonempty, arglist-close." (save-excursion ! (goto-char (1+ (elt c-syntactic-element 2))) ! ! ;; Don't stop in the middle of a special brace list opener ! ;; like "({". ! (when c-special-brace-lists ! (let ((special-list (c-looking-at-special-brace-list))) ! (when special-list ! (goto-char (+ (car (car special-list)) 2))))) ! ! (let ((savepos (point)) ! (eol (c-point 'eol))) ! ! ;; Find out if an argument on the same line starts with an ! ;; unclosed open brace paren. Note similar code in ! ;; `c-lineup-close-paren' and ! ;; `c-lineup-arglist-close-under-paren'. ! (if (and (c-syntactic-re-search-forward "{" eol t t) ! (looking-at c-syntactic-eol) ! (progn (backward-char) ! (not (c-looking-at-special-brace-list))) ! (progn (c-backward-syntactic-ws) ! (or (= (point) savepos) ! (eq (char-before) ?,)))) ! c-basic-offset ! ! ;; Normal case. Indent to the token after the arglist open paren. ! (goto-char savepos) (c-forward-syntactic-ws) (when (< (point) eol) ! (goto-char savepos) ! (skip-chars-forward " \t")) ! (vector (current-column)))))) ;; Contributed by Kevin Ryde . (defun c-lineup-argcont (elem) *************** *** 118,149 **** (save-excursion (beginning-of-line) - (let ((bol (point))) - - ;; Previous line ending in a comma means we're the start of an - ;; argument. This should quickly catch most cases not for us. - (c-backward-syntactic-ws) - (let ((c (char-before))) - (unless (eq c ?,) ! ;; In a gcc asm, ":" on the previous line means the start of an ! ;; argument. And lines starting with ":" are not for us, don't ! ;; want them to indent to the preceding operand. ! (let ((gcc-asm (save-excursion ! (goto-char bol) ! (c-in-gcc-asm-p)))) ! (unless (and gcc-asm ! (or (eq c ?:) ! (save-excursion ! (goto-char bol) ! (looking-at "[ \t]*:")))) ! (c-lineup-argcont-scan (if gcc-asm ?:)) ! (vector (current-column))))))))) (defun c-lineup-argcont-scan (&optional other-match) ;; Find the start of an argument, for `c-lineup-argcont'. ! (when (eq 0 (c-backward-token-1 1 t)) (let ((c (char-after))) (if (or (eq c ?,) (eq c other-match)) (progn --- 166,211 ---- (save-excursion (beginning-of-line) ! (when (eq (car elem) 'arglist-cont-nonempty) ! ;; Our argument list might not be the innermost one. If it ! ;; isn't, go back to the last position in it. We do this by ! ;; stepping back over open parens until we get to the open paren ! ;; of our argument list. ! (let ((open-paren (elt c-syntactic-element 2)) ! (paren-state (c-parse-state))) ! (while (not (eq (car paren-state) open-paren)) ! (goto-char (car paren-state)) ! (setq paren-state (cdr paren-state))))) ! ! (let ((start (point)) c) ! ! (when (bolp) ! ;; Previous line ending in a comma means we're the start of an ! ;; argument. This should quickly catch most cases not for us. ! ;; This case is only applicable if we're the innermost arglist. ! (c-backward-syntactic-ws) ! (setq c (char-before))) ! ! (unless (eq c ?,) ! ;; In a gcc asm, ":" on the previous line means the start of an ! ;; argument. And lines starting with ":" are not for us, don't ! ;; want them to indent to the preceding operand. ! (let ((gcc-asm (save-excursion ! (goto-char start) ! (c-in-gcc-asm-p)))) ! (unless (and gcc-asm ! (or (eq c ?:) ! (save-excursion ! (goto-char start) ! (looking-at "[ \t]*:")))) ! (c-lineup-argcont-scan (if gcc-asm ?:)) ! (vector (current-column)))))))) (defun c-lineup-argcont-scan (&optional other-match) ;; Find the start of an argument, for `c-lineup-argcont'. ! (when (zerop (c-backward-token-2 1 t)) (let ((c (char-after))) (if (or (eq c ?,) (eq c other-match)) (progn *************** *** 152,159 **** (c-lineup-argcont-scan other-match))))) (defun c-lineup-arglist-intro-after-paren (langelem) ! "Line up a line just after the open paren of the surrounding paren or ! brace block. Works with: defun-block-intro, brace-list-intro, statement-block-intro, statement-case-intro, arglist-intro." --- 214,221 ---- (c-lineup-argcont-scan other-match))))) (defun c-lineup-arglist-intro-after-paren (langelem) ! "Line up a line to just after the open paren of the surrounding paren ! or brace block. Works with: defun-block-intro, brace-list-intro, statement-block-intro, statement-case-intro, arglist-intro." *************** *** 164,179 **** (vector (1+ (current-column))))) (defun c-lineup-arglist-close-under-paren (langelem) ! "Line up a closing paren line under the corresponding open paren. ! Works with: defun-close, class-close, inline-close, block-close, ! brace-list-close, arglist-close, extern-lang-close, namespace-close ! \(for most of these, a zero offset will normally produce the same ! result, though)." (save-excursion ! (beginning-of-line) ! (backward-up-list 1) ! (vector (current-column)))) (defun c-lineup-close-paren (langelem) "Line up the closing paren under its corresponding open paren if the --- 226,304 ---- (vector (1+ (current-column))))) (defun c-lineup-arglist-close-under-paren (langelem) ! "Line up a line under the enclosing open paren. ! Normally used to line up a closing paren in the same column as its ! corresponding open paren, but can also be used with arglist-cont and ! arglist-cont-nonempty to line up all lines inside a parenthesis under ! the open paren. ! ! As a special case, if a brace block is opened at the same line as the ! open parenthesis of the argument list, the indentation is ! `c-basic-offset' only. See `c-lineup-arglist' for further discussion ! of this \"DWIM\" measure. ! ! Works with: Almost all symbols, but are typically most useful on ! arglist-close, brace-list-close, arglist-cont and arglist-cont-nonempty." ! (save-excursion ! (let (special-list paren-start savepos) ! (if (memq (car langelem) '(arglist-cont-nonempty arglist-close)) ! (goto-char (elt c-syntactic-element 2)) ! (beginning-of-line) ! (c-go-up-list-backward)) ! ! (if (and c-special-brace-lists ! (setq special-list (c-looking-at-special-brace-list))) ! ;; Don't stop in the middle of a special brace list opener ! ;; like "({". ! (progn ! (setq paren-start (car (car special-list))) ! (goto-char (+ paren-start 2))) ! (setq paren-start (point)) ! (forward-char 1)) ! ! (setq savepos (point)) ! ;; Find out if an argument on the same line starts with an ! ;; unclosed open brace paren. Note similar code in ! ;; `c-lineup-arglist' and `c-lineup-close-paren'. ! (if (and (c-syntactic-re-search-forward "{" (c-point 'eol) t t) ! (looking-at c-syntactic-eol) ! (progn (backward-char) ! (not (c-looking-at-special-brace-list))) ! (progn (c-backward-syntactic-ws) ! (or (= (point) savepos) ! (eq (char-before) ?,)))) ! c-basic-offset ! ;; Normal case. Indent to the arglist open paren. ! (goto-char paren-start) ! (vector (current-column)))))) ! ! (defun c-lineup-arglist-operators (langelem) ! "Line up lines starting with an infix operator under the open paren. ! Return nil on lines that don't start with an operator, to leave those ! cases to other lineup functions. Example: ! ! if ( x < 10 ! || at_limit (x, <- c-lineup-arglist-operators ! list) <- c-lineup-arglist-operators returns nil ! ) ! ! Since this function doesn't do anything for lines without an infix ! operator you typically want to use it together with some other lineup ! settings, e.g. as follows \(the arglist-close setting is just a ! suggestion to get a consistent style): ! ! \(c-set-offset 'arglist-cont '(c-lineup-arglist-operators 0)) ! \(c-set-offset 'arglist-cont-nonempty '(c-lineup-arglist-operators ! c-lineup-arglist)) ! \(c-set-offset 'arglist-close '(c-lineup-arglist-close-under-paren)) ! ! Works with: arglist-cont, arglist-cont-nonempty." (save-excursion ! (back-to-indentation) ! (when (looking-at "[-+|&*%<>=]\\|\\(/[^/*]\\)") ! ;; '-' can be both an infix and a prefix operator, but I'm lazy now.. ! (c-lineup-arglist-close-under-paren langelem)))) (defun c-lineup-close-paren (langelem) "Line up the closing paren under its corresponding open paren if the *************** *** 184,208 **** char ** int, char ** ) <-> ) <- c-lineup-close-paren ! Works with: defun-close, class-close, inline-close, block-close, ! brace-list-close, arglist-close, extern-lang-close, namespace-close." (save-excursion ! (condition-case nil ! (let (opencol spec) ! (beginning-of-line) ! (backward-up-list 1) ! (setq spec (c-looking-at-special-brace-list)) ! (if spec (goto-char (car (car spec)))) ! (setq opencol (current-column)) ! (forward-char 1) ! (if spec (progn ! (c-forward-syntactic-ws) ! (forward-char 1))) ! (c-forward-syntactic-ws (c-point 'eol)) ! (if (eolp) ! 0 ! (vector opencol))) ! (error nil)))) (defun c-lineup-streamop (langelem) "Line up C++ stream operators under each other. --- 309,353 ---- char ** int, char ** ) <-> ) <- c-lineup-close-paren ! As a special case, if a brace block is opened at the same line as the ! open parenthesis of the argument list, the indentation is ! `c-basic-offset' instead of the open paren column. See ! `c-lineup-arglist' for further discussion of this \"DWIM\" measure. ! ! Works with: All *-close symbols." (save-excursion ! (beginning-of-line) ! (c-go-up-list-backward) ! ! (let ((spec (c-looking-at-special-brace-list)) savepos argstart) ! (if spec (goto-char (car (car spec)))) ! (setq savepos (point)) ! (forward-char 1) ! (when spec ! (c-forward-syntactic-ws) ! (forward-char 1)) ! ! (if (looking-at c-syntactic-eol) ! ;; The arglist is "empty". ! 0 ! ! ;; Find out if an argument on the same line starts with an ! ;; unclosed open brace paren. Note similar code in ! ;; `c-lineup-arglist' and ! ;; `c-lineup-arglist-close-under-paren'. ! (setq argstart (point)) ! (if (and (c-syntactic-re-search-forward "{" (c-point 'eol) t t) ! (looking-at c-syntactic-eol) ! (progn (backward-char) ! (not (c-looking-at-special-brace-list))) ! (progn (c-backward-syntactic-ws) ! (or (= (point) argstart) ! (eq (char-before) ?,)))) ! c-basic-offset ! ! ;; Normal case. Indent to the arglist open paren. ! (goto-char savepos) ! (vector (current-column))))))) (defun c-lineup-streamop (langelem) "Line up C++ stream operators under each other. *************** *** 232,237 **** --- 377,383 ---- Works with: inher-cont, member-init-cont." (save-excursion + (back-to-indentation) (let* ((eol (c-point 'eol)) (here (point)) (char-after-ip (progn *************** *** 253,264 **** (if (or (eolp) (looking-at c-comment-start-regexp)) (c-forward-syntactic-ws here)) ! (vector (current-column)) ))) (defun c-lineup-java-inher (langelem) "Line up Java implements and extends declarations. ! If class names follows on the same line as the implements/extends keyword, they are lined up under each other. Otherwise, they are indented by adding `c-basic-offset' to the column of the keyword. E.g: --- 399,411 ---- (if (or (eolp) (looking-at c-comment-start-regexp)) (c-forward-syntactic-ws here)) ! (if (< (point) here) ! (vector (current-column))) ))) (defun c-lineup-java-inher (langelem) "Line up Java implements and extends declarations. ! If class names follow on the same line as the implements/extends keyword, they are lined up under each other. Otherwise, they are indented by adding `c-basic-offset' to the column of the keyword. E.g: *************** *** 279,285 **** (defun c-lineup-java-throws (langelem) "Line up Java throws declarations. ! If exception names follows on the same line as the throws keyword, they are lined up under each other. Otherwise, they are indented by adding `c-basic-offset' to the column of the throws keyword. The throws keyword itself is also indented by `c-basic-offset' from the --- 426,432 ---- (defun c-lineup-java-throws (langelem) "Line up Java throws declarations. ! If exception names follow on the same line as the throws keyword, they are lined up under each other. Otherwise, they are indented by adding `c-basic-offset' to the column of the throws keyword. The throws keyword itself is also indented by `c-basic-offset' from the *************** *** 295,305 **** (let* ((lim (1- (c-point 'bol))) (throws (catch 'done (goto-char (cdr langelem)) ! (while (zerop (c-forward-token-1 1 t lim)) (if (looking-at "throws\\>[^_]") (throw 'done t)))))) (if throws ! (if (zerop (c-forward-token-1 1 nil (c-point 'eol))) (vector (current-column)) (back-to-indentation) (vector (+ (current-column) c-basic-offset))) --- 442,452 ---- (let* ((lim (1- (c-point 'bol))) (throws (catch 'done (goto-char (cdr langelem)) ! (while (zerop (c-forward-token-2 1 t lim)) (if (looking-at "throws\\>[^_]") (throw 'done t)))))) (if throws ! (if (zerop (c-forward-token-2 1 nil (c-point 'eol))) (vector (current-column)) (back-to-indentation) (vector (+ (current-column) c-basic-offset))) *************** *** 470,476 **** (cond ;; CASE 1: preserve aligned comments ((save-excursion ! (and (c-forward-comment -1) (= col (current-column)))) (vector col)) ; Return an absolute column. ;; indent as specified by c-comment-only-line-offset --- 617,623 ---- (cond ;; CASE 1: preserve aligned comments ((save-excursion ! (and (c-backward-single-comment) (= col (current-column)))) (vector col)) ; Return an absolute column. ;; indent as specified by c-comment-only-line-offset *************** *** 534,579 **** the current line contains an equal sign too, try to align it with the first one. ! Works with: statement-cont, arglist-cont, arglist-cont-nonempty." ! (save-excursion ! (let ((equalp (save-excursion ! (goto-char (c-point 'boi)) ! (let ((eol (c-point 'eol))) ! (c-forward-token-1 0 t eol) ! (while (and (not (eq (char-after) ?=)) ! (= (c-forward-token-1 1 t eol) 0)))) ! (and (eq (char-after) ?=) ! (- (point) (c-point 'boi))))) ! donep) ! (if (cdr langelem) (goto-char (cdr langelem))) ! (while (and (not donep) ! (< (point) (c-point 'eol))) ! (skip-chars-forward "^=" (c-point 'eol)) ! (if (c-in-literal (cdr langelem)) ! (forward-char 1) ! (setq donep t))) ! (if (or (not (eq (char-after) ?=)) (save-excursion - (forward-char 1) (c-forward-syntactic-ws (c-point 'eol)) (eolp))) ! ;; there's no equal sign on the line c-basic-offset ;; calculate indentation column after equals and ws, unless ;; our line contains an equals sign (if (not equalp) (progn - (forward-char 1) (skip-chars-forward " \t") (setq equalp 0))) (vector (- (current-column) equalp))) ))) (defun c-lineup-cascaded-calls (langelem) "Line up \"cascaded calls\" under each other. ! If the line begins with \"->\" and the preceding line ends with one or ! more function calls preceded by \"->\", then the arrow is lined up with ! the first of those \"->\". E.g: result = proc->add(17)->add(18) ->add(19) + <- c-lineup-cascaded-calls --- 681,749 ---- the current line contains an equal sign too, try to align it with the first one. ! Works with: topmost-intro-cont, statement-cont, arglist-cont, ! arglist-cont-nonempty." ! (let (startpos endpos equalp) ! ! (if (eq (car langelem) 'arglist-cont-nonempty) ! ;; If it's an arglist-cont-nonempty then we're only interested ! ;; in equal signs outside it. We don't search for a "=" on ! ;; the current line since that'd have a different nesting ! ;; compared to the one we should align with. ! (save-excursion ! (save-restriction ! (setq endpos (nth 2 c-syntactic-element)) ! (narrow-to-region (cdr langelem) endpos) ! (if (setq startpos (c-up-list-backward endpos)) ! (setq startpos (1+ startpos)) ! (setq startpos (cdr langelem))))) ! ! (setq startpos (cdr langelem) ! endpos (point)) ! ! ;; Find a syntactically relevant and unnested "=" token on the ! ;; current line. equalp is in that case set to the number of ! ;; columns to left shift the current line to align it with the ! ;; goal column. ! (save-excursion ! (beginning-of-line) ! (when (c-syntactic-re-search-forward ! ;; This regexp avoids matches on ==. ! "\\(\\=\\|[^=]\\)=\\([^=]\\|$\\)" ! (c-point 'eol) t t) ! (setq equalp (- (match-beginning 2) (c-point 'boi)))))) ! ! (save-excursion ! (goto-char startpos) ! (if (or (if (c-syntactic-re-search-forward ! "\\(\\=\\|[^=]\\)=\\([^=]\\|$\\)" ! (min endpos (c-point 'eol)) t t) ! (progn ! (goto-char (match-beginning 2)) ! nil) ! t) (save-excursion (c-forward-syntactic-ws (c-point 'eol)) (eolp))) ! ;; There's no equal sign on the line, or there is one but ! ;; nothing follows it. c-basic-offset + ;; calculate indentation column after equals and ws, unless ;; our line contains an equals sign (if (not equalp) (progn (skip-chars-forward " \t") (setq equalp 0))) + (vector (- (current-column) equalp))) ))) (defun c-lineup-cascaded-calls (langelem) "Line up \"cascaded calls\" under each other. ! If the line begins with \"->\" or \".\" and the preceding line ends ! with one or more function calls preceded by the same token, then the ! arrow is lined up with the first of those tokens. E.g: result = proc->add(17)->add(18) ->add(19) + <- c-lineup-cascaded-calls *************** *** 582,603 **** In any other situation nil is returned to allow use in list expressions. ! Works with: statement-cont, arglist-cont, arglist-cont-nonempty." ! (save-excursion ! (let ((bopl (c-point 'bopl)) col) (back-to-indentation) ! (when (and (looking-at "->") ! (= (c-backward-token-1 1 t bopl) 0) ! (eq (char-after) ?\() ! (= (c-backward-token-1 3 t bopl) 0) ! (looking-at "->")) ! (setq col (current-column)) ! (while (and (= (c-backward-token-1 1 t bopl) 0) ! (eq (char-after) ?\() ! (= (c-backward-token-1 3 t bopl) 0) ! (looking-at "->")) ! (setq col (current-column))) ! (vector col))))) (defun c-lineup-template-args (langelem) "Line up template argument lines under the first argument. --- 752,814 ---- In any other situation nil is returned to allow use in list expressions. ! Works with: topmost-intro-cont, statement-cont, arglist-cont, ! arglist-cont-nonempty." ! ! (if (and (eq (car langelem) 'arglist-cont-nonempty) ! (not (eq (nth 2 c-syntactic-element) ! (c-most-enclosing-brace (c-parse-state))))) ! ;; The innermost open paren is not our one, so don't do ! ;; anything. This can occur for arglist-cont-nonempty with ! ;; nested arglist starts on the same line. ! nil ! ! (save-excursion (back-to-indentation) ! (let ((operator (and (looking-at "->\\|\\.") ! (regexp-quote (match-string 0)))) ! (stmt-start (cdr langelem)) col) ! ! (when (and operator ! (looking-at operator) ! (zerop (c-backward-token-2 1 t stmt-start)) ! (eq (char-after) ?\() ! (zerop (c-backward-token-2 2 t stmt-start)) ! (looking-at operator)) ! (setq col (current-column)) ! ! (while (and (zerop (c-backward-token-2 1 t stmt-start)) ! (eq (char-after) ?\() ! (zerop (c-backward-token-2 2 t stmt-start)) ! (looking-at operator)) ! (setq col (current-column))) ! ! (vector col)))))) ! ! (defun c-lineup-string-cont (langelem) ! "Line up a continued string under the one it continues. ! A continued string in this sense is where a string literal follows ! directly after another one. E.g: ! ! result = prefix + \"A message \" ! \"string.\"; <- c-lineup-string-cont ! ! Nil is returned in other situations, to allow stacking with other ! lineup functions. ! ! Works with: topmost-intro-cont, statement-cont, arglist-cont, ! arglist-cont-nonempty." ! (save-excursion ! (back-to-indentation) ! (and (looking-at "\\s\"") ! (let ((quote (char-after)) pos) ! (while (and (progn (c-backward-syntactic-ws) ! (eq (char-before) quote)) ! (c-safe (c-backward-sexp) t) ! (/= (setq pos (point)) (c-point 'boi)))) ! (when pos ! (goto-char pos) ! (vector (current-column))))))) (defun c-lineup-template-args (langelem) "Line up template argument lines under the first argument. *************** *** 610,620 **** (beginning-of-line) (backward-up-list 1) (if (and (eq (char-after) ?<) ! (zerop (c-forward-token-1 1 nil (c-point 'eol)))) (vector (current-column)))))) (defun c-lineup-ObjC-method-call (langelem) ! "Line up selector args as elisp-mode does with function args: Go to the position right after the message receiver, and if you are at the end of the line, indent the current line c-basic-offset columns from the opening bracket; otherwise you are looking at the first --- 821,831 ---- (beginning-of-line) (backward-up-list 1) (if (and (eq (char-after) ?<) ! (zerop (c-forward-token-2 1 nil (c-point 'eol)))) (vector (current-column)))))) (defun c-lineup-ObjC-method-call (langelem) ! "Line up selector args as Emacs Lisp mode does with function args: Go to the position right after the message receiver, and if you are at the end of the line, indent the current line c-basic-offset columns from the opening bracket; otherwise you are looking at the first *************** *** 736,743 **** second `c-basic-offset' is added. Works with: defun-close, defun-block-intro, block-close, ! brace-list-close, brace-list-intro, statement-block-intro, inclass, ! inextern-lang, innamespace." (save-excursion (goto-char (cdr langelem)) (back-to-indentation) --- 947,954 ---- second `c-basic-offset' is added. Works with: defun-close, defun-block-intro, block-close, ! brace-list-close, brace-list-intro, statement-block-intro and all in* ! symbols, e.g. inclass and inextern-lang." (save-excursion (goto-char (cdr langelem)) (back-to-indentation) *************** *** 775,787 **** } while (0) <-> } while (0) <- c-lineup-cpp-define The relative indentation returned by `c-lineup-cpp-define' is zero and ! two, respectively, in these two examples. They are then added to the two column indentation that statement-block-intro gives in both cases here. If the relative indentation is zero, then nil is returned instead. ! This useful in a list expression to specify the default indentation on ! the top level. If `c-syntactic-indentation-in-macros' is nil then this function keeps the current indentation, except for empty lines \(ignoring the ending --- 986,998 ---- } while (0) <-> } while (0) <- c-lineup-cpp-define The relative indentation returned by `c-lineup-cpp-define' is zero and ! two, respectively, in these two examples. They are then added to the two column indentation that statement-block-intro gives in both cases here. If the relative indentation is zero, then nil is returned instead. ! That is useful in a list expression to specify the default indentation ! on the top level. If `c-syntactic-indentation-in-macros' is nil then this function keeps the current indentation, except for empty lines \(ignoring the ending *************** *** 855,860 **** --- 1066,1078 ---- (and c-opt-asm-stmt-key + ;; Don't do anything if the innermost open paren isn't our one. + ;; This can occur for arglist-cont-nonempty with nested arglist + ;; starts on the same line. + (or (not (eq (car elem) 'arglist-cont-nonempty)) + (eq (elt c-syntactic-element 2) + (c-most-enclosing-brace (c-parse-state)))) + ;; Find the ":" to align to. Look for this first so as to quickly ;; eliminate pretty much all cases which are not for us. (re-search-backward "^[ \t]*:[ \t]*\\(.\\)?" (cdr elem) t) *************** *** 893,899 **** (let (langelem) (if (and (eq syntax 'block-close) (setq langelem (assq 'block-close c-syntactic-context)) ! (progn (goto-char (cdr langelem)) (if (eq (char-after) ?{) (c-safe (c-forward-sexp -1))) (looking-at "\\[^_]"))) --- 1111,1117 ---- (let (langelem) (if (and (eq syntax 'block-close) (setq langelem (assq 'block-close c-syntactic-context)) ! (progn (goto-char (elt langelem 1)) (if (eq (char-after) ?{) (c-safe (c-forward-sexp -1))) (looking-at "\\[^_]"))) *************** *** 904,930 **** "Imposes a minimum indentation for lines inside a top-level construct. The variable `c-label-minimum-indentation' specifies the minimum indentation amount." ! (let ((non-top-levels '(defun-block-intro statement statement-cont ! statement-block-intro statement-case-intro ! statement-case-open substatement substatement-open ! case-label label do-while-closure else-clause ! )) ! (syntax c-syntactic-context) ! langelem) ! (while syntax ! (setq langelem (car (car syntax)) ! syntax (cdr syntax)) ! ;; don't adjust macro or comment-only lines ! (cond ((memq langelem '(cpp-macro comment-intro)) ! (setq syntax nil)) ! ((memq langelem non-top-levels) ! (save-excursion ! (setq syntax nil) ! (back-to-indentation) ! (if (zerop (current-column)) ! (insert-char ?\ c-label-minimum-indentation t)) ! )) ! )))) ;; Useful for c-hanging-semi&comma-criteria --- 1122,1153 ---- "Imposes a minimum indentation for lines inside a top-level construct. The variable `c-label-minimum-indentation' specifies the minimum indentation amount." ! ! ;; Don't adjust macro or comment-only lines. ! (unless (or (assq 'cpp-macro c-syntactic-context) ! (assq 'comment-intro c-syntactic-context)) ! ! (let ((paren-state (save-excursion ! ;; Get the parenthesis state, but skip past ! ;; an initial closing paren on the line since ! ;; the close brace of a block shouldn't be ! ;; considered to be inside the block. ! (back-to-indentation) ! (when (looking-at "\\s\)") ! (forward-char)) ! (c-parse-state)))) ! ! ;; Search for an enclosing brace on paren-state. ! (while (and paren-state ! (not (and (integer-or-marker-p (car paren-state)) ! (eq (char-after (car paren-state)) ?{)))) ! (setq paren-state (cdr paren-state))) ! ! (when paren-state ! (save-excursion ! (back-to-indentation) ! (if (zerop (current-column)) ! (insert-char ?\ c-label-minimum-indentation t))))))) ;; Useful for c-hanging-semi&comma-criteria From MAILER-DAEMON Thu Jul 03 09:05:00 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3X6-0001zb-Dx for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:49:52 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3LQ-0007Z1-TN for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:37:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3Il-00079P-J4 for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:35:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fw-0006Hf-FO for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:08 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Ev-0005H3-HT for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-menus.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:49:50 -0000 Index: emacs/lisp/progmodes/cc-menus.el diff -c emacs/lisp/progmodes/cc-menus.el:1.24 emacs/lisp/progmodes/cc-menus.el:1.25 *** emacs/lisp/progmodes/cc-menus.el:1.24 Tue Feb 4 08:24:34 2003 --- emacs/lisp/progmodes/cc-menus.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-menus.el --- imenu support for CC Mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-menus.el --- imenu support for CC Mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 39,49 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) ;; The things referenced in imenu, which we don't require. (cc-bytecomp-defvar imenu-case-fold-search) (cc-bytecomp-defvar imenu-generic-expression) (cc-bytecomp-defun imenu-progress-message) --- 38,51 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) ! ! (cc-require 'cc-defs) ;; The things referenced in imenu, which we don't require. (cc-bytecomp-defvar imenu-case-fold-search) (cc-bytecomp-defvar imenu-generic-expression) + (cc-bytecomp-defvar imenu-create-index-function) (cc-bytecomp-defun imenu-progress-message) *************** *** 71,80 **** (nil ,(concat "^\\<.*" ! "[^a-zA-Z0-9_:<>~]" ; match any non-identifier char ; (note: this can be `\n') "\\(" ! "\\([a-zA-Z0-9_:<>~]*::\\)?" ; match an operator "operator\\>[ \t]*" "\\(()\\|[^(]*\\)" ; special case for `()' operator "\\)" --- 73,82 ---- (nil ,(concat "^\\<.*" ! "[^" c-alnum "_:<>~]" ; match any non-identifier char ; (note: this can be `\n') "\\(" ! "\\([" c-alnum "_:<>~]*::\\)?" ; match an operator "operator\\>[ \t]*" "\\(()\\|[^(]*\\)" ; special case for `()' operator "\\)" *************** *** 93,99 **** (nil ,(concat "^" ! "\\([a-zA-Z_][a-zA-Z0-9_:<>~]*\\)" ; match function name "[ \t]*(" ; see above, BUT "[ \t]*\\([^ \t(*][^)]*\\)?)" ; the arg list must not start "[ \t]*[^ \t;(]" ; with an asterisk or parentheses --- 95,101 ---- (nil ,(concat "^" ! "\\([" c-alpha "_][" c-alnum "_:<>~]*\\)" ; match function name "[ \t]*(" ; see above, BUT "[ \t]*\\([^ \t(*][^)]*\\)?)" ; the arg list must not start "[ \t]*[^ \t;(]" ; with an asterisk or parentheses *************** *** 103,110 **** ,(concat "^\\<" ; line MUST start with word char "[^()]*" ; no parentheses before ! "[^a-zA-Z0-9_:<>~]" ; match any non-identifier char ! "\\([a-zA-Z_][a-zA-Z0-9_:<>~]*\\)" ; match function name "\\([ \t\n]\\|\\\\\n\\)*(" ; see above, BUT the arg list "\\([ \t\n]\\|\\\\\n\\)*\\([^ \t\n(*][^)]*\\)?)" ; must not start "\\([ \t\n]\\|\\\\\n\\)*[^ \t\n;(]" ; with an asterisk or parentheses --- 105,112 ---- ,(concat "^\\<" ; line MUST start with word char "[^()]*" ; no parentheses before ! "[^" c-alnum "_:<>~]" ; match any non-identifier char ! "\\([" c-alpha "_][" c-alnum "_:<>~]*\\)" ; match function name "\\([ \t\n]\\|\\\\\n\\)*(" ; see above, BUT the arg list "\\([ \t\n]\\|\\\\\n\\)*\\([^ \t\n(*][^)]*\\)?)" ; must not start "\\([ \t\n]\\|\\\\\n\\)*[^ \t\n;(]" ; with an asterisk or parentheses *************** *** 117,143 **** `((nil ,(concat "^\\<.*" ; line MUST start with word char ! "[^a-zA-Z0-9_]" ; match any non-identifier char ! "\\([a-zA-Z_][a-zA-Z0-9_]*\\)" ; match function name "[ \t]*" ; whitespace before macro name cc-imenu-c-prototype-macro-regexp "[ \t]*(" ; ws followed by first paren. "[ \t]*([^)]*)[ \t]*)[ \t]*[^ \t;]" ; see above ) 1))) ;; Class definitions ! ("Class" ,(concat "^" ; beginning of line is required "\\(template[ \t]*<[^>]+>[ \t]*\\)?" ; there may be a `template <...>' "\\(class\\|struct\\)[ \t]+" "\\(" ; the string we want to get ! "[a-zA-Z0-9_]+" ; class name "\\(<[^>]+>\\)?" ; possibly explicitly specialized "\\)" "\\([ \t\n]\\|\\\\\n\\)*[:{]" ) 3)) "Imenu generic expression for C++ mode. See `imenu-generic-expression'.") ! (defvar cc-imenu-c-generic-expression cc-imenu-c++-generic-expression "Imenu generic expression for C mode. See `imenu-generic-expression'.") --- 119,145 ---- `((nil ,(concat "^\\<.*" ; line MUST start with word char ! "[^" c-alnum "_]" ; match any non-identifier char ! "\\([" c-alpha "_][" c-alnum "_]*\\)" ; match function name "[ \t]*" ; whitespace before macro name cc-imenu-c-prototype-macro-regexp "[ \t]*(" ; ws followed by first paren. "[ \t]*([^)]*)[ \t]*)[ \t]*[^ \t;]" ; see above ) 1))) ;; Class definitions ! ("Class" ,(concat "^" ; beginning of line is required "\\(template[ \t]*<[^>]+>[ \t]*\\)?" ; there may be a `template <...>' "\\(class\\|struct\\)[ \t]+" "\\(" ; the string we want to get ! "[" c-alnum "_]+" ; class name "\\(<[^>]+>\\)?" ; possibly explicitly specialized "\\)" "\\([ \t\n]\\|\\\\\n\\)*[:{]" ) 3)) "Imenu generic expression for C++ mode. See `imenu-generic-expression'.") ! (defvar cc-imenu-c-generic-expression cc-imenu-c++-generic-expression "Imenu generic expression for C mode. See `imenu-generic-expression'.") *************** *** 145,165 **** (defvar cc-imenu-java-generic-expression `((nil ,(concat ! "^\\([ \t]\\)*" ! "\\([.A-Za-z0-9_-]+[ \t]+\\)?" ; type specs; there can be ! "\\([.A-Za-z0-9_-]+[ \t]+\\)?" ; more than 3 tokens, right? ! "\\([.A-Za-z0-9_-]+[ \t]*[[]?[]]?\\)" ! "\\([ \t]\\)" ! "\\([A-Za-z0-9_-]+\\)" ; the string we want to get ! "\\([ \t]*\\)+(" ! "[][a-zA-Z,_1-9\n \t]*" ; arguments ! ")[ \t]*" ! ; "[^;(]" ! "[,a-zA-Z_1-9\n \t]*{" ! ) 6)) "Imenu generic expression for Java mode. See `imenu-generic-expression'.") ! ;; *Warning for cc-mode developers* ;; ;; `cc-imenu-objc-generic-expression' elements depend on ;; `cc-imenu-c++-generic-expression'. So if you change this --- 147,170 ---- (defvar cc-imenu-java-generic-expression `((nil ,(concat ! "[" c-alpha "_][\]\[." c-alnum "_]+[ \t\n\r]+" ; type spec ! "\\([" c-alpha "_][" c-alnum "_]+\\)" ; method name ! "[ \t\n\r]*" ! ;; An argument list that is either empty or contains at least ! ;; two identifiers with only space between them. This avoids ! ;; matching e.g. "else if (foo)". ! (concat "([ \t\n\r]*" ! "\\([\]\[.," c-alnum "_]+" ! "[ \t\n\r]+" ! "[\]\[.," c-alnum "_]" ! "[\]\[.," c-alnum "_ \t\n\r]*" ! "\\)?)") ! "[.," c-alnum "_ \t\n\r]*" ! "{" ! ) 1)) "Imenu generic expression for Java mode. See `imenu-generic-expression'.") ! ;; *Warning for cc-mode developers* ;; ;; `cc-imenu-objc-generic-expression' elements depend on ;; `cc-imenu-c++-generic-expression'. So if you change this *************** *** 169,176 **** ;; order to know where the each regexp *group \\(foobar\\)* elements ;; are started. ;; ! ;; *-index variables are initialized during `cc-imenu-objc-generic-expression' ! ;; being initialized. ;; ;; Internal variables --- 174,181 ---- ;; order to know where the each regexp *group \\(foobar\\)* elements ;; are started. ;; ! ;; *-index variables are initialized during `cc-imenu-objc-generic-expression' ! ;; being initialized. ;; ;; Internal variables *************** *** 179,188 **** (defvar cc-imenu-objc-generic-expression-proto-index nil) (defvar cc-imenu-objc-generic-expression-objc-base-index nil) ! (defvar cc-imenu-objc-generic-expression ! (concat ;; ! ;; For C ;; ;; > Special case to match a line like `main() {}' ;; > e.g. no return type, not even on the previous line. --- 184,193 ---- (defvar cc-imenu-objc-generic-expression-proto-index nil) (defvar cc-imenu-objc-generic-expression-objc-base-index nil) ! (defvar cc-imenu-objc-generic-expression ! (concat ;; ! ;; For C ;; ;; > Special case to match a line like `main() {}' ;; > e.g. no return type, not even on the previous line. *************** *** 192,243 **** "\\|" ;; > General function name regexp ;; Pick a token by (match-string 3) ! (car (cdr (nth 2 cc-imenu-c++-generic-expression))) ; -> index += 2 (prog2 (setq cc-imenu-objc-generic-expression-general-func-index 3) "") ;; > Special case for definitions using phony prototype macros like: ;; > `int main _PROTO( (int argc,char *argv[]) )'. ! ;; Pick a token by (match-string 5) (if cc-imenu-c-prototype-macro-regexp ! (concat "\\|" (car (cdr (nth 3 cc-imenu-c++-generic-expression))) ; -> index += 1 ! (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 6) "") ) ! (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 5) "") "") ; -> index += 0 ! (prog2 (setq cc-imenu-objc-generic-expression-proto-index 5) "") ;; ;; For Objective-C ! ;; Pick a token by (match-string 5 or 6) ;; ! "\\|\\(" ! "^[-+][:a-zA-Z0-9()*_<>\n\t ]*[;{]" ; Methods ! "\\|" ! "^@interface[\t ]+[a-zA-Z0-9_]+[\t ]*:" ! "\\|" ! "^@interface[\t ]+[a-zA-Z0-9_]+[\t ]*([a-zA-Z0-9_]+)" ! "\\|" ;; For NSObject, NSProxy and Object... They don't have super class. ! "^@interface[\t ]+[a-zA-Z0-9_]+[\t ]*.*$" ! "\\|" ! "^@implementation[\t ]+[a-zA-Z0-9_]+[\t ]*([a-zA-Z0-9_]+)" ! "\\|" ! "^@implementation[\t ]+[a-zA-Z0-9_]+" ! "\\|" ! "^@protocol[\t ]+[a-zA-Z0-9_]+" "\\)") "Imenu generic expression for ObjC mode. See `imenu-generic-expression'.") ;; Imenu support for objective-c uses functions. (defsubst cc-imenu-objc-method-to-selector (method) "Return the objc selector style string of METHOD. ! Example: - perform: (SEL)aSelector withObject: object1 withObject: object2; /* METHOD */ => -perform:withObject:withObject:withObject: /* selector */" (let ((return "") ; String to be returned ! (p 0) ; Current scanning position in METHOD ! (pmax (length method)) ; char ; Current scanning target (betweenparen 0) ; CHAR is in parentheses. argreq ; An argument is required. --- 197,249 ---- "\\|" ;; > General function name regexp ;; Pick a token by (match-string 3) ! (car (cdr (nth 2 cc-imenu-c++-generic-expression))) ; -> index += 5 (prog2 (setq cc-imenu-objc-generic-expression-general-func-index 3) "") ;; > Special case for definitions using phony prototype macros like: ;; > `int main _PROTO( (int argc,char *argv[]) )'. ! ;; Pick a token by (match-string 8) (if cc-imenu-c-prototype-macro-regexp ! (concat "\\|" (car (cdr (nth 3 cc-imenu-c++-generic-expression))) ; -> index += 1 ! (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 9) "") ) ! (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 8) "") "") ; -> index += 0 ! (prog2 (setq cc-imenu-objc-generic-expression-proto-index 8) "") ;; ;; For Objective-C ! ;; Pick a token by (match-string 8 or 9) ;; ! "\\|\\(" ! "^[-+][:" c-alnum "()*_<>\n\t ]*[;{]" ; Methods ! "\\|" ! "^@interface[\t ]+[" c-alnum "_]+[\t ]*:" ! "\\|" ! "^@interface[\t ]+[" c-alnum "_]+[\t ]*([" c-alnum "_]+)" ! "\\|" ;; For NSObject, NSProxy and Object... They don't have super class. ! "^@interface[\t ]+[" c-alnum "_]+[\t ]*.*$" ! "\\|" ! "^@implementation[\t ]+[" c-alnum "_]+[\t ]*([" c-alnum "_]+)" ! "\\|" ! "^@implementation[\t ]+[" c-alnum "_]+" ! "\\|" ! "^@protocol[\t ]+[" c-alnum "_]+" "\\)") "Imenu generic expression for ObjC mode. See `imenu-generic-expression'.") ;; Imenu support for objective-c uses functions. (defsubst cc-imenu-objc-method-to-selector (method) "Return the objc selector style string of METHOD. ! Example: - perform: (SEL)aSelector withObject: object1 withObject: object2; /* METHOD */ => -perform:withObject:withObject:withObject: /* selector */" + ;; This function does not do any hidden buffer changes. (let ((return "") ; String to be returned ! (p 0) ; Current scanning position in METHOD ! (pmax (length method)) ; char ; Current scanning target (betweenparen 0) ; CHAR is in parentheses. argreq ; An argument is required. *************** *** 253,269 **** (and (<= ?A char) (<= char ?Z)) (and (<= ?0 char) (<= char ?9)) (= ?_ char))) ! (if argreq (setq inargvar t argreq nil) (setq return (concat return (char-to-string char))))) ;; Or a white space? ! ((and inargvar (or (eq ?\ char) (eq ?\n char)) (setq inargvar nil))) ;; Or a method separator? ;; If a method separator, the next token will be an argument variable. ! ((eq ?: char) ! (setq argreq t return (concat return (char-to-string char)))) ;; Or an open parentheses? ((eq ?\( char) --- 259,275 ---- (and (<= ?A char) (<= char ?Z)) (and (<= ?0 char) (<= char ?9)) (= ?_ char))) ! (if argreq (setq inargvar t argreq nil) (setq return (concat return (char-to-string char))))) ;; Or a white space? ! ((and inargvar (or (eq ?\ char) (eq ?\n char)) (setq inargvar nil))) ;; Or a method separator? ;; If a method separator, the next token will be an argument variable. ! ((eq ?: char) ! (setq argreq t return (concat return (char-to-string char)))) ;; Or an open parentheses? ((eq ?\( char) *************** *** 275,283 **** (defun cc-imenu-objc-remove-white-space (str) "Remove all spaces and tabs from STR." (let ((return "") (p 0) ! (max (length str)) char) (while (< p max) (setq char (aref str p)) --- 281,290 ---- (defun cc-imenu-objc-remove-white-space (str) "Remove all spaces and tabs from STR." + ;; This function does not do any hidden buffer changes. (let ((return "") (p 0) ! (max (length str)) char) (while (< p max) (setq char (aref str p)) *************** *** 289,300 **** (defun cc-imenu-objc-function () "imenu supports for objc-mode." (let (methodlist clist ;; ;; OBJC, Cnoreturn, Cgeneralfunc, Cproto are constants. ;; ! ;; *Warning for developers* ;; These constants depend on `cc-imenu-c++-generic-expression'. ;; (OBJC cc-imenu-objc-generic-expression-objc-base-index) --- 296,308 ---- (defun cc-imenu-objc-function () "imenu supports for objc-mode." + ;; This function does not do any hidden buffer changes. (let (methodlist clist ;; ;; OBJC, Cnoreturn, Cgeneralfunc, Cproto are constants. ;; ! ;; *Warning for developers* ;; These constants depend on `cc-imenu-c++-generic-expression'. ;; (OBJC cc-imenu-objc-generic-expression-objc-base-index) *************** *** 310,322 **** toplist stupid str ! str2 (intflen (length "@interface")) (implen (length "@implementation")) (prtlen (length "@protocol")) (func ;; ! ;; Does this emacs has buffer-substring-no-properties? ;; (if (fboundp 'buffer-substring-no-properties) 'buffer-substring-no-properties --- 318,330 ---- toplist stupid str ! str2 (intflen (length "@interface")) (implen (length "@implementation")) (prtlen (length "@protocol")) (func ;; ! ;; Does this emacs has buffer-substring-no-properties? ;; (if (fboundp 'buffer-substring-no-properties) 'buffer-substring-no-properties *************** *** 326,332 **** ;; (while (re-search-backward cc-imenu-objc-generic-expression nil t) (imenu-progress-message stupid) ! (setq langnum (if (match-beginning OBJC) OBJC (cond ((match-beginning Cproto) Cproto) --- 334,340 ---- ;; (while (re-search-backward cc-imenu-objc-generic-expression nil t) (imenu-progress-message stupid) ! (setq langnum (if (match-beginning OBJC) OBJC (cond ((match-beginning Cproto) Cproto) *************** *** 334,340 **** ((match-beginning Cnoreturn) Cnoreturn)))) (setq str (funcall func (match-beginning langnum) (match-end langnum))) ;; ! (cond ;; ;; C ;; --- 342,348 ---- ((match-beginning Cnoreturn) Cnoreturn)))) (setq str (funcall func (match-beginning langnum) (match-end langnum))) ;; ! (cond ;; ;; C ;; *************** *** 342,348 **** (setq clist (cons (cons str (match-beginning langnum)) clist))) ;; ;; ObjC ! ;; ;; An instance Method ((eq (aref str 0) ?-) (setq str (concat "-" (cc-imenu-objc-method-to-selector str))) --- 350,356 ---- (setq clist (cons (cons str (match-beginning langnum)) clist))) ;; ;; ObjC ! ;; ;; An instance Method ((eq (aref str 0) ?-) (setq str (concat "-" (cc-imenu-objc-method-to-selector str))) *************** *** 355,364 **** (setq methodlist (cons (cons str (match-beginning langnum)) methodlist))) ! ;; Interface or implementation or protocol ((eq (aref str 0) ?@) (setq classcount (1+ classcount)) ! (cond ((and (> (length str) implen) (string= (substring str 0 implen) "@implementation")) (setq str (substring str implen) --- 363,372 ---- (setq methodlist (cons (cons str (match-beginning langnum)) methodlist))) ! ;; Interface or implementation or protocol ((eq (aref str 0) ?@) (setq classcount (1+ classcount)) ! (cond ((and (> (length str) implen) (string= (substring str 0 implen) "@implementation")) (setq str (substring str implen) *************** *** 376,382 **** (setq toplist (cons nil (cons (cons str methodlist) toplist)) methodlist nil)))) ! ;; (imenu-progress-message stupid 100) (if (eq (car toplist) nil) (setq toplist (cdr toplist))) --- 384,390 ---- (setq toplist (cons nil (cons (cons str methodlist) toplist)) methodlist nil)))) ! ;; (imenu-progress-message stupid 100) (if (eq (car toplist) nil) (setq toplist (cdr toplist))) *************** *** 395,401 **** (setq last (cdr last))) (setcdr last clist)))) ;; Add C lang tokens as a sub menu ! (setq toplist (cons (cons "C" clist) toplist))) ;; toplist )) --- 403,410 ---- (setq last (cdr last))) (setcdr last clist)))) ;; Add C lang tokens as a sub menu ! (if clist ! (setq toplist (cons (cons "C" clist) toplist)))) ;; toplist )) *************** *** 404,412 **** ; ()) ; FIXME: Please contribute one! ! (defun cc-imenu-init (mode-generic-expression) (setq imenu-generic-expression mode-generic-expression ! imenu-case-fold-search nil)) (cc-provide 'cc-menus) --- 413,425 ---- ; ()) ; FIXME: Please contribute one! ! (defun cc-imenu-init (mode-generic-expression ! &optional mode-create-index-function) ! ;; This function does not do any hidden buffer changes. (setq imenu-generic-expression mode-generic-expression ! imenu-case-fold-search nil) ! (when mode-create-index-function ! (setq imenu-create-index-function mode-create-index-function))) (cc-provide 'cc-menus) From MAILER-DAEMON Thu Jul 03 09:06:17 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3lN-0004rz-IF for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:04:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3kn-0004em-Mu for emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:04:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3H8-0006Nq-UK for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:29 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fu-0006HY-RI for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:07 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Et-0005Gi-7I for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:03 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-defs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 13:04:35 -0000 Index: emacs/lisp/progmodes/cc-defs.el diff -c emacs/lisp/progmodes/cc-defs.el:1.18 emacs/lisp/progmodes/cc-defs.el:1.19 *** emacs/lisp/progmodes/cc-defs.el:1.18 Tue Feb 4 08:24:34 2003 --- emacs/lisp/progmodes/cc-defs.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-defs.el --- compile time definitions for CC Mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-defs.el --- compile time definitions for CC Mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 31,36 **** --- 30,38 ---- ;;; Commentary: + ;; This file contains macros, defsubsts, and various other things that + ;; must be loaded early both during compilation and at runtime. + ;;; Code: (eval-when-compile *************** *** 39,47 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) ! ;; cc-mode-19.el contains compatibility macros that should be used if ;; needed. (eval-and-compile (if (or (not (fboundp 'functionp)) --- 41,69 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) ! ! ;; `require' in XEmacs doesn't have the third NOERROR argument. ! (condition-case nil (require 'regexp-opt) (file-error nil)) ! ! ;; Silence the compiler. ! (cc-bytecomp-defvar c-enable-xemacs-performance-kludge-p) ; In cc-vars.el ! (cc-bytecomp-defvar c-emacs-features) ; In cc-vars.el ! (cc-bytecomp-defun buffer-syntactic-context-depth) ; XEmacs ! (cc-bytecomp-defun region-active-p) ; XEmacs ! (cc-bytecomp-defvar zmacs-region-stays) ; XEmacs ! (cc-bytecomp-defvar zmacs-regions) ; XEmacs ! (cc-bytecomp-defvar mark-active) ; Emacs ! (cc-bytecomp-defvar deactivate-mark) ; Emacs ! (cc-bytecomp-defvar inhibit-point-motion-hooks) ; Emacs ! (cc-bytecomp-defvar parse-sexp-lookup-properties) ; Emacs 20+ ! (cc-bytecomp-defvar text-property-default-nonsticky) ; Emacs 21 ! (cc-bytecomp-defvar lookup-syntax-properties) ; XEmacs 21 ! (cc-bytecomp-defun string-to-syntax) ; Emacs 21 ! (cc-bytecomp-defun regexp-opt-depth) ; (X)Emacs 20+ ! ! ;; cc-fix.el contains compatibility macros that should be used if ;; needed. (eval-and-compile (if (or (not (fboundp 'functionp)) *************** *** 52,203 **** (progn (eval '(char-after)) t) (error nil))) (not (fboundp 'when)) ! (not (fboundp 'unless))) ! (cc-load "cc-mode-19"))) ! ;; Silence the compiler. ! (cc-bytecomp-defvar c-enable-xemacs-performance-kludge-p) ; In cc-vars.el ! (cc-bytecomp-defvar c-buffer-is-cc-mode) ; In cc-vars.el ! (cc-bytecomp-defun buffer-syntactic-context-depth) ; XEmacs ! (cc-bytecomp-defun region-active-p) ; XEmacs ! (cc-bytecomp-defvar zmacs-region-stays) ; XEmacs ! (cc-bytecomp-defvar zmacs-regions) ; XEmacs ! (cc-bytecomp-defvar mark-active) ; Emacs ! (cc-bytecomp-defun scan-lists) ; 5 args in XEmacs, 3 in Emacs ! (require 'derived) ; Only necessary in Emacs ! ;;; Macros. ! ;;; Helpers for building regexps. ! (defmacro c-paren-re (re) ! `(concat "\\(" ,re "\\)")) ! (defmacro c-identifier-re (re) ! `(concat "\\<\\(" ,re "\\)\\>[^_]")) (defmacro c-point (position &optional point) ! ;; Returns the value of certain commonly referenced POSITIONs ! ;; relative to POINT. The current point is used if POINT isn't ! ;; specified. POSITION can be one of the following symbols: ! ;; ! ;; bol -- beginning of line ! ;; eol -- end of line ! ;; bod -- beginning of defun ! ;; eod -- end of defun ! ;; boi -- beginning of indentation ! ;; ionl -- indentation of next line ! ;; iopl -- indentation of previous line ! ;; bonl -- beginning of next line ! ;; eonl -- end of next line ! ;; bopl -- beginning of previous line ! ;; eopl -- end of previous line ! ;; ! ;; If the referenced position doesn't exist, the closest accessible ! ;; point to it is returned. This function does not modify point or ! ;; mark. ! `(save-excursion ! ,(if point `(goto-char ,point)) ! ,(if (and (eq (car-safe position) 'quote) ! (symbolp (eval position))) ! (let ((position (eval position))) ! (cond ! ((eq position 'bol) `(beginning-of-line)) ! ((eq position 'eol) `(end-of-line)) ! ((eq position 'boi) `(back-to-indentation)) ! ((eq position 'bod) `(c-beginning-of-defun-1)) ! ((eq position 'bonl) `(forward-line 1)) ! ((eq position 'bopl) `(forward-line -1)) ! ((eq position 'eod) `(c-end-of-defun-1)) ! ((eq position 'eopl) `(progn ! (beginning-of-line) ! (or (bobp) (backward-char)))) ! ((eq position 'eonl) `(progn ! (forward-line 1) ! (end-of-line))) ! ((eq position 'iopl) `(progn ! (forward-line -1) ! (back-to-indentation))) ! ((eq position 'ionl) `(progn ! (forward-line 1) ! (back-to-indentation))) ! (t (error "unknown buffer position requested: %s" position)))) ! ;;(message "c-point long expansion") ! `(let ((position ,position)) ! (cond ! ((eq position 'bol) (beginning-of-line)) ! ((eq position 'eol) (end-of-line)) ! ((eq position 'boi) (back-to-indentation)) ! ((eq position 'bod) (c-beginning-of-defun-1)) ! ((eq position 'bonl) (forward-line 1)) ! ((eq position 'bopl) (forward-line -1)) ! ((eq position 'eod) (c-end-of-defun-1)) ! ((eq position 'eopl) (progn ! (beginning-of-line) ! (or (bobp) (backward-char)))) ! ((eq position 'eonl) (progn ! (forward-line 1) ! (end-of-line))) ! ((eq position 'iopl) (progn ! (forward-line -1) ! (back-to-indentation))) ! ((eq position 'ionl) (progn ! (forward-line 1) ! (back-to-indentation))) ! (t (error "unknown buffer position requested: %s" position))))) ! (point))) (defmacro c-safe (&rest body) ;; safely execute BODY, return nil if an error occurred `(condition-case nil (progn ,@body) (error nil))) (put 'c-safe 'lisp-indent-function 0) ! (defmacro c-forward-sexp (&optional arg) ! ;; like forward-sexp except ! ;; 1. this is much stripped down from the XEmacs version ! ;; 2. this cannot be used as a command, so we're insulated from ! ;; XEmacs' losing efforts to make forward-sexp more user ! ;; friendly ! ;; 3. Preserves the semantics most of CC Mode is based on ! (or arg (setq arg 1)) ! `(goto-char (or (scan-sexps (point) ,arg) ! ,(if (numberp arg) ! (if (> arg 0) `(point-max) `(point-min)) ! `(if (> ,arg 0) (point-max) (point-min)))))) ! ! (defmacro c-backward-sexp (&optional arg) ! ;; See c-forward-sexp and reverse directions ! (or arg (setq arg 1)) ! `(c-forward-sexp ,(if (numberp arg) (- arg) `(- ,arg)))) ;; Wrappers for common scan-lists cases, mainly because it's almost ;; impossible to get a feel for how that function works. ! (defmacro c-up-list-forward (pos) ! `(c-safe (scan-lists ,pos 1 1))) ! (defmacro c-up-list-backward (pos) ! `(c-safe (scan-lists ,pos -1 1))) ! (defmacro c-down-list-forward (pos) ! `(c-safe (scan-lists ,pos 1 -1))) ! (defmacro c-down-list-backward (pos) ! `(c-safe (scan-lists ,pos -1 -1))) ! ! (defmacro c-add-syntax (symbol &optional relpos) ! ;; a simple macro to append the syntax in symbol to the syntax list. ! ;; try to increase performance by using this macro ! `(let ((relpos-tmp ,relpos)) ! (if relpos-tmp (setq syntactic-relpos relpos-tmp)) ! (setq syntax (cons (cons ,symbol relpos-tmp) syntax)))) (defmacro c-benign-error (format &rest args) ;; Formats an error message for the echo area and dings, i.e. like ;; `error' but doesn't abort. `(progn (message ,format ,@args) (ding))) (defmacro c-update-modeline () ;; set the c-auto-hungry-string for the correct designation on the modeline `(progn (setq c-auto-hungry-string (if c-auto-newline --- 74,561 ---- (progn (eval '(char-after)) t) (error nil))) (not (fboundp 'when)) ! (not (fboundp 'unless)) ! (not (fboundp 'regexp-opt)) ! (not (cc-bytecomp-fboundp 'regexp-opt-depth)) ! (/= (regexp-opt-depth "\\(\\(\\)\\)") 2)) ! (cc-load "cc-fix") ! (defalias 'c-regexp-opt 'regexp-opt) ! (defalias 'c-regexp-opt-depth 'regexp-opt-depth))) ! ! (eval-after-load "font-lock" ! '(if (and (not (featurep 'cc-fix)) ; only load the file once. ! (let (font-lock-keywords) ! (font-lock-compile-keywords '("\\<\\>")) ! font-lock-keywords)) ; did the previous call foul this up? ! (load "cc-fix"))) ! ;; The above takes care of the delayed loading, but this is necessary ! ;; to ensure correct byte compilation. ! (eval-when-compile ! (if (and (not (featurep 'cc-fix)) ! (progn ! (require 'font-lock) ! (let (font-lock-keywords) ! (font-lock-compile-keywords '("\\<\\>")) ! font-lock-keywords))) ! (cc-load "cc-fix"))) ! ! (cc-external-require 'cl) ! ;;; Variables also used at compile time. ! ! (defconst c-version "5.30.1" ! "CC Mode version number.") ! ! (defconst c-version-sym (intern c-version)) ! ;; A little more compact and faster in comparisons. ! ! (defvar c-buffer-is-cc-mode nil ! "Non-nil for all buffers with a major mode derived from CC Mode. ! Otherwise, this variable is nil. I.e. this variable is non-nil for ! `c-mode', `c++-mode', `objc-mode', `java-mode', `idl-mode', ! `pike-mode', and any other non-CC Mode mode that calls ! `c-initialize-cc-mode' (e.g. `awk-mode'). The value is the mode ! symbol itself (i.e. `c-mode' etc) of the original CC Mode mode, or ! just t if it's not known.") ! (make-variable-buffer-local 'c-buffer-is-cc-mode) ! ! ;; Have to make `c-buffer-is-cc-mode' permanently local so that it ! ;; survives the initialization of the derived mode. ! (put 'c-buffer-is-cc-mode 'permanent-local t) ! ! ! ;; The following is used below during compilation. ! (eval-and-compile ! (defvar c-inside-eval-when-compile nil) ! ! (defmacro cc-eval-when-compile (&rest body) ! "Like `progn', but evaluates the body at compile time. ! The result of the body appears to the compiler as a quoted constant. ! ! This variant works around bugs in `eval-when-compile' in various ! \(X)Emacs versions. See cc-defs.el for details." ! ! (if c-inside-eval-when-compile ! ;; XEmacs 21.4.6 has a bug in `eval-when-compile' in that it ! ;; evaluates its body at macro expansion time if it's nested ! ;; inside another `eval-when-compile'. So we use a dynamically ! ;; bound variable to avoid nesting them. ! `(progn ,@body) ! ! `(eval-when-compile ! ;; In all (X)Emacsen so far, `eval-when-compile' byte compiles ! ;; its contents before evaluating it. That can cause forms to ! ;; be compiled in situations they aren't intended to be ! ;; compiled. ! ;; ! ;; Example: It's not possible to defsubst a primitive, e.g. the ! ;; following will produce an error (in any emacs flavor), since ! ;; `nthcdr' is a primitive function that's handled specially by ! ;; the byte compiler and thus can't be redefined: ! ;; ! ;; (defsubst nthcdr (val) val) ! ;; ! ;; `defsubst', like `defmacro', needs to be evaluated at ! ;; compile time, so this will produce an error during byte ! ;; compilation. ! ;; ! ;; CC Mode occasionally needs to do things like this for ! ;; cross-emacs compatibility. It therefore uses the following ! ;; to conditionally do a `defsubst': ! ;; ! ;; (eval-when-compile ! ;; (if (not (fboundp 'foo)) ! ;; (defsubst foo ...))) ! ;; ! ;; But `eval-when-compile' byte compiles its contents and ! ;; _then_ evaluates it (in all current emacs versions, up to ! ;; and including Emacs 20.6 and XEmacs 21.1 as of this ! ;; writing). So this will still produce an error, since the ! ;; byte compiler will get to the defsubst anyway. That's ! ;; arguably a bug because the point with `eval-when-compile' is ! ;; that it should evaluate rather than compile its contents. ! ;; ! ;; We get around it by expanding the body to a quoted ! ;; constant that we eval. That otoh introduce a problem in ! ;; that a returned lambda expression doesn't get byte ! ;; compiled (even if `function' is used). ! (eval '(let ((c-inside-eval-when-compile t)) ,@body))))) ! (put 'cc-eval-when-compile 'lisp-indent-hook 0)) ! ! ! ;;; Macros. (defmacro c-point (position &optional point) ! "Return the value of certain commonly referenced POSITIONs relative to POINT. ! The current point is used if POINT isn't specified. POSITION can be ! one of the following symbols: ! ! `bol' -- beginning of line ! `eol' -- end of line ! `bod' -- beginning of defun ! `eod' -- end of defun ! `boi' -- beginning of indentation ! `ionl' -- indentation of next line ! `iopl' -- indentation of previous line ! `bonl' -- beginning of next line ! `eonl' -- end of next line ! `bopl' -- beginning of previous line ! `eopl' -- end of previous line ! ! If the referenced position doesn't exist, the closest accessible point ! to it is returned. This function does not modify point or mark. ! ! This function does not do any hidden buffer changes." ! ! (if (eq (car-safe position) 'quote) ! (let ((position (eval position))) ! (cond ! ! ((eq position 'bol) ! (if (and (fboundp 'line-beginning-position) (not point)) ! `(line-beginning-position) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (beginning-of-line) ! (point)))) ! ! ((eq position 'eol) ! (if (and (fboundp 'line-end-position) (not point)) ! `(line-end-position) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (end-of-line) ! (point)))) ! ! ((eq position 'boi) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (back-to-indentation) ! (point))) ! ! ((eq position 'bod) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (c-beginning-of-defun-1) ! (point))) ! ! ((eq position 'eod) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (c-end-of-defun-1) ! (point))) ! ! ((eq position 'bopl) ! (if (and (fboundp 'line-beginning-position) (not point)) ! `(line-beginning-position 0) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (forward-line -1) ! (point)))) ! ! ((eq position 'bonl) ! (if (and (fboundp 'line-beginning-position) (not point)) ! `(line-beginning-position 2) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (forward-line 1) ! (point)))) ! ! ((eq position 'eopl) ! (if (and (fboundp 'line-end-position) (not point)) ! `(line-end-position 0) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (beginning-of-line) ! (or (bobp) (backward-char)) ! (point)))) ! ! ((eq position 'eonl) ! (if (and (fboundp 'line-end-position) (not point)) ! `(line-end-position 2) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (forward-line 1) ! (end-of-line) ! (point)))) ! ! ((eq position 'iopl) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (forward-line -1) ! (back-to-indentation) ! (point))) ! ! ((eq position 'ionl) ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (forward-line 1) ! (back-to-indentation) ! (point))) ! ! (t (error "Unknown buffer position requested: %s" position)))) ! ! ;;(message "c-point long expansion") ! `(save-excursion ! ,@(if point `((goto-char ,point))) ! (let ((position ,position)) ! (cond ! ((eq position 'bol) (beginning-of-line)) ! ((eq position 'eol) (end-of-line)) ! ((eq position 'boi) (back-to-indentation)) ! ((eq position 'bod) (c-beginning-of-defun-1)) ! ((eq position 'eod) (c-end-of-defun-1)) ! ((eq position 'bopl) (forward-line -1)) ! ((eq position 'bonl) (forward-line 1)) ! ((eq position 'eopl) (progn ! (beginning-of-line) ! (or (bobp) (backward-char)))) ! ((eq position 'eonl) (progn ! (forward-line 1) ! (end-of-line))) ! ((eq position 'iopl) (progn ! (forward-line -1) ! (back-to-indentation))) ! ((eq position 'ionl) (progn ! (forward-line 1) ! (back-to-indentation))) ! (t (error "Unknown buffer position requested: %s" position)))) ! (point)))) (defmacro c-safe (&rest body) ;; safely execute BODY, return nil if an error occurred + ;; + ;; This function does not do any hidden buffer changes. `(condition-case nil (progn ,@body) (error nil))) (put 'c-safe 'lisp-indent-function 0) ! ;; The following is essentially `save-buffer-state' from lazy-lock.el. ! ;; It ought to be a standard macro. ! (defmacro c-save-buffer-state (varlist &rest body) ! "Bind variables according to VARLIST (in `let*' style) and eval BODY, ! then restore the buffer state under the assumption that no significant ! modification has been made. A change is considered significant if it ! affects the buffer text in any way that isn't completely restored ! again. Changes in text properties like `face' or `syntax-table' are ! considered insignificant. This macro allows text properties to be ! changed, even in a read-only buffer. ! ! The return value is the value of the last form in BODY." ! `(let* ((modified (buffer-modified-p)) (buffer-undo-list t) ! (inhibit-read-only t) (inhibit-point-motion-hooks t) ! before-change-functions after-change-functions ! deactivate-mark ! ,@varlist) ! (prog1 (progn ,@body) ! (and (not modified) ! (buffer-modified-p) ! (set-buffer-modified-p nil))))) ! (put 'c-save-buffer-state 'lisp-indent-function 1) ! ! (defmacro c-forward-syntactic-ws (&optional limit) ! "Forward skip over syntactic whitespace. ! Syntactic whitespace is defined as whitespace characters, comments, ! and preprocessor directives. However if point starts inside a comment ! or preprocessor directive, the content of it is not treated as ! whitespace. ! ! LIMIT sets an upper limit of the forward movement, if specified. If ! LIMIT or the end of the buffer is reached inside a comment or ! preprocessor directive, the point will be left there. ! ! Note that this function might do hidden buffer changes. See the ! comment at the start of cc-engine.el for more info." ! (if limit ! `(save-restriction ! (narrow-to-region (point-min) (or ,limit (point-max))) ! (c-forward-sws)) ! '(c-forward-sws))) ! ! (defmacro c-backward-syntactic-ws (&optional limit) ! "Backward skip over syntactic whitespace. ! Syntactic whitespace is defined as whitespace characters, comments, ! and preprocessor directives. However if point starts inside a comment ! or preprocessor directive, the content of it is not treated as ! whitespace. ! ! LIMIT sets a lower limit of the backward movement, if specified. If ! LIMIT is reached inside a line comment or preprocessor directive then ! the point is moved into it past the whitespace at the end. ! ! Note that this function might do hidden buffer changes. See the ! comment at the start of cc-engine.el for more info." ! (if limit ! `(save-restriction ! (narrow-to-region (or ,limit (point-min)) (point-max)) ! (c-backward-sws)) ! '(c-backward-sws))) ! ! (defmacro c-forward-sexp (&optional count) ! "Move forward across COUNT balanced expressions. ! A negative COUNT means move backward. Signal an error if the move ! fails for any reason. ! ! This is like `forward-sexp' except that it isn't interactive and does ! not do any user friendly adjustments of the point and that it isn't ! susceptible to user configurations such as disabling of signals in ! certain situations. ! ! This function does not do any hidden buffer changes." ! (or count (setq count 1)) ! `(goto-char (or (scan-sexps (point) ,count) ! ,(if (numberp count) ! (if (> count 0) `(point-max) `(point-min)) ! `(if (> ,count 0) (point-max) (point-min)))))) ! ! (defmacro c-backward-sexp (&optional count) ! "See `c-forward-sexp' and reverse directions." ! (or count (setq count 1)) ! `(c-forward-sexp ,(if (numberp count) (- count) `(- ,count)))) ! ! (defmacro c-safe-scan-lists (from count depth) ! "Like `scan-lists' but returns nil instead of signalling errors. ! ! This function does not do any hidden buffer changes." ! (if (featurep 'xemacs) ! `(scan-lists ,from ,count ,depth nil t) ! `(c-safe (scan-lists ,from ,count ,depth)))) + ;; Wrappers for common scan-lists cases, mainly because it's almost ;; impossible to get a feel for how that function works. ! ! (defmacro c-up-list-forward (&optional pos) ! "Return the first position after the list sexp containing POS, ! or nil if no such position exists. The point is used if POS is left out. ! ! This function does not do any hidden buffer changes." ! `(c-safe-scan-lists ,(or pos `(point)) 1 1)) ! ! (defmacro c-up-list-backward (&optional pos) ! "Return the position of the start of the list sexp containing POS, ! or nil if no such position exists. The point is used if POS is left out. ! ! This function does not do any hidden buffer changes." ! `(c-safe-scan-lists ,(or pos `(point)) -1 1)) ! ! (defmacro c-down-list-forward (&optional pos) ! "Return the first position inside the first list sexp after POS, ! or nil if no such position exists. The point is used if POS is left out. ! ! This function does not do any hidden buffer changes." ! `(c-safe-scan-lists ,(or pos `(point)) 1 -1)) ! ! (defmacro c-down-list-backward (&optional pos) ! "Return the last position inside the last list sexp before POS, ! or nil if no such position exists. The point is used if POS is left out. ! ! This function does not do any hidden buffer changes." ! `(c-safe-scan-lists ,(or pos `(point)) -1 -1)) ! ! (defmacro c-go-up-list-forward (&optional pos) ! "Move the point to the first position after the list sexp containing POS, ! or the point if POS is left out. Return t if such a position exists, ! otherwise nil is returned and the point isn't moved. ! ! This function does not do any hidden buffer changes." ! `(c-safe (goto-char (scan-lists ,(or pos `(point)) 1 1)) t)) ! ! (defmacro c-go-up-list-backward (&optional pos) ! "Move the point to the position of the start of the list sexp containing POS, ! or the point if POS is left out. Return t if such a position exists, ! otherwise nil is returned and the point isn't moved. ! ! This function does not do any hidden buffer changes." ! `(c-safe (goto-char (scan-lists ,(or pos `(point)) -1 1)) t)) ! ! (defmacro c-go-down-list-forward (&optional pos) ! "Move the point to the first position inside the first list sexp after POS, ! or the point if POS is left out. Return t if such a position exists, ! otherwise nil is returned and the point isn't moved. ! ! This function does not do any hidden buffer changes." ! `(c-safe (goto-char (scan-lists ,(or pos `(point)) 1 -1)) t)) ! ! (defmacro c-go-down-list-backward (&optional pos) ! "Move the point to the last position inside the last list sexp before POS, ! or the point if POS is left out. Return t if such a position exists, ! otherwise nil is returned and the point isn't moved. ! ! This function does not do any hidden buffer changes." ! `(c-safe (goto-char (scan-lists ,(or pos `(point)) -1 -1)) t)) ! ! ! (defmacro c-beginning-of-defun-1 () ! ;; Wrapper around beginning-of-defun. ! ;; ! ;; NOTE: This function should contain the only explicit use of ! ;; beginning-of-defun in CC Mode. Eventually something better than ! ;; b-o-d will be available and this should be the only place the ! ;; code needs to change. Everything else should use ! ;; (c-beginning-of-defun-1) ! ;; ! ;; This is really a bit too large to be a macro but that isn't a ! ;; problem as long as it only is used in one place in ! ;; `c-parse-state'. ! ;; ! ;; This function does not do any hidden buffer changes. ! ! `(progn ! (if (and ,(cc-bytecomp-fboundp 'buffer-syntactic-context-depth) ! c-enable-xemacs-performance-kludge-p) ! ,(when (cc-bytecomp-fboundp 'buffer-syntactic-context-depth) ! ;; XEmacs only. This can improve the performance of ! ;; c-parse-state to between 3 and 60 times faster when ! ;; braces are hung. It can also degrade performance by ! ;; about as much when braces are not hung. ! '(let (pos) ! (while (not pos) ! (save-restriction ! (widen) ! (setq pos (c-safe-scan-lists ! (point) -1 (buffer-syntactic-context-depth)))) ! (cond ! ((bobp) (setq pos (point-min))) ! ((not pos) ! (let ((distance (skip-chars-backward "^{"))) ! ;; unbalanced parenthesis, while illegal C code, ! ;; shouldn't cause an infloop! See unbal.c ! (when (zerop distance) ! ;; Punt! ! (beginning-of-defun) ! (setq pos (point))))) ! ((= pos 0)) ! ((not (eq (char-after pos) ?{)) ! (goto-char pos) ! (setq pos nil)) ! )) ! (goto-char pos))) ! ;; Emacs, which doesn't have buffer-syntactic-context-depth ! (beginning-of-defun)) ! ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at the ! ;; open brace. ! (and defun-prompt-regexp ! (looking-at defun-prompt-regexp) ! (goto-char (match-end 0))))) (defmacro c-benign-error (format &rest args) ;; Formats an error message for the echo area and dings, i.e. like ;; `error' but doesn't abort. + ;; + ;; This function does not do any hidden buffer changes. `(progn (message ,format ,@args) (ding))) (defmacro c-update-modeline () ;; set the c-auto-hungry-string for the correct designation on the modeline + ;; + ;; This function does not do any hidden buffer changes. `(progn (setq c-auto-hungry-string (if c-auto-newline *************** *** 208,213 **** --- 566,573 ---- (defmacro c-with-syntax-table (table &rest code) ;; Temporarily switches to the specified syntax table in a failsafe ;; way to execute code. + ;; + ;; This function does not do any hidden buffer changes. `(let ((c-with-syntax-table-orig-table (syntax-table))) (unwind-protect (progn *************** *** 219,237 **** (defmacro c-skip-ws-forward (&optional limit) "Skip over any whitespace following point. This function skips over horizontal and vertical whitespace and line ! continuations." (if limit ! `(let ((-limit- (or ,limit (point-max)))) (while (progn ;; skip-syntax-* doesn't count \n as whitespace.. ! (skip-chars-forward " \t\n\r\f" -limit-) (when (and (eq (char-after) ?\\) ! (< (point) -limit-)) (forward-char) (or (eolp) (progn (backward-char) nil)))))) '(while (progn ! (skip-chars-forward " \t\n\r\f") (when (eq (char-after) ?\\) (forward-char) (or (eolp) --- 579,599 ---- (defmacro c-skip-ws-forward (&optional limit) "Skip over any whitespace following point. This function skips over horizontal and vertical whitespace and line ! continuations. ! ! This function does not do any hidden buffer changes." (if limit ! `(let ((limit (or ,limit (point-max)))) (while (progn ;; skip-syntax-* doesn't count \n as whitespace.. ! (skip-chars-forward " \t\n\r\f\v" limit) (when (and (eq (char-after) ?\\) ! (< (point) limit)) (forward-char) (or (eolp) (progn (backward-char) nil)))))) '(while (progn ! (skip-chars-forward " \t\n\r\f\v") (when (eq (char-after) ?\\) (forward-char) (or (eolp) *************** *** 240,270 **** (defmacro c-skip-ws-backward (&optional limit) "Skip over any whitespace preceding point. This function skips over horizontal and vertical whitespace and line ! continuations." (if limit ! `(let ((-limit- (or ,limit (point-min)))) (while (progn ;; skip-syntax-* doesn't count \n as whitespace.. ! (skip-chars-backward " \t\n\r\f" -limit-) (and (eolp) (eq (char-before) ?\\) ! (> (point) -limit-))) (backward-char))) '(while (progn ! (skip-chars-backward " \t\n\r\f") (and (eolp) (eq (char-before) ?\\))) (backward-char)))) ;; Make edebug understand the macros. (eval-after-load "edebug" '(progn ! (def-edebug-spec c-paren-re t) ! (def-edebug-spec c-identifier-re t) ! (def-edebug-spec c-point ([&or symbolp form] &optional form)) (def-edebug-spec c-safe t) ! (def-edebug-spec c-forward-sexp (&optional [&or numberp form])) ! (def-edebug-spec c-backward-sexp (&optional [&or numberp form])) (def-edebug-spec c-up-list-forward t) (def-edebug-spec c-up-list-backward t) (def-edebug-spec c-down-list-forward t) --- 602,795 ---- (defmacro c-skip-ws-backward (&optional limit) "Skip over any whitespace preceding point. This function skips over horizontal and vertical whitespace and line ! continuations. ! ! This function does not do any hidden buffer changes." (if limit ! `(let ((limit (or ,limit (point-min)))) (while (progn ;; skip-syntax-* doesn't count \n as whitespace.. ! (skip-chars-backward " \t\n\r\f\v" limit) (and (eolp) (eq (char-before) ?\\) ! (> (point) limit))) (backward-char))) '(while (progn ! (skip-chars-backward " \t\n\r\f\v") (and (eolp) (eq (char-before) ?\\))) (backward-char)))) + (defmacro c-major-mode-is (mode) + "Return non-nil if the current CC Mode major mode is MODE. + MODE is either a mode symbol or a list of mode symbols. + + This function does not do any hidden buffer changes." + (if (eq (car-safe mode) 'quote) + (let ((mode (eval mode))) + (if (listp mode) + `(memq c-buffer-is-cc-mode ',mode) + `(eq c-buffer-is-cc-mode ',mode))) + `(let ((mode ,mode)) + (if (listp mode) + (memq c-buffer-is-cc-mode mode) + (eq c-buffer-is-cc-mode mode))))) + + (defmacro c-parse-sexp-lookup-properties () + ;; Return the value of the variable that says whether the + ;; syntax-table property affects the sexp routines. Always return + ;; nil in (X)Emacsen without support for that. + ;; + ;; This function does not do any hidden buffer changes. + (cond ((cc-bytecomp-boundp 'parse-sexp-lookup-properties) + `parse-sexp-lookup-properties) + ((cc-bytecomp-boundp 'lookup-syntax-properties) + `lookup-syntax-properties) + (t nil))) + + + ;; Macros/functions to handle so-called "char properties", which are + ;; properties set on a single character and that never spreads to any + ;; other characters. + + (eval-and-compile + ;; Constant used at compile time to decide whether or not to use + ;; XEmacs extents. Check all the extent functions we'll use since + ;; some packages might add compatibility aliases for some of them in + ;; Emacs. + (defconst c-use-extents (and (cc-bytecomp-fboundp 'extent-at) + (cc-bytecomp-fboundp 'set-extent-property) + (cc-bytecomp-fboundp 'set-extent-properties) + (cc-bytecomp-fboundp 'make-extent) + (cc-bytecomp-fboundp 'extent-property) + (cc-bytecomp-fboundp 'delete-extent) + (cc-bytecomp-fboundp 'map-extents)))) + + ;; `c-put-char-property' is complex enough in XEmacs and Emacs < 21 to + ;; make it a function. + (defalias 'c-put-char-property-fun + (cc-eval-when-compile + (cond (c-use-extents + ;; XEmacs. + (byte-compile + (lambda (pos property value) + (let ((ext (extent-at pos nil property))) + (if ext + (set-extent-property ext property value) + (set-extent-properties (make-extent pos (1+ pos)) + (cons property + (cons value + '(start-open t + end-open t))))))))) + + ((not (cc-bytecomp-boundp 'text-property-default-nonsticky)) + ;; In Emacs < 21 we have to mess with the `rear-nonsticky' property. + (byte-compile + (lambda (pos property value) + (put-text-property pos (1+ pos) property value) + (let ((prop (get-text-property pos 'rear-nonsticky))) + (or (memq property prop) + (put-text-property pos (1+ pos) + 'rear-nonsticky + (cons property prop)))))))))) + (cc-bytecomp-defun c-put-char-property-fun) ; Make it known below. + + (defmacro c-put-char-property (pos property value) + ;; Put the given property with the given value on the character at + ;; POS and make it front and rear nonsticky, or start and end open + ;; in XEmacs vocabulary. If the character already has the given + ;; property then the value is replaced, and the behavior is + ;; undefined if that property has been put by some other function. + ;; PROPERTY is assumed to be constant. + ;; + ;; If there's a `text-property-default-nonsticky' variable (Emacs + ;; 21) then it's assumed that the property is present on it. + (setq property (eval property)) + (if (or c-use-extents + (not (cc-bytecomp-boundp 'text-property-default-nonsticky))) + ;; XEmacs and Emacs < 21. + `(c-put-char-property-fun ,pos ',property ,value) + ;; In Emacs 21 we got the `rear-nonsticky' property covered + ;; by `text-property-default-nonsticky'. + `(let ((-pos- ,pos)) + (put-text-property -pos- (1+ -pos-) ',property ,value)))) + + (defmacro c-get-char-property (pos property) + ;; Get the value of the given property on the character at POS if + ;; it's been put there by `c-put-char-property'. PROPERTY is + ;; assumed to be constant. + (setq property (eval property)) + (if c-use-extents + ;; XEmacs. + `(let ((ext (extent-at ,pos nil ',property))) + (if ext (extent-property ext ',property))) + ;; Emacs. + `(get-text-property ,pos ',property))) + + ;; `c-clear-char-property' is complex enough in Emacs < 21 to make it + ;; a function, since we have to mess with the `rear-nonsticky' property. + (defalias 'c-clear-char-property-fun + (cc-eval-when-compile + (unless (or c-use-extents + (cc-bytecomp-boundp 'text-property-default-nonsticky)) + (byte-compile + (lambda (pos property) + (when (get-text-property pos property) + (remove-text-properties pos (1+ pos) (list property nil)) + (put-text-property pos (1+ pos) + 'rear-nonsticky + (delq property (get-text-property + pos 'rear-nonsticky))))))))) + (cc-bytecomp-defun c-clear-char-property-fun) ; Make it known below. + + (defmacro c-clear-char-property (pos property) + ;; Remove the given property on the character at POS if it's been put + ;; there by `c-put-char-property'. PROPERTY is assumed to be + ;; constant. + (setq property (eval property)) + (cond (c-use-extents + ;; XEmacs. + `(let ((ext (extent-at ,pos nil ',property))) + (if ext (delete-extent ext)))) + ((cc-bytecomp-boundp 'text-property-default-nonsticky) + ;; In Emacs 21 we got the `rear-nonsticky' property covered + ;; by `text-property-default-nonsticky'. + `(let ((pos ,pos)) + (remove-text-properties pos (1+ pos) + '(,property nil)))) + (t + ;; Emacs < 21. + `(c-clear-char-property-fun ,pos ',property)))) + + (defmacro c-clear-char-properties (from to property) + ;; Remove all the occurences of the given property in the given + ;; region that has been put with `c-put-char-property'. PROPERTY is + ;; assumed to be constant. + ;; + ;; Note that this function does not clean up the property from the + ;; lists of the `rear-nonsticky' properties in the region, if such + ;; are used. Thus it should not be used for common properties like + ;; `syntax-table'. + (setq property (eval property)) + (if c-use-extents + ;; XEmacs. + `(map-extents (lambda (ext ignored) + (delete-extent ext)) + nil ,from ,to nil nil ',property) + ;; Emacs. + `(remove-text-properties ,from ,to '(,property nil)))) + + ;; Make edebug understand the macros. (eval-after-load "edebug" '(progn ! (def-edebug-spec c-point t) (def-edebug-spec c-safe t) ! (def-edebug-spec c-save-buffer-state let*) ! (def-edebug-spec c-forward-syntactic-ws t) ! (def-edebug-spec c-backward-syntactic-ws t) ! (def-edebug-spec c-forward-sexp t) ! (def-edebug-spec c-backward-sexp t) (def-edebug-spec c-up-list-forward t) (def-edebug-spec c-up-list-backward t) (def-edebug-spec c-down-list-forward t) *************** *** 274,333 **** (def-edebug-spec c-benign-error t) (def-edebug-spec c-with-syntax-table t) (def-edebug-spec c-skip-ws-forward t) ! (def-edebug-spec c-skip-ws-backward t))) ! ;;; Inline functions. ;; Note: All these after the macros, to be on safe side in avoiding ;; bugs where macros are defined too late. These bugs often only show ;; when the files are compiled in a certain order within the same ;; session. - (defsubst c-beginning-of-defun-1 () - ;; Wrapper around beginning-of-defun. - ;; - ;; NOTE: This function should contain the only explicit use of - ;; beginning-of-defun in CC Mode. Eventually something better than - ;; b-o-d will be available and this should be the only place the - ;; code needs to change. Everything else should use - ;; (c-beginning-of-defun-1) - (if (and (fboundp 'buffer-syntactic-context-depth) - c-enable-xemacs-performance-kludge-p) - ;; XEmacs only. This can improve the performance of - ;; c-parse-state to between 3 and 60 times faster when - ;; braces are hung. It can also degrade performance by - ;; about as much when braces are not hung. - (let (pos) - (while (not pos) - (save-restriction - (widen) - (setq pos (scan-lists (point) -1 - (buffer-syntactic-context-depth) - nil t))) - (cond - ((bobp) (setq pos (point-min))) - ((not pos) - (let ((distance (skip-chars-backward "^{"))) - ;; unbalanced parenthesis, while illegal C code, - ;; shouldn't cause an infloop! See unbal.c - (when (zerop distance) - ;; Punt! - (beginning-of-defun) - (setq pos (point))))) - ((= pos 0)) - ((not (eq (char-after pos) ?{)) - (goto-char pos) - (setq pos nil)) - )) - (goto-char pos)) - ;; Emacs, which doesn't have buffer-syntactic-context-depth - (beginning-of-defun)) - ;; if defun-prompt-regexp is non-nil, b-o-d won't leave us at the - ;; open brace. - (and defun-prompt-regexp - (looking-at defun-prompt-regexp) - (goto-char (match-end 0)))) - (defsubst c-end-of-defun-1 () ;; Replacement for end-of-defun that use c-beginning-of-defun-1. (let ((start (point))) --- 799,820 ---- (def-edebug-spec c-benign-error t) (def-edebug-spec c-with-syntax-table t) (def-edebug-spec c-skip-ws-forward t) ! (def-edebug-spec c-skip-ws-backward t) ! (def-edebug-spec c-major-mode-is t) ! (def-edebug-spec c-put-char-property t) ! (def-edebug-spec c-get-char-property t) ! (def-edebug-spec c-clear-char-property t) ! (def-edebug-spec c-clear-char-properties t) ! (def-edebug-spec cc-eval-when-compile t))) ! ! ;;; Functions. ;; Note: All these after the macros, to be on safe side in avoiding ;; bugs where macros are defined too late. These bugs often only show ;; when the files are compiled in a certain order within the same ;; session. (defsubst c-end-of-defun-1 () ;; Replacement for end-of-defun that use c-beginning-of-defun-1. (let ((start (point))) *************** *** 341,349 **** --- 828,856 ---- (if (< (point) start) (goto-char (point-max))))) + (defconst c-<-as-paren-syntax '(4 . ?>)) + + (defsubst c-mark-<-as-paren (pos) + ;; Mark the "<" character at POS as an sexp list opener using the + ;; syntax-table property. Note that Emacs 19 and XEmacs <= 20 + ;; doesn't support syntax properties, so this function might not + ;; have any effect. + (c-put-char-property pos 'syntax-table c-<-as-paren-syntax)) + + (defconst c->-as-paren-syntax '(5 . ?<)) + + (defsubst c-mark->-as-paren (pos) + ;; Mark the ">" character at POS as an sexp list closer using the + ;; syntax-table property. Note that Emacs 19 and XEmacs <= 20 + ;; doesn't support syntax properties, so this function might not + ;; have any effect. + (c-put-char-property pos 'syntax-table c->-as-paren-syntax)) + (defsubst c-intersect-lists (list alist) ;; return the element of ALIST that matches the first element found ;; in LIST. Uses assq. + ;; + ;; This function does not do any hidden buffer changes. (let (match) (while (and list (not (setq match (assq (car list) alist)))) *************** *** 353,363 **** (defsubst c-lookup-lists (list alist1 alist2) ;; first, find the first entry from LIST that is present in ALIST1, ;; then find the entry in ALIST2 for that entry. (assq (car (c-intersect-lists list alist1)) alist2)) (defsubst c-langelem-col (langelem &optional preserve-point) ! ;; convenience routine to return the column of langelem's relpos. ! ;; Leaves point at the relpos unless preserve-point is non-nil. (if (cdr langelem) (let ((here (point))) (goto-char (cdr langelem)) --- 860,874 ---- (defsubst c-lookup-lists (list alist1 alist2) ;; first, find the first entry from LIST that is present in ALIST1, ;; then find the entry in ALIST2 for that entry. + ;; + ;; This function does not do any hidden buffer changes. (assq (car (c-intersect-lists list alist1)) alist2)) (defsubst c-langelem-col (langelem &optional preserve-point) ! "Convenience routine to return the column of LANGELEM's relpos. ! Leaves point at the relpos unless PRESERVE-POINT is non-nil. ! ! This function does not do any hidden buffer changes." (if (cdr langelem) (let ((here (point))) (goto-char (cdr langelem)) *************** *** 370,381 **** --- 881,896 ---- (defsubst c-keep-region-active () ;; Do whatever is necessary to keep the region active in XEmacs. ;; This is not needed for Emacs. + ;; + ;; This function does not do any hidden buffer changes. (and (boundp 'zmacs-region-stays) (setq zmacs-region-stays t))) (defsubst c-region-is-active-p () ;; Return t when the region is active. The determination of region ;; activeness is different in both Emacs and XEmacs. + ;; + ;; This function does not do any hidden buffer changes. (cond ;; XEmacs ((and (fboundp 'region-active-p) *************** *** 387,394 **** ;; fallback; shouldn't get here (t (mark t)))) ! (defsubst c-major-mode-is (mode) ! (eq c-buffer-is-cc-mode mode)) (cc-provide 'cc-defs) --- 902,1522 ---- ;; fallback; shouldn't get here (t (mark t)))) ! (put 'c-mode 'c-mode-prefix "c-") ! (put 'c++-mode 'c-mode-prefix "c++-") ! (put 'objc-mode 'c-mode-prefix "objc-") ! (put 'java-mode 'c-mode-prefix "java-") ! (put 'idl-mode 'c-mode-prefix "idl-") ! (put 'pike-mode 'c-mode-prefix "pike-") ! (put 'awk-mode 'c-mode-prefix "awk-") ! ! (defsubst c-mode-symbol (suffix) ! "Prefix the current mode prefix (e.g. \"c-\") to SUFFIX and return ! the corresponding symbol. ! ! This function does not do any hidden buffer changes." ! (or c-buffer-is-cc-mode ! (error "Not inside a CC Mode based mode")) ! (let ((mode-prefix (get c-buffer-is-cc-mode 'c-mode-prefix))) ! (or mode-prefix ! (error "%S has no mode prefix known to `c-mode-symbol'" ! c-buffer-is-cc-mode)) ! (intern (concat mode-prefix suffix)))) ! ! (defsubst c-mode-var (suffix) ! "Prefix the current mode prefix (e.g. \"c-\") to SUFFIX and return ! the value of the variable with that name. ! ! This function does not do any hidden buffer changes." ! (symbol-value (c-mode-symbol suffix))) ! ! (defsubst c-mode-is-new-awk-p () ! ;; Is the current mode the "new" awk mode? It is important for ! ;; (e.g.) the cc-engine functions do distinguish between the old and ! ;; new awk-modes. ! (and (c-major-mode-is 'awk-mode) ! (memq 'syntax-properties c-emacs-features))) ! ! (defsubst c-got-face-at (pos faces) ! "Return non-nil if position POS in the current buffer has any of the ! faces in the list FACES. ! ! This function does not do any hidden buffer changes." ! (let ((pos-faces (get-text-property pos 'face))) ! (if (consp pos-faces) ! (progn ! (while (and pos-faces ! (not (memq (car pos-faces) faces))) ! (setq pos-faces (cdr pos-faces))) ! pos-faces) ! (memq pos-faces faces)))) ! ! (defsubst c-face-name-p (facename) ! ;; Return t if FACENAME is the name of a face. This method is ! ;; necessary since facep in XEmacs only returns t for the actual ! ;; face objects (while it's only their names that are used just ! ;; about anywhere else) without providing a predicate that tests ! ;; face names. ! ;; ! ;; This function does not do any hidden buffer changes. ! (memq facename (face-list))) ! ! (defun c-make-keywords-re (adorn list &optional mode) ! "Make a regexp that matches all the strings the list. ! Duplicates in the list are removed. The regexp may contain zero or ! more submatch expressions. ! ! If ADORN is non-nil there will be at least one submatch and the first ! matches the whole keyword, and the regexp will also not match a prefix ! of any identifier. Adorned regexps cannot be appended. The language ! variable `c-nonsymbol-key' is used to make the adornment. The ! optional MODE specifies the language to get it in. The default is the ! current language (taken from `c-buffer-is-cc-mode')." ! (setq list (delete-duplicates list :test 'string-equal)) ! (if list ! (let ((re (c-regexp-opt list))) ! ;; Add our own grouping parenthesis around re instead of ! ;; passing adorn to `regexp-opt', since in XEmacs it makes the ! ;; top level grouping "shy". ! (if adorn ! (concat "\\(" re "\\)" ! "\\(" ! (c-get-lang-constant 'c-nonsymbol-key nil mode) ! "\\|$\\)") ! re)) ! ;; Produce a regexp that matches nothing. ! (if adorn ! "\\(\\<\\>\\)" ! "\\<\\>"))) ! (put 'c-make-keywords-re 'lisp-indent-function 1) ! ! ! ;;; Some helper constants. ! ! ;; If the regexp engine supports POSIX char classes (e.g. Emacs 21) ! ;; then we can use them to handle extended charsets correctly. ! (if (string-match "[[:alpha:]]" "a") ; Can't use c-emacs-features here. ! (progn ! (defconst c-alpha "[:alpha:]") ! (defconst c-alnum "[:alnum:]") ! (defconst c-digit "[:digit:]") ! (defconst c-upper "[:upper:]") ! (defconst c-lower "[:lower:]")) ! (defconst c-alpha "a-zA-Z") ! (defconst c-alnum "a-zA-Z0-9") ! (defconst c-digit "0-9") ! (defconst c-upper "A-Z") ! (defconst c-lower "a-z")) ! ! ! ;;; System for handling language dependent constants. ! ! ;; This is used to set various language dependent data in a flexible ! ;; way: Language constants can be built from the values of other ! ;; language constants, also those for other languages. They can also ! ;; process the values of other language constants uniformly across all ! ;; the languages. E.g. one language constant can list all the type ! ;; keywords in each language, and another can build a regexp for each ! ;; language from those lists without code duplication. ! ;; ! ;; Language constants are defined with `c-lang-defconst', and their ! ;; value forms (referred to as source definitions) are evaluated only ! ;; on demand when requested for a particular language with ! ;; `c-lang-const'. It's therefore possible to refer to the values of ! ;; constants defined later in the file, or in another file, just as ! ;; long as all the relevant `c-lang-defconst' have been loaded when ! ;; `c-lang-const' is actually evaluated from somewhere else. ! ;; ! ;; `c-lang-const' forms are also evaluated at compile time and ! ;; replaced with the values they produce. Thus there's no overhead ! ;; for this system when compiled code is used - only the values ! ;; actually used in the code are present, and the file(s) containing ! ;; the `c-lang-defconst' forms don't need to be loaded at all then. ! ;; There are however safeguards to make sure that they can be loaded ! ;; to get the source definitions for the values if there's a mismatch ! ;; in compiled versions, or if `c-lang-const' is used uncompiled. ! ;; ! ;; Note that the source definitions in a `c-lang-defconst' form are ! ;; compiled into the .elc file where it stands; there's no need to ! ;; load the source file to get it. ! ;; ! ;; See cc-langs.el for more details about how this system is deployed ! ;; in CC Mode, and how the associated language variable system ! ;; (`c-lang-defvar') works. That file also contains a lot of ! ;; examples. ! ! (defun c-add-language (mode base-mode) ! "Declare a new language in the language dependent variable system. ! This is intended to be used by modes that inherit CC Mode to add new ! languages. It should be used at the top level before any calls to ! `c-lang-defconst'. MODE is the mode name symbol for the new language, ! and BASE-MODE is the mode name symbol for the language in CC Mode that ! is to be the template for the new mode. ! ! The exact effect of BASE-MODE is to make all language constants that ! haven't got a setting in the new language fall back to their values in ! BASE-MODE. It does not have any effect outside the language constant ! system." ! (unless (string-match "\\`\\(.*-\\)mode\\'" (symbol-name mode)) ! (error "The mode name symbol `%s' must end with \"-mode\"" mode)) ! (put mode 'c-mode-prefix (match-string 1 (symbol-name mode))) ! (unless (get base-mode 'c-mode-prefix) ! (error "Unknown base mode `%s'" base-mode) ! (put mode 'c-fallback-mode base-mode))) ! ! (defvar c-lang-constants (make-vector 151 0)) ! ;; This obarray is a cache to keep track of the language constants ! ;; defined by `c-lang-defconst' and the evaluated values returned by ! ;; `c-lang-const'. It's mostly used at compile time but it's not ! ;; stored in compiled files. ! ;; ! ;; The obarray contains all the language constants as symbols. The ! ;; value cells hold the evaluated values as alists where each car is ! ;; the mode name symbol and the corresponding cdr is the evaluated ! ;; value in that mode. The property lists hold the source definitions ! ;; and other miscellaneous data. The obarray might also contain ! ;; various other symbols, but those don't have any variable bindings. ! ! (defvar c-lang-const-expansion nil) ! (defvar c-langs-are-parametric nil) ! ! (defsubst c-get-current-file () ! ;; Return the base name of the current file. ! (let ((file (cond ! (load-in-progress ! ;; Being loaded. ! load-file-name) ! ((and (boundp 'byte-compile-dest-file) ! (stringp byte-compile-dest-file)) ! ;; Being compiled. ! byte-compile-dest-file) ! (t ! ;; Being evaluated interactively. ! (buffer-file-name))))) ! (and file ! (file-name-sans-extension ! (file-name-nondirectory file))))) ! ! (defmacro c-lang-defconst-eval-immediately (form) ! "Can be used inside a VAL in `c-lang-defconst' to evaluate FORM ! immediately, i.e. at the same time as the `c-lang-defconst' form ! itself is evaluated." ! ;; Evaluate at macro expansion time, i.e. in the ! ;; `cl-macroexpand-all' inside `c-lang-defconst'. ! (eval form)) ! ! (defmacro c-lang-defconst (name &rest args) ! "Set the language specific values of the language constant NAME. ! The second argument can be an optional docstring. The rest of the ! arguments are one or more repetitions of LANG VAL where LANG specifies ! the language(s) that VAL applies to. LANG is the name of the ! language, i.e. the mode name without the \"-mode\" suffix, or a list ! of such language names, or `t' for all languages. VAL is a form to ! evaluate to get the value. ! ! If LANG isn't `t' or one of the core languages in CC Mode, it must ! have been declared with `c-add-language'. ! ! Neither NAME, LANG nor VAL are evaluated directly - they should not be ! quoted. `c-lang-defconst-eval-immediately' can however be used inside ! VAL to evaluate parts of it directly. ! ! When VAL is evaluated for some language, that language is temporarily ! made current so that `c-lang-const' without an explicit language can ! be used inside VAL to refer to the value of a language constant in the ! same language. That is particularly useful if LANG is `t'. ! ! VAL is not evaluated right away but rather when the value is requested ! with `c-lang-const'. Thus it's possible to use `c-lang-const' inside ! VAL to refer to language constants that haven't been defined yet. ! However, if the definition of a language constant is in another file ! then that file must be loaded \(at compile time) before it's safe to ! reference the constant. ! ! The assignments in ARGS are processed in sequence like `setq', so ! \(c-lang-const NAME) may be used inside a VAL to refer to the last ! assigned value to this language constant, or a value that it has ! gotten in another earlier loaded file. ! ! To work well with repeated loads and interactive reevaluation, only ! one `c-lang-defconst' for each NAME is permitted per file. If there ! already is one it will be completely replaced; the value in the ! earlier definition will not affect `c-lang-const' on the same ! constant. A file is identified by its base name. ! ! This macro does not do any hidden buffer changes." ! ! (let* ((sym (intern (symbol-name name) c-lang-constants)) ! ;; Make `c-lang-const' expand to a straightforward call to ! ;; `c-get-lang-constant' in `cl-macroexpand-all' below. ! ;; ! ;; (The default behavior, i.e. to expand to a call inside ! ;; `eval-when-compile' should be equivalent, since that macro ! ;; should only expand to its content if it's used inside a ! ;; form that's already evaluated at compile time. It's ! ;; however necessary to use our cover macro ! ;; `cc-eval-when-compile' due to bugs in `eval-when-compile', ! ;; and it expands to a bulkier form that in this case only is ! ;; unnecessary garbage that we don't want to store in the ! ;; language constant source definitions.) ! (c-lang-const-expansion 'call) ! (c-langs-are-parametric t) ! bindings ! pre-files) ! ! (or (symbolp name) ! (error "Not a symbol: %s" name)) ! ! (when (stringp (car-safe args)) ! ;; The docstring is hardly used anywhere since there's no normal ! ;; symbol to attach it to. It's primarily for getting the right ! ;; format in the source. ! (put sym 'variable-documentation (car args)) ! (setq args (cdr args))) ! ! (or args ! (error "No assignments in `c-lang-defconst' for %s" name)) ! ! ;; Rework ARGS to an association list to make it easier to handle. ! ;; It's reversed at the same time to make it easier to implement ! ;; the demand-driven (i.e. reversed) evaluation in `c-lang-const'. ! (while args ! (let ((assigned-mode ! (cond ((eq (car args) t) t) ! ((symbolp (car args)) ! (list (intern (concat (symbol-name (car args)) ! "-mode")))) ! ((listp (car args)) ! (mapcar (lambda (lang) ! (or (symbolp lang) ! (error "Not a list of symbols: %s" ! (car args))) ! (intern (concat (symbol-name lang) ! "-mode"))) ! (car args))) ! (t (error "Not a symbol or a list of symbols: %s" ! (car args))))) ! val) ! ! (or (cdr args) ! (error "No value for %s" (car args))) ! (setq args (cdr args) ! val (car args)) ! ! ;; Emacs has a weird bug where it seems to fail to read ! ;; backquote lists from byte compiled files correctly (,@ ! ;; forms, to be specific), so make sure the bindings in the ! ;; expansion below doesn't contain any backquote stuff. ! ;; (XEmacs handles it correctly and doesn't need this for that ! ;; reason, but we also use this expansion handle ! ;; `c-lang-defconst-eval-immediately' and to register ! ;; dependencies on the `c-lang-const's in VAL.) ! (setq val (cl-macroexpand-all val)) ! ! (setq bindings (cons (cons assigned-mode val) bindings) ! args (cdr args)))) ! ! ;; Compile in the other files that have provided source ! ;; definitions for this symbol, to make sure the order in the ! ;; `source' property is correct even when files are loaded out of ! ;; order. ! (setq pre-files (nreverse ! ;; Reverse to get the right load order. ! (mapcar 'car (get sym 'source)))) ! ! `(eval-and-compile ! (c-define-lang-constant ',name ',bindings ! ,@(and pre-files `(',pre-files)))))) ! ! (put 'c-lang-defconst 'lisp-indent-function 1) ! (eval-after-load "edebug" ! '(def-edebug-spec c-lang-defconst ! (&define name [&optional stringp] [&rest sexp def-form]))) ! ! (defun c-define-lang-constant (name bindings &optional pre-files) ! ;; Used by `c-lang-defconst'. This function does not do any hidden ! ;; buffer changes. ! ! (let* ((sym (intern (symbol-name name) c-lang-constants)) ! (source (get sym 'source)) ! (file (intern ! (or (c-get-current-file) ! (error "`c-lang-defconst' must be used in a file")))) ! (elem (assq file source))) ! ! ;;(when (cdr-safe elem) ! ;; (message "Language constant %s redefined in %S" name file)) ! ! ;; Note that the order in the source alist is relevant. Like how ! ;; `c-lang-defconst' reverses the bindings, this reverses the ! ;; order between files so that the last to evaluate comes first. ! (unless elem ! (while pre-files ! (unless (assq (car pre-files) source) ! (setq source (cons (list (car pre-files)) source))) ! (setq pre-files (cdr pre-files))) ! (put sym 'source (cons (setq elem (list file)) source))) ! ! (setcdr elem bindings) ! ! ;; Bind the symbol as a variable, or clear any earlier evaluated ! ;; value it has. ! (set sym nil) ! ! ;; Clear the evaluated values that depend on this source. ! (let ((agenda (get sym 'dependents)) ! (visited (make-vector 101 0)) ! ptr) ! (while agenda ! (setq sym (car agenda) ! agenda (cdr agenda)) ! (intern (symbol-name sym) visited) ! (set sym nil) ! (setq ptr (get sym 'dependents)) ! (while ptr ! (setq sym (car ptr) ! ptr (cdr ptr)) ! (unless (intern-soft (symbol-name sym) visited) ! (setq agenda (cons sym agenda)))))) ! ! name)) ! ! (defmacro c-lang-const (name &optional lang) ! "Get the mode specific value of the language constant NAME in language LANG. ! LANG is the name of the language, i.e. the mode name without the ! \"-mode\" suffix. If used inside `c-lang-defconst' or ! `c-lang-defvar', LANG may be left out to refer to the current ! language. NAME and LANG are not evaluated so they should not be ! quoted. ! ! This macro does not do any hidden buffer changes." ! ! (or (symbolp name) ! (error "Not a symbol: %s" name)) ! (or (symbolp lang) ! (error "Not a symbol: %s" lang)) ! ! (let ((sym (intern (symbol-name name) c-lang-constants)) ! mode source-files args) ! ! (if lang ! (progn ! (setq mode (intern (concat (symbol-name lang) "-mode"))) ! (unless (get mode 'c-mode-prefix) ! (error ! "Unknown language %S since it got no `c-mode-prefix' property" ! (symbol-name lang)))) ! (if c-buffer-is-cc-mode ! (setq lang c-buffer-is-cc-mode) ! (or c-langs-are-parametric ! (error ! "`c-lang-const' requires a literal language in this context")))) ! ! (if (eq c-lang-const-expansion 'immediate) ! ;; No need to find out the source file(s) when we evaluate ! ;; immediately since all the info is already there in the ! ;; `source' property. ! `',(c-get-lang-constant name nil mode) ! ! (let ((file (c-get-current-file))) ! (if file (setq file (intern file))) ! ;; Get the source file(s) that must be loaded to get the value ! ;; of the constant. If the symbol isn't defined yet we assume ! ;; that its definition will come later in this file, and thus ! ;; are no file dependencies needed. ! (setq source-files (nreverse ! ;; Reverse to get the right load order. ! (mapcan (lambda (elem) ! (if (eq file (car elem)) ! nil ; Exclude our own file. ! (list (car elem)))) ! (get sym 'source))))) ! ! ;; Spend some effort to make a compact call to ! ;; `c-get-lang-constant' since it will be compiled in. ! (setq args (and mode `(',mode))) ! (if (or source-files args) ! (setq args (cons (and source-files `',source-files) ! args))) ! ! (if (or (eq c-lang-const-expansion 'call) ! load-in-progress ! (not (boundp 'byte-compile-dest-file)) ! (not (stringp byte-compile-dest-file))) ! ;; Either a straight call is requested in the context, or ! ;; we're not being byte compiled so the compile time stuff ! ;; below is unnecessary. ! `(c-get-lang-constant ',name ,@args) ! ! ;; Being compiled. If the loading and compiling version is ! ;; the same we use a value that is evaluated at compile time, ! ;; otherwise it's evaluated at runtime. ! `(if (eq c-version-sym ',c-version-sym) ! (cc-eval-when-compile ! (c-get-lang-constant ',name ,@args)) ! (c-get-lang-constant ',name ,@args)))))) ! ! (defvar c-lang-constants-under-evaluation nil) ! ! (defun c-get-lang-constant (name &optional source-files mode) ! ;; Used by `c-lang-const'. This function does not do any hidden ! ;; buffer changes. ! ! (or mode ! (setq mode c-buffer-is-cc-mode) ! (error "No current language")) ! ! (let* ((sym (intern (symbol-name name) c-lang-constants)) ! (source (get sym 'source)) ! elem ! (eval-in-sym (and c-lang-constants-under-evaluation ! (caar c-lang-constants-under-evaluation)))) ! ! ;; Record the dependencies between this symbol and the one we're ! ;; being evaluated in. ! (when eval-in-sym ! (or (memq eval-in-sym (get sym 'dependents)) ! (put sym 'dependents (cons eval-in-sym (get sym 'dependents))))) ! ! ;; Make sure the source files have entries on the `source' ! ;; property so that loading will take place when necessary. ! (while source-files ! (unless (assq (car source-files) source) ! (put sym 'source ! (setq source (cons (list (car source-files)) source))) ! ;; Might pull in more definitions which affect the value. The ! ;; clearing of dependent values etc is done when the ! ;; definition is encountered during the load; this is just to ! ;; jump past the check for a cached value below. ! (set sym nil)) ! (setq source-files (cdr source-files))) ! ! (if (and (boundp sym) ! (setq elem (assq mode (symbol-value sym)))) ! (cdr elem) ! ! ;; Check if an evaluation of this symbol is already underway. ! ;; In that case we just continue with the "assignment" before ! ;; the one currently being evaluated, thereby creating the ! ;; illusion if a `setq'-like sequence of assignments. ! (let* ((c-buffer-is-cc-mode mode) ! (source-pos ! (or (assq sym c-lang-constants-under-evaluation) ! (cons sym (vector source nil)))) ! ;; Append `c-lang-constants-under-evaluation' even if an ! ;; earlier entry is found. It's only necessary to get ! ;; the recording of dependencies above correct. ! (c-lang-constants-under-evaluation ! (cons source-pos c-lang-constants-under-evaluation)) ! (fallback (get mode 'c-fallback-mode)) ! value ! ;; Make sure the recursion limits aren't very low ! ;; since the `c-lang-const' dependencies can go deep. ! (max-specpdl-size (max max-specpdl-size 3000)) ! (max-lisp-eval-depth (max max-lisp-eval-depth 1000))) ! ! (if (if fallback ! (let ((backup-source-pos (copy-sequence (cdr source-pos)))) ! (and ! ;; First try the original mode but don't accept an ! ;; entry matching all languages since the fallback ! ;; mode might have an explicit entry before that. ! (eq (setq value (c-find-assignment-for-mode ! (cdr source-pos) mode nil name)) ! c-lang-constants) ! ;; Try again with the fallback mode from the ! ;; original position. Note that ! ;; `c-buffer-is-cc-mode' still is the real mode if ! ;; language parameterization takes place. ! (eq (setq value (c-find-assignment-for-mode ! (setcdr source-pos backup-source-pos) ! fallback t name)) ! c-lang-constants))) ! ;; A simple lookup with no fallback mode. ! (eq (setq value (c-find-assignment-for-mode ! (cdr source-pos) mode t name)) ! c-lang-constants)) ! (error ! "`%s' got no (prior) value in %s (might be a cyclic reference)" ! name mode)) ! ! (condition-case err ! (setq value (eval value)) ! (error ! ;; Print a message to aid in locating the error. We don't ! ;; print the error itself since that will be done later by ! ;; some caller higher up. ! (message "Eval error in the `c-lang-defconst' for `%s' in %s:" ! sym mode) ! (makunbound sym) ! (signal (car err) (cdr err)))) ! ! (set sym (cons (cons mode value) (symbol-value sym))) ! value)))) ! ! (defun c-find-assignment-for-mode (source-pos mode match-any-lang name) ! ;; Find the first assignment entry that applies to MODE at or after ! ;; SOURCE-POS. If MATCH-ANY-LANG is non-nil, entries with `t' as ! ;; the language list are considered to match, otherwise they don't. ! ;; On return SOURCE-POS is updated to point to the next assignment ! ;; after the returned one. If no assignment is found, ! ;; `c-lang-constants' is returned as a magic value. ! ;; ! ;; SOURCE-POS is a vector that points out a specific assignment in ! ;; the double alist that's used in the `source' property. The first ! ;; element is the position in the top alist which is indexed with ! ;; the source files, and the second element is the position in the ! ;; nested bindings alist. ! ;; ! ;; NAME is only used for error messages. ! ! (catch 'found ! (let ((file-entry (elt source-pos 0)) ! (assignment-entry (elt source-pos 1)) ! assignment) ! ! (while (if assignment-entry ! t ! ;; Handled the last assignment from one file, begin on the ! ;; next. Due to the check in `c-lang-defconst', we know ! ;; there's at least one. ! (when file-entry ! ! (unless (aset source-pos 1 ! (setq assignment-entry (cdar file-entry))) ! ;; The file containing the source definitions has not ! ;; been loaded. ! (let ((file (symbol-name (caar file-entry))) ! (c-lang-constants-under-evaluation nil)) ! ;;(message (concat "Loading %s to get the source " ! ;; "value for language constant %s") ! ;; file name) ! (load file)) ! ! (unless (setq assignment-entry (cdar file-entry)) ! ;; The load didn't fill in the source for the ! ;; constant as expected. The situation is ! ;; probably that a derived mode was written for ! ;; and compiled with another version of CC Mode, ! ;; and the requested constant isn't in the ! ;; currently loaded one. Put in a dummy ! ;; assignment that matches no language. ! (setcdr (car file-entry) ! (setq assignment-entry (list (list nil)))))) ! ! (aset source-pos 0 (setq file-entry (cdr file-entry))) ! t)) ! ! (setq assignment (car assignment-entry)) ! (aset source-pos 1 ! (setq assignment-entry (cdr assignment-entry))) ! ! (when (if (listp (car assignment)) ! (memq mode (car assignment)) ! match-any-lang) ! (throw 'found (cdr assignment)))) ! ! c-lang-constants))) (cc-provide 'cc-defs) From MAILER-DAEMON Thu Jul 03 09:07:33 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3TJ-0001Bu-TV for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:45:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3RS-0000Vz-Od for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:44:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3HG-0006OG-8G for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:35 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fu-0006HR-Ho for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:06 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Eq-0005GE-5m for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:00 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:00 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 12:45:55 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5252 emacs/lisp/ChangeLog:1.5253 *** emacs/lisp/ChangeLog:1.5252 Tue Jul 1 20:53:46 2003 --- emacs/lisp/ChangeLog Thu Jul 3 08:30:58 2003 *************** *** 1,3 **** --- 1,1279 ---- + 2003-07-03 Martin Stjernholm + + * progmodes/cc-menus.el (cc-imenu-init): Do not set + `imenu-create-index-function' if the second argument is left + out. This bug broke the imenu support in C, C++ and Java + modes. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el, progmodes/cc-align.el + (c-add-stmt-syntax, c-lineup-arglist, + c-lineup-arglist-close-under-paren): Fixes to cope with + special brace lists in Pike. + + 2003-07-03 Alan Mackenzie + + * progmodes/cc-mode.el: awk-mode: Call c-awk-after-change to + ensure syntax-table props at loading. + + * progmodes/cc-fonts.el: Put (cc-require-when-compile 'cc-awk) + to eliminate compile-time errors. + + 2003-07-03 Alan Mackenzie + + * progmodes/cc-awk.el, progmodes/cc-engine.el: Added code to + analyze AWK top-level forms properly (c-guess-basic-syntax + CASE 5P), c-awk-backward-syntactic-ws. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fix.el: cc-mode-19.el has been renamed to + progmodes/cc-fix.el since it now contains compatibility stuff + for later versions than (X)Emacs 19. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-paren-nontype-kwds): New language + constant. + + (c-other-decl-kwds, c-postfix-decl-spec-kwds): Added compiler + specific declspec keywords: __attribute__ for gcc and + __declspec for msvc. + + * progmodes/cc-fonts.el (c-font-lock-declarations, + c-complex-decl-matchers): Support specifiers in a couple more + contexts to cope with msvc '__declspec'. + + * progmodes/cc-engine.el (c-forward-keyword-clause): Support + `c-paren-nontype-kwds'. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-primary-expr-regexp): Don't match a + bare period as a float. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-bytecomp.el (cc-bytecomp-setup-environment): Do + not cover functions that have been bound. + + (cc-external-require): New macro to use for requiring external + packages, to handle the environment correctly. + + * progmodes/cc-defs.el, progmodes/cc-fix.el, + progmodes/cc-fonts.el, progmodes/cc-mode.el: Replaced external + require's with `cc-external-require'. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-beginning-of-member-init-list, + c-guess-basic-syntax): Fixes in handling of bitfields. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (comment-end): Put a space in front of + the comment ender in C, as it was before the move from + progmodes/cc-mode.el. + + 2003-07-03 Alan Mackenzie + + * progmodes/cc-fonts.el: Do not load progmodes/cc-awk.elc or + awk-font-lock-keywords unless there is an AWK Mode buffer. + + 2003-07-03 Alan Mackenzie + + * progmodes/cc-awk.el: New file that implements AWK support, + superseding the old separate derived mode in awk-mode.el. + + * progmodes/cc-vars.el, cc-mode-19.el, progmodes/cc-langs.el, + progmodes/cc-mode.el, progmodes/cc-defs.el, + progmodes/cc-engine.el, progmodes/cc-fonts.el: Changes for the + new AWK support. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el, progmodes/cc-langs.el + (c-decl-block-key, c-search-uplist-for-classkey): Check that + the modifier is followed by "{" in Pike before considering it + to start a class-like block. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el (c-initialize-cc-mode): Added some + compatibility to make this function behave somewhat more as + documented for derived modes. It's still not enough to make + the old AWK mode behave reasonably, but it's been like this a + long time now so fixing it more might cause trouble + elsewhere. :P + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el (c-remove-font-lock-face): New macro + to remove a font lock face properly (especially in XEmacs). + + * progmodes/cc-bytecomp.el (cc-bytecomp-obsolete-fun): Added + the same kludge as in `cc-bytecomp-obsolete-var' to avoid a + confused compiler warning. + + * progmodes/cc-engine.el (c-forward-type): Fixed a bug in the + handling of concatenated types when the component types are + known. + + * progmodes/cc-fonts.el (c-constant-face-name): Added face name variable to + avoid the use of `font-lock-constant-face' for constants in + emacsen that doesn't have it. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-styles.el, progmodes/cc-vars.el, + progmodes/cc-cmds.el: Fixes for the syntactic symbols for + module and composition blocks. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el (c-basic-common-init): Use + `open-paren-in-column-0-is-defun-start' if it exists and + works. + + * progmodes/cc-vars.el (c-emacs-features): Added `col-0-paren' + to detect when `open-paren-in-column-0-is-defun-start' exists + and actually works. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-argcont, + c-lineup-gcc-asm-reg): Don't quote nil in docstrings. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-vars.el, progmodes/cc-langs.el + (c-primitive-type-kwds, c-font-lock-extra-types): "complex" + and "imaginary" aren't keywords in C99, only macros that + expand to the keywords "_Complex" and "_Imaginary", so make + the former a bit less hardcoded by putting it on + `c-font-lock-extra-types' instead. There are also "bool" and + "_Bool" that work the same way. + + (c-constant-kwds): "false" and "true" are standard constant + macros in C99. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-menus.el, progmodes/cc-langs.el, + progmodes/cc-engine.el, progmodes/cc-fonts.el, + progmodes/cc-cmds.el: Fixed various regexps to use POSIX char + classes when that is supported. + + * progmodes/cc-defs.el (c-alpha, c-alnum, c-digit, c-upper, + c-lower): New constants to make it easier to create regexps + that use POSIX char classes in emacsen that support them. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-vars.el (c-emacs-features): Detect in the + regexp engine understands POSIX char classes. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el (c-after-change): Added kludge for bug + where this function sometimes gets positions outside the + buffer range. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-beginning-of-member-init-list): + Better handling of paretheses in unexpected places. + + * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Fixed a + regexp match order problem that could cause empty template + args on the form "<>" to be missed. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-parse-state): Added kludge to + avoid an infinite loop when Emacs' open-paren-in-column-zero + rule kicks in and causes the sexp functions to misbehave. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-beginning-of-member-init-list): + Fixed bug when C++-like code is encountered in non-C++ mode. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-defs.el (c-make-keywords-re): Added option to + specify the language to look up `c-nonsymbol-key' in. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el, progmodes/cc-engine.el + (c-auto-newline-analysis): New dynamically bound variable to + turn off the topmost-intro-cont/statement-cont kludge for + brace lists during the analysis for the auto newline feature. + This fixes some cases where the setting for `brace-list-open' + on `c-hanging-braces-alist' didn't have any effect. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-literal-start-regexp): Yet another + language variable. + + * progmodes/cc-fonts.el (c-font-lock-doc-comments, + c-find-invalid-doc-markup, javadoc-font-lock-keywords): Fixed + fontification of the markup in Javadoc comments. + + * progmodes/cc-engine.el: Fixes in face handling to cope with + doc comments. + + (c-find-decl-spots): More failsafe skipping of comments and + strings that only have been partially fontified. + + * progmodes/cc-defs.el (c-got-face-at): New subst to test + faces at positions easier. + + * progmodes/cc-defs.el (c-safe-scan-lists): New wrapper macro + to avoid the warnings with too many args to `scan-lists' in + Emacs. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-syntactic-skip-backward): New + function to make syntactic searches in the backward direction + easier. + + (c-beginning-of-statement-1): Optimized skipping over large paren + sexps somewhat. + + (c-safe-position): Removed the odd macro handling which was + centered around the point instead of the passed position. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-in-knr-argdecl): Do not trip up on + initialization expressions. + + * progmodes/cc-align.el (c-lineup-arglist, + c-lineup-close-paren, c-lineup-arglist-close-under-paren): + Tuned the "macro block" heuristics to work better in nested + arglist situations. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-styles.el (c-set-offset): Don't find a default + syntactic element through syntactic analysis if called outside + a CC Mode buffer. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el (c-basic-common-init): Install + `c-fill-paragraph' on `fill-paragraph-function'. Although + it's not the normal way to call it in a CC Mode buffer it + makes a direct call to `fill-paragraph' work better. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-vars.el, progmodes/cc-mode.el + (c-require-final-newline): Made this variable an alist to + specify a value for each language. The default value causes + `require-final-newline' to be set to t only in languages where + the standard requires a final newline. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el, progmodes/cc-vars.el + (c-require-final-newline): Added a variable to make the + initialization of `require-final-newline' more configurable. + + * progmodes/cc-vars.el (c-mode-common-hook): Do not change the + format string to "CC Mode Common Hook" since that causes + confusion (although it is a more accurate name). + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el (javadoc-font-lock-keywords, + autodoc-font-lock-keywords): Support for Javadoc and Pike + Autodoc doc comments. + + * progmodes/cc-vars.el (c-doc-comment-style): New variable to + control the fontification of documentation comments on top of + the normal mode font lock. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el, progmodes/cc-fonts.el + (c-primary-expr-regexp, c-font-lock-declarations): Avoid false + recognition of parens as casts when they are followed by an + operator that is both prefix and infix. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el (c-guess-fill-prefix): Tuned the + heuristics of when to use `c-block-comment-prefix' for an + unclosed block comment. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el, progmodes/cc-langs.el + (c-nonsymbol-sexp-kwds, c-forward-keyword-clause): Handle + keywords like "extern" that can be followed by e.g. a string + literal. + + * progmodes/cc-defs.el (c-make-keywords-re): Make a regexp + correctly with one submatch when adorn is set and the list is + empty. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el (c-font-lock-declarations): Fixed a + search that could go far past the relevant region and cause + slowness. Do not limit the declaration detection to the + fontified region since that can cause misfontification in + multiline declarations. + + * progmodes/cc-engine.el (c-find-decl-spots): Added limit + argument to handle declarations spanning the fontification + limit better. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-in-literal, c-literal-limits, + c-literal-limits-fast, c-beginning-of-inheritance-list): Use + the paren cache instead of the impaired ad hoc in + `beginning-of-defun', so that these functions doesn't trip up + on "{" in the first column inside strings or comments. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-vars.el (c-hanging-braces-alist): Added + `statement-cont' and made it auto newline free by default. + + * progmodes/cc-cmds.el (c-electric-brace): Added + `statement-cont' to the list of syntactic symbols to consider + for auto newlines since it can be used for in-statement brace + lists. + + * progmodes/cc-vars.el (c-emacs-features): There's no need to + have this constant autoloaded. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el (c-font-lock-declarations): Use + `c-recognize-typeless-decls' to avoid fontifying some macro + constructs as declarations in languages where a preceding type + is mandatory. + + * progmodes/cc-langs.el (c-recognize-typeless-decls): New + language variable. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-close-paren): Use + `c-syntactic-eol' when checking if the open paren ends its + line. + + * progmodes/cc-langs.el (c-syntactic-eol): Handle a line + continuation backslash. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-snug-do-while): Compatibility fix + for changed structure in `c-syntactic-context'. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-parse-state): Filter angle bracket + arglist parens in a better way than disabling the syntax table + properties completely. + + * progmodes/cc-fonts.el (c-cpp-matchers): Handle line + continuations in cpp expressions. Do not fontify symbols after + #ifdef etc as variables since that isn't consistent with how + the face is used elsewhere (i.e. only for the definition of + the symbol). + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el: Added autoload directives for the + interface functions in cc-langs. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el (c-font-lock-declarations): Added a + property to handle refontication in multiline declaration + arglists better. + + (c-font-lock-<>-arglists): Fix to handle recursive template + arglists better. (As a side effect this will make + fontification work better in older emacsen too.) + + * progmodes/cc-engine.el (c-forward-<>-arglist, + c-remove-<>-arglist-properties): Use a common text property + `c-type' for all sorts of CC Mode char classification, to + avoid cases when then same char is given conflicting types. + + (c-forward-<>-arglist): New reparse argument to control that + aspect explicitly. + + (c-forward-name, c-forward-type): Changes in the handling of + recursive template arglists. Fixes to cope with the new 'known + type classification. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el (c-basic-common-init): Added the new + char property `c-type' to `text-property-default-nonsticky'. + + * progmodes/cc-defs.el (c-put-char-property, + c-get-char-property, c-clear-char-property, + c-clear-char-properties): Generalized `c-put-char-syntax' and + `c-get-char-syntax' to handle any property. + + * progmodes/cc-bytecomp.el (cc-bytecomp-defun): Fixed bug that + caused existing function definitions to be overridden by + phonies when the bytecomp environment is restored. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el (c-mask-paragraph): Masking is + necessary in normal code too to avoid getting a fill prefix + from a nearby comment. Changed the name from `c-mask-comment' + to a more accurate one. + + * progmodes/cc-defs.el, progmodes/cc-mode.el: Changed the + auto-load-alist strategy to not add entries on package load, + to be defensive in the case that autoloads are updated in + older emacsen. The bug that would occur in that case would + probably be rather nasty for the average user. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el (c-font-lock-declarations): Fine + tuning of the decision tree that tells declarations from + expressions to produce better results in some ambiguous cases. + + * progmodes/cc-fonts.el (c-font-lock-syntactic-face-function): + Removed since it doesn't give the control we want. + + (c-font-lock-invalid-string): Replacement for + `c-font-lock-syntactic-face-function' that puts the error face + on the string opener only, to avoid the annoying excessive use + of the error face while a string literal is being written. + + (c-basic-matchers-before): Use `c-font-lock-invalid-string'. + + * progmodes/cc-engine.el (c-string-syntax, + c-string-limit-regexp): Added constants to use when handling + string limits, since not all old emacsen react well to the "|" + syntax class. + + (c-literal-limits, c-literal-limits-fast, c-literal-type): Use + `c-string-syntax' and `c-string-limit-regexp'. Replaced some + hardcoded comment start regexps with `c-comment-start-regexp'. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el: Added an association for pike-mode on + `intepreter-mode-alist'. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el: Add the `auto-mode-alist' entries to + the end instead of the start of the list, to avoid overriding + user additions that are made before this file is loaded when + the entries don't correspond to any already on + `auto-mode-alist'. + + This is done through the third append argument to + `auto-mode-alist'. That doesn't exist in older (X)Emacsen, so + the function is adviced in cc-defs. However, that advice + doesn't help if the autoloads are updated in an old (X)Emacs + with this version of CC Mode, but I believe it's unlikely that + anyone does that when CC Mode isn't distributed with with it. + + * progmodes/cc-defs.el (add-to-list): Added advice to get the + optional third append argument in older (X)Emacsen. + + * progmodes/cc-langs.el (c-keywords-obarray): Kludge for + strange bug in Emacs that gives so odd errors that I frankly + don't even muster to begin trying to narrow it down. If + someone is so inclined, restore the commented code, byte + compile, and try to open a C++ file or something in font lock + mode. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el: Updated the IDL support from the + specs. This also adds the keywords for the variants PSDL and + CIDL. (This is mostly done from reading the grammars only; + very lightly tested.) + + * progmodes/cc-langs.el (c-type-list-kwds): Added "new" in + Java. + + * progmodes/cc-fonts.el: Made sure that + `parse-sexp-lookup-properties' is properly insulated from + clobbering by the font-lock package at all relevant entry + points. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-opt-after-id-concat-key): New + language constant to make the recognition of identifier + qualifiers more flexible. Recognize the identifier before + ".*" as a qualifier in Java. + + (c-identifier-key): Recognize "::*" inside identifiers in C++. + Recognize identifiers ending with ".*" in Java for the sake of + import directives. + + (c-type-list-kwds, c-ref-list-kwds): Recognize "import" and + "package" declarations in Java. + + * progmodes/cc-vars.el (c-doc-face, c-doc-marker-face, + c-doc-markup-face): Removed since they aren't used (and + probably won't be). + + * progmodes/cc-langs.el (c-ref-list-kwds): New language + constant to specify keywords followed by references. + + (c-last-identifier-range): New variable to avoid going back to + search for the identifier to font lock after a call to + `c-forward-name'. + + (c-type-prefix-kwds, c-type-list-kwds): Fixed classification of + "@interface" etc in Objective-C. + + * progmodes/cc-engine.el (c-forward-keyword-clause): Fixed + handling of keyword prefixes in `c-type-list-kwds' and + `c-colon-type-list-kwds' clauses. + + (c-keyword-sym, c-keyword-member): New functions to lookup and + categorize keywords. + + (c-forward-keyword-clause): New function to move over a keyword + and its associated clause according to `c-<>-arglist-kwds' etc. + + * progmodes/cc-langs.el (c-typeless-decl-kwds, + c-type-list-kwds, c-colon-type-list-kwds, + c-colon-type-list-re, c-paren-type-kwds): New language + constants and variables to generalize the recognition of + various language constructs. + + (c-keywords): Did away with the list of `*-kwds' constants. It's + now built through macro expansion. + + (c-keywords-obarray): New language variable which contains each + keyword as a symbol, to make fast reverse lookup of keywords to + the `*-kwds' lists they come from. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-defs.el (c-lang-defconst-eval-immediately): + Added macro to be able to do direct evaluation in + `c-lang-defconst' forms. + + * progmodes/cc-engine.el (c-syntactic-re-search-forward): + Fixed a bug which could cause the point to end up outside the + containing sexp if PAREN-LEVEL was used. + + * progmodes/cc-engine.el, progmodes/cc-fonts.el, + progmodes/cc-langs.el: Generalized the C++ template arglist + support to handle angle bracket arglists in any language. + + (c-recognize-<>-arglists, c-<>-arglist-kwds, + c-opt-<>-arglist-start): New language variables to control + angle bracket arglists. + + (c-opt-type-suffix-key): Use `c-recognize-<>-arglists' in + Objective-C instead of matching a protocol reference list as a + type suffix. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-gnu-impose-minimum): Fixed a missing + `save-excursion' that caused the point to jump around. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el, progmodes/cc-menus.el (objc-mode, + cc-imenu-init): Fixed initialization bug that has made the + Objective-C support inoperational since 5.26. + + (cc-imenu-objc-generic-expression): Updated submatch indices + due to changes in `cc-imenu-c++-generic-expression'. + + (cc-imenu-objc-function): Don't add an empty "C" menu since + imenu doesn't like that. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-arglist, + c-lineup-arglist-close-under-paren, c-lineup-close-paren): + Added DWIM to the functions that line up at or after the + arglist open paren to avoid that if there are brace blocks + inside, e.g. when a macro contains a code block. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-vars.el (objc-font-lock-extra-types): Changed + default to treat identifiers starting with capital letters as + types, according to Objective-C naming conventions. The types + previously on the list is part of the language and therefore + on `c-primitive-type-kwds' instead. + + * progmodes/cc-fonts.el: Fixed font locking in Objective-C. + Be more careful about returning nil from functions used + directly as font-lock matchers. + + * progmodes/cc-mode.el (c-font-lock-init): Made the syntax + table modification element of `font-lock-defaults' + parameterized over the languages. + + * progmodes/cc-langs.el: Updated the Objective-C constants + according to the language spec. The "@" chars that start + directives are now considered part of the keywords to make + things easier. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-defs.el: (c-(up|down)-list-(forward|backward)): + Made the position optional and added docstrings. + + (c-go-(up|down)-list-(forward|backward)): Added variants of the + above that move point and return successfulness instead. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el (c-font-lock-<>-arglists): New + function to fontify all occurrences of template arglists in + C++. + + * progmodes/cc-engine.el (c-disallow-comma-in-<>-arglists): + New variable to be able to avoid false recognition of template + arglists in some cases. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-fonts.el, progmodes/cc-langs.el + (c-decl-prefix-re, c-font-lock-declarations): Match template + open brackets to get a declaration in the first template + argument. + + (c-complex-decl-matchers): Fontify the second type in a "class + X = Y" expression in C++. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-forward-<>-arglist): Broke out the + recursive part to a new function to improve efficiency when a + nested template arglist search turns out to be futile. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-menus.el (cc-imenu-java-generic-expression): + Improved to avoid false matches on e.g. "else if (foo)". + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-forward-token-2, + c-backward-token-2): New functions that work like the -1 + variants but that handles multicharacter operator tokens. + + * progmodes/cc-engine.el (c-inside-bracelist-p, + c-guess-basic-syntax): Did away with the hardcoded regexps to + recognize "typedef" declaration prefixes, "extern" and + "namespace" blocks, "enum"-style brace list declarations and + Java-style array initializers with "new". + + * progmodes/cc-langs.el (c-brace-list-decl-kwds, + c-brace-list-key, c-inexpr-brace-list-kwds, + c-opt-inexpr-brace-list-key): New language constants and + variables to parameterize some more of the hardcoded regexps + in cc-engine. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-cascaded-calls): Do not + allow cascaded call lists containing both "->" and ".". + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el, progmodes/cc-cmds.el, + progmodes/cc-defs.el, progmodes/cc-engine.el, + progmodes/cc-fonts.el, progmodes/cc-langs.el, + progmodes/cc-mode.el, progmodes/cc-styles.el: New language + variable system to make it easier to set up optimized language + variables and to extend them in third party derived modes. + cc-langs is no longer required at runtime. + + * progmodes/cc-mode.el (c-basic-common-init): No longer + initializes the language variables. It's necessary that the + caller does that directly since the evaluated values for them + now get compiled in directly. + + (c-font-lock-init, c-common-init): Separated the font-lock + initialization from `c-common-init'. + + * progmodes/cc-mode.el (c-define-abbrev-table): Do not + override an existing abbrev table. + + (c-Java-defun-prompt-regexp): Moved here from cc-langs since + cc-langs isn't always loaded at runtime. + + * progmodes/cc-langs.el (c-make-init-lang-vars-fun, + c-init-language-vars): Changed to allow language variable + initialization from derived modes. + + (c-mode-menu): New language variable for the mode menu. + + (c-make-mode-syntax-table, c-mode-syntax-table, + make-c++-template-syntax-table): New language variables for syntax + tables. The code that initializes them has been moved to cc-mode + to make it possible to avoid loading cc-langs at runtime. + + * progmodes/cc-engine.el, progmodes/cc-langs.el + (c-hungry-delete-key, c-auto-newline, c-auto-hungry-string): + Moved these state variables from cc-langs to cc-engine to make + it possible to avoid loading cc-langs at runtime. + + * progmodes/cc-defs.el (c-lang-defconst, c-lang-const): Moved + from cc-langs and rewritten to make the language constant + system usable from derived modes. + + (c-add-language): New function intended for use from derived modes + that add new C-like languages. + + * progmodes/cc-defs.el, progmodes/cc-vars.el + (c-buffer-is-cc-mode): Moved from cc-vars to cc-defs to define + it during compilation. + + * progmodes/cc-bytecomp.el (cc-require-when-compile): New + support macro for compile time `require's. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-defs.el, progmodes/cc-mode.el (c-version): + Moved from cc-mode to cc-defs to make it accessible to the + other components. + + * progmodes/cc-engine.el (c-forward-token-1, + c-backward-token-1): Compatibility fix for emacsen that + doesn't understand generic string delimiters. + + * progmodes/cc-vars.el (c-emacs-features): Added detection of + generic string and comment delimiters. + + * progmodes/cc-defs.el, progmodes/cc-langs.el + (c-make-keywords-re): Changed interface to make it more + extensible. + + * progmodes/cc-langs.el, progmodes/cc-defs.el (c-regexp-opt, + c-regexp-opt-depth, c-make-keywords-re): Moved from cc-langs + to cc-defs since they are generally useful. + + * progmodes/cc-bytecomp.el, progmodes/cc-defs.el + (cc-eval-when-compile): Moved from cc-bytecomp to cc-defs to + allow use at runtime. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-bytecomp.el (cc-eval-when-compile): Workaround + for a bug with nested `eval-when-compile' in XEmacs 21. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el: Added autoloaded forms to install the + appropriate file suffixes on `auto-mode-alist'. Necessary in + XEmacs 21.5, and it can be useful elsewhere too. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-cascaded-calls): Handle "." + too, for use in Java. + + * progmodes/cc-engine.el (c-forward-sws, c-backward-sws): Do + not handle cpp directives in languages that doesn't have any. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-operators): Added a high level + description of all operators, along with their precedence and + associativity. + + * progmodes/cc-align.el (c-lineup-multi-inher): Fixed bug + where the position of the point and not the beginning of the + line was used to calculate the indentation. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-defs.el, progmodes/cc-engine.el + (c-backward-single-comment, c-backward-comments): Added kludge + for the bug in `forward-comment' in most (X)Emacs versions + where it moves back over the "*/" of a block comment if + there's no matching "/*". This has become more important now + since it can cause incorrect caching by `c-backward-sws'. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el (c-hungry-backspace, + c-hungry-delete-forward): New functions to do hungry deletion + regardless of hungry-delete mode. Contributed by Kevin Ryde. + + * progmodes/cc-engine.el (c-forward-sws, c-backward-sws, + c-invalidate-sws-region): Use text properties to cache regions + with complex syntactic whitespace. This helps a lot in + improving responsiveness when there are lots of comments and + cpp directives before point. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-guess.el, progmodes/cc-langs.el, + progmodes/cc-menus.el, progmodes/cc-mode.el, + progmodes/cc-styles.el, progmodes/cc-vars.el, + progmodes/cc-engine.el, progmodes/cc-fonts.el, + progmodes/cc-cmds.el, progmodes/cc-defs.el: Introduced a + classification of functions into those that make "hidden + buffer changes" and those who don't. This is prompted by the + increasing use of text properties for various things, to + correctly cover the silly buffer modifications that is caused + by text property changes. + + (c-save-buffer-state): New macro that's put around any code that + can manipulate text properties. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el (c-basic-common-init): Setup + `text-property-default-nonsticky' to avoid messing with the + rear-nonsticky property on each character in Emacs 21. + + * progmodes/cc-defs.el (c-clear-char-syntax, + c-put-char-syntax): Macros that sets and removes the + syntax-table property on a single character and makes the + property nonsticky in both directions in a suitable way for + each (X)Emacs flavor. + + * progmodes/cc-vars.el, progmodes/cc-defs.el, + progmodes/cc-engine.el, progmodes/cc-mode.el: Use + `lookup-syntax-properties' in XEmacs to control whether the + syntax-table property has any effect or not. + + (c-parse-sexp-lookup-properties): New macro that expands to either + `parse-sexp-lookup-properties' or `lookup-syntax-properties'. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-defs.el, progmodes/cc-engine.el, + progmodes/cc-fonts.el: Put the faces into the buffer in the + same way as the font-lock package does. This fixes a + compatibility problem with XEmacs which sets an extra + font-lock property. + + * progmodes/cc-fonts.el (c-put-font-lock-face): A macro that + finds out the right way to put font lock faces at compile + time. We're definitely not byte code portable between Emacs + and XEmacs now. + + * progmodes/cc-engine.el (c-forward-sws, c-backward-sws): + Implemented a cache for the last large skipped over syntactic + whitespace. This also has most effect after many macros. + + * progmodes/cc-engine.el, progmodes/cc-defs.el + (c-forward-syntactic-ws, c-backward-syntactic-ws): Utilize the + limit better when one is passed. These are now macros to + avoid a little overhead when no limit is given. + + (c-forward-sws, c-backward-sws): New functions called by the + macros above to do the unbounded search. + + * progmodes/cc-fonts.el (c-font-lock-declarations): + Implemented a cache for the first backward search for a + preceding `c-decl-prefix-re' match. This typically speeds up + interactive refontification a lot on the top level of macro + heavy header files. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-vars.el (c-emacs-features): Added check for + syntax text properties. + + * progmodes/cc-mode.el (c-basic-common-init): Turn on + `parse-sexp-lookup-properties' if it's supported. Define the + variable in any case since it's used at runtime to check on + this. + + * progmodes/cc-langs.el (c-identifier-key): Support C++ + destructor names. + + (c-identifier-start, c-op-token-regexp, c-type-modifier-kwds, + c-opt-type-modifier-key, c-opt-type-component-key, + c-typedef-specifier-kwds, c-typedef-specifier-key, + c-paren-stmt-kwds, c-paren-stmt-key, c-syntactic-ws-start): A + bunch of new language constants and variables to support the + improved handling of names and types. + + * progmodes/cc-fonts.el (c-font-lock-declarators, + c-font-lock-declarations): Handle C++ template declarations + and template references. Fontify complex types and names more + accurately by delegating it to `c-forward-type' and + `c-forward-name'. Fontify the identifiers in typedef + declarations as types. + + * progmodes/cc-engine.el (c-forward-<>-arglist): New function + to move forward over a C++ template arglist. It also marks + the '<' and '>' chars with paren syntax using the syntax-table + property, to speed up later calls in emacsen that support + syntax text properties (Emacs >= 20 and (undocumented) XEmacs + 21). + + This also has the very interesting effect that if font locking + is used with decoration level 3 or higher in these emacsen + then template arglists will behave just like paren sexps with + the various sexp movement commands. + + (c-forward-name): New function to move over a name. Simple in + most languages except C++ where a name can contain template + arglists and therefore almost arbitrary expressions. + + (c-on-identifier): Fix for Pike operator identifiers. + + (c-simple-skip-symbol-backward, c-syntactic-content, + c-remove-<>-paren-properties): New helper functions. + + * progmodes/cc-defs.el: (c-clear-char-syntax, + c-mark-paren-open, c-mark-paren-close): New support functions + to handle syntactic properties on C++ template arglist + brackets. + + (c-put-type-face, c-put-reference-face): Helpers to put faces on + regions, since there are a bit of that inside `c-forward-name' etc + in progmodes/cc-engine.el. + + * progmodes/cc-engine.el, progmodes/cc-fonts.el, + progmodes/cc-langs.el: Fixed the names on a number of regexp + language variables to conform to the nomenclature and + shortened some names. + + * progmodes/cc-align.el, progmodes/cc-cmds.el, + progmodes/cc-fonts.el, progmodes/cc-engine.el + (c-syntactic-re-search-forward): Removed the COUNT argument + since it's never used. Added an argument to tell which + subexpression whose end should be tested for syntactic + relevance. Using this also removes some optimizations, so + that it's possible to use a look behind subexpression that + matches the end of a literal or a close paren when PAREN-LEVEL + is used. + + (c-guess-continued-construct): Don't match <<= or >>= for the + stream-op syntactic element. + + * progmodes/cc-defs.el (c-paren-re, c-identifier-re): Removed + these helper macros since better and more correct tools are + now available in progmodes/cc-langs.el. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-string-cont): New lineup + function to line up string literals that will be concatenated. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-populate-syntax-table): XEmacs + classifies the hard space character as a symbol character but + it's better to let it be in the punctuation class so that it's + always highlighted with the inverted invalid face. It can + perhaps be argued that that character is allowed in + identifiers in some languages (haven't checked), but using it + would still be extremely confusing. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a + case when a labeled substatement caused incorrect association + of the following continuation clause. + + * progmodes/cc-engine.el (c-syntactic-re-search-forward): + Handle the case when the syntactic match position is in the + middle of a comment starter. + + (c-guess-continued-construct): Analyze the "K&R region" of a + function nested inside a function as func-decl-cont and not + statement-cont. New case E. Also cleaned up case C (stream-op + recognition) a bit. + + * progmodes/cc-engine.el (c-parse-state, c-check-state-cache): + Moved the check on `c-state-cache-start' from + `c-check-state-cache' to `c-parse-state' so that the state + cache isn't zapped if `c-check-state-cache' but not + `c-parse-state' is called during a temporary narrowing. This + fixes a performance problem that could occur when + `fill-paragraph' is used in font lock mode on a comment at the + end of a large class or function. + + (c-state-cache-start): Fixed buffer localness. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el: Updates from the C99 standard (or + actually from the latest web accessible draft of it). + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el: Updated the keywords and operator + tokens from the latest C++ and Java standards. Some other + multichar token corrections. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el, progmodes/cc-engine.el, + progmodes/cc-vars.el (c-syntactic-context, + c-syntactic-element): Do not bind any values to these + variables globally since they should always be dynamically + bound. This makes it much easier to debug cases when they've + gotten global values somehow. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-regexp-opt): Fix to work around the + non-greedy behavior that the regexp engine sometimes exposes. + This bug only shows in (X)Emacs 19 where there's no regexp-opt + package. + + * progmodes/cc-engine.el (c-syntactic-re-search-forward): + Added a feature to filter out matches in the middle of tokens. + Changed the comment to a docstring since I consider this + function generally useful. + + * progmodes/cc-defs.el (c-mode-symbol): Broke out a part of + `c-mode-var'. + + * progmodes/cc-align.el (c-lineup-cascaded-calls, + c-lineup-gcc-asm-reg): Cope with that `c-most-enclosing-brace' + might return nil. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-found-types, c-clear-found-types, + c-add-type, c-check-type, c-add-complex-type, + c-list-found-types, c-forward-type): Added a sort of symbol + table for types: If a name is recognized as a type in a + declaration it's added in an obarray to be able to recognize + it in other ambiguous declarations. + + (c-remove-ws): New helper function to canonicalize fully + qualified identifiers for `c-found-types'. + + * progmodes/cc-defs.el (c-mode-var): New defsubst to access + mode prefixed variables uniformly. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-arglist-close-under-paren): + Work correctly with nested arglist-cont-nonempty symbols. + + (c-lineup-arglist-operators): New lineup function to line up infix + operators under the open paren of the surrounding sexp. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-forward-syntactic-ws): Fixed a bug + that could cause an infinite loop if something that looks like + a macro begins in the middle of a line. + + (c-parse-state): Fixed a bug that could cause `c-state-cache' + to contain two conses in sequence when there's an unbalanced + open paren in a macro. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-defs.el (c-face-name-p): A defsubst to + recognize the name of a face in a way that works also in + XEmacs. + + * progmodes/cc-engine.el (c-forward-type): New function to + move past a type spec. + + * progmodes/cc-engine.el (c-syntactic-re-search-forward): + Fixed behavior when the limit is reached inside a comment, + string, or a macro. + + * progmodes/cc-align.el, progmodes/cc-cmds.el, + progmodes/cc-engine.el (c-forward-single-comment, + c-forward-comments, c-backward-single-comment, + c-backward-comments): New replacements for `c-forward-comment' + that wraps `forward-comment' more efficiently in each of the + four different cases it's actually used. These replacements + also treats line continuations as whitespace. + + (c-forward-comment): Removed. The four different cases above + are basically different, so it's better to make them into + separate functions than choose between them at runtime using + the argument. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-gnu-impose-minimum): Fixed bug due + to the new placement of cpp-macro and comment-intro in the + syntactic context, as pointed out by Kevin Ryde. Changed the + method that decides whether point is inside a top-level + construct to one that doesn't depend on the set of syntactic + elements so much. + + * progmodes/cc-defs.el (c-point): Use the functions + `line-beginning-position' and `line-end-position' in emacsen + that have them (currently Emacs 20 and later). + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el (c-mask-comment): Fixed a bug that + sometimes caused code after a closed block comment to be taken + into account when the fill prefix is calculated. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el (c-lineup-arglist, c-lineup-argcont, + c-lineup-math, c-lineup-cascaded-calls, c-lineup-gcc-asm-reg): + Fixes to cope correctly with nested arglists for the lineups + that can be used with arglist-cont-nonempty. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-add-stmt-syntax, + c-guess-basic-syntax): Changed the anchor position of + arglist-cont-nonempty and arglist-close so that a relative + indentation like + can be used with consistent results. Prior + to this, the indentation engine more or less assumed that + arglist-cont-nonempty always used `c-lineup-arglist'. Those + two syntax symbols also get the opening paren as an extra + position, to make it possible for `c-lineup-arglist' to + continue to do a proper job. + + * progmodes/cc-engine.el (c-get-syntactic-indentation): A + vector with an absolute indentation column now only overrides + the indentation for surrounding structures, i.e. those whose + syntactic elements are earlier in the `c-syntactic-context' + list, but not nested ones. This so that + e.g. `c-lineup-arglist' can reliably line up with the first + argument but still allow relative indentation changes for + nested things, e.g. the arglist-close of a nested argument + list. This change means that the order in + `c-syntactic-context' has become more essential. + + (c-guess-basic-syntax): Changes to make the nesting order of the + returned syntax list correct. + + Compatibility note: This change means that `c-lineup-dont-change' + now (again) isn't absolutely sure to keep the current indentation. + However, I believe that most people use it for comments, macros + and string literals, and since those are nested innermost it won't + matter. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-align.el, progmodes/cc-defs.el, + progmodes/cc-engine.el, progmodes/cc-vars.el + (c-guess-basic-syntax, c-calc-offset, + c-get-syntactic-indentation, c-syntactic-context): Extended + the representation of the syntactic context: Previously it was + a list containing cons cells of the found syntactic symbols + and their relpos values. Now each element is instead a list + containing the syntactic symbol in the first element and the + relpos (if any) in the second. After that there might be more + elements, depending on the syntactic symbol. The line-up + functions get these additional elements as extra arguments. + + This change is slightly incompatible. Although the calling + convention for line-up functions is strictly extended, the format + of the `c-syntactic-context' variable has changed slightly. It's + believed that this incompatibility is minor, though; not a single + line-up function distributed with CC Mode needed to be changed, + for instance. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-styles.el (c-set-style, c-set-style-1): Added + another state for the `dont-override' flag where it only keeps + globally set variables. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-mode.el (c-postprocess-file-styles): Do nothing + except in CC Mode modes. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-vars.el, progmodes/cc-fonts.el, + progmodes/cc-langs.el, progmodes/cc-mode.el: Added font lock + support. + + * progmodes/cc-engine.el (c-beginning-of-syntax): New function + to be used for font-lock-beginning-of-syntax-function. It + uses the state cache to quickly find a good position. + + * progmodes/cc-defs.el (c-major-mode-is): Allow a list of + modes. Made it a macro ensure that it's optimized to either + eq or memq for constant arguments. + + * progmodes/cc-mode.el (c-common-init): Did away with the + hardcoded setting of `comment-column'; it's a user variable + that we have no business meddling with. Since the default + value for it is 32 in all supported (X)Emacs versions, it's + also safe from a compatibility perspective. + + * progmodes/cc-mode.el (c-basic-common-init): New function + that contains only the syntax and line breaking/filling + initialization. It's intended for use by other modes that + embed CC Mode. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-add-stmt-syntax): Fixed some cases + of wrong anchoring, e.g. for else-if compounds. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed anchor + position for defun-open in K&R style functions. + + * progmodes/cc-engine.el (c-in-knr-argdecl): Don't trip up on + macros. + + (c-search-decl-header-end): Handle C++ template arguments more + correctly. + + (c-beginning-of-decl-1): Fix when the declaration is first in a + macro. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-engine.el (c-beginning-of-decl-1): Better way + to handle protection labels, one which doesn't get confused by + inherit colons. + + (c-end-of-decl-1): Don't treat functions that have "class" or + "struct" in the return type as classes or structs. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-langs.el (c-make-keywords-re): Fixed the + keyword adornment so that it works when a keyword ends with + "_". + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el (c-mask-comment): More fixes when used + from `c-do-auto-fill' and point is at or near the limit of the + comment. Fixed bug when the prefix from `c-guess-fill-prefix' + is longer than the text on the first line of the comment when + it's masked. + + 2003-07-03 Martin Stjernholm + + * progmodes/cc-cmds.el (c-mask-comment): Fixed bug where point + was moved to the following line when it was at the first line + of a block comment where comment-start-skip matched to eol. + 2003-07-01 Luc Teirlinck * info.el (Info-fontify-menu-headers): Only fontify `* Menu:' at From MAILER-DAEMON Thu Jul 03 09:13:00 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3sw-0006Xw-3s for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:12:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3XE-000223-Nn for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:50:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3HM-0006Qd-Fs for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:33:36 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fu-0006HT-DR for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:06 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Er-0005GQ-Hn for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:01 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-awk.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 13:12:24 -0000 From MAILER-DAEMON Thu Jul 03 09:14:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3tz-0006tl-4j for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:13:31 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3bP-0003Vk-KA for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:54:19 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3It-0007B5-D2 for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:35:16 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3Fx-0006Hl-97 for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:32:09 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Ew-0005HF-DV for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:31:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:31:06 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-vars.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 13:13:29 -0000 Index: emacs/lisp/progmodes/cc-vars.el diff -c emacs/lisp/progmodes/cc-vars.el:1.29 emacs/lisp/progmodes/cc-vars.el:1.30 *** emacs/lisp/progmodes/cc-vars.el:1.29 Tue Feb 18 11:27:04 2003 --- emacs/lisp/progmodes/cc-vars.el Thu Jul 3 08:30:59 2003 *************** *** 1,10 **** ;;; cc-vars.el --- user customization variables for CC Mode ! ;; Copyright (C) 1985,1987,1992-2001 Free Software Foundation, Inc. ! ;; Authors: 2000- Martin Stjernholm ! ;; 1998-1999 Barry A. Warsaw and Martin Stjernholm ! ;; 1992-1997 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org --- 1,9 ---- ;;; cc-vars.el --- user customization variables for CC Mode ! ;; Copyright (C) 1985,1987,1992-2003 Free Software Foundation, Inc. ! ;; Authors: 1998- Martin Stjernholm ! ;; 1992-1999 Barry A. Warsaw ;; 1987 Dave Detlefs and Stewart Clamen ;; 1985 Richard M. Stallman ;; Maintainer: bug-cc-mode@gnu.org *************** *** 39,45 **** (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (require 'cc-bytecomp))) (cc-require 'cc-defs) --- 38,44 ---- (stringp byte-compile-dest-file)) (cons (file-name-directory byte-compile-dest-file) load-path) load-path))) ! (load "cc-bytecomp" nil t))) (cc-require 'cc-defs) *************** *** 50,58 **** ;; Pull in custom if it exists and is recent enough (the one in Emacs ;; 19.34 isn't). ! (eval-when-compile ! (require 'custom) ! (require 'wid-edit)) (cc-eval-when-compile ;; Need the function form of `backquote', which isn't standardized --- 49,75 ---- ;; Pull in custom if it exists and is recent enough (the one in Emacs ;; 19.34 isn't). ! (eval ! (cc-eval-when-compile ! (condition-case nil ! (progn ! (require 'custom) ! (or (fboundp 'defcustom) (error "")) ! (require 'widget) ! '(progn ; Compile in the require's. ! (require 'custom) ! (require 'widget))) ! (error ! (message "Warning: Compiling without Customize support \ ! since a (good enough) custom library wasn't found") ! (cc-bytecomp-defmacro define-widget (name class doc &rest args)) ! (cc-bytecomp-defmacro defgroup (symbol members doc &rest args)) ! (cc-bytecomp-defmacro defcustom (symbol value doc &rest args) ! `(defvar ,symbol ,value ,doc)) ! (cc-bytecomp-defmacro custom-declare-variable (symbol value doc ! &rest args) ! `(defvar ,(eval symbol) ,(eval value) ,doc)) ! nil)))) (cc-eval-when-compile ;; Need the function form of `backquote', which isn't standardized *************** *** 66,72 **** ;;; Helpers ! ;; This widget will show up in newer versions of the Custom library (or (get 'other 'widget-type) (define-widget 'other 'sexp "Matches everything, but doesn't let the user edit the value. --- 83,89 ---- ;;; Helpers ! ;; This widget exists in newer versions of the Custom library (or (get 'other 'widget-type) (define-widget 'other 'sexp "Matches everything, but doesn't let the user edit the value. *************** *** 104,116 **** :tag "Optional integer" :match (lambda (widget value) (or (integerp value) (null value)))) (defvar c-style-variables '(c-basic-offset c-comment-only-line-offset c-indent-comment-alist c-indent-comments-syntactically-p c-block-comment-prefix ! c-comment-prefix-regexp c-cleanup-list c-hanging-braces-alist ! c-hanging-colons-alist c-hanging-semi&comma-criteria c-backslash-column ! c-backslash-max-column c-special-indent-hook c-label-minimum-indentation ! c-offsets-alist) "List of the style variables.") (defvar c-fallback-style nil) --- 121,171 ---- :tag "Optional integer" :match (lambda (widget value) (or (integerp value) (null value)))) + (define-widget 'c-symbol-list 'sexp + "A single symbol or a list of symbols." + :tag "Symbols separated by spaces" + :validate 'widget-field-validate + :match + (lambda (widget value) + (or (symbolp value) + (catch 'ok + (while (listp value) + (unless (symbolp (car value)) + (throw 'ok nil)) + (setq value (cdr value))) + (null value)))) + :value-to-internal + (lambda (widget value) + (cond ((null value) + "") + ((symbolp value) + (symbol-name value)) + ((consp value) + (mapconcat (lambda (symbol) + (symbol-name symbol)) + value + " ")) + (t + value))) + :value-to-external + (lambda (widget value) + (if (stringp value) + (let (list end) + (while (string-match "\\S +" value end) + (setq list (cons (intern (match-string 0 value)) list) + end (match-end 0))) + (if (and list (not (cdr list))) + (car list) + (nreverse list))) + value))) + (defvar c-style-variables '(c-basic-offset c-comment-only-line-offset c-indent-comment-alist c-indent-comments-syntactically-p c-block-comment-prefix ! c-comment-prefix-regexp c-doc-comment-style c-cleanup-list ! c-hanging-braces-alist c-hanging-colons-alist ! c-hanging-semi&comma-criteria c-backslash-column c-backslash-max-column ! c-special-indent-hook c-label-minimum-indentation c-offsets-alist) "List of the style variables.") (defvar c-fallback-style nil) *************** *** 152,157 **** --- 207,213 ---- (defun c-valid-offset (offset) "Return non-nil iff OFFSET is a valid offset for a syntactic symbol. See `c-offsets-alist'." + ;; This function does not do any hidden buffer changes. (or (eq offset '+) (eq offset '-) (eq offset '++) *************** *** 268,274 **** of the macro content. The default context inside the macro is the same as the top level, so if it contains \"bare\" statements they might be indented wrongly, although there are special cases that ! handles this in most cases. If this problem occurs, it's usually countered easily by surrounding the statements by a block \(or even better with the \"do { ... } while \(0)\" trick)." :type 'boolean --- 324,330 ---- of the macro content. The default context inside the macro is the same as the top level, so if it contains \"bare\" statements they might be indented wrongly, although there are special cases that ! handle this in most cases. If this problem occurs, it's usually countered easily by surrounding the statements by a block \(or even better with the \"do { ... } while \(0)\" trick)." :type 'boolean *************** *** 434,440 **** should not match any surrounding whitespace. Note that CC Mode uses this variable to set many other variables that ! handles the paragraph filling. That's done at mode initialization or when you switch to a style which sets this variable. Thus, if you change it in some other way, e.g. interactively in a CC Mode buffer, you will need to do \\[c-mode] (or whatever mode you're currently --- 490,496 ---- should not match any surrounding whitespace. Note that CC Mode uses this variable to set many other variables that ! handle the paragraph filling. That's done at mode initialization or when you switch to a style which sets this variable. Thus, if you change it in some other way, e.g. interactively in a CC Mode buffer, you will need to do \\[c-mode] (or whatever mode you're currently *************** *** 466,471 **** --- 522,595 ---- (const :format "Other " other) (regexp :format "%v")))) :group 'c) + (defcustom-c-stylevar c-doc-comment-style + '((java-mode . javadoc) + (pike-mode . autodoc)) + "*Specifies documentation comment style(s) to recognize. + This is primarily used to fontify doc comments and the markup within + them, e.g. Javadoc comments. + + The value can be any of the following symbols for various known doc + comment styles: + + javadoc -- Javadoc style for \"/** ... */\" comments (default in Java mode). + autodoc -- Pike autodoc style for \"//! ...\" comments (default in Pike mode). + + The value may also be a list of doc comment styles, in which case all + of them are recognized simultaneously (presumably with markup cues + that don't conflict). + + The value may also be an association list to specify different doc + comment styles for different languages. The symbol for the major mode + is then looked up in the alist, and the value of that element is + interpreted as above if found. If it isn't found then the symbol + `other' is looked up and its value is used instead. + + Note that CC Mode uses this variable to set other variables that + handle fontification etc. That's done at mode initialization or when + you switch to a style which sets this variable. Thus, if you change + it in some other way, e.g. interactively in a CC Mode buffer, you will + need to do \\[java-mode] (or whatever mode you're currently using) to + reinitialize. + + Note also that when CC Mode starts up, the other variables are + modified before the mode hooks are run. If you change this variable + in a mode hook, you have to call `c-setup-doc-comment-style' + afterwards to redo that work." + ;; Symbols other than those documented above may be used on this + ;; variable. If a variable exists that has that name with + ;; "-font-lock-keywords" appended, it's value is prepended to the + ;; font lock keywords list. If it's a function then it's called and + ;; the result is prepended. + :type '(radio + (c-symbol-list :tag "Doc style(s) in all modes") + (list + :tag "Mode-specific doc styles" + (set + :inline t :format "%v" + (cons :format "%v" + (const :format "C " c-mode) + (c-symbol-list :format "%v")) + (cons :format "%v" + (const :format "C++ " c++-mode) + (c-symbol-list :format "%v")) + (cons :format "%v" + (const :format "ObjC " objc-mode) + (c-symbol-list :format "%v")) + (cons :format "%v" + (const :format "Java " java-mode) + (c-symbol-list :format "%v")) + (cons :format "%v" + (const :format "IDL " idl-mode) + (c-symbol-list :format "%v")) + (cons :format "%v" + (const :format "Pike " pike-mode) + (c-symbol-list :format "%v")) + (cons :format "%v" + (const :format "Other " other) + (c-symbol-list :format "%v"))))) + :group 'c) + (defcustom c-ignore-auto-fill '(string cpp code) "*List of contexts in which automatic filling never occurs. If Auto Fill mode is active, it will be temporarily disabled if point *************** *** 559,567 **** --- 683,695 ---- (defcustom-c-stylevar c-hanging-braces-alist '((brace-list-open) (brace-entry-open) + (statement-cont) (substatement-open after) (block-close . c-snug-do-while) (extern-lang-open after) + (namespace-open after) + (module-open after) + (composition-open after) (inexpr-class-open after) (inexpr-class-close before)) "*Controls the insertion of newlines before and after braces *************** *** 575,590 **** If the context is not found, the default is to insert a newline both before and after the brace. ! SYNTACTIC-SYMBOL can be any of: defun-open, defun-close, class-open, ! class-close, inline-open, inline-close, block-open, block-close, ! substatement-open, statement-case-open, extern-lang-open, ! extern-lang-close, brace-list-open, brace-list-close, ! brace-list-intro, brace-entry-open, namespace-open, namespace-close, ! inexpr-class-open, or inexpr-class-close. See `c-offsets-alist' for ! details, except for inexpr-class-open and inexpr-class-close, which ! doesn't have any corresponding symbols there. Those two symbols are ! used for the opening and closing braces, respectively, of anonymous ! inner classes in Java. ACTION can be either a function symbol or a list containing any combination of the symbols `before' or `after'. If the list is empty, --- 703,715 ---- If the context is not found, the default is to insert a newline both before and after the brace. ! SYNTACTIC-SYMBOL can be statement-cont, brace-list-intro, ! inexpr-class-open, inexpr-class-close, and any of the *-open and ! *-close symbols. See `c-offsets-alist' for details, except for ! inexpr-class-open and inexpr-class-close, which doesn't have any ! corresponding symbols there. Those two symbols are used for the ! opening and closing braces, respectively, of anonymous inner classes ! in Java. ACTION can be either a function symbol or a list containing any combination of the symbols `before' or `after'. If the list is empty, *************** *** 616,626 **** class-open class-close inline-open inline-close block-open block-close ! substatement-open statement-case-open ! extern-lang-open extern-lang-close brace-list-open brace-list-close brace-list-intro brace-entry-open namespace-open namespace-close inexpr-class-open inexpr-class-close))) :group 'c) --- 741,753 ---- class-open class-close inline-open inline-close block-open block-close ! statement-cont substatement-open statement-case-open brace-list-open brace-list-close brace-list-intro brace-entry-open + extern-lang-open extern-lang-close namespace-open namespace-close + module-open module-close + composition-open composition-close inexpr-class-open inexpr-class-close))) :group 'c) *************** *** 700,706 **** :group 'c) (defcustom c-delete-function 'delete-char ! "*Function called by `c-electric-delete' when deleting forwards." :type 'function :group 'c) --- 827,833 ---- :group 'c) (defcustom c-delete-function 'delete-char ! "*Function called by `c-electric-delete-forward' when deleting forwards." :type 'function :group 'c) *************** *** 928,938 **** (arglist-cont . (c-lineup-gcc-asm-reg 0)) ;; Relpos: At the first token after the open paren. (arglist-cont-nonempty . (c-lineup-gcc-asm-reg c-lineup-arglist)) ! ;; Relpos: Boi at the open paren, or at the first non-ws after ! ;; the open paren of the surrounding sexp, whichever is later. (arglist-close . +) ! ;; Relpos: Boi at the open paren, or at the first non-ws after ! ;; the open paren of the surrounding sexp, whichever is later. (stream-op . c-lineup-streamop) ;; Relpos: Boi at the first stream op in the statement. (inclass . +) --- 1055,1065 ---- (arglist-cont . (c-lineup-gcc-asm-reg 0)) ;; Relpos: At the first token after the open paren. (arglist-cont-nonempty . (c-lineup-gcc-asm-reg c-lineup-arglist)) ! ;; Relpos: At the containing statement(*). ! ;; 2nd pos: At the open paren. (arglist-close . +) ! ;; Relpos: At the containing statement(*). ! ;; 2nd pos: At the open paren. (stream-op . c-lineup-streamop) ;; Relpos: Boi at the first stream op in the statement. (inclass . +) *************** *** 953,971 **** (objc-method-call-cont . c-lineup-ObjC-method-call) ;; Relpos: At the open bracket. (extern-lang-open . 0) - ;; Relpos: Boi at the extern keyword. - (extern-lang-close . 0) - ;; Relpos: Boi at the corresponding extern keyword. - (inextern-lang . +) - ;; Relpos: At the extern block open brace if it's at boi, - ;; otherwise boi at the extern keyword. (namespace-open . 0) ! ;; Relpos: Boi at the namespace keyword. (namespace-close . 0) ! ;; Relpos: Boi at the corresponding namespace keyword. (innamespace . +) ! ;; Relpos: At the namespace block open brace if it's at boi, ! ;; otherwise boi at the namespace keyword. (template-args-cont . (c-lineup-template-args +)) ;; Relpos: Boi at the decl start. This might be changed; the ;; logical position is clearly the opening '<'. --- 1080,1100 ---- (objc-method-call-cont . c-lineup-ObjC-method-call) ;; Relpos: At the open bracket. (extern-lang-open . 0) (namespace-open . 0) ! (module-open . 0) ! (composition-open . 0) ! ;; Relpos: Boi at the extern/namespace/etc keyword. ! (extern-lang-close . 0) (namespace-close . 0) ! (module-close . 0) ! (composition-close . 0) ! ;; Relpos: Boi at the corresponding extern/namespace/etc keyword. ! (inextern-lang . +) (innamespace . +) ! (inmodule . +) ! (incomposition . +) ! ;; Relpos: At the extern/namespace/etc block open brace if it's ! ;; at boi, otherwise boi at the keyword. (template-args-cont . (c-lineup-template-args +)) ;; Relpos: Boi at the decl start. This might be changed; the ;; logical position is clearly the opening '<'. *************** *** 1014,1020 **** positive or negative multiple of `c-basic-offset' is added; 1, -1, 2, -2, 0.5, and -0.5, respectively. ! If OFFSET is a vector, its first element, which must be an integer, is used as an absolute indentation column. This overrides all relative offsets. If there are several syntactic elements which evaluates to absolute indentation columns, the first one takes --- 1143,1149 ---- positive or negative multiple of `c-basic-offset' is added; 1, -1, 2, -2, 0.5, and -0.5, respectively. ! If OFFSET is a vector, it's first element, which must be an integer, is used as an absolute indentation column. This overrides all relative offsets. If there are several syntactic elements which evaluates to absolute indentation columns, the first one takes *************** *** 1103,1116 **** objc-method-intro -- The first line of an Objective-C method definition. objc-method-args-cont -- Lines continuing an Objective-C method definition. objc-method-call-cont -- Lines continuing an Objective-C method call. ! extern-lang-open -- Brace that opens an external language block. ! extern-lang-close -- Brace that closes an external language block. inextern-lang -- Analogous to the `inclass' syntactic symbol, ! but used inside extern constructs. ! namespace-open -- Brace that opens a C++ namespace block. ! namespace-close -- Brace that closes a C++ namespace block. ! innamespace -- Analogous to the `inextern-lang' syntactic ! symbol, but used inside C++ namespace constructs. template-args-cont -- C++ template argument list continuations. inlambda -- In the header or body of a lambda function. lambda-intro-cont -- Continuation of the header of a lambda function. --- 1232,1250 ---- objc-method-intro -- The first line of an Objective-C method definition. objc-method-args-cont -- Lines continuing an Objective-C method definition. objc-method-call-cont -- Lines continuing an Objective-C method call. ! extern-lang-open -- Brace that opens an \"extern\" block. ! extern-lang-close -- Brace that closes an \"extern\" block. inextern-lang -- Analogous to the `inclass' syntactic symbol, ! but used inside \"extern\" blocks. ! namespace-open, namespace-close, innamespace ! -- Similar to the three `extern-lang' symbols, but for ! C++ \"namespace\" blocks. ! module-open, module-close, inmodule ! -- Similar to the three `extern-lang' symbols, but for ! CORBA IDL \"module\" blocks. ! composition-open, composition-close, incomposition ! -- Similar to the three `extern-lang' symbols, but for ! CORBA CIDL \"composition\" blocks. template-args-cont -- C++ template argument list continuations. inlambda -- In the header or body of a lambda function. lambda-intro-cont -- Continuation of the header of a lambda function. *************** *** 1144,1161 **** are made buffer local when this file is loaded, and once buffer localized, they cannot be made global again. The list of variables to buffer localize are: - c-offsets-alist c-basic-offset c-comment-only-line-offset c-block-comment-prefix c-comment-prefix-regexp c-cleanup-list c-hanging-braces-alist c-hanging-colons-alist c-hanging-semi&comma-criteria c-backslash-column c-label-minimum-indentation c-special-indent-hook c-indentation-style" :type 'boolean --- 1278,1301 ---- are made buffer local when this file is loaded, and once buffer localized, they cannot be made global again. + This variable must be set appropriately before CC Mode is loaded. + The list of variables to buffer localize are: c-basic-offset c-comment-only-line-offset + c-indent-comment-alist + c-indent-comments-syntactically-p c-block-comment-prefix c-comment-prefix-regexp + c-doc-comment-style c-cleanup-list c-hanging-braces-alist c-hanging-colons-alist c-hanging-semi&comma-criteria c-backslash-column + c-backslash-max-column c-label-minimum-indentation + c-offsets-alist c-special-indent-hook c-indentation-style" :type 'boolean *************** *** 1193,1199 **** (defcustom c-mode-common-hook nil "*Hook called by all CC Mode modes for common initializations." ! :type '(hook :format "%{CC Mode Common Hook%}:\n%v") :group 'c) (defcustom c-initialization-hook nil --- 1333,1339 ---- (defcustom c-mode-common-hook nil "*Hook called by all CC Mode modes for common initializations." ! :type 'hook :group 'c) (defcustom c-initialization-hook nil *************** *** 1230,1235 **** --- 1370,1475 ---- state. Set this variable only if your configuration has stopped working due to this change.") + (define-widget 'c-extra-types-widget 'radio + ;; Widget for a list of regexps for the extra types. + :args '((const :tag "none" nil) + (repeat :tag "types" regexp))) + + (eval-and-compile + ;; XEmacs 19 evaluates this at compile time below, while most other + ;; versions delays the evaluation until the package is loaded. + (defun c-make-font-lock-extra-types-blurb (mode1 mode2 example) + (concat "\ + *List of extra types (aside from the type keywords) to recognize in " + mode1 " mode. + Each list item should be a regexp matching a single identifier. + " example " + + On decoration level 3 (and higher, where applicable), a method is used + that finds most types and declarations by syntax alone. This variable + is still used as a first step, but other types are recognized + correctly anyway in most cases. Therefore this variable should be + fairly restrictive and not contain patterns that are uncertain. + + Note that this variable is only consulted when the major mode is + initialized. If you change it later you have to reinitialize CC Mode + by doing \\[" mode2 "]. + + Despite the name, this variable is not only used for font locking but + also elsewhere in CC Mode to tell types from other identifiers."))) + + ;; Note: Most of the variables below are also defined in font-lock.el + ;; in older versions in Emacs, so depending on the load order we might + ;; not install the values below. There's no kludge to cope with this + ;; (as opposed to the *-font-lock-keywords-* variables) since the old + ;; values works fairly well anyway. + + (defcustom c-font-lock-extra-types + '("FILE" "\\sw+_t" + "bool" "complex" "imaginary" ; Defined in C99. + ;; I do not appreciate the following very Emacs-specific luggage + ;; in the default value, but otoh it can hardly get in the way for + ;; other users, and removing it would cause unnecessary grief for + ;; the old timers that are used to it. /mast + "Lisp_Object") + (c-make-font-lock-extra-types-blurb "C" "c-mode" + "For example, a value of (\"FILE\" \"\\\\sw+_t\") means the word FILE + and words ending in _t are treated as type names.") + :type 'c-extra-types-widget + :group 'c) + + (defcustom c++-font-lock-extra-types + '("\\sw+_t" + "\\([iof]\\|str\\)+stream\\(buf\\)?" "ios" + "string" "rope" + "list" "slist" + "deque" "vector" "bit_vector" + "set" "multiset" + "map" "multimap" + "hash\\(_\\(m\\(ap\\|ulti\\(map\\|set\\)\\)\\|set\\)\\)?" + "stack" "queue" "priority_queue" + "type_info" + "iterator" "const_iterator" "reverse_iterator" "const_reverse_iterator" + "reference" "const_reference") + (c-make-font-lock-extra-types-blurb "C++" "c++-mode" + "For example, a value of (\"string\") means the word string is treated + as a type name.") + :type 'c-extra-types-widget + :group 'c) + + (defcustom objc-font-lock-extra-types + (list (concat "[" c-upper "]\\sw*[" c-lower "]\\sw*")) + (c-make-font-lock-extra-types-blurb "ObjC" "objc-mode" (concat + "For example, a value of (\"[" c-upper "]\\\\sw*[" c-lower "]\\\\sw*\") means + capitalized words are treated as type names (the requirement for a + lower case char is to avoid recognizing all-caps macro and constant + names).")) + :type 'c-extra-types-widget + :group 'c) + + (defcustom java-font-lock-extra-types + (list (concat "[" c-upper "]\\sw*[" c-lower "]\\sw*")) + (c-make-font-lock-extra-types-blurb "Java" "java-mode" (concat + "For example, a value of (\"[" c-upper "]\\\\sw*[" c-lower "]\\\\sw*\") means + capitalized words are treated as type names (the requirement for a + lower case char is to avoid recognizing all-caps constant names).")) + :type 'c-extra-types-widget + :group 'c) + + (defcustom idl-font-lock-extra-types nil + (c-make-font-lock-extra-types-blurb "IDL" "idl-mode" "") + :type 'c-extra-types-widget + :group 'c) + + (defcustom pike-font-lock-extra-types + (list (concat "[" c-upper "]\\sw*[" c-lower "]\\sw*")) + (c-make-font-lock-extra-types-blurb "Pike" "pike-mode" (concat + "For example, a value of (\"[" c-upper "]\\\\sw*[" c-lower "]\\\\sw*\") means + capitalized words are treated as type names (the requirement for a + lower case char is to avoid recognizing all-caps macro and constant + names).")) + :type 'c-extra-types-widget + :group 'c) ;; Non-customizable variables, still part of the interface to CC Mode *************** *** 1254,1263 **** as designated in the variable `c-file-style'.") (make-variable-buffer-local 'c-file-offsets) ! (defvar c-syntactic-context nil ! "Variable containing syntactic analysis list during indentation. ! This is always bound dynamically. It should never be set statically ! \(e.g. with `setq').") (defvar c-indentation-style nil "Name of the currently installed style. --- 1494,1528 ---- as designated in the variable `c-file-style'.") (make-variable-buffer-local 'c-file-offsets) ! ;; It isn't possible to specify a docstring without specifying an ! ;; initial value with `defvar', so the following two variables have ! ;; only doc comments even though they are part of the API. It's ! ;; really good not to have an initial value for variables like these ! ;; that always should be dynamically bound, so it's worth the ! ;; inconvenience. ! ! (cc-bytecomp-defvar c-syntactic-context) ! (defvar c-syntactic-context) ! ;; Variable containing the syntactic analysis list during indentation. ! ;; It is a list with one element for each found syntactic symbol. ! ;; Each element is a list with the symbol name in the first position, ! ;; followed by zero or more elements containing any additional info ! ;; associated with the syntactic symbol. Specifically, the second ! ;; element is the relpos (a.k.a. anchor position), or nil if there ! ;; isn't any. See the comments in the `c-offsets-alist' variable for ! ;; more detailed info about the data each syntactic symbol provides. ! ;; ! ;; This is always bound dynamically. It should never be set ! ;; statically (e.g. with `setq'). ! ! (cc-bytecomp-defvar c-syntactic-element) ! (defvar c-syntactic-element) ! ;; Variable containing the info regarding the current syntactic ! ;; element during calls to the lineup functions. The value is one of ! ;; the elements in the list in `c-syntactic-context'. ! ;; ! ;; This is always bound dynamically. It should never be set ! ;; statically (e.g. with `setq'). (defvar c-indentation-style nil "Name of the currently installed style. *************** *** 1268,1329 **** Set from `c-comment-prefix-regexp' at mode initialization.") (make-variable-buffer-local 'c-current-comment-prefix) - (defvar c-buffer-is-cc-mode nil - "Non-nil for all buffers with a major mode derived from CC Mode. - Otherwise, this variable is nil. I.e. this variable is non-nil for - `c-mode', `c++-mode', `objc-mode', `java-mode', `idl-mode', - `pike-mode', and any other non-CC Mode mode that calls - `c-initialize-cc-mode' (e.g. `awk-mode'). The value is the mode - symbol itself (i.e. `c-mode' etc) of the original CC Mode mode, or - just t if it's not known.") - (make-variable-buffer-local 'c-buffer-is-cc-mode) - - ;; Have to make `c-buffer-is-cc-mode' permanently local so that it - ;; survives the initialization of the derived mode. - (put 'c-buffer-is-cc-mode 'permanent-local t) - ;; Figure out what features this Emacs has ! ;;;###autoload (defconst c-emacs-features ! (let ((infodock-p (boundp 'infodock-version)) ! (comments ! ;; XEmacs 19 and beyond use 8-bit modify-syntax-entry flags. ! ;; Emacs 19 uses a 1-bit flag. We will have to set up our ! ;; syntax tables differently to handle this. ! (let ((table (copy-syntax-table)) ! entry) ! (modify-syntax-entry ?a ". 12345678" table) ! (cond ! ;; XEmacs 19, and beyond Emacs 19.34 ! ((arrayp table) ! (setq entry (aref table ?a)) ! ;; In Emacs, table entries are cons cells ! (if (consp entry) (setq entry (car entry)))) ! ;; XEmacs 20 ! ((fboundp 'get-char-table) (setq entry (get-char-table ?a table))) ! ;; before and including Emacs 19.34 ! ((and (fboundp 'char-table-p) ! (char-table-p table)) ! (setq entry (car (char-table-range table [?a])))) ! ;; incompatible ! (t (error "CC Mode is incompatible with this version of Emacs"))) ! (if (= (logand (lsh entry -16) 255) 255) ! '8-bit ! '1-bit)))) ! (if infodock-p ! (list comments 'infodock) ! (list comments))) ! "A list of features extant in the Emacs you are using. There are many flavors of Emacs out there, each with different ! features supporting those needed by CC Mode. Here's the current ! supported list, along with the values for this variable: ! XEmacs 19, 20, 21: (8-bit) ! Emacs 19, 20: (1-bit) ! Infodock (based on XEmacs) has an additional symbol on this list: ! `infodock'.") (cc-provide 'cc-vars) --- 1533,1671 ---- Set from `c-comment-prefix-regexp' at mode initialization.") (make-variable-buffer-local 'c-current-comment-prefix) ;; Figure out what features this Emacs has ! ! (cc-bytecomp-defvar open-paren-in-column-0-is-defun-start) ! (defconst c-emacs-features ! (let (list) ! ! (if (boundp 'infodock-version) ! ;; I've no idea what this actually is, but it's legacy. /mast ! (setq list (cons 'infodock list))) ! ! ;; XEmacs 19 and beyond use 8-bit modify-syntax-entry flags. ! ;; Emacs 19 uses a 1-bit flag. We will have to set up our ! ;; syntax tables differently to handle this. ! (let ((table (copy-syntax-table)) ! entry) ! (modify-syntax-entry ?a ". 12345678" table) ! (cond ! ;; XEmacs 19, and beyond Emacs 19.34 ! ((arrayp table) ! (setq entry (aref table ?a)) ! ;; In Emacs, table entries are cons cells ! (if (consp entry) (setq entry (car entry)))) ! ;; XEmacs 20 ! ((fboundp 'get-char-table) (setq entry (get-char-table ?a table))) ! ;; before and including Emacs 19.34 ! ((and (fboundp 'char-table-p) ! (char-table-p table)) ! (setq entry (car (char-table-range table [?a])))) ! ;; incompatible ! (t (error "CC Mode is incompatible with this version of Emacs"))) ! (setq list (cons (if (= (logand (lsh entry -16) 255) 255) ! '8-bit ! '1-bit) ! list))) ! ! (let ((buf (generate-new-buffer "test")) ! parse-sexp-lookup-properties ! parse-sexp-ignore-comments ! lookup-syntax-properties) ! (save-excursion ! (set-buffer buf) ! (set-syntax-table (make-syntax-table)) ! ! ;; For some reason we have to set some of these after the ! ;; buffer has been made current. (Specifically, ! ;; `parse-sexp-ignore-comments' in Emacs 21.) ! (setq parse-sexp-lookup-properties t ! parse-sexp-ignore-comments t ! lookup-syntax-properties t) ! ! ;; Find out if the `syntax-table' text property works. ! (modify-syntax-entry ?< ".") ! (modify-syntax-entry ?> ".") ! (insert "<()>") ! (c-mark-<-as-paren 1) ! (c-mark->-as-paren 4) ! (goto-char 1) ! (c-forward-sexp) ! (if (= (point) 5) ! (setq list (cons 'syntax-properties list))) ! ! ;; Find out if generic comment delimiters work. ! (c-safe ! (modify-syntax-entry ?x "!") ! (if (string-match "\\s!" "x") ! (setq list (cons 'gen-comment-delim list)))) ! ! ;; Find out if generic string delimiters work. ! (c-safe ! (modify-syntax-entry ?x "|") ! (if (string-match "\\s|" "x") ! (setq list (cons 'gen-string-delim list)))) ! ! ;; See if `open-paren-in-column-0-is-defun-start' exists and ! ;; isn't buggy. ! (when (boundp 'open-paren-in-column-0-is-defun-start) ! (let ((open-paren-in-column-0-is-defun-start nil) ! (parse-sexp-ignore-comments t)) ! (set-syntax-table (make-syntax-table)) ! (modify-syntax-entry ?\' "\"") ! (cond ! ;; XEmacs. Afaik this is currently an Emacs-only ! ;; feature, but it's good to be prepared. ! ((memq '8-bit list) ! (modify-syntax-entry ?/ ". 1456") ! (modify-syntax-entry ?* ". 23")) ! ;; Emacs ! ((memq '1-bit list) ! (modify-syntax-entry ?/ ". 124b") ! (modify-syntax-entry ?* ". 23"))) ! (modify-syntax-entry ?\n "> b") ! (insert "/* '\n () */") ! (backward-sexp) ! (if (bobp) ! (setq list (cons 'col-0-paren list)))) ! (kill-buffer buf)) ! ! (set-buffer-modified-p nil)) ! (kill-buffer buf)) ! ! ;; See if `parse-partial-sexp' returns the eighth element. ! (when (c-safe (>= (length (save-excursion (parse-partial-sexp 1 1))) 10)) ! (setq list (cons 'pps-extended-state list))) ! ! ;; See if POSIX char classes work. ! (when (string-match "[[:alpha:]]" "a") ! (setq list (cons 'posix-char-classes list))) ! ! list) ! "A list of certain features in the (X)Emacs you are using. There are many flavors of Emacs out there, each with different ! features supporting those needed by CC Mode. The following values ! might be present: ! '8-bit 8 bit syntax entry flags (XEmacs style). ! '1-bit 1 bit syntax entry flags (Emacs style). ! 'syntax-properties It works to override the syntax for specific characters ! in the buffer with the 'syntax-table property. ! 'gen-comment-delim Generic comment delimiters work ! (i.e. the syntax class `!'). ! 'gen-string-delim Generic string delimiters work ! (i.e. the syntax class `|'). ! 'pps-extended-state `parse-partial-sexp' returns a list with at least 10 ! elements, i.e. it contains the position of the ! start of the last comment or string. ! 'posix-char-classes The regexp engine understands POSIX character classes. ! 'col-0-paren It's possible to turn off the ad-hoc rule that a paren ! in column zero is the start of a defun. ! 'infodock This is Infodock (based on XEmacs). ! '8-bit and '1-bit are mutually exclusive.") (cc-provide 'cc-vars) From MAILER-DAEMON Thu Jul 03 09:21:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Y3yT-0000Kg-45 for mharc-emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:18:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Y3x8-0007iX-3o for emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:16:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Y3kc-0004cm-6C for emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:03:51 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Y3jM-0004Zb-TE for emacs-diffs@gnu.org; Thu, 03 Jul 2003 09:02:32 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19Y3Xl-0005n3-CY for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:50:33 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Y3Wh-0005mp-Ak for emacs-diffs@gnu.org; Thu, 03 Jul 2003 08:49:27 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 03 Jul 2003 08:49:27 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Thu, 03 Jul 2003 13:18:07 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.828 emacs/etc/NEWS:1.829 *** emacs/etc/NEWS:1.828 Wed Jul 2 00:28:58 2003 --- emacs/etc/NEWS Thu Jul 3 08:49:26 2003 *************** *** 936,941 **** --- 936,1212 ---- the file FILE. +++ + ** CC Mode changes. + + *** Font lock support. + CC Mode now provides font lock support for all its languages. This + supersedes the font lock patterns that have been in the core font lock + package for C, C++, Java and Objective-C. Like indentation, font + locking is done in a uniform way across all languages (except the new + AWK mode - see below). That means that the new font locking will be + different from the old patterns in various details for most languages. + + The main goal of the font locking in CC Mode is accuracy, to provide a + dependable aid in recognizing the various constructs. Some, like + strings and comments, are easy to recognize while others like + declarations and types can be very tricky. CC Mode can go to great + lengths to recognize declarations and casts correctly, especially when + the types aren't recognized by standard patterns. This is a fairly + demanding analysis which can be slow on older hardware, and it can + therefore be disabled by choosing a lower decoration level with the + variable font-lock-maximum-decoration. + + Note that the most demanding font lock level has been tuned with lazy + fontification in mind, i.e. there should be a support mode that waits + with the fontification until the text is actually shown + (e.g. Just-in-time Lock mode, which is the default, or Lazy Lock + mode). Fontifying a file with several thousand lines in one go can + take the better part of a minute. + + **** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables + are now used by CC Mode to recognize identifiers that are certain to + be types. (They are also used in cases that aren't related to font + locking.) At the maximum decoration level, types are often recognized + properly anyway, so these variables should be fairly restrictive and + not contain patterns for uncertain types. + + **** Support for documentation comments. + There is a "plugin" system to fontify documentation comments like + Javadoc and the markup within them. It's independent of the host + language, so it's possible to e.g. turn on Javadoc font locking in C + buffers. See the variable c-doc-comment-style for details. + + Currently two kinds of doc comment styles are recognized: Suns Javadoc + and Autodoc which is used in Pike. This is by no means a complete + list of the most common tools; if your doc comment extractor of choice + is missing then please drop a note to bug-cc-mode@gnu.org. + + **** Better handling of C++ templates. + As a side effect of the more accurate font locking, C++ templates are + now handled much better. The angle brackets that delimit them are + given parenthesis syntax so that they can be navigated like other + parens. + + This also improves indentation of templates, although there still is + work to be done in that area. E.g. it's required that multiline + template clauses are written in full and then refontified to be + recognized, and the indentation of nested templates is a bit odd and + not as configurable as it ought to be. + + **** Improved handling of Objective-C and CORBA IDL. + Especially the support for Objective-C and IDL has gotten an overhaul. + The special "@" declarations in Objective-C are handled correctly. + All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and + handled correctly, also wrt indentation. + + *** Support for the AWK language. + Support for the AWK language has been introduced. The implementation is + based around GNU AWK version 3.1, but it should work pretty well with + any AWK. As yet, not all features of CC Mode have been adapted for AWK. + Here is a summary: + + **** Indentation Engine + The CC Mode indentation engine fully supports AWK mode. + + AWK mode handles code formatted in the conventional AWK fashion: `{'s + which start actions, user-defined functions, or compound statements are + placed on the same line as the associated construct; the matching `}'s + are normally placed under the start of the respective pattern, function + definition, or structured statement. + + The predefined indentation functions haven't yet been adapted for AWK + mode, though some of them may work serendipitously. There shouldn't be + any problems writing custom indentation functions for AWK mode. + + The command C-c C-q (c-indent-defun) hasn't yet been adapted for AWK, + though in practice it works properly nearly all the time. Should it + fail, explicitly set the region around the function (using C-u C-SPC: + C-M-h probably won't work either) then do C-M-\ (indent-region). + + **** Font Locking + There is a single level of font locking in AWK mode, rather than the + three distinct levels the other modes have. There are several + idiosyncrasies in AWK mode's font-locking due to the peculiarities of + the AWK language itself. + + **** Comment Commands + M-; (indent-for-comment) works fine. None of the other CC Mode + comment formatting commands have yet been adapted for AWK mode. + + **** Movement Commands + Most of the movement commands work in AWK mode. The most important + exceptions are M-a (c-beginning-of-statement) and M-e + (c-end-of-statement) which haven't yet been adapted. + + The notion of "defun" has been augmented to include AWK pattern-action + pairs. C-M-a (c-awk-beginning-of-defun) and C-M-e (c-awk-end-of-defun) + recognise these pattern-action pairs, as well as user defined + functions. + + **** Auto-newline Insertion and Clean-ups + Auto-newline insertion hasn't yet been adapted for AWK. Some of + the clean-ups can actually convert good AWK code into syntactically + invalid code. These features are best disabled in AWK buffers. + + *** New syntactic symbols in IDL mode. + The top level constructs "module" and "composition" (from CIDL) are + now handled like "namespace" in C++: They are given syntactic symbols + module-open, module-close, inmodule, composition-open, + composition-close, and incomposition. + + *** New functions to do hungry delete without enabling hungry delete mode. + The functions c-hungry-backspace and c-hungry-delete-forward can be + bound to keys to get this feature without toggling a mode. + Contributed by Kevin Ryde. + + *** Better control over require-final-newline. + The variable that controls how to handle a final newline when the + buffer is saved, require-final-newline, is now customizable on a + per-mode basis through c-require-final-newline. The default is to set + it to t only in languages that mandate a final newline in source files + (C, C++ and Objective-C). + + *** Slight API change for the syntactic context used by lineup functions. + The syntactic context stored in c-syntactic-context has been changed + to allow more information. This might affect custom lineup functions, + but only if they use that variable directly. See its docstring for + more details. + + *** API changes for derived modes. + There have been extensive changes "under the hood" which can affect + derived mode writers. Some of these changes are likely to cause + incompatibilities with existing derived modes, but on the other hand + care has now been taken to make it possible to extend and modify CC + Mode with less risk of such problems in the future. + + **** New language variable system. + See the comment blurb near the top of cc-langs.el. + + **** New initialization functions. + The initialization procedure has been split up into more functions to + give better control: c-basic-common-init, c-font-lock-init, and + c-init-language-vars. + + *** Changes in analysis of nested syntactic constructs. + The syntactic analysis engine has better handling of cases where + several syntactic constructs appear nested on the same line. They are + now handled as if each construct started on a line of its own. + + This means that CC Mode now indents some cases differently, and + although it's more consistent there might be cases where the old way + gave results that's more to one's liking. So if you find a situation + where you think that the indentation has become worse, please report + it to bug-cc-mode@gnu.org. + + **** New syntactic symbol substatement-label. + This symbol is used when a label is inserted between a statement and + its substatement. E.g: + + if (x) + x_is_true: + do_stuff(); + + *** Better handling of multiline macros. + + **** Syntactic indentation inside macros. + The contents of multiline #define's are now analyzed and indented + syntactically just like other code. This can be disabled by the new + variable c-syntactic-indentation-in-macros. A new syntactic symbol + cpp-define-intro has been added to control the initial indentation + inside #define's. + + **** New lineup function c-lineup-cpp-define. + Now used by default to line up macro continuation lines. The behavior + of this function closely mimics the indentation one gets if the macro + is indented while the line continuation backslashes are temporarily + removed. If syntactic indentation in macros is turned off, it works + much line c-lineup-dont-change, which was used earlier, but handles + empty lines within the macro better. + + **** Automatically inserted newlines continues the macro if used within one. + This applies to the newlines inserted by the auto-newline mode, and to + c-context-line-break and c-context-open-line. + + **** Better alignment of line continuation backslashes. + c-backslash-region tries to adapt to surrounding backslashes. New + variable c-backslash-max-column which put a limit on how far out + backslashes can be moved. + + **** Automatic alignment of line continuation backslashes. + This is controlled by the new variable c-auto-align-backslashes. It + affects c-context-line-break, c-context-open-line and newlines + inserted in auto-newline mode. + + **** Line indentation works better inside macros. + Regardless whether syntactic indentation and syntactic indentation + inside macros are enabled or not, line indentation now ignores the + line continuation backslashes. This is most noticeable when syntactic + indentation is turned off and there are empty lines (save for the + backslash) in the macro. + + *** indent-for-comment is more customizable. + The behavior of M-; (indent-for-comment) is now configurable through + the variable c-indent-comment-alist. The indentation behavior based + on the preceding code on the line, e.g. to get two spaces after #else + and #endif but indentation to comment-column in most other cases + (something which was hardcoded earlier). + + *** New function c-context-open-line. + It's the open-line equivalent of c-context-line-break. + + *** New lineup functions + + **** c-lineup-string-cont + This lineup function lines up a continued string under the one it + continues. E.g: + + result = prefix + "A message " + "string."; <- c-lineup-string-cont + + **** c-lineup-cascaded-calls + Lines up series of calls separated by "->" or ".". + + **** c-lineup-knr-region-comment + Gives (what most people think is) better indentation of comments in + the "K&R region" between the function header and its body. + + **** c-lineup-gcc-asm-reg + Provides better indentation inside asm blocks. Contributed by Kevin + Ryde. + + **** c-lineup-argcont + Lines up continued function arguments after the preceding comma. + Contributed by Kevin Ryde. + + *** Better caching of the syntactic context. + CC Mode caches the positions of the opening parentheses (of any kind) + of the lists surrounding the point. Those positions are used in many + places as anchor points for various searches. The cache is now + improved so that it can be reused to a large extent when the point is + moved. The less it moves, the less needs to be recalculated. + + The effect is that CC Mode should be fast most of the time even when + opening parens are hung (i.e. aren't in column zero). It's typically + only the first time after the point is moved far down in a complex + file that it'll take noticeable time to find out the syntactic + context. + + *** Statements are recognized in a more robust way. + Statements are recognized most of the time even when they occur in an + "invalid" context, e.g. in a function argument. In practice that can + happen when macros are involved. + + *** Improved the way c-indent-exp chooses the block to indent. + It now indents the block for the closest sexp following the point + whose closing paren ends on a different line. This means that the + point doesn't have to be immediately before the block to indent. + Also, only the block and the closing line is indented; the current + line is left untouched. + + *** Added toggle for syntactic indentation. + The function c-toggle-syntactic-indentation can be used to toggle + syntactic indentation. + ** The command line option --no-windows has been changed to --no-window-system. The old one still works, but is deprecated. From MAILER-DAEMON Fri Jul 04 07:33:21 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YOl5-00055B-8j for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:29:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YOaG-0001Hd-Db for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:18:32 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YOCp-000715-87 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 06:54:19 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YO6u-0005gr-DX for emacs-diffs@gnu.org; Fri, 04 Jul 2003 06:48:12 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19YO5s-0000G3-Tu for emacs-diffs@gnu.org; Fri, 04 Jul 2003 06:47:08 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Fri, 04 Jul 2003 06:47:08 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/generic-x.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 11:29:41 -0000 Index: emacs/lisp/generic-x.el diff -c emacs/lisp/generic-x.el:1.19 emacs/lisp/generic-x.el:1.20 *** emacs/lisp/generic-x.el:1.19 Sat Mar 22 08:00:38 2003 --- emacs/lisp/generic-x.el Fri Jul 4 06:47:06 2003 *************** *** 1,6 **** ;;; generic-x.el --- Extra Modes for generic-mode -*- no-byte-compile: t -*- ! ;; Copyright (C) 1997, 1998 Free Software Foundation, Inc. ;; Author: Peter Breton ;; Created: Tue Oct 08 1996 --- 1,6 ---- ;;; generic-x.el --- Extra Modes for generic-mode -*- no-byte-compile: t -*- ! ;; Copyright (C) 1997, 1998, 2003 Free Software Foundation, Inc. ;; Author: Peter Breton ;; Created: Tue Oct 08 1996 *************** *** 1411,1430 **** (modify-syntax-entry ?\r "> b" rul-generic-mode-syntax-table) (modify-syntax-entry ?\n "> b" rul-generic-mode-syntax-table) ! (cond ! ;; XEmacs 19 & 20 & 21 ! ((memq '8-bit c-emacs-features) ! (modify-syntax-entry ?/ ". 1456" rul-generic-mode-syntax-table) ! (modify-syntax-entry ?* ". 23" rul-generic-mode-syntax-table) ! ) ! ;; Emacs 19 & 20 ! ((memq '1-bit c-emacs-features) ! (modify-syntax-entry ?/ ". 124b" rul-generic-mode-syntax-table) ! (modify-syntax-entry ?* ". 23" rul-generic-mode-syntax-table) ! ) ! ;; incompatible ! (t (error "Run Mode is incompatible with this version of Emacs")) ! ) ;; here manually instead (defun generic-rul-mode-setup-function () --- 1411,1418 ---- (modify-syntax-entry ?\r "> b" rul-generic-mode-syntax-table) (modify-syntax-entry ?\n "> b" rul-generic-mode-syntax-table) ! (modify-syntax-entry ?/ ". 124b" rul-generic-mode-syntax-table) ! (modify-syntax-entry ?* ". 23" rul-generic-mode-syntax-table) ;; here manually instead (defun generic-rul-mode-setup-function () From MAILER-DAEMON Fri Jul 04 07:40:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YOjS-0004Xk-VT for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:28:02 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YOWt-0000pa-To for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:15:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YOBs-0006UH-SY for emacs-diffs@gnu.org; Fri, 04 Jul 2003 06:53:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YO6t-0005gX-MX for emacs-diffs@gnu.org; Fri, 04 Jul 2003 06:48:11 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19YO5r-0000Fz-W1 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 06:47:07 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Fri, 04 Jul 2003 06:47:07 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 11:28:01 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5253 emacs/lisp/ChangeLog:1.5254 *** emacs/lisp/ChangeLog:1.5253 Thu Jul 3 08:30:58 2003 --- emacs/lisp/ChangeLog Fri Jul 4 06:47:06 2003 *************** *** 1,3 **** --- 1,9 ---- + 2003-07-04 Martin Stjernholm + + * generic-x.el: Did away with the dependency on `c-emacs-features' + when populating `rul-generic-mode-syntax-table'; we already know + this isn't XEmacs. + 2003-07-03 Martin Stjernholm * progmodes/cc-menus.el (cc-imenu-init): Do not set From MAILER-DAEMON Fri Jul 04 07:41:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YOvo-000366-EK for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:40:48 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YOuU-0002ic-ID for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:39:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YOiS-0003kL-V3 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:27:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YOhV-0003FP-1O for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:26:01 -0400 Received: from gm by subversions.gnu.org with local (Exim 4.20) id 19YOgT-0002nm-VN for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:24:57 -0400 To: emacs-diffs@gnu.org Message-Id: From: Glenn Morris Date: Fri, 04 Jul 2003 07:24:57 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/mail/sendmail.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: gmorris@ast.cam.ac.uk List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 11:40:46 -0000 Index: emacs/lisp/mail/sendmail.el diff -c emacs/lisp/mail/sendmail.el:1.268 emacs/lisp/mail/sendmail.el:1.269 *** emacs/lisp/mail/sendmail.el:1.268 Sun May 18 17:35:06 2003 --- emacs/lisp/mail/sendmail.el Fri Jul 4 07:24:57 2003 *************** *** 70,85 **** The value used to specify it is whatever is found in `mail-envelope-from', with `user-mail-address' as fallback. ! On most systems, specifying the envelope-from address ! is a privileged operation." :version "21.1" :type 'boolean :group 'sendmail) (defcustom mail-envelope-from nil "*If non-nil, designate the envelope-from address when sending mail. ! If this is nil while `mail-specify-envelope-from' is non-nil, the ! content of `user-mail-address' is used." :version "21.1" :type '(choice (string :tag "From-name") (const :tag "Use From: header from message" header) --- 70,89 ---- The value used to specify it is whatever is found in `mail-envelope-from', with `user-mail-address' as fallback. ! On most systems, specifying the envelope-from address is a ! privileged operation. This variable is only used if ! `send-mail-function' is set to `sendmail-send-it'." :version "21.1" :type 'boolean :group 'sendmail) (defcustom mail-envelope-from nil "*If non-nil, designate the envelope-from address when sending mail. ! This only has an effect if `mail-specify-envelope-from' is non-nil. ! The value should be either a string, or the symbol `header' (in ! which case the contents of the \"From\" header of the message ! being sent is used), or nil (in which case the value of ! `user-mail-address' is used)." :version "21.1" :type '(choice (string :tag "From-name") (const :tag "Use From: header from message" header) From MAILER-DAEMON Fri Jul 04 07:46:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YOyX-0004mO-8T for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:43:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YOu5-0002CF-9m for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:39:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YOoc-0007Au-WA for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:33:23 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YOh5-00037G-By for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:25:35 -0400 Received: from gm by subversions.gnu.org with local (Exim 4.20) id 19YOg3-0002iT-It for emacs-diffs@gnu.org; Fri, 04 Jul 2003 07:24:31 -0400 To: emacs-diffs@gnu.org Message-Id: From: Glenn Morris Date: Fri, 04 Jul 2003 07:24:31 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: gmorris@ast.cam.ac.uk List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 11:43:35 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5254 emacs/lisp/ChangeLog:1.5255 *** emacs/lisp/ChangeLog:1.5254 Fri Jul 4 06:47:06 2003 --- emacs/lisp/ChangeLog Fri Jul 4 07:24:29 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-04 Glenn Morris + + * mail/sendmail.el (mail-specify-envelope-from) + (mail-envelope-from): Doc fix. + 2003-07-04 Martin Stjernholm * generic-x.el: Did away with the dependency on `c-emacs-features' From MAILER-DAEMON Fri Jul 04 14:33:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YVLR-0000WG-NA for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:31:41 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YVLB-0000Bx-Ae for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:31:25 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YVKB-00080G-3r for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:30:32 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YVK9-0007yP-US for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:30:21 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YVJ9-0003ps-2C for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:29:19 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 14:29:19 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/font-lock.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 18:31:39 -0000 Index: emacs/lisp/font-lock.el diff -c emacs/lisp/font-lock.el:1.210 emacs/lisp/font-lock.el:1.211 *** emacs/lisp/font-lock.el:1.210 Mon Apr 14 19:07:39 2003 --- emacs/lisp/font-lock.el Fri Jul 4 14:29:18 2003 *************** *** 1,6 **** ;;; font-lock.el --- Electric font lock mode ! ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, 2002 ;; Free Software Foundation, Inc. ;; Author: jwz, then rms, then sm --- 1,6 ---- ;;; font-lock.el --- Electric font lock mode ! ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, 02, 2003 ;; Free Software Foundation, Inc. ;; Author: jwz, then rms, then sm *************** *** 1776,1783 **** ;;; Various regexp information shared by several modes. ;;; Information specific to a single mode should go in its load library. ! ;; Font Lock support for C, C++, Objective-C and Java modes will one day be in ! ;; some cc-font.el (and required by cc-mode.el). However, the below function ;; should stay in font-lock.el, since it is used by other libraries. sm. (defun font-lock-match-c-style-declaration-item-and-skip-to-next (limit) --- 1776,1783 ---- ;;; Various regexp information shared by several modes. ;;; 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 ;; should stay in font-lock.el, since it is used by other libraries. sm. (defun font-lock-match-c-style-declaration-item-and-skip-to-next (limit) *************** *** 1924,2781 **** (defvar lisp-font-lock-keywords lisp-font-lock-keywords-1 "Default expressions to highlight in Lisp modes.") - ;;; User choices. - - ;; These provide a means to fontify types not defined by the language. Those - ;; types might be the user's own or they might be generally accepted and used. - ;; Generally accepted types are used to provide default variable values. - - (define-widget 'font-lock-extra-types-widget 'radio - "Widget `:type' for members of the custom group `font-lock-extra-types'. - Members should `:load' the package `font-lock' to use this widget." - :args '((const :tag "none" nil) - (repeat :tag "types" regexp))) - - (defcustom c-font-lock-extra-types '("FILE" "\\sw+_t" "Lisp_Object") - "*List of extra types to fontify in C mode. - Each list item should be a regexp not containing word-delimiters. - For example, a value of (\"FILE\" \"\\\\sw+_t\") means the word FILE and words - ending in _t are treated as type names. - - The value of this variable is used when Font Lock mode is turned on." - :type 'font-lock-extra-types-widget - :group 'font-lock-extra-types) - - (defcustom c++-font-lock-extra-types - '("\\sw+_t" - - "string" "rope" - - "list" "slist" - "deque" "vector" "bit_vector" - - "set" "multiset" - "map" "multimap" - "stack" "queue" "priority_queue" - "type_info" - - ;; (regexp-opt '("ios_base" "ios" "istream" "ostream" "istringstream" "ifstream" "iostream" "ofstream" "ostringstream" "fstream" "stringstream")) - "fstream\\|i\\(?:fstream\\|os\\(?:_base\\|tream\\)?\\|str\\(?:\\(?:ingstr\\)?eam\\)\\)\\|\\(?:o\\(?:f\\|string\\)?\\|string\\)stream" - - ;; (regexp-opt '("hash" "hash_set" "hash_map" "hash_multiset" "hash_multimap")) - "hash\\(?:_\\(?:m\\(?:ap\\|ulti\\(?:map\\|set\\)\\)\\|set\\)\\)?" - - ;; (regexp-opt '("pointer" "const_pointer" "reference" "const_reference" "iterator" "const_iterator" "reverse_iterator" "const_reverse_iterator" "size_type" "difference_type" "allocator_type")) - "allocator_type\\|const_\\(?:iterator\\|pointer\\|re\\(?:ference\\|verse_iterator\\)\\)\\|difference_type\\|iterator\\|pointer\\|re\\(?:ference\\|verse_iterator\\)\\|size_type" - ) - "*List of extra types to fontify in C++ mode. - Each list item should be a regexp not containing word-delimiters. - For example, a value of (\"string\") means the word string is treated as a type - name. - - The value of this variable is used when Font Lock mode is turned on." - :type 'font-lock-extra-types-widget - :group 'font-lock-extra-types) - - (defcustom objc-font-lock-extra-types '("Class" "BOOL" "IMP" "SEL") - "*List of extra types to fontify in Objective-C mode. - Each list item should be a regexp not containing word-delimiters. - For example, a value of (\"Class\" \"BOOL\" \"IMP\" \"SEL\") means the words - Class, BOOL, IMP and SEL are treated as type names. - - The value of this variable is used when Font Lock mode is turned on." - :type 'font-lock-extra-types-widget - :group 'font-lock-extra-types) - - (defcustom java-font-lock-extra-types - '("[A-Z\300-\326\330-\337]\\sw*[a-z]\\sw*" "URL") - "*List of extra types to fontify in Java mode. - Each list item should be a regexp not containing word-delimiters. - For example, a value of (\"[A-Z\300-\326\330-\337]\\\\sw*[a-z]\\\\sw*\" \"URL\") means - capitalised words (that conform to the Java id spec) and URL are treated as - type names. - - The value of this variable is used when Font Lock mode is turned on." - :type 'font-lock-extra-types-widget - :group 'font-lock-extra-types) - - ;;; C. - - ;; [Murmur murmur murmur] Maestro, drum-roll please... [Murmur murmur murmur.] - ;; Ahem. [Murmur murmur murmur] Lay-dees an Gennel-men. [Murmur murmur shhh!] - ;; I am most proud and humbly honoured today [murmur murmur cough] to present - ;; to you good people, the winner of the Second Millennium Award for The Most - ;; Hairy Language Syntax. [Ahhh!] All rise please. [Shuffle shuffle - ;; shuffle.] And a round of applause please. For... The C Language! [Roar.] - ;; - ;; Thank you... You are too kind... It is with a feeling of great privilege - ;; and indeed emotion [sob] that I accept this award. It has been a long hard - ;; road. But we know our destiny. And our future. For we must not rest. - ;; There are more tokens to overload, more shoehorn, more methodologies. But - ;; more is a plus! [Ha ha ha.] And more means plus! [Ho ho ho.] The future - ;; is C++! [Ohhh!] The Third Millennium Award... Will be ours! [Roar.] - - (let* ((c-keywords - (eval-when-compile - (regexp-opt '("break" "continue" "do" "else" "for" "if" "return" - "switch" "while" "sizeof" - ;; Type related, but we don't do anything special. - "typedef" "extern" "auto" "register" "static" - "volatile" "const" - ;; Dan Nicolaescu says this is new. - "restrict" - ;; Henrik Enberg says this is new. - "inline")))) - (c-type-specs - (eval-when-compile - (regexp-opt '("enum" "struct" "union")))) - (c-type-specs-depth - (regexp-opt-depth c-type-specs)) - (c-type-names - `(mapconcat 'identity - (cons - ,(eval-when-compile - (regexp-opt - '("char" "short" "int" "long" "signed" "unsigned" - "float" "double" "void" "complex" - ;; Henrik Enberg says these are new. - "_Complex" "_Imaginary" "_Bool"))) - c-font-lock-extra-types) - "\\|")) - (c-type-names-depth - `(regexp-opt-depth ,c-type-names)) - (c-preprocessor-directives - (eval-when-compile - (regexp-opt - '("define" "elif" "else" "endif" "error" "file" "if" "ifdef" - "ifndef" "include" "line" "pragma" "undef")))) - (c-preprocessor-directives-depth - (regexp-opt-depth c-preprocessor-directives))) - - (defconst c-font-lock-keywords-1 - (list - ;; - ;; These are all anchored at the beginning of line for speed. - ;; Note that `c++-font-lock-keywords-1' depends on `c-font-lock-keywords-1'. - ;; - ;; Fontify function name definitions (GNU style; without type on line). - '("^\\(\\sw+\\)[ \t]*(" 1 font-lock-function-name-face) - ;; - ;; Fontify error directives. - '("^#[ \t]*error[ \t]+\\(.+\\)" 1 font-lock-warning-face prepend) - ;; - ;; Fontify filenames in #include <...> preprocessor directives as strings. - '("^#[ \t]*\\(import\\|include\\)[ \t]*\\(<[^>\"\n]*>?\\)" - 2 font-lock-string-face) - ;; - ;; Fontify function macro names. - '("^#[ \t]*define[ \t]+\\(\\sw+\\)(" 1 font-lock-function-name-face) - ;; - ;; Fontify symbol names in #elif or #if ... defined preprocessor directives. - '("^#[ \t]*\\(elif\\|if\\)\\>" - ("\\<\\(defined\\)\\>[ \t]*(?\\(\\sw+\\)?" nil nil - (1 font-lock-builtin-face) (2 font-lock-variable-name-face nil t))) - ;; - ;; Fontify otherwise as symbol names, and the preprocessor directive names. - (list - (concat "^#[ \t]*\\(" c-preprocessor-directives - "\\)\\>[ \t!]*\\(\\sw+\\)?") - '(1 font-lock-builtin-face) - (list (+ 2 c-preprocessor-directives-depth) - 'font-lock-variable-name-face nil t))) - "Subdued level highlighting for C mode.") - - (defconst c-font-lock-keywords-2 - (append c-font-lock-keywords-1 - (list - ;; - ;; Simple regexps for speed. - ;; - ;; Fontify all type names. - `(eval . - (cons (concat "\\<\\(" ,c-type-names "\\)\\>") 'font-lock-type-face)) - ;; - ;; Fontify all builtin keywords (except case, default and goto; see below). - (concat "\\<\\(" c-keywords "\\|" c-type-specs "\\)\\>") - ;; - ;; Fontify case/goto keywords and targets, and case default/goto tags. - '("\\<\\(case\\|goto\\)\\>" - (1 font-lock-keyword-face) - ("\\(-[0-9]+\\|\\sw+\\)" - ;; Return limit of search. - (save-excursion (skip-chars-forward "^:\n") (point)) - nil - (1 font-lock-constant-face nil t))) - ;; Anders Lindgren points out that it is quicker - ;; to use MATCH-ANCHORED to effectively anchor the regexp on the left. - ;; This must come after the one for keywords and targets. - ;; Note: the lack of `:' in the first char-range prevents `bar' from being - ;; highlighted in "foo: bar:". But adding `:' would break cases like - ;; "test1 ? test2 ? foo : bar : baz". - '(":" ("\\(?:^\\|[{};]\\)[ \t]*\\(\\sw+\\)[ \t]*:" - (beginning-of-line) (end-of-line) - (1 font-lock-constant-face))) - )) - "Medium level highlighting for C mode. See also `c-font-lock-extra-types'.") - - (defconst c-font-lock-keywords-3 - (append c-font-lock-keywords-2 - ;; - ;; More complicated regexps for more complete highlighting for types. - ;; We still have to fontify type specifiers individually, as C is so hairy. - (list - ;; - ;; Fontify all storage types, plus their items. - `(eval . - (list (concat "\\<\\(" ,c-type-names "\\)\\>" - "\\([ \t*&]+\\sw+\\>\\)*") - ;; Fontify each declaration item. - `(font-lock-match-c-style-declaration-item-and-skip-to-next - ;; Start with point after all type specifiers. - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (or (match-beginning - ,(+ ,c-type-names-depth 2)) - (match-end 1)))) - ;; Finish with point after first type specifier. - (goto-char (match-end 1)) - ;; Fontify as a variable or function name. - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face))))) - ;; - ;; Fontify all storage specs and types, plus their items. - `(,(concat "\\<\\(" c-type-specs "\\)\\>" "[ \t]*\\(\\sw+\\)?") - (1 font-lock-keyword-face) - (,(+ c-type-specs-depth 2) font-lock-type-face nil t) - (font-lock-match-c-style-declaration-item-and-skip-to-next - (save-excursion (skip-chars-forward "^;{}") (point)) - ;; Finish with point after the variable name if - ;; there is one. - (if (match-end 2) - (goto-char (match-end 2))) - ;; Fontify as a variable or function name. - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face) nil t))) - ;; - ;; Fontify structures, or typedef names, plus their items. - '("\\(}\\)[ \t*]*\\sw" - (font-lock-match-c-style-declaration-item-and-skip-to-next - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (match-end 1))) nil - (1 font-lock-type-face))) - ;; - ;; Fontify anything at beginning of line as a declaration or definition. - '("^\\(\\sw+\\)\\>\\([ \t*]+\\sw+\\>\\)*" - (1 font-lock-type-face) - (font-lock-match-c-style-declaration-item-and-skip-to-next - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (or (match-beginning 2) (match-end 1)))) nil - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face)))) - )) - "Gaudy level highlighting for C mode. - See also `c-font-lock-extra-types'.")) - - (defun c-font-lock-syntactic-face-function (state) - (save-excursion - (if (nth 3 state) - ;; Check whether the string is properly terminated. - (let ((nstate (parse-partial-sexp (point) (line-end-position) - nil nil state 'syntax-table))) - (if (and (eolp) (not (nth 5 nstate)) (nth 3 nstate)) - ;; We're inside a string, at EOL and there was no \. - font-lock-warning-face - font-lock-string-face)) - (goto-char (nth 8 state)) - ;; `doxygen' uses /*! while others use /**. - (if (looking-at "/\\*[*!]\n") - font-lock-doc-face font-lock-comment-face)))) - - (defvar c-font-lock-keywords c-font-lock-keywords-1 - "Default expressions to highlight in C mode. - See also `c-font-lock-extra-types'.") - - ;;; C++. - - (defun font-lock-match-c++-style-declaration-item-and-skip-to-next (limit) - ;; Regexp matches after point: word::word ( - ;; ^^^^ ^^^^ ^^^^ ^ - ;; Where the match subexpressions are: 1 3 5 6 - ;; - ;; Item is delimited by (match-beginning 1) and (match-end 1). - ;; If (match-beginning 3) is non-nil, that part of the item incloses a `<>'. - ;; If (match-beginning 5) is non-nil, that part of the item follows a `::'. - ;; If (match-beginning 6) is non-nil, the item is followed by a `('. - (when (looking-at (eval-when-compile - (concat - ;; Skip any leading whitespace. - "[ \t\n*&]*" - ;; This is `c++-type-spec' from below. (Hint hint!) - "\\(\\sw+\\)" ; The instance? - "\\([ \t\n]*<\\(\\(?:[^<>]\\|<[^>]+>\\)+\\)[ \t\n*&]*>\\)?" ; Or template? - "\\([ \t\n]*::[ \t\n*~]*\\(\\sw+\\)\\)*" ; Or member? - ;; Match any trailing parenthesis. - "[ \t\n]*\\((\\)?"))) - (save-match-data - (condition-case nil - (save-restriction - ;; Restrict to the end of line, currently guaranteed to be LIMIT. - (narrow-to-region (point-min) limit) - (goto-char (match-end 1)) - ;; Move over any item value, etc., to the next item. - (while (not (looking-at "[ \t\n]*\\(\\(,\\)\\|;\\|\\'\\)")) - (goto-char (or (scan-sexps (point) 1) (point-max)))) - (goto-char (match-end 2))) - (error t))))) - - (defun font-lock-match-c++-structor-declaration (limit) - ;; Match C++ constructors and destructors inside class declarations. - (let ((res nil) - (regexp (concat "^\\s-+\\(\\(virtual\\|explicit\\)\\s-+\\)*~?\\(\\<" - (mapconcat 'identity - c++-font-lock-extra-types "\\|") - "\\>\\)\\s-*(" - ;; Don't match function pointer declarations, e.g.: - ;; Foo (*fptr)(); - "\\s-*[^*( \t]"))) - (while (progn (setq res (re-search-forward regexp limit t)) - (and res - (save-excursion - (beginning-of-line) - (save-match-data - (not (vectorp (c-at-toplevel-p)))))))) - res)) - - (let* ((c++-keywords - (eval-when-compile - (regexp-opt - '("break" "continue" "do" "else" "for" "if" "return" "switch" - "while" "asm" "catch" "delete" "new" "sizeof" "this" "throw" "try" - "typeid" - ;; Branko Cibej says this is new. - "export" - ;; Copied from C. wsnyder@wsnyder.org says C++ needs it too. - "restrict" - ;; Mark Mitchell says these are new. - "mutable" "explicit" - ;; Alain Picard suggests treating these - ;; as keywords not types. - "typedef" "template" - "extern" "auto" "register" "const" "volatile" "static" - "inline" "friend" "virtual" - ;; Standard C++ operator names. - "and" "and_eq" "bitand" "bitor" "compl" "not" "not_eq" - "or" "or_eq" "xor" "xor_eq")))) - (c++-operators - (eval-when-compile - (regexp-opt - ;; Taken from Stroustrup, minus keywords otherwise fontified. - '("+" "-" "*" "/" "%" "^" "&" "|" "~" "!" "=" "<" ">" "+=" "-=" - "*=" "/=" "%=" "^=" "&=" "|=" "<<" ">>" ">>=" "<<=" "==" "!=" - "<=" ">=" "&&" "||" "++" "--" "->*" "," "->" "[]" "()")))) - (c++-type-specs - (eval-when-compile - (regexp-opt - '("class" "public" "private" "protected" "typename" - "struct" "union" "enum" "namespace" "using" - ;; Eric Hopper says these are new. - "static_cast" "dynamic_cast" "const_cast" "reinterpret_cast") t))) - (c++-type-specs-depth - (regexp-opt-depth c++-type-specs)) - (c++-type-names - `(mapconcat 'identity - (cons - ,(eval-when-compile - (regexp-opt - '("signed" "unsigned" "short" "long" - "int" "char" "float" "double" "void" - "bool" "complex"))) - c++-font-lock-extra-types) - "\\|")) - (c++-type-names-depth `(regexp-opt-depth ,c++-type-names)) - ;; - ;; A brave attempt to match templates following a type and/or match - ;; class membership. See and sync the above function - ;; `font-lock-match-c++-style-declaration-item-and-skip-to-next'. - (c++-type-suffix (concat "\\([ \t]*<\\(\\(?:[^<>\n]\\|<[^>\n]+>\\)+\\)[ \t*&]*>\\)?" - "\\([ \t]*::[ \t*~]*\\(\\sw+\\)\\)*")) - (c++-type-suffix-depth (regexp-opt-depth c++-type-suffix)) - ;; If the string is a type, it may be followed by the cruft above. - (c++-type-spec (concat "\\(\\sw+\\)\\>" c++-type-suffix)) - (c++-type-spec-depth (regexp-opt-depth c++-type-spec)) - ;; - ;; Parenthesis depth of user-defined types not forgetting their cruft. - (c++-type-depth `(regexp-opt-depth - (concat ,c++-type-names ,c++-type-suffix))) - ) - (defconst c++-font-lock-keywords-1 - (append - ;; - ;; The list `c-font-lock-keywords-1' less that for function names. - (cdr c-font-lock-keywords-1) - (list - ;; - ;; Fontify function name definitions, possibly incorporating class names. - (list (concat "^" c++-type-spec "[ \t]*(") - '(1 (if (or (match-beginning 2) (match-beginning 4)) - font-lock-type-face - font-lock-function-name-face)) - '(3 font-lock-type-face nil t) - '(5 font-lock-function-name-face nil t)) - )) - "Subdued level highlighting for C++ mode.") - - (defconst c++-font-lock-keywords-2 - (append c++-font-lock-keywords-1 - (list - ;; - ;; The list `c-font-lock-keywords-2' for C++ plus operator overloading. - `(eval . - (cons (concat "\\<\\(" ,c++-type-names "\\)\\>") - 'font-lock-type-face)) - ;; - ;; Fontify operator overloading. - (list (concat "\\<\\(operator\\)\\>[ \t]*\\(" c++-operators "\\)?") - '(1 font-lock-keyword-face) - '(2 font-lock-builtin-face nil t)) - ;; - ;; Fontify case/goto keywords and targets, and case default/goto tags. - '("\\<\\(case\\|goto\\)\\>" - (1 font-lock-keyword-face) - ("\\(-[0-9]+\\|\\sw+\\)[ \t]*\\(::\\)?" - ;; Return limit of search. - (save-excursion - (while (progn - (skip-chars-forward "^:\n") - (looking-at "::")) - (forward-char 2)) - (point)) - nil - (1 (if (match-beginning 2) - font-lock-type-face - font-lock-constant-face) nil t))) - ;; This must come after the one for keywords and targets. - '(":" ("^[ \t]*\\(\\sw+\\)[ \t]*:\\($\\|[^:]\\)" - (beginning-of-line) (end-of-line) - (1 font-lock-constant-face))) - ;; - ;; Fontify other builtin keywords. - (concat "\\<\\(" c++-keywords "\\|" c++-type-specs "\\)\\>") - ;; - ;; Eric Hopper says `true' and `false' are new. - '("\\<\\(false\\|true\\)\\>" . font-lock-constant-face) - )) - "Medium level highlighting for C++ mode. - See also `c++-font-lock-extra-types'.") - - (defconst c++-font-lock-keywords-3 - (append c++-font-lock-keywords-2 - ;; - ;; More complicated regexps for more complete highlighting for types. - (list - ;; - ;; Fontify all storage classes and type specifiers, plus their items. - `(eval . - (list (concat "\\<\\(" ,c++-type-names "\\)\\>" ,c++-type-suffix - "\\([ \t*&]+" ,c++-type-spec "\\)*") - ;; The name of any template type. - `(,(+ ,c++-type-names-depth 3) font-lock-type-face nil t) - ;; Fontify each declaration item. - `(font-lock-match-c++-style-declaration-item-and-skip-to-next - ;; Start with point after all type specifiers. - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (or (match-beginning - ,(+ ,c++-type-depth 2)) - (match-end 1)))) - ;; Finish with point after first type specifier. - (goto-char (match-end 1)) - ;; Fontify as a variable or function name. - (1 (cond ((or (match-beginning 2) (match-beginning 4)) - font-lock-type-face) - ((and (match-beginning 6) (c-at-toplevel-p)) - font-lock-function-name-face) - (t - font-lock-variable-name-face))) - (3 font-lock-type-face nil t) - (5 (if (match-beginning 6) - font-lock-function-name-face - font-lock-variable-name-face) nil t)))) - ;; - ;; Fontify all storage specs and types, plus their items. - `(,(concat "\\<" c++-type-specs "\\>" c++-type-suffix - "[ \t]*\\(" c++-type-spec "\\)?") - ;; The name of any template type. - (,(+ c++-type-specs-depth 2) 'font-lock-type-face nil t) - ;; The name of any type. - (,(+ c++-type-specs-depth c++-type-suffix-depth 2) - font-lock-type-face nil t) - ;; Fontify each declaration item. - (font-lock-match-c++-style-declaration-item-and-skip-to-next - ;; Start with point after all type specifiers. - (save-excursion (skip-chars-forward "^;{}") (point)) - ;; Finish with point after first type specifier. - nil - ;; Fontify as a variable or function name. - (1 (cond ((or (match-beginning 2) (match-beginning 4)) - font-lock-type-face) - ((and (match-beginning 6) (c-at-toplevel-p)) - font-lock-function-name-face) - (t - font-lock-variable-name-face))) - (3 font-lock-type-face nil t) - (5 (if (match-beginning 6) - font-lock-function-name-face - font-lock-variable-name-face) nil t))) - ;; - ;; Fontify structures, or typedef names, plus their items. - '("\\(}\\)[ \t*]*\\sw" - (font-lock-match-c++-style-declaration-item-and-skip-to-next - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (match-end 1))) nil - (1 font-lock-type-face))) - ;; - ;; Fontify anything at beginning of line as a declaration or definition. - `(,(concat "^\\(" c++-type-spec "[ \t*&]*\\)+") - (font-lock-match-c++-style-declaration-item-and-skip-to-next - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (match-beginning 1))) - (goto-char (match-end 1)) - (1 (cond ((or (match-beginning 2) (match-beginning 4)) - font-lock-type-face) - ((match-beginning 6) font-lock-function-name-face) - (t font-lock-variable-name-face))) - (3 font-lock-type-face nil t) - (5 (if (match-beginning 6) - font-lock-function-name-face - font-lock-variable-name-face) nil t))) - ;; - ;; Fontify constructors and destructors inside class declarations. - '(font-lock-match-c++-structor-declaration - (3 font-lock-function-name-face t)) - )) - "Gaudy level highlighting for C++ mode. - See also `c++-font-lock-extra-types'.") - ) - - (defvar c++-font-lock-keywords c++-font-lock-keywords-1 - "Default expressions to highlight in C++ mode. - See also `c++-font-lock-extra-types'.") - - ;;; Objective-C. - - ;; Regexps written with help from Stephen Peters and - ;; Jacques Duthen Prestataire . - (let* ((objc-keywords - (eval-when-compile - (regexp-opt '("break" "continue" "do" "else" "for" "if" "return" - "switch" "while" "sizeof" "self" "super" - "typedef" "auto" "extern" "static" - "volatile" "const")))) - (objc-type-specs - (eval-when-compile - (regexp-opt - '("register" "struct" "union" "enum" - "oneway" "in" "out" "inout" "bycopy" "byref") t))) - (objc-type-specs-depth - (regexp-opt-depth objc-type-specs)) - (objc-type-names - `(mapconcat 'identity - (cons - ,(eval-when-compile - (regexp-opt - '("signed" "unsigned" "short" "long" - "int" "char" "float" "double" "void" - "id"))) - objc-font-lock-extra-types) - "\\|")) - (objc-type-names-depth - `(regexp-opt-depth ,objc-type-names)) - ) - (defconst objc-font-lock-keywords-1 - (append - ;; - ;; The list `c-font-lock-keywords-1' less that for function names. - (cdr c-font-lock-keywords-1) - (list - ;; - ;; Fontify compiler directives. - '("@\\(\\sw+\\)\\>" - (1 font-lock-keyword-face) - ("\\=[ \t:<,]*\\(\\sw+\\)" nil nil - (1 font-lock-type-face))) - ;; - ;; Fontify method names and arguments. Oh Lordy! - ;; First, on the same line as the function declaration. - '("^[+-][ \t]*\\(PRIVATE\\>\\)?[ \t]*\\(([^)\n]+)\\)?[ \t]*\\(\\sw+\\)" - (1 font-lock-keyword-face nil t) - (3 font-lock-function-name-face) - ("\\=[ \t]*\\(\\sw+\\)?:[ \t]*\\(([^)\n]+)\\)?[ \t]*\\(\\sw+\\)" - nil nil - (1 font-lock-function-name-face nil t) - (3 font-lock-variable-name-face))) - ;; Second, on lines following the function declaration. - '(":" ("^[ \t]*\\(\\sw+\\)?:[ \t]*\\(([^)\n]+)\\)?[ \t]*\\(\\sw+\\)" - (beginning-of-line) (end-of-line) - (1 font-lock-function-name-face nil t) - (3 font-lock-variable-name-face))) - )) - "Subdued level highlighting for Objective-C mode.") - - (defconst objc-font-lock-keywords-2 - (append objc-font-lock-keywords-1 - (list - ;; - ;; Simple regexps for speed. - ;; - ;; Fontify all type specifiers. - `(eval . - (cons (concat "\\<\\(" ,objc-type-names "\\)\\>") - 'font-lock-type-face)) - ;; - ;; Fontify all builtin keywords (except case, default and goto; see below). - (concat "\\<\\(" objc-keywords "\\|" objc-type-specs "\\)\\>") - ;; - ;; Fontify case/goto keywords and targets, and case default/goto tags. - '("\\<\\(case\\|goto\\)\\>[ \t]*\\(-?\\sw+\\)?" - (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) - ;; Fontify tags iff sole statement on line, otherwise we detect selectors. - ;; This must come after the one for keywords and targets. - '(":" ("^[ \t]*\\(\\sw+\\)[ \t]*:[ \t]*$" - (beginning-of-line) (end-of-line) - (1 font-lock-constant-face))) - ;; - ;; Fontify null object pointers. - '("\\<[Nn]il\\>" . font-lock-constant-face) - )) - "Medium level highlighting for Objective-C mode. - See also `objc-font-lock-extra-types'.") - - (defconst objc-font-lock-keywords-3 - (append objc-font-lock-keywords-2 - ;; - ;; More complicated regexps for more complete highlighting for types. - ;; We still have to fontify type specifiers individually, as C is so hairy. - (list - ;; - ;; Fontify all storage classes and type specifiers, plus their items. - `(eval . - (list (concat "\\<\\(" ,objc-type-names "\\)\\>" - "\\([ \t*&]+\\sw+\\>\\)*") - ;; Fontify each declaration item. - `(font-lock-match-c-style-declaration-item-and-skip-to-next - ;; Start with point after all type specifiers. - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (or (match-beginning - ,(+ ,objc-type-names-depth 2)) - (match-end 1)))) - ;; Finish with point after first type specifier. - (goto-char (match-end 1)) - ;; Fontify as a variable or function name. - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face))))) - ;; - ;; Fontify all storage specs and types, plus their items. - `(,(concat "\\<\\(" objc-type-specs "[ \t]*\\)+\\>" "[ \t]*\\(\\sw+\\)?") - ;; The name of any type. - (,(+ objc-type-specs-depth 2) font-lock-type-face nil t) - ;; Fontify each declaration item. - (font-lock-match-c++-style-declaration-item-and-skip-to-next - (save-excursion (skip-chars-forward "^;{}") (point)) nil - ;; Fontify as a variable or function name. - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face)))) - ;; - ;; Fontify structures, or typedef names, plus their items. - '("\\(}\\)[ \t*]*\\sw" - (font-lock-match-c-style-declaration-item-and-skip-to-next - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (match-end 1))) nil - (1 font-lock-type-face))) - ;; - ;; Fontify anything at beginning of line as a declaration or definition. - '("^\\(\\sw+\\)\\>\\([ \t*]+\\sw+\\>\\)*" - (1 font-lock-type-face) - (font-lock-match-c-style-declaration-item-and-skip-to-next - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (or (match-beginning 2) (match-end 1)))) nil - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face)))) - )) - "Gaudy level highlighting for Objective-C mode. - See also `objc-font-lock-extra-types'.") - ) - - (defvar objc-font-lock-keywords objc-font-lock-keywords-1 - "Default expressions to highlight in Objective-C mode. - See also `objc-font-lock-extra-types'.") - - ;;; Java. - - ;; Regexps written with help from Fred White , - ;; Anders Lindgren and Carl Manning . - (let* ((java-keywords - (eval-when-compile - (regexp-opt - '("catch" "do" "else" "super" "this" "finally" "for" "if" - ;; Anders Lindgren says these have gone. - ;; "cast" "byvalue" "future" "generic" "operator" "var" - ;; "inner" "outer" "rest" - "implements" "extends" "throws" "instanceof" "new" - "interface" "return" "switch" "throw" "try" "while")))) - ;; - ;; Classes immediately followed by an object name. - (java-type-names - `(mapconcat 'identity - (cons - ,(eval-when-compile - (regexp-opt '("boolean" "char" "byte" "short" "int" "long" - "float" "double" "void"))) - java-font-lock-extra-types) - "\\|")) - (java-type-names-depth `(regexp-opt-depth ,java-type-names)) - ;; - ;; These are eventually followed by an object name. - (java-type-specs - (eval-when-compile - (regexp-opt - '("abstract" "const" "final" "synchronized" "transient" "static" - ;; Anders Lindgren says this has gone. - ;; "threadsafe" - "volatile" "public" "private" "protected" "native" - ;; Carl Manning says this is new. - "strictfp")))) - ) - (defconst java-font-lock-keywords-1 - (list - ;; - ;; Fontify class names. - '("\\<\\(class\\)\\>[ \t]*\\(\\sw+\\)?" - (1 font-lock-keyword-face) (2 font-lock-type-face nil t)) - ;; - ;; Fontify package names in import directives. - '("\\<\\(import\\|package\\)\\>[ \t]*\\(\\sw+\\)?" - (1 font-lock-keyword-face) - (2 font-lock-constant-face nil t) - ("\\=\\.\\(\\*\\|\\sw+\\)" nil nil - (1 font-lock-constant-face nil t))) - ) - "Subdued level highlighting for Java mode.") - - (defconst java-font-lock-keywords-2 - (append java-font-lock-keywords-1 - (list - ;; - ;; Fontify class names. - `(eval . - (cons (concat "\\<\\(" ,java-type-names "\\)\\>[^.]") - '(1 font-lock-type-face))) - ;; - ;; Fontify all builtin keywords (except below). - (concat "\\<\\(" java-keywords "\\|" java-type-specs "\\)\\>") - ;; - ;; Fontify keywords and targets, and case default/goto tags. - (list "\\<\\(break\\|case\\|continue\\|goto\\)\\>[ \t]*\\(-?\\sw+\\)?" - '(1 font-lock-keyword-face) '(2 font-lock-constant-face nil t)) - ;; This must come after the one for keywords and targets. - '(":" ("^[ \t]*\\(\\sw+\\)[ \t]*:[ \t]*$" - (beginning-of-line) (end-of-line) - (1 font-lock-constant-face))) - ;; - ;; Fontify all constants. - '("\\<\\(false\\|null\\|true\\)\\>" . font-lock-constant-face) - ;; - ;; Javadoc tags within comments. - (list - (concat "@\\(" - "author\\|deprecated\\|exception" - "\\|link\\|return\\|see\\|serial\\|serialData\\|serialField" - "\\|since\\|throws" - "\\|version" - "\\)\\>") - '(1 font-lock-constant-face prepend)) - '("@\\(param\\)\\>[ \t]*\\(\\sw+\\)?" - (1 font-lock-constant-face prepend) - (2 font-lock-variable-name-face prepend t)) - '("@\\(exception\\|throws\\)\\>[ \t]*\\(\\S-+\\)?" - (1 font-lock-constant-face prepend) - (2 font-lock-type-face prepend t)) - )) - "Medium level highlighting for Java mode. - See also `java-font-lock-extra-types'.") - - (defconst java-font-lock-keywords-3 - (append java-font-lock-keywords-2 - ;; - ;; More complicated regexps for more complete highlighting for types. - ;; We still have to fontify type specifiers individually, as Java is hairy. - (list - ;; - ;; Fontify random types immediately followed by an item or items. - `(eval . - (list (concat "\\<\\(" ,java-type-names "\\)\\>" - "\\([ \t]*\\[[ \t]*\\]\\)*" - "\\([ \t]*\\sw\\)") - ;; Fontify each declaration item. - `(font-lock-match-c-style-declaration-item-and-skip-to-next - ;; Start and finish with point after the type specifier. - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (match-beginning ,(+ ,java-type-names-depth 3)))) - (goto-char (match-beginning ,(+ ,java-type-names-depth 3))) - ;; Fontify as a variable or function name. - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face))))) - ;; - ;; Fontify those that are eventually followed by an item or items. - `(,(concat "\\<\\(" java-type-specs "\\)\\>" - "\\([ \t]+\\sw+\\>" - "\\([ \t]*\\[[ \t]*\\]\\)*" - "\\)*") - ;; Fontify each declaration item. - (font-lock-match-c-style-declaration-item-and-skip-to-next - ;; Start with point after all type specifiers. - (prog1 (progn (skip-chars-forward "^;{}") (point)) - (goto-char (or (match-beginning 5) (match-end 1)))) - ;; Finish with point after first type specifier. - (goto-char (match-end 1)) - ;; Fontify as a variable or function name. - (1 (if (match-beginning 2) - font-lock-function-name-face - font-lock-variable-name-face)))) - )) - "Gaudy level highlighting for Java mode. - See also `java-font-lock-extra-types'.") - ) - - (defvar java-font-lock-keywords java-font-lock-keywords-1 - "Default expressions to highlight in Java mode. - See also `java-font-lock-extra-types'.") - - ;; Provide ourselves: - - (defun java-font-lock-syntactic-face-function (state) - (save-excursion - (if (nth 3 state) - ;; Check whether the string is properly terminated. - (let ((nstate (parse-partial-sexp (point) (line-end-position) - nil nil state 'syntax-table))) - (if (and (eolp) (nth 3 nstate)) - ;; We're inside a string, at EOL. The JLS says that: - ;; It is a compile-time error for a line terminator to - ;; appear after the opening " and before the closing - ;; matching ". - font-lock-warning-face - font-lock-string-face)) - (goto-char (nth 8 state)) - (if (looking-at "/\\*\\*") - font-lock-doc-face - font-lock-comment-face)))) - (provide 'font-lock) (when (eq font-lock-support-mode 'jit-lock-mode) --- 1924,1929 ---- From MAILER-DAEMON Fri Jul 04 14:33:15 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YVMh-00019r-Fo for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:32:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YVMe-00014B-Ig for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:32:56 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YVMN-0000ut-VB for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:32:40 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YVKf-0008K0-Ja for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:30:53 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YVJe-0003qi-PS for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:29:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 14:29:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 18:32:58 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5255 emacs/lisp/ChangeLog:1.5256 *** emacs/lisp/ChangeLog:1.5255 Fri Jul 4 07:24:29 2003 --- emacs/lisp/ChangeLog Fri Jul 4 14:29:49 2003 *************** *** 1,3 **** --- 1,23 ---- + 2003-07-04 Stefan Monnier + + * font-core.el (font-lock-defaults-alist): Remove obsolete entries. + + * font-lock.el (font-lock-extra-types-widget) + (c-font-lock-extra-types, c++-font-lock-extra-types) + (objc-font-lock-extra-types, java-font-lock-extra-types) + (c-font-lock-keywords-1, c-font-lock-keywords-2, c-font-lock-keywords) + (c-font-lock-keywords-3, c-font-lock-syntactic-face-function) + (font-lock-match-c++-style-declaration-item-and-skip-to-next) + (font-lock-match-c++-structor-declaration) + (c++-font-lock-keywords-1, c++-font-lock-keywords-2) + (c++-font-lock-keywords-3, c++-font-lock-keywords) + (objc-font-lock-keywords-1, objc-font-lock-keywords-2) + (objc-font-lock-keywords-3, objc-font-lock-keywords) + (java-font-lock-keywords-1, java-font-lock-keywords-2) + (java-font-lock-keywords-3, java-font-lock-keywords) + (java-font-lock-syntactic-face-function): Remove obsolete code + and constants. It's all in cc-fonts.el now. + 2003-07-04 Glenn Morris * mail/sendmail.el (mail-specify-envelope-from) From MAILER-DAEMON Fri Jul 04 14:34:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YVNC-0001aG-Aa for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:33:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YVMY-00012H-VW for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:32:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YVLL-0000Je-MA for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:31:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YVK6-0007oX-V7 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:30:18 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YVJ3-0003pT-02 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 14:29:13 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 14:29:13 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/font-core.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 18:33:28 -0000 Index: emacs/lisp/font-core.el diff -c emacs/lisp/font-core.el:1.20 emacs/lisp/font-core.el:1.21 *** emacs/lisp/font-core.el:1.20 Mon Apr 14 19:07:49 2003 --- emacs/lisp/font-core.el Fri Jul 4 14:29:12 2003 *************** *** 1,6 **** ;;; font-core.el --- Core interface to font-lock ! ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, 2002 ;; Free Software Foundation, Inc. ;; Maintainer: FSF --- 1,6 ---- ;;; font-core.el --- Core interface to font-lock ! ;; Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, 02, 2003 ;; Free Software Foundation, Inc. ;; Maintainer: FSF *************** *** 77,123 **** ;; keywords. Really, this shouldn't need to be in font-core.el, but ;; we can't avoid it. In the future, this stuff will hopefully be ;; moved to cc-mode itself. ! (defvar font-lock-defaults-alist ! (let (;; We use `beginning-of-defun', rather than nil, for SYNTAX-BEGIN. ! ;; Thus the calculation of the cache is usually faster but not ! ;; infallible, so we risk mis-fontification. sm. ! (c-mode-defaults ! '((c-font-lock-keywords c-font-lock-keywords-1 ! c-font-lock-keywords-2 c-font-lock-keywords-3) ! nil nil ((?_ . "w")) beginning-of-defun ! (font-lock-syntactic-face-function ! . c-font-lock-syntactic-face-function) ! (font-lock-mark-block-function . mark-defun))) ! (c++-mode-defaults ! '((c++-font-lock-keywords c++-font-lock-keywords-1 ! c++-font-lock-keywords-2 c++-font-lock-keywords-3) ! nil nil ((?_ . "w")) beginning-of-defun ! (font-lock-syntactic-face-function ! . c-font-lock-syntactic-face-function) ! (font-lock-mark-block-function . mark-defun))) ! (objc-mode-defaults ! '((objc-font-lock-keywords objc-font-lock-keywords-1 ! objc-font-lock-keywords-2 objc-font-lock-keywords-3) ! nil nil ((?_ . "w") (?$ . "w")) nil ! (font-lock-syntactic-face-function ! . c-font-lock-syntactic-face-function) ! (font-lock-mark-block-function . mark-defun))) ! (java-mode-defaults ! '((java-font-lock-keywords java-font-lock-keywords-1 ! java-font-lock-keywords-2 java-font-lock-keywords-3) ! nil nil ((?_ . "w") (?$ . "w")) nil ! (font-lock-syntactic-face-function ! . java-font-lock-syntactic-face-function) ! (font-lock-mark-block-function . mark-defun)))) ! (list ! (cons 'c-mode c-mode-defaults) ! (cons 'c++-mode c++-mode-defaults) ! (cons 'objc-mode objc-mode-defaults) ! (cons 'java-mode java-mode-defaults))) "Alist of fall-back Font Lock defaults for major modes. - - This variable should not be used any more. - Set the buffer-local `font-lock-keywords' in the major mode instead. Each item should be a list of the form: --- 77,84 ---- ;; keywords. Really, this shouldn't need to be in font-core.el, but ;; we can't avoid it. In the future, this stuff will hopefully be ;; moved to cc-mode itself. ! (defvar font-lock-defaults-alist nil "Alist of fall-back Font Lock defaults for major modes. Each item should be a list of the form: From MAILER-DAEMON Fri Jul 04 16:12:28 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YWum-0007am-Ot for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:12:16 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YWuk-0007Z0-8u for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:12:14 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YWud-0007Rv-Th for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:12:08 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YWuI-0007Cs-2d for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:11:46 -0400 Received: from fx by subversions.gnu.org with local (Exim 4.20) id 19YWtH-0006pP-8Z for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:10:43 -0400 To: emacs-diffs@gnu.org Message-Id: From: Dave Love Date: Fri, 04 Jul 2003 16:10:43 -0400 Subject: [Emacs-diffs] Changes to emacs/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: fx@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 20:12:15 -0000 Index: emacs/ChangeLog diff -c emacs/ChangeLog:1.331 emacs/ChangeLog:1.332 *** emacs/ChangeLog:1.331 Thu Jun 26 17:09:11 2003 --- emacs/ChangeLog Fri Jul 4 16:10:42 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-06-29 Dave Love + + * configure.in: Fix XRegisterIMInstantiateCallback check for gcc. + 2003-06-26 Jan Dj,Ad(Brv * configure: Regenerate. From MAILER-DAEMON Fri Jul 04 16:22:07 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YX3E-0003MO-Dd for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:21:00 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YX2s-0002SV-4M for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:20:38 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YX2R-0001Kr-Be for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:20:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YX2P-0001IP-Vr for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:20:10 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YX1O-00009a-Q6 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:19:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 16:19:06 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 20:20:52 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.307 emacs/src/alloc.c:1.308 *** emacs/src/alloc.c:1.307 Fri Jun 27 18:54:26 2003 --- emacs/src/alloc.c Fri Jul 4 16:19:06 2003 *************** *** 21,26 **** --- 21,27 ---- #include #include + #include /* For CHAR_BIT. */ #ifdef ALLOC_DEBUG #undef INLINE *************** *** 418,425 **** /* Value is SZ rounded up to the next multiple of ALIGNMENT. ALIGNMENT must be a power of 2. */ ! #define ALIGN(SZ, ALIGNMENT) \ ! (((SZ) + (ALIGNMENT) - 1) & ~((ALIGNMENT) - 1)) --- 419,427 ---- /* Value is SZ rounded up to the next multiple of ALIGNMENT. ALIGNMENT must be a power of 2. */ ! #define ALIGN(ptr, ALIGNMENT) \ ! ((POINTER_TYPE *) ((((EMACS_UINT)(ptr)) + (ALIGNMENT) - 1) \ ! & ~((ALIGNMENT) - 1))) *************** *** 635,640 **** --- 637,838 ---- UNBLOCK_INPUT; } + /* Allocation of aligned blocks of memory to store Lisp data. */ + /* The entry point is lisp_align_malloc which returns blocks of at most */ + /* BLOCK_BYTES and guarantees they are aligned on a BLOCK_ALIGN boundary. */ + + + /* BLOCK_ALIGN has to be a power of 2. */ + #define BLOCK_ALIGN (1 << 10) + #define BLOCK_BYTES \ + (BLOCK_ALIGN - sizeof (struct aligned_block *) - ABLOCKS_PADDING) + + /* Internal data structures and constants. */ + + /* Padding to leave at the end of a malloc'd block. This is to give + malloc a chance to minimize the amount of memory wasted to alignment. + It should be tuned to the particular malloc library used. + The current setting is based on glibc-2.3.2. */ + #define ABLOCKS_PADDING 0 + #define ABLOCKS_SIZE 16 + + /* An aligned block of memory. */ + struct ablock + { + union + { + char payload[BLOCK_BYTES]; + struct ablock *next_free; + } x; + /* `abase' is the aligned base of the ablocks. */ + /* It is overloaded to hold the virtual `busy' field that counts + the number of used ablock in the parent ablocks. + The first ablock has the `busy' field, the others have the `abase' + field. To tell the difference, we assume that pointers will have + integer values larger than 2 * ABLOCKS_SIZE. The lowest bit of `busy' + is used to tell whether the real base of the parent ablocks is `abase' + (if not, the word before the first ablock holds a pointer to the + real base). */ + struct ablocks *abase; + /* The padding of all but the last ablock is unused. The padding of + the last ablock in an ablocks is not allocated. */ + char padding[ABLOCKS_PADDING]; + }; + + /* A bunch of consecutive aligned blocks. */ + struct ablocks + { + struct ablock blocks[ABLOCKS_SIZE]; + }; + + /* Size of the block requested from malloc or memalign. */ + #define ABLOCKS_BYTES (sizeof (struct ablocks) - ABLOCKS_PADDING) + + #define ABLOCK_ABASE(block) \ + (((unsigned long) (block)->abase) <= (1 + 2 * ABLOCKS_SIZE) \ + ? (struct ablocks *)(block) \ + : (block)->abase) + + /* Virtual `busy' field. */ + #define ABLOCKS_BUSY(abase) ((abase)->blocks[0].abase) + + /* Pointer to the (not necessarily aligned) malloc block. */ + #define ABLOCKS_BASE(abase) \ + (1 & (int) ABLOCKS_BUSY (abase) ? abase : ((void**)abase)[-1]) + + /* The list of free ablock. */ + static struct ablock *free_ablock; + + /* Allocate an aligned block of nbytes. + Alignment is on a multiple of BLOCK_ALIGN and `nbytes' has to be + smaller or equal to BLOCK_BYTES. */ + static POINTER_TYPE * + lisp_align_malloc (nbytes, type) + size_t nbytes; + enum mem_type type; + { + void *base, *val; + struct ablocks *abase; + + eassert (nbytes <= BLOCK_BYTES); + + BLOCK_INPUT; + + #ifdef GC_MALLOC_CHECK + allocated_mem_type = type; + #endif + + if (!free_ablock) + { + int i, aligned; + + #ifdef DOUG_LEA_MALLOC + /* Prevent mmap'ing the chunk. Lisp data may not be mmap'ed + because mapped region contents are not preserved in + a dumped Emacs. */ + mallopt (M_MMAP_MAX, 0); + #endif + + base = malloc (ABLOCKS_BYTES); + abase = ALIGN (base, BLOCK_ALIGN); + + aligned = (base == abase); + if (!aligned) + ((void**)abase)[-1] = base; + + #ifdef DOUG_LEA_MALLOC + /* Back to a reasonable maximum of mmap'ed areas. */ + mallopt (M_MMAP_MAX, MMAP_MAX_AREAS); + #endif + + /* Initialize the blocks and put them on the free list. + Is `base' was not properly aligned, we can't use the last block. */ + for (i = 0; i < (aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1); i++) + { + abase->blocks[i].abase = abase; + abase->blocks[i].x.next_free = free_ablock; + free_ablock = &abase->blocks[i]; + } + ABLOCKS_BUSY (abase) = (struct ablocks *) aligned; + + eassert (ABLOCK_ABASE (&abase->blocks[3]) == abase); /* 3 is arbitrary */ + eassert (ABLOCK_ABASE (&abase->blocks[0]) == abase); + eassert (ABLOCKS_BASE (abase) == base); + eassert (aligned == (int)ABLOCKS_BUSY (abase)); + } + + abase = ABLOCK_ABASE (free_ablock); + ABLOCKS_BUSY (abase) = (struct ablocks *) (2 + (int) ABLOCKS_BUSY (abase)); + val = free_ablock; + free_ablock = free_ablock->x.next_free; + + /* If the memory just allocated cannot be addressed thru a Lisp + object's pointer, and it needs to be, + that's equivalent to running out of memory. */ + if (val && type != MEM_TYPE_NON_LISP) + { + Lisp_Object tem; + XSETCONS (tem, (char *) val + nbytes - 1); + if ((char *) XCONS (tem) != (char *) val + nbytes - 1) + { + lisp_malloc_loser = val; + free (val); + val = 0; + } + } + + #if GC_MARK_STACK && !defined GC_MALLOC_CHECK + if (val && type != MEM_TYPE_NON_LISP) + mem_insert (val, (char *) val + nbytes, type); + #endif + + UNBLOCK_INPUT; + if (!val && nbytes) + memory_full (); + + eassert (0 == ((EMACS_UINT)val) % BLOCK_ALIGN); + return val; + } + + static void + lisp_align_free (block) + POINTER_TYPE *block; + { + struct ablock *ablock = block; + struct ablocks *abase = ABLOCK_ABASE (ablock); + + BLOCK_INPUT; + #if GC_MARK_STACK && !defined GC_MALLOC_CHECK + mem_delete (mem_find (block)); + #endif + /* Put on free list. */ + ablock->x.next_free = free_ablock; + free_ablock = ablock; + /* Update busy count. */ + ABLOCKS_BUSY (abase) = (struct ablocks *) (-2 + (int) ABLOCKS_BUSY (abase)); + + if (2 > (int) ABLOCKS_BUSY (abase)) + { /* All the blocks are free. */ + int i = 0, aligned = (int) ABLOCKS_BUSY (abase); + struct ablock **tem = &free_ablock; + struct ablock *atop = &abase->blocks[aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1]; + + while (*tem) + { + if (*tem >= (struct ablock *) abase && *tem < atop) + { + i++; + *tem = (*tem)->x.next_free; + } + else + tem = &(*tem)->x.next_free; + } + eassert ((aligned & 1) == aligned); + eassert (i == (aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1)); + free (ABLOCKS_BASE (abase)); + } + UNBLOCK_INPUT; + } /* Return a new buffer structure allocated from the heap with a call to lisp_malloc. */ *************** *** 1899,1919 **** /* We store float cells inside of float_blocks, allocating a new float_block with malloc whenever necessary. Float cells reclaimed by GC are put on a free list to be reallocated before allocating ! any new float cells from the latest float_block. ! ! Each float_block is just under 1020 bytes long, since malloc really ! allocates in units of powers of two and uses 4 bytes for its own ! overhead. */ #define FLOAT_BLOCK_SIZE \ ! ((1020 - sizeof (struct float_block *)) / sizeof (struct Lisp_Float)) struct float_block { ! struct float_block *next; struct Lisp_Float floats[FLOAT_BLOCK_SIZE]; }; /* Current float_block. */ struct float_block *float_block; --- 2097,2144 ---- /* We store float cells inside of float_blocks, allocating a new float_block with malloc whenever necessary. Float cells reclaimed by GC are put on a free list to be reallocated before allocating ! any new float cells from the latest float_block. */ #define FLOAT_BLOCK_SIZE \ ! (((BLOCK_BYTES - sizeof (struct float_block *)) * CHAR_BIT) \ ! / (sizeof (struct Lisp_Float) * CHAR_BIT + 1)) ! ! #define GETMARKBIT(block,n) \ ! (((block)->gcmarkbits[(n) / (sizeof(int) * CHAR_BIT)] \ ! >> ((n) % (sizeof(int) * CHAR_BIT))) \ ! & 1) ! ! #define SETMARKBIT(block,n) \ ! (block)->gcmarkbits[(n) / (sizeof(int) * CHAR_BIT)] \ ! |= 1 << ((n) % (sizeof(int) * CHAR_BIT)) ! ! #define UNSETMARKBIT(block,n) \ ! (block)->gcmarkbits[(n) / (sizeof(int) * CHAR_BIT)] \ ! &= ~(1 << ((n) % (sizeof(int) * CHAR_BIT))) ! ! #define FLOAT_BLOCK(fptr) \ ! ((struct float_block *)(((EMACS_UINT)(fptr)) & ~(BLOCK_ALIGN - 1))) ! ! #define FLOAT_INDEX(fptr) \ ! ((((EMACS_UINT)(fptr)) & (BLOCK_ALIGN - 1)) / sizeof (struct Lisp_Float)) struct float_block { ! /* Place `floats' at the beginning, to ease up FLOAT_INDEX's job. */ struct Lisp_Float floats[FLOAT_BLOCK_SIZE]; + int gcmarkbits[1 + FLOAT_BLOCK_SIZE / (sizeof(int) * CHAR_BIT)]; + struct float_block *next; }; + #define FLOAT_MARKED_P(fptr) \ + GETMARKBIT (FLOAT_BLOCK (fptr), FLOAT_INDEX ((fptr))) + + #define FLOAT_MARK(fptr) \ + SETMARKBIT (FLOAT_BLOCK (fptr), FLOAT_INDEX ((fptr))) + + #define FLOAT_UNMARK(fptr) \ + UNSETMARKBIT (FLOAT_BLOCK (fptr), FLOAT_INDEX ((fptr))) + /* Current float_block. */ struct float_block *float_block; *************** *** 1936,1945 **** void init_float () { ! float_block = (struct float_block *) lisp_malloc (sizeof *float_block, ! MEM_TYPE_FLOAT); float_block->next = 0; bzero ((char *) float_block->floats, sizeof float_block->floats); float_block_index = 0; float_free_list = 0; n_float_blocks = 1; --- 2161,2171 ---- void init_float () { ! float_block = (struct float_block *) lisp_align_malloc (sizeof *float_block, ! MEM_TYPE_FLOAT); float_block->next = 0; bzero ((char *) float_block->floats, sizeof float_block->floats); + bzero ((char *) float_block->gcmarkbits, sizeof float_block->gcmarkbits); float_block_index = 0; float_free_list = 0; n_float_blocks = 1; *************** *** 1953,1961 **** struct Lisp_Float *ptr; { *(struct Lisp_Float **)&ptr->data = float_free_list; - #if GC_MARK_STACK - ptr->type = Vdead; - #endif float_free_list = ptr; } --- 2179,2184 ---- *************** *** 1981,1988 **** { register struct float_block *new; ! new = (struct float_block *) lisp_malloc (sizeof *new, ! MEM_TYPE_FLOAT); new->next = float_block; float_block = new; float_block_index = 0; --- 2204,2211 ---- { register struct float_block *new; ! new = (struct float_block *) lisp_align_malloc (sizeof *new, ! MEM_TYPE_FLOAT); new->next = float_block; float_block = new; float_block_index = 0; *************** *** 1992,1998 **** } XFLOAT_DATA (val) = float_value; ! XSETFASTINT (XFLOAT (val)->type, 0); /* bug chasing -wsr */ consing_since_gc += sizeof (struct Lisp_Float); floats_consed++; return val; --- 2215,2221 ---- } XFLOAT_DATA (val) = float_value; ! FLOAT_UNMARK (XFLOAT (val)); consing_since_gc += sizeof (struct Lisp_Float); floats_consed++; return val; *************** *** 3240,3253 **** struct float_block *b = (struct float_block *) m->start; int offset = (char *) p - (char *) &b->floats[0]; ! /* P must point to the start of a Lisp_Float, not be ! one of the unused cells in the current float block, ! and not be on the free-list. */ return (offset >= 0 && offset % sizeof b->floats[0] == 0 && (b != float_block ! || offset / sizeof b->floats[0] < float_block_index) ! && !EQ (((struct Lisp_Float *) p)->type, Vdead)); } else return 0; --- 3463,3474 ---- struct float_block *b = (struct float_block *) m->start; int offset = (char *) p - (char *) &b->floats[0]; ! /* P must point to the start of a Lisp_Float and not be ! one of the unused cells in the current float block. */ return (offset >= 0 && offset % sizeof b->floats[0] == 0 && (b != float_block ! || offset / sizeof b->floats[0] < float_block_index)); } else return 0; *************** *** 3394,3401 **** break; case Lisp_Float: ! mark_p = (live_float_p (m, po) ! && !XMARKBIT (XFLOAT (obj)->type)); break; case Lisp_Vectorlike: --- 3615,3621 ---- break; case Lisp_Float: ! mark_p = (live_float_p (m, po) && !FLOAT_MARKED_P (XFLOAT (obj))); break; case Lisp_Vectorlike: *************** *** 3483,3490 **** break; case MEM_TYPE_FLOAT: ! if (live_float_p (m, p) ! && !XMARKBIT (((struct Lisp_Float *) p)->type)) XSETFLOAT (obj, p); break; --- 3703,3709 ---- break; case MEM_TYPE_FLOAT: ! if (live_float_p (m, p) && !FLOAT_MARKED_P (p)) XSETFLOAT (obj, p); break; *************** *** 3741,3747 **** /* This trick flushes the register windows so that all the state of the process is contained in the stack. */ ! /* Fixme: Code in the Boehm GC sugests flushing (with `flushrs') is needed on ia64 too. See mach_dep.c, where it also says inline assembler doesn't work with relevant proprietary compilers. */ #ifdef sparc --- 3960,3966 ---- /* This trick flushes the register windows so that all the state of the process is contained in the stack. */ ! /* Fixme: Code in the Boehm GC suggests flushing (with `flushrs') is needed on ia64 too. See mach_dep.c, where it also says inline assembler doesn't work with relevant proprietary compilers. */ #ifdef sparc *************** *** 3823,3829 **** } again: ! result = (POINTER_TYPE *) ALIGN ((EMACS_UINT)purebeg + pure_bytes_used, alignment); pure_bytes_used = ((char *)result - (char *)purebeg) + size; if (pure_bytes_used <= pure_size) --- 4042,4048 ---- } again: ! result = ALIGN (purebeg + pure_bytes_used, alignment); pure_bytes_used = ((char *)result - (char *)purebeg) + size; if (pure_bytes_used <= pure_size) *************** *** 4825,4831 **** case Lisp_Float: CHECK_ALLOCATED_AND_LIVE (live_float_p); ! XMARK (XFLOAT (obj)->type); break; case Lisp_Int: --- 5044,5050 ---- case Lisp_Float: CHECK_ALLOCATED_AND_LIVE (live_float_p); ! FLOAT_MARK (XFLOAT (obj)); break; case Lisp_Int: *************** *** 4948,4954 **** break; case Lisp_Float: ! survives_p = XMARKBIT (XFLOAT (obj)->type); break; default: --- 5167,5173 ---- break; case Lisp_Float: ! survives_p = FLOAT_MARKED_P (XFLOAT (obj)); break; default: *************** *** 5039,5057 **** register int i; int this_free = 0; for (i = 0; i < lim; i++) ! if (!XMARKBIT (fblk->floats[i].type)) { this_free++; *(struct Lisp_Float **)&fblk->floats[i].data = float_free_list; float_free_list = &fblk->floats[i]; - #if GC_MARK_STACK - float_free_list->type = Vdead; - #endif } else { num_used++; ! XUNMARK (fblk->floats[i].type); } lim = FLOAT_BLOCK_SIZE; /* If this block contains only free floats and we have already --- 5258,5273 ---- register int i; int this_free = 0; for (i = 0; i < lim; i++) ! if (!FLOAT_MARKED_P (&fblk->floats[i])) { this_free++; *(struct Lisp_Float **)&fblk->floats[i].data = float_free_list; float_free_list = &fblk->floats[i]; } else { num_used++; ! FLOAT_UNMARK (&fblk->floats[i]); } lim = FLOAT_BLOCK_SIZE; /* If this block contains only free floats and we have already *************** *** 5062,5068 **** *fprev = fblk->next; /* Unhook from the free list. */ float_free_list = *(struct Lisp_Float **) &fblk->floats[0].data; ! lisp_free (fblk); n_float_blocks--; } else --- 5278,5284 ---- *fprev = fblk->next; /* Unhook from the free list. */ float_free_list = *(struct Lisp_Float **) &fblk->floats[0].data; ! lisp_align_free (fblk); n_float_blocks--; } else *************** *** 5372,5377 **** --- 5588,5596 ---- pure_size = PURESIZE; pure_bytes_used = 0; pure_bytes_used_before_overflow = 0; + + /* Initialize the list of free aligned blocks. */ + free_ablock = NULL; #if GC_MARK_STACK || defined GC_MALLOC_CHECK mem_init (); From MAILER-DAEMON Fri Jul 04 16:22:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YX4Z-0005Ex-OZ for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:22:23 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YX4V-00052P-H6 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:22:19 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YX3v-00043Z-Ex for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:21:43 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YX3E-0003N3-BH for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:21:00 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YX2C-0000j9-O1 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:19:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 16:19:56 -0400 Subject: [Emacs-diffs] Changes to emacs/src/lisp.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 20:22:22 -0000 Index: emacs/src/lisp.h diff -c emacs/src/lisp.h:1.459 emacs/src/lisp.h:1.460 *** emacs/src/lisp.h:1.459 Fri Jun 27 18:53:35 2003 --- emacs/src/lisp.h Fri Jul 4 16:19:55 2003 *************** *** 1275,1282 **** /* Lisp floating point type */ struct Lisp_Float { - Lisp_Object type; /* essentially used for mark-bit - and chaining when on free-list */ #ifdef HIDE_LISP_IMPLEMENTATION double data_; #else --- 1275,1280 ---- From MAILER-DAEMON Fri Jul 04 16:30:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YXCQ-00062y-85 for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:30:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YXBl-0005L8-4a for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:29:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YXAN-0003Tg-EG for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:28:26 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YXAI-0003BF-4Q for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:28:18 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YX9G-0002jG-T6 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:27:14 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 16:27:14 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/font-core.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 20:30:28 -0000 Index: emacs/lisp/font-core.el diff -c emacs/lisp/font-core.el:1.21 emacs/lisp/font-core.el:1.22 *** emacs/lisp/font-core.el:1.21 Fri Jul 4 14:29:12 2003 --- emacs/lisp/font-core.el Fri Jul 4 16:27:14 2003 *************** *** 73,82 **** `font-lock-inhibit-thing-lock' and `font-lock-maximum-size'.") (make-variable-buffer-local 'font-lock-defaults) - ;; This variable is used where font-lock.el itself supplies the - ;; keywords. Really, this shouldn't need to be in font-core.el, but - ;; we can't avoid it. In the future, this stuff will hopefully be - ;; moved to cc-mode itself. (defvar font-lock-defaults-alist nil "Alist of fall-back Font Lock defaults for major modes. --- 73,78 ---- From MAILER-DAEMON Fri Jul 04 16:41:28 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YXKZ-0001uw-CB for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:38:55 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YXJo-0000l3-2e for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:38:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YXJi-0000gn-NB for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:38:03 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YXJa-0000Qh-TL for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:37:54 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YXIZ-00048i-7P for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:36:51 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 16:36:51 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 20:38:54 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3296 emacs/src/ChangeLog:1.3297 *** emacs/src/ChangeLog:1.3296 Fri Jun 27 17:54:38 2003 --- emacs/src/ChangeLog Fri Jul 4 16:36:50 2003 *************** *** 1,3 **** --- 1,27 ---- + 2003-07-04 Stefan Monnier + + * alloc.c (ALIGN): Add casts to simplify usage. + (BLOCK_ALIGN, BLOCK_BYTES, ABLOCKS_PADDING, ABLOCKS_SIZE) + (ABLOCKS_BYTES, ABLOCK_ABASE, ABLOCKS_BUSY, ABLOCKS_BASE): New macros. + (struct ablock, struct ablocks): New types. + (free_ablock): New global var. + (lisp_align_malloc, lisp_align_free): New functions. + (FLOAT_BLOCK_SIZE): Redefine in terms of BLOCK_BYTES. + (struct float_block): Reorder and add gcmarkbits. + (GETMARKBIT, SETMARKBIT, UNSETMARKBIT, FLOAT_BLOCK, FLOAT_INDEX) + (FLOAT_MARKED_P, FLOAT_MARK, FLOAT_UNMARK): New macros. + (init_float, make_float): Use lisp_align_malloc. + (free_float, live_float_p): Don't use `type' any more. + (make_float): Use FLOAT_UNMARK to access to mark bit. + (mark_maybe_object, mark_maybe_pointer, survives_gc_p): + Use FLOAT_MARKED_P to access the mark bit. + (pure_alloc): Simplify use of ALIGN. + (mark_object): Use FLOAT_MARK to access the mark bit. + (gc_sweep): Use new macros to access the float's mark bit. + (init_alloc_once): Init free_ablock. + + * lisp.h (struct Lisp_Float): Remove unused field `type'. + 2003-06-27 Stefan Monnier * alloc.c (VECTOR_MARK, VECTOR_UNMARK, VECTOR_MARKED_P): New macros. From MAILER-DAEMON Fri Jul 04 16:42:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YXNx-0004eP-9F for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:42:25 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YXNA-0003gh-UE for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:41:36 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YXLX-0002jo-PN for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:39:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YXKW-0001uW-Sv for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:38:52 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YXJW-0004EF-4E for emacs-diffs@gnu.org; Fri, 04 Jul 2003 16:37:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 16:37:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/sh-script.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 20:42:24 -0000 Index: emacs/lisp/progmodes/sh-script.el diff -c emacs/lisp/progmodes/sh-script.el:1.124 emacs/lisp/progmodes/sh-script.el:1.125 *** emacs/lisp/progmodes/sh-script.el:1.124 Mon Jun 16 17:41:18 2003 --- emacs/lisp/progmodes/sh-script.el Fri Jul 4 16:37:49 2003 *************** *** 904,910 **** ;; Skip through one pattern (while (or (/= 0 (skip-syntax-backward "w_")) ! (/= 0 (skip-chars-backward "?*/\\")) (and (sh-is-quoted-p (1- (point))) (goto-char (- (point) 2))) (when (memq (char-before) '(?\" ?\')) --- 904,910 ---- ;; Skip through one pattern (while (or (/= 0 (skip-syntax-backward "w_")) ! (/= 0 (skip-chars-backward "?[]*/\\")) (and (sh-is-quoted-p (1- (point))) (goto-char (- (point) 2))) (when (memq (char-before) '(?\" ?\')) From MAILER-DAEMON Fri Jul 04 17:07:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YXlh-0003ms-L2 for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:06:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YXld-0003fZ-66 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:06:53 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YXlO-0003Fp-TM for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:06:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YXkd-0001Ma-15 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:05:51 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19YXjb-0004nq-HB for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:04:47 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Fri, 04 Jul 2003 17:04:47 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 21:06:56 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.187 emacs/man/ChangeLog:1.188 *** emacs/man/ChangeLog:1.187 Wed Jul 2 21:54:21 2003 --- emacs/man/ChangeLog Fri Jul 4 17:04:47 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-04 Luc Teirlinck + + * info.texi (Top, Help-Small-Screen): Remove accidentally added + next, prev and up pointers. + 2003-07-02 Luc Teirlinck * info.texi (Help): Mention existence of Emacs and stand-alone From MAILER-DAEMON Fri Jul 04 17:07:59 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YXmS-0005kc-Mt for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:07:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YXmO-0005Vn-Db for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:07:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YXmA-0004sC-KU for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:07:27 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YXm9-0004pO-Om for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:07:25 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YXl8-0004rT-Rc for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:06:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 17:06:22 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/log-view.el [EMACS_21_1_RC] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 21:07:42 -0000 Index: emacs/lisp/log-view.el diff -c emacs/lisp/log-view.el:1.6.14.1 emacs/lisp/log-view.el:1.6.14.2 *** emacs/lisp/log-view.el:1.6.14.1 Sun Jan 19 02:03:18 2003 --- emacs/lisp/log-view.el Fri Jul 4 17:06:22 2003 *************** *** 1,10 **** ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output ! ;; Copyright (C) 1999, 2000 Free Software Foundation, Inc. ;; Author: Stefan Monnier ;; Keywords: rcs sccs cvs log version-control ! ;; Revision: $Id: log-view.el,v 1.6.14.1 2003/01/19 07:03:18 spiegel Exp $ ;; This file is part of GNU Emacs. --- 1,10 ---- ;;; log-view.el --- Major mode for browsing RCS/CVS/SCCS log output ! ;; Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. ;; Author: Stefan Monnier ;; Keywords: rcs sccs cvs log version-control ! ;; Revision: $Id: log-view.el,v 1.6.14.2 2003/07/04 21:06:22 monnier Exp $ ;; This file is part of GNU Emacs. *************** *** 80,86 **** "\\|SCCS/s\\.\\(.+\\):" "\\)\n")) ;; In RCS, a locked revision will look like "revision N.M\tlocked by: FOO". ! (defconst log-view-message-re "^\\(revision \\([.0-9]+\\)\\(?:\t.*\\)?\\|rev \\([0-9]+\\): .*\\|D \\([.0-9]+\\) .*\\)$") (defconst log-view-font-lock-keywords `((,log-view-file-re --- 80,86 ---- "\\|SCCS/s\\.\\(.+\\):" "\\)\n")) ;; In RCS, a locked revision will look like "revision N.M\tlocked by: FOO". ! (defconst log-view-message-re "^\\(revision \\([.0-9]+\\)\\(?:\t.*\\)?\\|D \\([.0-9]+\\) .*\\)$") (defconst log-view-font-lock-keywords `((,log-view-file-re *************** *** 172,177 **** --- 172,181 ---- ;;; Change Log: ;; $Log: log-view.el,v $ + ;; Revision 1.6.14.2 2003/07/04 21:06:22 monnier + ;; (log-view-message-re): Remove Subversion support, mistakenly added + ;; without updating the rest of the code. + ;; ;; Revision 1.6.14.1 2003/01/19 07:03:18 spiegel ;; (log-view-message-re): The rev might be locked. ;; From MAILER-DAEMON Fri Jul 04 17:09:06 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YXnc-0007sb-Kn for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:08:56 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YXnR-0007D9-NW for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:08:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YXnI-0006rM-VO for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:08:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YXn8-0006mf-M0 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:08:26 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19YXm7-0004sh-Sj for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:07:23 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Fri, 04 Jul 2003 17:07:23 -0400 Subject: [Emacs-diffs] Changes to emacs/man/info.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 21:08:54 -0000 Index: emacs/man/info.texi diff -c emacs/man/info.texi:1.28 emacs/man/info.texi:1.29 *** emacs/man/info.texi:1.28 Wed Jul 2 21:59:39 2003 --- emacs/man/info.texi Fri Jul 4 17:07:23 2003 *************** *** 6,12 **** @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.28 2003/07/03 01:59:39 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU --- 6,12 ---- @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.29 2003/07/04 21:07:23 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU *************** *** 51,57 **** @end titlepage @ifnottex ! @node Top, Getting Started, (dir), (dir) @top Info: An Introduction The GNU Project distributes most of its on-line manuals in the --- 51,57 ---- @end titlepage @ifnottex ! @node Top @top Info: An Introduction The GNU Project distributes most of its on-line manuals in the *************** *** 132,138 **** * Help-Q:: Quitting Info @end menu ! @node Help-Small-Screen, Help, Getting Started, Getting Started @section Starting Info on a Small Screen @ifnotinfo --- 132,138 ---- * Help-Q:: Quitting Info @end menu ! @node Help-Small-Screen @section Starting Info on a Small Screen @ifnotinfo From MAILER-DAEMON Fri Jul 04 17:11:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YXox-0001z9-Hq for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:10:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YXov-0001w1-DV for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:10:17 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YXoq-0001ry-E6 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:10:13 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YXoR-0001Up-Ia for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:09:47 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YXnQ-0004uQ-Or for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:08:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 17:08:44 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog [EMACS_21_1_RC] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 21:10:18 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.2776.2.291 emacs/lisp/ChangeLog:1.2776.2.292 *** emacs/lisp/ChangeLog:1.2776.2.291 Fri Jun 20 22:32:35 2003 --- emacs/lisp/ChangeLog Fri Jul 4 17:08:34 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-04 Stefan Monnier + + * log-view.el (log-view-message-re): Remove Subversion support, + mistakenly added without updating the rest of the code. + 2003-06-21 Kenichi Handa * international/utf-16.el: Many name changes: utf-16-{be,le} -> *************** *** 20,27 **** (ccl-decode-mule-utf-16-be): Use utf-16-be-decode-loop (ccl-decode-mule-utf-16-le-with-signature) (ccl-decode-mule-utf-16-be-with-signature): New CCL programs. ! (utf-16-le-encode-loop, utf-16-be-encode-loop): New temporary ! variables. (ccl-encode-mule-utf-16-le): Use utf-16-le-encode-loop. (ccl-encode-mule-utf-16-be): Use utf-16-be-encode-loop (ccl-encode-mule-utf-16-le-with-signature) --- 25,31 ---- (ccl-decode-mule-utf-16-be): Use utf-16-be-decode-loop (ccl-decode-mule-utf-16-le-with-signature) (ccl-decode-mule-utf-16-be-with-signature): New CCL programs. ! (utf-16-le-encode-loop, utf-16-be-encode-loop): New temporary vars. (ccl-encode-mule-utf-16-le): Use utf-16-le-encode-loop. (ccl-encode-mule-utf-16-be): Use utf-16-be-encode-loop (ccl-encode-mule-utf-16-le-with-signature) *************** *** 53,60 **** 2003-04-23 Kenichi Handa ! * language/devanagari.el ("Devanagari"): Documentation string ! modified. 2003-04-12 Stefan Monnier --- 57,63 ---- 2003-04-23 Kenichi Handa ! * language/devanagari.el ("Devanagari"): Documentation string modified. 2003-04-12 Stefan Monnier From MAILER-DAEMON Fri Jul 04 17:42:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YYJo-000809-PZ for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:42:12 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YYJm-0007zc-Mm for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:42:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YYJl-0007zQ-JQ for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:42:10 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YYIn-0007h0-Jo for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:41:09 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19YYHm-0000Qt-2N for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:40:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Fri, 04 Jul 2003 17:40:06 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 21:42:11 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5256 emacs/lisp/ChangeLog:1.5257 *** emacs/lisp/ChangeLog:1.5256 Fri Jul 4 14:29:49 2003 --- emacs/lisp/ChangeLog Fri Jul 4 17:40:04 2003 *************** *** 1,3 **** --- 1,9 ---- + 2003-07-05 Kim F. Storm + + * info.el: Disable paragraph refilling. + (Info-refill-paragraphs): New defcustom. + (Info-fontify-node): Use it. + 2003-07-04 Stefan Monnier * font-core.el (font-lock-defaults-alist): Remove obsolete entries. From MAILER-DAEMON Fri Jul 04 17:43:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YYKx-0008Lo-Gn for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:43:23 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YYKv-0008LY-QD for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:43:21 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YYKu-0008LI-IV for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:43:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YYJ3-0007lH-Vo for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:41:26 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19YYI3-0000RS-4U for emacs-diffs@gnu.org; Fri, 04 Jul 2003 17:40:23 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Fri, 04 Jul 2003 17:40:23 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 21:43:22 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.359 emacs/lisp/info.el:1.360 *** emacs/lisp/info.el:1.359 Tue Jul 1 20:57:20 2003 --- emacs/lisp/info.el Fri Jul 4 17:40:22 2003 *************** *** 162,167 **** --- 162,175 ---- (other :tag "Replace only tag" tag)) :group 'info) + (defcustom Info-refill-paragraphs nil + "*If non-nil, attempt to refill paragraphs with hidden references. + This refilling may accidentally remove explicit line breaks in the info + file, so be prepared for a few surprises if you enable this feature." + :version "21.4" + :type 'boolean + :group 'info) + (defcustom Info-mode-hook ;; Try to obey obsolete Info-fontify settings. (unless (and (boundp 'Info-fontify) (null Info-fontify)) *************** *** 2905,2931 **** (save-excursion (goto-char (match-beginning 1)) (insert other-tag))) ! (when (or hide-tag (eq Info-hide-note-references t)) (push (set-marker (make-marker) start) paragraph-markers))))) ! (let ((fill-nobreak-invisible t) ! (fill-individual-varying-indent nil) ! (paragraph-start "\f\\|[ \t]*[-*]\\|[ \t]*$") ! (paragraph-separate ".*\\.[ \t]*\n[ \t]\\|[ \t]*[-*]\\|[ \t\f]*$") ! (adaptive-fill-mode nil)) ! (goto-char (point-max)) ! (while paragraph-markers ! (let ((m (car paragraph-markers))) ! (setq paragraph-markers (cdr paragraph-markers)) ! (when (< m (point)) ! (goto-char m) ! (beginning-of-line) ! (let ((beg (point))) ! (when (zerop (forward-paragraph)) ! (fill-individual-paragraphs beg (point) nil nil) ! (goto-char beg)))) ! (set-marker m nil)))) (goto-char (point-min)) (when (and (search-forward "\n* Menu:" nil t) --- 2913,2942 ---- (save-excursion (goto-char (match-beginning 1)) (insert other-tag))) ! (when (and Info-refill-paragraphs ! (or hide-tag (eq Info-hide-note-references t))) (push (set-marker (make-marker) start) paragraph-markers))))) ! (when (and Info-refill-paragraphs ! paragraph-markers) ! (let ((fill-nobreak-invisible t) ! (fill-individual-varying-indent nil) ! (paragraph-start "\f\\|[ \t]*[-*]\\|[ \t]*$") ! (paragraph-separate ".*\\.[ \t]*\n[ \t]\\|[ \t]*[-*]\\|[ \t\f]*$") ! (adaptive-fill-mode nil)) ! (goto-char (point-max)) ! (while paragraph-markers ! (let ((m (car paragraph-markers))) ! (setq paragraph-markers (cdr paragraph-markers)) ! (when (< m (point)) ! (goto-char m) ! (beginning-of-line) ! (let ((beg (point))) ! (when (zerop (forward-paragraph)) ! (fill-individual-paragraphs beg (point) nil nil) ! (goto-char beg)))) ! (set-marker m nil))))) (goto-char (point-min)) (when (and (search-forward "\n* Menu:" nil t) From MAILER-DAEMON Fri Jul 04 18:23:17 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YYxV-0002XD-MA for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:23:13 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YYxM-0002Iw-OE for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:23:04 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YYx8-0001bF-37 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:22:55 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YYx7-0001ZT-7o for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:22:49 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YYw6-0003PK-4z for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:21:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 18:21:46 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/vc-svn.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 22:23:06 -0000 Index: emacs/lisp/vc-svn.el diff -c emacs/lisp/vc-svn.el:1.9 emacs/lisp/vc-svn.el:1.10 *** emacs/lisp/vc-svn.el:1.9 Wed May 14 15:38:39 2003 --- emacs/lisp/vc-svn.el Fri Jul 4 18:21:45 2003 *************** *** 81,93 **** :type '(repeat string) :group 'vc) ! (defcustom vc-svn-use-edit nil "*Non-nil means to use `svn edit' to \"check out\" a file. This is only meaningful if you don't use the implicit checkout model \(i.e. if you have $SVNREAD set)." ! :type 'boolean ! :version "21.4" ! :group 'vc) ;;; ;;; State-querying functions --- 81,95 ---- :type '(repeat string) :group 'vc) ! (defconst vc-svn-use-edit nil ! ;; Subversion does not provide this feature (yet). "*Non-nil means to use `svn edit' to \"check out\" a file. This is only meaningful if you don't use the implicit checkout model \(i.e. if you have $SVNREAD set)." ! ;; :type 'boolean ! ;; :version "21.4" ! ;; :group 'vc ! ) ;;; ;;; State-querying functions *************** *** 151,156 **** --- 153,161 ---- ;; It looks like Subversion has no equivalent of CVSREAD. 'implicit) + ;; vc-svn-mode-line-string doesn't exist because the default implementation + ;; works just fine. + (defun vc-svn-dired-state-info (file) "SVN-specific version of `vc-dired-state-info'." (let ((svn-state (vc-state file))) *************** *** 171,181 **** `vc-register-switches' and `vc-svn-register-switches' are passed to the SVN command (in that order)." ! (apply 'vc-svn-command nil 0 file ! "add" ! ;; (and comment (string-match "[^\t\n ]" comment) ! ;; (concat "-m" comment)) ! (vc-switches 'SVN 'register))) (defun vc-svn-responsible-p (file) "Return non-nil if SVN thinks it is responsible for FILE." --- 176,182 ---- `vc-register-switches' and `vc-svn-register-switches' are passed to the SVN command (in that order)." ! (apply 'vc-svn-command nil 0 file "add" (vc-switches 'SVN 'register))) (defun vc-svn-responsible-p (file) "Return non-nil if SVN thinks it is responsible for FILE." *************** *** 240,252 **** ;; Check out a particular version (or recreate the file). (vc-file-setprop file 'vc-workfile-version nil) (apply 'vc-svn-command nil 0 file - "-w" "update" ;; default for verbose checkout: clear the sticky tag so ;; that the actual update will get the head of the trunk ! (if (or (not rev) (string= rev "")) ! "-A" ! (concat "-r" rev)) switches))) (defun vc-svn-delete-file (file) --- 241,253 ---- ;; Check out a particular version (or recreate the file). (vc-file-setprop file 'vc-workfile-version nil) (apply 'vc-svn-command nil 0 file "update" ;; default for verbose checkout: clear the sticky tag so ;; that the actual update will get the head of the trunk ! (cond ! ((null rev) "-rBASE") ! ((or (eq rev t) (equal rev "")) nil) ! (t (concat "-r" rev))) switches))) (defun vc-svn-delete-file (file) *************** *** 376,404 **** (defun vc-svn-diff-tree (dir &optional rev1 rev2) "Diff all files at and below DIR." ! (with-current-buffer "*vc-diff*" ! (setq default-directory dir) ! (if (vc-stay-local-p dir) ! ;; local diff: do it filewise, and only for files that are modified ! (vc-file-tree-walk ! dir ! (lambda (f) ! (vc-exec-after ! `(let ((coding-system-for-read (vc-coding-system-for-diff ',f))) ! ;; possible optimization: fetch the state of all files ! ;; in the tree via vc-svn-dir-state-heuristic ! (unless (vc-up-to-date-p ',f) ! (message "Looking at %s" ',f) ! (vc-diff-internal ',f ',rev1 ',rev2)))))) ! ;; svn diff: use a single call for the entire tree ! (let ((coding-system-for-read (or coding-system-for-read 'undecided)) ! (switches (vc-switches 'SVN 'diff))) ! (apply 'vc-svn-command "*vc-diff*" 1 nil "diff" ! (append ! (when rev1 ! (list "-r" (if rev2 (concat rev1 ":" rev2) rev1))) ! (when switches ! (list "-x" (mapconcat 'identity switches " "))))))))) ;;; ;;; Snapshot system --- 377,383 ---- (defun vc-svn-diff-tree (dir &optional rev1 rev2) "Diff all files at and below DIR." ! (vc-svn-diff (file-name-as-directory dir) rev1 rev2)) ;;; ;;; Snapshot system *************** *** 407,452 **** (defun vc-svn-create-snapshot (dir name branchp) "Assign to DIR's current version a given NAME. If BRANCHP is non-nil, the name is created as a branch (and the current ! workspace is immediately moved to that new branch)." ! (vc-svn-command nil 0 dir "tag" "-c" (if branchp "-b") name) ! (when branchp (vc-svn-command nil 0 dir "update" "-r" name))) (defun vc-svn-retrieve-snapshot (dir name update) "Retrieve a snapshot at and below DIR. NAME is the name of the snapshot; if it is empty, do a `svn update'. ! If UPDATE is non-nil, then update (resynch) any affected buffers." ! (with-current-buffer (get-buffer-create "*vc*") ! (let ((default-directory dir) ! (sticky-tag)) ! (erase-buffer) ! (if (or (not name) (string= name "")) ! (vc-svn-command t 0 nil "update") ! (vc-svn-command t 0 nil "update" "-r" name) ! (setq sticky-tag name)) ! (when update ! (goto-char (point-min)) ! (while (not (eobp)) ! (if (looking-at "\\([CMUP]\\) \\(.*\\)") ! (let* ((file (expand-file-name (match-string 2) dir)) ! (state (match-string 1)) ! (buffer (find-buffer-visiting file))) ! (when buffer ! (cond ! ((or (string= state "U") ! (string= state "P")) ! (vc-file-setprop file 'vc-state 'up-to-date) ! (vc-file-setprop file 'vc-workfile-version nil) ! (vc-file-setprop file 'vc-checkout-time ! (nth 5 (file-attributes file)))) ! ((or (string= state "M") ! (string= state "C")) ! (vc-file-setprop file 'vc-state 'edited) ! (vc-file-setprop file 'vc-workfile-version nil) ! (vc-file-setprop file 'vc-checkout-time 0))) ! (vc-file-setprop file 'vc-svn-sticky-tag sticky-tag) ! (vc-resynch-buffer file t t)))) ! (forward-line 1)))))) ! ;;; ;;; Miscellaneous --- 386,404 ---- (defun vc-svn-create-snapshot (dir name branchp) "Assign to DIR's current version a given NAME. If BRANCHP is non-nil, the name is created as a branch (and the current ! workspace is immediately moved to that new branch). ! NAME is assumed to be a URL." ! (vc-svn-command nil 0 dir "copy" name) ! (when branchp (vc-svn-retrieve-snapshot dir name nil))) (defun vc-svn-retrieve-snapshot (dir name update) "Retrieve a snapshot at and below DIR. NAME is the name of the snapshot; if it is empty, do a `svn update'. ! If UPDATE is non-nil, then update (resynch) any affected buffers. ! NAME is assumed to be a URL." ! (vc-svn-command nil 0 dir "switch" name) ! ;; FIXME: parse the output and obey `update'. ! ) ;;; ;;; Miscellaneous From MAILER-DAEMON Fri Jul 04 18:41:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YZFP-0002j3-H9 for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:41:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YZFL-0002Tk-1B for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:41:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YZFH-0002Jl-LA for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:41:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YZFB-0001ze-Rd for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:41:29 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YZEA-0004sM-Vn for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:40:26 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 18:40:27 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/vc-cvs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 22:41:41 -0000 Index: emacs/lisp/vc-cvs.el diff -c emacs/lisp/vc-cvs.el:1.61 emacs/lisp/vc-cvs.el:1.62 *** emacs/lisp/vc-cvs.el:1.61 Fri May 23 13:57:29 2003 --- emacs/lisp/vc-cvs.el Fri Jul 4 18:40:26 2003 *************** *** 1,11 **** ;;; vc-cvs.el --- non-resident support for CVS version-control ! ;; Copyright (C) 1995,98,99,2000,2001,2002 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel ! ;; $Id: vc-cvs.el,v 1.61 2003/05/23 17:57:29 spiegel Exp $ ;; This file is part of GNU Emacs. --- 1,11 ---- ;;; vc-cvs.el --- non-resident support for CVS version-control ! ;; Copyright (C) 1995,98,99,2000,2001,02,2003 Free Software Foundation, Inc. ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel ! ;; $Id: vc-cvs.el,v 1.62 2003/07/04 22:40:26 monnier Exp $ ;; This file is part of GNU Emacs. *************** *** 191,197 **** (defun vc-cvs-state (file) "CVS-specific version of `vc-state'." ! (if (vc-cvs-stay-local-p file) (let ((state (vc-file-getprop file 'vc-state))) ;; If we should stay local, use the heuristic but only if ;; we don't have a more precise state already available. --- 191,197 ---- (defun vc-cvs-state (file) "CVS-specific version of `vc-state'." ! (if (vc-stay-local-p file) (let ((state (vc-file-getprop file 'vc-state))) ;; If we should stay local, use the heuristic but only if ;; we don't have a more precise state already available. *************** *** 217,223 **** "Find the CVS state of all files in DIR." ;; if DIR is not under CVS control, don't do anything. (when (file-readable-p (expand-file-name "CVS/Entries" dir)) ! (if (vc-cvs-stay-local-p dir) (vc-cvs-dir-state-heuristic dir) (let ((default-directory dir)) ;; Don't specify DIR in this command, the default-directory is --- 217,223 ---- "Find the CVS state of all files in DIR." ;; if DIR is not under CVS control, don't do anything. (when (file-readable-p (expand-file-name "CVS/Entries" dir)) ! (if (vc-stay-local-p dir) (vc-cvs-dir-state-heuristic dir) (let ((default-directory dir)) ;; Don't specify DIR in this command, the default-directory is *************** *** 286,291 **** --- 286,295 ---- `vc-register-switches' and `vc-cvs-register-switches' are passed to the CVS command (in that order)." + (when (and (not (vc-cvs-responsible-p file)) + (vc-cvs-could-register file)) + ;; Register the directory if needed. + (vc-cvs-register (directory-file-name (file-name-directory file)))) (apply 'vc-cvs-command nil 0 file "add" (and comment (string-match "[^\t\n ]" comment) *************** *** 299,307 **** file (file-name-directory file))))) ! (defalias 'vc-cvs-could-register 'vc-cvs-responsible-p "Return non-nil if FILE could be registered in CVS. ! This is only possible if CVS is responsible for FILE's directory.") (defun vc-cvs-checkin (file rev comment) "CVS-specific version of `vc-backend-checkin'." --- 303,320 ---- file (file-name-directory file))))) ! (defun vc-cvs-could-register (file) "Return non-nil if FILE could be registered in CVS. ! This is only possible if CVS is managing FILE's directory or one of ! its parents." ! (let ((dir file)) ! (while (and (stringp dir) ! (not (equal dir (setq dir (file-name-directory dir)))) ! dir) ! (setq dir (if (file-directory-p ! (expand-file-name "CVS/Entries" dir)) ! t (directory-file-name dir)))) ! (eq dir t))) (defun vc-cvs-checkin (file rev comment) "CVS-specific version of `vc-backend-checkin'." *************** *** 443,457 **** (defun vc-cvs-delete-file (file) (vc-cvs-command nil 0 file "remove" "-f")) - (defun vc-cvs-rename-file (old new) - ;; CVS doesn't know how to move files, so we just remove&add. - (condition-case nil - (add-name-to-file old new) - (error (rename-file old new))) - (vc-cvs-delete-file old) - (with-current-buffer (find-file-noselect new) - (vc-register))) - (defun vc-cvs-revert (file &optional contents-done) "Revert FILE to the version it was based on." (unless contents-done --- 456,461 ---- *************** *** 533,539 **** "Get change log associated with FILE." (vc-cvs-command nil ! (if (and (vc-cvs-stay-local-p file) (fboundp 'start-process)) 'async 0) file "log")) (defun vc-cvs-diff (file &optional oldvers newvers) --- 537,543 ---- "Get change log associated with FILE." (vc-cvs-command nil ! (if (and (vc-stay-local-p file) (fboundp 'start-process)) 'async 0) file "log")) (defun vc-cvs-diff (file &optional oldvers newvers) *************** *** 550,556 **** (append (vc-switches nil 'diff) '("/dev/null"))) ;; Even if it's empty, it's locally modified. 1) ! (let* ((async (and (vc-cvs-stay-local-p file) (fboundp 'start-process))) (status (apply 'vc-cvs-command "*vc-diff*" (if async 'async 1) file "diff" --- 554,560 ---- (append (vc-switches nil 'diff) '("/dev/null"))) ;; Even if it's empty, it's locally modified. 1) ! (let* ((async (and (vc-stay-local-p file) (fboundp 'start-process))) (status (apply 'vc-cvs-command "*vc-diff*" (if async 'async 1) file "diff" *************** *** 563,569 **** "Diff all files at and below DIR." (with-current-buffer "*vc-diff*" (setq default-directory dir) ! (if (vc-cvs-stay-local-p dir) ;; local diff: do it filewise, and only for files that are modified (vc-file-tree-walk dir --- 567,573 ---- "Diff all files at and below DIR." (with-current-buffer "*vc-diff*" (setq default-directory dir) ! (if (vc-stay-local-p dir) ;; local diff: do it filewise, and only for files that are modified (vc-file-tree-walk dir *************** *** 673,679 **** ;;; Miscellaneous ;;; ! (defalias 'vc-cvs-make-version-backups-p 'vc-cvs-stay-local-p "Return non-nil if version backups should be made for FILE.") (defun vc-cvs-check-headers () --- 677,683 ---- ;;; Miscellaneous ;;; ! (defalias 'vc-cvs-make-version-backups-p 'vc-stay-local-p "Return non-nil if version backups should be made for FILE.") (defun vc-cvs-check-headers () *************** *** 698,753 **** (append vc-cvs-global-switches flags)))) ! (defun vc-cvs-stay-local-p (file) ! "Return non-nil if VC should stay local when handling FILE. ! See `vc-cvs-stay-local'." ! (when vc-cvs-stay-local ! (let* ((dirname (if (file-directory-p file) ! (directory-file-name file) ! (file-name-directory file))) ! (prop ! (or (vc-file-getprop dirname 'vc-cvs-stay-local-p) ! (vc-file-setprop ! dirname 'vc-cvs-stay-local-p ! (let ((rootname (expand-file-name "CVS/Root" dirname))) ! (when (file-readable-p rootname) ! (with-temp-buffer ! (let ((coding-system-for-read ! (or file-name-coding-system ! default-file-name-coding-system))) ! (vc-insert-file rootname)) ! (goto-char (point-min)) ! (let* ((cvs-root-members ! (vc-cvs-parse-root ! (buffer-substring (point) ! (line-end-position)))) ! (hostname (nth 2 cvs-root-members))) ! (if (not hostname) ! 'no ! (let* ((stay-local t) ! (rx ! (cond ! ;; vc-cvs-stay-local: rx ! ((stringp vc-cvs-stay-local) ! vc-cvs-stay-local) ! ;; vc-cvs-stay-local: '( [except] rx ... ) ! ((consp vc-cvs-stay-local) ! (mapconcat ! 'identity ! (if (not (eq (car vc-cvs-stay-local) ! 'except)) ! vc-cvs-stay-local ! (setq stay-local nil) ! (cdr vc-cvs-stay-local)) ! "\\|"))))) ! (if (not rx) ! 'yes ! (if (not (string-match rx hostname)) ! (setq stay-local (not stay-local))) ! (if stay-local ! 'yes ! 'no)))))))))))) ! (if (eq prop 'yes) t nil)))) (defun vc-cvs-parse-root (root) "Split CVS ROOT specification string into a list of fields. --- 702,722 ---- (append vc-cvs-global-switches flags)))) ! (defalias 'vc-cvs-stay-local-p 'vc-stay-local-p) ;Back-compatibility. ! ! (defun vc-cvs-repository-hostname (dirname) ! "Hostname of the CVS server associated to workarea DIRNAME." ! (let ((rootname (expand-file-name "CVS/Root" dirname))) ! (when (file-readable-p rootname) ! (with-temp-buffer ! (let ((coding-system-for-read ! (or file-name-coding-system ! default-file-name-coding-system))) ! (vc-insert-file rootname)) ! (goto-char (point-min)) ! (nth 2 (vc-cvs-parse-root ! (buffer-substring (point) ! (line-end-position)))))))) (defun vc-cvs-parse-root (root) "Split CVS ROOT specification string into a list of fields. From MAILER-DAEMON Fri Jul 04 18:47:35 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YZKe-0002nB-LP for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:47:08 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YZKc-0002kh-D5 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:47:06 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YZKa-0002k2-Rl for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:47:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YZK2-0002Ml-1g for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:46:30 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YZJ1-0004xh-5f for emacs-diffs@gnu.org; Fri, 04 Jul 2003 18:45:27 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 18:45:27 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/newcomment.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 22:47:07 -0000 Index: emacs/lisp/newcomment.el diff -c emacs/lisp/newcomment.el:1.66 emacs/lisp/newcomment.el:1.67 *** emacs/lisp/newcomment.el:1.66 Fri May 30 16:06:40 2003 --- emacs/lisp/newcomment.el Fri Jul 4 18:45:26 2003 *************** *** 669,674 **** --- 669,675 ---- (let* ((numarg (prefix-numeric-value arg)) (ccs comment-continue) (srei (comment-padright ccs 're)) + (csre (comment-padright comment-start 're)) (sre (and srei (concat "^\\s-*?\\(" srei "\\)"))) spt) (while (and (< (point) end) *************** *** 697,704 **** (> (- (point) (point-min) (length comment-start)) 7)) (> (count-lines (point-min) (point-max)) 2)) (setq box t)) ! (when (looking-at (regexp-quote comment-padding)) ! (goto-char (match-end 0))) (when (and sre (looking-at (concat "\\s-*\n\\s-*" srei))) (goto-char (match-end 0))) (if (null arg) (delete-region (point-min) (point)) --- 698,708 ---- (> (- (point) (point-min) (length comment-start)) 7)) (> (count-lines (point-min) (point-max)) 2)) (setq box t)) ! ;; Skip the padding. Padding can come from comment-padding and/or ! ;; from comment-start, so we first check comment-start. ! (if (or (save-excursion (goto-char (point-min)) (looking-at csre)) ! (looking-at (regexp-quote comment-padding))) ! (goto-char (match-end 0))) (when (and sre (looking-at (concat "\\s-*\n\\s-*" srei))) (goto-char (match-end 0))) (if (null arg) (delete-region (point-min) (point)) From MAILER-DAEMON Fri Jul 04 19:09:20 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YZfZ-0007Wa-Fh for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:08:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YZex-0006XP-1m for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:08:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YZeo-0006Ng-Rl for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:08:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YZdX-0005rN-He for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:06:39 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YZcW-0005MT-7S for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:05:36 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 19:05:36 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 23:08:44 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.360 emacs/lisp/info.el:1.361 *** emacs/lisp/info.el:1.360 Fri Jul 4 17:40:22 2003 --- emacs/lisp/info.el Fri Jul 4 19:05:35 2003 *************** *** 910,916 **** nodename end) (re-search-backward "^\^_") (search-forward "Node: ") ! (setq nodename (Info-following-node-name)) (search-forward "\n\^_" nil 'move) (beginning-of-line) (setq end (point)) --- 910,918 ---- nodename end) (re-search-backward "^\^_") (search-forward "Node: ") ! (setq nodename ! (and (looking-at (Info-following-node-name-re)) ! (match-string 1))) (search-forward "\n\^_" nil 'move) (beginning-of-line) (setq end (point)) *************** *** 1209,1216 **** nodename) (setq filename (if (= (match-beginning 1) (match-end 1)) "" ! (substring nodename (match-beginning 2) (match-end 2))) ! nodename (substring nodename (match-beginning 3) (match-end 3))) (let ((trim (string-match "\\s *\\'" filename))) (if trim (setq filename (substring filename 0 trim)))) (let ((trim (string-match "\\s *\\'" nodename))) --- 1211,1218 ---- nodename) (setq filename (if (= (match-beginning 1) (match-end 1)) "" ! (match-string 2 nodename)) ! nodename (match-string 3 nodename)) (let ((trim (string-match "\\s *\\'" filename))) (if trim (setq filename (substring filename 0 trim)))) (let ((trim (string-match "\\s *\\'" nodename))) *************** *** 1393,1427 **** (defun Info-extract-pointer (name &optional errorname) "Extract the value of the node-pointer named NAME. If there is none, use ERRORNAME in the error message; ! if ERRORNAME is nil, just return nil. ! Bind this in case the user sets it to nil." (let ((case-fold-search t)) (save-excursion ! (save-restriction ! (goto-char (point-min)) ! (let ((bound (point))) ! (forward-line 1) ! (cond ((re-search-backward (concat name ":") bound t) ! (goto-char (match-end 0)) ! (Info-following-node-name)) ! ((not (eq errorname t)) ! (error "Node has no %s" ! (capitalize (or errorname name)))))))))) ! (defun Info-following-node-name (&optional allowedchars) ! "Return the node name in the buffer following point. ALLOWEDCHARS, if non-nil, goes within [...] to make a regexp ! saying which chars may appear in the node name." ! (skip-chars-forward " \t") ! (buffer-substring-no-properties ! (point) ! (progn ! (while (looking-at (concat "[" (or allowedchars "^,\t\n") "]")) ! (skip-chars-forward (concat (or allowedchars "^,\t\n") "(")) ! (if (looking-at "(") ! (skip-chars-forward "^)"))) ! (skip-chars-backward " ") ! (point)))) (defun Info-next () "Go to the next node of this node." --- 1395,1427 ---- (defun Info-extract-pointer (name &optional errorname) "Extract the value of the node-pointer named NAME. If there is none, use ERRORNAME in the error message; ! if ERRORNAME is nil, just return nil." ! ;; Bind this in case the user sets it to nil. (let ((case-fold-search t)) (save-excursion ! (goto-char (point-min)) ! (let ((bound (point))) ! (forward-line 1) ! (cond ((re-search-backward ! (concat name ":" (Info-following-node-name-re)) bound t) ! (match-string 1)) ! ((not (eq errorname t)) ! (error "Node has no %s" ! (capitalize (or errorname name))))))))) ! (defun Info-following-node-name-re (&optional allowedchars) ! "Return a regexp matching a node name. ALLOWEDCHARS, if non-nil, goes within [...] to make a regexp ! saying which chars may appear in the node name. ! Submatch 1 is the complete node name. ! Submatch 2 if non-nil is the parenthesized file name part of the node name. ! Submatch 3 is the local part of the node name. ! End of submatch 0, 1, and 3 are the same, so you can safely concat." ! (concat "[ \t]*" ;Skip leading space. ! "\\(\\(([^)]+)\\)?" ;Node name can start with a file name. ! "\\([" (or allowedchars "^,\t\n") "]*" ;Any number of allowed chars. ! "[" (or allowedchars "^,\t\n") " ]" ;The last char can't be a space. ! "\\|\\)\\)")) ;Allow empty node names. (defun Info-next () "Go to the next node of this node." *************** *** 1480,1488 **** (goto-char (point-min)) (while (re-search-forward "\\*note[ \n\t]*\\([^:]*\\):" nil t) ! (setq str (buffer-substring-no-properties ! (match-beginning 1) ! (1- (point)))) ;; See if this one should be the default. (and (null default) (<= (match-beginning 0) start-point) --- 1480,1486 ---- (goto-char (point-min)) (while (re-search-forward "\\*note[ \n\t]*\\([^:]*\\):" nil t) ! (setq str (match-string-no-properties 1)) ;; See if this one should be the default. (and (null default) (<= (match-beginning 0) start-point) *************** *** 1502,1524 **** (if (eq default t) (setq default str)) (if (eq alt-default t) (setq alt-default str)) ;; Don't add this string if it's a duplicate. ! ;; We use a loop instead of "(assoc str completions)" because ! ;; we want to do a case-insensitive compare. ! (let ((tail completions) ! (tem (downcase str))) ! (while (and tail ! (not (string-equal tem (downcase (car (car tail)))))) ! (setq tail (cdr tail))) ! (or tail ! (setq completions ! (cons (cons str nil) ! completions)))))) ;; If no good default was found, try an alternate. (or default (setq default alt-default)) ;; If only one cross-reference found, then make it default. (if (eq (length completions) 1) ! (setq default (car (car completions)))) (if completions (let ((input (completing-read (if default (concat --- 1500,1513 ---- (if (eq default t) (setq default str)) (if (eq alt-default t) (setq alt-default str)) ;; Don't add this string if it's a duplicate. ! (or (assoc-string str completions t) ! (push str completions)))) ;; If no good default was found, try an alternate. (or default (setq default alt-default)) ;; If only one cross-reference found, then make it default. (if (eq (length completions) 1) ! (setq default (car completions))) (if completions (let ((input (completing-read (if default (concat *************** *** 1551,1570 **** (setq i (+ i 1))) (Info-goto-node target))) (defun Info-extract-menu-node-name (&optional multi-line) (skip-chars-forward " \t\n") ! (let ((beg (point)) ! str) ! (while (progn ! (skip-chars-forward "^:") ! (forward-char 1) ! (not (looking-at ":*[,.;() \t\n]")))) ! (setq str ! (if (looking-at ":") ! (buffer-substring-no-properties beg (1- (point))) ! (skip-chars-forward " \t\n") ! (Info-following-node-name (if multi-line "^.,\t" "^.,\t\n")))) ! (replace-regexp-in-string "[ \n]+" " " str))) ;; No one calls this. ;;(defun Info-menu-item-sequence (list) --- 1540,1560 ---- (setq i (+ i 1))) (Info-goto-node target))) + (defconst Info-menu-entry-name-re "\\(?:[^:\n]+\\|:[^,.;() \t\n]\\)*" + "Regexp that matches a menu entry name upto but not including the colon. + Because of ambiguities, this should be concatenated with something like + `:' and `Info-following-node-name-re'.") + (defun Info-extract-menu-node-name (&optional multi-line) (skip-chars-forward " \t\n") ! (when (looking-at (concat Info-menu-entry-name-re ":\\(:\\|" ! (Info-following-node-name-re ! (if multi-line "^.,\t" "^.,\t\n")) "\\)")) ! (replace-regexp-in-string ! "[ \n]+" " " ! (or (match-string 2) ! ;; If the node name is the menu entry name (using `entry::'). ! (buffer-substring (match-beginning 0) (1- (match-beginning 1))))))) ;; No one calls this. ;;(defun Info-menu-item-sequence (list) *************** *** 1576,1582 **** (defvar Info-complete-next-re nil) (defvar Info-complete-cache nil) ! (defconst Info-node-spec-re "[^.,:(]*\\(([^)]*)[^.,:]*\\)?[,:.]" "Regexp to match the text after a : until the terminating `.'.") (defun Info-complete-menu-item (string predicate action) --- 1566,1573 ---- (defvar Info-complete-next-re nil) (defvar Info-complete-cache nil) ! (defconst Info-node-spec-re ! (concat (Info-following-node-name-re "^.,:") "[,:.]") "Regexp to match the text after a : until the terminating `.'.") (defun Info-complete-menu-item (string predicate action) *************** *** 1603,1609 **** (concat "\n\\* +" (regexp-quote string) ":") nil t) (let ((pattern (concat "\n\\* +\\(" (regexp-quote string) ! "[^\t\n]*?\\):" Info-node-spec-re)) completions) ;; Check the cache. (if (and (equal (nth 0 Info-complete-cache) Info-current-file) --- 1594,1600 ---- (concat "\n\\* +" (regexp-quote string) ":") nil t) (let ((pattern (concat "\n\\* +\\(" (regexp-quote string) ! Info-menu-entry-name-re "\\):" Info-node-spec-re)) completions) ;; Check the cache. (if (and (equal (nth 0 Info-complete-cache) Info-current-file) *************** *** 2382,2390 **** (save-excursion (goto-char (point-min)) (while (re-search-forward "\\*note[ \n\t]*\\([^:]*\\):" nil t) ! (setq str (buffer-substring ! (match-beginning 1) ! (1- (point)))) (setq i 0) (while (setq i (string-match "[ \n\t]+" str i)) (setq str (concat (substring str 0 i) " " --- 2373,2379 ---- (save-excursion (goto-char (point-min)) (while (re-search-forward "\\*note[ \n\t]*\\([^:]*\\):" nil t) ! (setq str (match-string 1)) (setq i 0) (while (setq i (string-match "[ \n\t]+" str i)) (setq str (concat (substring str 0 i) " " *************** *** 2807,2813 **** (let* ((nbeg (match-beginning 2)) (nend (match-end 2)) (tbeg (match-beginning 1)) ! (tag (buffer-substring tbeg (match-end 1)))) (if (string-equal tag "Node") (put-text-property nbeg nend 'font-lock-face 'info-header-node) (put-text-property nbeg nend 'font-lock-face 'info-header-xref) --- 2796,2802 ---- (let* ((nbeg (match-beginning 2)) (nend (match-end 2)) (tbeg (match-beginning 1)) ! (tag (match-string 1))) (if (string-equal tag "Node") (put-text-property nbeg nend 'font-lock-face 'info-header-node) (put-text-property nbeg nend 'font-lock-face 'info-header-xref) *************** *** 2826,2832 **** ((equal tag "Up") Info-up-link-keymap)))))) (when Info-use-header-line (goto-char (point-min)) ! (let ((header-end (save-excursion (end-of-line) (point))) header) ;; If we find neither Next: nor Prev: link, show the entire ;; node header. Otherwise, don't show the File: and Node: --- 2815,2821 ---- ((equal tag "Up") Info-up-link-keymap)))))) (when Info-use-header-line (goto-char (point-min)) ! (let ((header-end (line-end-position)) header) ;; If we find neither Next: nor Prev: link, show the entire ;; node header. Otherwise, don't show the File: and Node: *************** *** 2838,2844 **** (progn (goto-char (match-beginning 1)) (setq header (buffer-substring (point) header-end))) ! (if (re-search-forward "node:[ \t]*[^ \t]+[ \t]*" nil t) (setq header (concat "No next, prev or up links -- " (buffer-substring (point) header-end))) --- 2827,2833 ---- (progn (goto-char (match-beginning 1)) (setq header (buffer-substring (point) header-end))) ! (if (re-search-forward "node:[ \t]*[^ \t]+[ \t]*" header-end t) (setq header (concat "No next, prev or up links -- " (buffer-substring (point) header-end))) *************** *** 2945,2954 **** (< (- (point-max) (point)) Info-fontify-maximum-menu-size)) (let ((n 0) cont) ! (while (re-search-forward (concat "^\\* +\\([^:\t\n]*\\)\\(:" ! Info-node-spec-re ! "\\([ \t]*\\)\\)") ! nil t) (setq n (1+ n)) (if (and (<= n 9) (zerop (% n 3))) ; visual aids to help with 1-9 keys (put-text-property (match-beginning 0) --- 2934,2943 ---- (< (- (point-max) (point)) Info-fontify-maximum-menu-size)) (let ((n 0) cont) ! (while (re-search-forward ! (concat "^\\* +\\(" Info-menu-entry-name-re "\\)\\(:" ! Info-node-spec-re "\\([ \t]*\\)\\)") ! nil t) (setq n (1+ n)) (if (and (<= n 9) (zerop (% n 3))) ; visual aids to help with 1-9 keys (put-text-property (match-beginning 0) *************** *** 2964,2974 **** '(font-lock-face info-xref mouse-face highlight)))) (when (eq Info-hide-note-references t) ! (put-text-property (match-beginning 2) (1- (match-end 4)) 'invisible t) ;; We need a stretchable space like :align-to but with ;; a minimum value. ! (put-text-property (1- (match-end 4)) (match-end 4) 'display (if (>= 22 (- (match-end 1) (match-beginning 0))) '(space :align-to 24) --- 2953,2963 ---- '(font-lock-face info-xref mouse-face highlight)))) (when (eq Info-hide-note-references t) ! (put-text-property (match-beginning 2) (1- (match-end 6)) 'invisible t) ;; We need a stretchable space like :align-to but with ;; a minimum value. ! (put-text-property (1- (match-end 6)) (match-end 6) 'display (if (>= 22 (- (match-end 1) (match-beginning 0))) '(space :align-to 24) From MAILER-DAEMON Fri Jul 04 19:32:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Ya2A-0000RC-6m for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:32:06 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Ya1u-0008G5-Er for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:31:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Ya1f-0007PH-1G for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:31:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Ya1c-0007GY-Ol for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:31:32 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19Ya0b-0000Oy-MI for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:30:29 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 19:30:29 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/pcvs-parse.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 23:32:03 -0000 Index: emacs/lisp/pcvs-parse.el diff -c emacs/lisp/pcvs-parse.el:1.18 emacs/lisp/pcvs-parse.el:1.19 *** emacs/lisp/pcvs-parse.el:1.18 Wed May 14 11:00:31 2003 --- emacs/lisp/pcvs-parse.el Fri Jul 4 19:30:29 2003 *************** *** 457,468 **** (type (if nofile '(UP-TO-DATE . REMOVED) 'UP-TO-DATE))) (cvs-match "File had conflicts on merge$" (type 'MODIFIED)) (cvs-match ".*[Cc]onflict.*$" (type 'CONFLICT)) ! (cvs-match "Locally Added$" (type 'ADDED)) (cvs-match "Locally Removed$" (type 'REMOVED)) (cvs-match "Locally Modified$" (type 'MODIFIED)) (cvs-match "Needs Merge$" (type 'NEED-MERGE)) (cvs-match "Entry Invalid" (type '(NEED-MERGE . REMOVED))) ! (cvs-match "Unknown$" (type 'UNKNOWN))) (cvs-match "$") (cvs-or (cvs-match " *Version:[ \t]*\\([0-9.]+\\).*$" (base-rev 1)) --- 457,468 ---- (type (if nofile '(UP-TO-DATE . REMOVED) 'UP-TO-DATE))) (cvs-match "File had conflicts on merge$" (type 'MODIFIED)) (cvs-match ".*[Cc]onflict.*$" (type 'CONFLICT)) ! (cvs-match "Locally Added$" (type 'ADDED)) (cvs-match "Locally Removed$" (type 'REMOVED)) (cvs-match "Locally Modified$" (type 'MODIFIED)) (cvs-match "Needs Merge$" (type 'NEED-MERGE)) (cvs-match "Entry Invalid" (type '(NEED-MERGE . REMOVED))) ! (cvs-match ".*$" (type 'UNKNOWN))) (cvs-match "$") (cvs-or (cvs-match " *Version:[ \t]*\\([0-9.]+\\).*$" (base-rev 1)) *************** *** 475,486 **** (cvs-match " *Repository revision:[ \t]*\\([0-9.]+\\)[ \t]*\\(.*\\)$" (head-rev 1)) (cvs-match " *Repository revision:.*")) (cvs-or ! (and;;sometimes those fields are missing ! (cvs-match " *Sticky Tag:[ \t]*\\(.*\\)$") ; FIXME: use it ! (cvs-match " *Sticky Date:[ \t]*\\(.*\\)$") ; FIXME: use it ! (cvs-match " *Sticky Options:[ \t]*\\(.*\\)$")) ; FIXME: use it t) (cvs-match "$") ;; ignore the tags-listing in the case of `status -v' (cvs-or (cvs-match " *Existing Tags:\n\\(\t.*\n\\)*$") t) --- 475,489 ---- (cvs-match " *Repository revision:[ \t]*\\([0-9.]+\\)[ \t]*\\(.*\\)$" (head-rev 1)) (cvs-match " *Repository revision:.*")) + (cvs-or (cvs-match " *Expansion option:.*") t) ;Optional CVSNT thingie. + (cvs-or (cvs-match " *Commit Identifier:.*") t) ;Optional CVSNT thingie. (cvs-or ! (and ;; Sometimes those fields are missing. ! (cvs-match " *Sticky Tag:[ \t]*\\(.*\\)$") ; FIXME: use it. ! (cvs-match " *Sticky Date:[ \t]*\\(.*\\)$") ; FIXME: use it. ! (cvs-match " *Sticky Options:[ \t]*\\(.*\\)$")) ; FIXME: use it. t) + (cvs-or (cvs-match " *Merge From:.*") t) ;Optional CVSNT thingie. (cvs-match "$") ;; ignore the tags-listing in the case of `status -v' (cvs-or (cvs-match " *Existing Tags:\n\\(\t.*\n\\)*$") t) From MAILER-DAEMON Fri Jul 04 19:51:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YaJW-0000sM-Nn for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:50:02 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YaIp-0007tK-Ew for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:49:19 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YaIT-0006h2-KF for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:48:58 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YaIO-0006PI-42 for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:48:52 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YaHN-0000f9-2Q for emacs-diffs@gnu.org; Fri, 04 Jul 2003 19:47:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 19:47:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/bytecomp.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Fri, 04 Jul 2003 23:50:00 -0000 Index: emacs/lisp/emacs-lisp/bytecomp.el diff -c emacs/lisp/emacs-lisp/bytecomp.el:2.134 emacs/lisp/emacs-lisp/bytecomp.el:2.135 *** emacs/lisp/emacs-lisp/bytecomp.el:2.134 Wed May 28 07:26:45 2003 --- emacs/lisp/emacs-lisp/bytecomp.el Fri Jul 4 19:47:48 2003 *************** *** 1,6 **** ;;; bytecomp.el --- compilation of Lisp code into byte code ! ;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1998, 2000, 2001, 2002 ;; Free Software Foundation, Inc. ;; Author: Jamie Zawinski --- 1,6 ---- ;;; bytecomp.el --- compilation of Lisp code into byte code ! ;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1998, 2000, 2001, 2002, 2003 ;; Free Software Foundation, Inc. ;; Author: Jamie Zawinski *************** *** 10,16 **** ;;; This version incorporates changes up to version 2.10 of the ;;; Zawinski-Furuseth compiler. ! (defconst byte-compile-version "$Revision: 2.134 $") ;; This file is part of GNU Emacs. --- 10,16 ---- ;;; This version incorporates changes up to version 2.10 of the ;;; Zawinski-Furuseth compiler. ! (defconst byte-compile-version "$Revision: 2.135 $") ;; This file is part of GNU Emacs. *************** *** 3614,3620 **** `(funcall '(lambda (,tmp) (defconst ,var ,tmp)) ,value)) ;; `defvar' sets `var' only when unbound. ! `(if (not (boundp ',var)) (setq ,var ,value))) (when (eq fun 'defconst) ;; This will signal an appropriate error at runtime. `(eval ',form))) --- 3614,3620 ---- `(funcall '(lambda (,tmp) (defconst ,var ,tmp)) ,value)) ;; `defvar' sets `var' only when unbound. ! `(if (not (default-boundp ',var)) (setq-default ,var ,value))) (when (eq fun 'defconst) ;; This will signal an appropriate error at runtime. `(eval ',form))) *************** *** 3984,3991 **** ;;; report metering (see the hacks in bytecode.c) (defun byte-compile-report-ops () - (defvar byte-code-meter) (with-output-to-temp-buffer "*Meter*" (set-buffer "*Meter*") (let ((i 0) n op off) --- 3984,3991 ---- ;;; report metering (see the hacks in bytecode.c) + (defvar byte-code-meter) (defun byte-compile-report-ops () (with-output-to-temp-buffer "*Meter*" (set-buffer "*Meter*") (let ((i 0) n op off) From MAILER-DAEMON Fri Jul 04 20:26:47 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Yasd-0002DG-Fe for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:26:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Yas4-0001Th-OX for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:25:44 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yaro-000183-Us for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:25:32 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YaqV-0008Ih-CB for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:24:07 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19YapU-0003DK-Gb for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:23:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 20:23:04 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/cl-macs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 00:26:17 -0000 Index: emacs/lisp/emacs-lisp/cl-macs.el diff -c emacs/lisp/emacs-lisp/cl-macs.el:1.41 emacs/lisp/emacs-lisp/cl-macs.el:1.42 *** emacs/lisp/emacs-lisp/cl-macs.el:1.41 Mon Jun 16 12:31:29 2003 --- emacs/lisp/emacs-lisp/cl-macs.el Fri Jul 4 20:23:04 2003 *************** *** 1,6 **** ;;; cl-macs.el --- Common Lisp macros -*-byte-compile-dynamic: t;-*- ! ;; Copyright (C) 1993 Free Software Foundation, Inc. ;; Author: Dave Gillespie ;; Version: 2.02 --- 1,6 ---- ;;; cl-macs.el --- Common Lisp macros -*-byte-compile-dynamic: t;-*- ! ;; Copyright (C) 1993, 2003 Free Software Foundation, Inc. ;; Author: Dave Gillespie ;; Version: 2.02 *************** *** 266,272 **** (nconc (let ((hdr (nreverse header))) (require 'help-fns) (cons (help-add-fundoc-usage ! (if (stringp (car hdr)) (pop hdr)) orig-args) hdr)) (list (nconc (list 'let* bind-lets) (nreverse bind-forms) body))))))) --- 266,277 ---- (nconc (let ((hdr (nreverse header))) (require 'help-fns) (cons (help-add-fundoc-usage ! (if (stringp (car hdr)) (pop hdr)) ! ;; orig-args can contain &cl-defs (an internal CL ! ;; thingy that I do not understand), so remove it. ! (let ((x (memq '&cl-defs orig-args))) ! (if (null x) orig-args ! (delq (car x) (remq (cadr x) orig-args))))) hdr)) (list (nconc (list 'let* bind-lets) (nreverse bind-forms) body))))))) From MAILER-DAEMON Fri Jul 04 20:38:52 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Yb4k-0002kK-Gi for mharc-emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:38:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Yb4d-0002Us-Tg for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:38:43 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yb3i-000829-5D for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:38:17 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Yb3W-0007g3-Nb for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:37:34 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19Yb2V-0004PW-Oj for emacs-diffs@gnu.org; Fri, 04 Jul 2003 20:36:31 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 04 Jul 2003 20:36:31 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 00:38:48 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5257 emacs/lisp/ChangeLog:1.5258 *** emacs/lisp/ChangeLog:1.5257 Fri Jul 4 17:40:04 2003 --- emacs/lisp/ChangeLog Fri Jul 4 20:36:30 2003 *************** *** 6,11 **** --- 6,55 ---- 2003-07-04 Stefan Monnier + * emacs-lisp/cl-macs.el (cl-transform-lambda): Strip &cl-defs + thingies from constructors created by defstruct. + + * emacs-lisp/bytecomp.el (byte-compile-defvar): Check and set + the default value of the variable. + (byte-code-meter): Move declaration to top level. + + * pcvs-parse.el (cvs-parse-status): Ignore extra fields from CVSNT. + + * info.el (Info-following-node-name-re): New fun. + (Info-following-node-name): Remove. + (Info-insert-dir): Use the new fun. + (Info-extract-pointer): Don't save restriction; use new fun. + (Info-menu-entry-name-re): New const. + (Info-menu-entry-name-re): Use it along with new fun. + (Info-node-spec-re): Use new fun. + (Info-complete-menu-item, Info-fontify-node): Use new const. + (Info-goto-node, Info-follow-reference, Info-menu-update): + Use match-string. + (Info-follow-reference): Use assoc-string. + Use a list of strings for the completion table. + (Info-fontify-node): Use match-string, line-end-position. + Limit the search for `node:' to the first line. + + * newcomment.el (uncomment-region): Remove padding coming from + comment-start rather than just from comment-padding. + + * vc-cvs.el (vc-cvs-repository-hostname): New operation. + (vc-cvs-stay-local-p): Use vc-stay-local-p. + (vc-cvs-rename-file): Remove (use the default). + (vc-cvs-register): Register parent dir if needed. + (vc-cvs-could-register): Return non-nil if parent can be registered. + (vc-cvs-state, vc-cvs-dir-state, vc-cvs-print-log, vc-cvs-diff) + (vc-cvs-diff-tree, vc-cvs-make-version-backups-p): Use vc-stay-local-p. + + * vc-svn.el (vc-svn-use-edit): Make it into a const. + (vc-svn-update): Fix the arguments to `svn'. + (vc-svn-diff-tree): Just use `vc-svn-diff'. + (vc-svn-create-snapshot, vc-svn-retrieve-snapshot): + Simple implementations, assuming `name' is a URL. + + * progmodes/sh-script.el (sh-font-lock-paren): Add [ and ] to the + set of chars allowed unquoted in a case pattern. + * font-core.el (font-lock-defaults-alist): Remove obsolete entries. * font-lock.el (font-lock-extra-types-widget) *************** *** 31,37 **** 2003-07-04 Martin Stjernholm ! * generic-x.el: Did away with the dependency on `c-emacs-features' when populating `rul-generic-mode-syntax-table'; we already know this isn't XEmacs. --- 75,81 ---- 2003-07-04 Martin Stjernholm ! * generic-x.el: Do away with the dependency on `c-emacs-features' when populating `rul-generic-mode-syntax-table'; we already know this isn't XEmacs. *************** *** 39,52 **** * progmodes/cc-menus.el (cc-imenu-init): Do not set `imenu-create-index-function' if the second argument is left ! out. This bug broke the imenu support in C, C++ and Java ! modes. 2003-07-03 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-align.el ! (c-add-stmt-syntax, c-lineup-arglist, ! c-lineup-arglist-close-under-paren): Fixes to cope with special brace lists in Pike. 2003-07-03 Alan Mackenzie --- 83,95 ---- * progmodes/cc-menus.el (cc-imenu-init): Do not set `imenu-create-index-function' if the second argument is left ! out. This bug broke the imenu support in C, C++ and Java modes. 2003-07-03 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-align.el ! (c-add-stmt-syntax, c-lineup-arglist) ! (c-lineup-arglist-close-under-paren): Fixes to cope with special brace lists in Pike. 2003-07-03 Alan Mackenzie *************** *** 59,65 **** 2003-07-03 Alan Mackenzie ! * progmodes/cc-awk.el, progmodes/cc-engine.el: Added code to analyze AWK top-level forms properly (c-guess-basic-syntax CASE 5P), c-awk-backward-syntactic-ws. --- 102,108 ---- 2003-07-03 Alan Mackenzie ! * progmodes/cc-awk.el, progmodes/cc-engine.el: Add code to analyze AWK top-level forms properly (c-guess-basic-syntax CASE 5P), c-awk-backward-syntactic-ws. *************** *** 71,89 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-paren-nontype-kwds): New language ! constant. ! (c-other-decl-kwds, c-postfix-decl-spec-kwds): Added compiler specific declspec keywords: __attribute__ for gcc and __declspec for msvc. ! * progmodes/cc-fonts.el (c-font-lock-declarations, ! c-complex-decl-matchers): Support specifiers in a couple more contexts to cope with msvc '__declspec'. ! * progmodes/cc-engine.el (c-forward-keyword-clause): Support ! `c-paren-nontype-kwds'. 2003-07-03 Martin Stjernholm --- 114,131 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-paren-nontype-kwds): New language constant. ! (c-other-decl-kwds, c-postfix-decl-spec-kwds): Add compiler specific declspec keywords: __attribute__ for gcc and __declspec for msvc. ! * progmodes/cc-fonts.el (c-font-lock-declarations) ! (c-complex-decl-matchers): Support specifiers in a couple more contexts to cope with msvc '__declspec'. ! * progmodes/cc-engine.el (c-forward-keyword-clause): ! Support `c-paren-nontype-kwds'. 2003-07-03 Martin Stjernholm *************** *** 92,99 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-bytecomp.el (cc-bytecomp-setup-environment): Do ! not cover functions that have been bound. (cc-external-require): New macro to use for requiring external packages, to handle the environment correctly. --- 134,141 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-bytecomp.el (cc-bytecomp-setup-environment): ! Do not cover functions that have been bound. (cc-external-require): New macro to use for requiring external packages, to handle the environment correctly. *************** *** 104,117 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-beginning-of-member-init-list, ! c-guess-basic-syntax): Fixes in handling of bitfields. 2003-07-03 Martin Stjernholm * progmodes/cc-langs.el (comment-end): Put a space in front of ! the comment ender in C, as it was before the move from ! progmodes/cc-mode.el. 2003-07-03 Alan Mackenzie --- 146,158 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-beginning-of-member-init-list) ! (c-guess-basic-syntax): Fixes in handling of bitfields. 2003-07-03 Martin Stjernholm * progmodes/cc-langs.el (comment-end): Put a space in front of ! the comment ender in C, as it was before the move from cc-mode.el. 2003-07-03 Alan Mackenzie *************** *** 137,143 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-initialize-cc-mode): Added some compatibility to make this function behave somewhat more as documented for derived modes. It's still not enough to make the old AWK mode behave reasonably, but it's been like this a --- 178,184 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-initialize-cc-mode): Add some compatibility to make this function behave somewhat more as documented for derived modes. It's still not enough to make the old AWK mode behave reasonably, but it's been like this a *************** *** 149,164 **** * progmodes/cc-fonts.el (c-remove-font-lock-face): New macro to remove a font lock face properly (especially in XEmacs). ! * progmodes/cc-bytecomp.el (cc-bytecomp-obsolete-fun): Added ! the same kludge as in `cc-bytecomp-obsolete-var' to avoid a confused compiler warning. ! * progmodes/cc-engine.el (c-forward-type): Fixed a bug in the ! handling of concatenated types when the component types are ! known. ! * progmodes/cc-fonts.el (c-constant-face-name): Added face name variable to ! avoid the use of `font-lock-constant-face' for constants in emacsen that doesn't have it. 2003-07-03 Martin Stjernholm --- 190,204 ---- * progmodes/cc-fonts.el (c-remove-font-lock-face): New macro to remove a font lock face properly (especially in XEmacs). ! * progmodes/cc-bytecomp.el (cc-bytecomp-obsolete-fun): ! Add the same kludge as in `cc-bytecomp-obsolete-var' to avoid a confused compiler warning. ! * progmodes/cc-engine.el (c-forward-type): Fix a bug in the ! handling of concatenated types when the component types are known. ! * progmodes/cc-fonts.el (c-constant-face-name): Add face name variable ! to avoid the use of `font-lock-constant-face' for constants in emacsen that doesn't have it. 2003-07-03 Martin Stjernholm *************** *** 169,186 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): Use ! `open-paren-in-column-0-is-defun-start' if it exists and ! works. ! * progmodes/cc-vars.el (c-emacs-features): Added `col-0-paren' to detect when `open-paren-in-column-0-is-defun-start' exists and actually works. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-argcont, ! c-lineup-gcc-asm-reg): Don't quote nil in docstrings. 2003-07-03 Martin Stjernholm --- 209,225 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): ! Use `open-paren-in-column-0-is-defun-start' if it exists and works. ! * progmodes/cc-vars.el (c-emacs-features): Add `col-0-paren' to detect when `open-paren-in-column-0-is-defun-start' exists and actually works. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-argcont, c-lineup-gcc-asm-reg): ! Don't quote nil in docstrings. 2003-07-03 Martin Stjernholm *************** *** 191,197 **** the former a bit less hardcoded by putting it on `c-font-lock-extra-types' instead. There are also "bool" and "_Bool" that work the same way. - (c-constant-kwds): "false" and "true" are standard constant macros in C99. --- 230,235 ---- *************** *** 202,209 **** progmodes/cc-cmds.el: Fixed various regexps to use POSIX char classes when that is supported. ! * progmodes/cc-defs.el (c-alpha, c-alnum, c-digit, c-upper, ! c-lower): New constants to make it easier to create regexps that use POSIX char classes in emacsen that support them. 2003-07-03 Martin Stjernholm --- 240,247 ---- progmodes/cc-cmds.el: Fixed various regexps to use POSIX char classes when that is supported. ! * progmodes/cc-defs.el (c-alpha, c-alnum, c-digit, c-upper, c-lower): ! New constants to make it easier to create regexps that use POSIX char classes in emacsen that support them. 2003-07-03 Martin Stjernholm *************** *** 213,219 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-after-change): Added kludge for bug where this function sometimes gets positions outside the buffer range. --- 251,257 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-after-change): Add kludge for bug where this function sometimes gets positions outside the buffer range. *************** *** 222,245 **** * progmodes/cc-engine.el (c-beginning-of-member-init-list): Better handling of paretheses in unexpected places. ! * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Fixed a regexp match order problem that could cause empty template args on the form "<>" to be missed. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-parse-state): Added kludge to avoid an infinite loop when Emacs' open-paren-in-column-zero rule kicks in and causes the sexp functions to misbehave. 2003-07-03 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-member-init-list): ! Fixed bug when C++-like code is encountered in non-C++ mode. 2003-07-03 Martin Stjernholm ! * progmodes/cc-defs.el (c-make-keywords-re): Added option to specify the language to look up `c-nonsymbol-key' in. 2003-07-03 Martin Stjernholm --- 260,283 ---- * progmodes/cc-engine.el (c-beginning-of-member-init-list): Better handling of paretheses in unexpected places. ! * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Fix a regexp match order problem that could cause empty template args on the form "<>" to be missed. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-parse-state): Add kludge to avoid an infinite loop when Emacs' open-paren-in-column-zero rule kicks in and causes the sexp functions to misbehave. 2003-07-03 Martin Stjernholm * progmodes/cc-engine.el (c-beginning-of-member-init-list): ! Fix bug when C++-like code is encountered in non-C++ mode. 2003-07-03 Martin Stjernholm ! * progmodes/cc-defs.el (c-make-keywords-re): Add option to specify the language to look up `c-nonsymbol-key' in. 2003-07-03 Martin Stjernholm *************** *** 256,264 **** * progmodes/cc-langs.el (c-literal-start-regexp): Yet another language variable. ! * progmodes/cc-fonts.el (c-font-lock-doc-comments, ! c-find-invalid-doc-markup, javadoc-font-lock-keywords): Fixed ! fontification of the markup in Javadoc comments. * progmodes/cc-engine.el: Fixes in face handling to cope with doc comments. --- 294,302 ---- * progmodes/cc-langs.el (c-literal-start-regexp): Yet another language variable. ! * progmodes/cc-fonts.el (c-font-lock-doc-comments) ! (c-find-invalid-doc-markup, javadoc-font-lock-keywords): ! Fix fontification of the markup in Javadoc comments. * progmodes/cc-engine.el: Fixes in face handling to cope with doc comments. *************** *** 270,288 **** faces at positions easier. * progmodes/cc-defs.el (c-safe-scan-lists): New wrapper macro ! to avoid the warnings with too many args to `scan-lists' in ! Emacs. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-syntactic-skip-backward): New ! function to make syntactic searches in the backward direction easier. ! (c-beginning-of-statement-1): Optimized skipping over large paren sexps somewhat. ! (c-safe-position): Removed the odd macro handling which was centered around the point instead of the passed position. 2003-07-03 Martin Stjernholm --- 308,325 ---- faces at positions easier. * progmodes/cc-defs.el (c-safe-scan-lists): New wrapper macro ! to avoid the warnings with too many args to `scan-lists' in Emacs. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-syntactic-skip-backward): ! New function to make syntactic searches in the backward direction easier. ! (c-beginning-of-statement-1): Optimize skipping over large paren sexps somewhat. ! (c-safe-position): Remove the odd macro handling which was centered around the point instead of the passed position. 2003-07-03 Martin Stjernholm *************** *** 290,298 **** * progmodes/cc-engine.el (c-in-knr-argdecl): Do not trip up on initialization expressions. ! * progmodes/cc-align.el (c-lineup-arglist, ! c-lineup-close-paren, c-lineup-arglist-close-under-paren): ! Tuned the "macro block" heuristics to work better in nested arglist situations. 2003-07-03 Martin Stjernholm --- 327,335 ---- * progmodes/cc-engine.el (c-in-knr-argdecl): Do not trip up on initialization expressions. ! * progmodes/cc-align.el (c-lineup-arglist) ! (c-lineup-close-paren, c-lineup-arglist-close-under-paren): ! Tune the "macro block" heuristics to work better in nested arglist situations. 2003-07-03 Martin Stjernholm *************** *** 303,317 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): Install ! `c-fill-paragraph' on `fill-paragraph-function'. Although ! it's not the normal way to call it in a CC Mode buffer it makes a direct call to `fill-paragraph' work better. 2003-07-03 Martin Stjernholm * progmodes/cc-vars.el, progmodes/cc-mode.el ! (c-require-final-newline): Made this variable an alist to specify a value for each language. The default value causes `require-final-newline' to be set to t only in languages where the standard requires a final newline. --- 340,354 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): ! Install `c-fill-paragraph' on `fill-paragraph-function'. ! Although it's not the normal way to call it in a CC Mode buffer it makes a direct call to `fill-paragraph' work better. 2003-07-03 Martin Stjernholm * progmodes/cc-vars.el, progmodes/cc-mode.el ! (c-require-final-newline): Make this variable an alist to specify a value for each language. The default value causes `require-final-newline' to be set to t only in languages where the standard requires a final newline. *************** *** 319,325 **** 2003-07-03 Martin Stjernholm * progmodes/cc-mode.el, progmodes/cc-vars.el ! (c-require-final-newline): Added a variable to make the initialization of `require-final-newline' more configurable. * progmodes/cc-vars.el (c-mode-common-hook): Do not change the --- 356,362 ---- 2003-07-03 Martin Stjernholm * progmodes/cc-mode.el, progmodes/cc-vars.el ! (c-require-final-newline): Add a variable to make the initialization of `require-final-newline' more configurable. * progmodes/cc-vars.el (c-mode-common-hook): Do not change the *************** *** 328,335 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (javadoc-font-lock-keywords, ! autodoc-font-lock-keywords): Support for Javadoc and Pike Autodoc doc comments. * progmodes/cc-vars.el (c-doc-comment-style): New variable to --- 365,372 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (javadoc-font-lock-keywords) ! (autodoc-font-lock-keywords): Support for Javadoc and Pike Autodoc doc comments. * progmodes/cc-vars.el (c-doc-comment-style): New variable to *************** *** 345,413 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-guess-fill-prefix): Tuned the heuristics of when to use `c-block-comment-prefix' for an unclosed block comment. 2003-07-03 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-langs.el ! (c-nonsymbol-sexp-kwds, c-forward-keyword-clause): Handle ! keywords like "extern" that can be followed by e.g. a string literal. * progmodes/cc-defs.el (c-make-keywords-re): Make a regexp ! correctly with one submatch when adorn is set and the list is ! empty. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): Fixed a search that could go far past the relevant region and cause slowness. Do not limit the declaration detection to the fontified region since that can cause misfontification in multiline declarations. ! * progmodes/cc-engine.el (c-find-decl-spots): Added limit argument to handle declarations spanning the fontification limit better. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-in-literal, c-literal-limits, ! c-literal-limits-fast, c-beginning-of-inheritance-list): Use ! the paren cache instead of the impaired ad hoc in `beginning-of-defun', so that these functions doesn't trip up on "{" in the first column inside strings or comments. 2003-07-03 Martin Stjernholm ! * progmodes/cc-vars.el (c-hanging-braces-alist): Added ! `statement-cont' and made it auto newline free by default. ! * progmodes/cc-cmds.el (c-electric-brace): Added ! `statement-cont' to the list of syntactic symbols to consider ! for auto newlines since it can be used for in-statement brace ! lists. * progmodes/cc-vars.el (c-emacs-features): There's no need to have this constant autoloaded. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): Use ! `c-recognize-typeless-decls' to avoid fontifying some macro constructs as declarations in languages where a preceding type is mandatory. ! * progmodes/cc-langs.el (c-recognize-typeless-decls): New ! language variable. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-close-paren): Use ! `c-syntactic-eol' when checking if the open paren ends its ! line. * progmodes/cc-langs.el (c-syntactic-eol): Handle a line continuation backslash. --- 382,447 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-guess-fill-prefix): Tune the heuristics of when to use `c-block-comment-prefix' for an unclosed block comment. 2003-07-03 Martin Stjernholm * progmodes/cc-engine.el, progmodes/cc-langs.el ! (c-nonsymbol-sexp-kwds, c-forward-keyword-clause): ! Handle keywords like "extern" that can be followed by e.g. a string literal. * progmodes/cc-defs.el (c-make-keywords-re): Make a regexp ! correctly with one submatch when adorn is set and the list is empty. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): Fix a search that could go far past the relevant region and cause slowness. Do not limit the declaration detection to the fontified region since that can cause misfontification in multiline declarations. ! * progmodes/cc-engine.el (c-find-decl-spots): Add limit argument to handle declarations spanning the fontification limit better. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-in-literal, c-literal-limits) ! (c-literal-limits-fast, c-beginning-of-inheritance-list): ! Use the paren cache instead of the impaired ad hoc in `beginning-of-defun', so that these functions doesn't trip up on "{" in the first column inside strings or comments. 2003-07-03 Martin Stjernholm ! * progmodes/cc-vars.el (c-hanging-braces-alist): ! Add `statement-cont' and made it auto newline free by default. ! * progmodes/cc-cmds.el (c-electric-brace): ! Add `statement-cont' to the list of syntactic symbols to consider ! for auto newlines since it can be used for in-statement brace lists. * progmodes/cc-vars.el (c-emacs-features): There's no need to have this constant autoloaded. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): ! Use `c-recognize-typeless-decls' to avoid fontifying some macro constructs as declarations in languages where a preceding type is mandatory. ! * progmodes/cc-langs.el (c-recognize-typeless-decls): ! New language variable. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-close-paren): ! Use `c-syntactic-eol' when checking if the open paren ends its line. * progmodes/cc-langs.el (c-syntactic-eol): Handle a line continuation backslash. *************** *** 431,472 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el: Added autoload directives for the interface functions in cc-langs. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): Added a property to handle refontication in multiline declaration arglists better. - (c-font-lock-<>-arglists): Fix to handle recursive template arglists better. (As a side effect this will make fontification work better in older emacsen too.) ! * progmodes/cc-engine.el (c-forward-<>-arglist, ! c-remove-<>-arglist-properties): Use a common text property `c-type' for all sorts of CC Mode char classification, to avoid cases when then same char is given conflicting types. - (c-forward-<>-arglist): New reparse argument to control that aspect explicitly. - (c-forward-name, c-forward-type): Changes in the handling of recursive template arglists. Fixes to cope with the new 'known type classification. 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): Added the new char property `c-type' to `text-property-default-nonsticky'. ! * progmodes/cc-defs.el (c-put-char-property, ! c-get-char-property, c-clear-char-property, ! c-clear-char-properties): Generalized `c-put-char-syntax' and `c-get-char-syntax' to handle any property. ! * progmodes/cc-bytecomp.el (cc-bytecomp-defun): Fixed bug that caused existing function definitions to be overridden by phonies when the bytecomp environment is restored. --- 465,503 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el: Add autoload directives for the interface functions in cc-langs. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): Add a property to handle refontication in multiline declaration arglists better. (c-font-lock-<>-arglists): Fix to handle recursive template arglists better. (As a side effect this will make fontification work better in older emacsen too.) ! * progmodes/cc-engine.el (c-forward-<>-arglist) ! (c-remove-<>-arglist-properties): Use a common text property `c-type' for all sorts of CC Mode char classification, to avoid cases when then same char is given conflicting types. (c-forward-<>-arglist): New reparse argument to control that aspect explicitly. (c-forward-name, c-forward-type): Changes in the handling of recursive template arglists. Fixes to cope with the new 'known type classification. 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): Add the new char property `c-type' to `text-property-default-nonsticky'. ! * progmodes/cc-defs.el (c-put-char-property) ! (c-get-char-property, c-clear-char-property) ! (c-clear-char-properties): Generalize `c-put-char-syntax' and `c-get-char-syntax' to handle any property. ! * progmodes/cc-bytecomp.el (cc-bytecomp-defun): Fix bug that caused existing function definitions to be overridden by phonies when the bytecomp environment is restored. *************** *** 474,483 **** * progmodes/cc-cmds.el (c-mask-paragraph): Masking is necessary in normal code too to avoid getting a fill prefix ! from a nearby comment. Changed the name from `c-mask-comment' to a more accurate one. ! * progmodes/cc-defs.el, progmodes/cc-mode.el: Changed the auto-load-alist strategy to not add entries on package load, to be defensive in the case that autoloads are updated in older emacsen. The bug that would occur in that case would --- 505,514 ---- * progmodes/cc-cmds.el (c-mask-paragraph): Masking is necessary in normal code too to avoid getting a fill prefix ! from a nearby comment. Change the name from `c-mask-comment' to a more accurate one. ! * progmodes/cc-defs.el, progmodes/cc-mode.el: Change the auto-load-alist strategy to not add entries on package load, to be defensive in the case that autoloads are updated in older emacsen. The bug that would occur in that case would *************** *** 485,511 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): Fine ! tuning of the decision tree that tells declarations from expressions to produce better results in some ambiguous cases. * progmodes/cc-fonts.el (c-font-lock-syntactic-face-function): ! Removed since it doesn't give the control we want. ! (c-font-lock-invalid-string): Replacement for `c-font-lock-syntactic-face-function' that puts the error face on the string opener only, to avoid the annoying excessive use of the error face while a string literal is being written. - (c-basic-matchers-before): Use `c-font-lock-invalid-string'. ! * progmodes/cc-engine.el (c-string-syntax, ! c-string-limit-regexp): Added constants to use when handling string limits, since not all old emacsen react well to the "|" syntax class. ! (c-literal-limits, c-literal-limits-fast, c-literal-type): Use ! `c-string-syntax' and `c-string-limit-regexp'. Replaced some hardcoded comment start regexps with `c-comment-start-regexp'. 2003-07-03 Martin Stjernholm --- 516,540 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-declarations): ! Fine tuning of the decision tree that tells declarations from expressions to produce better results in some ambiguous cases. * progmodes/cc-fonts.el (c-font-lock-syntactic-face-function): ! Remove since it doesn't give the control we want. (c-font-lock-invalid-string): Replacement for `c-font-lock-syntactic-face-function' that puts the error face on the string opener only, to avoid the annoying excessive use of the error face while a string literal is being written. (c-basic-matchers-before): Use `c-font-lock-invalid-string'. ! * progmodes/cc-engine.el (c-string-syntax) ! (c-string-limit-regexp): Add constants to use when handling string limits, since not all old emacsen react well to the "|" syntax class. ! (c-literal-limits, c-literal-limits-fast, c-literal-type): ! Use `c-string-syntax' and `c-string-limit-regexp'. Replace some hardcoded comment start regexps with `c-comment-start-regexp'. 2003-07-03 Martin Stjernholm *************** *** 518,605 **** * progmodes/cc-mode.el: Add the `auto-mode-alist' entries to the end instead of the start of the list, to avoid overriding user additions that are made before this file is loaded when ! the entries don't correspond to any already on ! `auto-mode-alist'. ! This is done through the third append argument to ! `auto-mode-alist'. That doesn't exist in older (X)Emacsen, so ! the function is adviced in cc-defs. However, that advice doesn't help if the autoloads are updated in an old (X)Emacs with this version of CC Mode, but I believe it's unlikely that anyone does that when CC Mode isn't distributed with with it. ! * progmodes/cc-defs.el (add-to-list): Added advice to get the optional third append argument in older (X)Emacsen. * progmodes/cc-langs.el (c-keywords-obarray): Kludge for strange bug in Emacs that gives so odd errors that I frankly ! don't even muster to begin trying to narrow it down. If ! someone is so inclined, restore the commented code, byte ! compile, and try to open a C++ file or something in font lock ! mode. 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el: Updated the IDL support from the specs. This also adds the keywords for the variants PSDL and CIDL. (This is mostly done from reading the grammars only; very lightly tested.) ! * progmodes/cc-langs.el (c-type-list-kwds): Added "new" in ! Java. ! * progmodes/cc-fonts.el: Made sure that `parse-sexp-lookup-properties' is properly insulated from ! clobbering by the font-lock package at all relevant entry ! points. 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-opt-after-id-concat-key): New ! language constant to make the recognition of identifier qualifiers more flexible. Recognize the identifier before ".*" as a qualifier in Java. - (c-identifier-key): Recognize "::*" inside identifiers in C++. Recognize identifiers ending with ".*" in Java for the sake of import directives. - (c-type-list-kwds, c-ref-list-kwds): Recognize "import" and "package" declarations in Java. ! * progmodes/cc-vars.el (c-doc-face, c-doc-marker-face, ! c-doc-markup-face): Removed since they aren't used (and probably won't be). * progmodes/cc-langs.el (c-ref-list-kwds): New language constant to specify keywords followed by references. - (c-last-identifier-range): New variable to avoid going back to search for the identifier to font lock after a call to `c-forward-name'. ! ! (c-type-prefix-kwds, c-type-list-kwds): Fixed classification of "@interface" etc in Objective-C. ! * progmodes/cc-engine.el (c-forward-keyword-clause): Fixed ! handling of keyword prefixes in `c-type-list-kwds' and `c-colon-type-list-kwds' clauses. - (c-keyword-sym, c-keyword-member): New functions to lookup and categorize keywords. - (c-forward-keyword-clause): New function to move over a keyword and its associated clause according to `c-<>-arglist-kwds' etc. ! * progmodes/cc-langs.el (c-typeless-decl-kwds, ! c-type-list-kwds, c-colon-type-list-kwds, ! c-colon-type-list-re, c-paren-type-kwds): New language constants and variables to generalize the recognition of various language constructs. ! ! (c-keywords): Did away with the list of `*-kwds' constants. It's ! now built through macro expansion. ! (c-keywords-obarray): New language variable which contains each keyword as a symbol, to make fast reverse lookup of keywords to the `*-kwds' lists they come from. --- 547,621 ---- * progmodes/cc-mode.el: Add the `auto-mode-alist' entries to the end instead of the start of the list, to avoid overriding user additions that are made before this file is loaded when ! the entries don't correspond to any already on `auto-mode-alist'. This is done through the third append argument to ! `add-to-alist'. That doesn't exist in older (X)Emacsen, so ! the function is advised in cc-defs. However, that advice doesn't help if the autoloads are updated in an old (X)Emacs with this version of CC Mode, but I believe it's unlikely that anyone does that when CC Mode isn't distributed with with it. ! * progmodes/cc-defs.el (add-to-list): Add advice to get the optional third append argument in older (X)Emacsen. * progmodes/cc-langs.el (c-keywords-obarray): Kludge for strange bug in Emacs that gives so odd errors that I frankly ! don't even muster to begin trying to narrow it down. ! If someone is so inclined, restore the commented code, byte ! compile, and try to open a C++ file or something in font lock mode. 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el: Update the IDL support from the specs. This also adds the keywords for the variants PSDL and CIDL. (This is mostly done from reading the grammars only; very lightly tested.) ! * progmodes/cc-langs.el (c-type-list-kwds): Add "new" in Java. ! * progmodes/cc-fonts.el: Make sure that `parse-sexp-lookup-properties' is properly insulated from ! clobbering by the font-lock package at all relevant entry points. 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-opt-after-id-concat-key): ! New language constant to make the recognition of identifier qualifiers more flexible. Recognize the identifier before ".*" as a qualifier in Java. (c-identifier-key): Recognize "::*" inside identifiers in C++. Recognize identifiers ending with ".*" in Java for the sake of import directives. (c-type-list-kwds, c-ref-list-kwds): Recognize "import" and "package" declarations in Java. ! * progmodes/cc-vars.el (c-doc-face, c-doc-marker-face) ! (c-doc-markup-face): Remove since they aren't used (and probably won't be). * progmodes/cc-langs.el (c-ref-list-kwds): New language constant to specify keywords followed by references. (c-last-identifier-range): New variable to avoid going back to search for the identifier to font lock after a call to `c-forward-name'. ! (c-type-prefix-kwds, c-type-list-kwds): Fix classification of "@interface" etc in Objective-C. ! * progmodes/cc-engine.el (c-forward-keyword-clause): ! Fix handling of keyword prefixes in `c-type-list-kwds' and `c-colon-type-list-kwds' clauses. (c-keyword-sym, c-keyword-member): New functions to lookup and categorize keywords. (c-forward-keyword-clause): New function to move over a keyword and its associated clause according to `c-<>-arglist-kwds' etc. ! * progmodes/cc-langs.el (c-typeless-decl-kwds) ! (c-type-list-kwds, c-colon-type-list-kwds) ! (c-colon-type-list-re, c-paren-type-kwds): New language constants and variables to generalize the recognition of various language constructs. ! (c-keywords): Did away with the list of `*-kwds' constants. ! It's now built through macro expansion. (c-keywords-obarray): New language variable which contains each keyword as a symbol, to make fast reverse lookup of keywords to the `*-kwds' lists they come from. *************** *** 607,673 **** 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el (c-lang-defconst-eval-immediately): ! Added macro to be able to do direct evaluation in `c-lang-defconst' forms. * progmodes/cc-engine.el (c-syntactic-re-search-forward): ! Fixed a bug which could cause the point to end up outside the containing sexp if PAREN-LEVEL was used. * progmodes/cc-engine.el, progmodes/cc-fonts.el, ! progmodes/cc-langs.el: Generalized the C++ template arglist support to handle angle bracket arglists in any language. ! ! (c-recognize-<>-arglists, c-<>-arglist-kwds, ! c-opt-<>-arglist-start): New language variables to control angle bracket arglists. - (c-opt-type-suffix-key): Use `c-recognize-<>-arglists' in Objective-C instead of matching a protocol reference list as a type suffix. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-gnu-impose-minimum): Fixed a missing `save-excursion' that caused the point to jump around. 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el, progmodes/cc-menus.el (objc-mode, ! cc-imenu-init): Fixed initialization bug that has made the Objective-C support inoperational since 5.26. ! ! (cc-imenu-objc-generic-expression): Updated submatch indices due to changes in `cc-imenu-c++-generic-expression'. - (cc-imenu-objc-function): Don't add an empty "C" menu since imenu doesn't like that. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-arglist, ! c-lineup-arglist-close-under-paren, c-lineup-close-paren): ! Added DWIM to the functions that line up at or after the arglist open paren to avoid that if there are brace blocks inside, e.g. when a macro contains a code block. 2003-07-03 Martin Stjernholm ! * progmodes/cc-vars.el (objc-font-lock-extra-types): Changed ! default to treat identifiers starting with capital letters as types, according to Objective-C naming conventions. The types previously on the list is part of the language and therefore on `c-primitive-type-kwds' instead. ! * progmodes/cc-fonts.el: Fixed font locking in Objective-C. Be more careful about returning nil from functions used directly as font-lock matchers. ! * progmodes/cc-mode.el (c-font-lock-init): Made the syntax table modification element of `font-lock-defaults' parameterized over the languages. ! * progmodes/cc-langs.el: Updated the Objective-C constants according to the language spec. The "@" chars that start directives are now considered part of the keywords to make things easier. --- 623,685 ---- 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el (c-lang-defconst-eval-immediately): ! Add macro to be able to do direct evaluation in `c-lang-defconst' forms. * progmodes/cc-engine.el (c-syntactic-re-search-forward): ! Fix a bug which could cause the point to end up outside the containing sexp if PAREN-LEVEL was used. * progmodes/cc-engine.el, progmodes/cc-fonts.el, ! progmodes/cc-langs.el: Generalize the C++ template arglist support to handle angle bracket arglists in any language. ! (c-recognize-<>-arglists, c-<>-arglist-kwds) ! (c-opt-<>-arglist-start): New language variables to control angle bracket arglists. (c-opt-type-suffix-key): Use `c-recognize-<>-arglists' in Objective-C instead of matching a protocol reference list as a type suffix. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-gnu-impose-minimum): Fix a missing `save-excursion' that caused the point to jump around. 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el, progmodes/cc-menus.el (objc-mode) ! (cc-imenu-init): Fix initialization bug that has made the Objective-C support inoperational since 5.26. ! (cc-imenu-objc-generic-expression): Update submatch indices due to changes in `cc-imenu-c++-generic-expression'. (cc-imenu-objc-function): Don't add an empty "C" menu since imenu doesn't like that. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-arglist) ! (c-lineup-arglist-close-under-paren, c-lineup-close-paren): ! Add DWIM to the functions that line up at or after the arglist open paren to avoid that if there are brace blocks inside, e.g. when a macro contains a code block. 2003-07-03 Martin Stjernholm ! * progmodes/cc-vars.el (objc-font-lock-extra-types): ! Change default to treat identifiers starting with capital letters as types, according to Objective-C naming conventions. The types previously on the list is part of the language and therefore on `c-primitive-type-kwds' instead. ! * progmodes/cc-fonts.el: Fix font locking in Objective-C. Be more careful about returning nil from functions used directly as font-lock matchers. ! * progmodes/cc-mode.el (c-font-lock-init): Make the syntax table modification element of `font-lock-defaults' parameterized over the languages. ! * progmodes/cc-langs.el: Update the Objective-C constants according to the language spec. The "@" chars that start directives are now considered part of the keywords to make things easier. *************** *** 675,690 **** 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el: (c-(up|down)-list-(forward|backward)): ! Made the position optional and added docstrings. ! (c-go-(up|down)-list-(forward|backward)): Added variants of the above that move point and return successfulness instead. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-<>-arglists): New ! function to fontify all occurrences of template arglists in ! C++. * progmodes/cc-engine.el (c-disallow-comma-in-<>-arglists): New variable to be able to avoid false recognition of template --- 687,701 ---- 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el: (c-(up|down)-list-(forward|backward)): ! Make the position optional and added docstrings. ! (c-go-(up|down)-list-(forward|backward)): Add variants of the above that move point and return successfulness instead. 2003-07-03 Martin Stjernholm ! * progmodes/cc-fonts.el (c-font-lock-<>-arglists): ! New function to fontify all occurrences of template arglists in C++. * progmodes/cc-engine.el (c-disallow-comma-in-<>-arglists): New variable to be able to avoid false recognition of template *************** *** 694,731 **** * progmodes/cc-fonts.el, progmodes/cc-langs.el (c-decl-prefix-re, c-font-lock-declarations): Match template ! open brackets to get a declaration in the first template ! argument. ! (c-complex-decl-matchers): Fontify the second type in a "class X = Y" expression in C++. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-forward-<>-arglist): Broke out the recursive part to a new function to improve efficiency when a nested template arglist search turns out to be futile. 2003-07-03 Martin Stjernholm * progmodes/cc-menus.el (cc-imenu-java-generic-expression): ! Improved to avoid false matches on e.g. "else if (foo)". 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-forward-token-2, ! c-backward-token-2): New functions that work like the -1 ! variants but that handles multicharacter operator tokens. ! * progmodes/cc-engine.el (c-inside-bracelist-p, ! c-guess-basic-syntax): Did away with the hardcoded regexps to recognize "typedef" declaration prefixes, "extern" and "namespace" blocks, "enum"-style brace list declarations and Java-style array initializers with "new". ! * progmodes/cc-langs.el (c-brace-list-decl-kwds, ! c-brace-list-key, c-inexpr-brace-list-kwds, ! c-opt-inexpr-brace-list-key): New language constants and variables to parameterize some more of the hardcoded regexps in cc-engine. --- 705,740 ---- * progmodes/cc-fonts.el, progmodes/cc-langs.el (c-decl-prefix-re, c-font-lock-declarations): Match template ! open brackets to get a declaration in the first template argument. (c-complex-decl-matchers): Fontify the second type in a "class X = Y" expression in C++. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-forward-<>-arglist): Break out the recursive part to a new function to improve efficiency when a nested template arglist search turns out to be futile. 2003-07-03 Martin Stjernholm * progmodes/cc-menus.el (cc-imenu-java-generic-expression): ! Improve to avoid false matches on e.g. "else if (foo)". 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-forward-token-2) ! (c-backward-token-2): New functions that work like the -1 ! variants but that handle multicharacter operator tokens. ! * progmodes/cc-engine.el (c-inside-bracelist-p) ! (c-guess-basic-syntax): Do away with the hardcoded regexps to recognize "typedef" declaration prefixes, "extern" and "namespace" blocks, "enum"-style brace list declarations and Java-style array initializers with "new". ! * progmodes/cc-langs.el (c-brace-list-decl-kwds) ! (c-brace-list-key, c-inexpr-brace-list-kwds) ! (c-opt-inexpr-brace-list-key): New language constants and variables to parameterize some more of the hardcoded regexps in cc-engine. *************** *** 748,822 **** initializes the language variables. It's necessary that the caller does that directly since the evaluated values for them now get compiled in directly. ! ! (c-font-lock-init, c-common-init): Separated the font-lock initialization from `c-common-init'. * progmodes/cc-mode.el (c-define-abbrev-table): Do not override an existing abbrev table. ! ! (c-Java-defun-prompt-regexp): Moved here from cc-langs since cc-langs isn't always loaded at runtime. ! * progmodes/cc-langs.el (c-make-init-lang-vars-fun, ! c-init-language-vars): Changed to allow language variable initialization from derived modes. - (c-mode-menu): New language variable for the mode menu. ! ! (c-make-mode-syntax-table, c-mode-syntax-table, ! make-c++-template-syntax-table): New language variables for syntax tables. The code that initializes them has been moved to cc-mode to make it possible to avoid loading cc-langs at runtime. * progmodes/cc-engine.el, progmodes/cc-langs.el (c-hungry-delete-key, c-auto-newline, c-auto-hungry-string): ! Moved these state variables from cc-langs to cc-engine to make it possible to avoid loading cc-langs at runtime. ! * progmodes/cc-defs.el (c-lang-defconst, c-lang-const): Moved ! from cc-langs and rewritten to make the language constant system usable from derived modes. (c-add-language): New function intended for use from derived modes that add new C-like languages. * progmodes/cc-defs.el, progmodes/cc-vars.el ! (c-buffer-is-cc-mode): Moved from cc-vars to cc-defs to define it during compilation. ! * progmodes/cc-bytecomp.el (cc-require-when-compile): New ! support macro for compile time `require's. 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el, progmodes/cc-mode.el (c-version): ! Moved from cc-mode to cc-defs to make it accessible to the other components. ! * progmodes/cc-engine.el (c-forward-token-1, ! c-backward-token-1): Compatibility fix for emacsen that ! doesn't understand generic string delimiters. ! * progmodes/cc-vars.el (c-emacs-features): Added detection of generic string and comment delimiters. * progmodes/cc-defs.el, progmodes/cc-langs.el ! (c-make-keywords-re): Changed interface to make it more ! extensible. ! * progmodes/cc-langs.el, progmodes/cc-defs.el (c-regexp-opt, ! c-regexp-opt-depth, c-make-keywords-re): Moved from cc-langs to cc-defs since they are generally useful. * progmodes/cc-bytecomp.el, progmodes/cc-defs.el ! (cc-eval-when-compile): Moved from cc-bytecomp to cc-defs to allow use at runtime. 2003-07-03 Martin Stjernholm ! * progmodes/cc-bytecomp.el (cc-eval-when-compile): Workaround ! for a bug with nested `eval-when-compile' in XEmacs 21. 2003-07-03 Martin Stjernholm --- 757,826 ---- initializes the language variables. It's necessary that the caller does that directly since the evaluated values for them now get compiled in directly. ! (c-font-lock-init, c-common-init): Separate the font-lock initialization from `c-common-init'. * progmodes/cc-mode.el (c-define-abbrev-table): Do not override an existing abbrev table. ! (c-Java-defun-prompt-regexp): Move here from cc-langs since cc-langs isn't always loaded at runtime. ! * progmodes/cc-langs.el (c-make-init-lang-vars-fun) ! (c-init-language-vars): Change to allow language variable initialization from derived modes. (c-mode-menu): New language variable for the mode menu. ! (c-make-mode-syntax-table, c-mode-syntax-table) ! (make-c++-template-syntax-table): New language variables for syntax tables. The code that initializes them has been moved to cc-mode to make it possible to avoid loading cc-langs at runtime. * progmodes/cc-engine.el, progmodes/cc-langs.el (c-hungry-delete-key, c-auto-newline, c-auto-hungry-string): ! Move these state variables from cc-langs to cc-engine to make it possible to avoid loading cc-langs at runtime. ! * progmodes/cc-defs.el (c-lang-defconst, c-lang-const): ! Move from cc-langs and rewritten to make the language constant system usable from derived modes. (c-add-language): New function intended for use from derived modes that add new C-like languages. * progmodes/cc-defs.el, progmodes/cc-vars.el ! (c-buffer-is-cc-mode): Move from cc-vars to cc-defs to define it during compilation. ! * progmodes/cc-bytecomp.el (cc-require-when-compile): ! New support macro for compile time `require's. 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el, progmodes/cc-mode.el (c-version): ! Move from cc-mode to cc-defs to make it accessible to the other components. ! * progmodes/cc-engine.el (c-forward-token-1, c-backward-token-1): ! Compatibility fix for emacsen that doesn't understand generic ! string delimiters. ! * progmodes/cc-vars.el (c-emacs-features): Add detection of generic string and comment delimiters. * progmodes/cc-defs.el, progmodes/cc-langs.el ! (c-make-keywords-re): Change interface to make it more extensible. ! * progmodes/cc-langs.el, progmodes/cc-defs.el (c-regexp-opt) ! (c-regexp-opt-depth, c-make-keywords-re): Move from cc-langs to cc-defs since they are generally useful. * progmodes/cc-bytecomp.el, progmodes/cc-defs.el ! (cc-eval-when-compile): Move from cc-bytecomp to cc-defs to allow use at runtime. 2003-07-03 Martin Stjernholm ! * progmodes/cc-bytecomp.el (cc-eval-when-compile): ! Workaround for a bug with nested `eval-when-compile' in XEmacs 21. 2003-07-03 Martin Stjernholm *************** *** 829,851 **** * progmodes/cc-align.el (c-lineup-cascaded-calls): Handle "." too, for use in Java. ! * progmodes/cc-engine.el (c-forward-sws, c-backward-sws): Do ! not handle cpp directives in languages that doesn't have any. 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-operators): Added a high level ! description of all operators, along with their precedence and ! associativity. ! * progmodes/cc-align.el (c-lineup-multi-inher): Fixed bug where the position of the point and not the beginning of the line was used to calculate the indentation. 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el, progmodes/cc-engine.el ! (c-backward-single-comment, c-backward-comments): Added kludge for the bug in `forward-comment' in most (X)Emacs versions where it moves back over the "*/" of a block comment if there's no matching "/*". This has become more important now --- 833,854 ---- * progmodes/cc-align.el (c-lineup-cascaded-calls): Handle "." too, for use in Java. ! * progmodes/cc-engine.el (c-forward-sws, c-backward-sws): ! Do not handle cpp directives in languages that doesn't have any. 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-operators): Add a high level description ! of all operators, along with their precedence and associativity. ! * progmodes/cc-align.el (c-lineup-multi-inher): Fix bug where the position of the point and not the beginning of the line was used to calculate the indentation. 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el, progmodes/cc-engine.el ! (c-backward-single-comment, c-backward-comments): Add kludge for the bug in `forward-comment' in most (X)Emacs versions where it moves back over the "*/" of a block comment if there's no matching "/*". This has become more important now *************** *** 853,864 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-hungry-backspace, ! c-hungry-delete-forward): New functions to do hungry deletion regardless of hungry-delete mode. Contributed by Kevin Ryde. ! * progmodes/cc-engine.el (c-forward-sws, c-backward-sws, ! c-invalidate-sws-region): Use text properties to cache regions with complex syntactic whitespace. This helps a lot in improving responsiveness when there are lots of comments and cpp directives before point. --- 856,867 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-hungry-backspace) ! (c-hungry-delete-forward): New functions to do hungry deletion regardless of hungry-delete mode. Contributed by Kevin Ryde. ! * progmodes/cc-engine.el (c-forward-sws, c-backward-sws) ! (c-invalidate-sws-region): Use text properties to cache regions with complex syntactic whitespace. This helps a lot in improving responsiveness when there are lots of comments and cpp directives before point. *************** *** 869,899 **** progmodes/cc-menus.el, progmodes/cc-mode.el, progmodes/cc-styles.el, progmodes/cc-vars.el, progmodes/cc-engine.el, progmodes/cc-fonts.el, ! progmodes/cc-cmds.el, progmodes/cc-defs.el: Introduced a classification of functions into those that make "hidden buffer changes" and those who don't. This is prompted by the increasing use of text properties for various things, to correctly cover the silly buffer modifications that is caused by text property changes. - (c-save-buffer-state): New macro that's put around any code that can manipulate text properties. 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): Setup ! `text-property-default-nonsticky' to avoid messing with the rear-nonsticky property on each character in Emacs 21. ! * progmodes/cc-defs.el (c-clear-char-syntax, ! c-put-char-syntax): Macros that sets and removes the syntax-table property on a single character and makes the property nonsticky in both directions in a suitable way for each (X)Emacs flavor. * progmodes/cc-vars.el, progmodes/cc-defs.el, ! progmodes/cc-engine.el, progmodes/cc-mode.el: Use ! `lookup-syntax-properties' in XEmacs to control whether the syntax-table property has any effect or not. (c-parse-sexp-lookup-properties): New macro that expands to either --- 872,901 ---- progmodes/cc-menus.el, progmodes/cc-mode.el, progmodes/cc-styles.el, progmodes/cc-vars.el, progmodes/cc-engine.el, progmodes/cc-fonts.el, ! progmodes/cc-cmds.el, progmodes/cc-defs.el: Introduce a classification of functions into those that make "hidden buffer changes" and those who don't. This is prompted by the increasing use of text properties for various things, to correctly cover the silly buffer modifications that is caused by text property changes. (c-save-buffer-state): New macro that's put around any code that can manipulate text properties. 2003-07-03 Martin Stjernholm ! * progmodes/cc-mode.el (c-basic-common-init): ! Setup `text-property-default-nonsticky' to avoid messing with the rear-nonsticky property on each character in Emacs 21. ! * progmodes/cc-defs.el (c-clear-char-syntax, c-put-char-syntax): ! Macros that sets and removes the syntax-table property on a single character and makes the property nonsticky in both directions in a suitable way for each (X)Emacs flavor. * progmodes/cc-vars.el, progmodes/cc-defs.el, ! progmodes/cc-engine.el, progmodes/cc-mode.el: ! Use `lookup-syntax-properties' in XEmacs to control whether the syntax-table property has any effect or not. (c-parse-sexp-lookup-properties): New macro that expands to either *************** *** 913,957 **** and XEmacs now. * progmodes/cc-engine.el (c-forward-sws, c-backward-sws): ! Implemented a cache for the last large skipped over syntactic whitespace. This also has most effect after many macros. * progmodes/cc-engine.el, progmodes/cc-defs.el (c-forward-syntactic-ws, c-backward-syntactic-ws): Utilize the limit better when one is passed. These are now macros to avoid a little overhead when no limit is given. - (c-forward-sws, c-backward-sws): New functions called by the macros above to do the unbounded search. * progmodes/cc-fonts.el (c-font-lock-declarations): ! Implemented a cache for the first backward search for a preceding `c-decl-prefix-re' match. This typically speeds up interactive refontification a lot on the top level of macro heavy header files. 2003-07-03 Martin Stjernholm ! * progmodes/cc-vars.el (c-emacs-features): Added check for syntax text properties. * progmodes/cc-mode.el (c-basic-common-init): Turn on `parse-sexp-lookup-properties' if it's supported. Define the ! variable in any case since it's used at runtime to check on ! this. * progmodes/cc-langs.el (c-identifier-key): Support C++ destructor names. ! ! (c-identifier-start, c-op-token-regexp, c-type-modifier-kwds, ! c-opt-type-modifier-key, c-opt-type-component-key, ! c-typedef-specifier-kwds, c-typedef-specifier-key, ! c-paren-stmt-kwds, c-paren-stmt-key, c-syntactic-ws-start): A ! bunch of new language constants and variables to support the improved handling of names and types. ! * progmodes/cc-fonts.el (c-font-lock-declarators, ! c-font-lock-declarations): Handle C++ template declarations and template references. Fontify complex types and names more accurately by delegating it to `c-forward-type' and `c-forward-name'. Fontify the identifiers in typedef --- 915,956 ---- and XEmacs now. * progmodes/cc-engine.el (c-forward-sws, c-backward-sws): ! Implement a cache for the last large skipped over syntactic whitespace. This also has most effect after many macros. * progmodes/cc-engine.el, progmodes/cc-defs.el (c-forward-syntactic-ws, c-backward-syntactic-ws): Utilize the limit better when one is passed. These are now macros to avoid a little overhead when no limit is given. (c-forward-sws, c-backward-sws): New functions called by the macros above to do the unbounded search. * progmodes/cc-fonts.el (c-font-lock-declarations): ! Implement a cache for the first backward search for a preceding `c-decl-prefix-re' match. This typically speeds up interactive refontification a lot on the top level of macro heavy header files. 2003-07-03 Martin Stjernholm ! * progmodes/cc-vars.el (c-emacs-features): Add check for syntax text properties. * progmodes/cc-mode.el (c-basic-common-init): Turn on `parse-sexp-lookup-properties' if it's supported. Define the ! variable in any case since it's used at runtime to check on this. * progmodes/cc-langs.el (c-identifier-key): Support C++ destructor names. ! (c-identifier-start, c-op-token-regexp, c-type-modifier-kwds) ! (c-opt-type-modifier-key, c-opt-type-component-key) ! (c-typedef-specifier-kwds, c-typedef-specifier-key) ! (c-paren-stmt-kwds, c-paren-stmt-key, c-syntactic-ws-start): ! A bunch of new language constants and variables to support the improved handling of names and types. ! * progmodes/cc-fonts.el (c-font-lock-declarators) ! (c-font-lock-declarations): Handle C++ template declarations and template references. Fontify complex types and names more accurately by delegating it to `c-forward-type' and `c-forward-name'. Fontify the identifiers in typedef *************** *** 961,1001 **** to move forward over a C++ template arglist. It also marks the '<' and '>' chars with paren syntax using the syntax-table property, to speed up later calls in emacsen that support ! syntax text properties (Emacs >= 20 and (undocumented) XEmacs ! 21). ! This also has the very interesting effect that if font locking is used with decoration level 3 or higher in these emacsen then template arglists will behave just like paren sexps with the various sexp movement commands. - (c-forward-name): New function to move over a name. Simple in most languages except C++ where a name can contain template arglists and therefore almost arbitrary expressions. - (c-on-identifier): Fix for Pike operator identifiers. ! (c-simple-skip-symbol-backward, c-syntactic-content, ! c-remove-<>-paren-properties): New helper functions. ! ! * progmodes/cc-defs.el: (c-clear-char-syntax, ! c-mark-paren-open, c-mark-paren-close): New support functions ! to handle syntactic properties on C++ template arglist ! brackets. ! (c-put-type-face, c-put-reference-face): Helpers to put faces on regions, since there are a bit of that inside `c-forward-name' etc in progmodes/cc-engine.el. * progmodes/cc-engine.el, progmodes/cc-fonts.el, ! progmodes/cc-langs.el: Fixed the names on a number of regexp language variables to conform to the nomenclature and shortened some names. * progmodes/cc-align.el, progmodes/cc-cmds.el, progmodes/cc-fonts.el, progmodes/cc-engine.el ! (c-syntactic-re-search-forward): Removed the COUNT argument ! since it's never used. Added an argument to tell which subexpression whose end should be tested for syntactic relevance. Using this also removes some optimizations, so that it's possible to use a look behind subexpression that --- 960,993 ---- to move forward over a C++ template arglist. It also marks the '<' and '>' chars with paren syntax using the syntax-table property, to speed up later calls in emacsen that support ! syntax text properties (Emacs >= 20 and (undocumented) XEmacs 21). This also has the very interesting effect that if font locking is used with decoration level 3 or higher in these emacsen then template arglists will behave just like paren sexps with the various sexp movement commands. (c-forward-name): New function to move over a name. Simple in most languages except C++ where a name can contain template arglists and therefore almost arbitrary expressions. (c-on-identifier): Fix for Pike operator identifiers. + (c-simple-skip-symbol-backward, c-syntactic-content) + (c-remove-<>-paren-properties): New helper functions. ! * progmodes/cc-defs.el: (c-clear-char-syntax) ! (c-mark-paren-open, c-mark-paren-close): New support functions ! to handle syntactic properties on C++ template arglist brackets. (c-put-type-face, c-put-reference-face): Helpers to put faces on regions, since there are a bit of that inside `c-forward-name' etc in progmodes/cc-engine.el. * progmodes/cc-engine.el, progmodes/cc-fonts.el, ! progmodes/cc-langs.el: Fix the names on a number of regexp language variables to conform to the nomenclature and shortened some names. * progmodes/cc-align.el, progmodes/cc-cmds.el, progmodes/cc-fonts.el, progmodes/cc-engine.el ! (c-syntactic-re-search-forward): Remove the COUNT argument ! since it's never used. Add an argument to tell which subexpression whose end should be tested for syntactic relevance. Using this also removes some optimizations, so that it's possible to use a look behind subexpression that *************** *** 1005,1012 **** (c-guess-continued-construct): Don't match <<= or >>= for the stream-op syntactic element. ! * progmodes/cc-defs.el (c-paren-re, c-identifier-re): Removed ! these helper macros since better and more correct tools are now available in progmodes/cc-langs.el. 2003-07-03 Martin Stjernholm --- 997,1004 ---- (c-guess-continued-construct): Don't match <<= or >>= for the stream-op syntactic element. ! * progmodes/cc-defs.el (c-paren-re, c-identifier-re): ! Remove these helper macros since better and more correct tools are now available in progmodes/cc-langs.el. 2003-07-03 Martin Stjernholm *************** *** 1016,1024 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-populate-syntax-table): XEmacs ! classifies the hard space character as a symbol character but ! it's better to let it be in the punctuation class so that it's always highlighted with the inverted invalid face. It can perhaps be argued that that character is allowed in identifiers in some languages (haven't checked), but using it --- 1008,1016 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-populate-syntax-table): ! XEmacs classifies the hard space character as a symbol character ! but it's better to let it be in the punctuation class so that it's always highlighted with the inverted invalid face. It can perhaps be argued that that character is allowed in identifiers in some languages (haven't checked), but using it *************** *** 1026,1032 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-beginning-of-statement-1): Fixed a case when a labeled substatement caused incorrect association of the following continuation clause. --- 1018,1024 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-beginning-of-statement-1): Fix a case when a labeled substatement caused incorrect association of the following continuation clause. *************** *** 1036,1054 **** (c-guess-continued-construct): Analyze the "K&R region" of a function nested inside a function as func-decl-cont and not ! statement-cont. New case E. Also cleaned up case C (stream-op recognition) a bit. * progmodes/cc-engine.el (c-parse-state, c-check-state-cache): ! Moved the check on `c-state-cache-start' from `c-check-state-cache' to `c-parse-state' so that the state cache isn't zapped if `c-check-state-cache' but not ! `c-parse-state' is called during a temporary narrowing. This ! fixes a performance problem that could occur when `fill-paragraph' is used in font lock mode on a comment at the end of a large class or function. ! (c-state-cache-start): Fixed buffer localness. 2003-07-03 Martin Stjernholm --- 1028,1046 ---- (c-guess-continued-construct): Analyze the "K&R region" of a function nested inside a function as func-decl-cont and not ! statement-cont. New case E. Also clean up case C (stream-op recognition) a bit. * progmodes/cc-engine.el (c-parse-state, c-check-state-cache): ! Move the check on `c-state-cache-start' from `c-check-state-cache' to `c-parse-state' so that the state cache isn't zapped if `c-check-state-cache' but not ! `c-parse-state' is called during a temporary narrowing. ! This fixes a performance problem that could occur when `fill-paragraph' is used in font lock mode on a comment at the end of a large class or function. ! (c-state-cache-start): Fix buffer localness. 2003-07-03 Martin Stjernholm *************** *** 1057,1071 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el: Updated the keywords and operator tokens from the latest C++ and Java standards. Some other multichar token corrections. 2003-07-03 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-engine.el, ! progmodes/cc-vars.el (c-syntactic-context, ! c-syntactic-element): Do not bind any values to these variables globally since they should always be dynamically bound. This makes it much easier to debug cases when they've gotten global values somehow. --- 1049,1063 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el: Update the keywords and operator tokens from the latest C++ and Java standards. Some other multichar token corrections. 2003-07-03 Martin Stjernholm * progmodes/cc-cmds.el, progmodes/cc-engine.el, ! progmodes/cc-vars.el (c-syntactic-context) ! (c-syntactic-element): Do not bind any values to these variables globally since they should always be dynamically bound. This makes it much easier to debug cases when they've gotten global values somehow. *************** *** 1074,1099 **** * progmodes/cc-langs.el (c-regexp-opt): Fix to work around the non-greedy behavior that the regexp engine sometimes exposes. ! This bug only shows in (X)Emacs 19 where there's no regexp-opt ! package. * progmodes/cc-engine.el (c-syntactic-re-search-forward): ! Added a feature to filter out matches in the middle of tokens. Changed the comment to a docstring since I consider this function generally useful. ! * progmodes/cc-defs.el (c-mode-symbol): Broke out a part of `c-mode-var'. ! * progmodes/cc-align.el (c-lineup-cascaded-calls, ! c-lineup-gcc-asm-reg): Cope with that `c-most-enclosing-brace' might return nil. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-found-types, c-clear-found-types, ! c-add-type, c-check-type, c-add-complex-type, ! c-list-found-types, c-forward-type): Added a sort of symbol table for types: If a name is recognized as a type in a declaration it's added in an obarray to be able to recognize it in other ambiguous declarations. --- 1066,1090 ---- * progmodes/cc-langs.el (c-regexp-opt): Fix to work around the non-greedy behavior that the regexp engine sometimes exposes. ! This bug only shows in (X)Emacs 19 where there's no regexp-opt package. * progmodes/cc-engine.el (c-syntactic-re-search-forward): ! Add a feature to filter out matches in the middle of tokens. Changed the comment to a docstring since I consider this function generally useful. ! * progmodes/cc-defs.el (c-mode-symbol): Break out a part of `c-mode-var'. ! * progmodes/cc-align.el (c-lineup-cascaded-calls) ! (c-lineup-gcc-asm-reg): Cope with that `c-most-enclosing-brace' might return nil. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-found-types, c-clear-found-types) ! (c-add-type, c-check-type, c-add-complex-type) ! (c-list-found-types, c-forward-type): Add a sort of symbol table for types: If a name is recognized as a type in a declaration it's added in an obarray to be able to recognize it in other ambiguous declarations. *************** *** 1114,1138 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-forward-syntactic-ws): Fixed a bug that could cause an infinite loop if something that looks like a macro begins in the middle of a line. ! (c-parse-state): Fixed a bug that could cause `c-state-cache' to contain two conses in sequence when there's an unbalanced open paren in a macro. 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el (c-face-name-p): A defsubst to ! recognize the name of a face in a way that works also in ! XEmacs. * progmodes/cc-engine.el (c-forward-type): New function to move past a type spec. * progmodes/cc-engine.el (c-syntactic-re-search-forward): ! Fixed behavior when the limit is reached inside a comment, string, or a macro. * progmodes/cc-align.el, progmodes/cc-cmds.el, --- 1105,1128 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-forward-syntactic-ws): Fix a bug that could cause an infinite loop if something that looks like a macro begins in the middle of a line. ! (c-parse-state): Fix a bug that could cause `c-state-cache' to contain two conses in sequence when there's an unbalanced open paren in a macro. 2003-07-03 Martin Stjernholm * progmodes/cc-defs.el (c-face-name-p): A defsubst to ! recognize the name of a face in a way that works also in XEmacs. * progmodes/cc-engine.el (c-forward-type): New function to move past a type spec. * progmodes/cc-engine.el (c-syntactic-re-search-forward): ! Fix behavior when the limit is reached inside a comment, string, or a macro. * progmodes/cc-align.el, progmodes/cc-cmds.el, *************** *** 1143,1158 **** four different cases it's actually used. These replacements also treats line continuations as whitespace. ! (c-forward-comment): Removed. The four different cases above are basically different, so it's better to make them into separate functions than choose between them at runtime using the argument. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-gnu-impose-minimum): Fixed bug due to the new placement of cpp-macro and comment-intro in the ! syntactic context, as pointed out by Kevin Ryde. Changed the method that decides whether point is inside a top-level construct to one that doesn't depend on the set of syntactic elements so much. --- 1133,1148 ---- four different cases it's actually used. These replacements also treats line continuations as whitespace. ! (c-forward-comment): Remove. The four different cases above are basically different, so it's better to make them into separate functions than choose between them at runtime using the argument. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-gnu-impose-minimum): Fix bug due to the new placement of cpp-macro and comment-intro in the ! syntactic context, as pointed out by Kevin Ryde. Change the method that decides whether point is inside a top-level construct to one that doesn't depend on the set of syntactic elements so much. *************** *** 1163,1193 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-mask-comment): Fixed a bug that sometimes caused code after a closed block comment to be taken into account when the fill prefix is calculated. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-arglist, c-lineup-argcont, ! c-lineup-math, c-lineup-cascaded-calls, c-lineup-gcc-asm-reg): Fixes to cope correctly with nested arglists for the lineups that can be used with arglist-cont-nonempty. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-add-stmt-syntax, ! c-guess-basic-syntax): Changed the anchor position of arglist-cont-nonempty and arglist-close so that a relative ! indentation like + can be used with consistent results. Prior ! to this, the indentation engine more or less assumed that ! arglist-cont-nonempty always used `c-lineup-arglist'. Those ! two syntax symbols also get the opening paren as an extra position, to make it possible for `c-lineup-arglist' to continue to do a proper job. ! * progmodes/cc-engine.el (c-get-syntactic-indentation): A ! vector with an absolute indentation column now only overrides the indentation for surrounding structures, i.e. those whose syntactic elements are earlier in the `c-syntactic-context' list, but not nested ones. This so that --- 1153,1183 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-mask-comment): Fix a bug that sometimes caused code after a closed block comment to be taken into account when the fill prefix is calculated. 2003-07-03 Martin Stjernholm ! * progmodes/cc-align.el (c-lineup-arglist, c-lineup-argcont) ! (c-lineup-math, c-lineup-cascaded-calls, c-lineup-gcc-asm-reg): Fixes to cope correctly with nested arglists for the lineups that can be used with arglist-cont-nonempty. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-add-stmt-syntax, c-guess-basic-syntax): ! Change the anchor position of arglist-cont-nonempty and arglist-close so that a relative ! indentation like + can be used with consistent results. ! Prior to this, the indentation engine more or less assumed that ! arglist-cont-nonempty always used `c-lineup-arglist'. ! Those two syntax symbols also get the opening paren as an extra position, to make it possible for `c-lineup-arglist' to continue to do a proper job. ! * progmodes/cc-engine.el (c-get-syntactic-indentation): ! A vector with an absolute indentation column now only overrides the indentation for surrounding structures, i.e. those whose syntactic elements are earlier in the `c-syntactic-context' list, but not nested ones. This so that *************** *** 1196,1202 **** nested things, e.g. the arglist-close of a nested argument list. This change means that the order in `c-syntactic-context' has become more essential. - (c-guess-basic-syntax): Changes to make the nesting order of the returned syntax list correct. --- 1186,1191 ---- *************** *** 1210,1218 **** * progmodes/cc-align.el, progmodes/cc-defs.el, progmodes/cc-engine.el, progmodes/cc-vars.el ! (c-guess-basic-syntax, c-calc-offset, ! c-get-syntactic-indentation, c-syntactic-context): Extended ! the representation of the syntactic context: Previously it was a list containing cons cells of the found syntactic symbols and their relpos values. Now each element is instead a list containing the syntactic symbol in the first element and the --- 1199,1207 ---- * progmodes/cc-align.el, progmodes/cc-defs.el, progmodes/cc-engine.el, progmodes/cc-vars.el ! (c-guess-basic-syntax, c-calc-offset) ! (c-get-syntactic-indentation, c-syntactic-context): ! Extend the representation of the syntactic context: Previously it was a list containing cons cells of the found syntactic symbols and their relpos values. Now each element is instead a list containing the syntactic symbol in the first element and the *************** *** 1229,1236 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-styles.el (c-set-style, c-set-style-1): Added ! another state for the `dont-override' flag where it only keeps globally set variables. 2003-07-03 Martin Stjernholm --- 1218,1225 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-styles.el (c-set-style, c-set-style-1): ! Add another state for the `dont-override' flag where it only keeps globally set variables. 2003-07-03 Martin Stjernholm *************** *** 1241,1258 **** 2003-07-03 Martin Stjernholm * progmodes/cc-vars.el, progmodes/cc-fonts.el, ! progmodes/cc-langs.el, progmodes/cc-mode.el: Added font lock ! support. * progmodes/cc-engine.el (c-beginning-of-syntax): New function ! to be used for font-lock-beginning-of-syntax-function. It ! uses the state cache to quickly find a good position. * progmodes/cc-defs.el (c-major-mode-is): Allow a list of modes. Made it a macro ensure that it's optimized to either eq or memq for constant arguments. ! * progmodes/cc-mode.el (c-common-init): Did away with the hardcoded setting of `comment-column'; it's a user variable that we have no business meddling with. Since the default value for it is 32 in all supported (X)Emacs versions, it's --- 1230,1246 ---- 2003-07-03 Martin Stjernholm * progmodes/cc-vars.el, progmodes/cc-fonts.el, ! progmodes/cc-langs.el, progmodes/cc-mode.el: Add font lock support. * progmodes/cc-engine.el (c-beginning-of-syntax): New function ! to be used for font-lock-beginning-of-syntax-function. ! It uses the state cache to quickly find a good position. * progmodes/cc-defs.el (c-major-mode-is): Allow a list of modes. Made it a macro ensure that it's optimized to either eq or memq for constant arguments. ! * progmodes/cc-mode.el (c-common-init): Do away with the hardcoded setting of `comment-column'; it's a user variable that we have no business meddling with. Since the default value for it is 32 in all supported (X)Emacs versions, it's *************** *** 1265,1286 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-add-stmt-syntax): Fixed some cases of wrong anchoring, e.g. for else-if compounds. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-guess-basic-syntax): Fixed anchor position for defun-open in K&R style functions. ! * progmodes/cc-engine.el (c-in-knr-argdecl): Don't trip up on ! macros. (c-search-decl-header-end): Handle C++ template arguments more correctly. ! (c-beginning-of-decl-1): Fix when the declaration is first in a ! macro. 2003-07-03 Martin Stjernholm --- 1253,1272 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-add-stmt-syntax): Fix some cases of wrong anchoring, e.g. for else-if compounds. 2003-07-03 Martin Stjernholm ! * progmodes/cc-engine.el (c-guess-basic-syntax): Fix anchor position for defun-open in K&R style functions. ! * progmodes/cc-engine.el (c-in-knr-argdecl): Don't trip up on macros. (c-search-decl-header-end): Handle C++ template arguments more correctly. ! (c-beginning-of-decl-1): Fix when the declaration is first in a macro. 2003-07-03 Martin Stjernholm *************** *** 1293,1313 **** 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-make-keywords-re): Fixed the ! keyword adornment so that it works when a keyword ends with ! "_". 2003-07-03 Martin Stjernholm * progmodes/cc-cmds.el (c-mask-comment): More fixes when used from `c-do-auto-fill' and point is at or near the limit of the ! comment. Fixed bug when the prefix from `c-guess-fill-prefix' is longer than the text on the first line of the comment when it's masked. 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-mask-comment): Fixed bug where point was moved to the following line when it was at the first line of a block comment where comment-start-skip matched to eol. --- 1279,1298 ---- 2003-07-03 Martin Stjernholm ! * progmodes/cc-langs.el (c-make-keywords-re): Fix the ! keyword adornment so that it works when a keyword ends with "_". 2003-07-03 Martin Stjernholm * progmodes/cc-cmds.el (c-mask-comment): More fixes when used from `c-do-auto-fill' and point is at or near the limit of the ! comment. Fix bug when the prefix from `c-guess-fill-prefix' is longer than the text on the first line of the comment when it's masked. 2003-07-03 Martin Stjernholm ! * progmodes/cc-cmds.el (c-mask-comment): Fix bug where point was moved to the following line when it was at the first line of a block comment where comment-start-skip matched to eol. *************** *** 1338,1345 **** * menu-bar.el (menu-bar-options-menu): Move mouse-set-fonts item here. ! * international/mule-cmds.el (mule-menu-keymap): Delete ! mouse-set-fonts item here. 2003-06-29 Nick Roberts --- 1323,1330 ---- * menu-bar.el (menu-bar-options-menu): Move mouse-set-fonts item here. ! * international/mule-cmds.el (mule-menu-keymap): ! Delete mouse-set-fonts item here. 2003-06-29 Nick Roberts *************** *** 1359,1370 **** 2003-06-27 Kai Gro,A_(Bjohann ! * international/mule-cmds.el (menu-bar-options-menu): Move ! `mouse-set-fonts' here from Options/Mule submenu. 2003-06-26 Stephen Eglen ! * iswitchb.el (iswitchb-read-buffer): Remove redudant variable iswitchb-prepost-hooks. (iswitchb-xemacs): Delete variable and use (featurep 'xemacs) and fboundp instead. --- 1344,1355 ---- 2003-06-27 Kai Gro,A_(Bjohann ! * international/mule-cmds.el (menu-bar-options-menu): ! Move `mouse-set-fonts' here from Options/Mule submenu. 2003-06-26 Stephen Eglen ! * iswitchb.el (iswitchb-read-buffer): Remove redundant variable iswitchb-prepost-hooks. (iswitchb-xemacs): Delete variable and use (featurep 'xemacs) and fboundp instead. *************** *** 1373,1386 **** 2003-06-20 Masatake YAMATO ! * progmodes/asm-mode.el (asm-font-lock-keywords): Support ! labels starting with "." and directives starting with ".". 2003-06-22 Andreas Schwab ! * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): Avoid ! variable as format argument for error. Don't call symbol-name on ! string. * eshell/esh-opt.el (eshell-do-opt): Avoid variable as format argument for error. --- 1358,1371 ---- 2003-06-20 Masatake YAMATO ! * progmodes/asm-mode.el (asm-font-lock-keywords): ! Support labels starting with "." and directives starting with ".". 2003-06-22 Andreas Schwab ! * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): ! Avoid variable as format argument for error. ! Don't call symbol-name on string. * eshell/esh-opt.el (eshell-do-opt): Avoid variable as format argument for error. *************** *** 1393,1400 **** (diary, view-diary-entries, show-all-diary-entries) (mark-diary-entries): Use it. (view-other-diary-entries): Doc fix. Use `prefix-numeric-value'. ! (diary-syntax-table, diary-attrtype-convert, diary-mail-days): Doc ! fix. (diary-modified, d-file): No need to defvar (for compiler). (list-diary-entries): No need for `let*' so use `let'. (simple-diary-display): Use `diary-file' directly rather than --- 1378,1384 ---- (diary, view-diary-entries, show-all-diary-entries) (mark-diary-entries): Use it. (view-other-diary-entries): Doc fix. Use `prefix-numeric-value'. ! (diary-syntax-table, diary-attrtype-convert, diary-mail-days): Doc fix. (diary-modified, d-file): No need to defvar (for compiler). (list-diary-entries): No need for `let*' so use `let'. (simple-diary-display): Use `diary-file' directly rather than *************** *** 1403,1410 **** `mode-line-format' already buffer-local. (diary-mail-addr): Set to the empty string (rather than nil) if undefined, as per `user-mail-address'. ! (diary-mail-entries): Doc fix. Error if `diary-mail-address' ! unset. (mark-sexp-diary-entries): Don't regexp-quote sexp-mark twice. Remove an un-needed `if'. (list-sexp-diary-entries): Remove local vars mark and s-entry, and --- 1387,1393 ---- `mode-line-format' already buffer-local. (diary-mail-addr): Set to the empty string (rather than nil) if undefined, as per `user-mail-address'. ! (diary-mail-entries): Doc fix. Error if `diary-mail-address' unset. (mark-sexp-diary-entries): Don't regexp-quote sexp-mark twice. Remove an un-needed `if'. (list-sexp-diary-entries): Remove local vars mark and s-entry, and From MAILER-DAEMON Sat Jul 05 07:24:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Yl8r-0005mj-1b for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:23:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Yl8B-0004wq-RU for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:23:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yl7z-0004md-8Q for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:22:52 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Yl6k-00047V-9c for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:21:34 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19Yl5i-0003Aa-Gg for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:20:30 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 05 Jul 2003 07:20:30 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ibuf-ext.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 11:23:42 -0000 Index: emacs/lisp/ibuf-ext.el diff -c emacs/lisp/ibuf-ext.el:1.33 emacs/lisp/ibuf-ext.el:1.34 *** emacs/lisp/ibuf-ext.el:1.33 Fri Apr 4 16:47:03 2003 --- emacs/lisp/ibuf-ext.el Sat Jul 5 07:20:30 2003 *************** *** 35,41 **** (require 'ibuffer) (eval-when-compile - (require 'derived) (require 'ibuf-macs) (require 'cl)) --- 35,40 ---- *************** *** 556,562 **** (cons (format "%s" mode) `((mode . ,mode)))) (let ((modes (ibuffer-remove-duplicates ! (mapcar (lambda (buf) (with-current-buffer buf major-mode)) (buffer-list))))) (if ibuffer-view-ibuffer modes --- 555,562 ---- (cons (format "%s" mode) `((mode . ,mode)))) (let ((modes (ibuffer-remove-duplicates ! (mapcar (lambda (buf) ! (with-current-buffer buf major-mode)) (buffer-list))))) (if ibuffer-view-ibuffer modes *************** *** 586,592 **** ;;;###autoload (defun ibuffer-decompose-filter-group (group) "Decompose the filter group GROUP into active filters." ! (interactive (list (ibuffer-read-filter-group-name "Decompose filter group: " t))) (let ((data (cdr (assoc group ibuffer-filter-groups)))) (setq ibuffer-filter-groups (ibuffer-delete-alist group ibuffer-filter-groups) --- 586,593 ---- ;;;###autoload (defun ibuffer-decompose-filter-group (group) "Decompose the filter group GROUP into active filters." ! (interactive ! (list (ibuffer-read-filter-group-name "Decompose filter group: " t))) (let ((data (cdr (assoc group ibuffer-filter-groups)))) (setq ibuffer-filter-groups (ibuffer-delete-alist group ibuffer-filter-groups) *************** *** 620,626 **** ;;;###autoload (defun ibuffer-jump-to-filter-group (name) "Move point to the filter group whose name is NAME." ! (interactive (list (ibuffer-read-filter-group-name "Jump to filter group: "))) (ibuffer-aif (assoc name (ibuffer-current-filter-groups-with-position)) (goto-char (cdr it)) (error "No filter group with name %s" name))) --- 621,628 ---- ;;;###autoload (defun ibuffer-jump-to-filter-group (name) "Move point to the filter group whose name is NAME." ! (interactive ! (list (ibuffer-read-filter-group-name "Jump to filter group: "))) (ibuffer-aif (assoc name (ibuffer-current-filter-groups-with-position)) (goto-char (cdr it)) (error "No filter group with name %s" name))) *************** *** 667,673 **** (setq groups (cdr groups)))) res))) (cond ((not found) ! (setq ibuffer-filter-groups (nconc ibuffer-filter-groups (list newgroup)))) ((zerop pos) (push newgroup ibuffer-filter-groups)) (t --- 669,676 ---- (setq groups (cdr groups)))) res))) (cond ((not found) ! (setq ibuffer-filter-groups ! (nconc ibuffer-filter-groups (list newgroup)))) ((zerop pos) (push newgroup ibuffer-filter-groups)) (t *************** *** 836,849 **** (not (eq 'or (caar ibuffer-filtering-qualifiers)))) (error "Top filter is not an OR")) (let ((lim (pop ibuffer-filtering-qualifiers))) ! (setq ibuffer-filtering-qualifiers (nconc (cdr lim) ibuffer-filtering-qualifiers)))) (when (< (length ibuffer-filtering-qualifiers) 2) (error "Need two filters to OR")) ;; If the second filter is an OR, just add to it. (let ((first (pop ibuffer-filtering-qualifiers)) (second (pop ibuffer-filtering-qualifiers))) (if (eq 'or (car second)) ! (push (nconc (list 'or first) (cdr second)) ibuffer-filtering-qualifiers) (push (list 'or first second) ibuffer-filtering-qualifiers)))) (ibuffer-update nil t)) --- 839,854 ---- (not (eq 'or (caar ibuffer-filtering-qualifiers)))) (error "Top filter is not an OR")) (let ((lim (pop ibuffer-filtering-qualifiers))) ! (setq ibuffer-filtering-qualifiers ! (nconc (cdr lim) ibuffer-filtering-qualifiers)))) (when (< (length ibuffer-filtering-qualifiers) 2) (error "Need two filters to OR")) ;; If the second filter is an OR, just add to it. (let ((first (pop ibuffer-filtering-qualifiers)) (second (pop ibuffer-filtering-qualifiers))) (if (eq 'or (car second)) ! (push (nconc (list 'or first) (cdr second)) ! ibuffer-filtering-qualifiers) (push (list 'or first second) ibuffer-filtering-qualifiers)))) (ibuffer-update nil t)) From MAILER-DAEMON Sat Jul 05 07:25:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YlAC-0006Y2-Qc for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:25:08 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Yl96-00065w-6n for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:24:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yl8a-0005Pc-It for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:23:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Yl86-0004uV-PR for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:22:58 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19Yl75-0003ql-U1 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:21:55 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 05 Jul 2003 07:21:55 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ibuffer.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 11:25:07 -0000 Index: emacs/lisp/ibuffer.el diff -c emacs/lisp/ibuffer.el:1.54 emacs/lisp/ibuffer.el:1.55 *** emacs/lisp/ibuffer.el:1.54 Sun May 18 14:24:52 2003 --- emacs/lisp/ibuffer.el Sat Jul 5 07:21:55 2003 *************** *** 757,767 **** (define-key ibuffer-mode-groups-popup [kill-filter-group] '(menu-item "Kill filter group" ibuffer-kill-line ! :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) (define-key ibuffer-mode-groups-popup [yank-filter-group] '(menu-item "Yank last killed filter group" ibuffer-yank ! :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring))) (defvar ibuffer-name-map (let ((map (make-sparse-keymap))) --- 757,769 ---- (define-key ibuffer-mode-groups-popup [kill-filter-group] '(menu-item "Kill filter group" ibuffer-kill-line ! :enable (and (featurep 'ibuf-ext) ! ibuffer-filter-groups))) (define-key ibuffer-mode-groups-popup [yank-filter-group] '(menu-item "Yank last killed filter group" ibuffer-yank ! :enable (and (featurep 'ibuf-ext) ! ibuffer-filter-group-kill-ring))) (defvar ibuffer-name-map (let ((map (make-sparse-keymap))) *************** *** 904,918 **** (defun ibuffer-backward-line (&optional arg skip-group-names) "Move backwards ARG lines, wrapping around the list if necessary." (interactive "P") ! (unless arg ! (setq arg 1)) (beginning-of-line) (while (> arg 0) (forward-line -1) (when (and ibuffer-movement-cycle (or (get-text-property (point) 'ibuffer-title) (and skip-group-names ! (get-text-property (point) 'ibuffer-filter-group-name)))) (goto-char (point-max)) (beginning-of-line)) (ibuffer-skip-properties (append '(ibuffer-summary) --- 906,920 ---- (defun ibuffer-backward-line (&optional arg skip-group-names) "Move backwards ARG lines, wrapping around the list if necessary." (interactive "P") ! (or arg (setq arg 1)) (beginning-of-line) (while (> arg 0) (forward-line -1) (when (and ibuffer-movement-cycle (or (get-text-property (point) 'ibuffer-title) (and skip-group-names ! (get-text-property (point) ! 'ibuffer-filter-group-name)))) (goto-char (point-max)) (beginning-of-line)) (ibuffer-skip-properties (append '(ibuffer-summary) *************** *** 928,935 **** (defun ibuffer-forward-line (&optional arg skip-group-names) "Move forward ARG lines, wrapping around the list if necessary." (interactive "P") ! (unless arg ! (setq arg 1)) (beginning-of-line) (when (and ibuffer-movement-cycle (or (eobp) --- 930,936 ---- (defun ibuffer-forward-line (&optional arg skip-group-names) "Move forward ARG lines, wrapping around the list if necessary." (interactive "P") ! (or arg (setq arg 1)) (beginning-of-line) (when (and ibuffer-movement-cycle (or (eobp) *************** *** 1266,1273 **** (defun ibuffer-mark-interactive (arg mark movement) (assert (eq major-mode 'ibuffer-mode)) ! (unless arg ! (setq arg 1)) (ibuffer-forward-line 0) (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name) (progn --- 1267,1273 ---- (defun ibuffer-mark-interactive (arg mark movement) (assert (eq major-mode 'ibuffer-mode)) ! (or arg (setq arg 1)) (ibuffer-forward-line 0) (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name) (progn *************** *** 1391,1397 **** (defun ibuffer-compile-make-format-form (strvar widthform alignment) (let* ((left `(make-string tmp2 ? )) ! (right `(make-string (- tmp1 tmp2) ? ))) `(progn (setq tmp1 ,widthform tmp2 (/ tmp1 2)) --- 1391,1397 ---- (defun ibuffer-compile-make-format-form (strvar widthform alignment) (let* ((left `(make-string tmp2 ? )) ! (right `(make-string (- tmp1 tmp2) ? ))) `(progn (setq tmp1 ,widthform tmp2 (/ tmp1 2)) *************** *** 1602,1608 **** (define-ibuffer-column read-only (:name "R" :inline t) (if buffer-read-only ! "%" " ")) (define-ibuffer-column modified (:name "M" :inline t) --- 1602,1608 ---- (define-ibuffer-column read-only (:name "R" :inline t) (if buffer-read-only ! (string ibuffer-read-only-char) " ")) (define-ibuffer-column modified (:name "M" :inline t) *************** *** 1610,1625 **** (string ibuffer-modified-char) " ")) ! (define-ibuffer-column name (:inline t ! :props ! ('mouse-face 'highlight 'keymap ibuffer-name-map ! 'ibuffer-name-column t ! 'help-echo '(if tooltip-mode ! "mouse-1: mark this buffer\nmouse-2: select this buffer\nmouse-3: operate on this buffer" ! "mouse-1: mark buffer mouse-2: select buffer mouse-3: operate"))) (propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer mark))) ! (define-ibuffer-column size (:inline t) (format "%s" (buffer-size))) (define-ibuffer-column mode (:inline t --- 1610,1642 ---- (string ibuffer-modified-char) " ")) ! (define-ibuffer-column name ! (:inline t ! :props ! ('mouse-face 'highlight 'keymap ibuffer-name-map ! 'ibuffer-name-column t ! 'help-echo '(if tooltip-mode ! "mouse-1: mark this buffer\nmouse-2: select this buffer\nmouse-3: operate on this buffer" ! "mouse-1: mark buffer mouse-2: select buffer mouse-3: operate")) ! :summarizer ! (lambda (strings) ! (let ((bufs (length strings))) ! (cond ((zerop bufs) "No buffers") ! ((= 1 bufs) "1 buffer") ! (t (format "%s buffers" bufs)))))) (propertize (buffer-name) 'font-lock-face (ibuffer-buffer-name-face buffer mark))) ! (define-ibuffer-column size ! (:inline t ! :summarizer ! (lambda (column-strings) ! (let ((total 0)) ! (dolist (string column-strings) ! (setq total ! ;; like, ewww ... ! (+ (float (string-to-int string)) ! total))) ! (format "%.0f" total)))) (format "%s" (buffer-size))) (define-ibuffer-column mode (:inline t *************** *** 1629,1640 **** 'help-echo "mouse-2: filter by this mode")) (format "%s" mode-name)) ! (define-ibuffer-column process () (ibuffer-aif (get-buffer-process buffer) (format "(%s %s)" it (process-status it)) ! "none")) ! (define-ibuffer-column filename () (let ((directory-abbrev-alist ibuffer-directory-abbrev-alist)) (abbreviate-file-name (or buffer-file-name --- 1646,1669 ---- 'help-echo "mouse-2: filter by this mode")) (format "%s" mode-name)) ! (define-ibuffer-column process ! (:summarizer ! (lambda (strings) ! (let ((total (length (delete "" strings)))) ! (cond ((zerop total) "No processes") ! ((= 1 total) "1 process") ! (t (format "%d processes" total)))))) (ibuffer-aif (get-buffer-process buffer) (format "(%s %s)" it (process-status it)) ! "")) ! (define-ibuffer-column filename ! (:summarizer ! (lambda (strings) ! (let ((total (length (delete "" strings)))) ! (cond ((zerop total) "No files") ! ((= 1 total) "1 file") ! (t (format "%d files" total)))))) (let ((directory-abbrev-alist ibuffer-directory-abbrev-alist)) (abbreviate-file-name (or buffer-file-name *************** *** 1642,1654 **** dired-directory) "")))) ! (define-ibuffer-column filename-and-process (:name "Filename/Process") (let ((proc (get-buffer-process buffer)) (filename (ibuffer-make-column-filename buffer mark))) (if proc ! (concat (propertize (format "(%s %s) " proc (process-status proc)) 'font-lock-face 'italic) ! filename) filename))) (defun ibuffer-format-column (str width alignment) --- 1671,1704 ---- dired-directory) "")))) ! (define-ibuffer-column filename-and-process ! (:name "Filename/Process" ! :summarizer ! (lambda (strings) ! (setq strings (delete "" strings)) ! (let ((procs 0) ! (files 0)) ! (dolist (string strings) ! (if (string-match "\\(\?:\\`(\[\[:ascii:\]\]\+)\\)" string) ! (progn (setq procs (1+ procs)) ! (if (< (match-end 0) (length string)) ! (setq files (1+ files)))) ! (setq files (1+ files)))) ! (concat (cond ((zerop files) "No files") ! ((= 1 files) "1 file") ! (t (format "%d files" files))) ! ", " ! (cond ((zerop procs) "no processes") ! ((= 1 procs) "1 process") ! (t (format "%d processes" procs))))))) (let ((proc (get-buffer-process buffer)) (filename (ibuffer-make-column-filename buffer mark))) (if proc ! (concat (propertize (format "(%s %s)" proc (process-status proc)) 'font-lock-face 'italic) ! (if (> (length filename) 0) ! (format " %s" filename) ! "")) filename))) (defun ibuffer-format-column (str width alignment) *************** *** 2182,2190 **** (interactive "P") (when ibuffer-use-other-window (setq other-window-p t)) ! (let* ((buf (get-buffer-create (or name "*Ibuffer*"))) ! (already-in (eq (current-buffer) buf)) ! (need-update nil)) (if other-window-p (funcall (if noselect #'(lambda (buf) (display-buffer buf t)) #'pop-to-buffer) buf) (funcall (if noselect #'display-buffer #'switch-to-buffer) buf)) --- 2232,2238 ---- (interactive "P") (when ibuffer-use-other-window (setq other-window-p t)) ! (let ((buf (get-buffer-create (or name "*Ibuffer*")))) (if other-window-p (funcall (if noselect #'(lambda (buf) (display-buffer buf t)) #'pop-to-buffer) buf) (funcall (if noselect #'display-buffer #'switch-to-buffer) buf)) *************** *** 2193,2201 **** ;; We switch to the buffer's window in order to be able ;; to modify the value of point (select-window (get-buffer-window buf)) ! (unless (eq major-mode 'ibuffer-mode) ! (ibuffer-mode) ! (setq need-update t)) (setq ibuffer-delete-window-on-quit other-window-p) (when shrink (setq ibuffer-shrink-to-minimum-size shrink)) --- 2241,2248 ---- ;; We switch to the buffer's window in order to be able ;; to modify the value of point (select-window (get-buffer-window buf)) ! (or (eq major-mode 'ibuffer-mode) ! (ibuffer-mode)) (setq ibuffer-delete-window-on-quit other-window-p) (when shrink (setq ibuffer-shrink-to-minimum-size shrink)) From MAILER-DAEMON Sat Jul 05 07:27:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YlCK-0007jz-7E for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:27:20 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YlC2-0007Uo-CM for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:27:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YlAn-0006x7-Lb for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:25:46 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YlA9-0006Vq-Nt for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:25:05 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19Yl98-0004L2-IC for emacs-diffs@gnu.org; Sat, 05 Jul 2003 07:24:02 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 05 Jul 2003 07:24:02 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 11:27:19 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5258 emacs/lisp/ChangeLog:1.5259 *** emacs/lisp/ChangeLog:1.5258 Fri Jul 4 20:36:30 2003 --- emacs/lisp/ChangeLog Sat Jul 5 07:24:00 2003 *************** *** 1,3 **** --- 1,16 ---- + 2003-07-05 John Paul Wallington + + * ibuffer.el (ibuffer-backward-line, ibuffer-forward-line) + (ibuffer-mark-interactive): Use `or' instead of `unless'. + (define-ibuffer-column name): Add summarizer. + (define-ibuffer-column size): Likewise. + (define-ibuffer-column filename): Likewise. + (define-ibuffer-column process): Likewise. Change BODY's output too. + (define-ibuffer-column filename-and-process): Likewise, likewise. + (ibuffer): Remove local vars `already-in' and `need-update'. + + * ibuf-ext.el: Don't require `derived' at compile-time. + 2003-07-05 Kim F. Storm * info.el: Disable paragraph refilling. From MAILER-DAEMON Sat Jul 05 08:43:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YmNY-0002te-Or for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:43:00 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YmNT-0002cT-94 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:42:55 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YmNG-000237-6B for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:42:45 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YmN5-0001Ve-ME for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:42:31 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19YmM1-0001Zk-SE for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:41:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sat, 05 Jul 2003 08:41:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 12:43:00 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5259 emacs/lisp/ChangeLog:1.5260 *** emacs/lisp/ChangeLog:1.5259 Sat Jul 5 07:24:00 2003 --- emacs/lisp/ChangeLog Sat Jul 5 08:41:24 2003 *************** *** 1,3 **** --- 1,94 ---- + 2003-06-30 Roland Winkler + + * textmodes/bibtex.el (bibtex-sort-entry-class): new entry + catch-all. + (bibtex-sort-ignore-string-entries): default value t. + (bibtex-entry-kill-ring-max): Reintroduced as it was removed + erroneously in previous version. + (bibtex-string-files): Docstring reflects new parsing scheme. + (bibtex-autokey-transcriptions): Merge some rewrite entries, fix + docstring, add # as one of the chars to crush + (bibtex-autokey-prefix-string, bibtex-autokey-names) + (bibtex-autokey-names-stretch, bibtex-autokey-additional-names) + (bibtex-autokey-name-change-strings) + (bibtex-autokey-name-case-convert, bibtex-autokey-name-length) + (bibtex-autokey-name-separator, bibtex-autokey-year-length) + (bibtex-autokey-use-crossref, bibtex-autokey-titlewords) + (bibtex-autokey-title-terminators) + (bibtex-autokey-titlewords-stretch) + (bibtex-autokey-titleword-ignore) + (bibtex-autokey-titleword-case-convert) + (bibtex-autokey-titleword-abbrevs) + (bibtex-autokey-titleword-abbrevs) + (bibtex-autokey-titleword-change-strings) + (bibtex-autokey-titleword-length) + (bibtex-autokey-titleword-separator) + (bibtex-autokey-name-year-separator) + (bibtex-autokey-year-title-separator) + (bibtex-autokey-before-presentation-function) + (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix + docstring. + (bibtex-strings, bibtex-reference-keys): Use + lazy-completion-table and make-variable-buffer-local. + (bibtex-sort-entry-class-alist): Use downcase, account for + catch-all. + (bibtex-braced-string-syntax-table) + (bibtex-quoted-string-syntax-table): New variables. + (bibtex-parse-nested-braces): Remove. + (bibtex-parse-field-string): Use syntax table and forward-sexp. + (bibtex-parse-association): Simplify. + (bibtex-parse-field-name): Obey bibtex-autoadd-commas. + (bibtex-parse-field-text): Simplify. + (bibtex-search-forward-field, bibtex-search-backward-field): + argument BOUND can take value t. + (bibtex-start-of-field, bibtex-start-of-name-in-field) + (bibtex-end-of-name-in-field, bibtex-end-of-field) + (bibtex-start-of-text-in-field, bibtex-end-of-text-in-field) + (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) + (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. + (bibtex-skip-to-valid-entry): Return buffer position of beginning + and ending of entry. Update for changes of bibtex-search-entry. + Simplify. + (bibtex-map-entries): FUN is called with three arguments. + (bibtex-search-entry): Return a cons pair with buffer positions of + beginning and end of entry. + (bibtex-enclosing-field): Simplify. + (bibtex-format-entry): Use booktitle to set a missing title. + (bibtex-autokey-get-names): Fiddle with regexps. + (bibtex-generate-autokey): Use identity. + (bibtex-parse-keys): Use simplified parsing algorithm if + bibtex-parse-keys-fast is non-nil. Simplify. Change order of + arguments. Return alist of keys. + (bibtex-parse-strings): Simplify. Return alist of strings. + (bibtex-complete-string-cleanup): Fix docstring. + (bibtex-read-key): New function. + (bibtex-mode): Fix docstring. Do not parse for keys and + strings when the mode is entered. Set fill-paragraph-function to + bibtex-fill-field. Setup font-lock-mark-block-function the way + font-lock intended. + (bibtex-entry): Use bibtex-read-key. Obey bibtex-autofill-types. + (bibtex-parse-entry, bibtex-autofill-entry): New functions. + (bibtex-print-help-message, bibtex-remove-OPT-or-ALT) + (bibtex-Preamble): Avoid hard coded constants. + (bibtex-make-field): Fix docstring. Simplify. + (bibtex-beginning-of-entry): Always return new position of point. + (bibtex-end-of-entry): Rearrange cond clauses. + (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update + for changes of bibtex-map-entries. + (bibtex-ispell-abstract): Do not move point. + (bibtex-entry-index): Use downcase. Simplify. + (bibtex-lessp): Handle catch-all. + (bibtex-find-crossref): Turned into a command. + (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. + (bibtex-clean-entry): Use bibtex-read-key. Handle string and + preamble entries. + (bibtex-fill-field-bounds): New function. + (bibtex-fill-field): New command. Bound to + fill-paragraph-function. + (bibtex-fill-entry): Use bibtex-fill-field-bounds + (bibtex-String): Use bibtex-strings. Always obey + bibtex-sort-ignore-string-entries. + 2003-07-05 John Paul Wallington * ibuffer.el (ibuffer-backward-line, ibuffer-forward-line) From MAILER-DAEMON Sat Jul 05 08:43:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YmNh-0003Ci-Ck for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:43:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YmNb-0002xU-Mf for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:43:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YmNF-00021u-Kj for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:42:58 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YmN5-0001XQ-ME for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:42:31 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19YmM2-0001Zo-7s for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:41:26 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sat, 05 Jul 2003 08:41:26 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/bibtex.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 12:43:06 -0000 Index: emacs/lisp/textmodes/bibtex.el diff -c emacs/lisp/textmodes/bibtex.el:1.76 emacs/lisp/textmodes/bibtex.el:1.77 *** emacs/lisp/textmodes/bibtex.el:1.76 Mon Jun 2 18:41:50 2003 --- emacs/lisp/textmodes/bibtex.el Sat Jul 5 08:41:24 2003 *************** *** 150,158 **** (defcustom bibtex-maintain-sorted-entries nil "*If non-nil, BibTeX mode maintains all BibTeX entries in sorted order. ! If it is nil this will strip off some comfort (e.g., TAB ! completion for reference keys in minibuffer, automatic detection of ! duplicates) from BibTeX mode. Allowed non-nil values are: plain All entries are sorted alphabetically. crossref All entries are sorted alphabetically unless an entry has a crossref field. These crossrefed entries are placed in --- 150,156 ---- (defcustom bibtex-maintain-sorted-entries nil "*If non-nil, BibTeX mode maintains all BibTeX entries in sorted order. ! Allowed non-nil values are: plain All entries are sorted alphabetically. crossref All entries are sorted alphabetically unless an entry has a crossref field. These crossrefed entries are placed in *************** *** 169,185 **** (defvar bibtex-sort-entry-class '(("String") ! ("Article" "InBook" "InCollection" "InProceedings") ! ("Book" "Proceedings") ! ("Booklet" "Manual" "MastersThesis" "PhdThesis" "TechReport" ) ! ("Misc" "Unpublished")) "*List of classes of BibTeX entry names, used for sorting entries. ! Each class contains a list of entry names. If value of ! `bibtex-maintain-sorted-entries' is `entry-class' entries are ordered ! according to the classes they belong to.") ! (defcustom bibtex-sort-ignore-string-entries ! (not (equal bibtex-maintain-sorted-entries 'entry-class)) "*If non-nil, BibTeX @String entries are not sort-significant. That means they are ignored when determining ordering of the buffer \(e.g., sorting, locating alphabetical position for new entries, etc.)." --- 167,181 ---- (defvar bibtex-sort-entry-class '(("String") ! (catch-all) ! ("Book" "Proceedings")) "*List of classes of BibTeX entry names, used for sorting entries. ! If value of `bibtex-maintain-sorted-entries' is `entry-class' ! entries are ordered according to the classes they belong to. Each ! class contains a list of entry names. An entry `catch-all' applies ! to all entries not explicitely mentioned.") ! (defcustom bibtex-sort-ignore-string-entries t "*If non-nil, BibTeX @String entries are not sort-significant. That means they are ignored when determining ordering of the buffer \(e.g., sorting, locating alphabetical position for new entries, etc.)." *************** *** 191,196 **** --- 187,197 ---- :group 'bibtex :type 'integer) + (defcustom bibtex-entry-kill-ring-max 20 + "*Max length of `bibtex-entry-kill-ring' before discarding oldest elements." + :group 'bibtex + :type 'integer) + (defcustom bibtex-parse-keys-timeout 60 "*Specify interval for parsing BibTeX buffers. All BibTeX buffers in Emacs are parsed if Emacs has been idle *************** *** 199,415 **** :group 'bibtex :type 'integer) (defvar bibtex-entry-field-alist '( ("Article" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article (BibTeX converts it to lowercase)") ! ("journal" "Name of the journal (use string, remove braces)") ! ("year" "Year of publication")) ! (("volume" "Volume of the journal") ! ("number" "Number of the journal (only allowed if entry contains volume)") ! ("pages" "Pages in the journal") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article (BibTeX converts it to lowercase)")) ! (("pages" "Pages in the journal") ! ("journal" "Name of the journal (use string, remove braces)") ! ("year" "Year of publication") ! ("volume" "Volume of the journal") ! ("number" "Number of the journal") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Book" ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication")) ! (("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book")) ! (("publisher" "Publishing company") ! ("year" "Year of publication") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Booklet" ((("title" "Title of the booklet (BibTeX converts it to lowercase)")) ! (("author" "Author1 [and Author2 ...] [and others]") ! ("howpublished" "The way in which the booklet was published") ! ("address" "Address of the publisher") ! ("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("InBook" ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book") ! ("chapter" "Chapter in the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication")) ! (("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("pages" "Pages in the book") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book") ! ("chapter" "Chapter in the book")) ! (("pages" "Pages in the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("InCollection" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in book (BibTeX converts it to lowercase)") ! ("booktitle" "Name of the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication")) ! (("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("chapter" "Chapter in the book") ! ("pages" "Pages in the book") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in book (BibTeX converts it to lowercase)") ! ("booktitle" "Name of the book")) ! (("pages" "Pages in the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication") ! ("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("chapter" "Chapter in the book") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("InProceedings" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)") ! ("booktitle" "Name of the conference proceedings") ! ("year" "Year of publication")) ! (("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the conference proceedings in the series") ! ("number" "Number of the conference proceedings in a small series (overwritten by volume)") ! ("series" "Series in which the conference proceedings appeared") ! ("pages" "Pages in the conference proceedings") ! ("address" "Location of the Proceedings") ! ("month" "Month of the publication as a string (remove braces)") ! ("organization" "Sponsoring organization of the conference") ! ("publisher" "Publishing company, its location") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)")) ! (("booktitle" "Name of the conference proceedings") ! ("pages" "Pages in the conference proceedings") ! ("year" "Year of publication") ! ("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the conference proceedings in the series") ! ("number" "Number of the conference proceedings in a small series (overwritten by volume)") ! ("series" "Series in which the conference proceedings appeared") ! ("address" "Location of the Proceedings") ! ("month" "Month of the publication as a string (remove braces)") ! ("organization" "Sponsoring organization of the conference") ! ("publisher" "Publishing company, its location") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Manual" ((("title" "Title of the manual")) ! (("author" "Author1 [and Author2 ...] [and others]") ! ("organization" "Publishing organization of the manual") ! ("address" "Address of the organization") ! ("edition" "Edition of the manual as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("MastersThesis" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the master\'s thesis (BibTeX converts it to lowercase)") ! ("school" "School where the master\'s thesis was written") ! ("year" "Year of publication")) ! (("type" "Type of the master\'s thesis (if other than \"Master\'s thesis\")") ! ("address" "Address of the school (if not part of field \"school\") or country") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Misc" (() ! (("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the work (BibTeX converts it to lowercase)") ! ("howpublished" "The way in which the work was published") ! ("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("PhdThesis" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the PhD. thesis") ! ("school" "School where the PhD. thesis was written") ! ("year" "Year of publication")) ! (("type" "Type of the PhD. thesis") ! ("address" "Address of the school (if not part of field \"school\") or country") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Proceedings" ((("title" "Title of the conference proceedings") ! ("year" "Year of publication")) ! (("booktitle" "Title of the proceedings for cross references") ! ("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the conference proceedings in the series") ! ("number" "Number of the conference proceedings in a small series (overwritten by volume)") ! ("series" "Series in which the conference proceedings appeared") ! ("address" "Location of the Proceedings") ! ("month" "Month of the publication as a string (remove braces)") ! ("organization" "Sponsoring organization of the conference") ! ("publisher" "Publishing company, its location") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("TechReport" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the technical report (BibTeX converts it to lowercase)") ! ("institution" "Sponsoring institution of the report") ! ("year" "Year of publication")) ! (("type" "Type of the report (if other than \"technical report\")") ! ("number" "Number of the technical report") ! ("address" "Address of the institution (if not part of field \"institution\") or country") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Unpublished" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the unpublished work (BibTeX converts it to lowercase)") ! ("note" "Remarks to be put at the end of the \\bibitem")) ! (("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication")))) ) "Defines entry types and their associated fields. --- 200,422 ---- :group 'bibtex :type 'integer) + (defcustom bibtex-parse-keys-fast t + "*If non-nil, use fast but simplified algorithm for parsing BibTeX keys. + If parsing fails, try to set this variable to nil." + :group 'bibtex + :type 'boolean) + (defvar bibtex-entry-field-alist '( ("Article" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article (BibTeX converts it to lowercase)") ! ("journal" "Name of the journal (use string, remove braces)") ! ("year" "Year of publication")) ! (("volume" "Volume of the journal") ! ("number" "Number of the journal (only allowed if entry contains volume)") ! ("pages" "Pages in the journal") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article (BibTeX converts it to lowercase)")) ! (("pages" "Pages in the journal") ! ("journal" "Name of the journal (use string, remove braces)") ! ("year" "Year of publication") ! ("volume" "Volume of the journal") ! ("number" "Number of the journal") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Book" ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication")) ! (("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book")) ! (("publisher" "Publishing company") ! ("year" "Year of publication") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Booklet" ((("title" "Title of the booklet (BibTeX converts it to lowercase)")) ! (("author" "Author1 [and Author2 ...] [and others]") ! ("howpublished" "The way in which the booklet was published") ! ("address" "Address of the publisher") ! ("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("InBook" ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book") ! ("chapter" "Chapter in the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication")) ! (("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("pages" "Pages in the book") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]" "" t) ! ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) ! ("title" "Title of the book") ! ("chapter" "Chapter in the book")) ! (("pages" "Pages in the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("InCollection" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in book (BibTeX converts it to lowercase)") ! ("booktitle" "Name of the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication")) ! (("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("chapter" "Chapter in the book") ! ("pages" "Pages in the book") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in book (BibTeX converts it to lowercase)") ! ("booktitle" "Name of the book")) ! (("pages" "Pages in the book") ! ("publisher" "Publishing company") ! ("year" "Year of publication") ! ("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the book in the series") ! ("number" "Number of the book in a small series (overwritten by volume)") ! ("series" "Series in which the book appeared") ! ("type" "Word to use instead of \"chapter\"") ! ("chapter" "Chapter in the book") ! ("address" "Address of the publisher") ! ("edition" "Edition of the book as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("InProceedings" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)") ! ("booktitle" "Name of the conference proceedings") ! ("year" "Year of publication")) ! (("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the conference proceedings in the series") ! ("number" "Number of the conference proceedings in a small series (overwritten by volume)") ! ("series" "Series in which the conference proceedings appeared") ! ("pages" "Pages in the conference proceedings") ! ("address" "Location of the Proceedings") ! ("month" "Month of the publication as a string (remove braces)") ! ("organization" "Sponsoring organization of the conference") ! ("publisher" "Publishing company, its location") ! ("note" "Remarks to be put at the end of the \\bibitem"))) ! ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)")) ! (("booktitle" "Name of the conference proceedings") ! ("pages" "Pages in the conference proceedings") ! ("year" "Year of publication") ! ("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the conference proceedings in the series") ! ("number" "Number of the conference proceedings in a small series (overwritten by volume)") ! ("series" "Series in which the conference proceedings appeared") ! ("address" "Location of the Proceedings") ! ("month" "Month of the publication as a string (remove braces)") ! ("organization" "Sponsoring organization of the conference") ! ("publisher" "Publishing company, its location") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Manual" ((("title" "Title of the manual")) ! (("author" "Author1 [and Author2 ...] [and others]") ! ("organization" "Publishing organization of the manual") ! ("address" "Address of the organization") ! ("edition" "Edition of the manual as a capitalized English word") ! ("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("MastersThesis" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the master\'s thesis (BibTeX converts it to lowercase)") ! ("school" "School where the master\'s thesis was written") ! ("year" "Year of publication")) ! (("type" "Type of the master\'s thesis (if other than \"Master\'s thesis\")") ! ("address" "Address of the school (if not part of field \"school\") or country") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Misc" (() ! (("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the work (BibTeX converts it to lowercase)") ! ("howpublished" "The way in which the work was published") ! ("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("PhdThesis" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the PhD. thesis") ! ("school" "School where the PhD. thesis was written") ! ("year" "Year of publication")) ! (("type" "Type of the PhD. thesis") ! ("address" "Address of the school (if not part of field \"school\") or country") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Proceedings" ((("title" "Title of the conference proceedings") ! ("year" "Year of publication")) ! (("booktitle" "Title of the proceedings for cross references") ! ("editor" "Editor1 [and Editor2 ...] [and others]") ! ("volume" "Volume of the conference proceedings in the series") ! ("number" "Number of the conference proceedings in a small series (overwritten by volume)") ! ("series" "Series in which the conference proceedings appeared") ! ("address" "Location of the Proceedings") ! ("month" "Month of the publication as a string (remove braces)") ! ("organization" "Sponsoring organization of the conference") ! ("publisher" "Publishing company, its location") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("TechReport" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the technical report (BibTeX converts it to lowercase)") ! ("institution" "Sponsoring institution of the report") ! ("year" "Year of publication")) ! (("type" "Type of the report (if other than \"technical report\")") ! ("number" "Number of the technical report") ! ("address" "Address of the institution (if not part of field \"institution\") or country") ! ("month" "Month of the publication as a string (remove braces)") ! ("note" "Remarks to be put at the end of the \\bibitem")))) ("Unpublished" ((("author" "Author1 [and Author2 ...] [and others]") ! ("title" "Title of the unpublished work (BibTeX converts it to lowercase)") ! ("note" "Remarks to be put at the end of the \\bibitem")) ! (("month" "Month of the publication as a string (remove braces)") ! ("year" "Year of publication")))) ) "Defines entry types and their associated fields. *************** *** 452,458 **** ("nov" . "November") ("dec" . "December")) "Alist of month string definitions used in the BibTeX style files. ! Each element is a pair of strings (ABBREVIATION EXPANSION)." :group 'bibtex :type '(repeat (cons (string :tag "Month abbreviation") (string :tag "Month expansion")))) --- 459,465 ---- ("nov" . "November") ("dec" . "December")) "Alist of month string definitions used in the BibTeX style files. ! Each element is a pair of strings (ABBREVIATION . EXPANSION)." :group 'bibtex :type '(repeat (cons (string :tag "Month abbreviation") (string :tag "Month expansion")))) *************** *** 481,487 **** ("toois" . "ACM Transactions on Office Information Systems") ("toplas" . "ACM Transactions on Programming Languages and Systems"))) "Alist of string definitions used in the BibTeX style files. ! Each element is a pair of strings (ABBREVIATION EXPANSION)." :group 'bibtex :type '(repeat (cons (string :tag "String") (string :tag "String expansion")))) --- 488,494 ---- ("toois" . "ACM Transactions on Office Information Systems") ("toplas" . "ACM Transactions on Programming Languages and Systems"))) "Alist of string definitions used in the BibTeX style files. ! Each element is a pair of strings (ABBREVIATION . EXPANSION)." :group 'bibtex :type '(repeat (cons (string :tag "String") (string :tag "String expansion")))) *************** *** 489,497 **** (defcustom bibtex-string-files nil "*List of BibTeX files containing string definitions. Those files must be specified using pathnames relative to the ! directories specified in `bibtex-string-file-path'. This variable is only ! evaluated when BibTeX mode is entered (i.e., when loading the BibTeX ! file)." :group 'bibtex :type '(repeat file)) --- 496,502 ---- (defcustom bibtex-string-files nil "*List of BibTeX files containing string definitions. Those files must be specified using pathnames relative to the ! directories specified in `bibtex-string-file-path'." :group 'bibtex :type '(repeat file)) *************** *** 499,519 **** "*Colon separated list of paths to search for `bibtex-string-files'.") (defcustom bibtex-help-message t ! "*If not nil print help messages in the echo area on entering a new field." :group 'bibtex :type 'boolean) (defcustom bibtex-autokey-prefix-string "" "*String to use as a prefix for all generated keys. ! See the documentation of function `bibtex-generate-autokey' for more detail." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-names 1 "*Number of names to use for the automatically generated reference key. - If this variable is nil, all names are used. Possibly more names are used according to `bibtex-autokey-names-stretch'. ! See the documentation of function `bibtex-generate-autokey' for more detail." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) --- 504,524 ---- "*Colon separated list of paths to search for `bibtex-string-files'.") (defcustom bibtex-help-message t ! "*If non-nil print help messages in the echo area on entering a new field." :group 'bibtex :type 'boolean) (defcustom bibtex-autokey-prefix-string "" "*String to use as a prefix for all generated keys. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-names 1 "*Number of names to use for the automatically generated reference key. Possibly more names are used according to `bibtex-autokey-names-stretch'. ! If this variable is nil, all names are used. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) *************** *** 521,533 **** (defcustom bibtex-autokey-names-stretch 0 "*Number of names that can additionally be used. These names are used only, if all names are used then. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'integer) (defcustom bibtex-autokey-additional-names "" "*String to prepend to the generated key if not all names could be used. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) --- 526,538 ---- (defcustom bibtex-autokey-names-stretch 0 "*Number of names that can additionally be used. These names are used only, if all names are used then. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'integer) (defcustom bibtex-autokey-additional-names "" "*String to prepend to the generated key if not all names could be used. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) *************** *** 548,559 **** ("\\\"U\\|\\\\\\\"U" . "Ue") ; "U,\"U -> Ue ;; accents ("\\\\`\\|\\\\'\\|\\\\\\^\\|\\\\~\\|\\\\=\\|\\\\\\.\\|\\\\u\\|\\\\v\\|\\\\H\\|\\\\t\\|\\\\c\\|\\\\d\\|\\\\b" . "") ! ("`\\|'\\|\\\"" . "") ! ;; braces ! ("{" . "") ("}" . "") ;; spaces ("[ \t\n]+" . " ")) ! "Alist of (OLD-REGEXP NEW-STRING) pairs. Used by the default values of `bibtex-autokey-name-change-strings' and `bibtex-autokey-titleword-change-strings'. Defaults to translating some language specific characters to their ASCII transcriptions, and --- 553,563 ---- ("\\\"U\\|\\\\\\\"U" . "Ue") ; "U,\"U -> Ue ;; accents ("\\\\`\\|\\\\'\\|\\\\\\^\\|\\\\~\\|\\\\=\\|\\\\\\.\\|\\\\u\\|\\\\v\\|\\\\H\\|\\\\t\\|\\\\c\\|\\\\d\\|\\\\b" . "") ! ;; braces, quotes, concatenation. ! ("[`'\"{}#]" . "") ;; spaces ("[ \t\n]+" . " ")) ! "Alist of (OLD-REGEXP . NEW-STRING) pairs. Used by the default values of `bibtex-autokey-name-change-strings' and `bibtex-autokey-titleword-change-strings'. Defaults to translating some language specific characters to their ASCII transcriptions, and *************** *** 561,578 **** (defcustom bibtex-autokey-name-change-strings bibtex-autokey-transcriptions ! "Alist of (OLD-REGEXP NEW-STRING) pairs. Any part of name matching a OLD-REGEXP is replaced by NEW-STRING. Case is significant in OLD-REGEXP. All regexps are tried in the order in which they appear in the list. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat (cons (regexp :tag "Old") (string :tag "New")))) (defcustom bibtex-autokey-name-case-convert 'downcase "*Function called for each name to perform case conversion. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "Preserve case" identity) (const :tag "Downcase" downcase) --- 565,582 ---- (defcustom bibtex-autokey-name-change-strings bibtex-autokey-transcriptions ! "Alist of (OLD-REGEXP . NEW-STRING) pairs. Any part of name matching a OLD-REGEXP is replaced by NEW-STRING. Case is significant in OLD-REGEXP. All regexps are tried in the order in which they appear in the list. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat (cons (regexp :tag "Old") (string :tag "New")))) (defcustom bibtex-autokey-name-case-convert 'downcase "*Function called for each name to perform case conversion. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "Preserve case" identity) (const :tag "Downcase" downcase) *************** *** 583,602 **** (defcustom bibtex-autokey-name-length 'infty "*Number of characters from name to incorporate into key. If this is set to anything but a number, all characters are used. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) (defcustom bibtex-autokey-name-separator "" "*String that comes between any two names in the key. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-year-length 2 "*Number of rightmost digits from the year field to incorporate into key. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'integer) --- 587,606 ---- (defcustom bibtex-autokey-name-length 'infty "*Number of characters from name to incorporate into key. If this is set to anything but a number, all characters are used. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) (defcustom bibtex-autokey-name-separator "" "*String that comes between any two names in the key. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-year-length 2 "*Number of rightmost digits from the year field to incorporate into key. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'integer) *************** *** 604,610 **** "*If non-nil use fields from crossreferenced entry if necessary. If this variable is non-nil and some field has no entry, but a valid crossref entry, the field from the crossreferenced entry is used. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'boolean) --- 608,614 ---- "*If non-nil use fields from crossreferenced entry if necessary. If this variable is non-nil and some field has no entry, but a valid crossref entry, the field from the crossreferenced entry is used. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'boolean) *************** *** 613,619 **** If this is set to anything but a number, all title words are used. Possibly more words from the title are used according to `bibtex-autokey-titlewords-stretch'. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) --- 617,623 ---- If this is set to anything but a number, all title words are used. Possibly more words from the title are used according to `bibtex-autokey-titlewords-stretch'. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) *************** *** 622,635 **** '("\\." "!" "\\?" ":" ";" "--") "*Regexp list defining the termination of the main part of the title. Case of the regexps is ignored. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat regexp)) (defcustom bibtex-autokey-titlewords-stretch 2 "*Number of words that can additionally be used from the title. These words are used only, if a sentence from the title can be ended then. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'integer) --- 626,639 ---- '("\\." "!" "\\?" ":" ";" "--") "*Regexp list defining the termination of the main part of the title. Case of the regexps is ignored. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat regexp)) (defcustom bibtex-autokey-titlewords-stretch 2 "*Number of words that can additionally be used from the title. These words are used only, if a sentence from the title can be ended then. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'integer) *************** *** 639,651 **** "*Determines words from the title that are not to be used in the key. Each item of the list is a regexp. If a word of the title matchs a regexp from that list, it is not included in the title part of the key. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat regexp)) (defcustom bibtex-autokey-titleword-case-convert 'downcase "*Function called for each titleword to perform case conversion. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "Preserve case" identity) (const :tag "Downcase" downcase) --- 643,655 ---- "*Determines words from the title that are not to be used in the key. Each item of the list is a regexp. If a word of the title matchs a regexp from that list, it is not included in the title part of the key. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat regexp)) (defcustom bibtex-autokey-titleword-case-convert 'downcase "*Function called for each titleword to perform case conversion. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "Preserve case" identity) (const :tag "Downcase" downcase) *************** *** 655,674 **** (defcustom bibtex-autokey-titleword-abbrevs nil "*Determines exceptions to the usual abbreviation mechanism. ! An alist of (OLD-REGEXP NEW-STRING) pairs. Case is ignored in matching against OLD-REGEXP, and the first matching pair is used. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat (cons (regexp :tag "Old") (string :tag "New")))) (defcustom bibtex-autokey-titleword-change-strings bibtex-autokey-transcriptions ! "Alist of (OLD-REGEXP NEW-STRING) pairs. Any part of title word matching a OLD-REGEXP is replaced by NEW-STRING. Case is significant in OLD-REGEXP. All regexps are tried in the order in which they appear in the list. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat (cons (regexp :tag "Old") (string :tag "New")))) --- 659,678 ---- (defcustom bibtex-autokey-titleword-abbrevs nil "*Determines exceptions to the usual abbreviation mechanism. ! An alist of (OLD-REGEXP . NEW-STRING) pairs. Case is ignored in matching against OLD-REGEXP, and the first matching pair is used. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat (cons (regexp :tag "Old") (string :tag "New")))) (defcustom bibtex-autokey-titleword-change-strings bibtex-autokey-transcriptions ! "Alist of (OLD-REGEXP . NEW-STRING) pairs. Any part of title word matching a OLD-REGEXP is replaced by NEW-STRING. Case is significant in OLD-REGEXP. All regexps are tried in the order in which they appear in the list. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(repeat (cons (regexp :tag "Old") (string :tag "New")))) *************** *** 676,701 **** (defcustom bibtex-autokey-titleword-length 5 "*Number of characters from title words to incorporate into key. If this is set to anything but a number, all characters are used. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) (defcustom bibtex-autokey-titleword-separator "_" "*String to be put between the title words. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-name-year-separator "" "*String to be put between name part and year part of key. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-year-title-separator ":_" "*String to be put between name part and year part of key. ! See the documentation of function `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) --- 680,705 ---- (defcustom bibtex-autokey-titleword-length 5 "*Number of characters from title words to incorporate into key. If this is set to anything but a number, all characters are used. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type '(choice (const :tag "All" infty) integer)) (defcustom bibtex-autokey-titleword-separator "_" "*String to be put between the title words. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-name-year-separator "" "*String to be put between name part and year part of key. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) (defcustom bibtex-autokey-year-title-separator ":_" "*String to be put between name part and year part of key. ! See `bibtex-generate-autokey' for details." :group 'bibtex-autokey :type 'string) *************** *** 706,716 **** (defcustom bibtex-autokey-before-presentation-function nil "*Function to call before the generated key is presented. ! If non-nil this should be a single function, which is called before ! the generated key is presented (in entry or, if ! `bibtex-autokey-edit-before-use' is t, in minibuffer). This function ! must take one argument (the automatically generated key), and must ! return with a string (the key to use)." :group 'bibtex-autokey :type '(choice (const nil) function)) --- 710,718 ---- (defcustom bibtex-autokey-before-presentation-function nil "*Function to call before the generated key is presented. ! If non-nil this should be a function which is called before the generated key ! is presented. The function must take one argument (the automatically ! generated key), and must return a string (the key to use)." :group 'bibtex-autokey :type '(choice (const nil) function)) *************** *** 751,756 **** --- 753,766 ---- :group 'bibtex :type 'boolean) + (defcustom bibtex-autoadd-commas t + "If non-nil automatically add missing commas at end of BibTeX fields." + :type 'boolean) + + (defcustom bibtex-autofill-types '("Proceedings") + "Automatically fill fields if possible for those BibTeX entry types." + :type '(repeat string)) + (defcustom bibtex-complete-key-cleanup nil "*Function called by `bibtex-complete' after insertion of a key fragment." :group 'bibtex-autokey *************** *** 839,844 **** --- 849,857 ---- ["Next Field" bibtex-next-field t] ["Beginning of Entry" bibtex-beginning-of-entry t] ["End of Entry" bibtex-end-of-entry t]) + ("Moving in BibTeX Buffer" + ["Find Entry" bibtex-find-entry t] + ["Find Crossref Entry" bibtex-find-crossref t]) ("Operating on Current Entry" ["Fill Entry" bibtex-fill-entry t] ["Clean Entry" bibtex-clean-entry t] *************** *** 855,860 **** --- 868,874 ---- ["View Cite Locations (RefTeX)" reftex-view-crossref-from-bibtex (fboundp 'reftex-view-crossref-from-bibtex)]) ("Operating on Current Field" + ["Fill Field" fill-paragraph t] ["Remove Delimiters" bibtex-remove-delimiters t] ["Remove OPT or ALT Prefix" bibtex-remove-OPT-or-ALT t] ["Clear Field" bibtex-empty-field t] *************** *** 925,938 **** (defvar bibtex-last-kill-command nil "Type of the last kill command (either 'field or 'entry).") ! (defvar bibtex-strings nil ! "Candidates for `bibtex-complete' (string completion). Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.") ! (defvar bibtex-reference-keys nil ! "Candidates for TAB completion when entering a reference key using ! the minibuffer. Also used for `bibtex-complete' (key completion). ! Initialized in `bibtex-mode' and updated for each new entry.") (defvar bibtex-buffer-last-parsed-tick nil "Last value returned by `buffer-modified-tick' when buffer --- 939,955 ---- (defvar bibtex-last-kill-command nil "Type of the last kill command (either 'field or 'entry).") ! (defvar bibtex-strings ! (lazy-completion-table bibtex-strings ! bibtex-parse-strings (bibtex-string-files-init)) ! "Completion table for BibTeX string keys. Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.") + (make-variable-buffer-local 'bibtex-strings) ! (defvar bibtex-reference-keys ! (lazy-completion-table bibtex-reference-keys bibtex-parse-keys nil nil t) ! "Completion table for BibTeX reference keys.") ! (make-variable-buffer-local 'bibtex-reference-keys) (defvar bibtex-buffer-last-parsed-tick nil "Last value returned by `buffer-modified-tick' when buffer *************** *** 954,960 **** "History list for reading keys.") (defvar bibtex-entry-type-history nil ! "Used to store the history list for reading entry types.") (defvar bibtex-field-history nil "History list for reading field names.") --- 971,977 ---- "History list for reading keys.") (defvar bibtex-entry-type-history nil ! "History list for reading entry types.") (defvar bibtex-field-history nil "History list for reading field names.") *************** *** 987,994 **** (defconst bibtex-entry-maybe-empty-head (concat bibtex-entry-head "?") ! "Regexp matching the header line of a maybe empty BibTeX entry ! \(possibly without reference key).") (defconst bibtex-type-in-head 1 "Regexp subexpression number of the type part in `bibtex-entry-head'.") --- 1004,1010 ---- (defconst bibtex-entry-maybe-empty-head (concat bibtex-entry-head "?") ! "Regexp matching the header line of a BibTeX entry (possibly without key).") (defconst bibtex-type-in-head 1 "Regexp subexpression number of the type part in `bibtex-entry-head'.") *************** *** 1063,1069 **** (dolist (class bibtex-sort-entry-class alist) (setq i (1+ i)) (dolist (entry class) ! (push (cons entry i) alist)))) "Alist for the classes of the entry types if the value of `bibtex-maintain-sorted-entries' is `entry-class'.") --- 1079,1086 ---- (dolist (class bibtex-sort-entry-class alist) (setq i (1+ i)) (dolist (entry class) ! ;; all entry names should be downcase (for ease of comparison) ! (push (cons (if (stringp entry) (downcase entry) entry) i) alist)))) "Alist for the classes of the entry types if the value of `bibtex-maintain-sorted-entries' is `entry-class'.") *************** *** 1105,1137 **** '(bibtex-mode "@\\S(*\\s(" "\\s)" nil bibtex-hs-forward-sexp nil)) ! ;; Functions to Parse the BibTeX Entries ! (defun bibtex-parse-nested-braces (nesting-level) ! "Starting on an opening brace, find the corresponding closing brace. ! When the function is called, NESTING-LEVEL has to be set to `0'." ! (cond ((looking-at "{") ! (search-forward-regexp "{[^{}]*") ! (bibtex-parse-nested-braces (+ nesting-level 1))) ! ((looking-at "}") ! (forward-char 1) ! (if (= nesting-level 1) ! (point) ! (search-forward-regexp "[^{}]*") ! (bibtex-parse-nested-braces (- nesting-level 1)))) ! (t nil))) (defun bibtex-parse-field-string () "Parse a field string enclosed by braces or quotes. If a syntactically correct string is found, a pair containing the start and end position of the field string is returned, nil otherwise." ! (save-match-data ! (let ((end-point (or (and (looking-at bibtex-quoted-string-re) ! (match-end 0)) ! (and (looking-at "{") ! (save-excursion (bibtex-parse-nested-braces 0)))))) ! (if end-point ! (cons (point) end-point))))) (defun bibtex-parse-association (parse-lhs parse-rhs) "Parse a string of the format . --- 1122,1164 ---- '(bibtex-mode "@\\S(*\\s(" "\\s)" nil bibtex-hs-forward-sexp nil)) ! (defconst bibtex-braced-string-syntax-table ! (let ((st (make-syntax-table))) ! (modify-syntax-entry ?\{ "(}" st) ! (modify-syntax-entry ?\} "){" st) ! (modify-syntax-entry ?\[ "." st) ! (modify-syntax-entry ?\] "." st) ! (modify-syntax-entry ?\( "." st) ! (modify-syntax-entry ?\) "." st) ! (modify-syntax-entry ?\\ "." st) ! (modify-syntax-entry ?\" "." st) ! st) ! "Syntax-table to parse matched braces.") ! (defconst bibtex-quoted-string-syntax-table ! (let ((st (make-syntax-table))) ! (modify-syntax-entry ?\\ "\\" st) ! (modify-syntax-entry ?\" "\"" st) ! st) ! "Syntax-table to parse matched quotes.") (defun bibtex-parse-field-string () "Parse a field string enclosed by braces or quotes. If a syntactically correct string is found, a pair containing the start and end position of the field string is returned, nil otherwise." ! (let ((end-point ! (or (and (eq (following-char) ?\") ! (save-excursion ! (with-syntax-table bibtex-quoted-string-syntax-table ! (forward-sexp 1)) ! (point))) ! (and (eq (following-char) ?\{) ! (save-excursion ! (with-syntax-table bibtex-braced-string-syntax-table ! (forward-sexp 1)) ! (point)))))) ! (if end-point ! (cons (point) end-point)))) (defun bibtex-parse-association (parse-lhs parse-rhs) "Parse a string of the format . *************** *** 1141,1148 **** values of the functions PARSE-LHS and PARSE-RHS is returned." (save-match-data (save-excursion ! (let (left right) ! (if (and (setq left (funcall parse-lhs)) (looking-at "[ \t\n]*=[ \t\n]*") (goto-char (match-end 0)) (setq right (funcall parse-rhs))) --- 1168,1176 ---- values of the functions PARSE-LHS and PARSE-RHS is returned." (save-match-data (save-excursion ! (let ((left (funcall parse-lhs)) ! right) ! (if (and left (looking-at "[ \t\n]*=[ \t\n]*") (goto-char (match-end 0)) (setq right (funcall parse-rhs))) *************** *** 1152,1164 **** "Parse the field name stored in `bibtex-field-name-for-parsing'. If the field name is found, return a triple consisting of the position of the very first character of the match, the actual starting position of the name ! part and end position of the match. Move point to end of field name." ! (if (looking-at ",[ \t\n]*") ! (let ((start (point))) ! (goto-char (match-end 0)) ! (when (looking-at bibtex-field-name-for-parsing) ! (goto-char (match-end 0)) ! (list start (match-beginning 0) (match-end 0)))))) (defun bibtex-parse-field-text () "Parse the text part of a BibTeX field. --- 1180,1203 ---- "Parse the field name stored in `bibtex-field-name-for-parsing'. If the field name is found, return a triple consisting of the position of the very first character of the match, the actual starting position of the name ! part and end position of the match. Move point to end of field name. ! If `bibtex-autoadd-commas' is non-nil add missing comma at end of preceeding ! BibTeX field as necessary." ! (cond ((looking-at ",[ \t\n]*") ! (let ((start (point))) ! (goto-char (match-end 0)) ! (when (looking-at bibtex-field-name-for-parsing) ! (goto-char (match-end 0)) ! (list start (match-beginning 0) (match-end 0))))) ! ;; Maybe add a missing comma. ! ((and bibtex-autoadd-commas ! (looking-at (concat "[ \t\n]*\\(?:" bibtex-field-name-for-parsing ! "\\)[ \t\n]*="))) ! (skip-chars-backward " \t\n") ! (insert ",") ! (forward-char -1) ! ;; Now try again. ! (bibtex-parse-field-name)))) (defun bibtex-parse-field-text () "Parse the text part of a BibTeX field. *************** *** 1168,1175 **** returned, nil otherwise. Move point to end of field text." (let ((starting-point (point)) end-point failure boundaries) ! (while (and (not end-point) ! (not failure)) (cond ((looking-at bibtex-field-const) (goto-char (match-end 0))) ((setq boundaries (bibtex-parse-field-string)) --- 1207,1213 ---- returned, nil otherwise. Move point to end of field text." (let ((starting-point (point)) end-point failure boundaries) ! (while (not (or end-point failure)) (cond ((looking-at bibtex-field-const) (goto-char (match-end 0))) ((setq boundaries (bibtex-parse-field-string)) *************** *** 1194,1203 **** "Search forward to find a field of name NAME. If a syntactically correct field is found, a pair containing the boundaries of the name and text parts of the field is returned. The search is limited by ! optional arg BOUND. Do not move point." (save-match-data (save-excursion ! (unless bound (setq bound (point-max))) (let ((case-fold-search t) (bibtex-field-name-for-parsing name) boundaries temp-boundaries) --- 1232,1245 ---- "Search forward to find a field of name NAME. If a syntactically correct field is found, a pair containing the boundaries of the name and text parts of the field is returned. The search is limited by ! optional arg BOUND. If BOUND is t the search is limited by the end of the current ! entry. Do not move point." (save-match-data (save-excursion ! (unless (integer-or-marker-p bound) ! (setq bound (if bound ! (save-excursion (bibtex-end-of-entry)) ! (point-max)))) (let ((case-fold-search t) (bibtex-field-name-for-parsing name) boundaries temp-boundaries) *************** *** 1217,1226 **** "Search backward to find a field of name NAME. If a syntactically correct field is found, a pair containing the boundaries of the name and text parts of the field is returned. The search is limited by ! optional arg BOUND. Do not move point." (save-match-data (save-excursion ! (unless bound (setq bound (point-min))) (let ((case-fold-search t) (bibtex-field-name-for-parsing name) boundaries temp-boundaries) --- 1259,1272 ---- "Search backward to find a field of name NAME. If a syntactically correct field is found, a pair containing the boundaries of the name and text parts of the field is returned. The search is limited by ! optional arg BOUND. If BOUND is t the search is limited by the beginning of the ! current entry. Do not move point." (save-match-data (save-excursion ! (unless (integer-or-marker-p bound) ! (setq bound (if bound ! (save-excursion (bibtex-beginning-of-entry)) ! (point-min)))) (let ((case-fold-search t) (bibtex-field-name-for-parsing name) boundaries temp-boundaries) *************** *** 1233,1249 **** (setq boundaries temp-boundaries))) boundaries)))) ! (defun bibtex-start-of-field (bounds) (nth 0 (car bounds))) ! (defun bibtex-start-of-name-in-field (bounds) (nth 1 (car bounds))) ! (defun bibtex-end-of-name-in-field (bounds) (nth 2 (car bounds))) ! (defun bibtex-end-of-field (bounds) (cddr bounds)) ! (defun bibtex-start-of-text-in-field (bounds) (cadr bounds)) ! (defun bibtex-end-of-text-in-field (bounds) (cddr bounds)) (defun bibtex-name-in-field (bounds) --- 1279,1295 ---- (setq boundaries temp-boundaries))) boundaries)))) ! (defsubst bibtex-start-of-field (bounds) (nth 0 (car bounds))) ! (defsubst bibtex-start-of-name-in-field (bounds) (nth 1 (car bounds))) ! (defsubst bibtex-end-of-name-in-field (bounds) (nth 2 (car bounds))) ! (defsubst bibtex-end-of-field (bounds) (cddr bounds)) ! (defsubst bibtex-start-of-text-in-field (bounds) (cadr bounds)) ! (defsubst bibtex-end-of-text-in-field (bounds) (cddr bounds)) (defun bibtex-name-in-field (bounds) *************** *** 1267,1272 **** --- 1313,1319 ---- If optional arg FOLLOW-CROSSREF is non-nil, follow crossref." (save-excursion (save-restriction + ;; We want to jump back and forth while searching FIELD (bibtex-narrow-to-entry) (goto-char (point-min)) (let ((bounds (bibtex-search-forward-field field)) *************** *** 1304,1316 **** the actual starting and ending position of the text and the very last character of the string entry. Move point past BibTeX string entry." (let* ((case-fold-search t) ! (text-boundaries (bibtex-parse-field-text))) ! (when text-boundaries ! (goto-char (cdr text-boundaries)) (when (looking-at "[ \t\n]*[})]") (goto-char (match-end 0)) ! (list (car text-boundaries) ! (cdr text-boundaries) (match-end 0)))))) (defun bibtex-parse-string () --- 1351,1363 ---- the actual starting and ending position of the text and the very last character of the string entry. Move point past BibTeX string entry." (let* ((case-fold-search t) ! (bounds (bibtex-parse-field-text))) ! (when bounds ! (goto-char (cdr bounds)) (when (looking-at "[ \t\n]*[})]") (goto-char (match-end 0)) ! (list (car bounds) ! (cdr bounds) (match-end 0)))))) (defun bibtex-parse-string () *************** *** 1367,1380 **** (substring content (match-beginning 1) (match-end 1)) content))) ! (defun bibtex-start-of-text-in-string (bounds) (nth 0 (cdr bounds))) ! (defun bibtex-end-of-text-in-string (bounds) (nth 1 (cdr bounds))) ! (defun bibtex-end-of-string (bounds) (nth 2 (cdr bounds))) ! (defun bibtex-type-in-head () "Extract BibTeX type in head." ;; ignore @ (buffer-substring-no-properties (1+ (match-beginning bibtex-type-in-head)) --- 1414,1427 ---- (substring content (match-beginning 1) (match-end 1)) content))) ! (defsubst bibtex-start-of-text-in-string (bounds) (nth 0 (cdr bounds))) ! (defsubst bibtex-end-of-text-in-string (bounds) (nth 1 (cdr bounds))) ! (defsubst bibtex-end-of-string (bounds) (nth 2 (cdr bounds))) ! (defsubst bibtex-type-in-head () "Extract BibTeX type in head." ;; ignore @ (buffer-substring-no-properties (1+ (match-beginning bibtex-type-in-head)) *************** *** 1424,1468 **** beginning of previous valid one. A valid entry is a syntactical correct one with type contained in `bibtex-entry-field-alist' or, if `bibtex-sort-ignore-string-entries' is nil, a syntactical correct string ! entry. Return buffer position if a valid entry is found, nil otherwise." (let ((case-fold-search t) found) ! (while (and (not found) ! (not (if backward (bobp) (eobp)))) ! (let ((pnt (point))) (cond ((or (and (looking-at bibtex-valid-entry-re) ! (bibtex-search-entry nil nil t) (equal (match-beginning 0) pnt)) (and (not bibtex-sort-ignore-string-entries) ! (bibtex-parse-string))) ! (setq found pnt) (goto-char pnt)) (backward - (goto-char (1- pnt)) (if (re-search-backward "^[ \t]*\\(@\\)" nil 'move) (goto-char (match-beginning 1)))) ! (t (goto-char (1+ pnt)) ! (if (re-search-forward "^[ \t]*@" nil 'move) (forward-char -1)))))) found)) (defun bibtex-map-entries (fun) "Call FUN for each BibTeX entry starting with the current. ! Do this to the end of the file. FUN is called with one argument, the key ! of the entry, and with point inside the entry. ! If `bibtex-sort-ignore-string-entries' is non-nil, FUN will not be ! called for @String entries." (let ((case-fold-search t)) (bibtex-beginning-of-entry) ! (while (re-search-forward bibtex-entry-maybe-empty-head nil t) ! (save-excursion ! (let ((entry-type (downcase (bibtex-type-in-head))) ! (key (bibtex-key-in-head ""))) (if (or (and (not bibtex-sort-ignore-string-entries) ! (string-equal "string" entry-type)) (assoc-ignore-case entry-type bibtex-entry-field-alist)) ! (funcall fun key)))) ! (bibtex-end-of-entry)))) (defun bibtex-progress-message (&optional flag interval) "Echo a message about progress of current buffer. --- 1471,1518 ---- beginning of previous valid one. A valid entry is a syntactical correct one with type contained in `bibtex-entry-field-alist' or, if `bibtex-sort-ignore-string-entries' is nil, a syntactical correct string ! entry. Return buffer position of beginning and ending of entry if a valid ! entry is found, nil otherwise." ! (interactive "P") (let ((case-fold-search t) found) ! (while (not (or found (if backward (bobp) (eobp)))) ! (let ((pnt (point)) ! bounds) (cond ((or (and (looking-at bibtex-valid-entry-re) ! (setq found (bibtex-search-entry nil nil t)) (equal (match-beginning 0) pnt)) (and (not bibtex-sort-ignore-string-entries) ! (setq bounds (bibtex-parse-string)) ! (setq found (cons (bibtex-start-of-field bounds) ! (bibtex-end-of-string bounds))))) (goto-char pnt)) (backward (if (re-search-backward "^[ \t]*\\(@\\)" nil 'move) (goto-char (match-beginning 1)))) ! (t (if (re-search-forward "\n[ \t]*@" nil 'move) (forward-char -1)))))) found)) (defun bibtex-map-entries (fun) "Call FUN for each BibTeX entry starting with the current. ! Do this to the end of the file. FUN is called with three arguments, the key of ! the entry and the buffer positions (marker) of beginning and end of entry. ! Point is inside the entry. If `bibtex-sort-ignore-string-entries' is non-nil, ! FUN will not be called for @String entries." (let ((case-fold-search t)) (bibtex-beginning-of-entry) ! (while (re-search-forward bibtex-entry-head nil t) ! (let ((entry-type (bibtex-type-in-head)) ! (key (bibtex-key-in-head "")) ! (beg (copy-marker (match-beginning 0))) ! (end (copy-marker (save-excursion (bibtex-end-of-entry))))) ! (save-excursion (if (or (and (not bibtex-sort-ignore-string-entries) ! (string-equal "string" (downcase entry-type))) (assoc-ignore-case entry-type bibtex-entry-field-alist)) ! (funcall fun key beg end))) ! (goto-char end))))) (defun bibtex-progress-message (&optional flag interval) "Echo a message about progress of current buffer. *************** *** 1513,1541 **** ")")) (defun bibtex-search-entry (empty-head &optional bound noerror backward) ! "A helper function necessary since the failure stack size limit for ! regexps was reduced in emacs 19.32. ! It searches for a BibTeX entry (maybe without a reference key if ! EMPTY-HEAD is t). ! BOUND and NOERROR are exactly as in `re-search-forward'. If ! BACKWARD is non-nil, search is done in reverse direction. After ! call to this function MATCH-BEGINNING and MATCH-END functions are ! defined, but only for the head part of the entry (especially ! \(match-end 0) just gives the end of the head part)." (let ((pnt (point)) ! (prefix (if empty-head ! bibtex-entry-maybe-empty-head ! bibtex-entry-head))) (if backward (let (found) (while (and (not found) ! (re-search-backward prefix bound noerror)) (setq found (bibtex-search-entry empty-head pnt t))) (if found ! (goto-char (match-beginning 0)) (cond ((equal noerror nil) ;; yell ! (error "Search of BibTeX entry failed")) ((equal noerror t) ;; don't move (goto-char pnt))) --- 1563,1591 ---- ")")) (defun bibtex-search-entry (empty-head &optional bound noerror backward) ! "Search for a BibTeX entry (maybe without reference key if EMPTY-HEAD is t). ! BOUND and NOERROR are exactly as in `re-search-forward'. If BACKWARD ! is non-nil, search is done in reverse direction. Point is moved past the ! closing delimiter (at the beginning of entry if BACKWARD is non-nil). ! Return a cons pair with buffer positions of beginning and end of entry. ! After call to this function MATCH-BEGINNING and MATCH-END functions ! are defined, but only for the head part of the entry ! \(especially (match-end 0) just gives the end of the head part)." (let ((pnt (point)) ! (entry-head-re (if empty-head ! bibtex-entry-maybe-empty-head ! bibtex-entry-head))) (if backward (let (found) (while (and (not found) ! (re-search-backward entry-head-re bound noerror)) (setq found (bibtex-search-entry empty-head pnt t))) (if found ! (progn (goto-char (match-beginning 0)) ! found) (cond ((equal noerror nil) ;; yell ! (error "Backward search of BibTeX entry failed")) ((equal noerror t) ;; don't move (goto-char pnt))) *************** *** 1543,1549 **** (let ((limit (or bound (point-max))) found) (while (and (not found) ! (re-search-forward prefix bound noerror)) (save-match-data (let ((entry-closer (if (save-excursion --- 1593,1599 ---- (let ((limit (or bound (point-max))) found) (while (and (not found) ! (re-search-forward entry-head-re bound noerror)) (save-match-data (let ((entry-closer (if (save-excursion *************** *** 1569,1575 **** (goto-char (match-end 0)) (setq found t))))) (if found ! (point) (cond ((not noerror) ;; yell (error "Search of BibTeX entry failed")) --- 1619,1625 ---- (goto-char (match-end 0)) (setq found t))))) (if found ! (cons (match-beginning 0) (point)) (cond ((not noerror) ;; yell (error "Search of BibTeX entry failed")) *************** *** 1596,1606 **** (message "From: %s" (buffer-substring (point) flash))))) ! (defun bibtex-make-optional-field (e-t) ! "Make an optional field named E-T in current BibTeX entry." ! (if (consp e-t) ! (bibtex-make-field (cons (concat "OPT" (car e-t)) (cdr e-t))) ! (bibtex-make-field (concat "OPT" e-t)))) (defun bibtex-move-outside-of-entry () "Make sure point is outside of a BibTeX entry." --- 1646,1656 ---- (message "From: %s" (buffer-substring (point) flash))))) ! (defun bibtex-make-optional-field (field) ! "Make an optional field named FIELD in current BibTeX entry." ! (if (consp field) ! (bibtex-make-field (cons (concat "OPT" (car field)) (cdr field))) ! (bibtex-make-field (concat "OPT" field)))) (defun bibtex-move-outside-of-entry () "Make sure point is outside of a BibTeX entry." *************** *** 1647,1675 **** Use `match-beginning' and `match-end' to parse the field. If NOERR is non-nil, no error is signalled. In this case, bounds are returned on success, nil otherwise." ! (let* ((case-fold-search t) ! (old-point (point)) ! (boe (save-excursion (bibtex-beginning-of-entry))) ! (bounds (bibtex-search-backward-field bibtex-field-name boe))) (if (and bounds ! (<= (bibtex-start-of-field bounds) old-point) ! (>= (bibtex-end-of-field bounds) old-point)) bounds (unless noerr (error "Can't find enclosing BibTeX field"))))) (defun bibtex-enclosing-entry-maybe-empty-head () ! "Search for BibTeX entry enclosing point. Point moves to end of entry. Beginning (but not end) of entry is given by (`match-beginning' 0)." (let ((case-fold-search t) (old-point (point))) (unless (re-search-backward bibtex-entry-maybe-empty-head nil t) ! (error "Can't find enclosing BibTeX entry") ! (goto-char old-point)) (goto-char (match-beginning bibtex-type-in-head)) (unless (bibtex-search-entry t nil t) ! (error "Can't find enclosing BibTeX entry") ! (goto-char old-point)))) (defun bibtex-insert-current-kill (n) (if (not bibtex-last-kill-command) --- 1697,1722 ---- Use `match-beginning' and `match-end' to parse the field. If NOERR is non-nil, no error is signalled. In this case, bounds are returned on success, nil otherwise." ! (let ((bounds (bibtex-search-backward-field bibtex-field-name t))) (if (and bounds ! (<= (bibtex-start-of-field bounds) (point)) ! (>= (bibtex-end-of-field bounds) (point))) bounds (unless noerr (error "Can't find enclosing BibTeX field"))))) (defun bibtex-enclosing-entry-maybe-empty-head () ! "Search for BibTeX entry enclosing point. Move point to end of entry. Beginning (but not end) of entry is given by (`match-beginning' 0)." (let ((case-fold-search t) (old-point (point))) (unless (re-search-backward bibtex-entry-maybe-empty-head nil t) ! (goto-char old-point) ! (error "Can't find beginning of enclosing BibTeX entry")) (goto-char (match-beginning bibtex-type-in-head)) (unless (bibtex-search-entry t nil t) ! (goto-char old-point) ! (error "Can't find end of enclosing BibTeX entry")))) (defun bibtex-insert-current-kill (n) (if (not bibtex-last-kill-command) *************** *** 1830,1839 **** "\\([\"{][0-9]+\\)[ \t\n]*--?[ \t\n]*\\([0-9]+[\"}]\\)"))) (replace-match "\\1-\\2")) ! ;; use book title of crossrefed entry (if (and (memq 'inherit-booktitle format) - (equal (downcase field-name) "booktitle") empty-field crossref-key) (let ((title (save-restriction (widen) --- 1877,1886 ---- "\\([\"{][0-9]+\\)[ \t\n]*--?[ \t\n]*\\([0-9]+[\"}]\\)"))) (replace-match "\\1-\\2")) ! ;; use book title of crossref'd entry (if (and (memq 'inherit-booktitle format) empty-field + (equal (downcase field-name) "booktitle") crossref-key) (let ((title (save-restriction (widen) *************** *** 1844,1849 **** --- 1891,1904 ---- (goto-char (1+ beg-text)) (insert title)))) + ;; Use booktitle to set a missing title. + (if (and empty-field + (equal (downcase field-name) "title")) + (let ((booktitle (bibtex-text-in-field "booktitle"))) + (when booktitle + (setq empty-field nil) + (goto-char (1+ beg-text)) + (insert booktitle)))) ;; if empty field, complain (if (and empty-field *************** *** 1954,1962 **** (let ((case-fold-search t)) (mapcar 'bibtex-autokey-demangle-name (split-string (bibtex-autokey-get-field ! "\\(author\\)\\|\\(editor\\)" bibtex-autokey-name-change-strings) ! "[ ]+and[ ]+")))) (defun bibtex-autokey-demangle-name (fullname) "Get the last part from a well-formed name and perform abbreviations." --- 2009,2017 ---- (let ((case-fold-search t)) (mapcar 'bibtex-autokey-demangle-name (split-string (bibtex-autokey-get-field ! "author\\|editor" bibtex-autokey-name-change-strings) ! "[ \t\n]+and[ \t\n]+")))) (defun bibtex-autokey-demangle-name (fullname) "Get the last part from a well-formed name and perform abbreviations." *************** *** 2120,2126 **** (setq nnl (append nnl (list (car nl))) nl (cdr nl))) nnl))) ! (namepart (concat (mapconcat (lambda (name) name) namelist bibtex-autokey-name-separator) name-etal)) --- 2175,2181 ---- (setq nnl (append nnl (list (car nl))) nl (cdr nl))) nnl))) ! (namepart (concat (mapconcat 'identity namelist bibtex-autokey-name-separator) name-etal)) *************** *** 2130,2136 **** (substring yearfield (- (length yearfield) bibtex-autokey-year-length)))) ! (titlepart (mapconcat (lambda (name) name) (bibtex-autokey-get-title) bibtex-autokey-titleword-separator)) (autokey (concat bibtex-autokey-prefix-string --- 2185,2191 ---- (substring yearfield (- (length yearfield) bibtex-autokey-year-length)))) ! (titlepart (mapconcat 'identity (bibtex-autokey-get-title) bibtex-autokey-titleword-separator)) (autokey (concat bibtex-autokey-prefix-string *************** *** 2149,2227 **** autokey))) ! (defun bibtex-parse-keys (add verbose &optional abortable) "Set `bibtex-reference-keys' to the keys used in the whole buffer. The buffer might possibly be restricted. Find both entry keys and crossref entries. ! If ADD is non-nil adds the new keys to `bibtex-reference-keys' instead of ! simply resetting it. If VERBOSE is non-nil gives messages about ! progress. If ABORTABLE is non-nil abort on user input. ! Return t if parsing was completed, nil if aborted." ! (let ((reference-keys (if add bibtex-reference-keys))) (save-excursion (save-match-data - (goto-char (point-min)) (if verbose (bibtex-progress-message (concat (buffer-name) ": parsing reference keys"))) ! (if (catch 'userkey ! (while (bibtex-skip-to-valid-entry) ! (if (and abortable ! (input-pending-p)) ! (throw 'userkey t)) ! (if verbose ! (bibtex-progress-message)) ! (let ((case-fold-search t) ! key crossref-key bounds) ! (cond ((looking-at bibtex-entry-head) ! (setq key (bibtex-key-in-head)) ! (let ((p (point)) ! (m (bibtex-end-of-entry))) ! (goto-char p) ! (if (setq bounds (bibtex-search-forward-field "crossref" m)) ! (setq crossref-key (bibtex-text-in-field-bounds bounds t))))) ! ((setq bounds (bibtex-parse-string)) ! (setq key (bibtex-reference-key-in-string bounds)))) ! (forward-char) ! (unless (assoc key reference-keys) ! (push (list key) reference-keys)) ! (if (and crossref-key ! (not (assoc crossref-key reference-keys))) ! (push (list crossref-key) reference-keys))))) ! ;; user has aborted by typing a key --> return nil ! nil ! ;; successful operation --> return t ! (setq bibtex-reference-keys reference-keys) (if verbose (bibtex-progress-message 'done)) ! t))))) ! (defun bibtex-parse-strings (&optional init abortable) "Set `bibtex-strings' to the string definitions in the whole buffer. The buffer might possibly be restricted. ! Optional arg INIT is used to initialize `bibtex-strings'. ! If ABORTABLE is non-nil abort on user input. ! Return t if parsing was completed, nil if aborted." (save-excursion (save-match-data (goto-char (point-min)) ! (let ((strings init) bounds key) ! (if (catch 'userkey ! (while (setq bounds (bibtex-search-forward-string)) ! (if (and abortable ! (input-pending-p)) ! (throw 'userkey t)) ! (setq key (bibtex-reference-key-in-string bounds)) ! (if (not (assoc-ignore-case key strings)) ! (push (cons key (bibtex-text-in-string bounds t)) ! strings)) ! (goto-char (bibtex-end-of-text-in-string bounds)))) ! ;; user has aborted by typing a key --> return nil ! nil ! ;; successful operation --> return t ! (setq bibtex-strings strings) ! t))))) (defun bibtex-string-files-init () "Return initialization for `bibtex-strings'. --- 2204,2307 ---- autokey))) ! (defun bibtex-parse-keys (&optional add abortable verbose) "Set `bibtex-reference-keys' to the keys used in the whole buffer. The buffer might possibly be restricted. Find both entry keys and crossref entries. ! If ADD is non-nil add the new keys to `bibtex-reference-keys' instead of ! simply resetting it. If ADD is an alist of keys, also add ADD to ! `bibtex-reference-keys'. If ABORTABLE is non-nil abort on user ! input. If VERBOSE is non-nil gives messages about progress. ! Return alist of keys if parsing was completed, `aborted' otherwise." ! (let ((reference-keys (if (and add ! (listp bibtex-reference-keys)) ! bibtex-reference-keys))) ! (if (listp add) ! (dolist (key add) ! (unless (assoc (car key) reference-keys) ! (push key reference-keys)))) (save-excursion (save-match-data (if verbose (bibtex-progress-message (concat (buffer-name) ": parsing reference keys"))) ! (catch 'userkey ! (goto-char (point-min)) ! (if bibtex-parse-keys-fast ! (let ((case-fold-search t) ! (re (concat bibtex-entry-head "\\|" ! ",[ \t\n]*crossref[ \t\n]*=[ \t\n]*" ! "\\(\"[^\"]*\"\\|{[^}]*}\\)[ \t\n]*[,})]"))) ! (while (re-search-forward re nil t) ! (if (and abortable (input-pending-p)) ! ;; user has aborted by typing a key --> return `aborted' ! (throw 'userkey 'aborted)) ! (let ((key (cond ((match-end 3) ! ;; This is a crossref. ! (buffer-substring-no-properties ! (1+ (match-beginning 3)) (1- (match-end 3)))) ! ((assoc-ignore-case (bibtex-type-in-head) ! bibtex-entry-field-alist) ! ;; This is an entry. ! (match-string-no-properties bibtex-key-in-head))))) ! (if (and (stringp key) ! (not (assoc key reference-keys))) ! (push (list key) reference-keys))))) ! ! (let (;; ignore @String entries because they are handled ! ;; separately by bibtex-parse-strings ! (bibtex-sort-ignore-string-entries t) ! crossref-key bounds) ! (bibtex-map-entries ! (lambda (key beg end) ! (if (and abortable ! (input-pending-p)) ! ;; user has aborted by typing a key --> return `aborted' ! (throw 'userkey 'aborted)) ! (if verbose (bibtex-progress-message)) ! (unless (assoc key reference-keys) ! (push (list key) reference-keys)) ! (if (and (setq bounds (bibtex-search-forward-field "crossref" end)) ! (setq crossref-key (bibtex-text-in-field-bounds bounds t)) ! (not (assoc crossref-key reference-keys))) ! (push (list crossref-key) reference-keys)))))) ! (if verbose (bibtex-progress-message 'done)) ! ;; successful operation --> return `bibtex-reference-keys' ! (setq bibtex-reference-keys reference-keys)))))) ! (defun bibtex-parse-strings (&optional add abortable) "Set `bibtex-strings' to the string definitions in the whole buffer. The buffer might possibly be restricted. ! If ADD is non-nil add the new strings to `bibtex-strings' instead of ! simply resetting it. If ADD is an alist of strings, also add ADD to ! `bibtex-strings'. If ABORTABLE is non-nil abort on user input. ! Return alist of strings if parsing was completed, `aborted' otherwise." (save-excursion (save-match-data (goto-char (point-min)) ! (let ((strings (if (and add ! (listp bibtex-strings)) ! bibtex-strings)) bounds key) ! (if (listp add) ! (dolist (string add) ! (unless (assoc (car string) strings) ! (push string strings)))) ! (catch 'userkey ! (while (setq bounds (bibtex-search-forward-string)) ! (if (and abortable ! (input-pending-p)) ! ;; user has aborted by typing a key --> return `aborted' ! (throw 'userkey 'aborted)) ! (setq key (bibtex-reference-key-in-string bounds)) ! (if (not (assoc-ignore-case key strings)) ! (push (cons key (bibtex-text-in-string bounds t)) ! strings)) ! (goto-char (bibtex-end-of-text-in-string bounds))) ! ;; successful operation --> return `bibtex-strings' ! (setq bibtex-strings strings)))))) (defun bibtex-string-files-init () "Return initialization for `bibtex-strings'. *************** *** 2251,2257 **** (goto-char (bibtex-end-of-string bounds)))) (setq found t))) (unless found ! (error "File %s not in paths defined by bibtex-string-file-path variable" filename)))) (append bibtex-predefined-strings (nreverse compl))))) --- 2331,2337 ---- (goto-char (bibtex-end-of-string bounds)))) (setq found t))) (unless found ! (error "File %s not in paths defined via bibtex-string-file-path" filename)))) (append bibtex-predefined-strings (nreverse compl))))) *************** *** 2271,2281 **** (widen) ;; Output no progress messages in bibtex-parse-keys ;; because when in y-or-n-p that can hide the question. ! (if (and (if bibtex-maintain-sorted-entries ! (bibtex-parse-keys nil nil t) ! t) ;; update bibtex-strings ! (bibtex-parse-strings strings-init t)) ;; remember that parsing was successful (setq bibtex-buffer-last-parsed-tick (buffer-modified-tick))))) --- 2351,2359 ---- (widen) ;; Output no progress messages in bibtex-parse-keys ;; because when in y-or-n-p that can hide the question. ! (if (and (listp (bibtex-parse-keys nil t)) ;; update bibtex-strings ! (listp (bibtex-parse-strings strings-init t))) ;; remember that parsing was successful (setq bibtex-buffer-last-parsed-tick (buffer-modified-tick))))) *************** *** 2310,2316 **** nil)))) (defun bibtex-complete-string-cleanup (str) ! "Remove enclosing field delimiters." (let ((pair (assoc str bibtex-strings))) (when pair (if (cdr pair) --- 2388,2396 ---- nil)))) (defun bibtex-complete-string-cleanup (str) ! "Cleanup after inserting string STR. ! Remove enclosing field delimiters for string STR. Display message with ! expansion of STR." (let ((pair (assoc str bibtex-strings))) (when pair (if (cdr pair) *************** *** 2348,2354 **** (set-window-point window (point)))) (defun bibtex-pop (arg direction) ! "Generic function to be used by `bibtex-pop-previous' and `bibtex-pop-next'." (let (bibtex-help-message) (bibtex-find-text nil)) (save-excursion --- 2428,2434 ---- (set-window-point window (point)))) (defun bibtex-pop (arg direction) ! "Generic function used by `bibtex-pop-previous' and `bibtex-pop-next'." (let (bibtex-help-message) (bibtex-find-text nil)) (save-excursion *************** *** 2407,2412 **** --- 2487,2496 ---- (bibtex-find-text nil)) (setq this-command 'bibtex-pop)) + (defsubst bibtex-read-key (prompt &optional key) + "Read BibTeX key from minibuffer using PROMPT and default KEY." + (completing-read prompt bibtex-reference-keys + nil nil key 'bibtex-key-history)) ;; Interactive Functions: *************** *** 2416,2437 **** General information on working with BibTeX mode: ! You should use commands as \\[bibtex-Book] to get a template for a specific entry. You should then fill in all desired fields using \\[bibtex-next-field] to jump from field to field. After having filled in all desired fields in the entry, you should clean the new entry ! with command \\[bibtex-clean-entry]. ! Some features of BibTeX mode are available only by setting variable ! `bibtex-maintain-sorted-entries' to t. However, then BibTeX mode will ! work with buffer containing only valid (syntactical correct) entries and with entries being sorted. This is usually the case, if you have created a buffer completely with BibTeX mode and finished every new entry with \\[bibtex-clean-entry]. ! For third party BibTeX buffers, please call the function ! `bibtex-convert-alien' to fully take advantage of all features of ! BibTeX mode. Special information: --- 2500,2520 ---- General information on working with BibTeX mode: ! You should use commands such as \\[bibtex-Book] to get a template for a specific entry. You should then fill in all desired fields using \\[bibtex-next-field] to jump from field to field. After having filled in all desired fields in the entry, you should clean the new entry ! with the command \\[bibtex-clean-entry]. ! Some features of BibTeX mode are available only by setting the variable ! `bibtex-maintain-sorted-entries' to non-nil. However, then BibTeX mode will ! work only with buffers containing valid (syntactical correct) entries and with entries being sorted. This is usually the case, if you have created a buffer completely with BibTeX mode and finished every new entry with \\[bibtex-clean-entry]. ! For third party BibTeX files, call the function `bibtex-convert-alien' ! to fully take advantage of all features of BibTeX mode. Special information: *************** *** 2443,2450 **** The OPT or ALT string may be removed from a field with \\[bibtex-remove-OPT-or-ALT]. \\[bibtex-make-field] inserts a new field after the current one. \\[bibtex-kill-field] kills the current field entirely. ! \\[bibtex-yank] will yank the last recently killed field after the ! current field. \\[bibtex-remove-delimiters] removes the double-quotes or braces around the text of the current field. \\[bibtex-empty-field] replaces the text of the current field with the default \"\" or {}. --- 2526,2532 ---- The OPT or ALT string may be removed from a field with \\[bibtex-remove-OPT-or-ALT]. \\[bibtex-make-field] inserts a new field after the current one. \\[bibtex-kill-field] kills the current field entirely. ! \\[bibtex-yank] yanks the last recently killed field after the current field. \\[bibtex-remove-delimiters] removes the double-quotes or braces around the text of the current field. \\[bibtex-empty-field] replaces the text of the current field with the default \"\" or {}. *************** *** 2507,2518 **** (setq major-mode 'bibtex-mode) (setq mode-name "BibTeX") (set-syntax-table bibtex-mode-syntax-table) - (make-local-variable 'bibtex-strings) - (make-local-variable 'bibtex-reference-keys) (make-local-variable 'bibtex-buffer-last-parsed-tick) - (bibtex-parse-strings (bibtex-string-files-init)) - (if bibtex-maintain-sorted-entries - (bibtex-parse-keys nil nil t)) ;; Install stealthy parse function if not already installed (unless bibtex-parse-idle-timer (setq bibtex-parse-idle-timer (bibtex-run-with-idle-timer --- 2589,2595 ---- *************** *** 2525,2530 **** --- 2602,2608 ---- (set (make-local-variable 'comment-column) 0) (set (make-local-variable 'defun-prompt-regexp) "^[ \t]*@[a-zA-Z0-9]+[ \t]*") (set (make-local-variable 'outline-regexp) "[ \t]*@") + (set (make-local-variable 'fill-paragraph-function) 'bibtex-fill-field) (set (make-local-variable 'fill-prefix) (make-string (+ bibtex-entry-offset bibtex-contline-indentation) ? )) *************** *** 2538,2548 **** ;; brace-delimited ones ) nil ! (font-lock-syntactic-keywords . bibtex-font-lock-syntactic-keywords))) ! (set (make-local-variable 'font-lock-mark-block-function) ! (lambda () (set-mark (bibtex-end-of-entry)) ! (bibtex-beginning-of-entry))) (setq imenu-generic-expression (list (list nil bibtex-entry-head bibtex-key-in-head))) (make-local-variable 'choose-completion-string-functions) --- 2616,2626 ---- ;; brace-delimited ones ) nil ! (font-lock-syntactic-keywords . bibtex-font-lock-syntactic-keywords) ! (font-lock-mark-block-function ! . (lambda () (set-mark (bibtex-end-of-entry)) ! (bibtex-beginning-of-entry))))) (setq imenu-generic-expression (list (list nil bibtex-entry-head bibtex-key-in-head))) (make-local-variable 'choose-completion-string-functions) *************** *** 2561,2573 **** bibtex-entry-field-alist nil t nil 'bibtex-entry-type-history))) (list e-t))) ! (unless (consp bibtex-reference-keys) (bibtex-parse-keys nil t)) ! (let* (required ! optional (key (if bibtex-maintain-sorted-entries ! (completing-read (format "%s key: " entry-type) ! bibtex-reference-keys ! nil nil nil 'bibtex-key-history))) (e (assoc-ignore-case entry-type bibtex-entry-field-alist)) (r-n-o (elt e 1)) (c-ref (elt e 2))) --- 2639,2647 ---- bibtex-entry-field-alist nil t nil 'bibtex-entry-type-history))) (list e-t))) ! (let* (required optional (key (if bibtex-maintain-sorted-entries ! (bibtex-read-key (format "%s key: " entry-type)))) (e (assoc-ignore-case entry-type bibtex-entry-field-alist)) (r-n-o (elt e 1)) (c-ref (elt e 2))) *************** *** 2603,2610 **** --- 2677,2768 ---- (indent-to-column bibtex-entry-offset) (insert (bibtex-entry-right-delimiter) "\n\n")) (bibtex-next-field t) + (if (member-ignore-case entry-type bibtex-autofill-types) + (bibtex-autofill-entry)) (run-hooks 'bibtex-add-entry-hook))) + (defun bibtex-parse-entry () + "Parse entry at point, return an alist. + The alist elements have the form (FIELD . TEXT), where FIELD can also be + the special strings \"=type=\" and \"=key=\"." + (let (alist bounds) + (when (looking-at bibtex-entry-head) + (push (cons "=type=" (match-string bibtex-type-in-head)) alist) + (push (cons "=key=" (match-string bibtex-key-in-head)) alist) + (goto-char (match-end bibtex-key-in-head)) + (while (setq bounds (bibtex-parse-field bibtex-field-name)) + (push (cons (bibtex-name-in-field bounds) + (bibtex-text-in-field-bounds bounds)) + alist) + (goto-char (bibtex-end-of-field bounds)))) + alist)) + + (defun bibtex-autofill-entry () + "Try to fill fields based on surrounding entries." + (interactive) + (undo-boundary) ;So you can easily undo it, if it didn't work right. + (bibtex-beginning-of-entry) + (when (looking-at bibtex-entry-head) + (let ((type (match-string bibtex-type-in-head)) + (key (match-string bibtex-key-in-head)) + (key-end (match-end bibtex-key-in-head)) + (case-fold-search t) + tmp other-key other bounds) + ;; The fields we want to change start right after the key. + (goto-char key-end) + ;; First see whether to use the previous or the next entry + ;; for "inspiration". + (save-excursion + (goto-char (1- (match-beginning 0))) + (bibtex-beginning-of-entry) + (when (and + (looking-at bibtex-entry-head) + (equal type (match-string bibtex-type-in-head)) + ;; In case we found ourselves :-( + (not (equal key (setq tmp (match-string bibtex-key-in-head))))) + (setq other-key tmp) + (setq other (point)))) + (save-excursion + (bibtex-end-of-entry) + (bibtex-skip-to-valid-entry) + (when (and + (looking-at bibtex-entry-head) + (equal type (match-string bibtex-type-in-head)) + ;; In case we found ourselves :-( + (not (equal key (setq tmp (match-string bibtex-key-in-head)))) + (or (not other-key) + ;; Check which is the best match. + (< (length (try-completion "" (list key other-key))) + (length (try-completion "" (list key tmp)))))) + (setq other-key tmp) + (setq other (point)))) + ;; Then fill the new entry's fields with the chosen other entry. + (when other + (setq other (save-excursion (goto-char other) (bibtex-parse-entry))) + (setq key-end (point)) ;In case parse-entry changed the buffer. + (while (setq bounds (bibtex-parse-field bibtex-field-name)) + (goto-char (bibtex-start-of-name-in-field bounds)) + (let* ((name (buffer-substring + (if (looking-at "ALT\\|OPT") (match-end 0) (point)) + (bibtex-end-of-name-in-field bounds))) + (text (assoc-ignore-case name other))) + (goto-char (bibtex-start-of-text-in-field bounds)) + (if (not (and (looking-at bibtex-empty-field-re) text)) + (goto-char (bibtex-end-of-field bounds)) + (delete-region (point) (bibtex-end-of-text-in-field bounds)) + (insert (cdr text))))) + ;; Finally try to update the text based on the difference between + ;; the two keys. + (let* ((prefix (try-completion "" (list key other-key))) + ;; If the keys are foo91 and foo92, don't replace 1 for 2 + ;; but 91 for 92 instead. + (_ (if (string-match "[0-9]+\\'" prefix) + (setq prefix (substring prefix 0 (match-beginning 0))))) + (suffix (substring key (length prefix))) + (other-suffix (substring other-key (length prefix)))) + (while (re-search-backward (regexp-quote other-suffix) key-end 'move) + (replace-match suffix))))))) + (defun bibtex-print-help-message () "Print helpful information about current field in current BibTeX entry." (interactive) *************** *** 2615,2621 **** (field-name (buffer-substring-no-properties (if (progn (goto-char mb) (looking-at "OPT\\|ALT")) ! (+ 3 mb) mb) (bibtex-end-of-name-in-field bounds))) (entry-type (progn (re-search-backward bibtex-entry-maybe-empty-head nil t) --- 2773,2779 ---- (field-name (buffer-substring-no-properties (if (progn (goto-char mb) (looking-at "OPT\\|ALT")) ! (match-end 0) mb) (bibtex-end-of-name-in-field bounds))) (entry-type (progn (re-search-backward bibtex-entry-maybe-empty-head nil t) *************** *** 2641,2722 **** (message (elt comment 1)) (message "No comment available"))))) ! (defun bibtex-make-field (e-t &optional called-by-yank) ! "Make a field named E-T in current BibTeX entry." (interactive (list (let* ((entry-type (save-excursion (bibtex-enclosing-entry-maybe-empty-head) (bibtex-type-in-head))) ! (fl (cadr (assoc-ignore-case ! entry-type bibtex-entry-field-alist))) ! (field-list (append (elt fl 0) ! (elt fl 1) bibtex-user-optional-fields ! (if bibtex-include-OPTcrossref ! '(("crossref" nil))) (if bibtex-include-OPTkey ! '(("key" nil))))) (completion-ignore-case t)) (completing-read "BibTeX field name: " field-list nil nil nil bibtex-field-history)))) ! (unless (consp e-t) ! (setq e-t (list e-t))) ! (let ((name (if (elt e-t 3) ! (concat "ALT" (car e-t)) ! (car e-t)))) ! (if (or (interactive-p) called-by-yank) ! (let (bibtex-help-message) ! (bibtex-find-text nil t t) ! (if (looking-at "[}\"]") ! (forward-char)))) ! (insert ",\n") ! (indent-to-column (+ bibtex-entry-offset bibtex-field-indentation)) ! (insert name " ") ! (if bibtex-align-at-equal-sign ! (indent-to-column (+ bibtex-entry-offset ! (- bibtex-text-indentation 2)))) ! (insert "= ") ! (if (not bibtex-align-at-equal-sign) ! (indent-to-column (+ bibtex-entry-offset ! bibtex-text-indentation))) ! (insert (if called-by-yank ! "" ! (bibtex-field-left-delimiter)) ! (let ((init (elt e-t 2))) ! (cond ((stringp init) ! init) ! ((fboundp init) ! (funcall init)) ! (t ""))) ! (if called-by-yank ! "" ! (bibtex-field-right-delimiter))) ! (if (interactive-p) ! (forward-char -1)))) (defun bibtex-beginning-of-entry () "Move to beginning of BibTeX entry (beginning of line). If inside an entry, move to the beginning of it, otherwise move to the ! beginning of the previous entry. ! If called from a program, this function returns the new location of point." (interactive) (skip-chars-forward " \t") (if (looking-at "@") (forward-char)) ! (re-search-backward "^[ \t]*@" nil 'move)) (defun bibtex-end-of-entry () "Move to end of BibTeX entry (past the closing brace). If inside an entry, move to the end of it, otherwise move to the end of the previous entry. Do not move if ahead of first entry. ! If called from a program, this function returns the new location of point." (interactive) (let ((case-fold-search t) (org (point)) (pnt (bibtex-beginning-of-entry)) err bounds) ! (cond ((setq bounds (bibtex-parse-string)) (goto-char (bibtex-end-of-string bounds))) ((looking-at "[ \t]*@[ \t]*preamble[ \t\n]*") (goto-char (match-end 0)) --- 2799,2884 ---- (message (elt comment 1)) (message "No comment available"))))) ! (defun bibtex-make-field (field &optional called-by-yank) ! "Make a field named FIELD in current BibTeX entry. ! FIELD is either a string or a list of the form ! \(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG) as in ! `bibtex-entry-field-alist'." (interactive (list (let* ((entry-type (save-excursion (bibtex-enclosing-entry-maybe-empty-head) (bibtex-type-in-head))) ! ;; "preliminary" completion list ! (fl (nth 1 (assoc-ignore-case ! entry-type bibtex-entry-field-alist))) ! ;; "full" completion list ! (field-list (append (nth 0 fl) ! (nth 1 fl) bibtex-user-optional-fields ! (if (member entry-type ! bibtex-include-OPTcrossref) ! '(("crossref"))) (if bibtex-include-OPTkey ! '(("key"))))) (completion-ignore-case t)) (completing-read "BibTeX field name: " field-list nil nil nil bibtex-field-history)))) ! (unless (consp field) ! (setq field (list field))) ! (if (or (interactive-p) called-by-yank) ! (let (bibtex-help-message) ! (bibtex-find-text nil t t) ! (if (looking-at "[}\"]") ! (forward-char)))) ! (insert ",\n") ! (indent-to-column (+ bibtex-entry-offset bibtex-field-indentation)) ! (if (nth 3 field) (insert "ALT")) ! (insert (car field) " ") ! (if bibtex-align-at-equal-sign ! (indent-to-column (+ bibtex-entry-offset ! (- bibtex-text-indentation 2)))) ! (insert "= ") ! (if (not bibtex-align-at-equal-sign) ! (indent-to-column (+ bibtex-entry-offset ! bibtex-text-indentation))) ! (if (not called-by-yank) (insert (bibtex-field-left-delimiter))) ! (let ((init (nth 2 field))) ! (cond ((stringp init) ! (insert init)) ! ((fboundp init) ! (insert (funcall init))))) ! (if (not called-by-yank) (insert (bibtex-field-right-delimiter))) ! (if (interactive-p) ! (forward-char -1))) (defun bibtex-beginning-of-entry () "Move to beginning of BibTeX entry (beginning of line). If inside an entry, move to the beginning of it, otherwise move to the ! beginning of the previous entry. If point is ahead of all BibTeX entries ! move point to the beginning of buffer. Return the new location of point." (interactive) (skip-chars-forward " \t") (if (looking-at "@") (forward-char)) ! (re-search-backward "^[ \t]*@" nil 'move) ! (point)) (defun bibtex-end-of-entry () "Move to end of BibTeX entry (past the closing brace). If inside an entry, move to the end of it, otherwise move to the end of the previous entry. Do not move if ahead of first entry. ! Return the new location of point." (interactive) (let ((case-fold-search t) (org (point)) (pnt (bibtex-beginning-of-entry)) err bounds) ! (cond ((looking-at bibtex-valid-entry-whitespace-re) ! (bibtex-search-entry t nil t) ! (unless (equal (match-beginning 0) pnt) ! (setq err t))) ! ((setq bounds (bibtex-parse-string)) (goto-char (bibtex-end-of-string bounds))) ((looking-at "[ \t]*@[ \t]*preamble[ \t\n]*") (goto-char (match-end 0)) *************** *** 2731,2740 **** (unless err (goto-char (match-beginning 0)) (forward-char))) - ((looking-at bibtex-valid-entry-whitespace-re) - (bibtex-search-entry t nil t) - (unless (equal (match-beginning 0) pnt) - (setq err t))) (t (if (interactive-p) (message "Not on a known BibTeX entry.")) --- 2893,2898 ---- *************** *** 2777,2800 **** (region-end) (point-max))) (goto-char (point-min)) ! (bibtex-map-entries (lambda (current) (setq number (1+ number)))))) (message "%s contains %d entries." (if (bibtex-mark-active) "Region" "Buffer") ! number))) (defun bibtex-ispell-entry () "Spell whole BibTeX entry." (interactive) ! (ispell-region (bibtex-beginning-of-entry) ! (bibtex-end-of-entry))) (defun bibtex-ispell-abstract () "Spell abstract of BibTeX entry." (interactive) ! (bibtex-beginning-of-entry) ! (let ((bounds (bibtex-search-forward-field "abstract" ! (bibtex-end-of-entry)))) (if bounds (ispell-region (bibtex-start-of-text-in-field bounds) (bibtex-end-of-text-in-field bounds)) --- 2935,2958 ---- (region-end) (point-max))) (goto-char (point-min)) ! (bibtex-map-entries (lambda (key beg end) (setq number (1+ number)))))) (message "%s contains %d entries." (if (bibtex-mark-active) "Region" "Buffer") ! number))) (defun bibtex-ispell-entry () "Spell whole BibTeX entry." (interactive) ! (ispell-region (save-excursion (bibtex-beginning-of-entry)) ! (save-excursion (bibtex-end-of-entry)))) (defun bibtex-ispell-abstract () "Spell abstract of BibTeX entry." (interactive) ! (let ((bounds (save-excursion ! (bibtex-beginning-of-entry) ! (bibtex-search-forward-field "abstract" t)))) (if bounds (ispell-region (bibtex-start-of-text-in-field bounds) (bibtex-end-of-text-in-field bounds)) *************** *** 2815,2833 **** (let ((case-fold-search t)) (if (re-search-forward bibtex-entry-maybe-empty-head nil t) (let ((key (bibtex-key-in-head)) ! (entry-name (bibtex-type-in-head))) ;; Don't search CROSSREF-KEY if we don't need it. (if (equal bibtex-maintain-sorted-entries 'crossref) (save-excursion ! (save-restriction ! (bibtex-narrow-to-entry) ! (goto-char (point-min)) ! (let ((bounds (bibtex-search-forward-field ! "\\(OPT\\)?crossref"))) ! (list key ! (if bounds (bibtex-text-in-field-bounds bounds t)) ! entry-name)))) ! (list key nil entry-name)))))) (defun bibtex-lessp (index1 index2) "Predicate for sorting BibTeX entries with indices INDEX1 and INDEX2. --- 2973,2990 ---- (let ((case-fold-search t)) (if (re-search-forward bibtex-entry-maybe-empty-head nil t) (let ((key (bibtex-key-in-head)) ! ;; all entry names should be downcase (for ease of comparison) ! (entry-name (downcase (bibtex-type-in-head)))) ;; Don't search CROSSREF-KEY if we don't need it. (if (equal bibtex-maintain-sorted-entries 'crossref) (save-excursion ! (bibtex-beginning-of-entry) ! (let ((bounds (bibtex-search-forward-field ! "\\(OPT\\)?crossref" t))) ! (list key ! (if bounds (bibtex-text-in-field-bounds bounds t)) ! entry-name)))) ! (list key nil entry-name))))) (defun bibtex-lessp (index1 index2) "Predicate for sorting BibTeX entries with indices INDEX1 and INDEX2. *************** *** 2846,2855 **** (string-lessp (nth 0 index1) (nth 1 index2)) (string-lessp (nth 0 index1) (nth 0 index2))))) ((equal bibtex-maintain-sorted-entries 'entry-class) ! (let ((n1 (cdr (assoc-ignore-case (nth 2 index1) ! bibtex-sort-entry-class-alist))) ! (n2 (cdr (assoc-ignore-case (nth 2 index2) ! bibtex-sort-entry-class-alist)))) (or (< n1 n2) (and (= n1 n2) (string-lessp (car index1) (car index2)))))) --- 3003,3014 ---- (string-lessp (nth 0 index1) (nth 1 index2)) (string-lessp (nth 0 index1) (nth 0 index2))))) ((equal bibtex-maintain-sorted-entries 'entry-class) ! (let ((n1 (cdr (or (assoc (nth 2 index1) bibtex-sort-entry-class-alist) ! (assoc 'catch-all bibtex-sort-entry-class-alist) ! '(nil . 1000)))) ; if there is nothing else ! (n2 (cdr (or (assoc (nth 2 index2) bibtex-sort-entry-class-alist) ! (assoc 'catch-all bibtex-sort-entry-class-alist) ! '(nil . 1000))))) ; if there is nothing else (or (< n1 n2) (and (= n1 n2) (string-lessp (car index1) (car index2)))))) *************** *** 2880,2886 **** (defun bibtex-find-crossref (crossref-key) "Move point to the beginning of BibTeX entry CROSSREF-KEY. Return position of entry if CROSSREF-KEY is found and nil otherwise. ! If position of current entry is after CROSSREF-KEY an error is signaled." (let ((pos (save-excursion (bibtex-find-entry crossref-key)))) (if (and pos (> (point) pos)) (error "This entry must not follow the crossrefed entry!")) --- 3039,3055 ---- (defun bibtex-find-crossref (crossref-key) "Move point to the beginning of BibTeX entry CROSSREF-KEY. Return position of entry if CROSSREF-KEY is found and nil otherwise. ! If position of current entry is after CROSSREF-KEY an error is signaled. ! If called interactively, CROSSREF-KEY defaults to crossref key of current ! entry." ! (interactive ! (let ((crossref-key ! (save-excursion ! (bibtex-beginning-of-entry) ! (let ((bounds (bibtex-search-forward-field "crossref" t))) ! (if bounds ! (bibtex-text-in-field-bounds bounds t)))))) ! (list (bibtex-read-key "Find crossref key: " crossref-key)))) (let ((pos (save-excursion (bibtex-find-entry crossref-key)))) (if (and pos (> (point) pos)) (error "This entry must not follow the crossrefed entry!")) *************** *** 2889,2913 **** (defun bibtex-find-entry (key) "Move point to the beginning of BibTeX entry named KEY. Return position of entry if KEY is found or nil if not found." ! (interactive ! (list (if bibtex-maintain-sorted-entries ! (completing-read "Find key: " ! bibtex-reference-keys ! nil nil nil 'bibtex-key-history) ! (read-from-minibuffer "Find key: " nil nil nil ! 'bibtex-key-history)))) (let* (case-fold-search (pnt (save-excursion (goto-char (point-min)) ! (when (re-search-forward (concat "^[ \t]*\\(" ! bibtex-entry-type ! "\\)[ \t]*[({][ \t\n]*\\(" ! (regexp-quote key) "\\)") ! nil t) ! (match-beginning 2))))) (cond (pnt ! (goto-char pnt) ! (bibtex-beginning-of-entry)) ((interactive-p) (message "Key `%s' not found" key))))) --- 3058,3076 ---- (defun bibtex-find-entry (key) "Move point to the beginning of BibTeX entry named KEY. Return position of entry if KEY is found or nil if not found." ! (interactive (list (bibtex-read-key "Find key: "))) (let* (case-fold-search (pnt (save-excursion (goto-char (point-min)) ! (if (re-search-forward (concat "^[ \t]*\\(" ! bibtex-entry-type ! "\\)[ \t]*[({][ \t\n]*\\(" ! (regexp-quote key) ! "\\)[ \t\n]*[,=]") ! nil t) ! (match-beginning 0))))) (cond (pnt ! (goto-char pnt)) ((interactive-p) (message "Key `%s' not found" key))))) *************** *** 3019,3027 **** (goto-char (point-min)) (bibtex-progress-message "Checking correct sort order") (bibtex-map-entries ! (lambda (dummy) (bibtex-progress-message) ! (bibtex-beginning-of-entry) (setq current (bibtex-entry-index)) (cond ((or (not previous) (bibtex-lessp previous current)) --- 3182,3190 ---- (goto-char (point-min)) (bibtex-progress-message "Checking correct sort order") (bibtex-map-entries ! (lambda (key beg end) (bibtex-progress-message) ! (goto-char beg) (setq current (bibtex-entry-index)) (cond ((or (not previous) (bibtex-lessp previous current)) *************** *** 3045,3055 **** (questionable-month (regexp-opt (mapcar 'car bibtex-predefined-month-strings)))) (bibtex-map-entries ! (lambda (current) (bibtex-progress-message) ! (let* ((beg (bibtex-beginning-of-entry)) ! (end (bibtex-end-of-entry)) ! (entry-list (progn (goto-char beg) (bibtex-search-entry nil end) (assoc-ignore-case (bibtex-type-in-head) --- 3208,3216 ---- (questionable-month (regexp-opt (mapcar 'car bibtex-predefined-month-strings)))) (bibtex-map-entries ! (lambda (key beg end) (bibtex-progress-message) ! (let* ((entry-list (progn (goto-char beg) (bibtex-search-entry nil end) (assoc-ignore-case (bibtex-type-in-head) *************** *** 3185,3191 **** (save-excursion (goto-char (bibtex-start-of-name-in-field bounds)) (when (looking-at "OPT\\|ALT") ! (delete-char (length "OPT")) ;; make field non-OPT (search-forward "=") (forward-char -1) --- 3346,3352 ---- (save-excursion (goto-char (bibtex-start-of-name-in-field bounds)) (when (looking-at "OPT\\|ALT") ! (delete-region (match-beginning 0) (match-end 0)) ;; make field non-OPT (search-forward "=") (forward-char -1) *************** *** 3326,3362 **** (defun bibtex-clean-entry (&optional new-key called-by-reformat) "Finish editing the current BibTeX entry and clean it up. ! Checks that no required fields are empty and formats entry dependent on the value of `bibtex-entry-format'. If the reference key of the entry is empty or a prefix argument is given, ! calculate a new reference key. (Note: this only will work if fields in entry begin on separate lines prior to calling `bibtex-clean-entry' or if 'realign is contained in `bibtex-entry-format'.) ! Don't call this on @String or @Preamble entries. At end of the cleaning process, the functions in `bibtex-clean-entry-hook' are called with region narrowed to entry." ;; Opt. arg called-by-reformat is t if bibtex-clean-entry ;; is called by bibtex-reformat (interactive "P") - (bibtex-format-entry) (let ((case-fold-search t) ! key) (bibtex-beginning-of-entry) ! (setq key (save-excursion ! (if (re-search-forward bibtex-entry-maybe-empty-head nil t) ! (bibtex-key-in-head)))) (when (or new-key (not key)) ! (setq key (if bibtex-autokey-edit-before-use ! (read-from-minibuffer ! "Key to use: " (bibtex-generate-autokey) nil nil ! 'bibtex-key-history) ! (bibtex-generate-autokey))) ! (bibtex-beginning-of-entry) (re-search-forward bibtex-entry-maybe-empty-head) (if (match-beginning bibtex-key-in-head) (delete-region (match-beginning bibtex-key-in-head) (match-end bibtex-key-in-head))) (insert key)) (let* ((start (bibtex-beginning-of-entry)) (end (progn (bibtex-end-of-entry) (if (re-search-forward --- 3487,3529 ---- (defun bibtex-clean-entry (&optional new-key called-by-reformat) "Finish editing the current BibTeX entry and clean it up. ! Check that no required fields are empty and formats entry dependent on the value of `bibtex-entry-format'. If the reference key of the entry is empty or a prefix argument is given, ! calculate a new reference key. (Note: this will only work if fields in entry begin on separate lines prior to calling `bibtex-clean-entry' or if 'realign is contained in `bibtex-entry-format'.) ! Don't call `bibtex-clean-entry' on @Preamble entries. At end of the cleaning process, the functions in `bibtex-clean-entry-hook' are called with region narrowed to entry." ;; Opt. arg called-by-reformat is t if bibtex-clean-entry ;; is called by bibtex-reformat (interactive "P") (let ((case-fold-search t) ! entry-type key) (bibtex-beginning-of-entry) ! (save-excursion ! (when (re-search-forward bibtex-entry-maybe-empty-head nil t) ! (setq entry-type (downcase (bibtex-type-in-head))) ! (setq key (bibtex-key-in-head)))) ! ;; formatting ! (cond ((equal entry-type "preamble") ! ;; (bibtex-format-preamble) ! (error "No clean up of @Preamble entries")) ! ((equal entry-type "string")) ! ;; (bibtex-format-string) ! (t (bibtex-format-entry))) ! ;; set key (when (or new-key (not key)) ! (setq key (bibtex-generate-autokey)) ! (if bibtex-autokey-edit-before-use ! (setq key (bibtex-read-key "Key to use: " key))) (re-search-forward bibtex-entry-maybe-empty-head) (if (match-beginning bibtex-key-in-head) (delete-region (match-beginning bibtex-key-in-head) (match-end bibtex-key-in-head))) (insert key)) + ;; sorting (let* ((start (bibtex-beginning-of-entry)) (end (progn (bibtex-end-of-entry) (if (re-search-forward *************** *** 3368,3374 **** (bibtex-entry-index)))) (delete-region start end) (unless (prog1 (or called-by-reformat ! (if bibtex-maintain-sorted-entries (bibtex-prepare-new-entry index) (not (bibtex-find-entry (car index))))) (insert entry) --- 3535,3543 ---- (bibtex-entry-index)))) (delete-region start end) (unless (prog1 (or called-by-reformat ! (if (and bibtex-maintain-sorted-entries ! (not (and bibtex-sort-ignore-string-entries ! (equal entry-type "string")))) (bibtex-prepare-new-entry index) (not (bibtex-find-entry (car index))))) (insert entry) *************** *** 3376,3395 **** (bibtex-beginning-of-entry) ; moves backward (re-search-forward bibtex-entry-head)) (error "New inserted entry yields duplicate key"))) (unless called-by-reformat (save-excursion (save-restriction (bibtex-narrow-to-entry) ! ;; Only update the list of keys if it's been built already. ! (if (consp bibtex-reference-keys) (bibtex-parse-keys t nil)) (run-hooks 'bibtex-clean-entry-hook)))))) (defun bibtex-fill-entry () "Fill current BibTeX entry. Realign entry, so that every field starts on a separate line. Field names appear in column `bibtex-field-indentation', field text starts in column `bibtex-text-indentation' and continuation lines start here, too. ! If `bibtex-align-at-equal-sign' is non-nil, align equal signs also." (interactive "*") (let ((pnt (copy-marker (point))) (end (copy-marker (bibtex-end-of-entry))) --- 3545,3610 ---- (bibtex-beginning-of-entry) ; moves backward (re-search-forward bibtex-entry-head)) (error "New inserted entry yields duplicate key"))) + ;; final clean up (unless called-by-reformat (save-excursion (save-restriction (bibtex-narrow-to-entry) ! ;; Only update the list of keys if it has been built already. ! (cond ((equal entry-type "string") ! (if (listp bibtex-strings) (bibtex-parse-strings t))) ! ((listp bibtex-reference-keys) (bibtex-parse-keys t))) (run-hooks 'bibtex-clean-entry-hook)))))) + (defun bibtex-fill-field-bounds (bounds justify &optional move) + "Fill BibTeX field delimited by BOUNDS. + If JUSTIFY is non-nil justify as well. + If optional arg MOVE is non-nil move point to end of field." + (let ((end-field (copy-marker (bibtex-end-of-field bounds)))) + (goto-char (bibtex-start-of-field bounds)) + (if justify + (progn + (forward-char) + (bibtex-delete-whitespace) + (open-line 1) + (forward-char) + (indent-to-column (+ bibtex-entry-offset + bibtex-field-indentation)) + (re-search-forward "[ \t\n]*=" end-field) + (replace-match "=") + (forward-char -1) + (if bibtex-align-at-equal-sign + (indent-to-column + (+ bibtex-entry-offset (- bibtex-text-indentation 2))) + (insert " ")) + (forward-char) + (bibtex-delete-whitespace) + (if bibtex-align-at-equal-sign + (insert " ") + (indent-to-column bibtex-text-indentation))) + (re-search-forward "[ \t\n]*=[ \t\n]*" end-field)) + (while (re-search-forward "[ \t\n]+" end-field 'move) + (replace-match " ")) + (do-auto-fill) + (if move (goto-char end-field)))) + + (defun bibtex-fill-field (&optional justify) + "Like \\[fill-paragraph], but fill current BibTeX field. + Optional prefix arg JUSTIFY non-nil means justify as well. + In BibTeX mode this function is bound to `fill-paragraph-function'." + (interactive "*P") + (let ((pnt (copy-marker (point))) + (bounds (bibtex-enclosing-field))) + (when bounds + (bibtex-fill-field-bounds bounds justify) + (goto-char pnt)))) + (defun bibtex-fill-entry () "Fill current BibTeX entry. Realign entry, so that every field starts on a separate line. Field names appear in column `bibtex-field-indentation', field text starts in column `bibtex-text-indentation' and continuation lines start here, too. ! If `bibtex-align-at-equal-sign' is non-nil, align equal signs, too." (interactive "*") (let ((pnt (copy-marker (point))) (end (copy-marker (bibtex-end-of-entry))) *************** *** 3398,3428 **** (bibtex-delete-whitespace) (indent-to-column bibtex-entry-offset) (while (setq bounds (bibtex-search-forward-field bibtex-field-name end)) ! (let* ((begin-field (copy-marker (bibtex-start-of-field bounds))) ! (end-field (copy-marker (bibtex-end-of-field bounds)))) ! (goto-char begin-field) ! (forward-char) ! (bibtex-delete-whitespace) ! (open-line 1) ! (forward-char) ! (indent-to-column (+ bibtex-entry-offset ! bibtex-field-indentation)) ! (re-search-forward "[ \t\n]*=" end) ! (replace-match "=") ! (forward-char -1) ! (if bibtex-align-at-equal-sign ! (indent-to-column ! (+ bibtex-entry-offset (- bibtex-text-indentation 2))) ! (insert " ")) ! (forward-char) ! (bibtex-delete-whitespace) ! (if bibtex-align-at-equal-sign ! (insert " ") ! (indent-to-column bibtex-text-indentation)) ! (while (re-search-forward "[ \t\n]+" end-field 'move) ! (replace-match " ")) ! (do-auto-fill) ! (goto-char end-field))) (if (looking-at ",") (forward-char)) (bibtex-delete-whitespace) --- 3613,3619 ---- (bibtex-delete-whitespace) (indent-to-column bibtex-entry-offset) (while (setq bounds (bibtex-search-forward-field bibtex-field-name end)) ! (bibtex-fill-field-bounds bounds t t)) (if (looking-at ",") (forward-char)) (bibtex-delete-whitespace) *************** *** 3488,3498 **** (replace-match "\n\\1"))) (goto-char start-point) (bibtex-progress-message "Formatting" 1) ! (bibtex-map-entries (lambda (current) (bibtex-progress-message) (bibtex-clean-entry reformat-reference-keys t) (when (memq 'realign bibtex-entry-format) ! (bibtex-end-of-entry) (bibtex-delete-whitespace) (open-line 2)))) (bibtex-progress-message 'done)) --- 3679,3689 ---- (replace-match "\n\\1"))) (goto-char start-point) (bibtex-progress-message "Formatting" 1) ! (bibtex-map-entries (lambda (key beg end) (bibtex-progress-message) (bibtex-clean-entry reformat-reference-keys t) (when (memq 'realign bibtex-entry-format) ! (goto-char end) (bibtex-delete-whitespace) (open-line 2)))) (bibtex-progress-message 'done)) *************** *** 3500,3507 **** bibtex-maintain-sorted-entries (not called-by-convert-alien)) (bibtex-sort-buffer) ! (setq bibtex-reference-keys nil) ! (bibtex-parse-keys nil t t)) (goto-char pnt))) (defun bibtex-convert-alien (&optional do-additional-reformatting) --- 3691,3697 ---- bibtex-maintain-sorted-entries (not called-by-convert-alien)) (bibtex-sort-buffer) ! (kill-local-variable 'bibtex-reference-keys)) (goto-char pnt))) (defun bibtex-convert-alien (&optional do-additional-reformatting) *************** *** 3534,3540 **** (defun bibtex-complete () "Complete word fragment before point according to context. ! If inside key or crossref field complete key based on `bibtex-reference-keys'. Inside any other field perform string completion based on `bibtex-strings'. An error is signaled if point is outside key or BibTeX field." --- 3724,3730 ---- (defun bibtex-complete () "Complete word fragment before point according to context. ! If point is inside key or crossref field perform key completion based on `bibtex-reference-keys'. Inside any other field perform string completion based on `bibtex-strings'. An error is signaled if point is outside key or BibTeX field." *************** *** 3570,3576 **** (cond ((equal compl 'key) ;; key completion - (unless (consp bibtex-reference-keys) (bibtex-parse-keys nil t)) (setq choose-completion-string-functions (lambda (choice buffer mini-p base-size) (bibtex-choose-completion-string choice buffer mini-p base-size) --- 3760,3765 ---- *************** *** 3661,3676 **** (defun bibtex-String (&optional key) "Insert a new BibTeX @String entry with key KEY." ! (interactive ! (progn (unless (consp bibtex-reference-keys) (bibtex-parse-keys nil t)) ! (list (completing-read "String key: " bibtex-reference-keys ! nil nil nil 'bibtex-key-history)))) ! ;; If we want to sort String entries only the sorting scheme ! ;; entry-class is meaningful (let ((bibtex-maintain-sorted-entries ! (if (and (not bibtex-sort-ignore-string-entries) ! bibtex-maintain-sorted-entries) ! 'entry-class)) endpos) (unless (bibtex-prepare-new-entry (list key nil "String")) (error "Entry with key `%s' already exists" key)) --- 3850,3860 ---- (defun bibtex-String (&optional key) "Insert a new BibTeX @String entry with key KEY." ! (interactive (list (completing-read "String key: " bibtex-strings ! nil nil nil 'bibtex-key-history))) (let ((bibtex-maintain-sorted-entries ! (if (not bibtex-sort-ignore-string-entries) ! bibtex-maintain-sorted-entries)) endpos) (unless (bibtex-prepare-new-entry (list key nil "String")) (error "Entry with key `%s' already exists" key)) *************** *** 3696,3706 **** (bibtex-move-outside-of-entry) (indent-to-column bibtex-entry-offset) (insert "@Preamble" ! (bibtex-entry-left-delimiter) ! (bibtex-entry-right-delimiter) ! "\n") ! (forward-line -1) ! (forward-char 10)) ;; Make BibTeX a Feature --- 3880,3890 ---- (bibtex-move-outside-of-entry) (indent-to-column bibtex-entry-offset) (insert "@Preamble" ! (bibtex-entry-left-delimiter)) ! (let ((endpos (point))) ! (insert (bibtex-entry-right-delimiter) ! "\n") ! (goto-char endpos))) ;; Make BibTeX a Feature From MAILER-DAEMON Sat Jul 05 08:44:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YmOw-00056B-Ar for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:44:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YmOV-0004Tp-DV for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:43:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YmOQ-0004JL-Qb for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:43:55 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YmOM-00049e-M5 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:43:50 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19YmNI-0001bY-GS for emacs-diffs@gnu.org; Sat, 05 Jul 2003 08:42:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sat, 05 Jul 2003 08:42:44 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 12:44:19 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.829 emacs/etc/NEWS:1.830 *** emacs/etc/NEWS:1.829 Thu Jul 3 08:49:26 2003 --- emacs/etc/NEWS Sat Jul 5 08:42:43 2003 *************** *** 109,115 **** *** bibtex-maintain-sorted-entries can take values `plain', `crossref', and `entry-class' which control the sorting scheme used for BibTeX entries. `bibtex-sort-entry-class' controls the sorting ! scheme `entry-class'. ** When display margins are present in a window, the fringes are now displayed between the margins and the buffer's text area, rather than --- 109,135 ---- *** bibtex-maintain-sorted-entries can take values `plain', `crossref', and `entry-class' which control the sorting scheme used for BibTeX entries. `bibtex-sort-entry-class' controls the sorting ! scheme `entry-class'. TAB completion for reference keys and ! automatic detection of duplicates does not require anymore that ! bibtex-maintain-sorted-entries is non-nil. ! ! *** If the new variable bibtex-parse-keys-fast is non-nil, ! use fast but simplified algorithm for parsing BibTeX keys. ! ! *** If the new variable bibtex-autoadd-commas is non-nil, ! automatically add missing commas at end of BibTeX fields. ! ! *** The new variable bibtex-autofill-types contains a list of entry ! types for which fields are filled automatically (if possible). ! ! *** The new command bibtex-complete completes word fragment before ! point according to context (bound to M-tab). ! ! *** The new commands bibtex-find-entry and bibtex-find-crossref ! locate entries and crossref'd entries. ! ! *** In BibTeX mode the command fill-paragraph (bound to M-q) fills ! individual fields of a BibTeX entry. ** When display margins are present in a window, the fringes are now displayed between the margins and the buffer's text area, rather than From MAILER-DAEMON Sat Jul 05 10:52:48 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YoP4-0006sV-Ra for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:52:42 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YoOa-0005h9-Hq for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:52:12 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YoOH-0004qb-98 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:51:54 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YoO0-0003t3-93 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:51:36 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19YoMy-0002BA-Oj for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:50:32 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 05 Jul 2003 10:50:32 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/cus-theme.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 14:52:41 -0000 Index: emacs/lisp/cus-theme.el diff -c emacs/lisp/cus-theme.el:1.5 emacs/lisp/cus-theme.el:1.6 *** emacs/lisp/cus-theme.el:1.5 Mon Mar 24 01:07:49 2003 --- emacs/lisp/cus-theme.el Sat Jul 5 10:50:32 2003 *************** *** 73,79 **** (widget-insert " ") (widget-create 'push-button :notify (lambda (&rest ignore) ! (custom-theme-create)) "Reset") (widget-insert " ") (widget-create 'push-button --- 73,79 ---- (widget-insert " ") (widget-create 'push-button :notify (lambda (&rest ignore) ! (customize-create-theme)) "Reset") (widget-insert " ") (widget-create 'push-button From MAILER-DAEMON Sat Jul 05 10:54:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YoRB-000352-0N for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:54:53 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YoR7-0002t2-0q for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:54:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YoR0-0002X1-Ce for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:54:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YoQu-0002FT-5E for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:54:36 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19YoPt-0002GN-0r for emacs-diffs@gnu.org; Sat, 05 Jul 2003 10:53:33 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 05 Jul 2003 10:53:33 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 14:54:50 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5260 emacs/lisp/ChangeLog:1.5261 *** emacs/lisp/ChangeLog:1.5260 Sat Jul 5 08:41:24 2003 --- emacs/lisp/ChangeLog Sat Jul 5 10:53:30 2003 *************** *** 91,96 **** --- 91,99 ---- 2003-07-05 John Paul Wallington + * cus-theme.el (customize-create-theme): + Call `customize-create-theme' in Reset widget's notify function. + * ibuffer.el (ibuffer-backward-line, ibuffer-forward-line) (ibuffer-mark-interactive): Use `or' instead of `unless'. (define-ibuffer-column name): Add summarizer. From MAILER-DAEMON Sat Jul 05 15:54:43 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Yt7K-0003lK-QH for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:54:42 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Yt7I-0003ic-Mj for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:54:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yt7G-0003hS-Fk for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:54:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Yt7G-0003gh-73 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:54:38 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Yt6E-0006rq-Ad for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:53:34 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Sat, 05 Jul 2003 15:53:34 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-mode.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 19:54:41 -0000 Index: emacs/lisp/progmodes/cc-mode.el diff -c emacs/lisp/progmodes/cc-mode.el:1.27 emacs/lisp/progmodes/cc-mode.el:1.28 *** emacs/lisp/progmodes/cc-mode.el:1.27 Thu Jul 3 08:30:59 2003 --- emacs/lisp/progmodes/cc-mode.el Sat Jul 5 15:53:33 2003 *************** *** 596,601 **** --- 596,612 ---- ;; doing this on load. That since `add-to-list' prepends the value ;; which could cause it to clobber user settings. Later emacsen have ;; an append option, but it's not safe to use. + + ;; The the extension ".C" is associated to C++ while the lowercase + ;; variant goes to C. On case insensitive file systems, this means + ;; that ".c" files also might open C++ mode if the C++ entry comes + ;; first on `auto-mode-alist'. Thus we try to ensure that ".C" comes + ;; after ".c", and since `add-to-list' adds the entry first we have to + ;; add the ".C" entry first. + ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(cc\\|hh\\)\\'" . c++-mode)) + ;;;###autoload (add-to-list 'auto-mode-alist '("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode)) + ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(CC?\\|HH?\\)\\'" . c++-mode)) + ;;;###autoload (add-to-list 'auto-mode-alist '("\\.[ch]\\'" . c-mode)) ;; NB: The following two associate yacc and lex files to C Mode, which *************** *** 613,619 **** To submit a problem report, enter `\\[c-submit-bug-report]' from a c-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the ! problem, including a reproducible test case and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. --- 624,630 ---- To submit a problem report, enter `\\[c-submit-bug-report]' from a c-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the ! problem, including a reproducible test case, and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. *************** *** 670,679 **** (easy-menu-define c-c++-menu c++-mode-map "C++ Mode Commands" (cons "C++" (c-lang-const c-mode-menu c++))) - ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(cc\\|hh\\)\\'" . c++-mode)) - ;;;###autoload (add-to-list 'auto-mode-alist '("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode)) - ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(CC?\\|HH?\\)\\'" . c++-mode)) - ;;;###autoload (defun c++-mode () "Major mode for editing C++ code. --- 681,686 ---- *************** *** 816,822 **** To submit a problem report, enter `\\[c-submit-bug-report]' from a java-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description ! of the problem, including a reproducible test case and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. --- 823,829 ---- To submit a problem report, enter `\\[c-submit-bug-report]' from a java-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description ! of the problem, including a reproducible test case, and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. *************** *** 929,936 **** (easy-menu-define c-pike-menu pike-mode-map "Pike Mode Commands" (cons "Pike" (c-lang-const c-mode-menu pike))) ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(pike\\|pmod\\(.in\\)?\\)\\'" . pike-mode)) ! ;;;###autoload (add-to-list 'interpreter-mode-alist '(("pike" . pike-mode))) ;;;###autoload (defun pike-mode () --- 936,943 ---- (easy-menu-define c-pike-menu pike-mode-map "Pike Mode Commands" (cons "Pike" (c-lang-const c-mode-menu pike))) ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.\\(u?lpc\\|pike\\|pmod\\(.in\\)?\\)\\'" . pike-mode)) ! ;;;###autoload (add-to-list 'interpreter-mode-alist '("pike" . pike-mode)) ;;;###autoload (defun pike-mode () *************** *** 969,986 **** ;; Support for awk. This is purposely disabled for older (X)Emacsen which ;; don't support syntax-table properties. ! (if (not (memq 'syntax-properties c-emacs-features)) ! (autoload 'awk-mode "awk-mode.el" "Major mode for editing AWK code. ! To submit a problem report, enter `\\[c-submit-bug-report]' from an ! awk-mode buffer. This automatically sets up a mail buffer with version ! information already added. You just need to add a description of the ! problem, including a reproducible test case and send the message. ! To see what version of CC Mode you are running, enter `\\[c-version]'. - The hook `c-mode-common-hook' is run with no args at mode - initialization, then `awk-mode-hook'. - " t) (defvar awk-mode-abbrev-table nil "Abbreviation table used in awk-mode buffers.") (c-define-abbrev-table 'awk-mode-abbrev-table --- 976,994 ---- ;; Support for awk. This is purposely disabled for older (X)Emacsen which ;; don't support syntax-table properties. ! ;;;###autoload (add-to-list 'auto-mode-alist '("\\.awk\\'" . awk-mode)) ! ;;;###autoload (add-to-list 'interpreter-mode-alist '("awk" . awk-mode)) ! ;;;###autoload (add-to-list 'interpreter-mode-alist '("mawk" . awk-mode)) ! ;;;###autoload (add-to-list 'interpreter-mode-alist '("nawk" . awk-mode)) ! ;;;###autoload (add-to-list 'interpreter-mode-alist '("gawk" . awk-mode)) ! ! ;;; Autoload directives must be on the top level, so we construct an ! ;;; autoload form instead. ! ;;;###autoload (autoload 'awk-mode "cc-mode" "Major mode for editing AWK code.") ! (if (not (memq 'syntax-properties c-emacs-features)) ! (autoload 'awk-mode "awk-mode" "Major mode for editing AWK code." t) (defvar awk-mode-abbrev-table nil "Abbreviation table used in awk-mode buffers.") (c-define-abbrev-table 'awk-mode-abbrev-table *************** *** 1007,1024 **** (easy-menu-define c-awk-menu awk-mode-map "AWK Mode Commands" (cons "AWK" (c-lang-const c-mode-menu awk))) - ;; In XEmacs >= 21.5 modes should add their own entries to - ;; `auto-mode-alist' and `interpreter-mode-alist'. - ;;;###autoload (add-to-list 'auto-mode-alist '("\\.awk\\'" . awk-mode)) - ;;;###autoload (add-to-list 'interpreter-mode-alist '(("awk" . awk-mode) ("mawk" . awk-mode) ("nawk" . awk-mode) ("gawk" . awk-mode))) - - ;;;###autoload (defun awk-mode () "Major mode for editing AWK code. To submit a problem report, enter `\\[c-submit-bug-report]' from an awk-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the ! problem, including a reproducible test case and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. --- 1015,1026 ---- (easy-menu-define c-awk-menu awk-mode-map "AWK Mode Commands" (cons "AWK" (c-lang-const c-mode-menu awk))) (defun awk-mode () "Major mode for editing AWK code. To submit a problem report, enter `\\[c-submit-bug-report]' from an awk-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the ! problem, including a reproducible test case, and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. From MAILER-DAEMON Sat Jul 05 15:57:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Yt9w-0005O2-Ba for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:57:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Yt9b-00056B-9r for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:57:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yt9U-0004yk-0g for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:56:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Yt8k-0004pv-KE for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:56:10 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Yt7i-0006wu-G3 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:55:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Sat, 05 Jul 2003 15:55:06 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-defs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 19:57:23 -0000 Index: emacs/lisp/progmodes/cc-defs.el diff -c emacs/lisp/progmodes/cc-defs.el:1.19 emacs/lisp/progmodes/cc-defs.el:1.20 *** emacs/lisp/progmodes/cc-defs.el:1.19 Thu Jul 3 08:30:59 2003 --- emacs/lisp/progmodes/cc-defs.el Sat Jul 5 15:55:06 2003 *************** *** 105,111 **** ;;; Variables also used at compile time. ! (defconst c-version "5.30.1" "CC Mode version number.") (defconst c-version-sym (intern c-version)) --- 105,111 ---- ;;; Variables also used at compile time. ! (defconst c-version "5.30.2" "CC Mode version number.") (defconst c-version-sym (intern c-version)) From MAILER-DAEMON Sat Jul 05 16:00:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YtCo-0008FD-Le for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:00:22 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YtCS-0007bY-Tm for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:00:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yt9U-0004zJ-O4 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:56:57 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Yt8D-0004gx-0A for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:55:37 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Yt7B-0006tc-RK for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:54:33 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Sat, 05 Jul 2003 15:54:33 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-styles.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 20:00:21 -0000 Index: emacs/lisp/progmodes/cc-styles.el diff -c emacs/lisp/progmodes/cc-styles.el:1.28 emacs/lisp/progmodes/cc-styles.el:1.29 *** emacs/lisp/progmodes/cc-styles.el:1.28 Thu Jul 3 08:30:59 2003 --- emacs/lisp/progmodes/cc-styles.el Sat Jul 5 15:54:33 2003 *************** *** 50,57 **** (cc-bytecomp-defvar adaptive-fill-first-line-regexp) ; Emacs ! ;; Warning: don't eval-defun this constant or you'll break style inheritance. ! (defconst c-style-alist '(("gnu" (c-basic-offset . 2) (c-comment-only-line-offset . (0 . 0)) --- 50,56 ---- (cc-bytecomp-defvar adaptive-fill-first-line-regexp) ; Emacs ! (defvar c-style-alist '(("gnu" (c-basic-offset . 2) (c-comment-only-line-offset . (0 . 0)) From MAILER-DAEMON Sat Jul 05 16:00:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YtCl-00088E-63 for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:00:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YtAE-0005p4-7Q for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:57:42 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Yt8G-0004oL-14 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:55:40 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Yt8D-0004gc-04 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:55:37 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Yt7B-0006tZ-MY for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:54:33 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Sat, 05 Jul 2003 15:54:33 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-langs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 20:00:17 -0000 Index: emacs/lisp/progmodes/cc-langs.el diff -c emacs/lisp/progmodes/cc-langs.el:1.23 emacs/lisp/progmodes/cc-langs.el:1.24 *** emacs/lisp/progmodes/cc-langs.el:1.23 Thu Jul 3 08:30:59 2003 --- emacs/lisp/progmodes/cc-langs.el Sat Jul 5 15:54:33 2003 *************** *** 131,138 **** ;; These are used to collect the init forms from the subsequent ;; `c-lang-defvar'. They are used to build the lambda in ;; `c-make-init-lang-vars-fun' below. ! (defconst c-lang-variable-inits (list nil)) ! (defconst c-lang-variable-inits-tail c-lang-variable-inits)) (defmacro c-lang-defvar (var val &optional doc) "Declares the buffer local variable VAR to get the value VAL at mode --- 131,140 ---- ;; These are used to collect the init forms from the subsequent ;; `c-lang-defvar'. They are used to build the lambda in ;; `c-make-init-lang-vars-fun' below. ! (defvar c-lang-variable-inits nil) ! (defvar c-lang-variable-inits-tail nil) ! (setq c-lang-variable-inits (list nil) ! c-lang-variable-inits-tail c-lang-variable-inits)) (defmacro c-lang-defvar (var val &optional doc) "Declares the buffer local variable VAR to get the value VAL at mode From MAILER-DAEMON Sat Jul 05 16:02:08 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YtDD-0000Qp-8J for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:00:47 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YtCd-00082a-3c for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:00:11 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YtCZ-0007tJ-8a for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:00:08 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YtAb-0006Z7-U0 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:58:05 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19Yt9b-0006zy-4R for emacs-diffs@gnu.org; Sat, 05 Jul 2003 15:57:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Sat, 05 Jul 2003 15:57:03 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 20:00:37 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5261 emacs/lisp/ChangeLog:1.5262 *** emacs/lisp/ChangeLog:1.5261 Sat Jul 5 10:53:30 2003 --- emacs/lisp/ChangeLog Sat Jul 5 15:57:01 2003 *************** *** 1,3 **** --- 1,18 ---- + 2003-07-05 Martin Stjernholm + + * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist, + c-lang-variable-inits, c-lang-variable-inits-tail): The values of + these are changed, so declare them as variables and not constants. + + * progmodes/cc-mode.el: Fixed some autoload problems: Try to + ensure that the entry for ".c" extension comes before the one for + ".C" on `auto-mode-alist', to behave better on case insensitive + OS:es. Fixed incorrect entries that were added to + `interpreter-mode-alist'. Moved the autoload directives for AWK + to the top level since they aren't recognized anywhere else. Do + not use the new AWK mode doc in the autoload form for the old AWK + mode. + 2003-06-30 Roland Winkler * textmodes/bibtex.el (bibtex-sort-entry-class): new entry From MAILER-DAEMON Sat Jul 05 16:03:33 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YtFT-0002O7-8c for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:03:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YtEd-0001Cg-7C for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:02:15 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YtEa-0001BG-8d for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:02:13 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YtEZ-0001AV-VA for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:02:12 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19YtDY-00078b-4b for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:01:08 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Sat, 05 Jul 2003 16:01:08 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/files.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 20:03:05 -0000 Index: emacs/lisp/files.el diff -c emacs/lisp/files.el:1.663 emacs/lisp/files.el:1.664 *** emacs/lisp/files.el:1.663 Mon Jun 16 17:24:07 2003 --- emacs/lisp/files.el Sat Jul 5 16:01:07 2003 *************** *** 1592,1599 **** (lambda (elt) (cons (purecopy (car elt)) (cdr elt))) '(("\\.te?xt\\'" . text-mode) - ("\\.c\\'" . c-mode) - ("\\.h\\'" . c-mode) ("\\.tex\\'" . tex-mode) ("\\.ins\\'" . tex-mode) ;Installation files for TeX packages. ("\\.ltx\\'" . latex-mode) --- 1592,1597 ---- *************** *** 1611,1628 **** ("\\.ad[bs].dg\\'" . ada-mode) ("\\.\\([pP]\\([Llm]\\|erl\\)\\|al\\)\\'" . perl-mode) ("\\.s?html?\\'" . html-mode) - ("\\.cc\\'" . c++-mode) - ("\\.hh\\'" . c++-mode) - ("\\.hpp\\'" . c++-mode) - ("\\.C\\'" . c++-mode) - ("\\.H\\'" . c++-mode) - ("\\.cpp\\'" . c++-mode) - ("\\.cxx\\'" . c++-mode) - ("\\.hxx\\'" . c++-mode) - ("\\.c\\+\\+\\'" . c++-mode) - ("\\.h\\+\\+\\'" . c++-mode) - ("\\.m\\'" . objc-mode) - ("\\.java\\'" . java-mode) ("\\.mk\\'" . makefile-mode) ("\\(M\\|m\\|GNUm\\)akefile\\'" . makefile-mode) ("\\.am\\'" . makefile-mode) ;For Automake. --- 1609,1614 ---- *************** *** 1652,1658 **** ("\\.me\\'" . nroff-mode) ("\\.ms\\'" . nroff-mode) ("\\.man\\'" . nroff-mode) - ("\\.\\(u?lpc\\|pike\\|pmod\\)\\'" . pike-mode) ("\\.TeX\\'" . tex-mode) ("\\.sty\\'" . latex-mode) ("\\.cls\\'" . latex-mode) ;LaTeX 2e class --- 1638,1643 ---- *************** *** 1679,1685 **** ("\\.indent\\.pro\\'" . fundamental-mode) ; to avoid idlwave-mode ("\\.pro\\'" . idlwave-mode) ("\\.lsp\\'" . lisp-mode) - ("\\.awk\\'" . awk-mode) ("\\.prolog\\'" . prolog-mode) ("\\.tar\\'" . tar-mode) ("\\.\\(arc\\|zip\\|lzh\\|zoo\\|ear\\|jar\\|war\\)\\'" . archive-mode) --- 1664,1669 ---- *************** *** 1693,1707 **** ("\\.zone\\'" . zone-mode) ;; some news reader is reported to use this ("\\`/tmp/fol/" . text-mode) - ("\\.y\\'" . c-mode) - ("\\.lex\\'" . c-mode) ("\\.oak\\'" . scheme-mode) ("\\.sgml?\\'" . sgml-mode) ("\\.xml\\'" . sgml-mode) ("\\.xsl\\'" . sgml-mode) ("\\.dtd\\'" . sgml-mode) ("\\.ds\\(ss\\)?l\\'" . dsssl-mode) - ("\\.idl\\'" . idl-mode) ;; .emacs or .gnus or .viper following a directory delimiter in ;; Unix, MSDOG or VMS syntax. ("[]>:/\\]\\..*\\(emacs\\|gnus\\|viper\\)\\'" . emacs-lisp-mode) --- 1677,1688 ---- *************** *** 1755,1764 **** ("wishx" . tcl-mode) ("tcl" . tcl-mode) ("tclsh" . tcl-mode) - ("awk" . awk-mode) - ("mawk" . awk-mode) - ("nawk" . awk-mode) - ("gawk" . awk-mode) ("scm" . scheme-mode) ("ash" . sh-mode) ("bash" . sh-mode) --- 1736,1741 ---- From MAILER-DAEMON Sat Jul 05 16:05:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YtGn-0004EF-NV for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:04:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YtG0-0003Gw-VN for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:03:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YtFw-00035H-Oh for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:03:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YtFl-0002g7-Hz for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:03:25 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19YtEi-0007CJ-7W for emacs-diffs@gnu.org; Sat, 05 Jul 2003 16:02:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Sat, 05 Jul 2003 16:02:20 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sat, 05 Jul 2003 20:04:28 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5262 emacs/lisp/ChangeLog:1.5263 *** emacs/lisp/ChangeLog:1.5262 Sat Jul 5 15:57:01 2003 --- emacs/lisp/ChangeLog Sat Jul 5 16:02:18 2003 *************** *** 1,5 **** --- 1,11 ---- 2003-07-05 Martin Stjernholm + * files.el (auto-mode-alist, interpreter-mode-alist): Removed + entries to CC Mode modes to avoid duplicates; they are now added + with autoload directives in cc-mode.el. + + 2003-07-05 Martin Stjernholm + * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist, c-lang-variable-inits, c-lang-variable-inits-tail): The values of these are changed, so declare them as variables and not constants. From MAILER-DAEMON Sat Jul 05 21:33:01 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YyOi-00072p-6Z for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:33:00 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YyOf-00070K-SH for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:32:57 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YyOe-0006yG-B4 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:32:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YyOd-0006yA-Vu for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:32:56 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19YyNd-00004u-5a for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:31:53 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Sat, 05 Jul 2003 21:31:53 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 01:32:58 -0000 Index: emacs/lispref/ChangeLog diff -c emacs/lispref/ChangeLog:1.76 emacs/lispref/ChangeLog:1.77 *** emacs/lispref/ChangeLog:1.76 Sun Jun 22 13:04:22 2003 --- emacs/lispref/ChangeLog Sat Jul 5 21:31:52 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-06 Markus Rost + + * advice.texi (Activation of Advice): Note that ad-start-advice is + turned on by default. + 2003-06-22 Andreas Schwab * objects.texi (Symbol Type): Fix description of examples. From MAILER-DAEMON Sat Jul 05 21:33:34 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19YyOX-0006mP-1z for mharc-emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:32:49 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19YyOS-0006W9-FO for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:32:44 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19YyOM-0006D7-T7 for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:32:41 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19YyOM-00069B-1P for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:32:38 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19YyNK-0008W6-Rb for emacs-diffs@gnu.org; Sat, 05 Jul 2003 21:31:34 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Sat, 05 Jul 2003 21:31:34 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/advice.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 01:32:47 -0000 Index: emacs/lispref/advice.texi diff -c emacs/lispref/advice.texi:1.15 emacs/lispref/advice.texi:1.16 *** emacs/lispref/advice.texi:1.15 Tue Jun 24 14:14:01 2003 --- emacs/lispref/advice.texi Sat Jul 5 21:31:34 2003 *************** *** 331,342 **** @cindex advice, activating By default, advice does not take effect when you define it---only when ! you @dfn{activate} advice for the function that was advised. You can ! request the activation of advice for a function when you define the ! advice, by specifying the @code{activate} flag in the @code{defadvice}. ! But normally you activate the advice for a function by calling the ! function @code{ad-activate} or one of the other activation commands ! listed below. Separating the activation of advice from the act of defining it permits you to add several pieces of advice to one function efficiently, without --- 331,344 ---- @cindex advice, activating By default, advice does not take effect when you define it---only when ! you @dfn{activate} advice for the function that was advised. However ! the advice will be automatically activated when the function is ! defined or redefined later. You can request the activation of advice ! for a function when you define the advice, by specifying the ! @code{activate} flag in the @code{defadvice}. But normally you ! activate the advice for a function by calling the function ! @code{ad-activate} or one of the other activation commands listed ! below. Separating the activation of advice from the act of defining it permits you to add several pieces of advice to one function efficiently, without *************** *** 416,423 **** @deffn Command ad-start-advice Turn on automatic advice activation when a function is defined or ! redefined. If you turn on this mode, then advice takes effect ! immediately when defined. @end deffn @deffn Command ad-stop-advice --- 418,424 ---- @deffn Command ad-start-advice Turn on automatic advice activation when a function is defined or ! redefined. This mode is turned on by default. @end deffn @deffn Command ad-stop-advice From MAILER-DAEMON Sun Jul 06 07:48:40 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Z80O-0007Wa-Ej for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:48:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Z80A-0007IO-C0 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:48:18 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Z800-0006x8-AK for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:48:10 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Z7zz-0006w5-SP for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:48:07 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19Z7yy-0008Nb-SR for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:47:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Sun, 06 Jul 2003 07:47:04 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 11:48:25 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.361 emacs/lisp/info.el:1.362 *** emacs/lisp/info.el:1.361 Fri Jul 4 19:05:35 2003 --- emacs/lisp/info.el Sun Jul 6 07:47:04 2003 *************** *** 1540,1546 **** (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:\n]+\\|:[^,.;() \t\n]\\)*" "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") --- 1540,1546 ---- (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:\n]+\\|:[^:,.;() \t\n]\\)*" "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") From MAILER-DAEMON Sun Jul 06 07:48:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Z80R-0007gq-SQ for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:48:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Z806-00078j-J0 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:48:14 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Z7zq-0006Vm-8u for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:47:58 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Z7zk-0006Fk-EK for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:47:52 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19Z7yj-0008Mw-7G for emacs-diffs@gnu.org; Sun, 06 Jul 2003 07:46:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Sun, 06 Jul 2003 07:46:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 11:48:33 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5263 emacs/lisp/ChangeLog:1.5264 *** emacs/lisp/ChangeLog:1.5263 Sat Jul 5 16:02:18 2003 --- emacs/lisp/ChangeLog Sun Jul 6 07:46:47 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-06 Kim F. Storm + + * info.el (Info-menu-entry-name-re): Add `:' to second [] part. + This should fix the infinite loop when extracting menu names. + 2003-07-05 Martin Stjernholm * files.el (auto-mode-alist, interpreter-mode-alist): Removed From MAILER-DAEMON Sun Jul 06 10:58:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZAxF-0002tr-TR for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:57:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZAx8-0002hv-JQ for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:57:22 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZAwW-0001tw-Mg for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:56:45 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZAvr-0001VQ-Qb for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:56:03 -0400 Received: from jasonr by subversions.gnu.org with local (Exim 4.20) id 19ZAuq-0004IP-Ru for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:55:00 -0400 To: emacs-diffs@gnu.org Message-Id: From: Jason Rumney Date: Sun, 06 Jul 2003 10:55:00 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jasonr@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 14:57:28 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.308 emacs/src/alloc.c:1.309 *** emacs/src/alloc.c:1.308 Fri Jul 4 16:19:06 2003 --- emacs/src/alloc.c Sun Jul 6 10:55:00 2003 *************** *** 645,651 **** /* BLOCK_ALIGN has to be a power of 2. */ #define BLOCK_ALIGN (1 << 10) #define BLOCK_BYTES \ ! (BLOCK_ALIGN - sizeof (struct aligned_block *) - ABLOCKS_PADDING) /* Internal data structures and constants. */ --- 645,651 ---- /* BLOCK_ALIGN has to be a power of 2. */ #define BLOCK_ALIGN (1 << 10) #define BLOCK_BYTES \ ! (BLOCK_ALIGN - sizeof (struct alinged_block *) - ABLOCKS_PADDING) /* Internal data structures and constants. */ *************** *** 676,682 **** --- 676,684 ---- struct ablocks *abase; /* The padding of all but the last ablock is unused. The padding of the last ablock in an ablocks is not allocated. */ + #if ABLOCKS_PADDING char padding[ABLOCKS_PADDING]; + #endif }; /* A bunch of consecutive aligned blocks. */ From MAILER-DAEMON Sun Jul 06 10:58:27 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZAxp-0003dI-GP for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:58:05 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZAxU-0003CG-BV for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:57:44 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZAxC-0002nw-Sf for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:57:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZAvO-000194-Pu for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:55:34 -0400 Received: from jasonr by subversions.gnu.org with local (Exim 4.20) id 19ZAuN-0004HQ-EB for emacs-diffs@gnu.org; Sun, 06 Jul 2003 10:54:31 -0400 To: emacs-diffs@gnu.org Message-Id: From: Jason Rumney Date: Sun, 06 Jul 2003 10:54:31 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jasonr@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 14:58:03 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3297 emacs/src/ChangeLog:1.3298 *** emacs/src/ChangeLog:1.3297 Fri Jul 4 16:36:50 2003 --- emacs/src/ChangeLog Sun Jul 6 10:54:30 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-06 Jason Rumney + + * alloc.c (struct ablock): Only include padding when there is some. + 2003-07-04 Stefan Monnier * alloc.c (ALIGN): Add casts to simplify usage. From MAILER-DAEMON Sun Jul 06 12:38:03 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZCWL-0001h6-3a for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 12:37:49 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZCWI-0001aV-Mq for emacs-diffs@gnu.org; Sun, 06 Jul 2003 12:37:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZCVM-0000tW-8F for emacs-diffs@gnu.org; Sun, 06 Jul 2003 12:36:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZCV1-0000ho-Bh for emacs-diffs@gnu.org; Sun, 06 Jul 2003 12:36:27 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZCTz-00049L-W5 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 12:35:23 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 12:35:23 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 16:37:47 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.362 emacs/lisp/info.el:1.363 *** emacs/lisp/info.el:1.362 Sun Jul 6 07:47:04 2003 --- emacs/lisp/info.el Sun Jul 6 12:35:23 2003 *************** *** 1540,1546 **** (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:\n]+\\|:[^:,.;() \t\n]\\)*" "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") --- 1540,1546 ---- (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:\n]\\|:[^,.;() \t\n]\\)*" "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") From MAILER-DAEMON Sun Jul 06 13:06:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZCx0-0007mm-8Q for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:05:22 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZCwY-0007HL-Bz for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:04:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZCw4-0006Tm-5S for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:04:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZCtV-0003d6-1o for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:01:45 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZCsT-0004ug-TK for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:00:41 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 13:00:41 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 17:05:20 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.363 emacs/lisp/info.el:1.364 *** emacs/lisp/info.el:1.363 Sun Jul 6 12:35:23 2003 --- emacs/lisp/info.el Sun Jul 6 13:00:41 2003 *************** *** 1540,1546 **** (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:\n]\\|:[^,.;() \t\n]\\)*" "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") --- 1540,1546 ---- (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:\n]\\|:[^:,.;() \t\n]\\)*" "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") From MAILER-DAEMON Sun Jul 06 13:29:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZDKV-0007L9-UY for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:29:39 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZDKE-0006hj-UG for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:29:22 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZDIp-00051L-0d for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:27:55 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZDIm-0004z5-VK for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:27:52 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZDHl-0008P2-GC for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:26:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 13:26:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/vc-hooks.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 17:29:37 -0000 Index: emacs/lisp/vc-hooks.el diff -c emacs/lisp/vc-hooks.el:1.152 emacs/lisp/vc-hooks.el:1.153 *** emacs/lisp/vc-hooks.el:1.152 Thu Jun 5 07:34:06 2003 --- emacs/lisp/vc-hooks.el Sun Jul 6 13:26:48 2003 *************** *** 6,12 **** ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel ! ;; $Id: vc-hooks.el,v 1.152 2003/06/05 11:34:06 fx Exp $ ;; This file is part of GNU Emacs. --- 6,12 ---- ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel ! ;; $Id: vc-hooks.el,v 1.153 2003/07/06 17:26:48 monnier Exp $ ;; This file is part of GNU Emacs. *************** *** 118,123 **** --- 118,172 ---- (and vc-mistrust-permissions (funcall vc-mistrust-permissions (vc-backend-subdirectory-name file))))) + + (defcustom vc-stay-local t + "*Non-nil means use local operations when possible for remote repositories. + This avoids slow queries over the network and instead uses heuristics + and past information to determine the current status of a file. + + The value can also be a regular expression or list of regular + expressions to match against the host name of a repository; then VC + only stays local for hosts that match it. Alternatively, the value + can be a list of regular expressions where the first element is the + symbol `except'; then VC always stays local except for hosts matched + by these regular expressions." + :type '(choice (const :tag "Always stay local" t) + (const :tag "Don't stay local" nil) + (list :format "\nExamine hostname and %v" :tag "Examine hostname ..." + (set :format "%v" :inline t (const :format "%t" :tag "don't" except)) + (regexp :format " stay local,\n%t: %v" :tag "if it matches") + (repeat :format "%v%i\n" :inline t (regexp :tag "or")))) + :version "21.4" + :group 'vc) + + (defun vc-stay-local-p (file) + "Return non-nil if VC should stay local when handling FILE. + This uses the `repository-hostname' backend operation." + (let* ((backend (vc-backend file)) + (sym (vc-make-backend-sym backend 'stay-local)) + (stay-local (if (boundp sym) (symbol-value sym) t))) + (if (eq stay-local t) (setq stay-local vc-stay-local)) + (if (symbolp stay-local) stay-local + (let ((dirname (if (file-directory-p file) + (directory-file-name file) + (file-name-directory file)))) + (eq 'yes + (or (vc-file-getprop dirname 'vc-stay-local-p) + (vc-file-setprop + dirname 'vc-stay-local-p + (let ((hostname (vc-call-backend + backend 'repository-hostname dirname))) + (if (not hostname) + 'no + (let ((default t)) + (if (eq (car-safe stay-local) 'except) + (setq default nil stay-local (cdr stay-local))) + (when (consp stay-local) + (setq stay-local + (mapconcat 'identity stay-local "\\|"))) + (if (if (string-match stay-local hostname) + default (not default)) + 'yes 'no))))))))))) ;;; This is handled specially now. ;; Tell Emacs about this new kind of minor mode From MAILER-DAEMON Sun Jul 06 13:31:57 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZDMK-0001bt-95 for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:31:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZDLI-0000xi-Ga for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:30:28 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZDKX-0007S8-LP for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:29:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZDK7-0006MQ-LK for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:29:15 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZDJ6-0000DK-Od for emacs-diffs@gnu.org; Sun, 06 Jul 2003 13:28:12 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 13:28:12 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/vc.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 17:31:30 -0000 Index: emacs/lisp/vc.el diff -c emacs/lisp/vc.el:1.357 emacs/lisp/vc.el:1.358 *** emacs/lisp/vc.el:1.357 Mon Jun 30 06:34:26 2003 --- emacs/lisp/vc.el Sun Jul 6 13:28:12 2003 *************** *** 7,13 **** ;; Maintainer: Andre Spiegel ;; Keywords: tools ! ;; $Id: vc.el,v 1.357 2003/06/30 10:34:26 rms Exp $ ;; This file is part of GNU Emacs. --- 7,13 ---- ;; Maintainer: Andre Spiegel ;; Keywords: tools ! ;; $Id: vc.el,v 1.358 2003/07/06 17:28:12 monnier Exp $ ;; This file is part of GNU Emacs. *************** *** 1738,1792 **** (file-relative-name file-rel2)))) (vc-call diff file rel1 rel2)))) - - (defcustom vc-stay-local t - "*Non-nil means use local operations when possible for remote repositories. - This avoids slow queries over the network and instead uses heuristics - and past information to determine the current status of a file. - - The value can also be a regular expression or list of regular - expressions to match against the host name of a repository; then VC - only stays local for hosts that match it. Alternatively, the value - can be a list of regular expressions where the first element is the - symbol `except'; then VC always stays local except for hosts matched - by these regular expressions." - :type '(choice (const :tag "Always stay local" t) - (const :tag "Don't stay local" nil) - (list :format "\nExamine hostname and %v" :tag "Examine hostname ..." - (set :format "%v" :inline t (const :format "%t" :tag "don't" except)) - (regexp :format " stay local,\n%t: %v" :tag "if it matches") - (repeat :format "%v%i\n" :inline t (regexp :tag "or")))) - :version "21.4" - :group 'vc) - - (defun vc-stay-local-p (file) - "Return non-nil if VC should stay local when handling FILE. - This uses the `repository-hostname' backend operation." - (let* ((backend (vc-backend file)) - (sym (vc-make-backend-sym backend 'stay-local)) - (stay-local (if (boundp sym) (symbol-value sym) t))) - (if (eq stay-local t) (setq stay-local vc-stay-local)) - (if (symbolp stay-local) stay-local - (let ((dirname (if (file-directory-p file) - (directory-file-name file) - (file-name-directory file)))) - (eq 'yes - (or (vc-file-getprop dirname 'vc-stay-local-p) - (vc-file-setprop - dirname 'vc-stay-local-p - (let ((hostname (vc-call-backend - backend 'repository-hostname dirname))) - (if (not hostname) - 'no - (let ((default t)) - (if (eq (car-safe stay-local) 'except) - (setq default nil stay-local (cdr stay-local))) - (when (consp stay-local) - (setq stay-local - (mapconcat 'identity stay-local "\\|"))) - (if (if (string-match stay-local hostname) - default (not default)) - 'yes 'no))))))))))) (defun vc-switches (backend op) (let ((switches --- 1738,1743 ---- From MAILER-DAEMON Sun Jul 06 14:44:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZEUr-0005nl-Br for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 14:44:25 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZEUo-0005i6-IZ for emacs-diffs@gnu.org; Sun, 06 Jul 2003 14:44:22 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZEUn-0005hJ-8R for emacs-diffs@gnu.org; Sun, 06 Jul 2003 14:44:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZEUR-0004vW-5Z for emacs-diffs@gnu.org; Sun, 06 Jul 2003 14:43:59 -0400 Received: from jasonr by subversions.gnu.org with local (Exim 4.20) id 19ZETQ-0004vS-5P for emacs-diffs@gnu.org; Sun, 06 Jul 2003 14:42:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: Jason Rumney Date: Sun, 06 Jul 2003 14:42:56 -0400 Subject: [Emacs-diffs] Changes to emacs/src/w32fns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jasonr@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 18:44:23 -0000 Index: emacs/src/w32fns.c diff -c emacs/src/w32fns.c:1.217 emacs/src/w32fns.c:1.218 *** emacs/src/w32fns.c:1.217 Wed Jun 4 19:59:46 2003 --- emacs/src/w32fns.c Sun Jul 6 14:42:55 2003 *************** *** 14263,14277 **** w32-charset-ansi, w32-charset-default, w32-charset-symbol, w32-charset-shiftjis, w32-charset-hangeul, w32-charset-gb2312, w32-charset-chinesebig5, - #ifdef JOHAB_CHARSET w32-charset-johab, w32-charset-hebrew, w32-charset-arabic, w32-charset-greek, w32-charset-turkish, w32-charset-vietnamese, w32-charset-thai, w32-charset-easteurope, w32-charset-russian, w32-charset-mac, w32-charset-baltic, - #endif - #ifdef UNICODE_CHARSET w32-charset-unicode, - #endif or w32-charset-oem. CODEPAGE should be an integer specifying the codepage that should be used to display the character set, t to do no translation and output as Unicode, --- 14263,14273 ---- From MAILER-DAEMON Sun Jul 06 15:09:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZEt2-0000Ic-1L for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:09:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZEsy-000081-2F for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:09:20 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZEsv-0008UN-A4 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:09:18 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZEsv-0008Tu-17 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:09:17 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ZErt-0005Rb-Se for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:08:13 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sun, 06 Jul 2003 15:08:13 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/vc.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:09:22 -0000 Index: emacs/lisp/vc.el diff -c emacs/lisp/vc.el:1.358 emacs/lisp/vc.el:1.359 *** emacs/lisp/vc.el:1.358 Sun Jul 6 13:28:12 2003 --- emacs/lisp/vc.el Sun Jul 6 15:08:13 2003 *************** *** 7,13 **** ;; Maintainer: Andre Spiegel ;; Keywords: tools ! ;; $Id: vc.el,v 1.358 2003/07/06 17:28:12 monnier Exp $ ;; This file is part of GNU Emacs. --- 7,13 ---- ;; Maintainer: Andre Spiegel ;; Keywords: tools ! ;; $Id: vc.el,v 1.359 2003/07/06 19:08:13 jpw Exp $ ;; This file is part of GNU Emacs. *************** *** 3029,3034 **** --- 3029,3036 ---- "Return the current time, encoded as fractional days." (vc-annotate-convert-time (current-time))) + (defvar vc-annotate-offset nil) + (defun vc-annotate-display (&optional color-map offset) "Highlight `vc-annotate' output in the current buffer. COLOR-MAP, if present, overrides `vc-annotate-color-map'. *************** *** 3037,3044 **** (set (make-local-variable 'vc-annotate-color-map) color-map)) (set (make-local-variable 'vc-annotate-offset) offset) (font-lock-mode 1)) - - (defvar vc-annotate-offset nil) (defun vc-annotate-lines (limit) (let (difference) --- 3039,3044 ---- From MAILER-DAEMON Sun Jul 06 15:12:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZEwG-0003tH-UO for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:12:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZEvv-0003or-It for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:12:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZEuN-0002xr-FN for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:10:49 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZEtq-00029l-VY for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:10:14 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ZEsq-0005SW-2d for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:09:12 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sun, 06 Jul 2003 15:09:12 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:12:43 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5264 emacs/lisp/ChangeLog:1.5265 *** emacs/lisp/ChangeLog:1.5264 Sun Jul 6 07:46:47 2003 --- emacs/lisp/ChangeLog Sun Jul 6 15:09:10 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-06 John Paul Wallington + + * vc.el (vc-annotate-offset): Move defvar up. + 2003-07-06 Kim F. Storm * info.el (Info-menu-entry-name-re): Add `:' to second [] part. From MAILER-DAEMON Sun Jul 06 15:30:14 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZFDB-0004xq-Uk for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:13 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZFD8-0004u4-Dz for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZFD5-0004s9-W7 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:08 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZFD5-0004rf-QF for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:07 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZFC4-0008VR-U6 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:29:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 15:29:04 -0400 Subject: [Emacs-diffs] Changes to emacs/src/lisp.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:30:12 -0000 Index: emacs/src/lisp.h diff -c emacs/src/lisp.h:1.460 emacs/src/lisp.h:1.461 *** emacs/src/lisp.h:1.460 Fri Jul 4 16:19:55 2003 --- emacs/src/lisp.h Sun Jul 6 15:29:04 2003 *************** *** 2435,2441 **** extern void memory_full P_ ((void)); extern void buffer_memory_full P_ ((void)); extern int survives_gc_p P_ ((Lisp_Object)); ! extern void mark_object P_ ((Lisp_Object *)); extern Lisp_Object Vpurify_flag; extern Lisp_Object Vmemory_full; EXFUN (Fcons, 2); --- 2435,2441 ---- extern void memory_full P_ ((void)); extern void buffer_memory_full P_ ((void)); extern int survives_gc_p P_ ((Lisp_Object)); ! extern void mark_object P_ ((Lisp_Object)); extern Lisp_Object Vpurify_flag; extern Lisp_Object Vmemory_full; EXFUN (Fcons, 2); From MAILER-DAEMON Sun Jul 06 15:32:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZFEb-00080M-V0 for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:41 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZFEC-0006yy-Ib for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZFDw-00069m-B2 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:02 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZFDn-00065n-Uh for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:51 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZFCm-0000CE-Ti for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:29:48 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 15:29:48 -0400 Subject: [Emacs-diffs] Changes to emacs/src/fns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:31:39 -0000 Index: emacs/src/fns.c diff -c emacs/src/fns.c:1.339 emacs/src/fns.c:1.340 *** emacs/src/fns.c:1.339 Mon Jun 2 14:31:29 2003 --- emacs/src/fns.c Sun Jul 6 15:29:48 2003 *************** *** 1,5 **** /* Random utility Lisp functions. ! Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* Random utility Lisp functions. ! Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 98, 99, 2000, 2001, 02, 2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 4748,4760 **** /* Make sure key and value survive. */ if (!key_known_to_survive_p) { ! mark_object (&HASH_KEY (h, i)); marked = 1; } if (!value_known_to_survive_p) { ! mark_object (&HASH_VALUE (h, i)); marked = 1; } } --- 4748,4760 ---- /* Make sure key and value survive. */ if (!key_known_to_survive_p) { ! mark_object (HASH_KEY (h, i)); marked = 1; } if (!value_known_to_survive_p) { ! mark_object (HASH_VALUE (h, i)); marked = 1; } } From MAILER-DAEMON Sun Jul 06 15:32:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZFEb-0007yX-Dl for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:41 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZFEQ-0007Pq-Mk for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:30 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZFDh-0005sH-Ni for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZFDS-0005F5-Ji for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:30 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZFCR-00008A-NA for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:29:27 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 15:29:27 -0400 Subject: [Emacs-diffs] Changes to emacs/src/keyboard.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:31:39 -0000 Index: emacs/src/keyboard.c diff -c emacs/src/keyboard.c:1.752 emacs/src/keyboard.c:1.753 *** emacs/src/keyboard.c:1.752 Sat Jun 21 20:01:42 2003 --- emacs/src/keyboard.c Sun Jul 6 15:29:26 2003 *************** *** 11399,11417 **** { if (kb->kbd_macro_buffer) for (p = kb->kbd_macro_buffer; p < kb->kbd_macro_ptr; p++) ! mark_object (p); ! mark_object (&kb->Voverriding_terminal_local_map); ! mark_object (&kb->Vlast_command); ! mark_object (&kb->Vreal_last_command); ! mark_object (&kb->Vprefix_arg); ! mark_object (&kb->Vlast_prefix_arg); ! mark_object (&kb->kbd_queue); ! mark_object (&kb->defining_kbd_macro); ! mark_object (&kb->Vlast_kbd_macro); ! mark_object (&kb->Vsystem_key_alist); ! mark_object (&kb->system_key_syms); ! mark_object (&kb->Vdefault_minibuffer_frame); ! mark_object (&kb->echo_string); } { struct input_event *event; --- 11399,11417 ---- { if (kb->kbd_macro_buffer) for (p = kb->kbd_macro_buffer; p < kb->kbd_macro_ptr; p++) ! mark_object (*p); ! mark_object (kb->Voverriding_terminal_local_map); ! mark_object (kb->Vlast_command); ! mark_object (kb->Vreal_last_command); ! mark_object (kb->Vprefix_arg); ! mark_object (kb->Vlast_prefix_arg); ! mark_object (kb->kbd_queue); ! mark_object (kb->defining_kbd_macro); ! mark_object (kb->Vlast_kbd_macro); ! mark_object (kb->Vsystem_key_alist); ! mark_object (kb->system_key_syms); ! mark_object (kb->Vdefault_minibuffer_frame); ! mark_object (kb->echo_string); } { struct input_event *event; *************** *** 11419,11428 **** { if (event == kbd_buffer + KBD_BUFFER_SIZE) event = kbd_buffer; ! mark_object (&event->x); ! mark_object (&event->y); ! mark_object (&event->frame_or_window); ! mark_object (&event->arg); } } } --- 11419,11428 ---- { if (event == kbd_buffer + KBD_BUFFER_SIZE) event = kbd_buffer; ! mark_object (event->x); ! mark_object (event->y); ! mark_object (event->frame_or_window); ! mark_object (event->arg); } } } From MAILER-DAEMON Sun Jul 06 15:32:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZFFe-00019i-RC for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:32:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZFEg-0008G8-Fy for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZFET-0007bT-99 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:34 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZFE9-0006ui-Qw for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:31:13 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZFD8-0000Hv-MH for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:30:10 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 15:30:10 -0400 Subject: [Emacs-diffs] Changes to emacs/src/bytecode.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:32:37 -0000 Index: emacs/src/bytecode.c diff -c emacs/src/bytecode.c:1.76 emacs/src/bytecode.c:1.77 *** emacs/src/bytecode.c:1.76 Sun May 25 13:40:52 2003 --- emacs/src/bytecode.c Sun Jul 6 15:30:10 2003 *************** *** 292,310 **** for (obj = stack->bottom; obj <= stack->top; ++obj) if (!XMARKBIT (*obj)) { ! mark_object (obj); XMARK (*obj); } if (!XMARKBIT (stack->byte_string)) { ! mark_object (&stack->byte_string); XMARK (stack->byte_string); } if (!XMARKBIT (stack->constants)) { ! mark_object (&stack->constants); XMARK (stack->constants); } } --- 292,310 ---- for (obj = stack->bottom; obj <= stack->top; ++obj) if (!XMARKBIT (*obj)) { ! mark_object (*obj); XMARK (*obj); } if (!XMARKBIT (stack->byte_string)) { ! mark_object (stack->byte_string); XMARK (stack->byte_string); } if (!XMARKBIT (stack->constants)) { ! mark_object (stack->constants); XMARK (stack->constants); } } From MAILER-DAEMON Sun Jul 06 15:35:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZFIU-0000ae-Ow for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:35:42 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZFII-0008Qx-BZ for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:35:30 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZFHw-0007hQ-6g for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:35:11 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZFHv-0007d9-1z for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:35:07 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZFGt-0000Qa-Td for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:34:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 15:34:03 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:35:41 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.309 emacs/src/alloc.c:1.310 *** emacs/src/alloc.c:1.309 Sun Jul 6 10:55:00 2003 --- emacs/src/alloc.c Sun Jul 6 15:34:03 2003 *************** *** 1164,1170 **** { eassert (!i->gcmarkbit); /* Intervals are never shared. */ i->gcmarkbit = 1; ! mark_object (&i->plist); } --- 1164,1170 ---- { eassert (!i->gcmarkbit); /* Intervals are never shared. */ i->gcmarkbit = 1; ! mark_object (i->plist); } *************** *** 3646,3652 **** zombies[nzombies] = obj; ++nzombies; #endif ! mark_object (&obj); } } } --- 3646,3652 ---- zombies[nzombies] = obj; ++nzombies; #endif ! mark_object (obj); } } } *************** *** 3728,3734 **** } if (!GC_NILP (obj)) ! mark_object (&obj); } } --- 3728,3734 ---- } if (!GC_NILP (obj)) ! mark_object (obj); } } *************** *** 4370,4376 **** For these, we use MARKBIT to avoid double marking of the slot. */ for (i = 0; i < staticidx; i++) ! mark_object (staticvec[i]); #if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \ || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) --- 4370,4376 ---- For these, we use MARKBIT to avoid double marking of the slot. */ for (i = 0; i < staticidx; i++) ! mark_object (*staticvec[i]); #if (GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS \ || GC_MARK_STACK == GC_MARK_STACK_CHECK_GCPROS) *************** *** 4384,4390 **** { /* Explicit casting prevents compiler warning about discarding the `volatile' qualifier. */ ! mark_object ((Lisp_Object *)&tail->var[i]); XMARK (tail->var[i]); } } --- 4384,4390 ---- { /* Explicit casting prevents compiler warning about discarding the `volatile' qualifier. */ ! mark_object (tail->var[i]); XMARK (tail->var[i]); } } *************** *** 4394,4417 **** for (bind = specpdl; bind != specpdl_ptr; bind++) { /* These casts avoid a warning for discarding `volatile'. */ ! mark_object ((Lisp_Object *) &bind->symbol); ! mark_object ((Lisp_Object *) &bind->old_value); } for (catch = catchlist; catch; catch = catch->next) { ! mark_object (&catch->tag); ! mark_object (&catch->val); } for (handler = handlerlist; handler; handler = handler->next) { ! mark_object (&handler->handler); ! mark_object (&handler->var); } for (backlist = backtrace_list; backlist; backlist = backlist->next) { if (!XMARKBIT (*backlist->function)) { ! mark_object (backlist->function); XMARK (*backlist->function); } if (backlist->nargs == UNEVALLED || backlist->nargs == MANY) --- 4394,4417 ---- for (bind = specpdl; bind != specpdl_ptr; bind++) { /* These casts avoid a warning for discarding `volatile'. */ ! mark_object (bind->symbol); ! mark_object (bind->old_value); } for (catch = catchlist; catch; catch = catch->next) { ! mark_object (catch->tag); ! mark_object (catch->val); } for (handler = handlerlist; handler; handler = handler->next) { ! mark_object (handler->handler); ! mark_object (handler->var); } for (backlist = backtrace_list; backlist; backlist = backlist->next) { if (!XMARKBIT (*backlist->function)) { ! mark_object (*backlist->function); XMARK (*backlist->function); } if (backlist->nargs == UNEVALLED || backlist->nargs == MANY) *************** *** 4421,4427 **** for (; i >= 0; i--) if (!XMARKBIT (backlist->args[i])) { ! mark_object (&backlist->args[i]); XMARK (backlist->args[i]); } } --- 4421,4427 ---- for (; i >= 0; i--) if (!XMARKBIT (backlist->args[i])) { ! mark_object (backlist->args[i]); XMARK (backlist->args[i]); } } *************** *** 4607,4613 **** for (; glyph < end_glyph; ++glyph) if (GC_STRINGP (glyph->object) && !STRING_MARKED_P (XSTRING (glyph->object))) ! mark_object (&glyph->object); } } } --- 4607,4613 ---- for (; glyph < end_glyph; ++glyph) if (GC_STRINGP (glyph->object) && !STRING_MARKED_P (XSTRING (glyph->object))) ! mark_object (glyph->object); } } } *************** *** 4629,4635 **** if (face) { for (j = 0; j < LFACE_VECTOR_SIZE; ++j) ! mark_object (&face->lface[j]); } } } --- 4629,4635 ---- if (face) { for (j = 0; j < LFACE_VECTOR_SIZE; ++j) ! mark_object (face->lface[j]); } } } *************** *** 4644,4653 **** mark_image (img) struct image *img; { ! mark_object (&img->spec); if (!NILP (img->data.lisp_val)) ! mark_object (&img->data.lisp_val); } --- 4644,4653 ---- mark_image (img) struct image *img; { ! mark_object (img->spec); if (!NILP (img->data.lisp_val)) ! mark_object (img->data.lisp_val); } *************** *** 4670,4676 **** all the references contained in it. */ #define LAST_MARKED_SIZE 500 ! Lisp_Object *last_marked[LAST_MARKED_SIZE]; int last_marked_index; /* For debugging--call abort when we cdr down this many --- 4670,4676 ---- all the references contained in it. */ #define LAST_MARKED_SIZE 500 ! Lisp_Object last_marked[LAST_MARKED_SIZE]; int last_marked_index; /* For debugging--call abort when we cdr down this many *************** *** 4680,4690 **** int mark_object_loop_halt; void ! mark_object (argptr) ! Lisp_Object *argptr; { ! Lisp_Object *objptr = argptr; ! register Lisp_Object obj; #ifdef GC_CHECK_MARKED_OBJECTS void *po; struct mem_node *m; --- 4680,4689 ---- int mark_object_loop_halt; void ! mark_object (arg) ! Lisp_Object arg; { ! register Lisp_Object obj = arg; #ifdef GC_CHECK_MARKED_OBJECTS void *po; struct mem_node *m; *************** *** 4692,4705 **** int cdr_count = 0; loop: - obj = *objptr; - loop2: XUNMARK (obj); if (PURE_POINTER_P (XPNTR (obj))) return; ! last_marked[last_marked_index++] = objptr; if (last_marked_index == LAST_MARKED_SIZE) last_marked_index = 0; --- 4691,4702 ---- int cdr_count = 0; loop: XUNMARK (obj); if (PURE_POINTER_P (XPNTR (obj))) return; ! last_marked[last_marked_index++] = obj; if (last_marked_index == LAST_MARKED_SIZE) last_marked_index = 0; *************** *** 4804,4814 **** for (i = 0; i < size; i++) /* and then mark its elements */ { if (i != COMPILED_CONSTANTS) ! mark_object (&ptr->contents[i]); } ! /* This cast should be unnecessary, but some Mips compiler complains ! (MIPS-ABI + SysVR4, DC/OSx, etc). */ ! objptr = (Lisp_Object *) &ptr->contents[COMPILED_CONSTANTS]; goto loop; } else if (GC_FRAMEP (obj)) --- 4801,4809 ---- for (i = 0; i < size; i++) /* and then mark its elements */ { if (i != COMPILED_CONSTANTS) ! mark_object (ptr->contents[i]); } ! obj = ptr->contents[COMPILED_CONSTANTS]; goto loop; } else if (GC_FRAMEP (obj)) *************** *** 4819,4846 **** VECTOR_MARK (ptr); /* Else mark it */ CHECK_LIVE (live_vector_p); ! mark_object (&ptr->name); ! mark_object (&ptr->icon_name); ! mark_object (&ptr->title); ! mark_object (&ptr->focus_frame); ! mark_object (&ptr->selected_window); ! mark_object (&ptr->minibuffer_window); ! mark_object (&ptr->param_alist); ! mark_object (&ptr->scroll_bars); ! mark_object (&ptr->condemned_scroll_bars); ! mark_object (&ptr->menu_bar_items); ! mark_object (&ptr->face_alist); ! mark_object (&ptr->menu_bar_vector); ! mark_object (&ptr->buffer_predicate); ! mark_object (&ptr->buffer_list); ! mark_object (&ptr->menu_bar_window); ! mark_object (&ptr->tool_bar_window); mark_face_cache (ptr->face_cache); #ifdef HAVE_WINDOW_SYSTEM mark_image_cache (ptr); ! mark_object (&ptr->tool_bar_items); ! mark_object (&ptr->desired_tool_bar_string); ! mark_object (&ptr->current_tool_bar_string); #endif /* HAVE_WINDOW_SYSTEM */ } else if (GC_BOOL_VECTOR_P (obj)) --- 4814,4841 ---- VECTOR_MARK (ptr); /* Else mark it */ CHECK_LIVE (live_vector_p); ! mark_object (ptr->name); ! mark_object (ptr->icon_name); ! mark_object (ptr->title); ! mark_object (ptr->focus_frame); ! mark_object (ptr->selected_window); ! mark_object (ptr->minibuffer_window); ! mark_object (ptr->param_alist); ! mark_object (ptr->scroll_bars); ! mark_object (ptr->condemned_scroll_bars); ! mark_object (ptr->menu_bar_items); ! mark_object (ptr->face_alist); ! mark_object (ptr->menu_bar_vector); ! mark_object (ptr->buffer_predicate); ! mark_object (ptr->buffer_list); ! mark_object (ptr->menu_bar_window); ! mark_object (ptr->tool_bar_window); mark_face_cache (ptr->face_cache); #ifdef HAVE_WINDOW_SYSTEM mark_image_cache (ptr); ! mark_object (ptr->tool_bar_items); ! mark_object (ptr->desired_tool_bar_string); ! mark_object (ptr->current_tool_bar_string); #endif /* HAVE_WINDOW_SYSTEM */ } else if (GC_BOOL_VECTOR_P (obj)) *************** *** 4871,4877 **** for (i = 0; (char *) &ptr->contents[i] < (char *) &w->current_matrix; i++) ! mark_object (&ptr->contents[i]); /* Mark glyphs for leaf windows. Marking window matrices is sufficient because frame matrices use the same glyph --- 4866,4872 ---- for (i = 0; (char *) &ptr->contents[i] < (char *) &w->current_matrix; i++) ! mark_object (ptr->contents[i]); /* Mark glyphs for leaf windows. Marking window matrices is sufficient because frame matrices use the same glyph *************** *** 4901,4920 **** Being in the next_weak chain should not keep the hash table alive. No need to mark `count' since it is an integer. */ ! mark_object (&h->test); ! mark_object (&h->weak); ! mark_object (&h->rehash_size); ! mark_object (&h->rehash_threshold); ! mark_object (&h->hash); ! mark_object (&h->next); ! mark_object (&h->index); ! mark_object (&h->user_hash_function); ! mark_object (&h->user_cmp_function); /* If hash table is not weak, mark all keys and values. For weak tables, mark only the vector. */ if (GC_NILP (h->weak)) ! mark_object (&h->key_and_value); else VECTOR_MARK (XVECTOR (h->key_and_value)); } --- 4896,4915 ---- Being in the next_weak chain should not keep the hash table alive. No need to mark `count' since it is an integer. */ ! mark_object (h->test); ! mark_object (h->weak); ! mark_object (h->rehash_size); ! mark_object (h->rehash_threshold); ! mark_object (h->hash); ! mark_object (h->next); ! mark_object (h->index); ! mark_object (h->user_hash_function); ! mark_object (h->user_cmp_function); /* If hash table is not weak, mark all keys and values. For weak tables, mark only the vector. */ if (GC_NILP (h->weak)) ! mark_object (h->key_and_value); else VECTOR_MARK (XVECTOR (h->key_and_value)); } *************** *** 4931,4937 **** size &= PSEUDOVECTOR_SIZE_MASK; for (i = 0; i < size; i++) /* and then mark its elements */ ! mark_object (&ptr->contents[i]); } break; --- 4926,4932 ---- size &= PSEUDOVECTOR_SIZE_MASK; for (i = 0; i < size; i++) /* and then mark its elements */ ! mark_object (ptr->contents[i]); } break; *************** *** 4943,4951 **** if (ptr->gcmarkbit) break; CHECK_ALLOCATED_AND_LIVE (live_symbol_p); ptr->gcmarkbit = 1; ! mark_object ((Lisp_Object *) &ptr->value); ! mark_object (&ptr->function); ! mark_object (&ptr->plist); if (!PURE_POINTER_P (XSTRING (ptr->xname))) MARK_STRING (XSTRING (ptr->xname)); --- 4938,4946 ---- if (ptr->gcmarkbit) break; CHECK_ALLOCATED_AND_LIVE (live_symbol_p); ptr->gcmarkbit = 1; ! mark_object (ptr->value); ! mark_object (ptr->function); ! mark_object (ptr->plist); if (!PURE_POINTER_P (XSTRING (ptr->xname))) MARK_STRING (XSTRING (ptr->xname)); *************** *** 4957,4969 **** ptr = ptr->next; if (ptr) { - /* For the benefit of the last_marked log. */ - objptr = (Lisp_Object *)&XSYMBOL (obj)->next; ptrx = ptr; /* Use of ptrx avoids compiler bug on Sun */ XSETSYMBOL (obj, ptrx); ! /* We can't goto loop here because *objptr doesn't contain an ! actual Lisp_Object with valid datatype field. */ ! goto loop2; } } break; --- 4952,4960 ---- ptr = ptr->next; if (ptr) { ptrx = ptr; /* Use of ptrx avoids compiler bug on Sun */ XSETSYMBOL (obj, ptrx); ! goto loop; } } break; *************** *** 4983,4995 **** /* If the cdr is nil, avoid recursion for the car. */ if (EQ (ptr->cdr, Qnil)) { ! objptr = &ptr->realvalue; goto loop; } ! mark_object (&ptr->realvalue); ! mark_object (&ptr->buffer); ! mark_object (&ptr->frame); ! objptr = &ptr->cdr; goto loop; } --- 4974,4986 ---- /* If the cdr is nil, avoid recursion for the car. */ if (EQ (ptr->cdr, Qnil)) { ! obj = ptr->realvalue; goto loop; } ! mark_object (ptr->realvalue); ! mark_object (ptr->buffer); ! mark_object (ptr->frame); ! obj = ptr->cdr; goto loop; } *************** *** 5011,5019 **** case Lisp_Misc_Overlay: { struct Lisp_Overlay *ptr = XOVERLAY (obj); ! mark_object (&ptr->start); ! mark_object (&ptr->end); ! objptr = &ptr->plist; goto loop; } break; --- 5002,5010 ---- case Lisp_Misc_Overlay: { struct Lisp_Overlay *ptr = XOVERLAY (obj); ! mark_object (ptr->start); ! mark_object (ptr->end); ! obj = ptr->plist; goto loop; } break; *************** *** 5032,5043 **** /* If the cdr is nil, avoid recursion for the car. */ if (EQ (ptr->cdr, Qnil)) { ! objptr = &ptr->car; cdr_count = 0; goto loop; } ! mark_object (&ptr->car); ! objptr = &ptr->cdr; cdr_count++; if (cdr_count == mark_object_loop_halt) abort (); --- 5023,5034 ---- /* If the cdr is nil, avoid recursion for the car. */ if (EQ (ptr->cdr, Qnil)) { ! obj = ptr->car; cdr_count = 0; goto loop; } ! mark_object (ptr->car); ! obj = ptr->cdr; cdr_count++; if (cdr_count == mark_object_loop_halt) abort (); *************** *** 5095,5104 **** && GC_MARKERP (XCAR (ptr->car))) { XMARK (XCAR_AS_LVALUE (ptr->car)); ! mark_object (&XCDR_AS_LVALUE (ptr->car)); } else ! mark_object (&ptr->car); if (CONSP (ptr->cdr)) tail = ptr->cdr; --- 5086,5095 ---- && GC_MARKERP (XCAR (ptr->car))) { XMARK (XCAR_AS_LVALUE (ptr->car)); ! mark_object (XCDR (ptr->car)); } else ! mark_object (ptr->car); if (CONSP (ptr->cdr)) tail = ptr->cdr; *************** *** 5106,5120 **** break; } ! mark_object (&XCDR_AS_LVALUE (tail)); } else ! mark_object (&buffer->undo_list); for (ptr = &buffer->name; (char *)ptr < (char *)buffer + sizeof (struct buffer); ptr++) ! mark_object (ptr); /* If this is an indirect buffer, mark its base buffer. */ if (buffer->base_buffer && !VECTOR_MARKED_P (buffer->base_buffer)) --- 5097,5111 ---- break; } ! mark_object (XCDR (tail)); } else ! mark_object (buffer->undo_list); for (ptr = &buffer->name; (char *)ptr < (char *)buffer + sizeof (struct buffer); ptr++) ! mark_object (*ptr); /* If this is an indirect buffer, mark its base buffer. */ if (buffer->base_buffer && !VECTOR_MARKED_P (buffer->base_buffer)) From MAILER-DAEMON Sun Jul 06 15:37:24 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZFJv-0002oc-Ki for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:37:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZFJr-0002ai-2w for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:37:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZFJm-0002Ot-HR for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:37:03 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZFJm-0002NQ-0d for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:37:02 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZFIk-0000Tn-Ue for emacs-diffs@gnu.org; Sun, 06 Jul 2003 15:35:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 15:35:58 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 19:37:08 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3298 emacs/src/ChangeLog:1.3299 *** emacs/src/ChangeLog:1.3298 Sun Jul 6 10:54:30 2003 --- emacs/src/ChangeLog Sun Jul 6 15:35:58 2003 *************** *** 1,3 **** --- 1,17 ---- + 2003-07-06 Stefan Monnier + + * lisp.h (mark_object): Change prototype. + + * alloc.c (mark_object): Change arg *Lisp_Object -> Lisp_Object. + (last_marked): Change accordingly. + (mark_interval, mark_maybe_object, mark_maybe_pointer) + (Fgarbage_collect, mark_glyph_matrix, mark_face_cache, mark_image) + (mark_buffer): Update calls to mark_object. + + * bytecode.c (mark_byte_stack): + * fns.c (sweep_weak_table): + * keyboard.c (mark_kboards): Update calls to mark_object. + 2003-07-06 Jason Rumney * alloc.c (struct ablock): Only include padding when there is some. From MAILER-DAEMON Sun Jul 06 17:07:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZGj0-0006pM-Oo for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:10 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZGix-0006no-Aw for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZGiu-0006m8-4C for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZGit-0006lr-QP for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:03 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZGhs-0005Wk-Nx for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:06:00 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 17:06:00 -0400 Subject: [Emacs-diffs] Changes to emacs/src/lisp.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 21:07:08 -0000 Index: emacs/src/lisp.h diff -c emacs/src/lisp.h:1.461 emacs/src/lisp.h:1.462 *** emacs/src/lisp.h:1.461 Sun Jul 6 15:29:04 2003 --- emacs/src/lisp.h Sun Jul 6 17:06:00 2003 *************** *** 380,389 **** #define XMARKBIT(a) ((a) & MARKBIT) #endif - #ifndef XSETMARKBIT - #define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0)) - #endif - #ifndef XMARK #define XMARK(a) ((a) |= MARKBIT) #endif --- 380,385 ---- *************** *** 433,439 **** #define XGCTYPE(a) ((a).gu.type) #define XMARKBIT(a) ((a).gu.markbit) - #define XSETMARKBIT(a,b) (XMARKBIT(a) = (b)) #define XMARK(a) (XMARKBIT(a) = 1) #define XUNMARK(a) (XMARKBIT(a) = 0) --- 429,434 ---- From MAILER-DAEMON Sun Jul 06 17:08:08 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZGjn-0000TJ-5y for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZGjj-0000Hg-Mq for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:55 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZGje-0008Pv-Hp for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZGjd-0008Lj-60 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:49 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZGic-0005Y2-7V for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:06:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 17:06:46 -0400 Subject: [Emacs-diffs] Changes to emacs/src/m/hp800.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 21:07:57 -0000 Index: emacs/src/m/hp800.h diff -c emacs/src/m/hp800.h:1.19 emacs/src/m/hp800.h:1.20 *** emacs/src/m/hp800.h:1.19 Tue Feb 4 09:03:18 2003 --- emacs/src/m/hp800.h Sun Jul 6 17:06:45 2003 *************** *** 1,5 **** /* machine description file for hp9000 series 800 machines. ! Copyright (C) 1987, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* machine description file for hp9000 series 800 machines. ! Copyright (C) 1987, 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 69,75 **** ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)) #define XMARKBIT(a) ((a) < 0) - #define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT)) #if 0 /* Loses when sign bit of type field is set. */ #define XUNMARK(a) ((a) = (((a) << BITS_PER_INT-GCTYPEBITS-VALBITS) >> BITS_PER_INT-GCTYPEBITS-VALBITS)) --- 69,74 ---- From MAILER-DAEMON Sun Jul 06 17:08:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZGk4-00013E-0h for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:08:16 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZGjl-0000NY-Dk for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:57 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZGji-0000DL-ED for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:55 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZGjd-0008Mb-Kv for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:07:49 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZGic-0005Y7-Dx for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:06:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 17:06:46 -0400 Subject: [Emacs-diffs] Changes to emacs/src/m/sr2k.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 21:08:14 -0000 Index: emacs/src/m/sr2k.h diff -c emacs/src/m/sr2k.h:1.4 emacs/src/m/sr2k.h:1.5 *** emacs/src/m/sr2k.h:1.4 Tue Feb 4 09:03:18 2003 --- emacs/src/m/sr2k.h Sun Jul 6 17:06:45 2003 *************** *** 1,5 **** /* machine description file for Hitachi SR2001/SR2201 machines. ! Copyright (C) 1996, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* machine description file for Hitachi SR2001/SR2201 machines. ! Copyright (C) 1996, 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 69,75 **** ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)) #define XMARKBIT(a) ((a) < 0) - #define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT)) #if 0 /* Loses when sign bit of type field is set. */ #define XUNMARK(a) ((a) = (((a) << BITS_PER_INT-GCTYPEBITS-VALBITS) >> BITS_PER_INT-GCTYPEBITS-VALBITS)) --- 69,74 ---- From MAILER-DAEMON Sun Jul 06 17:10:03 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZGlm-0005Bq-Oh for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:10:02 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZGlX-0004jX-39 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:09:47 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZGlM-0004AW-P6 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:09:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZGl6-0003fs-TW for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:09:20 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZGk5-0005aw-S7 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:08:17 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 17:08:17 -0400 Subject: [Emacs-diffs] Changes to emacs/src/m/ia64.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 21:10:00 -0000 Index: emacs/src/m/ia64.h diff -c emacs/src/m/ia64.h:1.5 emacs/src/m/ia64.h:1.6 *** emacs/src/m/ia64.h:1.5 Mon Nov 25 09:52:56 2002 --- emacs/src/m/ia64.h Sun Jul 6 17:08:17 2003 *************** *** 1,12 **** /* machine description file for the IA-64 architecture. ! Copyright (C) 2000, 2002 Free Software Foundation, Inc. Contributed by David Mosberger This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 1, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, --- 1,12 ---- /* machine description file for the IA-64 architecture. ! Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc. Contributed by David Mosberger This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by ! the Free Software Foundation; either version 2, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, *************** *** 122,132 **** /* On the 64 bit architecture, we can use 60 bits for addresses */ #define VALBITS 60 - - /* This definition of MARKBIT is necessary because of the comparison of - ARRAY_MARK_FLAG and MARKBIT in an #if in lisp.h, which cpp doesn't like. */ - - #define MARKBIT 0x8000000000000000L /* Define XINT and XUINT so that they can take arguments of type int */ --- 122,127 ---- From MAILER-DAEMON Sun Jul 06 17:10:16 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZGlt-0005NC-6m for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:10:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZGlV-0004fr-R6 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:09:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZGlO-0004Eg-92 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:09:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZGl6-0003fr-OM for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:09:20 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZGk5-0005at-NF for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:08:17 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 17:08:17 -0400 Subject: [Emacs-diffs] Changes to emacs/src/m/amdx86-64.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 21:10:07 -0000 Index: emacs/src/m/amdx86-64.h diff -c emacs/src/m/amdx86-64.h:1.2 emacs/src/m/amdx86-64.h:1.3 *** emacs/src/m/amdx86-64.h:1.2 Tue Feb 4 09:03:18 2003 --- emacs/src/m/amdx86-64.h Sun Jul 6 17:08:17 2003 *************** *** 1,5 **** /* machine description file for AMD x86-64. ! Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* machine description file for AMD x86-64. ! Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 100,110 **** /* On the 64 bit architecture, we can use 60 bits for addresses */ #define VALBITS 60 - - /* This definition of MARKBIT is necessary because of the comparison of - ARRAY_MARK_FLAG and MARKBIT in an #if in lisp.h, which cpp doesn't like. */ - - #define MARKBIT 0x8000000000000000L /* Define XINT and XUINT so that they can take arguments of type int */ #define XINT(a) (((long) (a) << (BITS_PER_LONG - VALBITS)) >> (BITS_PER_LONG - VALBITS)) --- 100,105 ---- From MAILER-DAEMON Sun Jul 06 17:13:38 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZGp2-0001nC-L7 for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:13:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZGon-00019j-Dm for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:13:09 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZGmP-0006Va-1S for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:10:44 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZGmJ-0006FH-EP for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:10:35 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZGlI-0005cg-DE for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:09:32 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 17:09:32 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 21:13:23 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3299 emacs/src/ChangeLog:1.3300 *** emacs/src/ChangeLog:1.3299 Sun Jul 6 15:35:58 2003 --- emacs/src/ChangeLog Sun Jul 6 17:09:31 2003 *************** *** 1,5 **** --- 1,13 ---- 2003-07-06 Stefan Monnier + * m/amdx86-64.h (MARKBIT): + * m/ia64.h (MARKBIT): Remove definition since lisp.h does not compare + MARKBIT and ARRAY_MARK_FLAG any more. + + * m/hp800.h (XSETMARKBIT): + * m/sr2k.h (XSETMARKBIT): + * lisp.h (XSETMARKBIT): Remove unused macro. + * lisp.h (mark_object): Change prototype. * alloc.c (mark_object): Change arg *Lisp_Object -> Lisp_Object. From MAILER-DAEMON Sun Jul 06 17:59:50 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZHXo-0004jo-Gw for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:59:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZHXa-0004Jo-C6 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:59:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZHXA-0003Ak-Rl for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:59:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZHWm-0002Kx-IA for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:58:36 -0400 Received: from jasonr by subversions.gnu.org with local (Exim 4.20) id 19ZHVl-0001BS-I5 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:57:33 -0400 To: emacs-diffs@gnu.org Message-Id: From: Jason Rumney Date: Sun, 06 Jul 2003 17:57:33 -0400 Subject: [Emacs-diffs] Changes to emacs/src/w32term.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jasonr@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 21:59:39 -0000 Index: emacs/src/w32term.h diff -c emacs/src/w32term.h:1.56 emacs/src/w32term.h:1.57 *** emacs/src/w32term.h:1.56 Sat May 24 18:06:40 2003 --- emacs/src/w32term.h Sun Jul 6 17:57:33 2003 *************** *** 731,733 **** --- 731,735 ---- ? UNICODE_FONT \ : ((CHARSET_DIMENSION (CHAR_CHARSET ((ch))) == 1) \ ? BDF_1D_FONT : BDF_2D_FONT)) + + typedef DWORD (WINAPI * ClipboardSequence_Proc) (); From MAILER-DAEMON Sun Jul 06 18:00:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZHYB-0005Dd-0v for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:00:03 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZHXr-0004nO-KA for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:59:43 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZHXl-0004e8-Rk for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:59:38 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZHXV-0004F8-Qj for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:59:21 -0400 Received: from jasonr by subversions.gnu.org with local (Exim 4.20) id 19ZHWP-0001D7-2w for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:58:13 -0400 To: emacs-diffs@gnu.org Message-Id: From: Jason Rumney Date: Sun, 06 Jul 2003 17:58:13 -0400 Subject: [Emacs-diffs] Changes to emacs/src/w32fns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jasonr@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 22:00:01 -0000 Index: emacs/src/w32fns.c diff -c emacs/src/w32fns.c:1.218 emacs/src/w32fns.c:1.219 *** emacs/src/w32fns.c:1.218 Sun Jul 6 14:42:55 2003 --- emacs/src/w32fns.c Sun Jul 6 17:58:12 2003 *************** *** 257,267 **** /* Window that is tracking the mouse. */ static HWND track_mouse_window; ! typedef BOOL (WINAPI * TrackMouseEvent_Proc) ( ! IN OUT LPTRACKMOUSEEVENT lpEventTrack ! ); ! TrackMouseEvent_Proc track_mouse_event_fn=NULL; /* W95 mousewheel handler */ unsigned int msh_mousewheel = 0; --- 257,267 ---- /* Window that is tracking the mouse. */ static HWND track_mouse_window; ! typedef BOOL (WINAPI * TrackMouseEvent_Proc) ! (IN OUT LPTRACKMOUSEEVENT lpEventTrack); ! TrackMouseEvent_Proc track_mouse_event_fn = NULL; ! ClipboardSequence_Proc clipboard_sequence_fn = NULL; /* W95 mousewheel handler */ unsigned int msh_mousewheel = 0; *************** *** 14483,14493 **** void globals_of_w32fns () { HMODULE user32_lib = GetModuleHandle ("user32.dll"); ! /* ! TrackMouseEvent not available in all versions of Windows, so must load ! it dynamically. Do it once, here, instead of every time it is used. */ ! track_mouse_event_fn = (TrackMouseEvent_Proc) GetProcAddress (user32_lib, "TrackMouseEvent"); } /* Initialize image types. Based on which libraries are available. */ --- 14483,14497 ---- void globals_of_w32fns () { HMODULE user32_lib = GetModuleHandle ("user32.dll"); ! /* ! TrackMouseEvent not available in all versions of Windows, so must load ! it dynamically. Do it once, here, instead of every time it is used. */ ! track_mouse_event_fn = (TrackMouseEvent_Proc) ! GetProcAddress (user32_lib, "TrackMouseEvent"); ! /* ditto for GetClipboardSequenceNumber. */ ! clipboard_sequence_fn = (ClipboardSequence_Proc) ! GetProcAddress (user32_lib, "GetClipboardSequenceNumber"); } /* Initialize image types. Based on which libraries are available. */ From MAILER-DAEMON Sun Jul 06 18:02:14 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZHZh-0006Jw-Gj for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:01:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZHYb-0005sT-WB for emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:00:30 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZHYB-0005E8-IX for emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:00:04 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZHXr-0004nN-Ih for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:59:43 -0400 Received: from jasonr by subversions.gnu.org with local (Exim 4.20) id 19ZHWq-0001Dp-Ft for emacs-diffs@gnu.org; Sun, 06 Jul 2003 17:58:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: Jason Rumney Date: Sun, 06 Jul 2003 17:58:40 -0400 Subject: [Emacs-diffs] Changes to emacs/src/w32select.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jasonr@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 22:01:35 -0000 Index: emacs/src/w32select.c diff -c emacs/src/w32select.c:1.28 emacs/src/w32select.c:1.29 *** emacs/src/w32select.c:1.28 Mon Oct 14 07:01:49 2002 --- emacs/src/w32select.c Sun Jul 6 17:58:40 2003 *************** *** 41,49 **** /* Coding system for the next communicating with other Windows programs. */ static Lisp_Object Vnext_selection_coding_system; ! /* The last text we put into the clipboard. This is used to prevent ! passing back our own text from the clipboard, instead of using the ! kill ring. The former is undesirable because the clipboard data could be MULEtilated by inappropriately chosen (next-)selection-coding-system. For this reason, we must store the text *after* it was encoded/Unix-to-DOS-converted. */ --- 41,54 ---- /* Coding system for the next communicating with other Windows programs. */ static Lisp_Object Vnext_selection_coding_system; ! /* Sequence number, used where possible to detect when we are pasting ! our own text. */ ! static DWORD last_clipboard_sequence_number; ! extern ClipboardSequence_Proc clipboard_sequence_fn; ! ! /* The last text we put into the clipboard. This is used when the OS ! does not support sequence numbers (NT4, 95). It is undesirable to ! use data put on the clipboard by Emacs because the clipboard data could be MULEtilated by inappropriately chosen (next-)selection-coding-system. For this reason, we must store the text *after* it was encoded/Unix-to-DOS-converted. */ *************** *** 217,233 **** encode_coding (&coding, src, dst, nbytes, bufsize); Vlast_coding_system_used = coding.symbol; ! /* Stash away the data we are about to put into the clipboard, so we ! could later check inside Fw32_get_clipboard_data whether ! the clipboard still holds our data. */ ! if (clipboard_storage_size < coding.produced) ! { ! clipboard_storage_size = coding.produced + 100; ! last_clipboard_text = (char *) xrealloc (last_clipboard_text, ! clipboard_storage_size); ! } ! if (last_clipboard_text) ! memcpy (last_clipboard_text, dst, coding.produced); GlobalUnlock (htext); --- 222,244 ---- encode_coding (&coding, src, dst, nbytes, bufsize); Vlast_coding_system_used = coding.symbol; ! /* If clipboard sequence numbers are not supported, keep a copy for ! later comparison. */ ! if (!clipboard_sequence_fn) ! { ! /* Stash away the data we are about to put into the ! clipboard, so we could later check inside ! Fw32_get_clipboard_data whether the clipboard still ! holds our data. */ ! if (clipboard_storage_size < coding.produced) ! { ! clipboard_storage_size = coding.produced + 100; ! last_clipboard_text = (char *) xrealloc (last_clipboard_text, ! clipboard_storage_size); ! } ! if (last_clipboard_text) ! memcpy (last_clipboard_text, dst, coding.produced); ! } GlobalUnlock (htext); *************** *** 243,248 **** --- 254,262 ---- ok = EmptyClipboard () && SetClipboardData (CF_TEXT, htext); + if (clipboard_sequence_fn) + last_clipboard_sequence_number = clipboard_sequence_fn (); + CloseClipboard (); if (ok) goto done; *************** *** 254,259 **** --- 268,275 ---- if (last_clipboard_text) *last_clipboard_text = '\0'; + last_clipboard_sequence_number = 0; + done: UNBLOCK_INPUT; *************** *** 297,305 **** data in the clipboard. This is so we don't pass our own text from the clipboard (which might be troublesome if the killed text includes null characters). */ ! if (last_clipboard_text ! && clipboard_storage_size >= nbytes ! && memcmp(last_clipboard_text, src, nbytes) == 0) goto closeclip; { --- 313,323 ---- data in the clipboard. This is so we don't pass our own text from the clipboard (which might be troublesome if the killed text includes null characters). */ ! if ((clipboard_sequence_fn ! && clipboard_sequence_fn () == last_clipboard_sequence_number) ! || (last_clipboard_text ! && clipboard_storage_size >= nbytes ! && memcmp(last_clipboard_text, src, nbytes) == 0)) goto closeclip; { From MAILER-DAEMON Sun Jul 06 18:03:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZHbH-0001f8-6m for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:03:15 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZHb8-0001Gc-GV for emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:03:06 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZHb3-00015Y-Dj for emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:03:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZHav-0000fA-FE for emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:02:53 -0400 Received: from jasonr by subversions.gnu.org with local (Exim 4.20) id 19ZHZu-0001Lf-B4 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 18:01:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: Jason Rumney Date: Sun, 06 Jul 2003 18:01:50 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jasonr@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 22:03:13 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3300 emacs/src/ChangeLog:1.3301 *** emacs/src/ChangeLog:1.3300 Sun Jul 6 17:09:31 2003 --- emacs/src/ChangeLog Sun Jul 6 18:01:49 2003 *************** *** 1,3 **** --- 1,14 ---- + 2003-07-06 Jason Rumney + + * w32term.h (ClipboardSequence_Proc): New type. + + * w32fns.c (clipboard_sequence_fn): New variable. + (globals_of_w32fns): Initialize it. + + * w32select.c (last_clipboard_sequence_number): New variable. + (Fw32_set_clipboard_data, Fw32_get_clipboard_data): Use sequence + number if possible. + 2003-07-06 Stefan Monnier * m/amdx86-64.h (MARKBIT): From MAILER-DAEMON Sun Jul 06 19:14:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZIi4-0005np-Dl for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:14:20 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZIhv-0005Os-S0 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:14:11 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZIhN-0004Cj-5N for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:13:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZIhB-0003w1-6P for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:13:25 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZIgA-0005gM-6x for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:12:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 19:12:22 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 23:14:18 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.310 emacs/src/alloc.c:1.311 *** emacs/src/alloc.c:1.310 Sun Jul 6 15:34:03 2003 --- emacs/src/alloc.c Sun Jul 6 19:12:21 2003 *************** *** 3468,3473 **** --- 3468,3474 ---- /* P must point to the start of a Lisp_Float and not be one of the unused cells in the current float block. */ return (offset >= 0 + && offset < (FLOAT_BLOCK_SIZE * sizeof b->floats[0]) && offset % sizeof b->floats[0] == 0 && (b != float_block || offset / sizeof b->floats[0] < float_block_index)); From MAILER-DAEMON Sun Jul 06 19:15:30 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZIic-0006zN-IP for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:14:54 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZIiF-0006NE-VW for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:14:31 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZIi9-00065W-P2 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:14:27 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZIi9-00063j-5k for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:14:25 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZIh8-0005hF-1m for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:13:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 19:13:22 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 23:14:53 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3301 emacs/src/ChangeLog:1.3302 *** emacs/src/ChangeLog:1.3301 Sun Jul 6 18:01:49 2003 --- emacs/src/ChangeLog Sun Jul 6 19:13:20 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-06 Stefan Monnier + + * alloc.c (live_float_p): Check that p is not past the `floats' array, + now that `floats' is not the last element of the struct any more. + 2003-07-06 Jason Rumney * w32term.h (ClipboardSequence_Proc): New type. From MAILER-DAEMON Sun Jul 06 19:27:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZIut-0006NX-Mx for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:27:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZIup-0006CW-OR for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:27:31 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZIuc-0005pu-PG for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:27:22 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZIuX-0005b4-FD for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:27:13 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZItW-0008KA-7Q for emacs-diffs@gnu.org; Sun, 06 Jul 2003 19:26:10 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 06 Jul 2003 19:26:10 -0400 Subject: [Emacs-diffs] Changes to emacs/src/minibuf.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Sun, 06 Jul 2003 23:27:34 -0000 Index: emacs/src/minibuf.c diff -c emacs/src/minibuf.c:1.258 emacs/src/minibuf.c:1.259 *** emacs/src/minibuf.c:1.258 Sat May 24 18:02:14 2003 --- emacs/src/minibuf.c Sun Jul 6 19:26:09 2003 *************** *** 485,490 **** --- 485,491 ---- val = read_minibuf_noninteractive (map, initial, prompt, backup_n, expflag, histvar, histpos, defalt, allow_props, inherit_input_method); + UNGCPRO; return unbind_to (count, val); } *************** *** 738,744 **** /* The appropriate frame will get selected in set-window-configuration. */ ! RETURN_UNGCPRO (unbind_to (count, val)); } /* Return a buffer to be used as the minibuffer at depth `depth'. --- 739,746 ---- /* The appropriate frame will get selected in set-window-configuration. */ ! UNGCPRO; ! return unbind_to (count, val); } /* Return a buffer to be used as the minibuffer at depth `depth'. *************** *** 1125,1131 **** DEFUN ("try-completion", Ftry_completion, Stry_completion, 2, 3, 0, doc: /* Return common substring of all completions of STRING in ALIST. ! Each car of each element of ALIST is tested to see if it begins with STRING. All that match are compared together; the longest initial sequence common to all matches is returned as a string. If there is no match at all, nil is returned. --- 1127,1134 ---- DEFUN ("try-completion", Ftry_completion, Stry_completion, 2, 3, 0, doc: /* Return common substring of all completions of STRING in ALIST. ! Each car of each element of ALIST (or each element if it is not a cons cell) ! is tested to see if it begins with STRING. All that match are compared together; the longest initial sequence common to all matches is returned as a string. If there is no match at all, nil is returned. *************** *** 1367,1373 **** DEFUN ("all-completions", Fall_completions, Sall_completions, 2, 4, 0, doc: /* Search for partial matches to STRING in ALIST. ! Each car of each element of ALIST is tested to see if it begins with STRING. The value is a list of all the strings from ALIST that match. If ALIST is a hash-table, all the string keys are the possible matches. --- 1370,1377 ---- DEFUN ("all-completions", Fall_completions, Sall_completions, 2, 4, 0, doc: /* Search for partial matches to STRING in ALIST. ! Each car of each element of ALIST (or each element if it is not a cons cell) ! is tested to see if it begins with STRING. The value is a list of all the strings from ALIST that match. If ALIST is a hash-table, all the string keys are the possible matches. From MAILER-DAEMON Sun Jul 06 21:47:54 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZL64-0004KH-Ag for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:47:16 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZL5t-00041U-9B for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:47:05 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZL5p-0003q1-3L for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:47:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZL5j-0003Rq-Ms for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:46:55 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19ZL4f-0000AZ-Mk for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:45:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Sun, 06 Jul 2003 21:45:49 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 01:47:14 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.427 emacs/src/buffer.c:1.428 *** emacs/src/buffer.c:1.427 Thu Jun 26 19:16:44 2003 --- emacs/src/buffer.c Sun Jul 6 21:45:49 2003 *************** *** 1382,1387 **** --- 1382,1388 ---- #endif /* CLASH_DETECTION */ kill_buffer_processes (buf); + clear_charpos_cache (b); tem = Vinhibit_quit; Vinhibit_quit = Qt; From MAILER-DAEMON Sun Jul 06 21:48:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZL6e-0005Hi-LW for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:47:52 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZL6X-000566-9A for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:47:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZL6G-0004oR-2i for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:47:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZL62-0004Gr-9t for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:47:14 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19ZL51-0000BA-6D for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:46:11 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Sun, 06 Jul 2003 21:46:11 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 01:47:50 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3302 emacs/src/ChangeLog:1.3303 *** emacs/src/ChangeLog:1.3302 Sun Jul 6 19:13:20 2003 --- emacs/src/ChangeLog Sun Jul 6 21:46:10 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-07 Nozomu Ando (tiny change) + + * buffer.c (Fkill_buffer): Clear charpos cache if necessary. + 2003-07-06 Stefan Monnier * alloc.c (live_float_p): Check that p is not past the `floats' array, From MAILER-DAEMON Sun Jul 06 21:53:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZLBn-0001fw-OT for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:53:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZLBk-0001VT-Di for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:53:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZLBb-00019B-N2 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:53:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZLBV-0000z3-8x for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:52:53 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19ZLAT-0000I0-Tv for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:51:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Sun, 06 Jul 2003 21:51:49 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c [EMACS_21_1_RC] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 01:53:09 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.358.4.6 emacs/src/buffer.c:1.358.4.7 *** emacs/src/buffer.c:1.358.4.6 Sun Jun 1 20:56:52 2003 --- emacs/src/buffer.c Sun Jul 6 21:51:49 2003 *************** *** 1302,1307 **** --- 1302,1308 ---- #endif /* CLASH_DETECTION */ kill_buffer_processes (buf); + clear_charpos_cache (b); tem = Vinhibit_quit; Vinhibit_quit = Qt; From MAILER-DAEMON Sun Jul 06 21:54:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZLCw-0004pu-Jy for mharc-emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:54:22 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZLCP-0003G0-C4 for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:53:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZLCF-0002mk-0z for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:53:40 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZLC9-0002U1-HR for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:53:33 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19ZLB8-0000Im-5K for emacs-diffs@gnu.org; Sun, 06 Jul 2003 21:52:30 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Sun, 06 Jul 2003 21:52:30 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog [EMACS_21_1_RC] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 01:54:20 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.1914.2.238 emacs/src/ChangeLog:1.1914.2.239 *** emacs/src/ChangeLog:1.1914.2.238 Fri Jun 20 14:10:40 2003 --- emacs/src/ChangeLog Sun Jul 6 21:52:25 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-07 Nozomu Ando (tiny change) + + * buffer.c (Fkill_buffer): Clear charpos cache if necessary. + 2003-06-10 Andreas Schwab * window.c (window_scroll_pixel_based): Move outside a From MAILER-DAEMON Mon Jul 07 04:45:08 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZRc3-0006Jk-2U for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 04:44:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZRbt-0005qW-DF for emacs-diffs@gnu.org; Mon, 07 Jul 2003 04:44:33 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZRbn-0005Ye-6L for emacs-diffs@gnu.org; Mon, 07 Jul 2003 04:44:29 -0400 Received: from [62.152.82.224] (helo=relay2.hotbox.ru) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZRbl-0005Ja-KD for emacs-diffs@gnu.org; Mon, 07 Jul 2003 04:44:26 -0400 From: "Gallery-a" To: emacs-diffs@gnu.org Date: 07 Jul 2003 12:46:51 +0400 Message-ID: <2003.07.07.3E180C8A159C70B8@fromru.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit Subject: [Emacs-diffs] Present of new painters ADD@(0713969645) X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 08:44:41 -0000 Dear Ladies and Gentlemen, We are pleased to inform you, that our Gallery was updated. Our Gallery was enlarged with new artists. There you can find paintings from Barabanova Anastasia, http://www.gallery-a.ru/painter.php?aid=091 Olenich Roman.http://www.gallery-a.ru/painter.php?aid=100 Also - new services available on our site E-Cards:http://www.gallery-a.ru/ecards/compose.php Wallpapers: http://www.gallery-a.ru/luxury.php Welcome to our website! Gallery curator. Sorry if that information not interesting for You and we disturb You with our message! For removing yor address from this mailing list just replay this message with word 'unsubscribe' in subject field or simple click this link: http://www.gallery-a.ru/unsubscribe.php?e=ZW1hY3MtZGlmZnNAZ251Lm9yZzoxNjc5MzI0NA== From MAILER-DAEMON Mon Jul 07 13:22:34 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZZM0-0006kL-77 for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 13:00:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZZFt-0005QN-Ma for emacs-diffs@gnu.org; Mon, 07 Jul 2003 12:54:21 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZZ5C-0003JN-09 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 12:43:19 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZXjg-00039B-Kn for emacs-diffs@gnu.org; Mon, 07 Jul 2003 11:17:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19ZXGi-0002xK-I7 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 10:47:04 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZXFg-0001RD-Ux for emacs-diffs@gnu.org; Mon, 07 Jul 2003 10:46:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Mon, 07 Jul 2003 10:46:01 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 17:00:38 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.364 emacs/lisp/info.el:1.365 *** emacs/lisp/info.el:1.364 Sun Jul 6 13:00:41 2003 --- emacs/lisp/info.el Mon Jul 7 10:46:00 2003 *************** *** 1652,1658 **** (save-excursion (goto-char p) (end-of-line) ! (if (re-search-backward "\n\\* +\\([^\t\n]*\\):" beg t) (setq default (match-string-no-properties 1)))))) (let ((item nil)) (while (null item) --- 1652,1660 ---- (save-excursion (goto-char p) (end-of-line) ! (if (re-search-backward (concat "\n\\* +\\(" ! Info-menu-entry-name-re ! "\\):") beg t) (setq default (match-string-no-properties 1)))))) (let ((item nil)) (while (null item) From MAILER-DAEMON Mon Jul 07 14:54:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zb8U-0008Dv-TE for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:54:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zb8S-0008DE-5X for emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:54:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zb8Q-0008CR-PV for emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:54:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zb8Q-0008CK-Cx for emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:54:46 -0400 Received: from nickrob by subversions.gnu.org with local (Exim 4.20) id 19Zb7P-0003ZK-5H for emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:53:43 -0400 To: emacs-diffs@gnu.org Message-Id: From: Nick Roberts Date: Mon, 07 Jul 2003 14:53:43 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/gdb-ui.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: nick@nick.uklinux.net List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 18:54:48 -0000 Index: emacs/lisp/gdb-ui.el diff -c emacs/lisp/gdb-ui.el:1.37 emacs/lisp/gdb-ui.el:1.38 *** emacs/lisp/gdb-ui.el:1.37 Sun Jun 29 09:52:50 2003 --- emacs/lisp/gdb-ui.el Mon Jul 7 14:53:42 2003 *************** *** 178,187 **** (gdb-enqueue-input (list "set new-console off\n" 'ignore))) (gdb-enqueue-input (list "set height 0\n" 'ignore)) ;; find source file and compilation directory here ! (gdb-enqueue-input (list "server list main\n" 'ignore)) ; C program (gdb-enqueue-input (list "server list MAIN__\n" 'ignore)) ; Fortran program ! (gdb-enqueue-input (list "server info source\n" ! 'gdb-source-info)) ;; (run-hooks 'gdba-mode-hook)) --- 178,186 ---- (gdb-enqueue-input (list "set new-console off\n" 'ignore))) (gdb-enqueue-input (list "set height 0\n" 'ignore)) ;; find source file and compilation directory here ! (gdb-enqueue-input (list "server list main\n" 'ignore)) ; C program (gdb-enqueue-input (list "server list MAIN__\n" 'ignore)) ; Fortran program ! (gdb-enqueue-input (list "server info source\n" 'gdb-source-info)) ;; (run-hooks 'gdba-mode-hook)) *************** *** 2085,2090 **** --- 2084,2090 ---- (gdb-display-breakpoints-buffer) (gdb-display-display-buffer) (delete-other-windows) + (switch-to-buffer gud-comint-buffer) (split-window nil ( / ( * (window-height) 3) 4)) (split-window nil ( / (window-height) 3)) (split-window-horizontally) *************** *** 2183,2188 **** --- 2183,2189 ---- (setq gdb-main-file (match-string 0))) (setq gdb-view-source nil)) (delete-other-windows) + (switch-to-buffer gud-comint-buffer) (if gdb-many-windows (gdb-setup-windows) (gdb-display-breakpoints-buffer) *************** *** 2191,2197 **** (split-window) (other-window 1) (if gdb-view-source ! (switch-to-buffer (gud-find-file gdb-main-file)) (switch-to-buffer (gdb-get-create-buffer 'gdb-assembler-buffer)) (gdb-invalidate-assembler)) (setq gdb-source-window (get-buffer-window (current-buffer))) --- 2192,2201 ---- (split-window) (other-window 1) (if gdb-view-source ! (switch-to-buffer ! (if gud-last-last-frame ! (gud-find-file (car gud-last-last-frame)) ! (gud-find-file gdb-main-file))) (switch-to-buffer (gdb-get-create-buffer 'gdb-assembler-buffer)) (gdb-invalidate-assembler)) (setq gdb-source-window (get-buffer-window (current-buffer))) From MAILER-DAEMON Mon Jul 07 15:47:47 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZbvO-0005dT-Kb for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 15:45:22 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zbdn-0000IE-Rh for emacs-diffs@gnu.org; Mon, 07 Jul 2003 15:27:11 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZbFd-0001xb-Vo for emacs-diffs@gnu.org; Mon, 07 Jul 2003 15:02:14 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zb7C-00081f-6Z for emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:53:30 -0400 Received: from nickrob by subversions.gnu.org with local (Exim 4.20) id 19Zb69-0003XG-MM for emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:52:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: Nick Roberts Date: Mon, 07 Jul 2003 14:52:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: nick@nick.uklinux.net List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 19:45:21 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5266 emacs/lisp/ChangeLog:1.5267 *** emacs/lisp/ChangeLog:1.5266 Mon Jul 7 11:24:40 2003 --- emacs/lisp/ChangeLog Mon Jul 7 14:52:23 2003 *************** *** 1,3 **** --- 1,10 ---- + 2003-07-07 Nick Roberts + + * gdb-ui.el (gdb-source-info): Display current frame when + attaching to an existing process. + (gdb-setup-windows, gdb-source-info): Start with gud-comint-buffer + while laying out windows when attaching to an existing process. + 2003-07-07 Stefan Monnier * info.el (Info-menu): Use Info-menu-entry-name-re. From MAILER-DAEMON Mon Jul 07 16:02:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZafW-0000rC-1w for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:24:54 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZaQj-0005av-Dl for emacs-diffs@gnu.org; Mon, 07 Jul 2003 14:09:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZYuh-00020l-Ts for emacs-diffs@gnu.org; Mon, 07 Jul 2003 12:32:30 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZXsC-00044u-KZ for emacs-diffs@gnu.org; Mon, 07 Jul 2003 11:25:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19ZXsB-0006z4-RG for emacs-diffs@gnu.org; Mon, 07 Jul 2003 11:25:47 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ZXrA-0004QM-EE for emacs-diffs@gnu.org; Mon, 07 Jul 2003 11:24:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Mon, 07 Jul 2003 11:24:44 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 18:24:52 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5265 emacs/lisp/ChangeLog:1.5266 *** emacs/lisp/ChangeLog:1.5265 Sun Jul 6 15:09:10 2003 --- emacs/lisp/ChangeLog Mon Jul 7 11:24:40 2003 *************** *** 1,3 **** --- 1,15 ---- + 2003-07-07 Stefan Monnier + + * info.el (Info-menu): Use Info-menu-entry-name-re. + + 2003-07-06 Stefan Monnier + + * vc-hooks.el (vc-stay-local, vc-stay-local-p): Move from vc.el. + * vc.el (vc-stay-local, vc-stay-local-p): Move to vc-hooks.el. + + * info.el (Info-menu-entry-name-re): Be careful to avoid multiple ways + to match the same text. + 2003-07-06 John Paul Wallington * vc.el (vc-annotate-offset): Move defvar up. *************** *** 9,39 **** 2003-07-05 Martin Stjernholm ! * files.el (auto-mode-alist, interpreter-mode-alist): Removed ! entries to CC Mode modes to avoid duplicates; they are now added with autoload directives in cc-mode.el. 2003-07-05 Martin Stjernholm ! * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist, ! c-lang-variable-inits, c-lang-variable-inits-tail): The values of these are changed, so declare them as variables and not constants. ! * progmodes/cc-mode.el: Fixed some autoload problems: Try to ensure that the entry for ".c" extension comes before the one for ! ".C" on `auto-mode-alist', to behave better on case insensitive ! OS:es. Fixed incorrect entries that were added to ! `interpreter-mode-alist'. Moved the autoload directives for AWK ! to the top level since they aren't recognized anywhere else. Do ! not use the new AWK mode doc in the autoload form for the old AWK ! mode. 2003-06-30 Roland Winkler ! * textmodes/bibtex.el (bibtex-sort-entry-class): new entry ! catch-all. ! (bibtex-sort-ignore-string-entries): default value t. ! (bibtex-entry-kill-ring-max): Reintroduced as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix --- 21,49 ---- 2003-07-05 Martin Stjernholm ! * files.el (auto-mode-alist, interpreter-mode-alist): ! Remove entries to CC Mode modes to avoid duplicates; they are now added with autoload directives in cc-mode.el. 2003-07-05 Martin Stjernholm ! * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist) ! (c-lang-variable-inits, c-lang-variable-inits-tail): The values of these are changed, so declare them as variables and not constants. ! * progmodes/cc-mode.el: Fix some autoload problems: Try to ensure that the entry for ".c" extension comes before the one for ! ".C" on `auto-mode-alist', to behave better on case insensitive OS:es. ! Fix incorrect entries that were added to `interpreter-mode-alist'. ! Move the autoload directives for AWK to the top level since they ! aren't recognized anywhere else. Do not use the new AWK mode doc ! in the autoload form for the old AWK mode. 2003-06-30 Roland Winkler ! * textmodes/bibtex.el (bibtex-sort-entry-class): New entry catch-all. ! (bibtex-sort-ignore-string-entries): Default value t. ! (bibtex-entry-kill-ring-max): Reintroduce as it was removed erroneously in previous version. (bibtex-string-files): Docstring reflects new parsing scheme. (bibtex-autokey-transcriptions): Merge some rewrite entries, fix *************** *** 56,67 **** (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) ! (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): Fix ! docstring. ! (bibtex-strings, bibtex-reference-keys): Use ! lazy-completion-table and make-variable-buffer-local. ! (bibtex-sort-entry-class-alist): Use downcase, account for ! catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. --- 66,76 ---- (bibtex-autokey-name-year-separator) (bibtex-autokey-year-title-separator) (bibtex-autokey-before-presentation-function) ! (bibtex-entry-type-history, bibtex-entry-maybe-empty-head): ! Fix docstring. ! (bibtex-strings, bibtex-reference-keys): ! Use lazy-completion-table and make-variable-buffer-local. ! (bibtex-sort-entry-class-alist): Use downcase, account for catch-all. (bibtex-braced-string-syntax-table) (bibtex-quoted-string-syntax-table): New variables. (bibtex-parse-nested-braces): Remove. *************** *** 77,83 **** (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning ! and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of --- 86,92 ---- (bibtex-start-of-text-in-string, bibtex-end-of-text-in-string) (bibtex-end-of-string, bibtex-type-in-head): Use defsubst. (bibtex-skip-to-valid-entry): Return buffer position of beginning ! and ending of entry. Update for changes of bibtex-search-entry. Simplify. (bibtex-map-entries): FUN is called with three arguments. (bibtex-search-entry): Return a cons pair with buffer positions of *************** *** 103,127 **** (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. ! (bibtex-count-entries, bibtex-validate, bibtex-reformat): Update ! for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. ! (bibtex-find-crossref): Turned into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. ! (bibtex-fill-field): New command. Bound to ! fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds ! (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries. 2003-07-05 John Paul Wallington ! * cus-theme.el (customize-create-theme): Call `customize-create-theme' in Reset widget's notify function. * ibuffer.el (ibuffer-backward-line, ibuffer-forward-line) --- 112,135 ---- (bibtex-make-field): Fix docstring. Simplify. (bibtex-beginning-of-entry): Always return new position of point. (bibtex-end-of-entry): Rearrange cond clauses. ! (bibtex-count-entries, bibtex-validate, bibtex-reformat): ! Update for changes of bibtex-map-entries. (bibtex-ispell-abstract): Do not move point. (bibtex-entry-index): Use downcase. Simplify. (bibtex-lessp): Handle catch-all. ! (bibtex-find-crossref): Turn into a command. (bibtex-find-entry): Simplify. Use bibtex-read-key. Fix regexp. (bibtex-clean-entry): Use bibtex-read-key. Handle string and preamble entries. (bibtex-fill-field-bounds): New function. ! (bibtex-fill-field): New command. Bound to fill-paragraph-function. (bibtex-fill-entry): Use bibtex-fill-field-bounds ! (bibtex-String): Use bibtex-strings. Always obey bibtex-sort-ignore-string-entries. 2003-07-05 John Paul Wallington ! * cus-theme.el (customize-create-theme): Call `customize-create-theme' in Reset widget's notify function. * ibuffer.el (ibuffer-backward-line, ibuffer-forward-line) From MAILER-DAEMON Mon Jul 07 16:43:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zcpa-00038C-Nh for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:43:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZcpZ-00037P-BI for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:43:25 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZcpX-00036V-DS for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:43:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZcpX-00036J-4R for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:43:23 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZcoW-0003pX-28 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:42:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:42:20 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 20:43:25 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3303 emacs/src/ChangeLog:1.3304 *** emacs/src/ChangeLog:1.3303 Sun Jul 6 21:46:10 2003 --- emacs/src/ChangeLog Mon Jul 7 16:42:18 2003 *************** *** 1,3 **** --- 1,9 ---- + 2003-07-07 Richard M. Stallman + + * xdisp.c (reseat_1): Set it->area to TEXT_AREA. + + * alloc.c (Fgarbage_collect): Doc fix. + 2003-07-07 Nozomu Ando (tiny change) * buffer.c (Fkill_buffer): Clear charpos cache if necessary. From MAILER-DAEMON Mon Jul 07 16:54:08 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zczw-0005fk-4A for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:54:08 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zczt-0005eS-MS for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:54:05 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zcz9-0005TJ-Cu for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:53:19 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZcvS-0004jK-6G for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:49:30 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZcuR-000415-02 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:48:27 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:48:27 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/files.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 20:54:06 -0000 Index: emacs/lispref/files.texi diff -c emacs/lispref/files.texi:1.51 emacs/lispref/files.texi:1.52 *** emacs/lispref/files.texi:1.51 Tue Jun 24 14:16:37 2003 --- emacs/lispref/files.texi Mon Jul 7 16:48:26 2003 *************** *** 1809,1822 **** @defun substitute-in-file-name filename This function replaces environment variables references in ! @var{filename} with the environment variable values. Following standard ! Unix shell syntax, @samp{$} is the prefix to substitute an environment ! variable value. The environment variable name is the series of alphanumeric characters (including underscores) that follow the @samp{$}. If the character following the @samp{$} is a @samp{@{}, then the variable name is everything up to the matching @samp{@}}. @c Wordy to avoid overfull hbox. --rjc 15mar92 Here we assume that the environment variable @code{HOME}, which holds --- 1809,1833 ---- @defun substitute-in-file-name filename This function replaces environment variables references in ! @var{filename} with the environment variable values. Following ! standard Unix shell syntax, @samp{$} is the prefix to substitute an ! environment variable value. If the input contains @samp{$$}, that is ! converted to @samp{$}; this gives the user a way to ``quote'' a ! @samp{$}. The environment variable name is the series of alphanumeric characters (including underscores) that follow the @samp{$}. If the character following the @samp{$} is a @samp{@{}, then the variable name is everything up to the matching @samp{@}}. + + Calling @code{substitute-in-file-name} on output produced by + @code{substitute-in-file-name} tends to give incorrect results. For + instance, use of @samp{$$} to quote a single @samp{$} won't work + properly, and @samp{$} in an environment variable's value could lead + to repeated substitution. Therefore, programs that call this function + and put the output where it will be passed to this function need to + double all @samp{$} characters to prevent subsequent incorrect + results. @c Wordy to avoid overfull hbox. --rjc 15mar92 Here we assume that the environment variable @code{HOME}, which holds From MAILER-DAEMON Mon Jul 07 16:59:06 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zd3f-0006pL-PI for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:57:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zcsu-00049S-8h for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:46:52 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zcqc-0003dw-0n for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:44:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zcmy-0002LQ-CL for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:40:44 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zclx-0003jo-9n for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:39:41 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:39:41 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 20:57:58 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.311 emacs/src/alloc.c:1.312 *** emacs/src/alloc.c:1.311 Sun Jul 6 19:12:21 2003 --- emacs/src/alloc.c Mon Jul 7 16:39:40 2003 *************** *** 4255,4267 **** DEFUN ("garbage-collect", Fgarbage_collect, Sgarbage_collect, 0, 0, "", doc: /* Reclaim storage for Lisp objects no longer needed. ! Returns info on amount of space in use: ((USED-CONSES . FREE-CONSES) (USED-SYMS . FREE-SYMS) (USED-MARKERS . FREE-MARKERS) USED-STRING-CHARS USED-VECTOR-SLOTS (USED-FLOATS . FREE-FLOATS) (USED-INTERVALS . FREE-INTERVALS) (USED-STRINGS . FREE-STRINGS)) ! Garbage collection happens automatically if you cons more than ! `gc-cons-threshold' bytes of Lisp data since previous garbage collection. */) () { register struct specbinding *bind; --- 4255,4269 ---- DEFUN ("garbage-collect", Fgarbage_collect, Sgarbage_collect, 0, 0, "", doc: /* Reclaim storage for Lisp objects no longer needed. ! Garbage collection happens automatically if you cons more than ! `gc-cons-threshold' bytes of Lisp data since previous garbage collection. ! `garbage-collect' normally returns a list with info on amount of space in use: ((USED-CONSES . FREE-CONSES) (USED-SYMS . FREE-SYMS) (USED-MARKERS . FREE-MARKERS) USED-STRING-CHARS USED-VECTOR-SLOTS (USED-FLOATS . FREE-FLOATS) (USED-INTERVALS . FREE-INTERVALS) (USED-STRINGS . FREE-STRINGS)) ! However, if there was overflow in pure space, `garbage-collect' ! returns nil, because real GC can't be done. */) () { register struct specbinding *bind; From MAILER-DAEMON Mon Jul 07 16:59:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zd4n-0007Di-2B for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:59:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zd0X-0005tA-Uf for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:54:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zcxe-0005Ds-35 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:51:46 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zcw2-0004yM-8R for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:50:06 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zcv0-000421-MC for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:49:02 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:49:02 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/modes.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 20:59:07 -0000 Index: emacs/lispref/modes.texi diff -c emacs/lispref/modes.texi:1.55 emacs/lispref/modes.texi:1.56 *** emacs/lispref/modes.texi:1.55 Mon Jun 30 06:41:29 2003 --- emacs/lispref/modes.texi Mon Jul 7 16:49:02 2003 *************** *** 864,874 **** Its job is to enable and disable the mode by setting the variable. The command should accept one optional argument. If the argument is ! @code{nil}, it should toggle the mode (turn it on if it is off, and off ! if it is on). Otherwise, it should turn the mode on if the argument is ! a positive integer, a symbol other than @code{nil} or @code{-}, or a ! list whose @sc{car} is such an integer or symbol; it should turn the ! mode off otherwise. Here is an example taken from the definition of @code{transient-mark-mode}. It shows the use of @code{transient-mark-mode} as a variable that enables or --- 864,875 ---- Its job is to enable and disable the mode by setting the variable. The command should accept one optional argument. If the argument is ! @code{nil}, it should toggle the mode (turn it on if it is off, and ! off if it is on). It should turn the mode on if the argument is a ! positive integer, the symbol @code{t}, or a list whose @sc{car} is one ! of those. It should turn the mode off if the argument is a negative ! integer or zero, the symbol @code{-}, or a list whose @sc{car} is one ! of those. The meaning of other arguments is not specified. Here is an example taken from the definition of @code{transient-mark-mode}. It shows the use of @code{transient-mark-mode} as a variable that enables or From MAILER-DAEMON Mon Jul 07 17:03:27 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zd3S-0006kC-OD for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:57:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zd1S-0006Fz-7C for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:55:42 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd0T-0005rp-L8 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:54:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zcwe-00059E-A4 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:50:44 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zcvc-00042b-Jb for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:49:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:49:40 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 20:57:44 -0000 Index: emacs/lispref/ChangeLog diff -c emacs/lispref/ChangeLog:1.77 emacs/lispref/ChangeLog:1.78 *** emacs/lispref/ChangeLog:1.77 Sat Jul 5 21:31:52 2003 --- emacs/lispref/ChangeLog Mon Jul 7 16:49:40 2003 *************** *** 1,7 **** --- 1,27 ---- + 2003-07-07 Richard M. Stallman + + * modes.texi (Minor Mode Conventions): Specify only some kinds + of list values as args to minor modes. + + * files.texi (File Name Expansion): Warn about iterative use + of substitute-in-file-name. + + * advice.texi (Activation of Advice): Clean up previous change. + 2003-07-06 Markus Rost * advice.texi (Activation of Advice): Note that ad-start-advice is turned on by default. + + 2003-06-30 Richard M. Stallman + + * text.texi (Buffer Contents): Document current-word. + (Change Hooks): Not called for *Messages*. + + * functions.texi (Defining Functions): Explain about redefining + primitives. + (Function Safety): Renamed. Minor changes. + Comment out the detailed criteria for what is safe. 2003-06-22 Andreas Schwab From MAILER-DAEMON Mon Jul 07 17:03:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zd8A-0008Sy-1L for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:02:38 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zd7M-00087N-5l for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:01:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd5t-0007km-Cx for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:00:27 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd1j-0006JZ-VZ for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:55:59 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd0i-0004Cx-HX for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:54:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:54:56 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/net/browse-url.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:02:36 -0000 Index: emacs/lisp/net/browse-url.el diff -c emacs/lisp/net/browse-url.el:1.29 emacs/lisp/net/browse-url.el:1.30 *** emacs/lisp/net/browse-url.el:1.29 Wed May 28 07:24:00 2003 --- emacs/lisp/net/browse-url.el Mon Jul 7 16:54:56 2003 *************** *** 39,44 **** --- 39,45 ---- ;; Function Browser Earliest version ;; browse-url-mozilla Mozilla Don't know ;; browse-url-galeon Galeon Don't know + ;; browse-url-epiphany Epiphany Don't know ;; browse-url-netscape Netscape 1.1b1 ;; browse-url-mosaic XMosaic/mMosaic <= 2.4 ;; browse-url-cci XMosaic 2.5 *************** *** 248,253 **** --- 249,255 ---- :value browse-url-w3-gnudoit) (function-item :tag "Mozilla" :value browse-url-mozilla) (function-item :tag "Galeon" :value browse-url-galeon) + (function-item :tag "Epiphany" :value browse-url-epiphany) (function-item :tag "Netscape" :value browse-url-netscape) (function-item :tag "Mosaic" :value browse-url-mosaic) (function-item :tag "Mosaic using CCI" :value browse-url-cci) *************** *** 338,343 **** --- 340,362 ---- :type '(repeat (string :tag "Argument")) :group 'browse-url) + (defcustom browse-url-epiphany-program "epiphany" + "*The name by which to invoke Epiphany." + :type 'string + :group 'browse-url) + + (defcustom browse-url-epiphany-arguments nil + "*A list of strings to pass to Epiphany as arguments." + :type '(repeat (string :tag "Argument")) + :group 'browse-url) + + (defcustom browse-url-epiphany-startup-arguments browse-url-epiphany-arguments + "*A list of strings to pass to Epiphany when it starts up. + Defaults to the value of `browse-url-epiphany-arguments' at the time + `browse-url' is loaded." + :type '(repeat (string :tag "Argument")) + :group 'browse-url) + (defcustom browse-url-mozilla-new-window-is-tab nil "*Whether to open up new windows in a tab or a new window. If non-nil, then open the URL in a new tab rather than a new window if *************** *** 352,357 **** --- 371,383 ---- :type 'boolean :group 'browse-url) + (defcustom browse-url-epiphany-new-window-is-tab nil + "*Whether to open up new windows in a tab or a new window. + If non-nil, then open the URL in a new tab rather than a new window if + `browse-url-epiphany' is asked to open it in a new window." + :type 'boolean + :group 'browse-url) + (defcustom browse-url-new-window-flag nil "*If non-nil, always open a new browser window with appropriate browsers. Passing an interactive argument to \\[browse-url], or specific browser *************** *** 922,928 **** (format "%%%x" (string-to-char (match-string 0 url))) t t url))) (let* ((process-environment (browse-url-process-environment)) (process (apply 'start-process ! (concat "galeon " url) nil browse-url-galeon-program (append browse-url-galeon-arguments --- 948,955 ---- (format "%%%x" (string-to-char (match-string 0 url))) t t url))) (let* ((process-environment (browse-url-process-environment)) (process (apply 'start-process ! (concat "galeon " url) ! nil browse-url-galeon-program (append browse-url-galeon-arguments *************** *** 945,950 **** --- 972,1026 ---- (apply 'start-process (concat "galeon " url) nil browse-url-galeon-program (append browse-url-galeon-startup-arguments (list url)))))) + + (defun browse-url-epiphany (url &optional new-window) + "Ask the Epiphany WWW browser to load URL. + Default to the URL around or before point. The strings in variable + `browse-url-galeon-arguments' are also passed to Epiphany. + + When called interactively, if variable `browse-url-new-window-flag' is + non-nil, load the document in a new Epiphany window, otherwise use a + random existing one. A non-nil interactive prefix argument reverses + the effect of `browse-url-new-window-flag'. + + If `browse-url-galeon-new-window-is-tab' is non-nil, then whenever a + document would otherwise be loaded in a new window, it is loaded in a + new tab in an existing window instead. + + When called non-interactively, optional second argument NEW-WINDOW is + used instead of `browse-url-new-window-flag'." + (interactive (browse-url-interactive-arg "URL: ")) + ;; URL encode any `confusing' characters in the URL. This needs to + ;; include at least commas; presumably also close parens. + (while (string-match "[,)]" url) + (setq url (replace-match + (format "%%%x" (string-to-char (match-string 0 url))) t t url))) + (let* ((process-environment (browse-url-process-environment)) + (process (apply 'start-process + (concat "epiphany " url) + nil + browse-url-epiphany-program + (append + browse-url-epiphany-arguments + (if (browse-url-maybe-new-window new-window) + (if browse-url-epiphany-new-window-is-tab + '("--new-tab") + '("--new-window" "--noraise")) + '("--existing")) + (list url))))) + (set-process-sentinel process + `(lambda (process change) + (browse-url-epiphany-sentinel process ,url))))) + + (defun browse-url-epiphany-sentinel (process url) + "Handle a change to the process communicating with Epiphany." + (or (eq (process-exit-status process) 0) + (let* ((process-environment (browse-url-process-environment))) + ;; Epiphany is not running - start it + (message "Starting Epiphany...") + (apply 'start-process (concat "epiphany " url) nil + browse-url-epiphany-program + (append browse-url-epiphany-startup-arguments (list url)))))) ;; GNOME means of invoking either Mozilla or Netrape. (defvar browse-url-gnome-moz-program "gnome-moz-remote") From MAILER-DAEMON Mon Jul 07 17:09:30 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdCd-0001DJ-1e for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:07:15 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdCb-0001CV-2Q for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:07:13 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd2E-0006Ms-At for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:56:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZcoD-0002dG-M7 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:42:01 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZcnC-0003ng-IM for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:40:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:40:58 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:07:13 -0000 Index: emacs/src/xdisp.c diff -c emacs/src/xdisp.c:1.840 emacs/src/xdisp.c:1.841 *** emacs/src/xdisp.c:1.840 Thu Jun 26 22:24:29 2003 --- emacs/src/xdisp.c Mon Jul 7 16:40:57 2003 *************** *** 4536,4541 **** --- 4536,4548 ---- IT_STRING_BYTEPOS (*it) = -1; it->string = Qnil; it->method = next_element_from_buffer; + /* RMS: I added this to fix a bug in move_it_vertically_backward + where it->area continued to relate to the starting point + for the backward motion. Bug report from + Nick Roberts on 19 May 2003. + However, I am not sure whether reseat still does the right thing + in general after this change. */ + it->area = TEXT_AREA; it->multibyte_p = !NILP (current_buffer->enable_multibyte_characters); it->sp = 0; it->face_before_selective_p = 0; From MAILER-DAEMON Mon Jul 07 17:11:47 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zd8z-0000IH-Vb for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:03:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zd3q-0006s8-A7 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:58:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZcvK-0004ge-MV for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:49:23 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zcpj-0003Bb-Cw for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:43:35 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zcoi-0003q5-BT for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:42:32 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:42:32 -0400 Subject: [Emacs-diffs] Changes to emacs/man/help.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:03:28 -0000 Index: emacs/man/help.texi diff -c emacs/man/help.texi:1.23 emacs/man/help.texi:1.24 *** emacs/man/help.texi:1.23 Sun Jul 7 19:46:55 2002 --- emacs/man/help.texi Mon Jul 7 16:42:32 2003 *************** *** 341,382 **** libraries by topic keywords. Here is a partial list of keywords you can use: ! @display ! abbrev --- abbreviation handling, typing shortcuts, macros. ! bib --- support for the bibliography processor @code{bib}. ! c --- C and C++ language support. ! calendar --- calendar and time management support. ! comm --- communications, networking, remote access to files. ! data --- support for editing files of data. ! docs --- support for Emacs documentation. ! emulations --- emulations of other editors. ! extensions --- Emacs Lisp language extensions. ! faces --- support for using faces (fonts and colors; @pxref{Faces}). ! frames --- support for Emacs frames and window systems. ! games --- games, jokes and amusements. ! hardware --- support for interfacing with exotic hardware. ! help --- support for on-line help systems. ! hypermedia --- support for links within text, or other media types. ! i18n --- internationalization and alternate character-set support. ! internal --- code for Emacs internals, build process, defaults. ! languages --- specialized modes for editing programming languages. ! lisp --- support for using Lisp (including Emacs Lisp). ! local --- libraries local to your site. ! maint --- maintenance aids for the Emacs development group. ! mail --- modes for electronic-mail handling. ! matching --- searching and matching. ! news --- support for netnews reading and posting. ! non-text --- support for editing files that are not ordinary text. ! oop --- support for object-oriented programming. ! outlines --- hierarchical outlining. ! processes --- process, subshell, compilation, and job control support. ! terminals --- support for terminal types. ! tex --- support for the @TeX{} formatter. ! tools --- programming tools. ! unix --- front-ends/assistants for, or emulators of, system features. ! vms --- support code for VMS. ! wp --- word processing. ! @end display @node Language Help @section Help for International Language Support --- 341,382 ---- libraries by topic keywords. Here is a partial list of keywords you can use: ! @multitable {emulations} {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa} ! @item abbrev@tab abbreviation handling, typing shortcuts, macros. ! @item bib@tab support for the bibliography processor @code{bib}. ! @item c@tab C and C++ language support. ! @item calendar@tab calendar and time management support. ! @item comm@tab communications, networking, remote access to files. ! @item data@tab support for editing files of data. ! @item docs@tab support for Emacs documentation. ! @item emulations@tab emulations of other editors. ! @item extensions@tab Emacs Lisp language extensions. ! @item faces@tab support for using faces (fonts and colors; @pxref{Faces}). ! @item frames@tab support for Emacs frames and window systems. ! @item games@tab games, jokes and amusements. ! @item hardware@tab support for interfacing with exotic hardware. ! @item help@tab support for on-line help systems. ! @item hypermedia@tab support for links within text, or other media types. ! @item i18n@tab internationalization and alternate character-set support. ! @item internal@tab code for Emacs internals, build process, defaults. ! @item languages@tab specialized modes for editing programming languages. ! @item lisp@tab support for using Lisp (including Emacs Lisp). ! @item local@tab libraries local to your site. ! @item maint@tab maintenance aids for the Emacs development group. ! @item mail@tab modes for electronic-mail handling. ! @item matching@tab searching and matching. ! @item news@tab support for netnews reading and posting. ! @item non-text@tab support for editing files that are not ordinary text. ! @item oop@tab support for object-oriented programming. ! @item outlines@tab hierarchical outlining. ! @item processes@tab process, subshell, compilation, and job control support. ! @item terminals@tab support for terminal types. ! @item tex@tab support for the @TeX{} formatter. ! @item tools@tab programming tools. ! @item unix@tab front-ends/assistants for, or emulators of, system features. ! @item vms@tab support code for VMS. ! @item wp@tab word processing. ! @end multitable @node Language Help @section Help for International Language Support From MAILER-DAEMON Mon Jul 07 17:12:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdCo-0001Hu-Lf for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:07:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zd9X-0000X1-Q2 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:04:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd9E-0000Oq-QZ for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:03:45 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd80-0008O5-9Q for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:02:28 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd6z-0004Rt-0a for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:01:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:01:25 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:07:25 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.830 emacs/etc/NEWS:1.831 *** emacs/etc/NEWS:1.830 Sat Jul 5 08:42:43 2003 --- emacs/etc/NEWS Mon Jul 7 17:01:23 2003 *************** *** 89,95 **** * Changes in Emacs 21.4 ! ** New minor mode `vis-mode' toggles invisibility in the current buffer. When enabled, it makes all invisible text visible. When disabled, it restores the previous value of `buffer-invisibility-spec'. --- 89,100 ---- * Changes in Emacs 21.4 ! +++ ! ** 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. ! ! ** New minor mode, Visible mode, toggles invisibility in the current buffer. When enabled, it makes all invisible text visible. When disabled, it restores the previous value of `buffer-invisibility-spec'. *************** *** 1593,1598 **** --- 1598,1611 ---- * Lisp Changes in Emacs 21.4 + ** The new function `window-inside-edges' returns the edges of the + actual text portion of the window, not including the scroll bar or + divider line, the fringes, the display margins, the header line and + the mode line. + + ** The new functions `window-pixel-edges' and `window-inside-pixel-edges' + return window edges in units of pixels, rather than columns and lines. + ** The kill-buffer-hook is now permanent-local. ** The `local-map' property now also works at the ends of overlays and *************** *** 1613,1618 **** --- 1626,1655 ---- parameter of the `checkout' backend function. Old code still works thanks to a default `find-version' behavior that uses the old `destfile' parameter. + + ** The new macro dynamic-completion-table supports using functions + as a dynamic completion table. + + (dynamic-completion-table FUN) + + FUN is called with one argument, the string for which completion is required, + and it should return an alist containing all the intended possible + completions. This alist may be a full list of possible completions so that FUN + can ignore the value of its argument. If completion is performed in the + minibuffer, FUN will be called in the buffer from which the minibuffer was + entered. dynamic-completion-table then computes the completion. + + ** The new macro lazy-completion-table initializes a variable + as a lazy completion table. + + (lazy-completion-table VAR FUN &rest ARGS) + + If the completion table VAR is used for the first time (e.g., by passing VAR + as an argument to `try-completion'), the function FUN is called with arguments + ARGS. FUN must return the completion table that will be stored in VAR. If + completion is requested in the minibuffer, FUN will be called in the buffer + from which the minibuffer was entered. The return value of + `lazy-completion-table' must be used to initialize the value of VAR. ** `minor-mode-list' now holds a list of minor mode commands. From MAILER-DAEMON Mon Jul 07 17:13:03 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdDp-0001dq-47 for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:08:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdDF-0001Qv-Tq for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:07:53 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZdAG-0000hv-6h for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:04:49 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZczL-0005Vf-Qd for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:53:31 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZcyK-00048T-46 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:52:28 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:52:28 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/tex-mode.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:08:27 -0000 Index: emacs/lisp/textmodes/tex-mode.el diff -c emacs/lisp/textmodes/tex-mode.el:1.136 emacs/lisp/textmodes/tex-mode.el:1.137 *** emacs/lisp/textmodes/tex-mode.el:1.136 Sat Jun 14 15:56:50 2003 --- emacs/lisp/textmodes/tex-mode.el Mon Jul 7 16:52:27 2003 *************** *** 1651,1658 **** "Return the relative name of the main file." (let* ((file (or tex-main-file ;; Compatibility with AUCTeX. ! (and (boundp 'TeX-master) (stringp TeX-master) ! (set (make-local-variable 'tex-main-file) TeX-master)) ;; Try to guess the main file. (if (not buffer-file-name) (error "Buffer is not associated with any file") --- 1651,1660 ---- "Return the relative name of the main file." (let* ((file (or tex-main-file ;; Compatibility with AUCTeX. ! (with-no-warnings ! (when (and (boundp 'TeX-master) (stringp TeX-master)) ! (make-local-variable 'tex-main-file) ! (setq tex-main-file TeX-master))) ;; Try to guess the main file. (if (not buffer-file-name) (error "Buffer is not associated with any file") From MAILER-DAEMON Mon Jul 07 17:13:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdI8-00031R-Ak for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:12:56 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdHv-0002sf-Dp for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:12:43 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd6o-0007tw-Lm for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:01:15 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd2Q-0006Nx-CI for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:56:42 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd1O-0004GM-Vs for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:55:38 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:55:38 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/net/ange-ftp.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:12:55 -0000 Index: emacs/lisp/net/ange-ftp.el diff -c emacs/lisp/net/ange-ftp.el:1.49 emacs/lisp/net/ange-ftp.el:1.50 *** emacs/lisp/net/ange-ftp.el:1.49 Sun Apr 13 08:46:10 2003 --- emacs/lisp/net/ange-ftp.el Mon Jul 7 16:55:38 2003 *************** *** 3371,3381 **** ;; redefines both file-symlink-p and expand-file-name. (setq file (ange-ftp-expand-file-name file)) (if (ange-ftp-ftp-name file) ! (let ((file-ent ! (gethash ! (ange-ftp-get-file-part file) ! (ange-ftp-get-files (file-name-directory file))))) ! (and (stringp file-ent) file-ent)) (ange-ftp-real-file-symlink-p file))) (defun ange-ftp-file-exists-p (name) --- 3371,3387 ---- ;; redefines both file-symlink-p and expand-file-name. (setq file (ange-ftp-expand-file-name file)) (if (ange-ftp-ftp-name file) ! (condition-case nil ! (let ((file-ent ! (gethash ! (ange-ftp-get-file-part file) ! (ange-ftp-get-files (file-name-directory file))))) ! (and (stringp file-ent) file-ent)) ! ;; If we can't read the parent directory, just assume ! ;; this file is not a symlink. ! ;; This makes it possible to access a directory that ! ;; whose parent is not readable. ! (file-error nil)) (ange-ftp-real-file-symlink-p file))) (defun ange-ftp-file-exists-p (name) From MAILER-DAEMON Mon Jul 07 17:16:36 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdJ8-0003cF-J2 for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:13:58 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdGj-0002NF-1K for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:11:29 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd9Y-0000XS-CJ for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:04:06 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd8t-0000Dg-Uk for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:03:23 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd7r-0004TQ-Bu for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:02:19 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:02:19 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/isearch.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:13:57 -0000 Index: emacs/lisp/isearch.el diff -c emacs/lisp/isearch.el:1.220 emacs/lisp/isearch.el:1.221 *** emacs/lisp/isearch.el:1.220 Sat May 3 09:49:47 2003 --- emacs/lisp/isearch.el Mon Jul 7 17:02:18 2003 *************** *** 151,157 **** :type 'boolean :group 'isearch) ! (defcustom search-whitespace-regexp "\\s-+" "*If non-nil, regular expression to match a sequence of whitespace chars. This applies to regular expression incremental search. You might want to use something like \"[ \\t\\r\\n]+\" instead. --- 151,157 ---- :type 'boolean :group 'isearch) ! (defcustom search-whitespace-regexp "\\(?:\\s-+\\)" "*If non-nil, regular expression to match a sequence of whitespace chars. This applies to regular expression incremental search. You might want to use something like \"[ \\t\\r\\n]+\" instead. From MAILER-DAEMON Mon Jul 07 17:17:04 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdM8-0004A3-QO for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:17:04 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdM6-00049D-M1 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:17:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd8D-0008V0-HF for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:02:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd0B-0005ld-EW for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:54:23 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZczA-0004AU-1K for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:53:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:53:20 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/compile.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:17:03 -0000 Index: emacs/lisp/progmodes/compile.el diff -c emacs/lisp/progmodes/compile.el:1.274 emacs/lisp/progmodes/compile.el:1.275 *** emacs/lisp/progmodes/compile.el:1.274 Wed Jun 4 05:31:38 2003 --- emacs/lisp/progmodes/compile.el Mon Jul 7 16:53:19 2003 *************** *** 50,56 **** integer) :group 'compilation) ! (defcustom compile-auto-highlight nil "*Specify how many compiler errors to highlight (and parse) initially. \(Highlighting applies to an error message when the mouse is over it.) If this is a number N, all compiler error messages in the first N lines --- 50,56 ---- integer) :group 'compilation) ! (defcustom compile-auto-highlight t "*Specify how many compiler errors to highlight (and parse) initially. \(Highlighting applies to an error message when the mouse is over it.) If this is a number N, all compiler error messages in the first N lines *************** *** 644,652 **** Interactively, prompts for the command if `compilation-read-command' is non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. ! To run more than one compilation at once, start one and rename the ! \`*compilation*' buffer to some other name with \\[rename-buffer]. ! Then start the next one. The name used for the buffer is actually whatever is returned by the function in `compilation-buffer-name-function', so you can set that --- 644,654 ---- Interactively, prompts for the command if `compilation-read-command' is non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. ! To run more than one compilation at once, start one and rename ! the \`*compilation*' buffer to some other name with ! \\[rename-buffer]. Then start the next one. On most systems, ! termination of the main compilation process kills its ! subprocesses. The name used for the buffer is actually whatever is returned by the function in `compilation-buffer-name-function', so you can set that *************** *** 1408,1416 **** (error "Moved back past first error") (nth (+ i n) compilation-old-error-list))) (save-excursion ! (while (> n 0) ;; Discard the current error and any previous. ! (while (>= (point) (car (car errors))) (setq errors (cdr errors))) ;; Now (car errors) is the next error. ;; If we want to move down more errors, --- 1410,1418 ---- (error "Moved back past first error") (nth (+ i n) compilation-old-error-list))) (save-excursion ! (while (and (> n 0) errors) ;; Discard the current error and any previous. ! (while (and errors (>= (point) (car (car errors)))) (setq errors (cdr errors))) ;; Now (car errors) is the next error. ;; If we want to move down more errors, From MAILER-DAEMON Mon Jul 07 17:25:08 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdNJ-0004Xm-7X for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:18:17 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zd5H-0007Ps-5Y for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:59:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZcvP-0004i3-D2 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:49:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zcqj-0003j5-4Q for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:44:37 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zcph-0003rY-Of for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:43:33 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:43:33 -0400 Subject: [Emacs-diffs] Changes to emacs/man/building.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:18:15 -0000 Index: emacs/man/building.texi diff -c emacs/man/building.texi:1.30 emacs/man/building.texi:1.31 *** emacs/man/building.texi:1.30 Wed May 28 07:42:35 2003 --- emacs/man/building.texi Mon Jul 7 16:43:33 2003 *************** *** 102,123 **** follow output as it comes in. @findex kill-compilation ! To kill the compilation process, do @kbd{M-x kill-compilation}. When ! the compiler process terminates, the mode line of the ! @samp{*compilation*} buffer changes to say @samp{signal} instead of ! @samp{run}. Starting a new compilation also kills any running ! compilation, as only one can exist at any time. However, @kbd{M-x ! compile} asks for confirmation before actually killing a compilation ! that is running. @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}. ! Emacs does not expect a compiler to launch asynchronous subprocesses; if it does, and they keep running after the main ! compiler process has terminated, their output may not arrive in Emacs. @node Grep Searching @section Searching with Grep under Emacs --- 102,132 ---- follow output as it comes in. @findex kill-compilation ! When the compiler process terminates, for whatever reason, the mode ! line of the @samp{*compilation*} buffer changes to say @samp{signal} ! instead of @samp{run}. Starting a new compilation also kills any ! running compilation, as only one can exist at any time. However, ! @kbd{M-x compile} asks for confirmation before actually killing a ! compilation that is running. You can also kill the compilation ! process with @kbd{M-x kill-compilation}. @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}. ! Emacs does not expect a compiler process to launch asynchronous subprocesses; if it does, and they keep running after the main ! compiler process has terminated, Emacs may kill them or their output ! may not arrive in Emacs. To avoid this problem, make the main process ! wait for its subprocesses to finish. In a shell script, you can do this ! using @samp{$!} and @samp{wait}, like this: ! ! @example ! (sleep 10; echo 2nd)& pid=$! # @r{Record pid of subprocess} ! echo first message ! wait $pid # @r{Wait for subprocess} ! @end example @node Grep Searching @section Searching with Grep under Emacs From MAILER-DAEMON Mon Jul 07 17:29:04 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdUA-0006BW-9Z for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:25:22 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdOe-0005EU-Tk for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:19:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZdDx-0001gu-NH for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:08:38 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZdAy-0000wR-A5 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:05:32 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd9x-0004W3-0w for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:04:29 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:04:29 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/desktop.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:25:20 -0000 Index: emacs/lisp/desktop.el diff -c emacs/lisp/desktop.el:1.58 emacs/lisp/desktop.el:1.59 *** emacs/lisp/desktop.el:1.58 Wed Jun 4 18:19:03 2003 --- emacs/lisp/desktop.el Mon Jul 7 17:04:28 2003 *************** *** 795,801 **** (second (nth 1 desktop-buffer-misc))) (when (and first second) (require 'info) ! (Info-find-node first second) (current-buffer)))))) ;; ---------------------------------------------------------------------------- --- 795,802 ---- (second (nth 1 desktop-buffer-misc))) (when (and first second) (require 'info) ! (with-no-warnings ! (Info-find-node first second)) (current-buffer)))))) ;; ---------------------------------------------------------------------------- *************** *** 814,820 **** ;; ---------------------------------------------------------------------------- (defun desktop-buffer-mh () "Load a folder in the mh system." (if (eq 'mh-folder-mode desktop-buffer-major-mode) ! (progn (mh-find-path) (mh-visit-folder desktop-buffer-name) (current-buffer)))) --- 815,821 ---- ;; ---------------------------------------------------------------------------- (defun desktop-buffer-mh () "Load a folder in the mh system." (if (eq 'mh-folder-mode desktop-buffer-major-mode) ! (with-no-warnings (mh-find-path) (mh-visit-folder desktop-buffer-name) (current-buffer)))) From MAILER-DAEMON Mon Jul 07 17:29:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdEW-0001wL-Di for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:09:12 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zd5I-0007Qk-Td for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:59:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZczP-0005WR-9L for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:53:35 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZcrS-00040R-Nx for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:45:22 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZcqR-0003sU-LG for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:44:19 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:44:19 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:09:11 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.188 emacs/man/ChangeLog:1.189 *** emacs/man/ChangeLog:1.188 Fri Jul 4 17:04:47 2003 --- emacs/man/ChangeLog Mon Jul 7 16:44:19 2003 *************** *** 1,3 **** --- 1,13 ---- + 2003-07-07 Richard M. Stallman + + * display.texi (Font Lock): Add xref for format info on + font-lock-remove-keywords. + + * building.texi (Compilation): Document what happens with asynch + children of compiler process. + + * help.texi (Library Keywords): Use @multitable. + 2003-07-04 Luc Teirlinck * info.texi (Top, Help-Small-Screen): Remove accidentally added From MAILER-DAEMON Mon Jul 07 17:37:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdZF-0007TK-3z for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:30:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdOV-0005Cc-3b for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:19:31 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd8D-0008VB-Rn for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:02:43 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd4Y-00077C-6N for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:58:54 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd3W-0004KG-MT for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:57:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:57:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/debug.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:30:35 -0000 Index: emacs/lisp/emacs-lisp/debug.el diff -c emacs/lisp/emacs-lisp/debug.el:1.61 emacs/lisp/emacs-lisp/debug.el:1.62 *** emacs/lisp/emacs-lisp/debug.el:1.61 Mon Jun 16 14:54:23 2003 --- emacs/lisp/emacs-lisp/debug.el Mon Jul 7 16:57:50 2003 *************** *** 128,134 **** (debugger-outer-track-mouse track-mouse) (debugger-outer-last-command last-command) (debugger-outer-this-command this-command) ! (debugger-outer-unread-command-char unread-command-char) (debugger-outer-unread-command-events unread-command-events) (debugger-outer-unread-post-input-method-events unread-post-input-method-events) --- 128,135 ---- (debugger-outer-track-mouse track-mouse) (debugger-outer-last-command last-command) (debugger-outer-this-command this-command) ! (debugger-outer-unread-command-char ! (with-no-warnings unread-command-char)) (debugger-outer-unread-command-events unread-command-events) (debugger-outer-unread-post-input-method-events unread-post-input-method-events) *************** *** 145,151 **** (setq overriding-terminal-local-map nil) ;; Don't let these magic variables affect the debugger itself. (let ((last-command nil) this-command track-mouse ! (unread-command-char -1) unread-command-events unread-post-input-method-events last-input-event last-command-event last-nonmenu-event last-event-frame --- 146,152 ---- (setq overriding-terminal-local-map nil) ;; Don't let these magic variables affect the debugger itself. (let ((last-command nil) this-command track-mouse ! unread-command-events unread-post-input-method-events last-input-event last-command-event last-nonmenu-event last-event-frame *************** *** 161,166 **** --- 162,169 ---- (unwind-protect (save-excursion (save-window-excursion + (with-no-warnings + (setq unread-command-char -1)) (pop-to-buffer debugger-buffer) (debugger-mode) (debugger-setup-buffer debugger-args) *************** *** 214,220 **** (setq track-mouse debugger-outer-track-mouse) (setq last-command debugger-outer-last-command) (setq this-command debugger-outer-this-command) ! (setq unread-command-char debugger-outer-unread-command-char) (setq unread-command-events debugger-outer-unread-command-events) (setq unread-post-input-method-events debugger-outer-unread-post-input-method-events) --- 217,224 ---- (setq track-mouse debugger-outer-track-mouse) (setq last-command debugger-outer-last-command) (setq this-command debugger-outer-this-command) ! (with-no-warnings ! (setq unread-command-char debugger-outer-unread-command-char)) (setq unread-command-events debugger-outer-unread-command-events) (setq unread-post-input-method-events debugger-outer-unread-post-input-method-events) *************** *** 487,493 **** (track-mouse debugger-outer-track-mouse) (last-command debugger-outer-last-command) (this-command debugger-outer-this-command) - (unread-command-char debugger-outer-unread-command-char) (unread-command-events debugger-outer-unread-command-events) (unread-post-input-method-events debugger-outer-unread-post-input-method-events) --- 491,496 ---- *************** *** 500,506 **** (inhibit-redisplay debugger-outer-inhibit-redisplay) (cursor-in-echo-area debugger-outer-cursor-in-echo-area)) (set-match-data debugger-outer-match-data) ! (prog1 (progn ,@body) (setq debugger-outer-match-data (match-data)) (setq debugger-outer-load-read-function load-read-function) (setq debugger-outer-overriding-terminal-local-map --- 503,519 ---- (inhibit-redisplay debugger-outer-inhibit-redisplay) (cursor-in-echo-area debugger-outer-cursor-in-echo-area)) (set-match-data debugger-outer-match-data) ! (prog1 ! (let ((save-ucc (with-no-warnings unread-command-char))) ! (unwind-protect ! (progn ! (with-no-warnings ! (setq unread-command-char debugger-outer-unread-command-char)) ! (prog1 (progn ,@body) ! (with-no-warnings ! (setq debugger-outer-unread-command-char unread-command-char)))) ! (with-no-warnings ! (setq unread-command-char save-ucc)))) (setq debugger-outer-match-data (match-data)) (setq debugger-outer-load-read-function load-read-function) (setq debugger-outer-overriding-terminal-local-map *************** *** 509,515 **** (setq debugger-outer-track-mouse track-mouse) (setq debugger-outer-last-command last-command) (setq debugger-outer-this-command this-command) - (setq debugger-outer-unread-command-char unread-command-char) (setq debugger-outer-unread-command-events unread-command-events) (setq debugger-outer-unread-post-input-method-events unread-post-input-method-events) --- 522,527 ---- From MAILER-DAEMON Mon Jul 07 17:43:04 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdcD-0000DY-2k for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:33:41 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdKq-0003rr-OW for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:15:44 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd75-00082F-7G for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:01:31 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZcrN-0003xv-DR for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:45:17 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZcqM-0003sF-8w for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:44:14 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:44:14 -0400 Subject: [Emacs-diffs] Changes to emacs/man/display.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:33:39 -0000 Index: emacs/man/display.texi diff -c emacs/man/display.texi:1.68 emacs/man/display.texi:1.69 *** emacs/man/display.texi:1.68 Tue Feb 4 09:53:27 2003 --- emacs/man/display.texi Mon Jul 7 16:44:13 2003 *************** *** 315,321 **** @findex font-lock-remove-keywords To remove keywords from the font-lock highlighting patterns, use the ! function @code{font-lock-remove-keywords}. @cindex just-in-time (JIT) font-lock @cindex background syntax highlighting --- 315,322 ---- @findex font-lock-remove-keywords To remove keywords from the font-lock highlighting patterns, use the ! function @code{font-lock-remove-keywords}. @xref{Search-based ! Fontification,,elisp}, for documentation of the format of this list. @cindex just-in-time (JIT) font-lock @cindex background syntax highlighting From MAILER-DAEMON Mon Jul 07 17:49:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdF4-0002Am-9N for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:09:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdEk-00020D-Pl for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:09:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZdCC-00014w-Is for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:06:49 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZdA4-0000el-6Y for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:04:36 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd92-0004Uy-K3 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:03:32 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:03:32 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:09:38 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.365 emacs/lisp/info.el:1.366 *** emacs/lisp/info.el:1.365 Mon Jul 7 10:46:00 2003 --- emacs/lisp/info.el Mon Jul 7 17:03:32 2003 *************** *** 1327,1333 **** (when (equal regexp "") (setq regexp (car Info-search-history))) (when regexp ! (let ((found ()) (onode Info-current-node) (ofile Info-current-file) (opoint (point)) --- 1327,1333 ---- (when (equal regexp "") (setq regexp (car Info-search-history))) (when regexp ! (let (found beg-found give-up (onode Info-current-node) (ofile Info-current-file) (opoint (point)) *************** *** 1336,1388 **** (save-excursion (save-restriction (widen) (if (null Info-current-subfile) ! (progn (re-search-forward regexp) (setq found (point))) ! (condition-case err ! (progn (re-search-forward regexp) (setq found (point))) ! (search-failed nil))))) ! (if (not found) ;can only happen in subfile case -- else would have erred ! (unwind-protect ! (let ((list ())) ! (save-excursion ! (set-buffer (marker-buffer Info-tag-table-marker)) (goto-char (point-min)) ! (search-forward "\n\^_\nIndirect:") ! (save-restriction ! (narrow-to-region (point) ! (progn (search-forward "\n\^_") ! (1- (point)))) ! (goto-char (point-min)) ! ;; Find the subfile we just searched. ! (search-forward (concat "\n" osubfile ": ")) ! ;; Skip that one. ! (forward-line 1) ! ;; Make a list of all following subfiles. ! ;; Each elt has the form (VIRT-POSITION . SUBFILENAME). ! (while (not (eobp)) ! (re-search-forward "\\(^.*\\): [0-9]+$") ! (goto-char (+ (match-end 1) 2)) ! (setq list (cons (cons (+ (point-min) ! (read (current-buffer))) ! (match-string-no-properties 1)) ! list)) ! (goto-char (1+ (match-end 0)))) ! ;; Put in forward order ! (setq list (nreverse list)))) ! (while list ! (message "Searching subfile %s..." (cdr (car list))) ! (Info-read-subfile (car (car list))) ! (setq list (cdr list)) (if (re-search-forward regexp nil t) ! (setq found (point) list ()))) (if found ! (message "") ! (signal 'search-failed (list regexp)))) ! (if (not found) ! (progn (Info-read-subfile osubfile) ! (goto-char opoint) ! (Info-select-node) ! (set-window-start (selected-window) ostart))))) (widen) (goto-char found) (Info-select-node) --- 1336,1405 ---- (save-excursion (save-restriction (widen) + (while (and (not give-up) + (or (null found) + (isearch-range-invisible beg-found found))) + (if (re-search-forward regexp nil t) + (setq found (point) beg-found (match-beginning 0)) + (setq give-up t))))) + ;; If no subfiles, give error now. + (if give-up (if (null Info-current-subfile) ! (re-search-forward regexp) ! (setq found nil))) ! ! (unless found ! (unwind-protect ! ;; Try other subfiles. ! (let ((list ())) ! (save-excursion ! (set-buffer (marker-buffer Info-tag-table-marker)) ! (goto-char (point-min)) ! (search-forward "\n\^_\nIndirect:") ! (save-restriction ! (narrow-to-region (point) ! (progn (search-forward "\n\^_") ! (1- (point)))) (goto-char (point-min)) ! ;; Find the subfile we just searched. ! (search-forward (concat "\n" osubfile ": ")) ! ;; Skip that one. ! (forward-line 1) ! ;; Make a list of all following subfiles. ! ;; Each elt has the form (VIRT-POSITION . SUBFILENAME). ! (while (not (eobp)) ! (re-search-forward "\\(^.*\\): [0-9]+$") ! (goto-char (+ (match-end 1) 2)) ! (setq list (cons (cons (+ (point-min) ! (read (current-buffer))) ! (match-string-no-properties 1)) ! list)) ! (goto-char (1+ (match-end 0)))) ! ;; Put in forward order ! (setq list (nreverse list)))) ! (while list ! (message "Searching subfile %s..." (cdr (car list))) ! (Info-read-subfile (car (car list))) ! (setq list (cdr list)) ! (setq give-up nil found nil) ! (while (and (not give-up) ! (or (null found) ! (isearch-range-invisible beg-found found))) (if (re-search-forward regexp nil t) ! (setq found (point) beg-found (match-beginning 0)) ! (setq give-up t))) ! (if give-up ! (setq found nil)) (if found ! (setq list nil))) ! (if found ! (message "") ! (signal 'search-failed (list regexp)))) ! (if (not found) ! (progn (Info-read-subfile osubfile) ! (goto-char opoint) ! (Info-select-node) ! (set-window-start (selected-window) ostart))))) (widen) (goto-char found) (Info-select-node) From MAILER-DAEMON Mon Jul 07 17:51:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdHs-0002qF-Q1 for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:12:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdBo-00011P-Uz for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:06:24 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd4E-00071O-Rd for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:58:35 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZcxD-0005BF-UT for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:51:19 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZcwC-00045Y-18 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:50:16 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:50:16 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/sgml-mode.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:12:33 -0000 Index: emacs/lisp/textmodes/sgml-mode.el diff -c emacs/lisp/textmodes/sgml-mode.el:1.97 emacs/lisp/textmodes/sgml-mode.el:1.98 *** emacs/lisp/textmodes/sgml-mode.el:1.97 Wed Jun 4 21:14:23 2003 --- emacs/lisp/textmodes/sgml-mode.el Mon Jul 7 16:50:15 2003 *************** *** 460,465 **** --- 460,466 ---- ;; Some programs (such as Glade 2) generate XML which has ;; -*- mode: xml -*-. + ;;;###autoload (defalias 'xml-mode 'sgml-mode) (defun sgml-comment-indent () From MAILER-DAEMON Mon Jul 07 17:54:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zdbr-0008Rx-Io for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:33:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdTZ-00061H-Ox for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:24:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZdMn-0004Mr-CM for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:17:45 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZdCU-0001A1-Mr for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:07:06 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZdBT-0004aA-Kf for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:06:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:06:03 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:33:18 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5267 emacs/lisp/ChangeLog:1.5268 *** emacs/lisp/ChangeLog:1.5267 Mon Jul 7 14:52:23 2003 --- emacs/lisp/ChangeLog Mon Jul 7 17:06:01 2003 *************** *** 1,3 **** --- 1,48 ---- + 2003-07-07 Richard M. Stallman + + * ehelp.el (ehelp-command): Use defalias to define ehelp-command. + Give it a doc string, and autoload it. + + * desktop.el (desktop-buffer-info, desktop-buffer-mh): + Use with-no-warnings. + + * info.el (Info-search): If find invisible text, search again. + + * isearch.el (search-whitespace-regexp): Add a shy group around it. + + * man.el (Man-name-regexp): Match + as part of name. + + * simple.el (visible-mode): Renamed from vis-mode. + (vis-mode-saved-buffer-invisibility-spec): Doc fix. + + * simple.el (current-word): New arg REALLY-WORD specifies + don't include punctuation chars. + + * emacs-lisp/debug.el (debug, debugger-env-macro): + Use with-no-warnings while accessing and binding + unread-command-char. + + * international/mule-cmds.el (set-display-table-and-terminal-coding-system): + Use explicit loop instead of calling standard-display-default. + + * net/ange-ftp.el (ange-ftp-file-symlink-p): + Use condition-case to catch error in ange-ftp-get-files. + + * net/browse-url.el (browse-url-browser-function): + Add alternative for Epiphany. + (browse-url-epiphany-program, browse-url-epiphany-arguments) + (browse-url-epiphany-startup-arguments) + (browse-url-epiphany-new-window-is-tab): New variables. + (browse-url-epiphany, browse-url-epiphany-sentinel): New functions. + + * progmodes/compile.el (compile-auto-highlight): Default now t. + (compile): Doc fix. + (compilation-next-error): Fix previous change. + + * textmodes/tex-mode.el (tex-main-file): Use with-no-warnings. + + * textmodes/sgml-mode.el (xml-mode): Add autoload cookie. + 2003-07-07 Nick Roberts * gdb-ui.el (gdb-source-info): Display current frame when *************** *** 1459,1464 **** --- 1504,1516 ---- earlier changes. 2003-06-30 Richard M. Stallman + + * progmodes/compile.el (compile-auto-highlight): Default now t. + (compile): Doc fix. + + * progmodes/compile.el (compilation-next-error): Fix previous change. + + * emacs-lisp/debug.el (debug): * loadup.el (pure-space-overflow): Set it if overflow. From MAILER-DAEMON Mon Jul 07 17:58:32 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zdyt-0006mE-G2 for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:57:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zdxr-0006as-9M for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:56:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZdUY-0006Jp-Uw for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:25:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd8V-00006u-FT for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:02:59 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd7U-0004Sy-2z for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:01:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:01:56 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/man.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:57:05 -0000 Index: emacs/lisp/man.el diff -c emacs/lisp/man.el:1.123 emacs/lisp/man.el:1.124 *** emacs/lisp/man.el:1.123 Sun Jun 1 13:06:55 2003 --- emacs/lisp/man.el Mon Jul 7 17:01:55 2003 *************** *** 241,247 **** (defvar Man-cooked-hook nil "Hook run after removing backspaces but before `Man-mode' processing.") ! (defvar Man-name-regexp "[-a-zA-Z0-9_­][-a-zA-Z0-9_.­]*" "Regular expression describing the name of a manpage (without section).") (defvar Man-section-regexp "[0-9][a-zA-Z+]*\\|[LNln]" --- 241,247 ---- (defvar Man-cooked-hook nil "Hook run after removing backspaces but before `Man-mode' processing.") ! (defvar Man-name-regexp "[-a-zA-Z0-9_­+][-a-zA-Z0-9_.­+]*" "Regular expression describing the name of a manpage (without section).") (defvar Man-section-regexp "[0-9][a-zA-Z+]*\\|[LNln]" From MAILER-DAEMON Mon Jul 07 18:03:50 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZdWO-0006Xr-GK for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:27:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZdTa-00061d-OZ for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:24:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZdOT-0005Bh-Sm for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:19:32 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd75-00082M-E6 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:01:31 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd62-0004Pw-Vv for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:00:26 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:00:26 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/simple.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 21:27:39 -0000 Index: emacs/lisp/simple.el diff -c emacs/lisp/simple.el:1.613 emacs/lisp/simple.el:1.614 *** emacs/lisp/simple.el:1.613 Tue Jul 1 18:15:33 2003 --- emacs/lisp/simple.el Mon Jul 7 17:00:26 2003 *************** *** 3150,3186 **** (interactive "p") (kill-word (- arg))) ! (defun current-word (&optional strict) ! "Return the word point is on (or a nearby word) as a string. If optional arg STRICT is non-nil, return nil unless point is within ! or adjacent to a word." (save-excursion ! (let ((oldpoint (point)) (start (point)) (end (point))) ! (skip-syntax-backward "w_") (setq start (point)) (goto-char oldpoint) ! (skip-syntax-forward "w_") (setq end (point)) ! (if (and (eq start oldpoint) (eq end oldpoint)) ! ;; Point is neither within nor adjacent to a word. ! (and (not strict) ! (progn ! ;; Look for preceding word in same line. ! (skip-syntax-backward "^w_" ! (save-excursion (beginning-of-line) ! (point))) ! (if (bolp) ! ;; No preceding word in same line. ! ;; Look for following word in same line. ! (progn ! (skip-syntax-forward "^w_" ! (save-excursion (end-of-line) ! (point))) ! (setq start (point)) ! (skip-syntax-forward "w_") ! (setq end (point))) ! (setq end (point)) ! (skip-syntax-backward "w_") ! (setq start (point))) ! (buffer-substring-no-properties start end))) (buffer-substring-no-properties start end))))) (defcustom fill-prefix nil --- 3150,3191 ---- (interactive "p") (kill-word (- arg))) ! (defun current-word (&optional strict really-word) ! "Return the symbol or word that point is on (or a nearby one) as a string. ! The return value includes no text properties. If optional arg STRICT is non-nil, return nil unless point is within ! or adjacent to a symbol or word. ! The function, belying its name, normally finds a symbol. ! If optional arg REALLY-WORD is non-nil, it finds just a word." (save-excursion ! (let* ((oldpoint (point)) (start (point)) (end (point)) ! (syntaxes (if really-word "w_" "w")) ! (not-syntaxes (concat "^" syntaxes))) ! (skip-syntax-backward syntaxes) (setq start (point)) (goto-char oldpoint) ! (skip-syntax-forward syntaxes) (setq end (point)) ! (when (and (eq start oldpoint) (eq end oldpoint) ! ;; Point is neither within nor adjacent to a word. ! (not strict)) ! ;; Look for preceding word in same line. ! (skip-syntax-backward not-syntaxes ! (save-excursion (beginning-of-line) ! (point))) ! (if (bolp) ! ;; No preceding word in same line. ! ;; Look for following word in same line. ! (progn ! (skip-syntax-forward not-syntaxes ! (save-excursion (end-of-line) ! (point))) ! (setq start (point)) ! (skip-syntax-forward syntaxes) ! (setq end (point))) ! (setq end (point)) ! (skip-syntax-backward syntaxes) ! (setq start (point)))) ! ;; If we found something nonempty, return it as a string. ! (unless (= start end) (buffer-substring-no-properties start end))))) (defcustom fill-prefix nil *************** *** 4481,4504 **** :version "21.4") (defvar vis-mode-saved-buffer-invisibility-spec nil ! "Saved value of buffer-invisibility-spec when `vis-mode' is on.") ! ! (define-minor-mode vis-mode ! "Toggle vis-mode. ! With argument ARG turn vis-mode on iff ARG is positive. ! ! Enabling vis-mode sets `buffer-invisibility-spec' to nil, after ! saving the old value in the variable ! `vis-mode-saved-buffer-invisibility-spec', making all invisible ! text in the buffer visible. ! Disabling vis-mode restores the saved value of ! `buffer-invisibility-spec'." :lighter " Vis" (when (local-variable-p 'vis-mode-saved-buffer-invisibility-spec) (setq buffer-invisibility-spec vis-mode-saved-buffer-invisibility-spec) (kill-local-variable 'vis-mode-saved-buffer-invisibility-spec)) ! (when vis-mode (set (make-local-variable 'vis-mode-saved-buffer-invisibility-spec) buffer-invisibility-spec) (setq buffer-invisibility-spec nil))) --- 4486,4505 ---- :version "21.4") (defvar vis-mode-saved-buffer-invisibility-spec nil ! "Saved value of `buffer-invisibility-spec' when Visible mode is on.") ! (define-minor-mode visible-mode ! "Toggle Visible mode. ! With argument ARG turn Visible mode on iff ARG is positive. ! ! Enabling Visible mode makes all invisible text temporarily visible. ! Disabling Visible mode turns off that effect. Visible mode ! works by saving the value of `buffer-invisibility-spec' and setting it to nil." :lighter " Vis" (when (local-variable-p 'vis-mode-saved-buffer-invisibility-spec) (setq buffer-invisibility-spec vis-mode-saved-buffer-invisibility-spec) (kill-local-variable 'vis-mode-saved-buffer-invisibility-spec)) ! (when visible-mode (set (make-local-variable 'vis-mode-saved-buffer-invisibility-spec) buffer-invisibility-spec) (setq buffer-invisibility-spec nil))) From MAILER-DAEMON Mon Jul 07 18:06:55 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Ze7v-0001sV-11 for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 18:06:27 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zdes-0000nd-29 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:36:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zd8V-000076-V7 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:03:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zd3B-0006e7-1h for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:57:29 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19Zd29-0004H7-LV for emacs-diffs@gnu.org; Mon, 07 Jul 2003 16:56:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 16:56:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/mule-cmds.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 22:06:25 -0000 Index: emacs/lisp/international/mule-cmds.el diff -c emacs/lisp/international/mule-cmds.el:1.237 emacs/lisp/international/mule-cmds.el:1.238 *** emacs/lisp/international/mule-cmds.el:1.237 Sun Jun 29 06:36:59 2003 --- emacs/lisp/international/mule-cmds.el Mon Jul 7 16:56:24 2003 *************** *** 1689,1695 **** ;; case the user has used standard-display-european earlier in ;; this session. (The MS-DOS port doesn't use that setup, so it ;; doesn't need to undo it.) ! (standard-display-default (if (eq window-system 'pc) 128 160) 255) (aset standard-display-table 146 nil)) (or (eq window-system 'pc) (set-terminal-coding-system coding)))) --- 1689,1696 ---- ;; case the user has used standard-display-european earlier in ;; this session. (The MS-DOS port doesn't use that setup, so it ;; doesn't need to undo it.) ! (dotimes (i 128) ! (aset standard-display-table (+ i 128) nil)) (aset standard-display-table 146 nil)) (or (eq window-system 'pc) (set-terminal-coding-system coding)))) From MAILER-DAEMON Mon Jul 07 18:12:15 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZeA5-0003Aq-2X for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 18:08:41 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Ze9X-0002pZ-6I for emacs-diffs@gnu.org; Mon, 07 Jul 2003 18:08:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Ze0p-0007TP-5y for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:59:07 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZdBl-000112-Mx for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:06:21 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ZdAk-0004ZC-Ge for emacs-diffs@gnu.org; Mon, 07 Jul 2003 17:05:18 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 07 Jul 2003 17:05:18 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ehelp.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Mon, 07 Jul 2003 22:08:39 -0000 Index: emacs/lisp/ehelp.el diff -c emacs/lisp/ehelp.el:1.32 emacs/lisp/ehelp.el:1.33 *** emacs/lisp/ehelp.el:1.32 Tue Feb 4 06:15:34 2003 --- emacs/lisp/ehelp.el Mon Jul 7 17:05:17 2003 *************** *** 418,425 **** (substitute-key-definition 'describe-bindings 'electric-describe-bindings map) (substitute-key-definition 'describe-syntax 'electric-describe-syntax map) ! (setq ehelp-map map) ! (fset 'ehelp-command map))) (provide 'ehelp) --- 418,428 ---- (substitute-key-definition 'describe-bindings 'electric-describe-bindings map) (substitute-key-definition 'describe-syntax 'electric-describe-syntax map) ! (setq ehelp-map map))) ! ! ;;;###(autoload 'ehelp-command "ehelp" "Prefix command for ehelp." t 'keymap) ! (defalias 'ehelp-command ehelp-map) ! (put 'ehelp-command 'documentation "Prefix command for ehelp.") (provide 'ehelp) From MAILER-DAEMON Mon Jul 07 20:35:55 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZgSY-0007Ku-IJ for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:35:54 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZgS2-0006iJ-FO for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:35:22 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZgRn-0006Sc-Gw for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:35:07 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZgRi-0006R4-U2 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:35:02 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19ZgQh-00040J-MJ for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:33:59 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Mon, 07 Jul 2003 20:33:59 -0400 Subject: [Emacs-diffs] Changes to emacs/man/display.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 00:35:52 -0000 Index: emacs/man/display.texi diff -c emacs/man/display.texi:1.69 emacs/man/display.texi:1.70 *** emacs/man/display.texi:1.69 Mon Jul 7 16:44:13 2003 --- emacs/man/display.texi Mon Jul 7 20:33:59 2003 *************** *** 316,322 **** @findex font-lock-remove-keywords To remove keywords from the font-lock highlighting patterns, use the function @code{font-lock-remove-keywords}. @xref{Search-based ! Fontification,,elisp}, for documentation of the format of this list. @cindex just-in-time (JIT) font-lock @cindex background syntax highlighting --- 316,322 ---- @findex font-lock-remove-keywords To remove keywords from the font-lock highlighting patterns, use the function @code{font-lock-remove-keywords}. @xref{Search-based ! Fontification,,,elisp}, for documentation of the format of this list. @cindex just-in-time (JIT) font-lock @cindex background syntax highlighting From MAILER-DAEMON Mon Jul 07 20:37:41 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZgTj-0008J5-SZ for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:37:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZgTH-0007nU-Fi for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:36:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZgQ7-0005q7-IU for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:33:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZgPb-0005Pz-II for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:32:51 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19ZgOW-0003i3-6P for emacs-diffs@gnu.org; Mon, 07 Jul 2003 20:31:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Mon, 07 Jul 2003 20:31:44 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 00:37:06 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.189 emacs/man/ChangeLog:1.190 *** emacs/man/ChangeLog:1.189 Mon Jul 7 16:44:19 2003 --- emacs/man/ChangeLog Mon Jul 7 20:31:43 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-07 Luc Teirlinck + + * display.texi (Font Lock): Fix typo. + 2003-07-07 Richard M. Stallman * display.texi (Font Lock): Add xref for format info on From MAILER-DAEMON Mon Jul 07 21:17:33 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zh6d-0005dn-AT for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:17:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zh4z-0004w3-BH for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:15:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zh4a-0004fY-Mm for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:15:13 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zh4A-0004FN-CN for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:14:46 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19Zh39-0004jT-DG for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:13:43 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Mon, 07 Jul 2003 21:13:43 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 01:17:17 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.190 emacs/man/ChangeLog:1.191 *** emacs/man/ChangeLog:1.190 Mon Jul 7 20:31:43 2003 --- emacs/man/ChangeLog Mon Jul 7 21:13:42 2003 *************** *** 1,5 **** --- 1,10 ---- 2003-07-07 Luc Teirlinck + * info.texi (Help-Inv, Help-M, Help-Xref): Update following + renaming of `vis-mode' to `visible-mode'. + + 2003-07-07 Luc Teirlinck + * display.texi (Font Lock): Fix typo. 2003-07-07 Richard M. Stallman From MAILER-DAEMON Mon Jul 07 21:22:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZhC0-0007oL-Qo for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:22:52 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZhBx-0007mz-NG for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:22:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZhBv-0007lZ-Gg for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:22:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZhBv-0007lG-6B for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:22:47 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19ZhAu-0006QM-3J for emacs-diffs@gnu.org; Mon, 07 Jul 2003 21:21:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Mon, 07 Jul 2003 21:21:44 -0400 Subject: [Emacs-diffs] Changes to emacs/man/info.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 01:22:51 -0000 Index: emacs/man/info.texi diff -c emacs/man/info.texi:1.29 emacs/man/info.texi:1.30 *** emacs/man/info.texi:1.29 Fri Jul 4 17:07:23 2003 --- emacs/man/info.texi Mon Jul 7 21:21:43 2003 *************** *** 6,12 **** @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.29 2003/07/04 21:07:23 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU --- 6,12 ---- @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.30 2003/07/08 01:21:43 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU *************** *** 417,423 **** to visit the next node. @end format ! @node Help-Inv, Help-M, Help-^L, Getting Started @comment node-name, next, previous, up @section Invisible text in Emacs Info --- 417,423 ---- to visit the next node. @end format ! @node Help-Inv, Help-M, Help-^L, Getting Started @comment node-name, next, previous, up @section Invisible text in Emacs Info *************** *** 433,452 **** output, it gets saved to file just like any other text, and so on. Thus it is useful to know it is there. ! @findex vis-mode You can make invisible text visible by using the command @kbd{M-x ! vis-mode}. @code{vis-mode} is a minor mode, so using it a second time ! will make the text invisible again. Use this command and watch its ! effect on the ``menu'' below and the top line of this node. If you prefer to @emph{always} see the invisible text, you can set @code{Info-hide-note-references} to @code{nil}. Enabling ! @code{vis-mode} permanently is not a real alternative, because Emacs ! Info also uses (although less extensively) another text property that ! can change the text being displayed, the @samp{display} property. ! Only the invisibility property is affected by @code{vis-mode}. When, ! in this tutorial, we refer to the @samp{Emacs} behavior, we mean the ! @emph{default} Emacs behavior. Now type @kbd{]}, to learn about the @kbd{]} and @kbd{[} commands. --- 433,452 ---- output, it gets saved to file just like any other text, and so on. Thus it is useful to know it is there. ! @findex visible-mode You can make invisible text visible by using the command @kbd{M-x ! visible-mode}. @code{visible-mode} is a minor mode, so using it a ! second time will make the text invisible again. Use this command and ! watch its effect on the ``menu'' below and the top line of this node. If you prefer to @emph{always} see the invisible text, you can set @code{Info-hide-note-references} to @code{nil}. Enabling ! @code{visible-mode} permanently is not a real alternative, because ! Emacs Info also uses (although less extensively) another text property ! that can change the text being displayed, the @samp{display} property. ! Only the invisibility property is affected by @code{visible-mode}. ! When, in this tutorial, we refer to the @samp{Emacs} behavior, we mean ! the @emph{default} Emacs behavior. Now type @kbd{]}, to learn about the @kbd{]} and @kbd{[} commands. *************** *** 526,532 **** in a real menu item, the @samp{*} would appear at the very start of the line. This is why the ``normally hidden'' text in Emacs, namely @samp{: Node about FOO.}, is actually visible in this example, even ! when @code{vis-mode} is off.]] When you use a menu to go to another node (in a way that will be described soon), what you specify is the subtopic name, the first --- 526,532 ---- in a real menu item, the @samp{*} would appear at the very start of the line. This is why the ``normally hidden'' text in Emacs, namely @samp{: Node about FOO.}, is actually visible in this example, even ! when @code{visible-mode} is off.]] When you use a menu to go to another node (in a way that will be described soon), what you specify is the subtopic name, the first *************** *** 619,625 **** * Help-FOO:: And yet another! @end menu ! (Turn @code{vis-mode} on if you are using Emacs.) @format >> Now type just an @kbd{m} and see what happens: --- 619,625 ---- * Help-FOO:: And yet another! @end menu ! (Turn @code{visible-mode} on if you are using Emacs.) @format >> Now type just an @kbd{m} and see what happens: *************** *** 735,741 **** Cross references look like this: @xref{Help-Cross, Cross}. That text is a real, live cross reference, whose name is @samp{Cross} and which points to the node named @samp{Help-Cross}. (The node name is hidden ! in Emacs. Do @kbd{M-x vis-mode} to show or hide it.) @kindex f @r{(Info mode)} @findex Info-follow-reference --- 735,741 ---- Cross references look like this: @xref{Help-Cross, Cross}. That text is a real, live cross reference, whose name is @samp{Cross} and which points to the node named @samp{Help-Cross}. (The node name is hidden ! in Emacs. Do @kbd{M-x visible-mode} to show or hide it.) @kindex f @r{(Info mode)} @findex Info-follow-reference *************** *** 787,797 **** @samp{texinfo} between parentheses (shown in the stand-alone version) refers to the file name. This file name appears in cross references and node names if it differs from the current file. In Emacs, the ! file name is hidden (along with other text). (Use @kbd{M-x vis-mode} ! to show or hide it.) The remainder of this node applies only to the Emacs version. If ! you use the stand-alone version, you can type @kbd{n} immediately. To some users, switching manuals is a much bigger switch than switching sections. These users like to know that they are going to --- 787,797 ---- @samp{texinfo} between parentheses (shown in the stand-alone version) refers to the file name. This file name appears in cross references and node names if it differs from the current file. In Emacs, the ! file name is hidden (along with other text). (Use @kbd{M-x ! visible-mode} to show or hide it.) The remainder of this node applies only to the Emacs version. If ! you use the stand-alone version, you can type @kbd{n} immediately. To some users, switching manuals is a much bigger switch than switching sections. These users like to know that they are going to From MAILER-DAEMON Mon Jul 07 23:28:56 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zj9z-0006d7-Rd for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:28:55 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zj9y-0006cf-0n for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:28:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zj9w-0006be-J1 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:28:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zj9w-0006ax-9Q for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:28:52 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19Zj8t-0006tg-2k for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:27:47 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Mon, 07 Jul 2003 23:27:47 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 03:28:54 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.191 emacs/man/ChangeLog:1.192 *** emacs/man/ChangeLog:1.191 Mon Jul 7 21:13:42 2003 --- emacs/man/ChangeLog Mon Jul 7 23:27:46 2003 *************** *** 3,10 **** * info.texi (Help-Inv, Help-M, Help-Xref): Update following renaming of `vis-mode' to `visible-mode'. - 2003-07-07 Luc Teirlinck - * display.texi (Font Lock): Fix typo. 2003-07-07 Richard M. Stallman --- 3,8 ---- From MAILER-DAEMON Mon Jul 07 23:30:32 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZjBX-0000d2-Qc for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:30:31 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZjBV-0000Yt-7p for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:30:29 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZjAp-0008Rr-C9 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:29:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZjAo-0008QH-AV for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:29:46 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19Zj9m-00073N-Un for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:28:42 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Mon, 07 Jul 2003 23:28:42 -0400 Subject: [Emacs-diffs] Changes to emacs/man/info.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 03:30:30 -0000 Index: emacs/man/info.texi diff -c emacs/man/info.texi:1.30 emacs/man/info.texi:1.31 *** emacs/man/info.texi:1.30 Mon Jul 7 21:21:43 2003 --- emacs/man/info.texi Mon Jul 7 23:28:42 2003 *************** *** 6,12 **** @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.30 2003/07/08 01:21:43 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU --- 6,12 ---- @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.31 2003/07/08 03:28:42 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU *************** *** 435,452 **** @findex visible-mode You can make invisible text visible by using the command @kbd{M-x ! visible-mode}. @code{visible-mode} is a minor mode, so using it a ! second time will make the text invisible again. Use this command and ! watch its effect on the ``menu'' below and the top line of this node. If you prefer to @emph{always} see the invisible text, you can set ! @code{Info-hide-note-references} to @code{nil}. Enabling ! @code{visible-mode} permanently is not a real alternative, because ! Emacs Info also uses (although less extensively) another text property ! that can change the text being displayed, the @samp{display} property. ! Only the invisibility property is affected by @code{visible-mode}. ! When, in this tutorial, we refer to the @samp{Emacs} behavior, we mean ! the @emph{default} Emacs behavior. Now type @kbd{]}, to learn about the @kbd{]} and @kbd{[} commands. --- 435,453 ---- @findex visible-mode You can make invisible text visible by using the command @kbd{M-x ! visible-mode}. @dfn{Visible mode} is a minor mode, so using the ! command a second time will make the text invisible again. Watch the ! effects of the command on the ``menu'' below and the top line of this ! node. If you prefer to @emph{always} see the invisible text, you can set ! @code{Info-hide-note-references} to @code{nil}. Enabling Visible mode ! permanently is not a real alternative, because Emacs Info also uses ! (although less extensively) another text property that can change the ! text being displayed, the @samp{display} property. Only the ! invisibility property is affected by Visible mode. When, in this ! tutorial, we refer to the @samp{Emacs} behavior, we mean the ! @emph{default} Emacs behavior. Now type @kbd{]}, to learn about the @kbd{]} and @kbd{[} commands. *************** *** 526,532 **** in a real menu item, the @samp{*} would appear at the very start of the line. This is why the ``normally hidden'' text in Emacs, namely @samp{: Node about FOO.}, is actually visible in this example, even ! when @code{visible-mode} is off.]] When you use a menu to go to another node (in a way that will be described soon), what you specify is the subtopic name, the first --- 527,533 ---- in a real menu item, the @samp{*} would appear at the very start of the line. This is why the ``normally hidden'' text in Emacs, namely @samp{: Node about FOO.}, is actually visible in this example, even ! when Visible mode is off.]] When you use a menu to go to another node (in a way that will be described soon), what you specify is the subtopic name, the first *************** *** 619,625 **** * Help-FOO:: And yet another! @end menu ! (Turn @code{visible-mode} on if you are using Emacs.) @format >> Now type just an @kbd{m} and see what happens: --- 620,626 ---- * Help-FOO:: And yet another! @end menu ! (Turn Visible mode on if you are using Emacs.) @format >> Now type just an @kbd{m} and see what happens: From MAILER-DAEMON Mon Jul 07 23:42:01 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZjMQ-0003XQ-Bm for mharc-emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:41:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZjLb-0002ra-Dv for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:40:55 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZjLD-0001zV-5X for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:40:41 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZjLA-0001t3-JI for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:40:28 -0400 Received: from teirllm by subversions.gnu.org with local (Exim 4.20) id 19ZjK9-0007f9-B4 for emacs-diffs@gnu.org; Mon, 07 Jul 2003 23:39:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: Luc Teirlinck Date: Mon, 07 Jul 2003 23:39:25 -0400 Subject: [Emacs-diffs] Changes to emacs/man/info.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: teirllm@mail.auburn.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 03:41:44 -0000 Index: emacs/man/info.texi diff -c emacs/man/info.texi:1.31 emacs/man/info.texi:1.32 *** emacs/man/info.texi:1.31 Mon Jul 7 23:28:42 2003 --- emacs/man/info.texi Mon Jul 7 23:39:24 2003 *************** *** 6,12 **** @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.31 2003/07/08 03:28:42 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU --- 6,12 ---- @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.32 2003/07/08 03:39:24 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU *************** *** 435,444 **** @findex visible-mode You can make invisible text visible by using the command @kbd{M-x ! visible-mode}. @dfn{Visible mode} is a minor mode, so using the ! command a second time will make the text invisible again. Watch the ! effects of the command on the ``menu'' below and the top line of this ! node. If you prefer to @emph{always} see the invisible text, you can set @code{Info-hide-note-references} to @code{nil}. Enabling Visible mode --- 435,443 ---- @findex visible-mode You can make invisible text visible by using the command @kbd{M-x ! visible-mode}. Visible mode is a minor mode, so using the command a ! second time will make the text invisible again. Watch the effects of ! the command on the ``menu'' below and the top line of this node. If you prefer to @emph{always} see the invisible text, you can set @code{Info-hide-note-references} to @code{nil}. Enabling Visible mode From MAILER-DAEMON Tue Jul 08 05:27:24 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZoiS-0003xR-BQ for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:24:52 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZoiL-0003tN-2Z for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:24:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ZoiJ-0003rh-Cq for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:24:44 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZohY-0003NB-Tf for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:23:57 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ZogX-0006Yk-DC for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:22:53 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Tue, 08 Jul 2003 05:22:53 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/mule-cmds.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 09:24:50 -0000 Index: emacs/lisp/international/mule-cmds.el diff -c emacs/lisp/international/mule-cmds.el:1.238 emacs/lisp/international/mule-cmds.el:1.239 *** emacs/lisp/international/mule-cmds.el:1.238 Mon Jul 7 16:56:24 2003 --- emacs/lisp/international/mule-cmds.el Tue Jul 8 05:22:52 2003 *************** *** 1689,1699 **** ;; case the user has used standard-display-european earlier in ;; this session. (The MS-DOS port doesn't use that setup, so it ;; doesn't need to undo it.) ! (dotimes (i 128) ! (aset standard-display-table (+ i 128) nil)) ! (aset standard-display-table 146 nil)) (or (eq window-system 'pc) ! (set-terminal-coding-system coding)))) (defun set-language-environment (language-name) "Set up multi-lingual environment for using LANGUAGE-NAME. --- 1689,1700 ---- ;; case the user has used standard-display-european earlier in ;; this session. (The MS-DOS port doesn't use that setup, so it ;; doesn't need to undo it.) ! (when standard-display-table ! (dotimes (i 128) ! (aset standard-display-table (+ i 128) nil)) ! (aset standard-display-table 146 nil))) (or (eq window-system 'pc) ! (set-terminal-coding-system coding)))) (defun set-language-environment (language-name) "Set up multi-lingual environment for using LANGUAGE-NAME. From MAILER-DAEMON Tue Jul 08 05:29:09 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZolK-0006St-DY for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:27:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zol1-00068D-Mq for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:27:31 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zoky-0005xB-0E for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:27:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZojS-0004mq-UV for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:25:54 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ZoiQ-0006v9-GC for emacs-diffs@gnu.org; Tue, 08 Jul 2003 05:24:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Tue, 08 Jul 2003 05:24:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 09:27:48 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5268 emacs/lisp/ChangeLog:1.5269 *** emacs/lisp/ChangeLog:1.5268 Mon Jul 7 17:06:01 2003 --- emacs/lisp/ChangeLog Tue Jul 8 05:24:46 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-08 Kim F. Storm + + * international/mule-cmds.el (set-display-table-and-terminal-coding-system): + Don't break bootstrap if standard-display-table isn't setup yet. + 2003-07-07 Richard M. Stallman * ehelp.el (ehelp-command): Use defalias to define ehelp-command. From MAILER-DAEMON Tue Jul 08 13:03:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19Zvrv-0000lk-TE for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 13:03:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Zvrd-0000bR-FU for emacs-diffs@gnu.org; Tue, 08 Jul 2003 13:02:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zvqu-0000Ha-Jk for emacs-diffs@gnu.org; Tue, 08 Jul 2003 13:02:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Zvmy-0007Cl-M1 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 12:58:00 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19Zvlx-0000Pw-2r for emacs-diffs@gnu.org; Tue, 08 Jul 2003 12:56:57 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Tue, 08 Jul 2003 12:56:57 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/subr.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 17:03:06 -0000 Index: emacs/lisp/subr.el diff -c emacs/lisp/subr.el:1.357 emacs/lisp/subr.el:1.358 *** emacs/lisp/subr.el:1.357 Mon Jun 30 06:33:52 2003 --- emacs/lisp/subr.el Tue Jul 8 12:56:56 2003 *************** *** 114,120 **** Evaluate BODY with VAR bound to each car from LIST, in turn. Then evaluate RESULT to get return value, default nil. ! \(dolist (VAR LIST [RESULT]) BODY...)" (declare (indent 1) (debug ((symbolp form &optional form) body))) (let ((temp (make-symbol "--dolist-temp--"))) `(let ((,temp ,(nth 1 spec)) --- 114,120 ---- Evaluate BODY with VAR bound to each car from LIST, in turn. Then evaluate RESULT to get return value, default nil. ! \(fn (VAR LIST [RESULT]) BODY...)" (declare (indent 1) (debug ((symbolp form &optional form) body))) (let ((temp (make-symbol "--dolist-temp--"))) `(let ((,temp ,(nth 1 spec)) *************** *** 132,138 **** inclusive, to COUNT, exclusive. Then evaluate RESULT to get the return value (nil if RESULT is omitted). ! \(dotimes (VAR COUNT [RESULT]) BODY...)" (declare (indent 1) (debug dolist)) (let ((temp (make-symbol "--dotimes-temp--")) (start 0) --- 132,138 ---- inclusive, to COUNT, exclusive. Then evaluate RESULT to get the return value (nil if RESULT is omitted). ! \(fn (VAR COUNT [RESULT]) BODY...)" (declare (indent 1) (debug dolist)) (let ((temp (make-symbol "--dotimes-temp--")) (start 0) From MAILER-DAEMON Tue Jul 08 14:01:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ZwSn-0002n9-Qe for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 13:41:13 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ZwGo-0006oP-DN for emacs-diffs@gnu.org; Tue, 08 Jul 2003 13:28:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Zw1q-0003eM-AP for emacs-diffs@gnu.org; Tue, 08 Jul 2003 13:13:23 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ZvnJ-0007MQ-C9 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 12:58:21 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19ZvmI-0000Qm-CK for emacs-diffs@gnu.org; Tue, 08 Jul 2003 12:57:18 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Tue, 08 Jul 2003 12:57:18 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1b5 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , X-List-Received-Date: Tue, 08 Jul 2003 17:41:12 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5269 emacs/lisp/ChangeLog:1.5270 *** emacs/lisp/ChangeLog:1.5269 Tue Jul 8 05:24:46 2003 --- emacs/lisp/ChangeLog Tue Jul 8 12:57:15 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-08 Markus Rost + + * subr.el (dolist, dotimes): Doc fix. + 2003-07-08 Kim F. Storm * international/mule-cmds.el (set-display-table-and-terminal-coding-system): From MAILER-DAEMON Tue Jul 08 21:11:35 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3Ij-00020U-Qz for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:59:17 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a39c-0000JW-NK for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:49:52 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a38c-0008W0-4h for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:48:50 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a37w-0007fY-8v for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:48:13 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a1u0-0004rp-6V for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:29:40 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19a1sz-0005oU-1o for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:28:37 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Tue, 08 Jul 2003 19:28:37 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 00:59:11 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.832 emacs/etc/NEWS:1.833 *** emacs/etc/NEWS:1.832 Tue Jul 8 18:09:38 2003 --- emacs/etc/NEWS Tue Jul 8 19:28:35 2003 *************** *** 1094,1104 **** it to t only in languages that mandate a final newline in source files (C, C++ and Objective-C). ! *** Slight API change for the syntactic context used by lineup functions. ! The syntactic context stored in c-syntactic-context has been changed ! to allow more information. This might affect custom lineup functions, ! but only if they use that variable directly. See its docstring for ! more details. *** API changes for derived modes. There have been extensive changes "under the hood" which can affect --- 1094,1118 ---- it to t only in languages that mandate a final newline in source files (C, C++ and Objective-C). ! *** Format change for syntactic context elements. ! The elements in the syntactic context returned by c-guess-basic-syntax ! and stored in c-syntactic-context has been changed somewhat to allow ! attaching more information. They are now lists instead of single cons ! cells. E.g. a line that previously had the syntactic analysis ! ! ((inclass . 11) (topmost-intro . 13)) ! ! is now analysed as ! ! ((inclass 11) (topmost-intro 13)) ! ! In some cases there are more than one position given for a syntactic ! symbol. ! ! This change might affect code that call c-guess-basic-syntax directly, ! and custom lineup functions if they use c-syntactic-context. However, ! the argument given to lineup functions is still a single cons cell ! with nil or an integer in the cdr. *** API changes for derived modes. There have been extensive changes "under the hood" which can affect From MAILER-DAEMON Tue Jul 08 21:18:16 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3Uk-00046s-S0 for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:11:42 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3IR-0001vC-KH for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:58:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3Ga-0001Sk-Mb for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:57:05 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3B6-0008DF-Au for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0XV-0001FD-Go for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:02:21 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19a0WU-0006gd-C8 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:01:18 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Tue, 08 Jul 2003 18:01:18 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:11:40 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3305 emacs/src/ChangeLog:1.3306 *** emacs/src/ChangeLog:1.3305 Tue Jul 8 17:46:21 2003 --- emacs/src/ChangeLog Tue Jul 8 18:01:16 2003 *************** *** 2,7 **** --- 2,8 ---- * xterm.c (use_xim) [!USE_XIM]: Default to disable XIM if emacs was configured with --without-xim. + (x_term_init) [!USE_XIM]: Use `useXIM' resource to turn on XIM. 2003-07-07 Richard M. Stallman From MAILER-DAEMON Tue Jul 08 21:22:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3dN-0005et-J5 for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:20:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3Ds-00010B-LT for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:54:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a39m-0000Pf-Vl for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:50:05 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a38I-0007fY-Qa for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:48:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a1mj-0001Uo-3d for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:22:09 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19a1lh-0004hD-4J for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:21:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Tue, 08 Jul 2003 19:21:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-engine.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:20:36 -0000 Index: emacs/lisp/progmodes/cc-engine.el diff -c emacs/lisp/progmodes/cc-engine.el:1.29 emacs/lisp/progmodes/cc-engine.el:1.30 *** emacs/lisp/progmodes/cc-engine.el:1.29 Thu Jul 3 08:30:59 2003 --- emacs/lisp/progmodes/cc-engine.el Tue Jul 8 19:21:04 2003 *************** *** 66,71 **** --- 66,74 ---- ;; positions, e.g. to improve speed and to eliminate glitches in ;; interactive refontification. ;; + ;; Note: This doc is for internal use only. Other packages should not + ;; assume that these text properties are used as described here. + ;; ;; 'syntax-table ;; Used to modify the syntax of some characters. Currently used to ;; mark the "<" and ">" of angle bracket parens with paren syntax. *************** *** 509,518 **** ;; that we've moved. (while (progn (setq pos (point)) ! (c-backward-syntactic-ws) ; might go back an awk-mode virtual semicolon, here. ! ; How about using c-awk-NL-prop for AWK Mode, here. ! ; Something like c-awk-backward-syntactic-ws. ! ; 2002/6/22. Doesn't matter! Leave it as it is. (/= (skip-chars-backward "-+!*&~@`#") 0))) ; ACM, 2002/5/31; ; Make a variable in ; cc-langs.el, maybe --- 512,520 ---- ;; that we've moved. (while (progn (setq pos (point)) ! (if (c-mode-is-new-awk-p) ! (c-awk-backward-syntactic-ws) ! (c-backward-syntactic-ws)) (/= (skip-chars-backward "-+!*&~@`#") 0))) ; ACM, 2002/5/31; ; Make a variable in ; cc-langs.el, maybe *************** *** 820,826 **** ;; Skip over the unary operators that can start the statement. (goto-char pos) (while (progn ! (c-backward-syntactic-ws) (/= (skip-chars-backward "-+!*&~@`#") 0)) ; Hopefully the # won't hurt awk. (setq pos (point))) (goto-char pos) --- 822,830 ---- ;; Skip over the unary operators that can start the statement. (goto-char pos) (while (progn ! (if (c-mode-is-new-awk-p) ! (c-awk-backward-syntactic-ws) ! (c-backward-syntactic-ws)) (/= (skip-chars-backward "-+!*&~@`#") 0)) ; Hopefully the # won't hurt awk. (setq pos (point))) (goto-char pos) *************** *** 2663,2669 **** (defalias 'c-in-literal (if (fboundp 'buffer-syntactic-context) ! 'c-fast-in-literal ; Xemacs 'c-slow-in-literal)) ; GNU Emacs ;; The defalias above isn't enough to shut up the byte compiler. --- 2667,2673 ---- (defalias 'c-in-literal (if (fboundp 'buffer-syntactic-context) ! 'c-fast-in-literal ; XEmacs 'c-slow-in-literal)) ; GNU Emacs ;; The defalias above isn't enough to shut up the byte compiler. *************** *** 5422,5455 **** ))) (defun c-guess-basic-syntax () ! "Return the syntactic context of the current line." (save-excursion (save-restriction (beginning-of-line) ! (let* ((indent-point (point)) ! (case-fold-search nil) ! (paren-state (c-parse-state)) ! literal containing-sexp char-before-ip char-after-ip lim ! c-syntactic-context placeholder c-in-literal-cache step-type ! tmpsymbol keyword injava-inher special-brace-list ! ;; narrow out any enclosing class or extern "C" block ! (inclass-p (c-narrow-out-enclosing-class paren-state ! indent-point)) ! ;; `c-state-cache' is shadowed here so that we don't ! ;; throw it away due to the narrowing that might be done ! ;; by the function above. That means we must not do any ! ;; changes during the execution of this function, since ! ;; `c-invalidate-state-cache' then would change this local ! ;; variable and leave a bogus value in the global one. ! (c-state-cache (if inclass-p ! (c-whack-state-before (point-min) paren-state) ! paren-state)) ! (c-state-cache-start (point-min)) ! inenclosing-p macro-start in-macro-expr ! ;; There's always at most one syntactic element which got ! ;; a relpos. It's stored in syntactic-relpos. ! syntactic-relpos ! (c-stmt-delim-chars c-stmt-delim-chars)) ;; Check for meta top-level enclosing constructs such as ;; extern language definitions. (save-excursion --- 5426,5461 ---- ))) (defun c-guess-basic-syntax () ! "Return the syntactic context of the current line. ! This function does not do any hidden buffer changes." (save-excursion (save-restriction (beginning-of-line) ! (c-save-buffer-state ! ((indent-point (point)) ! (case-fold-search nil) ! (paren-state (c-parse-state)) ! literal containing-sexp char-before-ip char-after-ip lim ! c-syntactic-context placeholder c-in-literal-cache step-type ! tmpsymbol keyword injava-inher special-brace-list ! ;; narrow out any enclosing class or extern "C" block ! (inclass-p (c-narrow-out-enclosing-class paren-state ! indent-point)) ! ;; `c-state-cache' is shadowed here so that we don't ! ;; throw it away due to the narrowing that might be done ! ;; by the function above. That means we must not do any ! ;; changes during the execution of this function, since ! ;; `c-invalidate-state-cache' then would change this local ! ;; variable and leave a bogus value in the global one. ! (c-state-cache (if inclass-p ! (c-whack-state-before (point-min) paren-state) ! paren-state)) ! (c-state-cache-start (point-min)) ! inenclosing-p macro-start in-macro-expr ! ;; There's always at most one syntactic element which got ! ;; a relpos. It's stored in syntactic-relpos. ! syntactic-relpos ! (c-stmt-delim-chars c-stmt-delim-chars)) ;; Check for meta top-level enclosing constructs such as ;; extern language definitions. (save-excursion From MAILER-DAEMON Tue Jul 08 21:28:48 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3kw-0007wA-QQ for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:28:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3h1-0006cO-Kn for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:24:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3ay-0005OS-5y for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:18:16 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3AS-0008DF-74 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:50:44 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0sY-0005Xj-7G for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:24:06 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19a0eK-0006uO-19 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:09:24 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 08 Jul 2003 18:09:24 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:28:19 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.429 emacs/src/buffer.c:1.430 *** emacs/src/buffer.c:1.429 Tue Jul 8 17:47:55 2003 --- emacs/src/buffer.c Tue Jul 8 18:09:23 2003 *************** *** 4056,4208 **** Lisp_Object prop, overlay, tail; /* 1 if this change is an insertion. */ int insertion = (after ? XFASTINT (arg3) == 0 : EQ (start, end)); ! int tail_copied; ! struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5; overlay = Qnil; tail = Qnil; - GCPRO5 (overlay, tail, arg1, arg2, arg3); - - if (after) - { - /* Call the functions recorded in last_overlay_modification_hooks - rather than scanning the overlays again. - First copy the vector contents, in case some of these hooks - do subsequent modification of the buffer. */ - int size = last_overlay_modification_hooks_used; - Lisp_Object *copy = (Lisp_Object *) alloca (size * sizeof (Lisp_Object)); - int i; - - bcopy (XVECTOR (last_overlay_modification_hooks)->contents, - copy, size * sizeof (Lisp_Object)); - gcpro1.var = copy; - gcpro1.nvars = size; - - for (i = 0; i < size;) - { - Lisp_Object prop, overlay; - prop = copy[i++]; - overlay = copy[i++]; - call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); - } - UNGCPRO; - return; - } - - /* We are being called before a change. - Scan the overlays to find the functions to call. */ - last_overlay_modification_hooks_used = 0; - tail_copied = 0; - for (tail = current_buffer->overlays_before; - CONSP (tail); - tail = XCDR (tail)) - { - int startpos, endpos; - Lisp_Object ostart, oend; - - overlay = XCAR (tail); - - ostart = OVERLAY_START (overlay); - oend = OVERLAY_END (overlay); - endpos = OVERLAY_POSITION (oend); - if (XFASTINT (start) > endpos) - break; - startpos = OVERLAY_POSITION (ostart); - if (insertion && (XFASTINT (start) == startpos - || XFASTINT (end) == startpos)) - { - prop = Foverlay_get (overlay, Qinsert_in_front_hooks); - if (!NILP (prop)) - { - /* Copy TAIL in case the hook recenters the overlay lists. */ - if (!tail_copied) - tail = Fcopy_sequence (tail); - tail_copied = 1; - call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); - } - } - if (insertion && (XFASTINT (start) == endpos - || XFASTINT (end) == endpos)) - { - prop = Foverlay_get (overlay, Qinsert_behind_hooks); - if (!NILP (prop)) - { - if (!tail_copied) - tail = Fcopy_sequence (tail); - tail_copied = 1; - call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); - } - } - /* Test for intersecting intervals. This does the right thing - for both insertion and deletion. */ - if (XFASTINT (end) > startpos && XFASTINT (start) < endpos) - { - prop = Foverlay_get (overlay, Qmodification_hooks); - if (!NILP (prop)) - { - if (!tail_copied) - tail = Fcopy_sequence (tail); - tail_copied = 1; - call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); - } - } - } ! tail_copied = 0; ! for (tail = current_buffer->overlays_after; ! CONSP (tail); ! tail = XCDR (tail)) { ! int startpos, endpos; ! Lisp_Object ostart, oend; ! ! overlay = XCAR (tail); ! ! ostart = OVERLAY_START (overlay); ! oend = OVERLAY_END (overlay); ! startpos = OVERLAY_POSITION (ostart); ! endpos = OVERLAY_POSITION (oend); ! if (XFASTINT (end) < startpos) ! break; ! if (insertion && (XFASTINT (start) == startpos ! || XFASTINT (end) == startpos)) ! { ! prop = Foverlay_get (overlay, Qinsert_in_front_hooks); ! if (!NILP (prop)) ! { ! if (!tail_copied) ! tail = Fcopy_sequence (tail); ! tail_copied = 1; ! call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); ! } ! } ! if (insertion && (XFASTINT (start) == endpos ! || XFASTINT (end) == endpos)) ! { ! prop = Foverlay_get (overlay, Qinsert_behind_hooks); ! if (!NILP (prop)) ! { ! if (!tail_copied) ! tail = Fcopy_sequence (tail); ! tail_copied = 1; ! call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); ! } ! } ! /* Test for intersecting intervals. This does the right thing ! for both insertion and deletion. */ ! if (XFASTINT (end) > startpos && XFASTINT (start) < endpos) ! { ! prop = Foverlay_get (overlay, Qmodification_hooks); ! if (!NILP (prop)) ! { ! if (!tail_copied) ! tail = Fcopy_sequence (tail); ! tail_copied = 1; ! call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); } } } UNGCPRO; } --- 4056,4172 ---- Lisp_Object prop, overlay, tail; /* 1 if this change is an insertion. */ int insertion = (after ? XFASTINT (arg3) == 0 : EQ (start, end)); ! struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; overlay = Qnil; tail = Qnil; ! if (!after) { ! /* We are being called before a change. ! Scan the overlays to find the functions to call. */ ! last_overlay_modification_hooks_used = 0; ! for (tail = current_buffer->overlays_before; ! CONSP (tail); ! tail = XCDR (tail)) ! { ! int startpos, endpos; ! Lisp_Object ostart, oend; ! ! overlay = XCAR (tail); ! ! ostart = OVERLAY_START (overlay); ! oend = OVERLAY_END (overlay); ! endpos = OVERLAY_POSITION (oend); ! if (XFASTINT (start) > endpos) ! break; ! startpos = OVERLAY_POSITION (ostart); ! if (insertion && (XFASTINT (start) == startpos ! || XFASTINT (end) == startpos)) ! { ! prop = Foverlay_get (overlay, Qinsert_in_front_hooks); ! if (!NILP (prop)) ! add_overlay_mod_hooklist (prop, overlay); ! } ! if (insertion && (XFASTINT (start) == endpos ! || XFASTINT (end) == endpos)) ! { ! prop = Foverlay_get (overlay, Qinsert_behind_hooks); ! if (!NILP (prop)) ! add_overlay_mod_hooklist (prop, overlay); ! } ! /* Test for intersecting intervals. This does the right thing ! for both insertion and deletion. */ ! if (XFASTINT (end) > startpos && XFASTINT (start) < endpos) ! { ! prop = Foverlay_get (overlay, Qmodification_hooks); ! if (!NILP (prop)) ! add_overlay_mod_hooklist (prop, overlay); ! } ! } ! ! for (tail = current_buffer->overlays_after; ! CONSP (tail); ! tail = XCDR (tail)) ! { ! int startpos, endpos; ! Lisp_Object ostart, oend; ! ! overlay = XCAR (tail); ! ! ostart = OVERLAY_START (overlay); ! oend = OVERLAY_END (overlay); ! startpos = OVERLAY_POSITION (ostart); ! endpos = OVERLAY_POSITION (oend); ! if (XFASTINT (end) < startpos) ! break; ! if (insertion && (XFASTINT (start) == startpos ! || XFASTINT (end) == startpos)) ! { ! prop = Foverlay_get (overlay, Qinsert_in_front_hooks); ! if (!NILP (prop)) ! add_overlay_mod_hooklist (prop, overlay); ! } ! if (insertion && (XFASTINT (start) == endpos ! || XFASTINT (end) == endpos)) ! { ! prop = Foverlay_get (overlay, Qinsert_behind_hooks); ! if (!NILP (prop)) ! add_overlay_mod_hooklist (prop, overlay); ! } ! /* Test for intersecting intervals. This does the right thing ! for both insertion and deletion. */ ! if (XFASTINT (end) > startpos && XFASTINT (start) < endpos) ! { ! prop = Foverlay_get (overlay, Qmodification_hooks); ! if (!NILP (prop)) ! add_overlay_mod_hooklist (prop, overlay); } } } + GCPRO4 (overlay, arg1, arg2, arg3); + { + /* Call the functions recorded in last_overlay_modification_hooks. + First copy the vector contents, in case some of these hooks + do subsequent modification of the buffer. */ + int size = last_overlay_modification_hooks_used; + Lisp_Object *copy = (Lisp_Object *) alloca (size * sizeof (Lisp_Object)); + int i; + + bcopy (XVECTOR (last_overlay_modification_hooks)->contents, + copy, size * sizeof (Lisp_Object)); + gcpro1.var = copy; + gcpro1.nvars = size; + + for (i = 0; i < size;) + { + Lisp_Object prop, overlay; + prop = copy[i++]; + overlay = copy[i++]; + call_overlay_mod_hooks (prop, overlay, after, arg1, arg2, arg3); + } + } UNGCPRO; } *************** *** 4215,4222 **** struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; GCPRO4 (list, arg1, arg2, arg3); - if (! after) - add_overlay_mod_hooklist (list, overlay); while (CONSP (list)) { --- 4179,4184 ---- From MAILER-DAEMON Tue Jul 08 21:40:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3tM-0000tt-OF for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:37:08 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3f8-00063T-4a for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:22:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3eB-0005pF-EP for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:21:28 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3Az-0008Cy-3o for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:17 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0Z1-0001U3-K8 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:03:55 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19a0Y0-0006jG-A3 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:02:52 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Tue, 08 Jul 2003 18:02:52 -0400 Subject: [Emacs-diffs] Changes to emacs/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:37:07 -0000 Index: emacs/ChangeLog diff -c emacs/ChangeLog:1.332 emacs/ChangeLog:1.333 *** emacs/ChangeLog:1.332 Fri Jul 4 16:10:42 2003 --- emacs/ChangeLog Tue Jul 8 18:02:51 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-09 Kim F. Storm + + * INSTALL (DETAILED BUILDING AND INSTALLATION): Describe new + functionality of --without-xim. + 2003-06-29 Dave Love * configure.in: Fix XRegisterIMInstantiateCallback check for gcc. From MAILER-DAEMON Tue Jul 08 21:44:49 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3vo-0001ZQ-Ue for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:39:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3VW-0004Ir-F8 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:12:30 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a39h-0000Ml-Lh for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:50:02 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a38I-0007RJ-Hb for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:48:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a1mj-0001Uu-8v for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:22:09 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19a1lh-0004hM-BR for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:21:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Tue, 08 Jul 2003 19:21:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-fonts.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:39:38 -0000 Index: emacs/lisp/progmodes/cc-fonts.el diff -c emacs/lisp/progmodes/cc-fonts.el:1.1 emacs/lisp/progmodes/cc-fonts.el:1.2 *** emacs/lisp/progmodes/cc-fonts.el:1.1 Thu Jul 3 08:30:59 2003 --- emacs/lisp/progmodes/cc-fonts.el Tue Jul 8 19:21:04 2003 *************** *** 2064,2070 **** ;; Kludge: If `c-font-lock-complex-decl-prepare' is on the list we ;; move it first since the doc comment font lockers might add ! ;; `c-type' text properties so they have to be cleared before that. (when (memq 'c-font-lock-complex-decl-prepare list) (setq list (cons 'c-font-lock-complex-decl-prepare (delq 'c-font-lock-complex-decl-prepare --- 2064,2070 ---- ;; Kludge: If `c-font-lock-complex-decl-prepare' is on the list we ;; move it first since the doc comment font lockers might add ! ;; `c-type' text properties, so they have to be cleared before that. (when (memq 'c-font-lock-complex-decl-prepare list) (setq list (cons 'c-font-lock-complex-decl-prepare (delq 'c-font-lock-complex-decl-prepare *************** *** 2642,2671 **** (copy-marker (1+ start)))) t))) ! (defun javadoc-font-lock-keywords () ! (list ! (byte-compile ! `(lambda (limit) ! (c-font-lock-doc-comments "/\\*\\*" limit ! '(("{@[a-z]+[^}\n\r]*}" ; "{@foo ...}" markup. ! 0 ,c-doc-markup-face-name prepend nil) ! ("^\\(/\\*\\)?[ \t*]*\\(@[a-z]+\\)" ; "@foo ..." markup. ! 2 ,c-doc-markup-face-name prepend nil) ! (,(concat "") ! 0 ,c-doc-markup-face-name prepend nil) ! ("&\\(\\sw\\|[.:]\\)+;" ; HTML entities. ! 0 ,c-doc-markup-face-name prepend nil) ! ;; Fontify remaining markup characters as invalid. Note ! ;; that the Javadoc spec is hazy about when "@" is allowed ! ;; in non-markup use. ! (,(lambda (limit) ! (c-find-invalid-doc-markup "[<>&]\\|{@" limit)) ! 0 ,c-invalid-face-name prepend nil) ! )))))) (defconst autodoc-decl-keywords ;; Adorned regexp matching the keywords that introduce declarations --- 2642,2671 ---- (copy-marker (1+ start)))) t))) ! (defconst javadoc-font-lock-doc-comments ! `(("{@[a-z]+[^}\n\r]*}" ; "{@foo ...}" markup. ! 0 ,c-doc-markup-face-name prepend nil) ! ("^\\(/\\*\\)?[ \t*]*\\(@[a-z]+\\)" ; "@foo ..." markup. ! 2 ,c-doc-markup-face-name prepend nil) ! (,(concat "") ! 0 ,c-doc-markup-face-name prepend nil) ! ("&\\(\\sw\\|[.:]\\)+;" ; HTML entities. ! 0 ,c-doc-markup-face-name prepend nil) ! ;; Fontify remaining markup characters as invalid. Note ! ;; that the Javadoc spec is hazy about when "@" is ! ;; allowed in non-markup use. ! (,(lambda (limit) ! (c-find-invalid-doc-markup "[<>&]\\|{@" limit)) ! 0 ,c-invalid-face-name prepend nil))) ! ! (defconst javadoc-font-lock-keywords ! `((,(lambda (limit) ! (c-font-lock-doc-comments "/\\*\\*" limit ! javadoc-font-lock-doc-comments))))) (defconst autodoc-decl-keywords ;; Adorned regexp matching the keywords that introduce declarations *************** *** 2755,2760 **** --- 2755,2771 ---- nil) + (defconst autodoc-font-lock-doc-comments + `(("@\\(\\w+{\\|\\[\\([^\]@\n\r]\\|@@\\)*\\]\\|[@}]\\|$\\)" + ;; In-text markup. + 0 ,c-doc-markup-face-name prepend nil) + (autodoc-font-lock-line-markup) + ;; Fontify remaining markup characters as invalid. + (,(lambda (limit) + (c-find-invalid-doc-markup "@" limit)) + 0 ,c-invalid-face-name prepend nil) + )) + (defun autodoc-font-lock-keywords () ;; Note that we depend on that `c-current-comment-prefix' has got ;; its proper value here. *************** *** 2764,2782 **** ;; following declarations. (setq c-type-decl-end-used t) ! (list ! (byte-compile ! `(lambda (limit) ! (c-font-lock-doc-comments "/[*/]!" limit ! '(("@\\(\\w+{\\|\\[\\([^\]@\n\r]\\|@@\\)*\\]\\|[@}]\\|$\\)" ! ;; In-text markup. ! 0 ,c-doc-markup-face-name prepend nil) ! (autodoc-font-lock-line-markup) ! ;; Fontify remaining markup characters as invalid. ! (,(lambda (limit) ! (c-find-invalid-doc-markup "@" limit)) ! 0 ,c-invalid-face-name prepend nil) ! )))))) ;; AWK. --- 2775,2783 ---- ;; following declarations. (setq c-type-decl-end-used t) ! `((,(lambda (limit) ! (c-font-lock-doc-comments "/[*/]!" limit ! autodoc-font-lock-doc-comments))))) ;; AWK. From MAILER-DAEMON Tue Jul 08 21:48:30 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3j4-0007FI-SS for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:26:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3cF-0005Vs-4i for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:19:27 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3aC-0005DC-Lo for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:17:21 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3BV-0000LH-Vi for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0J3-0007CJ-Az for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:47:25 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19a0I2-0006Bm-7k for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:46:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Tue, 08 Jul 2003 17:46:22 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:26:29 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3304 emacs/src/ChangeLog:1.3305 *** emacs/src/ChangeLog:1.3304 Mon Jul 7 16:42:18 2003 --- emacs/src/ChangeLog Tue Jul 8 17:46:21 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-09 Kim F. Storm + + * xterm.c (use_xim) [!USE_XIM]: Default to disable XIM if emacs + was configured with --without-xim. + 2003-07-07 Richard M. Stallman * xdisp.c (reseat_1): Set it->area to TEXT_AREA. From MAILER-DAEMON Tue Jul 08 21:55:15 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a4Ae-0004rI-8z for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:55:00 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a4Aa-0004pV-SR for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:54:56 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3Fd-0001HI-DW for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:56:06 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a38D-0007nB-21 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:48:25 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a1qJ-0003ME-2u for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:25:51 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19a1pH-0005IQ-UZ for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:24:47 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Tue, 08 Jul 2003 19:24:47 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:54:58 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5270 emacs/lisp/ChangeLog:1.5271 *** emacs/lisp/ChangeLog:1.5270 Tue Jul 8 12:57:15 2003 --- emacs/lisp/ChangeLog Tue Jul 8 19:24:44 2003 *************** *** 1,3 **** --- 1,26 ---- + 2003-07-08 Martin Stjernholm + + * progmodes/cc-engine.el (c-guess-basic-syntax): Do not do hidden + buffer changes; there's third party code that calls this function + directly. + + 2003-07-08 Martin Stjernholm + + * progmodes/cc-fonts.el (javadoc-font-lock-keywords, + autodoc-font-lock-keywords): Don't byte compile on font lock + initialization when running from byte compiled files. + + 2003-07-08 Alan Mackenzie + + * progmodes/cc-engine.el: Fix AWK mode indentation when previous + statement ends with auto-increment "++". + + 2003-07-08 Martin Stjernholm + + * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist, + c-lang-variable-inits, c-lang-variable-inits-tail): The values of + these are changed, so declare them as variables and not constants. + 2003-07-08 Markus Rost * subr.el (dolist, dotimes): Doc fix. From MAILER-DAEMON Tue Jul 08 21:58:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a45E-0003nc-9q for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:49:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3vE-0001Ne-4o for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:39:04 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a39q-0000QS-2m for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:50:06 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a38I-0007RJ-Tm for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:48:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a1mj-0001Un-3R for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:22:09 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19a1lg-0004gv-Q5 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 19:21:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Tue, 08 Jul 2003 19:21:04 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-defs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:49:22 -0000 Index: emacs/lisp/progmodes/cc-defs.el diff -c emacs/lisp/progmodes/cc-defs.el:1.20 emacs/lisp/progmodes/cc-defs.el:1.21 *** emacs/lisp/progmodes/cc-defs.el:1.20 Sat Jul 5 15:55:06 2003 --- emacs/lisp/progmodes/cc-defs.el Tue Jul 8 19:21:04 2003 *************** *** 105,111 **** ;;; Variables also used at compile time. ! (defconst c-version "5.30.2" "CC Mode version number.") (defconst c-version-sym (intern c-version)) --- 105,111 ---- ;;; Variables also used at compile time. ! (defconst c-version "5.30.3" "CC Mode version number.") (defconst c-version-sym (intern c-version)) From MAILER-DAEMON Tue Jul 08 22:04:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a4Ce-0005SW-Oz for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:57:04 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3zK-0002Tn-4B for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:43:18 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3aT-0005Gt-BZ for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:17:37 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3Ay-0000LG-Qr for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:16 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0ZI-0001Uw-GF for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:04:12 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19a0YH-0006ji-7b for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:03:09 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Tue, 08 Jul 2003 18:03:09 -0400 Subject: [Emacs-diffs] Changes to emacs/INSTALL X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:56:57 -0000 Index: emacs/INSTALL diff -c emacs/INSTALL:1.97 emacs/INSTALL:1.98 *** emacs/INSTALL:1.97 Tue May 20 12:57:09 2003 --- emacs/INSTALL Tue Jul 8 18:03:08 2003 *************** *** 291,299 **** --without-png for PNG image support Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d ! scroll bars. --without-xim disables the use of X Input Methods, and ! --disable-largefile omits support for files larger than 2GB on systems ! which support that. Use --without-sound to disable sound support. The `--prefix=PREFIXDIR' option specifies where the installation process should put emacs and its data files. This defaults to `/usr/local'. --- 291,305 ---- --without-png for PNG image support Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d ! scroll bars. ! ! Use --without-xim to inhibit the default use of X Input Methods. In ! this case, the X resource useXIM can be used to turn on use of XIM. ! ! Use --disable-largefile omits support for files larger than 2GB on ! systems which support that. ! ! Use --without-sound to disable sound support. The `--prefix=PREFIXDIR' option specifies where the installation process should put emacs and its data files. This defaults to `/usr/local'. From MAILER-DAEMON Tue Jul 08 22:15:01 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a4Ii-0007Py-QD for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:03:20 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3gN-0006Qm-Ds for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:23:43 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3Pq-0003AS-7b for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:06:39 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3BX-0000Ez-QP for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:51 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0II-000797-Q9 for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:46:38 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19a0HH-0006At-Mx for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:45:35 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 08 Jul 2003 17:45:35 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 02:03:18 -0000 Index: emacs/src/buffer.h diff -c emacs/src/buffer.h:1.90 emacs/src/buffer.h:1.91 *** emacs/src/buffer.h:1.90 Thu Jun 26 19:15:25 2003 --- emacs/src/buffer.h Tue Jul 8 17:45:35 2003 *************** *** 531,536 **** --- 531,539 ---- displaying this buffer. */ unsigned prevent_redisplay_optimizations_p : 1; + /* Position where the overlay lists are centered. */ + EMACS_INT overlay_center; + /* Everything from here down must be a Lisp_Object. */ /* The name of this buffer. */ *************** *** 652,660 **** in order of start-position. */ Lisp_Object overlays_after; - /* Position where the overlay lists are centered. */ - Lisp_Object overlay_center; - /* Non-nil means the buffer contents are regarded as multi-byte form of characters, not a binary code. */ Lisp_Object enable_multibyte_characters; --- 655,660 ---- *************** *** 805,822 **** extern struct buffer buffer_local_types; extern void reset_buffer P_ ((struct buffer *)); ! extern void evaporate_overlays P_ ((int)); ! extern int overlays_at P_ ((int, int, Lisp_Object **, int *, int *, int *, int)); extern int sort_overlays P_ ((Lisp_Object *, int, struct window *)); ! extern void recenter_overlay_lists P_ ((struct buffer *, int)); ! extern int overlay_strings P_ ((int, struct window *, unsigned char **)); extern void validate_region P_ ((Lisp_Object *, Lisp_Object *)); extern void set_buffer_internal P_ ((struct buffer *)); extern void set_buffer_internal_1 P_ ((struct buffer *)); extern void set_buffer_temp P_ ((struct buffer *)); extern void record_buffer P_ ((Lisp_Object)); extern void buffer_slot_type_mismatch P_ ((int)); ! extern void fix_overlays_before P_ ((struct buffer *, int, int)); extern void mmap_set_vars P_ ((int)); EXFUN (Fbuffer_name, 1); --- 805,822 ---- extern struct buffer buffer_local_types; extern void reset_buffer P_ ((struct buffer *)); ! extern void evaporate_overlays P_ ((EMACS_INT)); ! extern int overlays_at P_ ((EMACS_INT, int, Lisp_Object **, int *, int *, int *, int)); extern int sort_overlays P_ ((Lisp_Object *, int, struct window *)); ! extern void recenter_overlay_lists P_ ((struct buffer *, EMACS_INT)); ! extern int overlay_strings P_ ((EMACS_INT, struct window *, unsigned char **)); extern void validate_region P_ ((Lisp_Object *, Lisp_Object *)); extern void set_buffer_internal P_ ((struct buffer *)); extern void set_buffer_internal_1 P_ ((struct buffer *)); extern void set_buffer_temp P_ ((struct buffer *)); extern void record_buffer P_ ((Lisp_Object)); extern void buffer_slot_type_mismatch P_ ((int)); ! extern void fix_overlays_before P_ ((struct buffer *, EMACS_INT, EMACS_INT)); extern void mmap_set_vars P_ ((int)); EXFUN (Fbuffer_name, 1); From MAILER-DAEMON Tue Jul 08 22:38:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a4hI-0005tJ-Jz for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:28:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a4Tf-0002E5-6x for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:14:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a4OM-0000d1-Qb for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:09:14 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3BP-0000hD-Tj for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:43 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0Je-0007E2-Hf for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:48:02 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19a0Id-0006Cs-Bn for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:46:59 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Tue, 08 Jul 2003 17:46:59 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xterm.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 02:28:42 -0000 Index: emacs/src/xterm.c diff -c emacs/src/xterm.c:1.798 emacs/src/xterm.c:1.799 *** emacs/src/xterm.c:1.798 Thu Jun 26 22:21:51 2003 --- emacs/src/xterm.c Tue Jul 8 17:46:58 2003 *************** *** 159,165 **** --- 159,170 ---- #define abs(x) ((x) < 0 ? -(x) : (x)) /* Default to using XIM if available. */ + #ifdef USE_XIM int use_xim = 1; + #else + int use_xim = 0; /* configure --without-xim */ + #endif + /* Non-nil means Emacs uses toolkit scroll bars. */ From MAILER-DAEMON Tue Jul 08 22:40:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a4IN-0007Ip-Lo for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:02:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a4Df-0005sX-Us for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:58:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3Vu-0004PG-Ro for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:12:57 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3AR-0000Ez-Nr for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:50:43 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0sZ-0005Xb-Et for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:24:07 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19a0eZ-0006ur-Gb for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:09:39 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Tue, 08 Jul 2003 18:09:39 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 02:02:58 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.831 emacs/etc/NEWS:1.832 *** emacs/etc/NEWS:1.831 Mon Jul 7 17:01:23 2003 --- emacs/etc/NEWS Tue Jul 8 18:09:38 2003 *************** *** 152,157 **** --- 152,160 ---- ** The X resource useXIM can be used to turn off use of XIM, which may speed up Emacs with slow networking to the X server. + If the configure option `--without-xim' was used to turn off use of + XIM by default, the X resource useXIM can be used to turn it on. + ** `describe-char' can show data from the Unicode database file. See user option `unicode-data'. From MAILER-DAEMON Tue Jul 08 22:45:44 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a4xj-00028r-7C for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:45:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a4rd-0000cV-Os for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:39:25 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a4mn-0007gf-Va for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:34:27 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3BO-0000LH-Hx for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0Ka-0007HX-1F for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:49:00 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19a0JY-0006ET-CY for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:47:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 08 Jul 2003 17:47:56 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 02:45:40 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.428 emacs/src/buffer.c:1.429 *** emacs/src/buffer.c:1.428 Sun Jul 6 21:45:49 2003 --- emacs/src/buffer.c Tue Jul 8 17:47:55 2003 *************** *** 32,38 **** #endif #ifndef MAXPATHLEN ! /* in 4.1, param.h fails to define this. */ #define MAXPATHLEN 1024 #endif /* not MAXPATHLEN */ --- 32,38 ---- #endif #ifndef MAXPATHLEN ! /* in 4.1 [probably SunOS? -stef] , param.h fails to define this. */ #define MAXPATHLEN 1024 #endif /* not MAXPATHLEN */ *************** *** 648,654 **** b->read_only = Qnil; b->overlays_before = Qnil; b->overlays_after = Qnil; ! XSETFASTINT (b->overlay_center, 1); b->mark_active = Qnil; b->point_before_scroll = Qnil; b->file_format = Qnil; --- 648,654 ---- b->read_only = Qnil; b->overlays_before = Qnil; b->overlays_after = Qnil; ! b->overlay_center = BEG; b->mark_active = Qnil; b->point_before_scroll = Qnil; b->file_format = Qnil; *************** *** 2420,2426 **** int overlays_at (pos, extend, vec_ptr, len_ptr, next_ptr, prev_ptr, change_req) ! int pos; int extend; Lisp_Object **vec_ptr; int *len_ptr; --- 2420,2426 ---- int overlays_at (pos, extend, vec_ptr, len_ptr, next_ptr, prev_ptr, change_req) ! EMACS_INT pos; int extend; Lisp_Object **vec_ptr; int *len_ptr; *************** *** 2942,2948 **** int overlay_strings (pos, w, pstr) ! int pos; struct window *w; unsigned char **pstr; { --- 2942,2948 ---- int overlay_strings (pos, w, pstr) ! EMACS_INT pos; struct window *w; unsigned char **pstr; { *************** *** 2955,2962 **** for (ov = current_buffer->overlays_before; CONSP (ov); ov = XCDR (ov)) { overlay = XCAR (ov); ! if (!OVERLAYP (overlay)) ! abort (); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); --- 2955,2961 ---- for (ov = current_buffer->overlays_before; CONSP (ov); ov = XCDR (ov)) { overlay = XCAR (ov); ! eassert (OVERLAYP (overlay)); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); *************** *** 2984,2991 **** for (ov = current_buffer->overlays_after; CONSP (ov); ov = XCDR (ov)) { overlay = XCAR (ov); ! if (!OVERLAYP (overlay)) ! abort (); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); --- 2983,2989 ---- for (ov = current_buffer->overlays_after; CONSP (ov); ov = XCDR (ov)) { overlay = XCAR (ov); ! eassert (!OVERLAYP (overlay)); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); *************** *** 3070,3076 **** void recenter_overlay_lists (buf, pos) struct buffer *buf; ! int pos; { Lisp_Object overlay, tail, next, prev, beg, end; --- 3068,3074 ---- void recenter_overlay_lists (buf, pos) struct buffer *buf; ! EMACS_INT pos; { Lisp_Object overlay, tail, next, prev, beg, end; *************** *** 3127,3134 **** Lisp_Object otherbeg, otheroverlay; otheroverlay = XCAR (other); ! if (! OVERLAY_VALID (otheroverlay)) ! abort (); otherbeg = OVERLAY_START (otheroverlay); if (OVERLAY_POSITION (otherbeg) >= where) --- 3125,3131 ---- Lisp_Object otherbeg, otheroverlay; otheroverlay = XCAR (other); ! eassert (! OVERLAY_VALID (otheroverlay)); otherbeg = OVERLAY_START (otheroverlay); if (OVERLAY_POSITION (otherbeg) >= where) *************** *** 3204,3211 **** Lisp_Object otherend, otheroverlay; otheroverlay = XCAR (other); ! if (! OVERLAY_VALID (otheroverlay)) ! abort (); otherend = OVERLAY_END (otheroverlay); if (OVERLAY_POSITION (otherend) <= where) --- 3201,3207 ---- Lisp_Object otherend, otheroverlay; otheroverlay = XCAR (other); ! eassert (! OVERLAY_VALID (otheroverlay)); otherend = OVERLAY_END (otheroverlay); if (OVERLAY_POSITION (otherend) <= where) *************** *** 3222,3257 **** } } ! XSETFASTINT (buf->overlay_center, pos); } void adjust_overlays_for_insert (pos, length) ! int pos; ! int length; { /* After an insertion, the lists are still sorted properly, but we may need to update the value of the overlay center. */ ! if (XFASTINT (current_buffer->overlay_center) >= pos) ! XSETFASTINT (current_buffer->overlay_center, ! XFASTINT (current_buffer->overlay_center) + length); } void adjust_overlays_for_delete (pos, length) ! int pos; ! int length; { ! if (XFASTINT (current_buffer->overlay_center) < pos) /* The deletion was to our right. No change needed; the before- and after-lists are still consistent. */ ; ! else if (XFASTINT (current_buffer->overlay_center) > pos + length) /* The deletion was to our left. We need to adjust the center value to account for the change in position, but the lists are consistent given the new value. */ ! XSETFASTINT (current_buffer->overlay_center, ! XFASTINT (current_buffer->overlay_center) - length); else /* We're right in the middle. There might be things on the after-list that now belong on the before-list. Recentering will move them, --- 3218,3251 ---- } } ! buf->overlay_center = pos; } void adjust_overlays_for_insert (pos, length) ! EMACS_INT pos; ! EMACS_INT length; { /* After an insertion, the lists are still sorted properly, but we may need to update the value of the overlay center. */ ! if (current_buffer->overlay_center >= pos) ! current_buffer->overlay_center += length; } void adjust_overlays_for_delete (pos, length) ! EMACS_INT pos; ! EMACS_INT length; { ! if (current_buffer->overlay_center < pos) /* The deletion was to our right. No change needed; the before- and after-lists are still consistent. */ ; ! else if (current_buffer->overlay_center > pos + length) /* The deletion was to our left. We need to adjust the center value to account for the change in position, but the lists are consistent given the new value. */ ! current_buffer->overlay_center -= length; else /* We're right in the middle. There might be things on the after-list that now belong on the before-list. Recentering will move them, *************** *** 3311,3317 **** } /* Add it to the end of the wrong list. Later on, recenter_overlay_lists will move it to the right place. */ ! if (endpos < XINT (current_buffer->overlay_center)) { if (NILP (afterp)) after_list = tail; --- 3305,3311 ---- } /* Add it to the end of the wrong list. Later on, recenter_overlay_lists will move it to the right place. */ ! if (endpos < current_buffer->overlay_center) { if (NILP (afterp)) after_list = tail; *************** *** 3355,3361 **** Qnil); tem = startpos; startpos = endpos; endpos = tem; } ! if (endpos < XINT (current_buffer->overlay_center)) { if (NILP (afterp)) after_list = tail; --- 3349,3355 ---- Qnil); tem = startpos; startpos = endpos; endpos = tem; } ! if (endpos < current_buffer->overlay_center) { if (NILP (afterp)) after_list = tail; *************** *** 3388,3403 **** XSETCDR (beforep, current_buffer->overlays_before); current_buffer->overlays_before = before_list; } ! recenter_overlay_lists (current_buffer, ! XINT (current_buffer->overlay_center)); if (!NILP (afterp)) { XSETCDR (afterp, current_buffer->overlays_after); current_buffer->overlays_after = after_list; } ! recenter_overlay_lists (current_buffer, ! XINT (current_buffer->overlay_center)); } /* We have two types of overlay: the one whose ending marker is --- 3382,3395 ---- XSETCDR (beforep, current_buffer->overlays_before); current_buffer->overlays_before = before_list; } ! recenter_overlay_lists (current_buffer, current_buffer->overlay_center); if (!NILP (afterp)) { XSETCDR (afterp, current_buffer->overlays_after); current_buffer->overlays_after = after_list; } ! recenter_overlay_lists (current_buffer, current_buffer->overlay_center); } /* We have two types of overlay: the one whose ending marker is *************** *** 3415,3426 **** void fix_overlays_before (bp, prev, pos) struct buffer *bp; ! int prev, pos; { /* If parent is nil, replace overlays_before; otherwise, XCDR(parent). */ Lisp_Object tail = bp->overlays_before, parent = Qnil; Lisp_Object right_pair; ! int end; /* After the insertion, the several overlays may be in incorrect order. The possibility is that, in the list `overlays_before', --- 3407,3418 ---- void fix_overlays_before (bp, prev, pos) struct buffer *bp; ! EMACS_INT prev, pos; { /* If parent is nil, replace overlays_before; otherwise, XCDR(parent). */ Lisp_Object tail = bp->overlays_before, parent = Qnil; Lisp_Object right_pair; ! EMACS_INT end; /* After the insertion, the several overlays may be in incorrect order. The possibility is that, in the list `overlays_before', *************** *** 3554,3566 **** /* Put the new overlay on the wrong list. */ end = OVERLAY_END (overlay); ! if (OVERLAY_POSITION (end) < XINT (b->overlay_center)) b->overlays_after = Fcons (overlay, b->overlays_after); else b->overlays_before = Fcons (overlay, b->overlays_before); /* This puts it in the right list, and in the right order. */ ! recenter_overlay_lists (b, XINT (b->overlay_center)); /* We don't need to redisplay the region covered by the overlay, because the overlay has no properties at the moment. */ --- 3546,3558 ---- /* Put the new overlay on the wrong list. */ end = OVERLAY_END (overlay); ! if (OVERLAY_POSITION (end) < b->overlay_center) b->overlays_after = Fcons (overlay, b->overlays_after); else b->overlays_before = Fcons (overlay, b->overlays_before); /* This puts it in the right list, and in the right order. */ ! recenter_overlay_lists (b, b->overlay_center); /* We don't need to redisplay the region covered by the overlay, because the overlay has no properties at the moment. */ *************** *** 3573,3579 **** static void modify_overlay (buf, start, end) struct buffer *buf; ! int start, end; { if (start > end) { --- 3565,3571 ---- static void modify_overlay (buf, start, end) struct buffer *buf; ! EMACS_INT start, end; { if (start > end) { *************** *** 3691,3703 **** /* Put the overlay on the wrong list. */ end = OVERLAY_END (overlay); ! if (OVERLAY_POSITION (end) < XINT (b->overlay_center)) b->overlays_after = Fcons (overlay, b->overlays_after); else b->overlays_before = Fcons (overlay, b->overlays_before); /* This puts it in the right list, and in the right order. */ ! recenter_overlay_lists (b, XINT (b->overlay_center)); return unbind_to (count, overlay); } --- 3683,3695 ---- /* Put the overlay on the wrong list. */ end = OVERLAY_END (overlay); ! if (OVERLAY_POSITION (end) < b->overlay_center) b->overlays_after = Fcons (overlay, b->overlays_after); else b->overlays_before = Fcons (overlay, b->overlays_before); /* This puts it in the right list, and in the right order. */ ! recenter_overlay_lists (b, b->overlay_center); return unbind_to (count, overlay); } *************** *** 4241,4252 **** property is set. */ void evaporate_overlays (pos) ! int pos; { Lisp_Object tail, overlay, hit_list; hit_list = Qnil; ! if (pos <= XFASTINT (current_buffer->overlay_center)) for (tail = current_buffer->overlays_before; CONSP (tail); tail = XCDR (tail)) { --- 4233,4244 ---- property is set. */ void evaporate_overlays (pos) ! EMACS_INT pos; { Lisp_Object tail, overlay, hit_list; hit_list = Qnil; ! if (pos <= current_buffer->overlay_center) for (tail = current_buffer->overlays_before; CONSP (tail); tail = XCDR (tail)) { *************** *** 4906,4912 **** buffer_defaults.file_format = Qnil; buffer_defaults.overlays_before = Qnil; buffer_defaults.overlays_after = Qnil; ! XSETFASTINT (buffer_defaults.overlay_center, BEG); XSETFASTINT (buffer_defaults.tab_width, 8); buffer_defaults.truncate_lines = Qnil; --- 4898,4904 ---- buffer_defaults.file_format = Qnil; buffer_defaults.overlays_before = Qnil; buffer_defaults.overlays_after = Qnil; ! buffer_defaults.overlay_center = BEG; XSETFASTINT (buffer_defaults.tab_width, 8); buffer_defaults.truncate_lines = Qnil; From MAILER-DAEMON Tue Jul 08 22:47:50 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3kb-0007jD-5M for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:28:05 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3gf-0006Vo-PX for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:24:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3Hq-0001iU-Mh for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:58:23 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3CJ-0007RJ-Lt for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:52:40 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19Zzyx-0003vH-HZ for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:26:39 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19Zzxv-0004XI-SP for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:25:35 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 08 Jul 2003 17:25:35 -0400 Subject: [Emacs-diffs] Changes to emacs/src/cmds.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:28:03 -0000 Index: emacs/src/cmds.c diff -c emacs/src/cmds.c:1.88 emacs/src/cmds.c:1.89 *** emacs/src/cmds.c:1.88 Sat Nov 9 07:46:25 2002 --- emacs/src/cmds.c Tue Jul 8 17:25:35 2003 *************** *** 1,5 **** /* Simple built-in editing commands. ! Copyright (C) 1985, 93, 94, 95, 96, 97, 1998, 2001, 02 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,6 ---- /* Simple built-in editing commands. ! Copyright (C) 1985, 93, 94, 95, 96, 97, 1998, 2001, 02, 03 ! Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 368,379 **** return 0. A value of 1 indicates this *might* not have been simple. A value of 2 means this did things that call for an undo boundary. */ int internal_self_insert (c, noautofill) int c; int noautofill; { - extern Lisp_Object Fexpand_abbrev (); int hairy = 0; Lisp_Object tem; register enum syntaxcode synt; --- 369,381 ---- return 0. A value of 1 indicates this *might* not have been simple. A value of 2 means this did things that call for an undo boundary. */ + static Lisp_Object Qexpand_abbrev; + int internal_self_insert (c, noautofill) int c; int noautofill; { int hairy = 0; Lisp_Object tem; register enum syntaxcode synt; *************** *** 477,483 **** int modiff = MODIFF; Lisp_Object sym; ! sym = Fexpand_abbrev (); /* If we expanded an abbrev which has a hook, and the hook has a non-nil `no-self-insert' property, --- 479,485 ---- int modiff = MODIFF; Lisp_Object sym; ! sym = call0 (Qexpand_abbrev); /* If we expanded an abbrev which has a hook, and the hook has a non-nil `no-self-insert' property, *************** *** 564,569 **** --- 566,574 ---- Qoverwrite_mode_binary = intern ("overwrite-mode-binary"); staticpro (&Qoverwrite_mode_binary); + + Qexpand_abbrev = intern ("expand-abbrev"); + staticpro (&Qexpand_abbrev); DEFVAR_LISP ("self-insert-face", &Vself_insert_face, doc: /* If non-nil, set the face of the next self-inserting character to this. From MAILER-DAEMON Tue Jul 08 22:54:38 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a56H-0004RX-ON for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:54:33 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a4lX-0007BH-Lr for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:33:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a4dr-0004zR-5s for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:25:12 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a4WJ-0002nx-LJ for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:17:23 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19a4VI-0000sV-Cy for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:16:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Tue, 08 Jul 2003 22:16:20 -0400 Subject: [Emacs-diffs] Changes to emacs/src/coding.c [emacs-unicode] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 02:54:32 -0000 Index: emacs/src/coding.c diff -c emacs/src/coding.c:1.239.2.56 emacs/src/coding.c:1.239.2.57 *** emacs/src/coding.c:1.239.2.56 Thu Jun 5 22:13:16 2003 --- emacs/src/coding.c Tue Jul 8 22:16:17 2003 *************** *** 3987,3998 **** SJIS_TO_JIS (c); charset = charset_kanji; } ! else { /* SJIS -> JISX0201-Kana */ c &= 0x7F; charset = charset_kana; } } if (charset->id != charset_ascii && last_id != charset->id) --- 3987,4000 ---- SJIS_TO_JIS (c); charset = charset_kanji; } ! else if (c > 0xA0) { /* SJIS -> JISX0201-Kana */ c &= 0x7F; charset = charset_kana; } + else + goto invalid_code; } if (charset->id != charset_ascii && last_id != charset->id) From MAILER-DAEMON Tue Jul 08 23:00:35 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a56V-0004WX-QB for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:54:47 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a4hX-0005zB-9P for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:28:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a4WA-0002kg-MS for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:17:15 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a4W0-0002hp-FJ for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:17:04 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19a4Ux-0000ra-8B for emacs-diffs@gnu.org; Tue, 08 Jul 2003 22:15:59 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Tue, 08 Jul 2003 22:15:59 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog [emacs-unicode] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 02:54:46 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.2479.2.162 emacs/src/ChangeLog:1.2479.2.163 *** emacs/src/ChangeLog:1.2479.2.162 Wed Jun 25 20:27:04 2003 --- emacs/src/ChangeLog Tue Jul 8 22:15:52 2003 *************** *** 1,4 **** ! 2003-06-26 Kenichi Handa * fileio.c (choose_write_coding_system): Return a decided coding system. --- 1,8 ---- ! 2003-07-09 Kenichi Handa ! ! * coding.c (decode_coding_sjis): Check bytes more rigidly. ! ! 2003-06-26 Kenichi Handa * fileio.c (choose_write_coding_system): Return a decided coding system. From MAILER-DAEMON Tue Jul 08 23:36:35 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a3nX-00007h-JV for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:31:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a3kE-0007bd-CV for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:27:42 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a3N1-0002WJ-Eh for emacs-diffs@gnu.org; Tue, 08 Jul 2003 21:03:43 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3C9-0000b7-Jc for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:52:29 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a01u-0004TB-SV for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:29:42 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19a00t-00050V-PB for emacs-diffs@gnu.org; Tue, 08 Jul 2003 17:28:39 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 08 Jul 2003 17:28:39 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 01:31:05 -0000 Index: emacs/src/xdisp.c diff -c emacs/src/xdisp.c:1.841 emacs/src/xdisp.c:1.842 *** emacs/src/xdisp.c:1.841 Mon Jul 7 16:40:57 2003 --- emacs/src/xdisp.c Tue Jul 8 17:28:38 2003 *************** *** 19270,19276 **** { struct glyph_row *row, *first; struct glyph *glyph, *end; ! int i, past_end = 0; first = MATRIX_FIRST_TEXT_ROW (w->current_matrix); row = row_containing_pos (w, charpos, first, NULL, 0); --- 19270,19276 ---- { struct glyph_row *row, *first; struct glyph *glyph, *end; ! int past_end = 0; first = MATRIX_FIRST_TEXT_ROW (w->current_matrix); row = row_containing_pos (w, charpos, first, NULL, 0); From MAILER-DAEMON Tue Jul 08 23:42:32 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19a5nX-0000LI-KM for mharc-emacs-diffs@gnu.org; Tue, 08 Jul 2003 23:39:15 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19a5jI-0006ph-Ae for emacs-diffs@gnu.org; Tue, 08 Jul 2003 23:34:52 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19a5Qb-000141-VN for emacs-diffs@gnu.org; Tue, 08 Jul 2003 23:15:34 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19a3B6-0000Uf-Sm for emacs-diffs@gnu.org; Tue, 08 Jul 2003 20:51:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19a0X8-0001Dm-7T for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:01:58 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19a0W6-0006ft-QR for emacs-diffs@gnu.org; Tue, 08 Jul 2003 18:00:54 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Tue, 08 Jul 2003 18:00:54 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xterm.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 03:39:14 -0000 Index: emacs/src/xterm.c diff -c emacs/src/xterm.c:1.799 emacs/src/xterm.c:1.800 *** emacs/src/xterm.c:1.799 Tue Jul 8 17:46:58 2003 --- emacs/src/xterm.c Tue Jul 8 18:00:53 2003 *************** *** 10530,10539 **** --- 10530,10546 ---- build_string ("useXIM"), build_string ("UseXIM"), Qnil, Qnil); + #ifdef USE_XIM if (STRINGP (value) && (!strcmp (XSTRING (value)->data, "false") || !strcmp (XSTRING (value)->data, "off"))) use_xim = 0; + #else + if (STRINGP (value) + && (!strcmp (XSTRING (value)->data, "true") + || !strcmp (XSTRING (value)->data, "on"))) + use_xim = 1; + #endif } UNBLOCK_INPUT; From MAILER-DAEMON Wed Jul 09 11:27:48 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aGrD-0004wW-PF for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:27:47 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aGXq-0001oV-TU for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:07:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGIX-0007kx-Ej for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:52:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGI1-0007Z9-O1 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:51:25 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGH0-0002MT-AI for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:50:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:50:22 -0400 Subject: [Emacs-diffs] Changes to emacs/src/indent.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:27:45 -0000 Index: emacs/src/indent.c diff -c emacs/src/indent.c:1.156 emacs/src/indent.c:1.157 *** emacs/src/indent.c:1.156 Sat May 24 17:59:01 2003 --- emacs/src/indent.c Wed Jul 9 10:50:21 2003 *************** *** 1,5 **** /* Indentation functions. ! Copyright (C) 1985,86,87,88,93,94,95,98, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* Indentation functions. ! Copyright (C) 1985,86,87,88,93,94,95,98,2000,01,02,2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 374,381 **** /* If the buffer has overlays, text properties, or multibyte characters, use a more general algorithm. */ if (BUF_INTERVALS (current_buffer) ! || !NILP (current_buffer->overlays_before) ! || !NILP (current_buffer->overlays_after) || Z != Z_BYTE) return current_column_1 (); --- 374,381 ---- /* If the buffer has overlays, text properties, or multibyte characters, use a more general algorithm. */ if (BUF_INTERVALS (current_buffer) ! || current_buffer->overlays_before ! || current_buffer->overlays_after || Z != Z_BYTE) return current_column_1 (); From MAILER-DAEMON Wed Jul 09 11:28:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aGlq-0004I8-Ft for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:22:14 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aGNr-0000ew-Ti for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:57:27 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGMu-0000JE-IW for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:56:52 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGJ9-0007xq-CR for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:52:35 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGI7-0002P6-U5 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:51:31 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:51:31 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:22:13 -0000 Index: emacs/src/xdisp.c diff -c emacs/src/xdisp.c:1.842 emacs/src/xdisp.c:1.843 *** emacs/src/xdisp.c:1.842 Tue Jul 8 17:28:38 2003 --- emacs/src/xdisp.c Wed Jul 9 10:51:29 2003 *************** *** 3986,3992 **** int charpos; { extern Lisp_Object Qafter_string, Qbefore_string, Qwindow, Qpriority; ! Lisp_Object ov, overlay, window, str, invisible; int start, end; int size = 20; int n = 0, i, j, invis_p; --- 3986,3993 ---- int charpos; { extern Lisp_Object Qafter_string, Qbefore_string, Qwindow, Qpriority; ! Lisp_Object overlay, window, str, invisible; ! struct Lisp_Overlay *ov; int start, end; int size = 20; int n = 0, i, j, invis_p; *************** *** 4026,4034 **** while (0) /* Process overlay before the overlay center. */ ! for (ov = current_buffer->overlays_before; CONSP (ov); ov = XCDR (ov)) { ! overlay = XCAR (ov); xassert (OVERLAYP (overlay)); start = OVERLAY_POSITION (OVERLAY_START (overlay)); end = OVERLAY_POSITION (OVERLAY_END (overlay)); --- 4027,4035 ---- while (0) /* Process overlay before the overlay center. */ ! for (ov = current_buffer->overlays_before; ov; ov = ov->next) { ! XSETMISC (overlay, ov); xassert (OVERLAYP (overlay)); start = OVERLAY_POSITION (OVERLAY_START (overlay)); end = OVERLAY_POSITION (OVERLAY_END (overlay)); *************** *** 4066,4074 **** } /* Process overlays after the overlay center. */ ! for (ov = current_buffer->overlays_after; CONSP (ov); ov = XCDR (ov)) { ! overlay = XCAR (ov); xassert (OVERLAYP (overlay)); start = OVERLAY_POSITION (OVERLAY_START (overlay)); end = OVERLAY_POSITION (OVERLAY_END (overlay)); --- 4067,4075 ---- } /* Process overlays after the overlay center. */ ! for (ov = current_buffer->overlays_after; ov; ov = ov->next) { ! XSETMISC (overlay, ov); xassert (OVERLAYP (overlay)); start = OVERLAY_POSITION (OVERLAY_START (overlay)); end = OVERLAY_POSITION (OVERLAY_END (overlay)); From MAILER-DAEMON Wed Jul 09 11:49:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aHBT-0008FV-9U for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:48:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aGZI-00026W-NO for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:09:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGND-0000PV-T1 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:56:51 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aFxe-0004CZ-QU for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:30:22 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aFwY-0000mu-D3 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:29:14 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:29:14 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:48:41 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3306 emacs/src/ChangeLog:1.3307 *** emacs/src/ChangeLog:1.3306 Tue Jul 8 18:01:16 2003 --- emacs/src/ChangeLog Wed Jul 9 10:29:11 2003 *************** *** 1,3 **** --- 1,25 ---- + 2003-07-08 Stefan Monnier + + * buffer.c (report_overlay_modification): Don't run hooks while + traversing the list of overlays. + + * buffer.h (struct buffer): Use an int for overlay_center. + (overlays_at, evaporate_overlays, recenter_overlay_lists) + (overlay_strings, fix_overlays_before): Use EMACS_INT for positions. + + * buffer.c (reset_buffer, recenter_overlay_lists) + (adjust_overlays_for_insert, adjust_overlays_for_delete) + (fix_overlays_in_range, Fmake_overlay, Fmove_overlay) + (evaporate_overlays, init_buffer_once): Update use of overlay_center. + (overlays_at, evaporate_overlays, recenter_overlay_lists) + (overlay_strings, fix_overlays_before): Use EMACS_INT for positions. + + * xdisp.c (fast_find_position): Remove unused var. + + * cmds.c (Qexpand_abbrev): New sym. + (syms_of_cmds): Initialize it. + (internal_self_insert): Use it to call expand-abbrev. + 2003-07-09 Kim F. Storm * xterm.c (use_xim) [!USE_XIM]: Default to disable XIM if emacs *************** *** 15,20 **** --- 37,45 ---- * buffer.c (Fkill_buffer): Clear charpos cache if necessary. 2003-07-06 Stefan Monnier + + * minibuf.c (read_minibuf): UNGCPRO before returning. + (Ftry_completion, Fall_completions): Doc fix. * alloc.c (live_float_p): Check that p is not past the `floats' array, now that `floats' is not the last element of the struct any more. From MAILER-DAEMON Wed Jul 09 11:55:31 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aGeL-00033Y-U1 for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:14:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aGYq-0001yb-TC for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:08:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGNp-0000c8-0W for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:57:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGJa-000816-Ai for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:53:02 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGIY-0002QL-8e for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:51:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:51:58 -0400 Subject: [Emacs-diffs] Changes to emacs/src/editfns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:14:28 -0000 Index: emacs/src/editfns.c diff -c emacs/src/editfns.c:1.358 emacs/src/editfns.c:1.359 *** emacs/src/editfns.c:1.358 Thu Jun 26 19:17:13 2003 --- emacs/src/editfns.c Wed Jul 9 10:51:57 2003 *************** *** 338,352 **** Lisp_Object *vec; int len; { ! Lisp_Object tail, overlay, start, end; int startpos, endpos; int idx = 0; ! for (tail = current_buffer->overlays_before; ! GC_CONSP (tail); ! tail = XCDR (tail)) { ! overlay = XCAR (tail); end = OVERLAY_END (overlay); endpos = OVERLAY_POSITION (end); --- 338,351 ---- Lisp_Object *vec; int len; { ! Lisp_Object overlay, start, end; ! struct Lisp_Overlay *tail; int startpos, endpos; int idx = 0; ! for (tail = current_buffer->overlays_before; tail; tail = tail->next) { ! XSETMISC (overlay, tail); end = OVERLAY_END (overlay); endpos = OVERLAY_POSITION (end); *************** *** 363,373 **** } } ! for (tail = current_buffer->overlays_after; ! GC_CONSP (tail); ! tail = XCDR (tail)) { ! overlay = XCAR (tail); start = OVERLAY_START (overlay); startpos = OVERLAY_POSITION (start); --- 362,370 ---- } } ! for (tail = current_buffer->overlays_after; tail; tail = tail->next) { ! XSETMISC (overlay, tail); start = OVERLAY_START (overlay); startpos = OVERLAY_POSITION (start); From MAILER-DAEMON Wed Jul 09 12:19:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aHLf-0001VF-3p for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:59:15 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aGeC-00031l-E9 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:14:20 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGMr-0000H0-Ho for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:56:51 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGLF-0008CV-N5 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:54:45 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGKE-0002T7-H1 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:53:42 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:53:42 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:59:08 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.312 emacs/src/alloc.c:1.313 *** emacs/src/alloc.c:1.312 Mon Jul 7 16:39:40 2003 --- emacs/src/alloc.c Wed Jul 9 10:53:41 2003 *************** *** 5007,5014 **** struct Lisp_Overlay *ptr = XOVERLAY (obj); mark_object (ptr->start); mark_object (ptr->end); ! obj = ptr->plist; ! goto loop; } break; --- 5007,5018 ---- struct Lisp_Overlay *ptr = XOVERLAY (obj); mark_object (ptr->start); mark_object (ptr->end); ! mark_object (ptr->plist); ! if (ptr->next) ! { ! XSETMISC (obj, ptr->next); ! goto loop; ! } } break; *************** *** 5062,5068 **** Lisp_Object buf; { register struct buffer *buffer = XBUFFER (buf); ! register Lisp_Object *ptr; Lisp_Object base_buffer; VECTOR_MARK (buffer); --- 5066,5072 ---- Lisp_Object buf; { register struct buffer *buffer = XBUFFER (buf); ! register Lisp_Object *ptr, tmp; Lisp_Object base_buffer; VECTOR_MARK (buffer); *************** *** 5104,5109 **** --- 5108,5124 ---- } else mark_object (buffer->undo_list); + + if (buffer->overlays_before) + { + XSETMISC (tmp, buffer->overlays_before); + mark_object (tmp); + } + if (buffer->overlays_after) + { + XSETMISC (tmp, buffer->overlays_after); + mark_object (tmp); + } for (ptr = &buffer->name; (char *)ptr < (char *)buffer + sizeof (struct buffer); From MAILER-DAEMON Wed Jul 09 12:34:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aHnd-0005Y9-Cf for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:28:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHcA-0003ZP-81 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:16:18 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aH0b-0006as-5s for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:38:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGDt-0006ag-PB for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:47:09 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGCs-0002Db-K4 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:46:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:46:06 -0400 Subject: [Emacs-diffs] Changes to emacs/src/lisp.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:28:07 -0000 Index: emacs/src/lisp.h diff -c emacs/src/lisp.h:1.462 emacs/src/lisp.h:1.463 *** emacs/src/lisp.h:1.462 Sun Jul 6 17:06:00 2003 --- emacs/src/lisp.h Wed Jul 9 10:46:06 2003 *************** *** 1225,1230 **** --- 1225,1231 ---- int type : 16; /* = Lisp_Misc_Overlay */ unsigned gcmarkbit : 1; int spacer : 15; + struct Lisp_Overlay *next; Lisp_Object start, end, plist; }; From MAILER-DAEMON Wed Jul 09 12:37:49 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aGQn-0000v2-4Q for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:00:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aGKR-00084v-5v for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:53:55 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGIE-0007dl-3p for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:52:10 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGGv-0007Ij-4b for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:50:17 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGFq-0002IS-VU for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:49:10 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:49:10 -0400 Subject: [Emacs-diffs] Changes to emacs/src/intervals.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 15:00:27 -0000 Index: emacs/src/intervals.c diff -c emacs/src/intervals.c:1.122 emacs/src/intervals.c:1.123 *** emacs/src/intervals.c:1.122 Wed May 21 12:39:49 2003 --- emacs/src/intervals.c Wed Jul 9 10:49:10 2003 *************** *** 2009,2016 **** if (charpos > BUF_ZV (buffer) || charpos < BUF_BEGV (buffer)) abort (); ! have_overlays = (! NILP (buffer->overlays_before) ! || ! NILP (buffer->overlays_after)); /* If we have no text properties and overlays, then we can do it quickly. */ --- 2009,2015 ---- if (charpos > BUF_ZV (buffer) || charpos < BUF_BEGV (buffer)) abort (); ! have_overlays = (buffer->overlays_before || buffer->overlays_after); /* If we have no text properties and overlays, then we can do it quickly. */ From MAILER-DAEMON Wed Jul 09 12:55:36 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIBS-000176-LS for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:52:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHxh-0006qk-5P for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:38:33 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHqO-0005kj-MS for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:31:31 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHcK-0003cN-ON for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:16:28 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHbJ-0008Us-Bn for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:15:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 12:15:25 -0400 Subject: [Emacs-diffs] Changes to emacs/info/dir X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:52:44 -0000 Index: emacs/info/dir diff -c emacs/info/dir:1.24 emacs/info/dir:1.25 *** emacs/info/dir:1.24 Mon Jun 17 07:46:10 2002 --- emacs/info/dir Wed Jul 9 12:15:24 2003 *************** *** 13,20 **** Type "?" for a list of Info commands, or "h" to visit an Info tutorial. Type "m" to choose a menu item--for instance, "mEmacs" visits the Emacs manual. ! In Emacs Info, you can click mouse button 2 on a menu item or cross reference ! to follow it to its target. * Menu: Each line that starts with a * is a topic you can select with "m". Every third topic has a red *. --- 13,20 ---- Type "?" for a list of Info commands, or "h" to visit an Info tutorial. Type "m" to choose a menu item--for instance, "mEmacs" visits the Emacs manual. ! In Emacs Info, you can click mouse button 2 on a menu item ! or cross reference to follow it to its target. * Menu: Each line that starts with a * is a topic you can select with "m". Every third topic has a red *. From MAILER-DAEMON Wed Jul 09 13:00:27 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aHiJ-0004Sm-8S for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:22:39 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aGUH-0001O6-M2 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:04:05 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGIV-0007jy-N0 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:52:26 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGIV-0007jr-Dt for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:51:55 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGHT-0002NP-Sn for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:50:51 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:50:51 -0400 Subject: [Emacs-diffs] Changes to emacs/src/fileio.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:22:37 -0000 Index: emacs/src/fileio.c diff -c emacs/src/fileio.c:1.490 emacs/src/fileio.c:1.491 *** emacs/src/fileio.c:1.490 Sat Jun 21 20:04:10 2003 --- emacs/src/fileio.c Wed Jul 9 10:50:51 2003 *************** *** 1,5 **** /* File IO for GNU Emacs. ! Copyright (C) 1985,86,87,88,93,94,95,96,97,98,99,2000, 2001 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* File IO for GNU Emacs. ! Copyright (C) 1985,86,87,88,93,94,95,96,97,98,99,2000,01,2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 3844,3851 **** buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! buf->overlays_before = Qnil; ! buf->overlays_after = Qnil; set_buffer_internal (buf); Ferase_buffer (); --- 3844,3851 ---- buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! buf->overlays_before = NULL; ! buf->overlays_after = NULL; set_buffer_internal (buf); Ferase_buffer (); From MAILER-DAEMON Wed Jul 09 13:16:08 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIIr-0002F2-UF for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:00:25 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHVA-0002cM-5A for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:09:04 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGfH-0003Rj-5P for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:15:54 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGbo-0002L9-9k for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:11:52 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGan-000372-58 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:10:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 11:10:49 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:00:19 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3307 emacs/src/ChangeLog:1.3308 *** emacs/src/ChangeLog:1.3307 Wed Jul 9 10:29:11 2003 --- emacs/src/ChangeLog Wed Jul 9 11:10:47 2003 *************** *** 1,3 **** --- 1,40 ---- + 2003-07-09 Stefan Monnier + + Change overlays_after and overlays_before so the overlays themselves + are linked into lists, rather than using cons cells. After all each + Lisp_Misc already occupies 5 words, so we can add a `next' field to + Lisp_Overlay for free and save up one cons cell per overlay (not + to mention one indirection when traversing the list of overlay). + + * lisp.h (struct Lisp_Overlay): New field `next'. + + * buffer.h (struct buffer): Change overlays_before and overlays_after + from Lisp lists of overlays to pointers to overlays. + + * buffer.c (overlay_strings, recenter_overlay_lists): + Fix typo in eassert in last commit. + (unchain_overlay): New function. + (add_overlay_mod_hooklist): Use AREF. + (copy_overlays, reset_buffer, overlays_at, overlays_in) + (overlay_touches_p, overlay_strings, recenter_overlay_lists) + (fix_overlays_in_range, fix_overlays_before, Fmake_overlay) + (Fmove_overlay, Fdelete_overlay, Foverlay_lists) + (report_overlay_modification, evaporate_overlays, init_buffer_once): + Adjust to new type of overlays_(before|after). + + * alloc.c (mark_object): Mark the new `next' field of overlays. + (mark_buffer): Manually mark the overlays_(after|before) fields. + + * coding.c (run_pre_post_conversion_on_str): + * editfns.c (overlays_around): + * xdisp.c (load_overlay_strings): + * fileio.c (Finsert_file_contents): + * indent.c (current_column): + * insdel.c (signal_before_change, signal_after_change): + * intervals.c (set_point_both): + * print.c (temp_output_buffer_setup): Use new type for + overlays_(before|after). + 2003-07-08 Stefan Monnier * buffer.c (report_overlay_modification): Don't run hooks while From MAILER-DAEMON Wed Jul 09 13:22:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIQf-0003zH-Ox for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:08:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHu1-0006RU-Et for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:34:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHsv-0006DG-4F for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:34:02 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHgb-0004Da-8g for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:20:53 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHfa-0000qN-1W for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:19:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 12:19:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/reftex.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:08:27 -0000 Index: emacs/lisp/textmodes/reftex.el diff -c emacs/lisp/textmodes/reftex.el:1.50 emacs/lisp/textmodes/reftex.el:1.51 *** emacs/lisp/textmodes/reftex.el:1.50 Tue May 13 16:42:19 2003 --- emacs/lisp/textmodes/reftex.el Wed Jul 9 12:19:49 2003 *************** *** 1241,1246 **** --- 1241,1247 ---- ;; Scan whatever was required by the caller. (reftex-do-parse rescan file)))) + ;;;###autoload (defun reftex-scanning-info-available-p () "Is the scanning info about the current document available?" (unless reftex-docstruct-symbol *************** *** 1617,1623 **** (autoload 'reftex-notice-new "reftex-parse") (autoload 'reftex-nth-arg "reftex-parse") (autoload 'reftex-locate-bibliography-files "reftex-parse") - (autoload 'reftex-all-document-files "reftex-parse") (autoload 'reftex-ensure-index-support "reftex-parse") (autoload 'reftex-everything-regexp "reftex-parse") --- 1618,1623 ---- From MAILER-DAEMON Wed Jul 09 13:24:47 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIPo-0003jp-Ot for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:07:36 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHnC-0005Sk-74 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:27:42 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHkD-0004wx-O4 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:25:08 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHfB-00044k-91 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:19:25 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHe9-0000F3-Nc for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:18:21 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 12:18:21 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/mule-cmds.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:07:34 -0000 Index: emacs/lisp/international/mule-cmds.el diff -c emacs/lisp/international/mule-cmds.el:1.239 emacs/lisp/international/mule-cmds.el:1.240 *** emacs/lisp/international/mule-cmds.el:1.239 Tue Jul 8 05:22:52 2003 --- emacs/lisp/international/mule-cmds.el Wed Jul 9 12:18:21 2003 *************** *** 1691,1698 **** ;; doesn't need to undo it.) (when standard-display-table (dotimes (i 128) ! (aset standard-display-table (+ i 128) nil)) ! (aset standard-display-table 146 nil))) (or (eq window-system 'pc) (set-terminal-coding-system coding)))) --- 1691,1697 ---- ;; doesn't need to undo it.) (when standard-display-table (dotimes (i 128) ! (aset standard-display-table (+ i 128) nil)))) (or (eq window-system 'pc) (set-terminal-coding-system coding)))) From MAILER-DAEMON Wed Jul 09 13:32:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIo1-0000WX-NW for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:32:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aI3U-0008LZ-Nm for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:44:32 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHno-0005ce-Ph for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:28:51 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHdl-0003qO-Tx for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:17:57 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHck-00005Q-Og for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:16:54 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 12:16:54 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/view.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:32:36 -0000 Index: emacs/lisp/view.el diff -c emacs/lisp/view.el:1.70 emacs/lisp/view.el:1.71 *** emacs/lisp/view.el:1.70 Sat May 31 13:53:24 2003 --- emacs/lisp/view.el Wed Jul 9 12:16:54 2003 *************** *** 243,251 **** This command runs the normal hook `view-mode-hook'." (interactive "fView file: ") (unless (file-exists-p file) (error "%s does not exist" file)) ! (let ((had-a-buf (get-file-buffer file))) ! (view-buffer (find-file-noselect file) ! (and (not had-a-buf) 'kill-buffer)))) ;;;###autoload (defun view-file-other-window (file) --- 243,257 ---- This command runs the normal hook `view-mode-hook'." (interactive "fView file: ") (unless (file-exists-p file) (error "%s does not exist" file)) ! (let ((had-a-buf (get-file-buffer file)) ! (buffer (find-file-noselect file))) ! (if (eq (with-current-buffer buffer ! (get major-mode 'mode-class)) ! 'special) ! (progn ! (switch-to-buffer buffer) ! (message "Not using View mode because the major mode is special")) ! (view-buffer buffer (and (not had-a-buf) 'kill-buffer))))) ;;;###autoload (defun view-file-other-window (file) From MAILER-DAEMON Wed Jul 09 13:38:01 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIjm-0008PA-0u for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:28:14 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aIjb-0008Mo-Em for emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:28:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aIio-0008F3-Rj for emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:27:45 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGGP-0007Eg-KG for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:49:45 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGFO-0002Hc-AL for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:48:42 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:48:42 -0400 Subject: [Emacs-diffs] Changes to emacs/src/print.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:28:12 -0000 Index: emacs/src/print.c diff -c emacs/src/print.c:1.187 emacs/src/print.c:1.188 *** emacs/src/print.c:1.187 Wed May 28 07:47:41 2003 --- emacs/src/print.c Wed Jul 9 10:48:41 2003 *************** *** 1,5 **** /* Lisp object printing and output streams. ! Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- /* Lisp object printing and output streams. ! Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 01, 2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 596,603 **** current_buffer->read_only = Qnil; current_buffer->filename = Qnil; current_buffer->undo_list = Qt; ! current_buffer->overlays_before = Qnil; ! current_buffer->overlays_after = Qnil; current_buffer->enable_multibyte_characters = buffer_defaults.enable_multibyte_characters; Ferase_buffer (); --- 596,603 ---- current_buffer->read_only = Qnil; current_buffer->filename = Qnil; current_buffer->undo_list = Qt; ! current_buffer->overlays_before = NULL; ! current_buffer->overlays_after = NULL; current_buffer->enable_multibyte_characters = buffer_defaults.enable_multibyte_characters; Ferase_buffer (); From MAILER-DAEMON Wed Jul 09 13:39:59 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIqK-0001Nc-Lh for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:35:00 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aIWA-0004py-7T for emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:14:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGNf-0000Wc-Un for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:57:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGHg-0007SI-TS for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:51:04 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGGf-0002Jr-GW for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:50:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:50:01 -0400 Subject: [Emacs-diffs] Changes to emacs/src/insdel.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:34:59 -0000 Index: emacs/src/insdel.c diff -c emacs/src/insdel.c:1.174 emacs/src/insdel.c:1.175 *** emacs/src/insdel.c:1.174 Thu Jun 26 19:17:29 2003 --- emacs/src/insdel.c Wed Jul 9 10:50:01 2003 *************** *** 2060,2067 **** UNGCPRO; } ! if (!NILP (current_buffer->overlays_before) ! || !NILP (current_buffer->overlays_after)) { PRESERVE_VALUE; report_overlay_modification (FETCH_START, FETCH_END, 0, --- 2060,2066 ---- UNGCPRO; } ! if (current_buffer->overlays_before || current_buffer->overlays_after) { PRESERVE_VALUE; report_overlay_modification (FETCH_START, FETCH_END, 0, *************** *** 2095,2102 **** just record the args that we were going to use. */ if (! NILP (Vcombine_after_change_calls) && NILP (Vbefore_change_functions) ! && NILP (current_buffer->overlays_before) ! && NILP (current_buffer->overlays_after)) { Lisp_Object elt; --- 2094,2101 ---- just record the args that we were going to use. */ if (! NILP (Vcombine_after_change_calls) && NILP (Vbefore_change_functions) ! && !current_buffer->overlays_before ! && !current_buffer->overlays_after) { Lisp_Object elt; *************** *** 2161,2168 **** UNGCPRO; } ! if (!NILP (current_buffer->overlays_before) ! || !NILP (current_buffer->overlays_after)) report_overlay_modification (make_number (charpos), make_number (charpos + lenins), 1, --- 2160,2166 ---- UNGCPRO; } ! if (current_buffer->overlays_before || current_buffer->overlays_after) report_overlay_modification (make_number (charpos), make_number (charpos + lenins), 1, From MAILER-DAEMON Wed Jul 09 13:51:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIsx-00023X-VH for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 13:37:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHeH-0003uq-Hv for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:18:29 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHcI-0003bn-BG for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:16:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHYi-0002tJ-SN for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:12:44 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHXh-0008Lz-Nt for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:11:41 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 12:11:41 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 17:37:42 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.833 emacs/etc/NEWS:1.834 *** emacs/etc/NEWS:1.833 Tue Jul 8 19:28:35 2003 --- emacs/etc/NEWS Wed Jul 9 12:11:40 2003 *************** *** 89,94 **** --- 89,97 ---- * Changes in Emacs 21.4 + ** M-x view-file and commands that use it now avoid interfering + with special modes such as Tar mode. + +++ ** 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 From MAILER-DAEMON Wed Jul 09 14:16:16 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aI2E-0007qe-Rz for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:43:14 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHz0-000776-A8 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:39:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHhr-0004My-4C for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:22:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHhq-0004Me-5f for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:22:10 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHgp-0001QQ-0u for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:21:07 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 12:21:07 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:43:13 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5271 emacs/lisp/ChangeLog:1.5272 *** emacs/lisp/ChangeLog:1.5271 Tue Jul 8 19:24:44 2003 --- emacs/lisp/ChangeLog Wed Jul 9 12:21:02 2003 *************** *** 1,3 **** --- 1,19 ---- + 2003-07-09 Richard M. Stallman + + * textmodes/reftex-parse.el (reftex-all-document-files): + Add autoload cookie. + + * textmodes/reftex.el (reftex-all-document-files): Delete autoload. + (reftex-scanning-info-available-p): Add autoload cookie. + + * international/mule-cmds.el (set-display-table-and-terminal-coding-system): + Delete duplicate aset on standard-display-table. + + * view.el (view-file): If existing buffer's major mode is special, + don't go into view mode. + + * dired.el (dired-move-to-filename-regexp): Allow quote in months. + 2003-07-08 Martin Stjernholm * progmodes/cc-engine.el (c-guess-basic-syntax): Do not do hidden From MAILER-DAEMON Wed Jul 09 14:27:48 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aIGV-0001fw-Mw for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:57:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aI3D-0008D3-LL for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:44:15 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHys-00075H-A9 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:40:18 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGaG-0002DV-Ob for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:10:16 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGZF-00031b-Eu for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:09:13 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 11:09:13 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:57:57 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.430 emacs/src/buffer.c:1.431 *** emacs/src/buffer.c:1.430 Tue Jul 8 18:09:23 2003 --- emacs/src/buffer.c Wed Jul 9 11:09:12 2003 *************** *** 183,189 **** static void alloc_buffer_text P_ ((struct buffer *, size_t)); static void free_buffer_text P_ ((struct buffer *b)); ! static Lisp_Object copy_overlays P_ ((struct buffer *, Lisp_Object)); static void modify_overlay P_ ((struct buffer *, int, int)); --- 183,189 ---- static void alloc_buffer_text P_ ((struct buffer *, size_t)); static void free_buffer_text P_ ((struct buffer *b)); ! static struct Lisp_Overlay * copy_overlays P_ ((struct buffer *, struct Lisp_Overlay *)); static void modify_overlay P_ ((struct buffer *, int, int)); *************** *** 434,454 **** /* Return a list of overlays which is a copy of the overlay list LIST, but for buffer B. */ ! static Lisp_Object copy_overlays (b, list) struct buffer *b; ! Lisp_Object list; { ! Lisp_Object result, buffer; XSETBUFFER (buffer, b); ! for (result = Qnil; CONSP (list); list = XCDR (list)) { Lisp_Object overlay, start, end, old_overlay; int charpos; ! old_overlay = XCAR (list); charpos = marker_position (OVERLAY_START (old_overlay)); start = Fmake_marker (); Fset_marker (start, make_number (charpos), buffer); --- 434,455 ---- /* Return a list of overlays which is a copy of the overlay list LIST, but for buffer B. */ ! static struct Lisp_Overlay * copy_overlays (b, list) struct buffer *b; ! struct Lisp_Overlay *list; { ! Lisp_Object buffer; ! struct Lisp_Overlay *result = NULL, *tail = NULL; XSETBUFFER (buffer, b); ! for (; list; list = list->next) { Lisp_Object overlay, start, end, old_overlay; int charpos; ! XSETMISC (old_overlay, list); charpos = marker_position (OVERLAY_START (old_overlay)); start = Fmake_marker (); Fset_marker (start, make_number (charpos), buffer); *************** *** 466,476 **** OVERLAY_START (overlay) = start; OVERLAY_END (overlay) = end; OVERLAY_PLIST (overlay) = Fcopy_sequence (OVERLAY_PLIST (old_overlay)); ! result = Fcons (overlay, result); } ! return Fnreverse (result); } --- 467,481 ---- OVERLAY_START (overlay) = start; OVERLAY_END (overlay) = end; OVERLAY_PLIST (overlay) = Fcopy_sequence (OVERLAY_PLIST (old_overlay)); + XOVERLAY (overlay)->next = NULL; ! if (tail) ! tail = tail->next = XOVERLAY (overlay); ! else ! result = tail = XOVERLAY (overlay); } ! return result; } *************** *** 646,653 **** b->auto_save_failure_time = -1; b->auto_save_file_name = Qnil; b->read_only = Qnil; ! b->overlays_before = Qnil; ! b->overlays_after = Qnil; b->overlay_center = BEG; b->mark_active = Qnil; b->point_before_scroll = Qnil; --- 651,658 ---- b->auto_save_failure_time = -1; b->auto_save_file_name = Qnil; b->read_only = Qnil; ! b->overlays_before = NULL; ! b->overlays_after = NULL; b->overlay_center = BEG; b->mark_active = Qnil; b->point_before_scroll = Qnil; *************** *** 2428,2434 **** int *prev_ptr; int change_req; { ! Lisp_Object tail, overlay, start, end; int idx = 0; int len = *len_ptr; Lisp_Object *vec = *vec_ptr; --- 2433,2440 ---- int *prev_ptr; int change_req; { ! Lisp_Object overlay, start, end; ! struct Lisp_Overlay *tail; int idx = 0; int len = *len_ptr; Lisp_Object *vec = *vec_ptr; *************** *** 2436,2448 **** int prev = BEGV; int inhibit_storing = 0; ! for (tail = current_buffer->overlays_before; ! GC_CONSP (tail); ! tail = XCDR (tail)) { int startpos, endpos; ! overlay = XCAR (tail); start = OVERLAY_START (overlay); end = OVERLAY_END (overlay); --- 2442,2452 ---- int prev = BEGV; int inhibit_storing = 0; ! for (tail = current_buffer->overlays_before; tail; tail = tail->next) { int startpos, endpos; ! XSETMISC (overlay, tail); start = OVERLAY_START (overlay); end = OVERLAY_END (overlay); *************** *** 2489,2501 **** next = startpos; } ! for (tail = current_buffer->overlays_after; ! GC_CONSP (tail); ! tail = XCDR (tail)) { int startpos, endpos; ! overlay = XCAR (tail); start = OVERLAY_START (overlay); end = OVERLAY_END (overlay); --- 2493,2503 ---- next = startpos; } ! for (tail = current_buffer->overlays_after; tail; tail = tail->next) { int startpos, endpos; ! XSETMISC (overlay, tail); start = OVERLAY_START (overlay); end = OVERLAY_END (overlay); *************** *** 2574,2580 **** int *next_ptr; int *prev_ptr; { ! Lisp_Object tail, overlay, ostart, oend; int idx = 0; int len = *len_ptr; Lisp_Object *vec = *vec_ptr; --- 2576,2583 ---- int *next_ptr; int *prev_ptr; { ! Lisp_Object overlay, ostart, oend; ! struct Lisp_Overlay *tail; int idx = 0; int len = *len_ptr; Lisp_Object *vec = *vec_ptr; *************** *** 2582,2594 **** int prev = BEGV; int inhibit_storing = 0; ! for (tail = current_buffer->overlays_before; ! GC_CONSP (tail); ! tail = XCDR (tail)) { int startpos, endpos; ! overlay = XCAR (tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); --- 2585,2595 ---- int prev = BEGV; int inhibit_storing = 0; ! for (tail = current_buffer->overlays_before; tail; tail = tail->next) { int startpos, endpos; ! XSETMISC (overlay, tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); *************** *** 2632,2644 **** next = startpos; } ! for (tail = current_buffer->overlays_after; ! GC_CONSP (tail); ! tail = XCDR (tail)) { int startpos, endpos; ! overlay = XCAR (tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); --- 2633,2643 ---- next = startpos; } ! for (tail = current_buffer->overlays_after; tail; tail = tail->next) { int startpos, endpos; ! XSETMISC (overlay, tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); *************** *** 2724,2737 **** overlay_touches_p (pos) int pos; { ! Lisp_Object tail, overlay; ! for (tail = current_buffer->overlays_before; GC_CONSP (tail); ! tail = XCDR (tail)) { int endpos; ! overlay = XCAR (tail); if (!GC_OVERLAYP (overlay)) abort (); --- 2723,2736 ---- overlay_touches_p (pos) int pos; { ! Lisp_Object overlay; ! struct Lisp_Overlay *tail; ! for (tail = current_buffer->overlays_before; tail; tail = tail->next) { int endpos; ! XSETMISC (overlay ,tail); if (!GC_OVERLAYP (overlay)) abort (); *************** *** 2742,2753 **** return 1; } ! for (tail = current_buffer->overlays_after; GC_CONSP (tail); ! tail = XCDR (tail)) { int startpos; ! overlay = XCAR (tail); if (!GC_OVERLAYP (overlay)) abort (); --- 2741,2751 ---- return 1; } ! for (tail = current_buffer->overlays_after; tail; tail = tail->next) { int startpos; ! XSETMISC (overlay, tail); if (!GC_OVERLAYP (overlay)) abort (); *************** *** 2946,2960 **** struct window *w; unsigned char **pstr; { ! Lisp_Object ov, overlay, window, str; int startpos, endpos; int multibyte = ! NILP (current_buffer->enable_multibyte_characters); overlay_heads.used = overlay_heads.bytes = 0; overlay_tails.used = overlay_tails.bytes = 0; ! for (ov = current_buffer->overlays_before; CONSP (ov); ov = XCDR (ov)) { ! overlay = XCAR (ov); eassert (OVERLAYP (overlay)); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); --- 2944,2959 ---- struct window *w; unsigned char **pstr; { ! Lisp_Object overlay, window, str; ! struct Lisp_Overlay *ov; int startpos, endpos; int multibyte = ! NILP (current_buffer->enable_multibyte_characters); overlay_heads.used = overlay_heads.bytes = 0; overlay_tails.used = overlay_tails.bytes = 0; ! for (ov = current_buffer->overlays_before; ov; ov = ov->next) { ! XSETMISC (overlay, ov); eassert (OVERLAYP (overlay)); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); *************** *** 2980,2989 **** Foverlay_get (overlay, Qpriority), endpos - startpos); } ! for (ov = current_buffer->overlays_after; CONSP (ov); ov = XCDR (ov)) { ! overlay = XCAR (ov); ! eassert (!OVERLAYP (overlay)); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); --- 2979,2988 ---- Foverlay_get (overlay, Qpriority), endpos - startpos); } ! for (ov = current_buffer->overlays_after; ov; ov = ov->next) { ! XSETMISC (overlay, ov); ! eassert (OVERLAYP (overlay)); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); *************** *** 3070,3089 **** struct buffer *buf; EMACS_INT pos; { ! Lisp_Object overlay, tail, next, prev, beg, end; /* See if anything in overlays_before should move to overlays_after. */ /* We don't strictly need prev in this loop; it should always be nil. But we use it for symmetry and in case that should cease to be true with some future change. */ ! prev = Qnil; ! for (tail = buf->overlays_before; ! CONSP (tail); ! prev = tail, tail = next) { ! next = XCDR (tail); ! overlay = XCAR (tail); /* If the overlay is not valid, get rid of it. */ if (!OVERLAY_VALID (overlay)) --- 3069,3087 ---- struct buffer *buf; EMACS_INT pos; { ! Lisp_Object overlay, beg, end; ! struct Lisp_Overlay *prev, *tail, *next; /* See if anything in overlays_before should move to overlays_after. */ /* We don't strictly need prev in this loop; it should always be nil. But we use it for symmetry and in case that should cease to be true with some future change. */ ! prev = NULL; ! for (tail = buf->overlays_before; tail; prev = tail, tail = next) { ! next = tail->next; ! XSETMISC (overlay, tail); /* If the overlay is not valid, get rid of it. */ if (!OVERLAY_VALID (overlay)) *************** *** 3108,3131 **** { /* OVERLAY needs to be moved. */ int where = OVERLAY_POSITION (beg); ! Lisp_Object other, other_prev; /* Splice the cons cell TAIL out of overlays_before. */ ! if (!NILP (prev)) ! XSETCDR (prev, next); else buf->overlays_before = next; /* Search thru overlays_after for where to put it. */ ! other_prev = Qnil; ! for (other = buf->overlays_after; ! CONSP (other); ! other_prev = other, other = XCDR (other)) { Lisp_Object otherbeg, otheroverlay; ! otheroverlay = XCAR (other); ! eassert (! OVERLAY_VALID (otheroverlay)); otherbeg = OVERLAY_START (otheroverlay); if (OVERLAY_POSITION (otherbeg) >= where) --- 3106,3128 ---- { /* OVERLAY needs to be moved. */ int where = OVERLAY_POSITION (beg); ! struct Lisp_Overlay *other, *other_prev; /* Splice the cons cell TAIL out of overlays_before. */ ! if (prev) ! prev->next = next; else buf->overlays_before = next; /* Search thru overlays_after for where to put it. */ ! other_prev = NULL; ! for (other = buf->overlays_after; other; ! other_prev = other, other = other->next) { Lisp_Object otherbeg, otheroverlay; ! XSETMISC (otheroverlay, other); ! eassert (OVERLAY_VALID (otheroverlay)); otherbeg = OVERLAY_START (otheroverlay); if (OVERLAY_POSITION (otherbeg) >= where) *************** *** 3133,3141 **** } /* Add TAIL to overlays_after before OTHER. */ ! XSETCDR (tail, other); ! if (!NILP (other_prev)) ! XSETCDR (other_prev, tail); else buf->overlays_after = tail; tail = prev; --- 3130,3138 ---- } /* Add TAIL to overlays_after before OTHER. */ ! tail->next = other; ! if (other_prev) ! other_prev->next = tail; else buf->overlays_after = tail; tail = prev; *************** *** 3148,3160 **** } /* See if anything in overlays_after should be in overlays_before. */ ! prev = Qnil; ! for (tail = buf->overlays_after; ! CONSP (tail); ! prev = tail, tail = next) { ! next = XCDR (tail); ! overlay = XCAR (tail); /* If the overlay is not valid, get rid of it. */ if (!OVERLAY_VALID (overlay)) --- 3145,3155 ---- } /* See if anything in overlays_after should be in overlays_before. */ ! prev = NULL; ! for (tail = buf->overlays_after; tail; prev = tail, tail = next) { ! next = tail->next; ! XSETMISC (overlay, tail); /* If the overlay is not valid, get rid of it. */ if (!OVERLAY_VALID (overlay)) *************** *** 3184,3207 **** { /* OVERLAY needs to be moved. */ int where = OVERLAY_POSITION (end); ! Lisp_Object other, other_prev; /* Splice the cons cell TAIL out of overlays_after. */ ! if (!NILP (prev)) ! XSETCDR (prev, next); else buf->overlays_after = next; /* Search thru overlays_before for where to put it. */ ! other_prev = Qnil; ! for (other = buf->overlays_before; ! CONSP (other); ! other_prev = other, other = XCDR (other)) { Lisp_Object otherend, otheroverlay; ! otheroverlay = XCAR (other); ! eassert (! OVERLAY_VALID (otheroverlay)); otherend = OVERLAY_END (otheroverlay); if (OVERLAY_POSITION (otherend) <= where) --- 3179,3201 ---- { /* OVERLAY needs to be moved. */ int where = OVERLAY_POSITION (end); ! struct Lisp_Overlay *other, *other_prev; /* Splice the cons cell TAIL out of overlays_after. */ ! if (prev) ! prev->next = next; else buf->overlays_after = next; /* Search thru overlays_before for where to put it. */ ! other_prev = NULL; ! for (other = buf->overlays_before; other; ! other_prev = other, other = other->next) { Lisp_Object otherend, otheroverlay; ! XSETMISC (otheroverlay, other); ! eassert (OVERLAY_VALID (otheroverlay)); otherend = OVERLAY_END (otheroverlay); if (OVERLAY_POSITION (otherend) <= where) *************** *** 3209,3217 **** } /* Add TAIL to overlays_before before OTHER. */ ! XSETCDR (tail, other); ! if (!NILP (other_prev)) ! XSETCDR (other_prev, tail); else buf->overlays_before = tail; tail = prev; --- 3203,3211 ---- } /* Add TAIL to overlays_before before OTHER. */ ! tail->next = other; ! if (other_prev) ! other_prev->next = tail; else buf->overlays_before = tail; tail = prev; *************** *** 3265,3279 **** register int start, end; { Lisp_Object overlay; ! Lisp_Object before_list, after_list; /* These are either nil, indicating that before_list or after_list should be assigned, or the cons cell the cdr of which should be assigned. */ ! Lisp_Object beforep = Qnil, afterp = Qnil; /* 'Parent', likewise, indicates a cons cell or current_buffer->overlays_before or overlays_after, depending which loop we're in. */ ! Lisp_Object tail, parent; int startpos, endpos; /* This algorithm shifts links around instead of consing and GCing. --- 3259,3273 ---- register int start, end; { Lisp_Object overlay; ! struct Lisp_Overlay *before_list, *after_list; /* These are either nil, indicating that before_list or after_list should be assigned, or the cons cell the cdr of which should be assigned. */ ! struct Lisp_Overlay *beforep = NULL, *afterp = NULL; /* 'Parent', likewise, indicates a cons cell or current_buffer->overlays_before or overlays_after, depending which loop we're in. */ ! struct Lisp_Overlay *tail, *parent; int startpos, endpos; /* This algorithm shifts links around instead of consing and GCing. *************** *** 3283,3291 **** (after_list) if it is, is still uninitialized. So it's not a bug that before_list isn't initialized, although it may look strange. */ ! for (parent = Qnil, tail = current_buffer->overlays_before; CONSP (tail);) { ! overlay = XCAR (tail); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); if (endpos < start) break; --- 3277,3285 ---- (after_list) if it is, is still uninitialized. So it's not a bug that before_list isn't initialized, although it may look strange. */ ! for (parent = NULL, tail = current_buffer->overlays_before; tail;) { ! XSETMISC (overlay, tail); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); if (endpos < start) break; *************** *** 3307,3338 **** recenter_overlay_lists will move it to the right place. */ if (endpos < current_buffer->overlay_center) { ! if (NILP (afterp)) after_list = tail; else ! XSETCDR (afterp, tail); afterp = tail; } else { ! if (NILP (beforep)) before_list = tail; else ! XSETCDR (beforep, tail); beforep = tail; } ! if (NILP (parent)) ! current_buffer->overlays_before = XCDR (tail); else ! XSETCDR (parent, XCDR (tail)); ! tail = XCDR (tail); } else ! parent = tail, tail = XCDR (parent); } ! for (parent = Qnil, tail = current_buffer->overlays_after; CONSP (tail);) { ! overlay = XCAR (tail); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); if (startpos >= end) break; --- 3301,3332 ---- recenter_overlay_lists will move it to the right place. */ if (endpos < current_buffer->overlay_center) { ! if (!afterp) after_list = tail; else ! afterp->next = tail; afterp = tail; } else { ! if (!beforep) before_list = tail; else ! beforep->next = tail; beforep = tail; } ! if (!parent) ! current_buffer->overlays_before = tail->next; else ! parent->next = tail->next; ! tail = tail->next; } else ! parent = tail, tail = parent->next; } ! for (parent = NULL, tail = current_buffer->overlays_after; tail;) { ! XSETMISC (overlay, tail); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); if (startpos >= end) break; *************** *** 3351,3392 **** } if (endpos < current_buffer->overlay_center) { ! if (NILP (afterp)) after_list = tail; else ! XSETCDR (afterp, tail); afterp = tail; } else { ! if (NILP (beforep)) before_list = tail; else ! XSETCDR (beforep, tail); beforep = tail; } ! if (NILP (parent)) ! current_buffer->overlays_after = XCDR (tail); else ! XSETCDR (parent, XCDR (tail)); ! tail = XCDR (tail); } else ! parent = tail, tail = XCDR (parent); } /* Splice the constructed (wrong) lists into the buffer's lists, and let the recenter function make it sane again. */ ! if (!NILP (beforep)) { ! XSETCDR (beforep, current_buffer->overlays_before); current_buffer->overlays_before = before_list; } recenter_overlay_lists (current_buffer, current_buffer->overlay_center); ! if (!NILP (afterp)) { ! XSETCDR (afterp, current_buffer->overlays_after); current_buffer->overlays_after = after_list; } recenter_overlay_lists (current_buffer, current_buffer->overlay_center); --- 3345,3386 ---- } if (endpos < current_buffer->overlay_center) { ! if (!afterp) after_list = tail; else ! afterp->next = tail; afterp = tail; } else { ! if (!beforep) before_list = tail; else ! beforep->next = tail; beforep = tail; } ! if (!parent) ! current_buffer->overlays_after = tail->next; else ! parent->next = tail->next; ! tail = tail->next; } else ! parent = tail, tail = parent->next; } /* Splice the constructed (wrong) lists into the buffer's lists, and let the recenter function make it sane again. */ ! if (beforep) { ! beforep->next = current_buffer->overlays_before; current_buffer->overlays_before = before_list; } recenter_overlay_lists (current_buffer, current_buffer->overlay_center); ! if (afterp) { ! afterp->next = current_buffer->overlays_after; current_buffer->overlays_after = after_list; } recenter_overlay_lists (current_buffer, current_buffer->overlay_center); *************** *** 3409,3417 **** struct buffer *bp; EMACS_INT prev, pos; { ! /* If parent is nil, replace overlays_before; otherwise, XCDR(parent). */ ! Lisp_Object tail = bp->overlays_before, parent = Qnil; ! Lisp_Object right_pair; EMACS_INT end; /* After the insertion, the several overlays may be in incorrect --- 3403,3411 ---- struct buffer *bp; EMACS_INT prev, pos; { ! /* If parent is nil, replace overlays_before; otherwise, parent->next. */ ! struct Lisp_Overlay *tail = bp->overlays_before, *parent = NULL, *right_pair; ! Lisp_Object tem; EMACS_INT end; /* After the insertion, the several overlays may be in incorrect *************** *** 3425,3484 **** in. It is where an overlay which end before POS exists. (i.e. an overlay whose ending marker is after-insertion-marker if disorder exists). */ ! while (!NILP (tail) ! && ((end = OVERLAY_POSITION (OVERLAY_END (XCAR (tail)))) ! >= pos)) { parent = tail; ! tail = XCDR (tail); } /* If we don't find such an overlay, or the found one ends before PREV, or the found one is the last one in the list, we don't have to fix anything. */ ! if (NILP (tail) ! || end < prev ! || NILP (XCDR (tail))) return; right_pair = parent; parent = tail; ! tail = XCDR (tail); /* Now, end position of overlays in the list TAIL should be before or equal to PREV. In the loop, an overlay which ends at POS is moved ahead to the place indicated by the CDR of RIGHT_PAIR. If we found an overlay which ends before PREV, the remaining overlays are in correct order. */ ! while (!NILP (tail)) { ! end = OVERLAY_POSITION (OVERLAY_END (XCAR (tail))); if (end == pos) { /* This overlay is disordered. */ ! Lisp_Object found = tail; /* Unlink the found overlay. */ ! tail = XCDR (found); ! XSETCDR (parent, tail); /* Move an overlay at RIGHT_PLACE to the next of the found one, and link it into the right place. */ ! if (NILP (right_pair)) { ! XSETCDR (found, bp->overlays_before); bp->overlays_before = found; } else { ! XSETCDR (found, XCDR (right_pair)); ! XSETCDR (right_pair, found); } } else if (end == prev) { parent = tail; ! tail = XCDR (tail); } else /* No more disordered overlay. */ break; --- 3419,3477 ---- in. It is where an overlay which end before POS exists. (i.e. an overlay whose ending marker is after-insertion-marker if disorder exists). */ ! while (tail ! && (XSETMISC (tem, tail), ! (end = OVERLAY_POSITION (OVERLAY_END (tem))) >= pos)) { parent = tail; ! tail = tail->next; } /* If we don't find such an overlay, or the found one ends before PREV, or the found one is the last one in the list, we don't have to fix anything. */ ! if (tail || end < prev || !tail->next) return; right_pair = parent; parent = tail; ! tail = tail->next; /* Now, end position of overlays in the list TAIL should be before or equal to PREV. In the loop, an overlay which ends at POS is moved ahead to the place indicated by the CDR of RIGHT_PAIR. If we found an overlay which ends before PREV, the remaining overlays are in correct order. */ ! while (tail) { ! XSETMISC (tem, tail); ! end = OVERLAY_POSITION (OVERLAY_END (tem)); if (end == pos) { /* This overlay is disordered. */ ! struct Lisp_Overlay *found = tail; /* Unlink the found overlay. */ ! tail = found->next; ! parent->next = tail; /* Move an overlay at RIGHT_PLACE to the next of the found one, and link it into the right place. */ ! if (!right_pair) { ! found->next = bp->overlays_before; bp->overlays_before = found; } else { ! found->next = right_pair->next; ! right_pair->next = found; } } else if (end == prev) { parent = tail; ! tail = tail->next; } else /* No more disordered overlay. */ break; *************** *** 3543,3555 **** XOVERLAY (overlay)->start = beg; XOVERLAY (overlay)->end = end; XOVERLAY (overlay)->plist = Qnil; /* Put the new overlay on the wrong list. */ end = OVERLAY_END (overlay); if (OVERLAY_POSITION (end) < b->overlay_center) ! b->overlays_after = Fcons (overlay, b->overlays_after); else ! b->overlays_before = Fcons (overlay, b->overlays_before); /* This puts it in the right list, and in the right order. */ recenter_overlay_lists (b, b->overlay_center); --- 3536,3557 ---- XOVERLAY (overlay)->start = beg; XOVERLAY (overlay)->end = end; XOVERLAY (overlay)->plist = Qnil; + XOVERLAY (overlay)->next = NULL; /* Put the new overlay on the wrong list. */ end = OVERLAY_END (overlay); if (OVERLAY_POSITION (end) < b->overlay_center) ! { ! if (b->overlays_after) ! XOVERLAY (overlay)->next = b->overlays_after; ! b->overlays_after = XOVERLAY (overlay); ! } else ! { ! if (b->overlays_before) ! XOVERLAY (overlay)->next = b->overlays_before; ! b->overlays_before = XOVERLAY (overlay); ! } /* This puts it in the right list, and in the right order. */ recenter_overlay_lists (b, b->overlay_center); *************** *** 3590,3595 **** --- 3592,3615 ---- Lisp_Object Fdelete_overlay (); + static struct Lisp_Overlay * + unchain_overlay (list, overlay) + struct Lisp_Overlay *list, *overlay; + { + struct Lisp_Overlay *tmp, *prev; + for (tmp = list, prev = NULL; tmp; prev = tmp, tmp = tmp->next) + if (tmp == overlay) + { + if (prev) + prev->next = tmp->next; + else + list = tmp->next; + overlay->next = NULL; + break; + } + return list; + } + DEFUN ("move-overlay", Fmove_overlay, Smove_overlay, 3, 4, 0, doc: /* Set the endpoints of OVERLAY to BEG and END in BUFFER. If BUFFER is omitted, leave OVERLAY in the same buffer it inhabits now. *************** *** 3674,3681 **** if (!NILP (obuffer)) { ! ob->overlays_before = Fdelq (overlay, ob->overlays_before); ! ob->overlays_after = Fdelq (overlay, ob->overlays_after); } Fset_marker (OVERLAY_START (overlay), beg, buffer); --- 3694,3704 ---- if (!NILP (obuffer)) { ! ob->overlays_before ! = unchain_overlay (ob->overlays_before, XOVERLAY (overlay)); ! ob->overlays_after ! = unchain_overlay (ob->overlays_after, XOVERLAY (overlay)); ! eassert (XOVERLAY (overlay)->next == NULL); } Fset_marker (OVERLAY_START (overlay), beg, buffer); *************** *** 3684,3692 **** /* Put the overlay on the wrong list. */ end = OVERLAY_END (overlay); if (OVERLAY_POSITION (end) < b->overlay_center) ! b->overlays_after = Fcons (overlay, b->overlays_after); else ! b->overlays_before = Fcons (overlay, b->overlays_before); /* This puts it in the right list, and in the right order. */ recenter_overlay_lists (b, b->overlay_center); --- 3707,3723 ---- /* Put the overlay on the wrong list. */ end = OVERLAY_END (overlay); if (OVERLAY_POSITION (end) < b->overlay_center) ! { ! if (b->overlays_after) ! XOVERLAY (overlay)->next = b->overlays_after; ! b->overlays_after = XOVERLAY (overlay); ! } else ! { ! if (b->overlays_before) ! XOVERLAY (overlay)->next = b->overlays_before; ! b->overlays_before = XOVERLAY (overlay); ! } /* This puts it in the right list, and in the right order. */ recenter_overlay_lists (b, b->overlay_center); *************** *** 3712,3719 **** b = XBUFFER (buffer); specbind (Qinhibit_quit, Qt); ! b->overlays_before = Fdelq (overlay, b->overlays_before); ! b->overlays_after = Fdelq (overlay, b->overlays_after); modify_overlay (b, marker_position (OVERLAY_START (overlay)), marker_position (OVERLAY_END (overlay))); --- 3743,3751 ---- b = XBUFFER (buffer); specbind (Qinhibit_quit, Qt); ! b->overlays_before = unchain_overlay (b->overlays_before,XOVERLAY (overlay)); ! b->overlays_after = unchain_overlay (b->overlays_after, XOVERLAY (overlay)); ! eassert (XOVERLAY (overlay)->next == NULL); modify_overlay (b, marker_position (OVERLAY_START (overlay)), marker_position (OVERLAY_END (overlay))); *************** *** 3921,3935 **** However, the overlays you get are the real objects that the buffer uses. */) () { ! Lisp_Object before, after; ! before = current_buffer->overlays_before; ! if (CONSP (before)) ! before = Fcopy_sequence (before); ! after = current_buffer->overlays_after; ! if (CONSP (after)) ! after = Fcopy_sequence (after); ! ! return Fcons (before, after); } DEFUN ("overlay-recenter", Foverlay_recenter, Soverlay_recenter, 1, 1, 0, --- 3953,3971 ---- However, the overlays you get are the real objects that the buffer uses. */) () { ! struct Lisp_Overlay *ol; ! Lisp_Object before = Qnil, after = Qnil, tmp; ! for (ol = current_buffer->overlays_before; ol; ol = ol->next) ! { ! XSETMISC (tmp, ol); ! before = Fcons (tmp, before); ! } ! for (ol = current_buffer->overlays_after; ol; ol = ol->next) ! { ! XSETMISC (tmp, ol); ! after = Fcons (tmp, after); ! } ! return Fcons (Fnreverse (before), Fnreverse (after)); } DEFUN ("overlay-recenter", Foverlay_recenter, Soverlay_recenter, 1, 1, 0, *************** *** 4029,4036 **** XVECTOR (last_overlay_modification_hooks)->contents, sizeof (Lisp_Object) * oldsize); } ! XVECTOR (last_overlay_modification_hooks)->contents[last_overlay_modification_hooks_used++] = functionlist; ! XVECTOR (last_overlay_modification_hooks)->contents[last_overlay_modification_hooks_used++] = overlay; } /* Run the modification-hooks of overlays that include --- 4065,4072 ---- XVECTOR (last_overlay_modification_hooks)->contents, sizeof (Lisp_Object) * oldsize); } ! AREF (last_overlay_modification_hooks, last_overlay_modification_hooks_used++) = functionlist; ! AREF (last_overlay_modification_hooks, last_overlay_modification_hooks_used++) = overlay; } /* Run the modification-hooks of overlays that include *************** *** 4053,4079 **** int after; Lisp_Object arg1, arg2, arg3; { ! Lisp_Object prop, overlay, tail; /* 1 if this change is an insertion. */ int insertion = (after ? XFASTINT (arg3) == 0 : EQ (start, end)); struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; overlay = Qnil; ! tail = Qnil; if (!after) { /* We are being called before a change. Scan the overlays to find the functions to call. */ last_overlay_modification_hooks_used = 0; ! for (tail = current_buffer->overlays_before; ! CONSP (tail); ! tail = XCDR (tail)) { int startpos, endpos; Lisp_Object ostart, oend; ! overlay = XCAR (tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); --- 4089,4114 ---- int after; Lisp_Object arg1, arg2, arg3; { ! Lisp_Object prop, overlay; ! struct Lisp_Overlay *tail; /* 1 if this change is an insertion. */ int insertion = (after ? XFASTINT (arg3) == 0 : EQ (start, end)); struct gcpro gcpro1, gcpro2, gcpro3, gcpro4; overlay = Qnil; ! tail = NULL; if (!after) { /* We are being called before a change. Scan the overlays to find the functions to call. */ last_overlay_modification_hooks_used = 0; ! for (tail = current_buffer->overlays_before; tail; tail = tail->next) { int startpos, endpos; Lisp_Object ostart, oend; ! XSETMISC (overlay, tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); *************** *** 4104,4118 **** add_overlay_mod_hooklist (prop, overlay); } } ! ! for (tail = current_buffer->overlays_after; ! CONSP (tail); ! tail = XCDR (tail)) { int startpos, endpos; Lisp_Object ostart, oend; ! overlay = XCAR (tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); --- 4139,4151 ---- add_overlay_mod_hooklist (prop, overlay); } } ! ! for (tail = current_buffer->overlays_after; tail; tail = tail->next) { int startpos, endpos; Lisp_Object ostart, oend; ! XSETMISC (overlay, tail); ostart = OVERLAY_START (overlay); oend = OVERLAY_END (overlay); *************** *** 4197,4211 **** evaporate_overlays (pos) EMACS_INT pos; { ! Lisp_Object tail, overlay, hit_list; hit_list = Qnil; if (pos <= current_buffer->overlay_center) ! for (tail = current_buffer->overlays_before; CONSP (tail); ! tail = XCDR (tail)) { int endpos; ! overlay = XCAR (tail); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); if (endpos < pos) break; --- 4230,4244 ---- evaporate_overlays (pos) EMACS_INT pos; { ! Lisp_Object overlay, hit_list; ! struct Lisp_Overlay *tail; hit_list = Qnil; if (pos <= current_buffer->overlay_center) ! for (tail = current_buffer->overlays_before; tail; tail = tail->next) { int endpos; ! XSETMISC (overlay, tail); endpos = OVERLAY_POSITION (OVERLAY_END (overlay)); if (endpos < pos) break; *************** *** 4214,4224 **** hit_list = Fcons (overlay, hit_list); } else ! for (tail = current_buffer->overlays_after; CONSP (tail); ! tail = XCDR (tail)) { int startpos; ! overlay = XCAR (tail); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); if (startpos > pos) break; --- 4247,4256 ---- hit_list = Fcons (overlay, hit_list); } else ! for (tail = current_buffer->overlays_after; tail; tail = tail->next) { int startpos; ! XSETMISC (overlay, tail); startpos = OVERLAY_POSITION (OVERLAY_START (overlay)); if (startpos > pos) break; *************** *** 4858,4865 **** buffer_defaults.undo_list = Qnil; buffer_defaults.mark_active = Qnil; buffer_defaults.file_format = Qnil; ! buffer_defaults.overlays_before = Qnil; ! buffer_defaults.overlays_after = Qnil; buffer_defaults.overlay_center = BEG; XSETFASTINT (buffer_defaults.tab_width, 8); --- 4890,4897 ---- buffer_defaults.undo_list = Qnil; buffer_defaults.mark_active = Qnil; buffer_defaults.file_format = Qnil; ! buffer_defaults.overlays_before = NULL; ! buffer_defaults.overlays_after = NULL; buffer_defaults.overlay_center = BEG; XSETFASTINT (buffer_defaults.tab_width, 8); From MAILER-DAEMON Wed Jul 09 14:29:21 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aHcW-0003fn-Te for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:16:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHcB-0003a4-OW for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:16:19 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aGQg-0000sG-K7 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:00:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGFW-00071i-87 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:48:50 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGEU-0002Fw-Ff for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:47:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:47:46 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:16:39 -0000 Index: emacs/src/buffer.h diff -c emacs/src/buffer.h:1.91 emacs/src/buffer.h:1.92 *** emacs/src/buffer.h:1.91 Tue Jul 8 17:45:35 2003 --- emacs/src/buffer.h Wed Jul 9 10:47:45 2003 *************** *** 531,536 **** --- 531,544 ---- displaying this buffer. */ unsigned prevent_redisplay_optimizations_p : 1; + /* List of overlays that end at or before the current center, + in order of end-position. */ + struct Lisp_Overlay *overlays_before; + + /* List of overlays that end after the current center, + in order of start-position. */ + struct Lisp_Overlay *overlays_after; + /* Position where the overlay lists are centered. */ EMACS_INT overlay_center; *************** *** 646,659 **** Lisp_Object display_table; /* t means the mark and region are currently active. */ Lisp_Object mark_active; - - /* List of overlays that end at or before the current center, - in order of end-position. */ - Lisp_Object overlays_before; - - /* List of overlays that end after the current center, - in order of start-position. */ - Lisp_Object overlays_after; /* Non-nil means the buffer contents are regarded as multi-byte form of characters, not a binary code. */ --- 654,659 ---- From MAILER-DAEMON Wed Jul 09 14:30:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aI9V-0000jP-G0 for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:50:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aHie-0004Y8-Ee for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:23:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aHhe-0004KM-Be for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:22:29 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHhe-0004KD-1t for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:21:58 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHgc-0001JS-K2 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 12:20:54 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 12:20:54 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/reftex-parse.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 16:50:42 -0000 Index: emacs/lisp/textmodes/reftex-parse.el diff -c emacs/lisp/textmodes/reftex-parse.el:1.16 emacs/lisp/textmodes/reftex-parse.el:1.17 *** emacs/lisp/textmodes/reftex-parse.el:1.16 Tue May 13 16:40:11 2003 --- emacs/lisp/textmodes/reftex-parse.el Wed Jul 9 12:20:54 2003 *************** *** 171,176 **** --- 171,177 ---- reftex-everything-regexp reftex-everything-regexp-no-index)) + ;;;###autoload (defun reftex-all-document-files (&optional relative) "Return a list of all files belonging to the current document. When RELATIVE is non-nil, give file names relative to directory From MAILER-DAEMON Wed Jul 09 15:19:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aKHX-0006Bt-Pt for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:07:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aK7m-00046w-Gh for emacs-diffs@gnu.org; Wed, 09 Jul 2003 14:57:06 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aJeU-0004b9-8b for emacs-diffs@gnu.org; Wed, 09 Jul 2003 14:26:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aGKV-00085Z-Up for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:53:59 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aGJU-0002Rj-Mc for emacs-diffs@gnu.org; Wed, 09 Jul 2003 10:52:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 10:52:56 -0400 Subject: [Emacs-diffs] Changes to emacs/src/coding.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:07:10 -0000 Index: emacs/src/coding.c diff -c emacs/src/coding.c:1.286 emacs/src/coding.c:1.287 *** emacs/src/coding.c:1.286 Wed Jun 4 08:43:09 2003 --- emacs/src/coding.c Wed Jul 9 10:52:55 2003 *************** *** 6001,6008 **** buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! buf->overlays_before = Qnil; ! buf->overlays_after = Qnil; set_buffer_internal (buf); /* We must insert the contents of STR as is without --- 6001,6008 ---- buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! buf->overlays_before = NULL; ! buf->overlays_after = NULL; set_buffer_internal (buf); /* We must insert the contents of STR as is without From MAILER-DAEMON Wed Jul 09 15:32:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aKKd-0006s7-3k for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:10:23 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aK9F-0004Qt-Cn for emacs-diffs@gnu.org; Wed, 09 Jul 2003 14:58:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aJep-0004hN-HG for emacs-diffs@gnu.org; Wed, 09 Jul 2003 14:27:12 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aHGc-0000Sy-SE for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:54:02 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19aHFb-0007RM-N6 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 11:52:59 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Wed, 09 Jul 2003 11:52:59 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/dired.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:10:22 -0000 Index: emacs/lisp/dired.el diff -c emacs/lisp/dired.el:1.263 emacs/lisp/dired.el:1.264 *** emacs/lisp/dired.el:1.263 Mon Jun 9 23:58:06 2003 --- emacs/lisp/dired.el Wed Jul 9 11:52:59 2003 *************** *** 1565,1573 **** (defvar dired-move-to-filename-regexp (let* ((l "\\([A-Za-z]\\|[^\0-\177]\\)") ;; In some locales, month abbreviations are as short as 2 letters, ;; and they can be followed by ".". ! (month (concat l l "+\\.?")) (s " ") (yyyy "[0-9][0-9][0-9][0-9]") (dd "[ 0-3][0-9]") --- 1565,1575 ---- (defvar dired-move-to-filename-regexp (let* ((l "\\([A-Za-z]\\|[^\0-\177]\\)") + (l-or-quote "\\([A-Za-z']\\|[^\0-\177]\\)") ;; In some locales, month abbreviations are as short as 2 letters, ;; and they can be followed by ".". ! ;; In Breton, a month name can include a quote character. ! (month (concat l-or-quote l-or-quote "+\\.?")) (s " ") (yyyy "[0-9][0-9][0-9][0-9]") (dd "[ 0-3][0-9]") From MAILER-DAEMON Wed Jul 09 16:02:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aKhO-0003GC-Br for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:33:54 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aKVt-0000NT-RM for emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:22:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aKKt-0006xP-7U for emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:10:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aKH9-00068T-6e for emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:06:47 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aKG6-0005JQ-6J for emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:05:42 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 15:05:42 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 19:33:52 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.431 emacs/src/buffer.c:1.432 *** emacs/src/buffer.c:1.431 Wed Jul 9 11:09:12 2003 --- emacs/src/buffer.c Wed Jul 9 15:05:41 2003 *************** *** 3431,3437 **** or the found one ends before PREV, or the found one is the last one in the list, we don't have to fix anything. */ ! if (tail || end < prev || !tail->next) return; right_pair = parent; --- 3431,3437 ---- or the found one ends before PREV, or the found one is the last one in the list, we don't have to fix anything. */ ! if (!tail || end < prev || !tail->next) return; right_pair = parent; From MAILER-DAEMON Wed Jul 09 16:55:20 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aLvT-00070A-AX for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:52:31 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aLnr-00041m-Gz for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:44:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aLni-0003y4-Dw for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:44:31 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aLZA-0000Kn-OJ for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:29:28 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19aLY8-0004Xn-W6 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:28:24 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Wed, 09 Jul 2003 16:28:24 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/files.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 20:52:30 -0000 Index: emacs/lisp/files.el diff -c emacs/lisp/files.el:1.664 emacs/lisp/files.el:1.665 *** emacs/lisp/files.el:1.664 Sat Jul 5 16:01:07 2003 --- emacs/lisp/files.el Wed Jul 9 16:28:23 2003 *************** *** 1588,1593 **** --- 1588,1597 ---- (ucs-set-table-for-input))) (defvar auto-mode-alist + ;; Note: The entries for the modes defined in cc-mode.el (c-mode, + ;; c++-mode, java-mode and more) are added through autoload + ;; directives in that file. That way is discouraged since it + ;; spreads out the definition of the initial value. (mapc (lambda (elt) (cons (purecopy (car elt)) (cdr elt))) *************** *** 1726,1731 **** --- 1730,1739 ---- (defvar interpreter-mode-alist + ;; Note: The entries for the modes defined in cc-mode.el (awk-mode + ;; and pike-mode) are added through autoload directives in that + ;; file. That way is discouraged since it spreads out the + ;; definition of the initial value. (mapc (lambda (l) (cons (purecopy (car l)) (cdr l))) From MAILER-DAEMON Wed Jul 09 17:10:52 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aMAu-0004gU-Nu for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 17:08:28 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aM07-0008SK-Ry for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:57:19 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aLoK-0004GS-8H for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:45:09 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aLax-0000ak-OS for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:31:19 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aLZw-0004oy-Jp for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:30:16 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 16:30:16 -0400 Subject: [Emacs-diffs] Changes to emacs/src/lisp.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 21:08:26 -0000 Index: emacs/src/lisp.h diff -c emacs/src/lisp.h:1.463 emacs/src/lisp.h:1.464 *** emacs/src/lisp.h:1.463 Wed Jul 9 10:46:06 2003 --- emacs/src/lisp.h Wed Jul 9 16:30:15 2003 *************** *** 154,168 **** Lisp_Misc_Limit }; - /* These values are overridden by the m- file on some machines. */ - #ifndef VALBITS - #define VALBITS (BITS_PER_EMACS_INT - 4) - #endif - #ifndef GCTYPEBITS #define GCTYPEBITS 3 #endif #ifndef NO_UNION_TYPE #ifndef WORDS_BIG_ENDIAN --- 154,169 ---- Lisp_Misc_Limit }; #ifndef GCTYPEBITS #define GCTYPEBITS 3 #endif + /* These values are overridden by the m- file on some machines. */ + #ifndef VALBITS + /* The -1 is for the markbit. */ + #define VALBITS (BITS_PER_EMACS_INT - GCTYPEBITS - 1) + #endif + #ifndef NO_UNION_TYPE #ifndef WORDS_BIG_ENDIAN *************** *** 546,602 **** bcopy (new, XSTRING (string)->data + index, count) ! /* Basic data type for use of intervals. See the macros in intervals.h. */ ! ! struct interval ! { ! /* The first group of entries deal with the tree structure. */ ! ! unsigned int total_length; /* Length of myself and both children. */ ! unsigned int position; /* Cache of interval's character position. */ ! /* This field is usually updated ! simultaneously with an interval ! traversal, there is no guarantee ! that it is valid for a random ! interval. */ ! struct interval *left; /* Intervals which precede me. */ ! struct interval *right; /* Intervals which succeed me. */ ! ! /* Parent in the tree, or the Lisp_Object containing this interval tree. ! ! The mark bit on the root interval of an interval tree says ! whether we have started (and possibly finished) marking the ! tree. If GC comes across an interval tree whose root's parent ! field has its markbit set, it leaves the tree alone. ! ! You'd think we could store this information in the parent object ! somewhere (after all, that should be visited once and then ! ignored too, right?), but strings are GC'd strangely. */ ! union ! { ! struct interval *interval; ! Lisp_Object obj; ! } up; ! unsigned int up_obj : 1; ! ! unsigned gcmarkbit : 1; ! ! /* The remaining components are `properties' of the interval. ! The first four are duplicates for things which can be on the list, ! for purposes of speed. */ ! ! unsigned int write_protect : 1; /* Non-zero means can't modify. */ ! unsigned int visible : 1; /* Zero means don't display. */ ! unsigned int front_sticky : 1; /* Non-zero means text inserted just ! before this interval goes into it. */ ! unsigned int rear_sticky : 1; /* Likewise for just after it. */ ! ! /* Properties of this interval. ! The mark bit on this field says whether this particular interval ! tree node has been visited. Since intervals should never be ! shared, GC aborts if it seems to have visited an interval twice. */ ! Lisp_Object plist; ! }; typedef struct interval *INTERVAL; --- 547,553 ---- bcopy (new, XSTRING (string)->data + index, count) ! /* See the macros in intervals.h. */ typedef struct interval *INTERVAL; *************** *** 1085,1091 **** union Lisp_Misc *chain; }; - /* In a marker, the markbit of the chain field is used as the gc mark bit. */ struct Lisp_Marker { int type : 16; /* = Lisp_Misc_Marker */ --- 1036,1041 ---- *************** *** 1105,1113 **** this is used to chain of all the markers in a given buffer. */ struct Lisp_Marker *next; /* This is the char position where the marker points. */ ! int charpos; /* This is the byte position. */ ! int bytepos; }; /* Forwarding pointer to an int variable. --- 1055,1063 ---- this is used to chain of all the markers in a given buffer. */ struct Lisp_Marker *next; /* This is the char position where the marker points. */ ! EMACS_INT charpos; /* This is the byte position. */ ! EMACS_INT bytepos; }; /* Forwarding pointer to an int variable. *************** *** 1217,1224 **** Lisp_Object cdr; }; ! /* In an overlay object, the mark bit of the plist is used as the GC mark. ! START and END are markers in the overlay's buffer, and PLIST is the overlay's property list. */ struct Lisp_Overlay { --- 1167,1173 ---- Lisp_Object cdr; }; ! /* START and END are markers in the overlay's buffer, and PLIST is the overlay's property list. */ struct Lisp_Overlay { *************** *** 2172,2178 **** EXFUN (Fend_of_line, 1); EXFUN (Fforward_char, 1); EXFUN (Fforward_line, 1); - extern int forward_point P_ ((int)); extern int internal_self_insert P_ ((int, int)); extern void syms_of_cmds P_ ((void)); extern void keys_of_cmds P_ ((void)); --- 2121,2126 ---- *************** *** 3010,3037 **** extern void syms_of_undo P_ ((void)); /* defined in textprop.c */ ! extern Lisp_Object Qmodification_hooks; ! extern Lisp_Object Qrear_nonsticky, Qfont, Qmouse_face; extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks; - EXFUN (Fnext_property_change, 3); EXFUN (Fnext_single_property_change, 4); EXFUN (Fnext_single_char_property_change, 4); EXFUN (Fprevious_single_property_change, 4); - EXFUN (Fget_text_property, 3); EXFUN (Fput_text_property, 5); - EXFUN (Fset_text_properties, 4); - EXFUN (Ftext_property_not_all, 5); EXFUN (Fprevious_char_property_change, 2); EXFUN (Fnext_char_property_change, 2); extern void report_interval_modification P_ ((Lisp_Object, Lisp_Object)); - extern void syms_of_textprop P_ ((void)); extern Lisp_Object next_single_char_property_change P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)); - extern Lisp_Object set_text_properties P_ ((Lisp_Object, Lisp_Object, - Lisp_Object, Lisp_Object, - Lisp_Object)); /* defined in xmenu.c */ EXFUN (Fx_popup_menu, 2); --- 2958,2976 ---- extern void syms_of_undo P_ ((void)); /* defined in textprop.c */ ! extern Lisp_Object Qfont, Qmouse_face; extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks; EXFUN (Fnext_single_property_change, 4); EXFUN (Fnext_single_char_property_change, 4); EXFUN (Fprevious_single_property_change, 4); EXFUN (Fput_text_property, 5); EXFUN (Fprevious_char_property_change, 2); EXFUN (Fnext_char_property_change, 2); extern void report_interval_modification P_ ((Lisp_Object, Lisp_Object)); extern Lisp_Object next_single_char_property_change P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)); /* defined in xmenu.c */ EXFUN (Fx_popup_menu, 2); From MAILER-DAEMON Wed Jul 09 17:14:09 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aLoQ-0004JT-82 for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:45:14 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aLnw-000457-1B for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:44:44 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aLbf-0000la-K5 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:32:04 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aKsQ-0006a7-Ld for emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:45:18 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aKrP-0000wA-D0 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 15:44:15 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 15:44:15 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 20:45:12 -0000 Index: emacs/src/buffer.h diff -c emacs/src/buffer.h:1.92 emacs/src/buffer.h:1.93 *** emacs/src/buffer.h:1.92 Wed Jul 9 10:47:45 2003 --- emacs/src/buffer.h Wed Jul 9 15:44:14 2003 *************** *** 27,33 **** /* Position of beginning of buffer. */ #define BEG (1) ! #define BEG_BYTE (1) /* Position of beginning of accessible range of buffer. */ #define BEGV (current_buffer->begv) --- 27,33 ---- /* Position of beginning of buffer. */ #define BEG (1) ! #define BEG_BYTE (BEG) /* Position of beginning of accessible range of buffer. */ #define BEGV (current_buffer->begv) *************** *** 397,407 **** into a buffer's text to functions that malloc. */ unsigned char *beg; ! int gpt; /* Char pos of gap in buffer. */ ! int z; /* Char pos of end of buffer. */ ! int gpt_byte; /* Byte pos of gap in buffer. */ ! int z_byte; /* Byte pos of end of buffer. */ ! int gap_size; /* Size of buffer's gap. */ int modiff; /* This counts buffer-modification events for this buffer. It is incremented for each such event, and never otherwise --- 397,407 ---- into a buffer's text to functions that malloc. */ unsigned char *beg; ! EMACS_INT gpt; /* Char pos of gap in buffer. */ ! EMACS_INT z; /* Char pos of end of buffer. */ ! EMACS_INT gpt_byte; /* Byte pos of gap in buffer. */ ! EMACS_INT z_byte; /* Byte pos of end of buffer. */ ! EMACS_INT gap_size; /* Size of buffer's gap. */ int modiff; /* This counts buffer-modification events for this buffer. It is incremented for each such event, and never otherwise *************** *** 412,421 **** int overlay_modiff; /* Counts modifications to overlays. */ /* Minimum value of GPT - BEG since last redisplay that finished. */ ! int beg_unchanged; /* Minimum value of Z - GPT since last redisplay that finished. */ ! int end_unchanged; /* MODIFF as of last redisplay that finished; if it matches MODIFF, beg_unchanged and end_unchanged contain no useful information. */ --- 412,421 ---- int overlay_modiff; /* Counts modifications to overlays. */ /* Minimum value of GPT - BEG since last redisplay that finished. */ ! EMACS_INT beg_unchanged; /* Minimum value of Z - GPT since last redisplay that finished. */ ! EMACS_INT end_unchanged; /* MODIFF as of last redisplay that finished; if it matches MODIFF, beg_unchanged and end_unchanged contain no useful information. */ *************** *** 464,480 **** struct buffer_text *text; /* Char position of point in buffer. */ ! int pt; /* Byte position of point in buffer. */ ! int pt_byte; /* Char position of beginning of accessible range. */ ! int begv; /* Byte position of beginning of accessible range. */ ! int begv_byte; /* Char position of end of accessible range. */ ! int zv; /* Byte position of end of accessible range. */ ! int zv_byte; /* In an indirect buffer, this points to the base buffer. In an ordinary buffer, it is 0. */ --- 464,480 ---- struct buffer_text *text; /* Char position of point in buffer. */ ! EMACS_INT pt; /* Byte position of point in buffer. */ ! EMACS_INT pt_byte; /* Char position of beginning of accessible range. */ ! EMACS_INT begv; /* Byte position of beginning of accessible range. */ ! EMACS_INT begv_byte; /* Char position of end of accessible range. */ ! EMACS_INT zv; /* Byte position of end of accessible range. */ ! EMACS_INT zv_byte; /* In an indirect buffer, this points to the base buffer. In an ordinary buffer, it is 0. */ *************** *** 503,509 **** int auto_save_failure_time; /* Position in buffer at which display started the last time this buffer was displayed. */ ! int last_window_start; /* Set nonzero whenever the narrowing is changed in this buffer. */ int clip_changed; --- 503,509 ---- int auto_save_failure_time; /* Position in buffer at which display started the last time this buffer was displayed. */ ! EMACS_INT last_window_start; /* Set nonzero whenever the narrowing is changed in this buffer. */ int clip_changed; From MAILER-DAEMON Wed Jul 09 17:15:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aLy7-0007u8-Kv for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:55:15 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aLxH-0007Wv-CX for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:54:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aLkt-0002wE-OD for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:41:36 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aLc0-0000sy-Ff for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:32:24 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aLaz-0004yO-16 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:31:21 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 16:31:21 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 20:55:14 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3308 emacs/src/ChangeLog:1.3309 *** emacs/src/ChangeLog:1.3308 Wed Jul 9 11:10:47 2003 --- emacs/src/ChangeLog Wed Jul 9 16:31:19 2003 *************** *** 1,5 **** --- 1,24 ---- 2003-07-09 Stefan Monnier + * lisp.h (VALBITS): Define in terms of GCTYPEBITS. + (struct interval): Move to intervals.h. + (struct Lisp_Marker): Use EMACS_INT for position info. + (forward_point): Remove prototype of defunct function. + (Qmodification_hooks, Qrear_nonsticky, Fnext_property_change) + (Fget_text_property, Fset_text_properties, Ftext_propertes_not_all) + (syms_of_textprop, set_text_properties): Remove prototypes that are + already in intervals.h. + + * intervals.h (struct interval): Move from lisp.h. + Use EMACS_INT for position and size info. + + * coding.c: Include intervals.h for Fset_text_properties. + + * buffer.h (struct buffer_text, struct buffer): Use EMACS_INT for + position and length information. + + 2003-07-09 Stefan Monnier + Change overlays_after and overlays_before so the overlays themselves are linked into lists, rather than using cons cells. After all each Lisp_Misc already occupies 5 words, so we can add a `next' field to From MAILER-DAEMON Wed Jul 09 17:16:17 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aMDF-0005RW-Dx for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 17:10:53 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aMAu-0004gd-UF for emacs-diffs@gnu.org; Wed, 09 Jul 2003 17:08:28 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aM6g-00031p-Jn for emacs-diffs@gnu.org; Wed, 09 Jul 2003 17:04:07 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aLVu-00080N-Js for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:26:06 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aLUt-00041p-Eu for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:25:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 16:25:03 -0400 Subject: [Emacs-diffs] Changes to emacs/src/coding.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 21:10:51 -0000 Index: emacs/src/coding.c diff -c emacs/src/coding.c:1.287 emacs/src/coding.c:1.288 *** emacs/src/coding.c:1.287 Wed Jul 9 10:52:55 2003 --- emacs/src/coding.c Wed Jul 9 16:25:02 2003 *************** *** 345,350 **** --- 345,351 ---- #include "ccl.h" #include "coding.h" #include "window.h" + #include "intervals.h" #else /* not emacs */ From MAILER-DAEMON Wed Jul 09 17:38:00 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aLsb-00060M-3H for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:49:33 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aLgM-0002DX-Oa for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:36:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aLcJ-00010n-DU for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:32:44 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aLWp-000885-3I for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:27:03 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19aLVn-0004Co-Vd for emacs-diffs@gnu.org; Wed, 09 Jul 2003 16:26:00 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 09 Jul 2003 16:26:00 -0400 Subject: [Emacs-diffs] Changes to emacs/src/intervals.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jul 2003 20:49:31 -0000 Index: emacs/src/intervals.h diff -c emacs/src/intervals.h:1.53 emacs/src/intervals.h:1.54 *** emacs/src/intervals.h:1.53 Sat May 17 14:54:56 2003 --- emacs/src/intervals.h Wed Jul 9 16:25:59 2003 *************** *** 23,28 **** --- 23,71 ---- #define NULL_INTERVAL ((INTERVAL)0) #define INTERVAL_DEFAULT NULL_INTERVAL + /* Basic data type for use of intervals. */ + + struct interval + { + /* The first group of entries deal with the tree structure. */ + + unsigned EMACS_INT total_length; /* Length of myself and both children. */ + unsigned EMACS_INT position; /* Cache of interval's character position. */ + /* This field is usually updated + simultaneously with an interval + traversal, there is no guarantee + that it is valid for a random + interval. */ + struct interval *left; /* Intervals which precede me. */ + struct interval *right; /* Intervals which succeed me. */ + + /* Parent in the tree, or the Lisp_Object containing this interval tree. */ + union + { + struct interval *interval; + Lisp_Object obj; + } up; + unsigned int up_obj : 1; + + unsigned gcmarkbit : 1; + + /* The remaining components are `properties' of the interval. + The first four are duplicates for things which can be on the list, + for purposes of speed. */ + + unsigned int write_protect : 1; /* Non-zero means can't modify. */ + unsigned int visible : 1; /* Zero means don't display. */ + unsigned int front_sticky : 1; /* Non-zero means text inserted just + before this interval goes into it. */ + unsigned int rear_sticky : 1; /* Likewise for just after it. */ + + /* Properties of this interval. + The mark bit on this field says whether this particular interval + tree node has been visited. Since intervals should never be + shared, GC aborts if it seems to have visited an interval twice. */ + Lisp_Object plist; + }; + /* These are macros for dealing with the interval tree. */ /* Size of the structure used to represent an interval */ *************** *** 41,47 **** #define INT_LISPLIKE(i) (BUFFERP ((Lisp_Object){(EMACS_INT)(i)}) \ || STRINGP ((Lisp_Object){(EMACS_INT)(i)})) #endif ! #define NULL_INTERVAL_P(i) (CHECK(!INT_LISPLIKE(i),"non-interval"),(i) == NULL_INTERVAL) /* old #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL || INT_LISPLIKE (i)) */ /* True if this interval has no right child. */ --- 84,91 ---- #define INT_LISPLIKE(i) (BUFFERP ((Lisp_Object){(EMACS_INT)(i)}) \ || STRINGP ((Lisp_Object){(EMACS_INT)(i)})) #endif ! #define NULL_INTERVAL_P(i) \ ! (CHECK (!INT_LISPLIKE (i), "non-interval"), (i) == NULL_INTERVAL) /* old #define NULL_INTERVAL_P(i) ((i) == NULL_INTERVAL || INT_LISPLIKE (i)) */ /* True if this interval has no right child. */ *************** *** 111,129 **** The choice of macros is dependent on the type needed. Don't add casts to get around this, it will break some development work in progress. */ ! #define SET_INTERVAL_PARENT(i,p) (eassert (!INT_LISPLIKE (p)),(i)->up_obj = 0, (i)->up.interval = (p)) ! #define SET_INTERVAL_OBJECT(i,o) (eassert (!INTEGERP (o)), eassert (BUFFERP (o) || STRINGP (o)),(i)->up_obj = 1, (i)->up.obj = (o)) ! #define INTERVAL_PARENT(i) (eassert((i) != 0 && (i)->up_obj == 0),(i)->up.interval) #define GET_INTERVAL_OBJECT(d,s) (eassert((s)->up_obj == 1), (d) = (s)->up.obj) /* Make the parent of D be whatever the parent of S is, regardless of type. This is used when balancing an interval tree. */ ! #define COPY_INTERVAL_PARENT(d,s) ((d)->up = (s)->up, (d)->up_obj = (s)->up_obj) /* Get the parent interval, if any, otherwise a null pointer. Useful for walking up to the root in a "for" loop; use this to get the "next" value, and test the result to see if it's NULL_INTERVAL. */ ! #define INTERVAL_PARENT_OR_NULL(i) (INTERVAL_HAS_PARENT (i) ? INTERVAL_PARENT (i) : 0) /* Abort if interval I's size is negative. */ #define CHECK_TOTAL_LENGTH(i) \ --- 155,178 ---- The choice of macros is dependent on the type needed. Don't add casts to get around this, it will break some development work in progress. */ ! #define SET_INTERVAL_PARENT(i,p) \ ! (eassert (!INT_LISPLIKE (p)), (i)->up_obj = 0, (i)->up.interval = (p)) ! #define SET_INTERVAL_OBJECT(i,o) \ ! (eassert (BUFFERP (o) || STRINGP (o)), (i)->up_obj = 1, (i)->up.obj = (o)) ! #define INTERVAL_PARENT(i) \ ! (eassert ((i) != 0 && (i)->up_obj == 0),(i)->up.interval) #define GET_INTERVAL_OBJECT(d,s) (eassert((s)->up_obj == 1), (d) = (s)->up.obj) /* Make the parent of D be whatever the parent of S is, regardless of type. This is used when balancing an interval tree. */ ! #define COPY_INTERVAL_PARENT(d,s) \ ! ((d)->up = (s)->up, (d)->up_obj = (s)->up_obj) /* Get the parent interval, if any, otherwise a null pointer. Useful for walking up to the root in a "for" loop; use this to get the "next" value, and test the result to see if it's NULL_INTERVAL. */ ! #define INTERVAL_PARENT_OR_NULL(i) \ ! (INTERVAL_HAS_PARENT (i) ? INTERVAL_PARENT (i) : 0) /* Abort if interval I's size is negative. */ #define CHECK_TOTAL_LENGTH(i) \ *************** *** 304,312 **** void extend_property_ranges P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); Lisp_Object get_char_property_and_overlay P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object*)); ! extern int text_property_stickiness P_ ((Lisp_Object prop, Lisp_Object pos, Lisp_Object buffer)); ! extern Lisp_Object get_pos_property P_ ((Lisp_Object pos, Lisp_Object prop, Lisp_Object object)); ! extern void syms_of_textprop (); #include "composite.h" --- 353,363 ---- void extend_property_ranges P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); Lisp_Object get_char_property_and_overlay P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object*)); ! extern int text_property_stickiness P_ ((Lisp_Object prop, Lisp_Object pos, ! Lisp_Object buffer)); ! extern Lisp_Object get_pos_property P_ ((Lisp_Object pos, Lisp_Object prop, ! Lisp_Object object)); ! extern void syms_of_textprop P_ ((void)); #include "composite.h" From MAILER-DAEMON Wed Jul 09 21:01:34 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aPoT-00045A-T8 for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:01:33 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aPoR-000422-99 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:01:31 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aPoP-0003zm-DV for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:01:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aPoP-0003za-5t for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:01:29 -0400 Received: from gm by subversions.gnu.org with local (Exim 4.20) id 19aPnM-0006A6-RQ for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:00:24 -0400 To: emacs-diffs@gnu.org Message-Id: From: Glenn Morris Date: Wed, 09 Jul 2003 21:00:24 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: gmorris@ast.cam.ac.uk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 01:01:32 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5272 emacs/lisp/ChangeLog:1.5273 *** emacs/lisp/ChangeLog:1.5272 Wed Jul 9 12:21:02 2003 --- emacs/lisp/ChangeLog Wed Jul 9 21:00:24 2003 *************** *** 1,3 **** --- 1,16 ---- + 2003-07-10 Glenn Morris + + * calendar/timeclock.el (timeclock-use-display-time) + (timeclock-day-over-hook, timeclock-workday-remaining) + (timeclock-status-string, timeclock-when-to-leave) + (timeclock-when-to-leave-string, timeclock-log-data) + (timeclock-find-discrep, timeclock-day-base) + (timeclock-generate-report, timeclock-visit-timelog): Doc fix. + (timeclock-modeline-display): Set the variable + `timeclock-modeline-display'. + (timeclock-update-modeline): Doc fix. Respect value of + `timeclock-relative'. + 2003-07-09 Richard M. Stallman * textmodes/reftex-parse.el (reftex-all-document-files): From MAILER-DAEMON Wed Jul 09 21:05:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aPry-0000Ac-6k for mharc-emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:05:10 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aPrl-00085I-L6 for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:04:57 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aPqX-0006TF-0x for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:03:42 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aPq6-00061v-8p for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:03:14 -0400 Received: from gm by subversions.gnu.org with local (Exim 4.20) id 19aPp5-0006BJ-Ax for emacs-diffs@gnu.org; Wed, 09 Jul 2003 21:02:11 -0400 To: emacs-diffs@gnu.org Message-Id: From: Glenn Morris Date: Wed, 09 Jul 2003 21:02:11 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/calendar/timeclock.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: gmorris@ast.cam.ac.uk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 01:05:08 -0000 Index: emacs/lisp/calendar/timeclock.el diff -c emacs/lisp/calendar/timeclock.el:1.25 emacs/lisp/calendar/timeclock.el:1.26 *** emacs/lisp/calendar/timeclock.el:1.25 Thu Jun 12 13:28:48 2003 --- emacs/lisp/calendar/timeclock.el Wed Jul 9 21:02:11 2003 *************** *** 155,161 **** requires you to have `display-time' running. If you don't want to use `display-time', but still want the modeline to show how much time is left, set this variable to nil. You will need to restart Emacs (or ! toggle the value of `timeclock-modeline-display') for the change to take effect." :set (lambda (symbol value) (let ((currently-displaying --- 155,161 ---- requires you to have `display-time' running. If you don't want to use `display-time', but still want the modeline to show how much time is left, set this variable to nil. You will need to restart Emacs (or ! toggle the function `timeclock-modeline-display') for the change to take effect." :set (lambda (symbol value) (let ((currently-displaying *************** *** 204,210 **** (defcustom timeclock-day-over-hook nil "*A hook that is run when the workday has been completed. ! This hook is only run if the current time remaining is being display in the modeline. See the variable `timeclock-modeline-display'." :type 'hook :group 'timeclock) --- 204,210 ---- (defcustom timeclock-day-over-hook nil "*A hook that is run when the workday has been completed. ! This hook is only run if the current time remaining is being displayed in the modeline. See the variable `timeclock-modeline-display'." :type 'hook :group 'timeclock) *************** *** 301,307 **** (add-hook 'display-time-hook 'timeclock-update-modeline)) (setq timeclock-update-timer (run-at-time nil 60 'timeclock-update-modeline)))) ! (setq global-mode-string (delq 'timeclock-mode-string global-mode-string)) (remove-hook 'timeclock-event-hook 'timeclock-update-modeline) (if (boundp 'display-time-hook) --- 301,307 ---- (add-hook 'display-time-hook 'timeclock-update-modeline)) (setq timeclock-update-timer (run-at-time nil 60 'timeclock-update-modeline)))) ! (setq global-mode-string (delq 'timeclock-mode-string global-mode-string)) (remove-hook 'timeclock-event-hook 'timeclock-update-modeline) (if (boundp 'display-time-hook) *************** *** 311,317 **** (cancel-timer timeclock-update-timer) (setq timeclock-update-timer nil))) (force-mode-line-update) ! on-p)) ;; This has to be here so that the function definition of ;; `timeclock-modeline-display' is known to the "set" function. --- 311,317 ---- (cancel-timer timeclock-update-timer) (setq timeclock-update-timer nil))) (force-mode-line-update) ! (setq timeclock-modeline-display on-p))) ;; This has to be here so that the function definition of ;; `timeclock-modeline-display' is known to the "set" function. *************** *** 400,423 **** (if arg (run-hooks 'timeclock-done-hook)))) (defsubst timeclock-workday-remaining (&optional today-only) "Return the number of seconds until the workday is complete. The amount returned is relative to the value of `timeclock-workday'. If TODAY-ONLY is non-nil, the value returned will be relative only to ! the time worked today, and not to past time. This argument only makes ! a difference if `timeclock-relative' is non-nil." (let ((discrep (timeclock-find-discrep))) (if discrep ! (if today-only ! (- (cadr discrep)) ! (- (car discrep))) 0.0))) ;;;###autoload (defun timeclock-status-string (&optional show-seconds today-only) ! "Report the overall timeclock status at the present moment." (interactive "P") ! (let ((remainder (timeclock-workday-remaining)) (last-in (equal (car timeclock-last-event) "i")) status) (setq status --- 400,425 ---- (if arg (run-hooks 'timeclock-done-hook)))) + ;; Should today-only be removed in favour of timeclock-relative? - gm (defsubst timeclock-workday-remaining (&optional today-only) "Return the number of seconds until the workday is complete. The amount returned is relative to the value of `timeclock-workday'. If TODAY-ONLY is non-nil, the value returned will be relative only to ! the time worked today, and not to past time." (let ((discrep (timeclock-find-discrep))) (if discrep ! (- (if today-only (cadr discrep) ! (car discrep))) 0.0))) ;;;###autoload (defun timeclock-status-string (&optional show-seconds today-only) ! "Report the overall timeclock status at the present moment. ! If SHOW-SECONDS is non-nil, display second resolution. ! If TODAY-ONLY is non-nil, the display will be relative only to time ! worked today, ignoring the time worked on previous days." (interactive "P") ! (let ((remainder (timeclock-workday-remaining)) ; today-only? (last-in (equal (car timeclock-last-event) "i")) status) (setq status *************** *** 542,552 **** (floor (mod seconds 65536)) (floor (* (- seconds (ffloor seconds)) 1000000)))) (defsubst timeclock-when-to-leave (&optional today-only) "Return a time value representing at when the workday ends today. If TODAY-ONLY is non-nil, the value returned will be relative only to ! the time worked today, and not to past time. This argument only makes ! a difference if `timeclock-relative' is non-nil." (timeclock-seconds-to-time (- (timeclock-time-to-seconds (current-time)) (let ((discrep (timeclock-find-discrep))) --- 544,554 ---- (floor (mod seconds 65536)) (floor (* (- seconds (ffloor seconds)) 1000000)))) + ;; Should today-only be removed in favour of timeclock-relative? - gm (defsubst timeclock-when-to-leave (&optional today-only) "Return a time value representing at when the workday ends today. If TODAY-ONLY is non-nil, the value returned will be relative only to ! the time worked today, and not to past time." (timeclock-seconds-to-time (- (timeclock-time-to-seconds (current-time)) (let ((discrep (timeclock-find-discrep))) *************** *** 561,572 **** today-only) "Return a string representing at what time the workday ends today. This string is relative to the value of `timeclock-workday'. If ! NO-MESSAGE is non-nil, no messages will be displayed in the ! minibuffer. If SHOW-SECONDS is non-nil, the value printed/returned ! will include seconds. If TODAY-ONLY is non-nil, the value returned ! will be relative only to the time worked today, and not to past time. ! This argument only makes a difference if `timeclock-relative' is ! non-nil." (interactive) (let* ((then (timeclock-when-to-leave today-only)) (string --- 563,572 ---- today-only) "Return a string representing at what time the workday ends today. This string is relative to the value of `timeclock-workday'. If ! SHOW-SECONDS is non-nil, the value printed/returned will include ! seconds. If TODAY-ONLY is non-nil, the value returned will be ! relative only to the time worked today, and not to past time." ! ;; Should today-only be removed in favour of timeclock-relative? - gm (interactive) (let* ((then (timeclock-when-to-leave today-only)) (string *************** *** 609,617 **** (mapcar 'list timeclock-reason-list))) (defun timeclock-update-modeline () ! "Update the `timeclock-mode-string' displayed in the modeline." (interactive) ! (let ((remainder (timeclock-workday-remaining)) (last-in (equal (car timeclock-last-event) "i"))) (when (and (< remainder 0) (not (and timeclock-day-over --- 609,619 ---- (mapcar 'list timeclock-reason-list))) (defun timeclock-update-modeline () ! "Update the `timeclock-mode-string' displayed in the modeline. ! The value of `timeclock-relative' affects the display as described in ! that variable's documentation." (interactive) ! (let ((remainder (timeclock-workday-remaining (not timeclock-relative))) (last-in (equal (car timeclock-last-event) "i"))) (when (and (< remainder 0) (not (and timeclock-day-over *************** *** 827,832 **** --- 829,839 ---- (defun timeclock-log-data (&optional recent-only filename) "Return the contents of the timelog file, in a useful format. + If the optional argument RECENT-ONLY is non-nil, only show the contents + from the last point where the time debt (see below) was set. + If the optional argument FILENAME is non-nil, it is used instead of + the file specified by `timeclock-file.' + A timelog contains data in the form of a single entry per line. Each entry has the form: *************** *** 1021,1027 **** log-data))) (defun timeclock-find-discrep () ! "Find overall discrepancy from `timeclock-workday' (in seconds)." ;; This is not implemented in terms of the functions above, because ;; it's a bit wasteful to read all of that data in, just to throw ;; away more than 90% of the information afterwards. --- 1028,1036 ---- log-data))) (defun timeclock-find-discrep () ! "Calculate time discrepancies, in seconds. ! The result is a three element list, containing the total time ! discrepancy, today's discrepancy, and the time worked today." ;; This is not implemented in terms of the functions above, because ;; it's a bit wasteful to read all of that data in, just to throw ;; away more than 90% of the information afterwards. *************** *** 1122,1128 **** (< (nth 1 t1) (nth 1 t2))))) (defun timeclock-day-base (&optional time) ! "Given a time within a day, return 0:0:0 within that day." (let ((decoded (decode-time (or time (current-time))))) (setcar (nthcdr 0 decoded) 0) (setcar (nthcdr 1 decoded) 0) --- 1131,1138 ---- (< (nth 1 t1) (nth 1 t2))))) (defun timeclock-day-base (&optional time) ! "Given a time within a day, return 0:0:0 within that day. ! If optional argument TIME is non-nil, use that instead of the current time." (let ((decoded (decode-time (or time (current-time))))) (setcar (nthcdr 0 decoded) 0) (setcar (nthcdr 1 decoded) 0) *************** *** 1142,1148 **** 0))) (defun timeclock-generate-report (&optional html-p) ! "Generate a summary report based on the current timelog file." (interactive) (let ((log (timeclock-log-data)) (today (timeclock-day-base))) --- 1152,1160 ---- 0))) (defun timeclock-generate-report (&optional html-p) ! "Generate a summary report based on the current timelog file. ! By default, the report is in plain text, but if the optional argument ! HTML-P is non-nil html markup is added." (interactive) (let ((log (timeclock-log-data)) (today (timeclock-day-base))) *************** *** 1334,1340 **** ;;; A helpful little function (defun timeclock-visit-timelog () ! "Open up the .timelog file in another window." (interactive) (find-file-other-window timeclock-file)) --- 1346,1352 ---- ;;; A helpful little function (defun timeclock-visit-timelog () ! "Open the file named by `timeclock-file' in another window." (interactive) (find-file-other-window timeclock-file)) From MAILER-DAEMON Thu Jul 10 12:37:34 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19aePW-0003BX-PF for mharc-emacs-diffs@gnu.org; Thu, 10 Jul 2003 12:36:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19aeOG-0002fF-Mp for emacs-diffs@gnu.org; Thu, 10 Jul 2003 12:35:28 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aeM3-00021D-UM for emacs-diffs@gnu.org; Thu, 10 Jul 2003 12:33:16 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aeKs-0001eU-7W for emacs-diffs@gnu.org; Thu, 10 Jul 2003 12:31:58 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19aeJq-0007oP-UP for emacs-diffs@gnu.org; Thu, 10 Jul 2003 12:30:54 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Thu, 10 Jul 2003 12:30:54 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/etags.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 16:36:44 -0000 Index: emacs/lisp/progmodes/etags.el diff -c emacs/lisp/progmodes/etags.el:1.175 emacs/lisp/progmodes/etags.el:1.176 *** emacs/lisp/progmodes/etags.el:1.175 Fri Apr 11 05:08:29 2003 --- emacs/lisp/progmodes/etags.el Thu Jul 10 12:30:54 2003 *************** *** 518,523 **** --- 518,524 ---- ;; Set tags-file-name to the name from the list. It is already expanded. (setq tags-file-name (car tags-table-list-pointer)))) + ;;;###autoload (defun visit-tags-table-buffer (&optional cont) "Select the buffer containing the current tags table. If optional arg is a string, visit that file as a tags table. From MAILER-DAEMON Thu Jul 10 13:29:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19afDp-0001Me-F6 for mharc-emacs-diffs@gnu.org; Thu, 10 Jul 2003 13:28:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19af0U-00068p-EN for emacs-diffs@gnu.org; Thu, 10 Jul 2003 13:14:58 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19aeub-000434-EF for emacs-diffs@gnu.org; Thu, 10 Jul 2003 13:08:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19aecY-0007dd-7F for emacs-diffs@gnu.org; Thu, 10 Jul 2003 12:50:14 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19aeKe-0007q6-6M for emacs-diffs@gnu.org; Thu, 10 Jul 2003 12:31:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Thu, 10 Jul 2003 12:31:44 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 17:28:44 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5273 emacs/lisp/ChangeLog:1.5274 *** emacs/lisp/ChangeLog:1.5273 Wed Jul 9 21:00:24 2003 --- emacs/lisp/ChangeLog Thu Jul 10 12:31:43 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-10 John Paul Wallington + + * progmodes/etags.el (visit-tags-table-buffer): Add autoload cookie; + this function can be called from `add-completions-from-tags-table'. + 2003-07-10 Glenn Morris * calendar/timeclock.el (timeclock-use-display-time) From MAILER-DAEMON Thu Jul 10 18:33:31 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ajwq-0001Ci-QN for mharc-emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:31:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ajwA-0000ix-8a for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:30:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ajw6-0000bx-Sy for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:30:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ajvf-0000Jv-UP for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:30:19 -0400 Received: from viniciusjl by subversions.gnu.org with local (Exim 4.20) id 19ajuc-0004JN-Ol for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:29:14 -0400 To: emacs-diffs@gnu.org Message-Id: From: Vinicius Jose Latorre Date: Thu, 10 Jul 2003 18:29:14 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: viniciusjl@ig.com.br List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 22:31:30 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5274 emacs/lisp/ChangeLog:1.5275 *** emacs/lisp/ChangeLog:1.5274 Thu Jul 10 12:31:43 2003 --- emacs/lisp/ChangeLog Thu Jul 10 18:29:13 2003 *************** *** 1,3 **** --- 1,10 ---- + 2003-07-10 Vinicius Jose Latorre + + * ps-print.el: Print line number correctly in a region. Reported by + Tim Allen + (ps-print-version): New version number (6.6.2). + (ps-printing-region): Code fix. + 2003-07-10 John Paul Wallington * progmodes/etags.el (visit-tags-table-buffer): Add autoload cookie; From MAILER-DAEMON Thu Jul 10 18:35:07 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ak0B-0005cC-7V for mharc-emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:34:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ajxb-0002E7-Ve for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:32:19 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ajw7-0000d1-Jl for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:30:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ajvf-0000Jx-UP for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:30:19 -0400 Received: from viniciusjl by subversions.gnu.org with local (Exim 4.20) id 19ajuc-0004JR-Tv for emacs-diffs@gnu.org; Thu, 10 Jul 2003 18:29:14 -0400 To: emacs-diffs@gnu.org Message-Id: From: Vinicius Jose Latorre Date: Thu, 10 Jul 2003 18:29:14 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ps-print.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: viniciusjl@ig.com.br List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 22:34:57 -0000 Index: emacs/lisp/ps-print.el diff -c emacs/lisp/ps-print.el:1.136 emacs/lisp/ps-print.el:1.137 *** emacs/lisp/ps-print.el:1.136 Wed May 14 22:32:03 2003 --- emacs/lisp/ps-print.el Thu Jul 10 18:29:13 2003 *************** *** 10,21 **** ;; Maintainer: Kenichi Handa (multi-byte characters) ;; Vinicius Jose Latorre ;; Keywords: wp, print, PostScript ! ;; Time-stamp: <2003/05/14 22:34:05 vinicius> ! ;; Version: 6.6.1 ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ ! (defconst ps-print-version "6.6.1" ! "ps-print.el, v 6.6.1 <2003/05/14 vinicius> Vinicius's last change version -- this file may have been edited as part of Emacs without changes to the version number. When reporting bugs, please also --- 10,21 ---- ;; Maintainer: Kenichi Handa (multi-byte characters) ;; Vinicius Jose Latorre ;; Keywords: wp, print, PostScript ! ;; Time-stamp: <2003/07/10 19:19:12 vinicius> ! ;; Version: 6.6.2 ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ ! (defconst ps-print-version "6.6.2" ! "ps-print.el, v 6.6.2 <2003/07/10 vinicius> Vinicius's last change version -- this file may have been edited as part of Emacs without changes to the version number. When reporting bugs, please also *************** *** 4126,4132 **** (defun ps-spool-without-faces (from to &optional region-p) (run-hooks 'ps-print-hook) ! (ps-printing-region region-p from) (ps-generate (current-buffer) from to 'ps-generate-postscript)) --- 4126,4132 ---- (defun ps-spool-without-faces (from to &optional region-p) (run-hooks 'ps-print-hook) ! (ps-printing-region region-p from to) (ps-generate (current-buffer) from to 'ps-generate-postscript)) *************** *** 4137,4143 **** (defun ps-spool-with-faces (from to &optional region-p) (run-hooks 'ps-print-hook) ! (ps-printing-region region-p from) (ps-generate (current-buffer) from to 'ps-generate-postscript-with-faces)) --- 4137,4143 ---- (defun ps-spool-with-faces (from to &optional region-p) (run-hooks 'ps-print-hook) ! (ps-printing-region region-p from to) (ps-generate (current-buffer) from to 'ps-generate-postscript-with-faces)) *************** *** 4167,4177 **** "Non-nil means ps-print is printing a region.") ! (defun ps-printing-region (region-p from) (setq ps-printing-region-p region-p ps-printing-region (cons (if region-p ! (ps-count-lines (point-min) from) 1) (ps-count-lines (point-min) (point-max))))) --- 4167,4177 ---- "Non-nil means ps-print is printing a region.") ! (defun ps-printing-region (region-p from to) (setq ps-printing-region-p region-p ps-printing-region (cons (if region-p ! (ps-count-lines (point-min) (min from to)) 1) (ps-count-lines (point-min) (point-max))))) From MAILER-DAEMON Thu Jul 10 22:45:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19anrw-0004u2-67 for mharc-emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:42:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19anrB-0004TI-Ql for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:41:57 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19anr6-0004Nt-SC for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:41:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19anqN-0003bf-VB for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:41:08 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19anpJ-0006bZ-Pn for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:40:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Thu, 10 Jul 2003 22:40:01 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/mule-cmds.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 02:42:42 -0000 Index: emacs/lisp/international/mule-cmds.el diff -c emacs/lisp/international/mule-cmds.el:1.240 emacs/lisp/international/mule-cmds.el:1.241 *** emacs/lisp/international/mule-cmds.el:1.240 Wed Jul 9 12:18:21 2003 --- emacs/lisp/international/mule-cmds.el Thu Jul 10 22:40:01 2003 *************** *** 1708,1715 **** (if (symbolp language-name) (setq language-name (symbol-name language-name))) (setq language-name "English")) ! (or (assoc-ignore-case language-name language-info-alist) (error "Language environment not defined: %S" language-name)) (if current-language-environment (let ((func (get-language-info current-language-environment 'exit-function))) --- 1708,1717 ---- (if (symbolp language-name) (setq language-name (symbol-name language-name))) (setq language-name "English")) ! (let ((slot (assoc-ignore-case language-name language-info-alist))) ! (unless slot (error "Language environment not defined: %S" language-name)) + (setq language-name (car slot))) (if current-language-environment (let ((func (get-language-info current-language-environment 'exit-function))) From MAILER-DAEMON Thu Jul 10 22:50:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19anww-0000Z2-0p for mharc-emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:47:54 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19anw4-0007JH-Hs for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:47:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19anue-0006nm-45 for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:45:32 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ant9-00062w-OV for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:43:59 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19ans7-0006ht-TL for emacs-diffs@gnu.org; Thu, 10 Jul 2003 22:42:55 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Thu, 10 Jul 2003 22:42:55 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 02:47:52 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5275 emacs/lisp/ChangeLog:1.5276 *** emacs/lisp/ChangeLog:1.5275 Thu Jul 10 18:29:13 2003 --- emacs/lisp/ChangeLog Thu Jul 10 22:42:54 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-11 Kenichi Handa + + * international/mule-cmds.el (set-language-environment): Set + current-language-environment to the correct string. + 2003-07-10 Vinicius Jose Latorre * ps-print.el: Print line number correctly in a region. Reported by From MAILER-DAEMON Fri Jul 11 05:09:14 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19attW-0005b3-Rn for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:08:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19atsY-0004df-D7 for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:07:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19atra-0004AN-Ho for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:06:46 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19atrC-0003Fb-0n for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:06:22 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19atqB-0001QG-5z for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:05:19 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Fri, 11 Jul 2003 05:05:19 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:08:44 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.432 emacs/src/buffer.c:1.433 *** emacs/src/buffer.c:1.432 Wed Jul 9 15:05:41 2003 --- emacs/src/buffer.c Fri Jul 11 05:05:18 2003 *************** *** 184,190 **** static void alloc_buffer_text P_ ((struct buffer *, size_t)); static void free_buffer_text P_ ((struct buffer *b)); static struct Lisp_Overlay * copy_overlays P_ ((struct buffer *, struct Lisp_Overlay *)); ! static void modify_overlay P_ ((struct buffer *, int, int)); /* For debugging; temporary. See set_buffer_internal. */ --- 184,190 ---- static void alloc_buffer_text P_ ((struct buffer *, size_t)); static void free_buffer_text P_ ((struct buffer *b)); static struct Lisp_Overlay * copy_overlays P_ ((struct buffer *, struct Lisp_Overlay *)); ! static void modify_overlay P_ ((struct buffer *, EMACS_INT, EMACS_INT)); /* For debugging; temporary. See set_buffer_internal. */ From MAILER-DAEMON Fri Jul 11 05:09:49 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19atu4-0006d0-IQ for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:09:20 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19atu0-0006Qc-0a for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:09:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19attK-0005In-2G for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:08:34 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19atrs-0004Hk-Uh for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:07:04 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19atqs-0001Rj-3z for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:06:02 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Fri, 11 Jul 2003 05:06:02 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:09:19 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3309 emacs/src/ChangeLog:1.3310 *** emacs/src/ChangeLog:1.3309 Wed Jul 9 16:31:19 2003 --- emacs/src/ChangeLog Fri Jul 11 05:06:01 2003 *************** *** 1,3 **** --- 1,9 ---- + 2003-07-11 Andreas Schwab + + * buffer.c (modify_overlay): Update prototype. + * lisp.h (adjust_overlays_for_insert, adjust_overlays_for_delete): + Likewise. + 2003-07-09 Stefan Monnier * lisp.h (VALBITS): Define in terms of GCTYPEBITS. From MAILER-DAEMON Fri Jul 11 05:11:49 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19atuE-00074v-5G for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:09:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19atty-0006Py-Lw for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:09:14 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19attW-0005aK-3z for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:08:46 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19atrm-0004HA-SD for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:06:59 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19atqe-0001RA-1J for emacs-diffs@gnu.org; Fri, 11 Jul 2003 05:05:48 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Fri, 11 Jul 2003 05:05:48 -0400 Subject: [Emacs-diffs] Changes to emacs/src/lisp.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 09:09:27 -0000 Index: emacs/src/lisp.h diff -c emacs/src/lisp.h:1.464 emacs/src/lisp.h:1.465 *** emacs/src/lisp.h:1.464 Wed Jul 9 16:30:15 2003 --- emacs/src/lisp.h Fri Jul 11 05:05:47 2003 *************** *** 2630,2637 **** EXFUN (Fset_buffer_multibyte, 1); EXFUN (Foverlay_start, 1); EXFUN (Foverlay_end, 1); ! extern void adjust_overlays_for_insert P_ ((int, int)); ! extern void adjust_overlays_for_delete P_ ((int, int)); extern void fix_overlays_in_range P_ ((int, int)); extern void report_overlay_modification P_ ((Lisp_Object, Lisp_Object, int, Lisp_Object, Lisp_Object, Lisp_Object)); --- 2630,2637 ---- EXFUN (Fset_buffer_multibyte, 1); EXFUN (Foverlay_start, 1); EXFUN (Foverlay_end, 1); ! extern void adjust_overlays_for_insert P_ ((EMACS_INT, EMACS_INT)); ! extern void adjust_overlays_for_delete P_ ((EMACS_INT, EMACS_INT)); extern void fix_overlays_in_range P_ ((int, int)); extern void report_overlay_modification P_ ((Lisp_Object, Lisp_Object, int, Lisp_Object, Lisp_Object, Lisp_Object)); From MAILER-DAEMON Fri Jul 11 09:23:52 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19axsN-00049h-Qq for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:23:51 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19axsL-000494-2s for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:23:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19axlD-0008A2-3I for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:16:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19axkA-0007oi-Jc for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:15:22 -0400 Received: from gm by subversions.gnu.org with local (Exim 4.20) id 19axj9-0005jU-2T for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:14:19 -0400 To: emacs-diffs@gnu.org Message-Id: From: Glenn Morris Date: Fri, 11 Jul 2003 09:14:19 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: gmorris@ast.cam.ac.uk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 13:23:50 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5276 emacs/lisp/ChangeLog:1.5277 *** emacs/lisp/ChangeLog:1.5276 Thu Jul 10 22:42:54 2003 --- emacs/lisp/ChangeLog Fri Jul 11 09:14:17 2003 *************** *** 1,3 **** --- 1,12 ---- + 2003-07-11 Glenn Morris + + * calendar/timeclock.el (timeclock-relative) + (timeclock-ask-before-exiting, timeclock-use-display-time): Doc + changes. + (timeclock-modeline-display): Give a message if + `timeclock-use-display-time' is non-nil but `display-time-mode' + is not active. + 2003-07-11 Kenichi Handa * international/mule-cmds.el (set-language-environment): Set From MAILER-DAEMON Fri Jul 11 09:29:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19axq7-0003Xg-1W for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:21:31 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19axmA-0000Jv-UU for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:17:27 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19axm6-0000GK-QF for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:17:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19axku-00081V-FO for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:16:08 -0400 Received: from gm by subversions.gnu.org with local (Exim 4.20) id 19axjt-0005mR-Lm for emacs-diffs@gnu.org; Fri, 11 Jul 2003 09:15:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Glenn Morris Date: Fri, 11 Jul 2003 09:15:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/calendar/timeclock.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: gmorris@ast.cam.ac.uk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 13:21:29 -0000 Index: emacs/lisp/calendar/timeclock.el diff -c emacs/lisp/calendar/timeclock.el:1.26 emacs/lisp/calendar/timeclock.el:1.27 *** emacs/lisp/calendar/timeclock.el:1.26 Wed Jul 9 21:02:11 2003 --- emacs/lisp/calendar/timeclock.el Fri Jul 11 09:15:05 2003 *************** *** 33,43 **** ;; Use `timeclock-in' when you start on a project, and `timeclock-out' ;; when you're done. Once you've collected some data, you can use ;; `timeclock-workday-remaining' to see how much time is left to be ! ;; worked today (assuming a typical average of 8 hours a day), and ! ;; `timeclock-when-to-leave' which will calculate when you're free. ;; You'll probably want to bind the timeclock commands to some handy ! ;; keystrokes. At the moment, C-x t is unused in Emacs 20: ;; ;; (require 'timeclock) ;; --- 33,43 ---- ;; Use `timeclock-in' when you start on a project, and `timeclock-out' ;; when you're done. Once you've collected some data, you can use ;; `timeclock-workday-remaining' to see how much time is left to be ! ;; worked today (where `timeclock-workday' specifies the length of the ! ;; working day), and `timeclock-when-to-leave' to calculate when you're free. ;; You'll probably want to bind the timeclock commands to some handy ! ;; keystrokes. At the moment, C-x t is unused: ;; ;; (require 'timeclock) ;; *************** *** 99,106 **** work four hours on Monday, then the amount of time \"remaining\" on Tuesday is twelve hours -- relative to an averaged work period of eight hours -- or eight hours, non-relative. So relative time takes ! into account any discrepancy of time under-worked or overworked on ! previous days." :type 'boolean :group 'timeclock) --- 99,106 ---- work four hours on Monday, then the amount of time \"remaining\" on Tuesday is twelve hours -- relative to an averaged work period of eight hours -- or eight hours, non-relative. So relative time takes ! into account any discrepancy of time under-worked or over-worked on ! previous days. This only affects the timeclock modeline display." :type 'boolean :group 'timeclock) *************** *** 132,138 **** :group 'timeclock) (defcustom timeclock-ask-before-exiting t ! "*If non-nil, ask if the user wants to clock out before exiting Emacs." :set (lambda (symbol value) (if value (add-hook 'kill-emacs-query-functions 'timeclock-query-out) --- 132,139 ---- :group 'timeclock) (defcustom timeclock-ask-before-exiting t ! "*If non-nil, ask if the user wants to clock out before exiting Emacs. ! This variable only has an effect if set with \\[customize]." :set (lambda (symbol value) (if value (add-hook 'kill-emacs-query-functions 'timeclock-query-out) *************** *** 154,162 **** running amok in Emacs' process space. The disadvantage is that it requires you to have `display-time' running. If you don't want to use `display-time', but still want the modeline to show how much time is ! left, set this variable to nil. You will need to restart Emacs (or ! toggle the function `timeclock-modeline-display') for the change to ! take effect." :set (lambda (symbol value) (let ((currently-displaying (and (boundp 'timeclock-modeline-display) --- 155,164 ---- running amok in Emacs' process space. The disadvantage is that it requires you to have `display-time' running. If you don't want to use `display-time', but still want the modeline to show how much time is ! left, set this variable to nil. Changing the value of this variable ! while timeclock information is being displayed in the modeline has no ! effect. You should call the function `timeclock-modeline-display' with ! a positive argument to force an update." :set (lambda (symbol value) (let ((currently-displaying (and (boundp 'timeclock-modeline-display) *************** *** 248,254 **** This value is not accurate enough to be useful by itself. Rather, call `timeclock-workday-elapsed', to determine how much time has been worked so far today. Also, if `timeclock-relative' is nil, this value ! will be the same as `timeclock-discrepancy'.") (defvar timeclock-last-period nil "Integer representing the number of seconds in the last period. --- 250,256 ---- This value is not accurate enough to be useful by itself. Rather, call `timeclock-workday-elapsed', to determine how much time has been worked so far today. Also, if `timeclock-relative' is nil, this value ! will be the same as `timeclock-discrepancy'.") ; ? gm (defvar timeclock-last-period nil "Integer representing the number of seconds in the last period. *************** *** 297,303 **** (progn ;; Update immediately so there is a visible change ;; on calling this function. ! (if display-time-mode (timeclock-update-modeline)) (add-hook 'display-time-hook 'timeclock-update-modeline)) (setq timeclock-update-timer (run-at-time nil 60 'timeclock-update-modeline)))) --- 299,307 ---- (progn ;; Update immediately so there is a visible change ;; on calling this function. ! (if display-time-mode (timeclock-update-modeline) ! (message "Activate `display-time-mode' to see \ ! timeclock information")) (add-hook 'display-time-hook 'timeclock-update-modeline)) (setq timeclock-update-timer (run-at-time nil 60 'timeclock-update-modeline)))) From MAILER-DAEMON Fri Jul 11 15:48:24 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19b3rW-0005uM-QV for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 15:47:22 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19b3rJ-0005Ql-Mo for emacs-diffs@gnu.org; Fri, 11 Jul 2003 15:47:09 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19b3qU-0004Oa-P4 for emacs-diffs@gnu.org; Fri, 11 Jul 2003 15:46:19 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19b3q1-0004I0-AQ for emacs-diffs@gnu.org; Fri, 11 Jul 2003 15:45:49 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19b3oy-0003xD-Oo for emacs-diffs@gnu.org; Fri, 11 Jul 2003 15:44:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Fri, 11 Jul 2003 15:44:44 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 19:47:20 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3310 emacs/src/ChangeLog:1.3311 *** emacs/src/ChangeLog:1.3310 Fri Jul 11 05:06:01 2003 --- emacs/src/ChangeLog Fri Jul 11 15:44:44 2003 *************** *** 25,30 **** --- 25,35 ---- 2003-07-09 Stefan Monnier + * buffer.h (struct buffer_text, struct buffer): Use EMACS_INT for + position and length information. + + 2003-07-09 Stefan Monnier + Change overlays_after and overlays_before so the overlays themselves are linked into lists, rather than using cons cells. After all each Lisp_Misc already occupies 5 words, so we can add a `next' field to From MAILER-DAEMON Fri Jul 11 17:55:16 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19b5pU-0008Pc-AZ for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:53:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19b5pN-000899-8l for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:53:17 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19b5ot-0007YC-8L for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:52:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19b5oo-0007NG-J5 for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:52:42 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19b5nm-0007D5-PH for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:51:38 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Fri, 11 Jul 2003 17:51:38 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/ring.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 21:53:23 -0000 Index: emacs/lisp/emacs-lisp/ring.el diff -c emacs/lisp/emacs-lisp/ring.el:1.16 emacs/lisp/emacs-lisp/ring.el:1.17 *** emacs/lisp/emacs-lisp/ring.el:1.16 Sun May 21 13:29:50 2000 --- emacs/lisp/emacs-lisp/ring.el Fri Jul 11 17:51:37 2003 *************** *** 24,30 **** ;;; Commentary: ! ;; This code defines a ring data structure. A ring is a ;; (hd-index length . vector) ;; list. You can insert to, remove from, and rotate a ring. When the ring ;; fills up, insertions cause the oldest elts to be quietly dropped. --- 24,30 ---- ;;; Commentary: ! ;; This code defines a ring data structure. A ring is a ;; (hd-index length . vector) ;; list. You can insert to, remove from, and rotate a ring. When the ring ;; fills up, insertions cause the oldest elts to be quietly dropped. *************** *** 48,54 **** ;;;###autoload (defun ring-p (x) ! "Returns t if X is a ring; nil otherwise." (and (consp x) (integerp (car x)) (consp (cdr x)) (integerp (car (cdr x))) (vectorp (cdr (cdr x))))) --- 48,54 ---- ;;;###autoload (defun ring-p (x) ! "Return t if X is a ring; nil otherwise." (and (consp x) (integerp (car x)) (consp (cdr x)) (integerp (car (cdr x))) (vectorp (cdr (cdr x))))) *************** *** 71,90 **** (setcar (cdr ring) ln))) (defun ring-plus1 (index veclen) ! "Returns INDEX+1, with wraparound." (let ((new-index (+ index 1))) (if (= new-index veclen) 0 new-index))) (defun ring-minus1 (index veclen) ! "Returns INDEX-1, with wraparound." (- (if (= 0 index) veclen index) 1)) (defun ring-length (ring) ! "Returns the number of elements in the RING." (car (cdr ring))) (defun ring-index (index head ringlen veclen) ! "Converts nominal ring index INDEX to an internal index. The internal index refers to the items ordered from newest to oldest. HEAD is the index of the oldest element in the ring. RINGLEN is the number of elements currently in the ring. --- 71,90 ---- (setcar (cdr ring) ln))) (defun ring-plus1 (index veclen) ! "Return INDEX+1, with wraparound." (let ((new-index (+ index 1))) (if (= new-index veclen) 0 new-index))) (defun ring-minus1 (index veclen) ! "Return INDEX-1, with wraparound." (- (if (= 0 index) veclen index) 1)) (defun ring-length (ring) ! "Return the number of elements in the RING." (car (cdr ring))) (defun ring-index (index head ringlen veclen) ! "Convert nominal ring index INDEX to an internal index. The internal index refers to the items ordered from newest to oldest. HEAD is the index of the oldest element in the ring. RINGLEN is the number of elements currently in the ring. *************** *** 93,107 **** (mod (1- (+ head (- ringlen index))) veclen)) (defun ring-empty-p (ring) ! "Returns t if RING is empty; nil otherwise." ! (= 0 (car (cdr ring)))) (defun ring-size (ring) ! "Returns the size of RING, the maximum number of elements it can contain." (length (cdr (cdr ring)))) (defun ring-copy (ring) ! "Returns a copy of RING." (let* ((vec (cdr (cdr ring))) (hd (car ring)) (ln (car (cdr ring)))) --- 93,107 ---- (mod (1- (+ head (- ringlen index))) veclen)) (defun ring-empty-p (ring) ! "Return t if RING is empty; nil otherwise." ! (zerop (car (cdr ring)))) (defun ring-size (ring) ! "Return the size of RING, the maximum number of elements it can contain." (length (cdr (cdr ring)))) (defun ring-copy (ring) ! "Return a copy of RING." (let* ((vec (cdr (cdr ring))) (hd (car ring)) (ln (car (cdr ring)))) *************** *** 144,150 **** oldelt))) (defun ring-ref (ring index) ! "Returns RING's INDEX element. INDEX = 0 is the most recently inserted; higher indices correspond to older elements. INDEX need not be <= the ring length; the appropriate modulo operation --- 144,150 ---- oldelt))) (defun ring-ref (ring index) ! "Return RING's INDEX element. INDEX = 0 is the most recently inserted; higher indices correspond to older elements. INDEX need not be <= the ring length; the appropriate modulo operation *************** *** 155,161 **** (aref vec (ring-index index hd ln (length vec)))))) (defun ring-elements (ring) ! "Return a list of the lements of RING." (mapcar #'identity (cddr ring))) ;;; provide ourself: --- 155,161 ---- (aref vec (ring-index index hd ln (length vec)))))) (defun ring-elements (ring) ! "Return a list of the elements of RING." (mapcar #'identity (cddr ring))) ;;; provide ourself: From MAILER-DAEMON Fri Jul 11 17:56:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19b5sO-00020s-VI for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:56:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19b5sN-0001yl-RT for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:56:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19b5sM-0001yD-3z for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:56:22 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19b5qr-0000rs-CI for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:54:49 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19b5pq-0007Io-1w for emacs-diffs@gnu.org; Fri, 11 Jul 2003 17:53:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Fri, 11 Jul 2003 17:53:46 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2003 21:56:24 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5277 emacs/lisp/ChangeLog:1.5278 *** emacs/lisp/ChangeLog:1.5277 Fri Jul 11 09:14:17 2003 --- emacs/lisp/ChangeLog Fri Jul 11 17:53:43 2003 *************** *** 1,3 **** --- 1,13 ---- + 2003-07-11 John Paul Wallington + + * emacs-lisp/ring.el (ring-empty-p): Use `zerop'. + (ring-p, ring-plus1, ring-minus1, ring-length, ring-index) + (ring-empty-p, ring-size, ring-copy, ring-ref): Doc fixes. + + 2003-07-11 NAKAJIMA Mikio (tiny change) + + * emacs-lisp/ring.el (ring-elements): Doc fix. + 2003-07-11 Glenn Morris * calendar/timeclock.el (timeclock-relative) From MAILER-DAEMON Fri Jul 11 20:24:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19b8BN-0004QL-B1 for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:24:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19b89v-0003VM-3m for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:22:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19b89b-00037j-O9 for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:22:20 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19b892-0001x0-4c for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:21:44 -0400 Received: from viniciusjl by subversions.gnu.org with local (Exim 4.20) id 19b87z-0001S4-PZ for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:20:39 -0400 To: emacs-diffs@gnu.org Message-Id: From: Vinicius Jose Latorre Date: Fri, 11 Jul 2003 20:20:39 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: viniciusjl@ig.com.br List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 00:24:07 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5278 emacs/lisp/ChangeLog:1.5279 *** emacs/lisp/ChangeLog:1.5278 Fri Jul 11 17:53:43 2003 --- emacs/lisp/ChangeLog Fri Jul 11 20:20:38 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-11 Vinicius Jose Latorre + + * ps-bdf.el: Fix copyright line. + (bdf-directory-list): Fix initialization code. + 2003-07-11 John Paul Wallington * emacs-lisp/ring.el (ring-empty-p): Use `zerop'. From MAILER-DAEMON Fri Jul 11 20:26:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19b8C6-000511-8m for mharc-emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:24:54 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19b8Ab-00044H-ID for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:23:21 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19b89A-0002HP-5n for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:22:17 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19b893-0001y0-ER for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:21:45 -0400 Received: from viniciusjl by subversions.gnu.org with local (Exim 4.20) id 19b87z-0001S9-Tg for emacs-diffs@gnu.org; Fri, 11 Jul 2003 20:20:39 -0400 To: emacs-diffs@gnu.org Message-Id: From: Vinicius Jose Latorre Date: Fri, 11 Jul 2003 20:20:39 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ps-bdf.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: viniciusjl@ig.com.br List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 00:24:52 -0000 Index: emacs/lisp/ps-bdf.el diff -c emacs/lisp/ps-bdf.el:1.16 emacs/lisp/ps-bdf.el:1.17 *** emacs/lisp/ps-bdf.el:1.16 Tue Feb 4 06:58:07 2003 --- emacs/lisp/ps-bdf.el Fri Jul 11 20:20:38 2003 *************** *** 1,11 **** ;;; ps-bdf.el --- BDF font file handler for ps-print ! ;; Copyright (C) 1998,99,2001 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. ;; Keywords: wp, BDF, font, PostScript ;; Maintainer: Kenichi Handa ! ;; Time-stamp: <2001-07-15 12:25:51 pavel> ;; This file is part of GNU Emacs. --- 1,11 ---- ;;; ps-bdf.el --- BDF font file handler for ps-print ! ;; Copyright (C) 1998, 1999, 2001, 2003 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. ;; Keywords: wp, BDF, font, PostScript ;; Maintainer: Kenichi Handa ! ;; Time-stamp: <2003/07/11 21:13:44 vinicius> ;; This file is part of GNU Emacs. *************** *** 40,47 **** ;;;###autoload (defvar bdf-directory-list ! (if (and (memq system-type '(ms-dos windows-nt)) ! (boundp 'installation-directory)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "*List of directories to search for `BDF' font files. --- 40,46 ---- ;;;###autoload (defvar bdf-directory-list ! (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "*List of directories to search for `BDF' font files. *************** *** 49,56 **** ;; MS-DOS and MS-Windows users like to move the binary around after ;; it's built, but the value above is computed at load-up time. ! (and (and (memq system-type '(ms-dos windows-nt)) ! (boundp 'installation-directory)) (setq bdf-directory-list (list (expand-file-name "fonts/bdf" installation-directory)))) --- 48,54 ---- ;; MS-DOS and MS-Windows users like to move the binary around after ;; it's built, but the value above is computed at load-up time. ! (and (memq system-type '(ms-dos windows-nt)) (setq bdf-directory-list (list (expand-file-name "fonts/bdf" installation-directory)))) From MAILER-DAEMON Sat Jul 12 17:45:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSB1-00040K-Hy for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:45:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSAI-0002s7-V0 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:44:22 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bS8f-0001kX-7t for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:43:12 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bS7j-00018B-8N for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:41:43 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bS6h-0007JE-Me for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:40:39 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:40:39 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xfns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:45:05 -0000 Index: emacs/src/xfns.c diff -c emacs/src/xfns.c:1.583 emacs/src/xfns.c:1.584 *** emacs/src/xfns.c:1.583 Mon May 26 15:19:06 2003 --- emacs/src/xfns.c Sat Jul 12 17:40:39 2003 *************** *** 7421,7427 **** #if HAVE_PNG ! #include /* Function prototypes. */ --- 7421,7427 ---- #if HAVE_PNG ! #include /* Function prototypes. */ From MAILER-DAEMON Sat Jul 12 17:48:50 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSEc-0006EH-Cy for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:48:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSEa-0006DF-L8 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:48:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSE4-0005rN-Ix for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:48:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSDa-0005ZX-2J for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:47:46 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSCZ-0007SH-Ad for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:46:43 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:46:43 -0400 Subject: [Emacs-diffs] Changes to emacs/src/config.in X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:48:49 -0000 Index: emacs/src/config.in diff -c emacs/src/config.in:1.188 emacs/src/config.in:1.189 *** emacs/src/config.in:1.188 Thu Jun 26 17:08:13 2003 --- emacs/src/config.in Sat Jul 12 17:46:43 2003 *************** *** 803,808 **** --- 803,810 ---- code using `volatile' can become incorrect without. Disable with care. */ #undef volatile + /* Define if we should use crti.o and crtn.o. */ + #undef HAVE_CRTIN /* If we're using any sort of window system, define some consequences. */ #ifdef HAVE_X_WINDOWS *************** *** 857,863 **** /* 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__ #define INLINE __inline__ #else #define INLINE --- 859,865 ---- /* 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'. */ ! #if defined (__GNUC__) && defined (OPTIMIZE) #define INLINE __inline__ #else #define INLINE From MAILER-DAEMON Sat Jul 12 17:50:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSFv-0000Ae-Qe for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:50:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSEu-0006WZ-4e for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:49:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSBY-0005BU-2D for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:46:10 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSBA-00045v-Bu for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:45:16 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSA9-0007NB-Fi for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:44:13 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:44:13 -0400 Subject: [Emacs-diffs] Changes to emacs/src/s/openbsd.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:50:10 -0000 Index: emacs/src/s/openbsd.h diff -c emacs/src/s/openbsd.h:1.2 emacs/src/s/openbsd.h:1.3 *** emacs/src/s/openbsd.h:1.2 Wed Mar 22 07:08:40 2000 --- emacs/src/s/openbsd.h Sat Jul 12 17:44:13 2003 *************** *** 1,11 **** /* s/ file for openbsd systems. */ ! /* Get most of the stuff from bsd4.3 */ ! #include "bsd4-3.h" ! ! /* Get the rest of the stuff from that less-POSIX-conformant system */ #include "netbsd.h" /* David Mazieres says this is necessary. Otherwise Emacs dumps core when run -nw. */ #undef LIBS_TERMCAP --- 1,24 ---- /* s/ file for openbsd systems. */ ! /* Mostly the same as NetBSD. */ #include "netbsd.h" /* David Mazieres says this is necessary. Otherwise Emacs dumps core when run -nw. */ #undef LIBS_TERMCAP + + #define TERMINFO + #define LIBS_TERMCAP -lncurses + + #undef LD_SWITCH_SYSTEM + #ifdef __ELF__ + + /* Han Boetes says this + is necessary, otherwise Emacs dumps core on elf systems. */ + #define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp -Z + + #else + + #define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp + + #endif From MAILER-DAEMON Sat Jul 12 17:52:28 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSGq-0000sn-Iu for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:51:08 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSFZ-0007p8-MD for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:49:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSEw-0006b0-Gq for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:49:18 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSEr-0006SV-IJ for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:49:05 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSDq-0007Tr-9q for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:48:02 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:48:02 -0400 Subject: [Emacs-diffs] Changes to emacs/src/Makefile.in X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:51:06 -0000 Index: emacs/src/Makefile.in diff -c emacs/src/Makefile.in:1.277 emacs/src/Makefile.in:1.278 *** emacs/src/Makefile.in:1.277 Tue Jun 17 06:52:01 2003 --- emacs/src/Makefile.in Sat Jul 12 17:48:02 2003 *************** *** 74,79 **** --- 74,84 ---- #define NOT_C_CODE #include "config.h" + #ifndef OPTIMIZE + CFLAGS=-g + #endif + + /* We won't really call alloca; don't let the file name alloca.c get messed up. */ #ifdef alloca From MAILER-DAEMON Sat Jul 12 17:55:59 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSL3-0003tJ-H1 for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:55:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSKf-0003HK-96 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:55:05 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSK8-0002he-AH for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:55:03 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSK8-0002hL-2g for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:54:32 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSJ6-0007aQ-UP for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:53:28 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:53:28 -0400 Subject: [Emacs-diffs] Changes to emacs/src/unexelf.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:55:18 -0000 Index: emacs/src/unexelf.c diff -c emacs/src/unexelf.c:1.53 emacs/src/unexelf.c:1.54 *** emacs/src/unexelf.c:1.53 Sun May 25 13:45:27 2003 --- emacs/src/unexelf.c Sat Jul 12 17:53:28 2003 *************** *** 950,957 **** } else { ! /* Any section that was original placed AFTER the bss ! section should now be off by NEW_DATA2_SIZE. */ #ifdef SOLARIS_POWERPC /* On PPC Reference Platform running Solaris 2.5.1 the plt section is also of type NOBI like the bss section. --- 950,962 ---- } else { ! /* Any section that was originally placed after the .bss ! section should now be off by NEW_DATA2_SIZE. If a ! section overlaps the .bss section, consider it to be ! placed after the .bss section. Overlap can occur if the ! section just before .bss has less-strict alignment; this ! was observed between .symtab and .bss on Solaris 2.5.1 ! (sparc) with GCC snapshot 960602. */ #ifdef SOLARIS_POWERPC /* On PPC Reference Platform running Solaris 2.5.1 the plt section is also of type NOBI like the bss section. *************** *** 965,973 **** >= OLD_SECTION_H (old_bss_index-1).sh_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #else ! if (round_up (NEW_SECTION_H (nn).sh_offset, ! OLD_SECTION_H (old_bss_index).sh_addralign) ! >= new_data2_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #endif /* Any section that was originally placed after the section --- 970,977 ---- >= OLD_SECTION_H (old_bss_index-1).sh_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #else ! if (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size ! > new_data2_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #endif /* Any section that was originally placed after the section From MAILER-DAEMON Sat Jul 12 17:56:54 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSLy-0004kG-WD for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:56:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSLi-0004ZM-6s for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:56:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSKa-0003FB-6k for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:55:32 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSKZ-0003F1-Tf for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:54:59 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSJY-0007ar-TW for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:53:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:53:56 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:56:26 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3312 emacs/src/ChangeLog:1.3313 *** emacs/src/ChangeLog:1.3312 Sat Jul 12 17:48:07 2003 --- emacs/src/ChangeLog Sat Jul 12 17:53:56 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-12 Paul Eggert + + * unexelf.c (unexec): Consider a section to precede the .bss + section if its addresses overlap that of .bss. + 2003-07-12 Richard M. Stallman * Makefile.in (CFLAGS) [!OPTIMIZE]: Set CFLAGS to -g. From MAILER-DAEMON Sat Jul 12 17:57:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSLB-00049g-Qk for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:55:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSFx-0000Dp-8f for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:50:13 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSF6-0006rg-N9 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:49:51 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSCF-0005Ip-As for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:46:23 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSBE-0007QS-KO for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:45:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:45:20 -0400 Subject: [Emacs-diffs] Changes to emacs/src/s/netbsd.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:55:36 -0000 Index: emacs/src/s/netbsd.h diff -c emacs/src/s/netbsd.h:1.37 emacs/src/s/netbsd.h:1.38 *** emacs/src/s/netbsd.h:1.37 Tue Feb 4 09:03:18 2003 --- emacs/src/s/netbsd.h Sat Jul 12 17:45:20 2003 *************** *** 60,72 **** #endif /* not NO_SHARED_LIBS and not ELF */ #if !defined (NO_SHARED_LIBS) && defined (__ELF__) ! #define START_FILES pre-crt0.o /usr/lib/crt0.o /usr/lib/crtbegin.o #define UNEXEC unexelf.o ! #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o #undef LIB_GCC #define LIB_GCC #endif #define HAVE_WAIT_HEADER #define WAIT_USE_INT --- 60,77 ---- #endif /* not NO_SHARED_LIBS and not ELF */ #if !defined (NO_SHARED_LIBS) && defined (__ELF__) ! #define START_FILES pre-crt0.o /usr/lib/crt0.o START_FILES_1 /usr/lib/crtbegin.o #define UNEXEC unexelf.o ! #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtend.o END_FILES_1 #undef LIB_GCC #define LIB_GCC #endif + #ifdef HAVE_CRTIN + #define START_FILES_1 /usr/lib/crti.o + #define END_FILES_1 /usr/lib/crtn.o + #endif + #define HAVE_WAIT_HEADER #define WAIT_USE_INT *************** *** 85,90 **** --- 90,102 ---- /usr/local/include or libs in /usr/local/lib by default. */ #define C_SWITCH_SYSTEM -I/usr/X11R6/include -I/usr/pkg/include -I/usr/local/include -L/usr/pkg/lib -L/usr/local/lib + + /* Link temacs with -z nocombreloc so that unexec works right, whether or + not -z combreloc is the default. GNU ld ignores unknown -z KEYWORD + switches, so this also works with older versions that don't implement + -z combreloc. */ + + #define LD_SWITCH_SYSTEM_TEMACS -z nocombreloc #endif /* __ELF__ */ From MAILER-DAEMON Sat Jul 12 17:58:38 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSNf-0007Pb-RH for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:58:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSNV-00070a-Mk for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:58:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSMy-00061R-Tv for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:57:59 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSM0-0004kJ-4I for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:56:28 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSKy-0007dl-PY for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:55:24 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:55:24 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/advice.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:58:10 -0000 Index: emacs/lispref/advice.texi diff -c emacs/lispref/advice.texi:1.16 emacs/lispref/advice.texi:1.17 *** emacs/lispref/advice.texi:1.16 Sat Jul 5 21:31:34 2003 --- emacs/lispref/advice.texi Sat Jul 12 17:55:24 2003 *************** *** 332,344 **** By default, advice does not take effect when you define it---only when you @dfn{activate} advice for the function that was advised. However ! the advice will be automatically activated when the function is ! defined or redefined later. You can request the activation of advice ! for a function when you define the advice, by specifying the ! @code{activate} flag in the @code{defadvice}. But normally you ! activate the advice for a function by calling the function ! @code{ad-activate} or one of the other activation commands listed ! below. Separating the activation of advice from the act of defining it permits you to add several pieces of advice to one function efficiently, without --- 332,343 ---- By default, advice does not take effect when you define it---only when you @dfn{activate} advice for the function that was advised. However ! the advice will be automatically activated if the function is defined ! or redefined later. You can request the activation of advice for a ! function when you define the advice, by specifying the @code{activate} ! flag in the @code{defadvice}. But normally you activate the advice ! for a function by calling the function @code{ad-activate} or one of ! the other activation commands listed below. Separating the activation of advice from the act of defining it permits you to add several pieces of advice to one function efficiently, without *************** *** 418,424 **** @deffn Command ad-start-advice Turn on automatic advice activation when a function is defined or ! redefined. This mode is turned on by default. @end deffn @deffn Command ad-stop-advice --- 417,423 ---- @deffn Command ad-start-advice Turn on automatic advice activation when a function is defined or ! redefined. This is the default mode. @end deffn @deffn Command ad-stop-advice From MAILER-DAEMON Sat Jul 12 18:00:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSPP-00031B-KR for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:59:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSOY-0001pq-Fh for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:59:06 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSNt-0008DB-QX for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:58:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSEx-0006cs-AC for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:49:11 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSDw-0007U9-DR for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:48:08 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:48:08 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 21:59:57 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3311 emacs/src/ChangeLog:1.3312 *** emacs/src/ChangeLog:1.3311 Fri Jul 11 15:44:44 2003 --- emacs/src/ChangeLog Sat Jul 12 17:48:07 2003 *************** *** 1,3 **** --- 1,22 ---- + 2003-07-12 Richard M. Stallman + + * Makefile.in (CFLAGS) [!OPTIMIZE]: Set CFLAGS to -g. + + * config.in (HAVE_CRTIN): Add #undef. + (INLINE): Really inline only if OPTIMIZE is defined. + + * s/netbsd.h (START_FILES, LIB_STANDARD): Use START_FILES_1, + END_FILES_1. + (START_FILES_1, END_FILES_1): New macros (conditional). + (LD_SWITCH_SYSTEM_TEMACS): Defined. + + * s/openbsd.h: Don't include bsd4-3.h. + (TERMINFO): Defined. + (LIBS_TERMCAP): Defined. + (LD_SWITCH_SYSTEM): Defined (two definitions). + + * xfns.c: Include libpng/png.h instead of png.h. + 2003-07-11 Andreas Schwab * buffer.c (modify_overlay): Update prototype. From MAILER-DAEMON Sat Jul 12 18:00:31 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSPj-0003XT-AU for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:00:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSP6-0002Wx-OD for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:59:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSOR-0001Se-7D for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:59:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSOL-000143-Hr for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:58:53 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSNK-0007fi-7e for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:57:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:57:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/apropos.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 22:00:17 -0000 Index: emacs/lisp/apropos.el diff -c emacs/lisp/apropos.el:1.92 emacs/lisp/apropos.el:1.93 *** emacs/lisp/apropos.el:1.92 Tue Feb 4 06:00:25 2003 --- emacs/lisp/apropos.el Sat Jul 12 17:57:50 2003 *************** *** 102,107 **** --- 102,111 ---- :group 'apropos :type 'face) + (defcustom apropos-show-scores nil + "*Non-nil means show score for each match, and sort matches by scores." + :group 'apropos + :type 'boolean) (defvar apropos-mode-map (let ((map (make-sparse-keymap))) *************** *** 119,127 **** (defvar apropos-mode-hook nil "*Hook run when mode is turned on.") - (defvar apropos-show-scores nil - "*Show apropos scores if non-nil.") - (defvar apropos-regexp nil "Regexp used in current apropos run.") --- 123,128 ---- *************** *** 468,474 **** (while p (setcar p (list (setq symbol (car p)) ! 0 (when (fboundp symbol) (if (setq doc (condition-case nil (documentation symbol t) --- 469,475 ---- (while p (setcar p (list (setq symbol (car p)) ! (apropos-score-symbol symbol) (when (fboundp symbol) (if (setq doc (condition-case nil (documentation symbol t) *************** *** 766,775 **** (if (null apropos-accumulator) (message "No apropos matches for `%s'" apropos-orig-regexp) (setq apropos-accumulator ! (sort apropos-accumulator (lambda (a b) ! (or (> (cadr a) (cadr b)) ! (and (= (cadr a) (cadr b)) ! (string-lessp (car a) (car b))))))) (with-output-to-temp-buffer "*Apropos*" (let ((p apropos-accumulator) (old-buffer (current-buffer)) --- 767,781 ---- (if (null apropos-accumulator) (message "No apropos matches for `%s'" apropos-orig-regexp) (setq apropos-accumulator ! (sort apropos-accumulator ! (lambda (a b) ! ;; Don't sort by score if user can't see the score. ! ;; It would be confusing. -- rms. ! (if apropos-show-scores ! (or (> (cadr a) (cadr b)) ! (and (= (cadr a) (cadr b)) ! (string-lessp (car a) (car b)))) ! (string-lessp (car a) (car b)))))) (with-output-to-temp-buffer "*Apropos*" (let ((p apropos-accumulator) (old-buffer (current-buffer)) From MAILER-DAEMON Sat Jul 12 18:01:56 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSR2-00058I-90 for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:01:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSQ1-0004HH-Mu for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:00:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSPO-000315-GK for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:00:29 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSP7-0002Xc-42 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:59:41 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSO6-0007gX-1b for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:58:38 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:58:38 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 22:01:38 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.834 emacs/etc/NEWS:1.835 *** emacs/etc/NEWS:1.834 Wed Jul 9 12:11:40 2003 --- emacs/etc/NEWS Sat Jul 12 17:58:37 2003 *************** *** 92,97 **** --- 92,100 ---- ** M-x view-file and commands that use it now avoid interfering with special modes such as Tar mode. + ** The apropos commands don't sort by scores unless they show scores. + The option apropos-show-scores controls both uses of scores. + +++ ** 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 From MAILER-DAEMON Sat Jul 12 18:02:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSRp-0006lQ-Qd for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSRk-0006Vg-TJ for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:24 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSRB-0005NC-5d for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:20 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSQa-0004gb-Bi for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:01:12 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSPZ-0007kN-Ky for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:00:09 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 18:00:09 -0400 Subject: [Emacs-diffs] Changes to emacs/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 22:02:27 -0000 Index: emacs/ChangeLog diff -c emacs/ChangeLog:1.333 emacs/ChangeLog:1.334 *** emacs/ChangeLog:1.333 Tue Jul 8 18:02:51 2003 --- emacs/ChangeLog Sat Jul 12 18:00:09 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-12 Richard M. Stallman + + * configure.in [netbsd systems]: Define HAVE_CRTIN properly. + 2003-07-09 Kim F. Storm * INSTALL (DETAILED BUILDING AND INSTALLATION): Describe new From MAILER-DAEMON Sat Jul 12 18:03:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSSE-0007lS-EU for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:54 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSRu-000719-PK for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:34 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSRC-0005QX-Jh for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSQL-0004NN-6G for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:00:57 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSPK-0007hv-Gg for emacs-diffs@gnu.org; Sat, 12 Jul 2003 17:59:54 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 17:59:54 -0400 Subject: [Emacs-diffs] Changes to emacs/configure.in X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 22:02:52 -0000 Index: emacs/configure.in diff -c emacs/configure.in:1.341 emacs/configure.in:1.342 *** emacs/configure.in:1.341 Sun Jun 29 08:01:08 2003 --- emacs/configure.in Sat Jul 12 17:59:54 2003 *************** *** 222,227 **** --- 222,231 ---- ## NetBSD ports *-*-netbsd* ) opsys=netbsd + if test -f /usr/lib/crti.o; then + AC_DEFINE(HAVE_CRTIN) + fi + case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; i[3456]86-*-netbsd*) machine=intel386 ;; From MAILER-DAEMON Sat Jul 12 18:04:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bSTF-0008Tv-In for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:03:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bSSB-0007bM-Kf for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:51 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bSR1-00057y-3b for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:02:10 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bSQl-0004om-T1 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:01:23 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bSPl-0007ky-7A for emacs-diffs@gnu.org; Sat, 12 Jul 2003 18:00:21 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 18:00:21 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jul 2003 22:03:56 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5279 emacs/lisp/ChangeLog:1.5280 *** emacs/lisp/ChangeLog:1.5279 Fri Jul 11 20:20:38 2003 --- emacs/lisp/ChangeLog Sat Jul 12 18:00:20 2003 *************** *** 1,3 **** --- 1,10 ---- + 2003-07-12 Richard M. Stallman + + * apropos.el (apropos-show-scores): Make it customizable. + Document new meaning. + (apropos): Compute scores from symbols. + (apropos-print): Don't sort by scores if apropos-show-scores is nil. + 2003-07-11 Vinicius Jose Latorre * ps-bdf.el: Fix copyright line. From MAILER-DAEMON Sat Jul 12 20:23:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bUdZ-0000CI-J6 for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:22:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bUcx-0007DP-Oc for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:22:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bUcB-0006Ez-9c for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:21:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bUbr-0005xv-1r for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:20:59 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bUaq-00015q-68 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:19:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 20:19:56 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-defs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 00:22:43 -0000 Index: emacs/lisp/progmodes/cc-defs.el diff -c emacs/lisp/progmodes/cc-defs.el:1.21 emacs/lisp/progmodes/cc-defs.el:1.22 *** emacs/lisp/progmodes/cc-defs.el:1.21 Tue Jul 8 19:21:04 2003 --- emacs/lisp/progmodes/cc-defs.el Sat Jul 12 20:19:56 2003 *************** *** 972,978 **** variable `c-nonsymbol-key' is used to make the adornment. The optional MODE specifies the language to get it in. The default is the current language (taken from `c-buffer-is-cc-mode')." ! (setq list (delete-duplicates list :test 'string-equal)) (if list (let ((re (c-regexp-opt list))) ;; Add our own grouping parenthesis around re instead of --- 972,982 ---- variable `c-nonsymbol-key' is used to make the adornment. The optional MODE specifies the language to get it in. The default is the current language (taken from `c-buffer-is-cc-mode')." ! (let (unique) ! (dolist (elt list) ! (unless (member elt unique) ! (push elt unique))) ! (setq list unique)) (if list (let ((re (c-regexp-opt list))) ;; Add our own grouping parenthesis around re instead of *************** *** 1326,1336 **** ;; are no file dependencies needed. (setq source-files (nreverse ;; Reverse to get the right load order. ! (mapcan (lambda (elem) ! (if (eq file (car elem)) ! nil ; Exclude our own file. ! (list (car elem)))) ! (get sym 'source))))) ;; Spend some effort to make a compact call to ;; `c-get-lang-constant' since it will be compiled in. --- 1330,1341 ---- ;; are no file dependencies needed. (setq source-files (nreverse ;; Reverse to get the right load order. ! (apply 'nconc ! (mapcar (lambda (elem) ! (if (eq file (car elem)) ! nil ; Exclude our own file. ! (list (car elem)))) ! (get sym 'source)))))) ;; Spend some effort to make a compact call to ;; `c-get-lang-constant' since it will be compiled in. From MAILER-DAEMON Sat Jul 12 20:25:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bUem-0001ht-GA for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:24:00 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bUec-0001Oy-ES for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:23:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bUcq-00074E-Uf for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:22:31 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bUcZ-0006lN-5c for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:21:43 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bUbY-0001Mz-Dm for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:20:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 20:20:40 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 00:23:59 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5280 emacs/lisp/ChangeLog:1.5281 *** emacs/lisp/ChangeLog:1.5280 Sat Jul 12 18:00:20 2003 --- emacs/lisp/ChangeLog Sat Jul 12 20:20:39 2003 *************** *** 1,5 **** --- 1,11 ---- 2003-07-12 Richard M. Stallman + * progmodes/cc-engine.el (c-declare-lang-variables): Don't use mapcan. + + * progmodes/cc-defs.el (c-make-keywords-re): + Don't use delete-duplicates. + (c-lang-const): Don't use mapcan. + * apropos.el (apropos-show-scores): Make it customizable. Document new meaning. (apropos): Compute scores from symbols. From MAILER-DAEMON Sat Jul 12 20:25:33 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bUfM-0003g0-9i for mharc-emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:24:36 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bUeS-00010E-U8 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:23:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bUcv-0007CO-C7 for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:22:36 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bUcM-0006Qy-Fv for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:21:30 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bUbL-0001Ir-QC for emacs-diffs@gnu.org; Sat, 12 Jul 2003 20:20:27 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sat, 12 Jul 2003 20:20:27 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-engine.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 00:24:34 -0000 Index: emacs/lisp/progmodes/cc-engine.el diff -c emacs/lisp/progmodes/cc-engine.el:1.30 emacs/lisp/progmodes/cc-engine.el:1.31 *** emacs/lisp/progmodes/cc-engine.el:1.30 Tue Jul 8 19:21:04 2003 --- emacs/lisp/progmodes/cc-engine.el Sat Jul 12 20:20:27 2003 *************** *** 155,166 **** (defmacro c-declare-lang-variables () `(progn ! ,@(mapcan (lambda (init) ! `(,(if (elt init 2) ! `(defvar ,(car init) nil ,(elt init 2)) ! `(defvar ,(car init) nil)) ! (make-variable-buffer-local ',(car init)))) ! (cdr c-lang-variable-inits)))) (c-declare-lang-variables) --- 155,167 ---- (defmacro c-declare-lang-variables () `(progn ! ,@(apply 'nconc ! (mapcar (lambda (init) ! `(,(if (elt init 2) ! `(defvar ,(car init) nil ,(elt init 2)) ! `(defvar ,(car init) nil)) ! (make-variable-buffer-local ',(car init)))) ! (cdr c-lang-variable-inits))))) (c-declare-lang-variables) From MAILER-DAEMON Sun Jul 13 03:32:15 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bbJ4-0006RU-Lo for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:30:02 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bbIo-0005no-Iz for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:29:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bbIT-0005QJ-AA for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:29:25 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bbGh-0004FO-Bi for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:27:35 -0400 Received: from eggert by subversions.gnu.org with local (Exim 4.20) id 19bbFf-0005Tu-1Q for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:26:31 -0400 To: emacs-diffs@gnu.org Message-Id: From: Paul Eggert Date: Sun, 13 Jul 2003 03:26:31 -0400 Subject: [Emacs-diffs] Changes to emacs/src/unexelf.c [EMACS_21_1_RC] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: eggert@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 07:30:01 -0000 Index: emacs/src/unexelf.c diff -c emacs/src/unexelf.c:1.38.16.7 emacs/src/unexelf.c:1.38.16.8 *** emacs/src/unexelf.c:1.38.16.7 Tue Oct 15 10:17:16 2002 --- emacs/src/unexelf.c Sun Jul 13 03:26:30 2003 *************** *** 1,5 **** ! /* Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1999, 2000, 01, 02 ! Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,5 ---- ! /* Copyright (C) 1985, 1986, 1987, 1988, 1990, 1992, 1999, 2000, 2001, 2002, ! 2003 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** *** 971,978 **** } else { ! /* Any section that was original placed AFTER the bss ! section should now be off by NEW_DATA2_SIZE. */ #ifdef SOLARIS_POWERPC /* On PPC Reference Platform running Solaris 2.5.1 the plt section is also of type NOBI like the bss section. --- 971,983 ---- } else { ! /* Any section that was originally placed after the .bss ! section should now be off by NEW_DATA2_SIZE. If a ! section overlaps the .bss section, consider it to be ! placed after the .bss section. Overlap can occur if the ! section just before .bss has less-strict alignment; this ! was observed between .symtab and .bss on Solaris 2.5.1 ! (sparc) with GCC snapshot 960602. */ #ifdef SOLARIS_POWERPC /* On PPC Reference Platform running Solaris 2.5.1 the plt section is also of type NOBI like the bss section. *************** *** 986,994 **** >= OLD_SECTION_H (old_bss_index-1).sh_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #else ! if (round_up (NEW_SECTION_H (nn).sh_offset, ! OLD_SECTION_H (old_bss_index).sh_addralign) ! >= new_data2_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #endif /* Any section that was originally placed after the section --- 991,998 ---- >= OLD_SECTION_H (old_bss_index-1).sh_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #else ! if (NEW_SECTION_H (nn).sh_offset + NEW_SECTION_H (nn).sh_size ! > new_data2_offset) NEW_SECTION_H (nn).sh_offset += new_data2_size; #endif /* Any section that was originally placed after the section From MAILER-DAEMON Sun Jul 13 03:33:36 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bbL8-0000Dq-0E for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:32:10 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bbKx-0008Pg-Hu for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:31:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bbKB-00077x-8X for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:31:11 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bbHE-0005F8-Ma for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:28:08 -0400 Received: from eggert by subversions.gnu.org with local (Exim 4.20) id 19bbGC-0005VP-Ge for emacs-diffs@gnu.org; Sun, 13 Jul 2003 03:27:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: Paul Eggert Date: Sun, 13 Jul 2003 03:27:04 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog [EMACS_21_1_RC] X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: eggert@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 07:32:08 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.1914.2.239 emacs/src/ChangeLog:1.1914.2.240 *** emacs/src/ChangeLog:1.1914.2.239 Sun Jul 6 21:52:25 2003 --- emacs/src/ChangeLog Sun Jul 13 03:27:01 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-12 Paul Eggert + + * unexelf.c (unexec): Consider a section to precede the .bss + section if its addresses overlap that of .bss. + 2003-07-07 Nozomu Ando (tiny change) * buffer.c (Fkill_buffer): Clear charpos cache if necessary. *************** *** 13833,13838 **** ;; coding: iso-2022-7bit ;; End: ! Copyright (C) 2001 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. --- 13838,13843 ---- ;; coding: iso-2022-7bit ;; End: ! Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. From MAILER-DAEMON Sun Jul 13 13:18:59 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkUa-00008V-AE for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:18:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkTj-0007oP-7Q for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:17:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkTV-0007jO-V9 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:17:26 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkSw-0007Rb-CC for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:16:50 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkRv-0004lP-QU for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:15:47 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:15:47 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/texinfo.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:18:26 -0000 Index: emacs/lisp/textmodes/texinfo.el diff -c emacs/lisp/textmodes/texinfo.el:1.95 emacs/lisp/textmodes/texinfo.el:1.96 *** emacs/lisp/textmodes/texinfo.el:1.95 Sat Jun 7 21:17:04 2003 --- emacs/lisp/textmodes/texinfo.el Sun Jul 13 13:15:47 2003 *************** *** 28,34 **** ;;; Todo: ;; - facemenu support. ! ;; - command completion. ;;; Commentary: --- 28,34 ---- ;;; Todo: ;; - facemenu support. ! ;; - command completion. ;;; Commentary: *************** *** 276,281 **** --- 276,282 ---- ("unnumberedsubsubsec" 5) ("appendix" 2) ("appendixsec" 3) + ("appendixsection" 3) ("appendixsubsec" 4) ("appendixsubsubsec" 5) ("majorheading" 2) From MAILER-DAEMON Sun Jul 13 13:19:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkUF-0008EF-F6 for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:18:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkSm-00078F-Tz for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:16:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkSX-0006mK-UW for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:16:26 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkSO-0006Gl-GQ for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:16:16 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkRN-0004kV-2x for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:15:13 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:15:13 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/po.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:18:10 -0000 Index: emacs/lisp/textmodes/po.el diff -c emacs/lisp/textmodes/po.el:1.7 emacs/lisp/textmodes/po.el:1.8 *** emacs/lisp/textmodes/po.el:1.7 Wed Oct 30 14:47:53 2002 --- emacs/lisp/textmodes/po.el Sun Jul 13 13:15:12 2003 *************** *** 42,48 **** (defun po-find-charset (filename) "Return PO charset value for FILENAME." (let ((charset-regexp ! "^\"Content-Type: text/plain;[ \t]*charset=\\(.*\\)\\\\n\"") (short-read nil)) ;; Try the first 4096 bytes. In case we cannot find the charset value ;; within the first 4096 bytes (the PO file might start with a long --- 42,48 ---- (defun po-find-charset (filename) "Return PO charset value for FILENAME." (let ((charset-regexp ! "^\"Content-Type:[ \t]*text/plain;[ \t]*charset=\\(.*\\)\\\\n\"") (short-read nil)) ;; Try the first 4096 bytes. In case we cannot find the charset value ;; within the first 4096 bytes (the PO file might start with a long From MAILER-DAEMON Sun Jul 13 13:20:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkVj-0001pS-Js for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:19:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkVe-0001bt-R8 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:19:38 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkVL-0001Ar-I3 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:19:20 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkTe-0007mD-DI for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:17:34 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkSd-0004mP-Rx for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:16:31 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:16:31 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/man.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:19:41 -0000 Index: emacs/lisp/man.el diff -c emacs/lisp/man.el:1.124 emacs/lisp/man.el:1.125 *** emacs/lisp/man.el:1.124 Mon Jul 7 17:01:55 2003 --- emacs/lisp/man.el Sun Jul 13 13:16:31 2003 *************** *** 504,520 **** (error "Malformed Man-filter-list")) phrase) pargs " "))) ! (setq flist (cdr flist)))) command)) (defun Man-translate-references (ref) "Translates REF from \"chmod(2V)\" to \"2v chmod\" style. Leave it as is if already in that style. Possibly downcase and translate the section (see the Man-downcase-section-letters-flag and the Man-section-translations-alist variables)." (let ((name "") ! (section "") ! (slist Man-section-translations-alist)) (cond ;; "chmod(2V)" case ? ((string-match (concat "^" Man-reference-regexp "$") ref) --- 504,533 ---- (error "Malformed Man-filter-list")) phrase) pargs " "))) ! (setq flist (cdr flist)))) command)) + + (defun Man-translate-cleanup (string) + "Strip leading, trailing and middle spaces." + (when (stringp string) + ;; Strip leading and trailing + (if (string-match "^[ \t\f\r\n]*\\(.+[^ \t\f\r\n]\\)" string) + (setq string (match-string 1 string))) + ;; middle spaces + (setq string (replace-regexp-in-string "[\t\r\n]" " " string)) + (setq string (replace-regexp-in-string " +" " " string)) + string)) + (defun Man-translate-references (ref) "Translates REF from \"chmod(2V)\" to \"2v chmod\" style. Leave it as is if already in that style. Possibly downcase and translate the section (see the Man-downcase-section-letters-flag and the Man-section-translations-alist variables)." (let ((name "") ! (section "") ! (slist Man-section-translations-alist)) ! (setq ref (Man-translate-cleanup ref)) (cond ;; "chmod(2V)" case ? ((string-match (concat "^" Man-reference-regexp "$") ref) *************** *** 577,582 **** --- 590,596 ---- ;; For compatibility with older versions. ;;;###autoload (defalias 'manual-entry 'man) + ;;;###autoload (defun man (man-args) From MAILER-DAEMON Sun Jul 13 13:23:15 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkYw-0005ag-Os for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:23:02 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkYU-0005Ft-EI for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:22:34 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkXx-00042p-E8 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:22:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkXa-0003ZQ-9i for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:21:38 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkWZ-0006nM-NI for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:20:35 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:20:35 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/mail/smtpmail.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:23:01 -0000 Index: emacs/lisp/mail/smtpmail.el diff -c emacs/lisp/mail/smtpmail.el:1.56 emacs/lisp/mail/smtpmail.el:1.57 *** emacs/lisp/mail/smtpmail.el:1.56 Tue May 13 15:48:21 2003 --- emacs/lisp/mail/smtpmail.el Sun Jul 13 13:20:34 2003 *************** *** 354,359 **** --- 354,361 ---- (buffer-data (create-file-buffer file-data)) (buffer-elisp (create-file-buffer file-elisp)) (buffer-scratch "*queue-mail*")) + (unless (file-exists-p smtpmail-queue-dir) + (make-directory smtpmail-queue-dir t)) (with-current-buffer buffer-data (erase-buffer) (insert-buffer tembuf) From MAILER-DAEMON Sun Jul 13 13:24:05 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkZp-0006s2-SW for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:23:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkYc-0005OI-Sc for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:22:42 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkYA-0004US-Bk for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:22:14 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkX1-0003RJ-2w for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:21:03 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkW0-0006aH-Bc for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:20:00 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:20:00 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/desktop.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:23:56 -0000 Index: emacs/lisp/desktop.el diff -c emacs/lisp/desktop.el:1.59 emacs/lisp/desktop.el:1.60 *** emacs/lisp/desktop.el:1.59 Mon Jul 7 17:04:28 2003 --- emacs/lisp/desktop.el Sun Jul 13 13:20:00 2003 *************** *** 783,791 **** (when (eq major-mode 'dired-mode) (eval-when-compile (defvar dirname)) (cons ! ;; dired directory in portable form ! (file-name-as-directory (desktop-file-name dired-directory dirname)) ! (cdr (nreverse (mapcar (function car) dired-subdir-alist)))))) ;; ---------------------------------------------------------------------------- (defun desktop-buffer-info () "Load an info file." --- 783,800 ---- (when (eq major-mode 'dired-mode) (eval-when-compile (defvar dirname)) (cons ! ;; Value of `dired-directory'. ! (if (consp dired-directory) ! ;; Directory name followed by list of files. ! (cons (desktop-file-name (car dired-directory) dirname) (cdr dired-directory)) ! ;; Directory name, optionally with with shell wildcard. ! (desktop-file-name dired-directory dirname)) ! ;; Subdirectories in `dired-subdir-alist'. ! (cdr ! (nreverse ! (mapcar ! (function (lambda (f) (desktop-file-name (car f) dirname))) ! dired-subdir-alist)))))) ;; ---------------------------------------------------------------------------- (defun desktop-buffer-info () "Load an info file." *************** *** 823,836 **** ;; ---------------------------------------------------------------------------- (defun desktop-buffer-dired () "Load a directory using dired." (if (eq 'dired-mode desktop-buffer-major-mode) ! (if (file-directory-p (file-name-directory (car desktop-buffer-misc))) ! (progn ! (dired (car desktop-buffer-misc)) ! (mapcar 'dired-maybe-insert-subdir (cdr desktop-buffer-misc)) ! (current-buffer)) ! (message "Directory %s no longer exists." (car desktop-buffer-misc)) ! (sit-for 1) ! 'ignored))) ;; ---------------------------------------------------------------------------- (defun desktop-buffer-file () --- 832,850 ---- ;; ---------------------------------------------------------------------------- (defun desktop-buffer-dired () "Load a directory using dired." (if (eq 'dired-mode desktop-buffer-major-mode) ! ;; First element of `desktop-buffer-misc' is the value of `dired-directory'. ! ;; This value is a directory name, optionally with with shell wildcard or ! ;; a directory name followed by list of files. ! (let* ((dired-directory (car desktop-buffer-misc)) ! (dir (if (consp dired-directory) (car dired-directory) dired-directory))) ! (if (file-directory-p (file-name-directory dir)) ! (progn ! (dired dired-directory) ! (mapcar 'dired-maybe-insert-subdir (cdr desktop-buffer-misc)) ! (current-buffer)) ! (message "Directory %s no longer exists." dir) ! (sit-for 1) ! 'ignored)))) ;; ---------------------------------------------------------------------------- (defun desktop-buffer-file () From MAILER-DAEMON Sun Jul 13 13:24:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkZ1-0005ik-W7 for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:23:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkYM-0004rG-MY for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:22:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkY7-0004LX-IW for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:22:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkWL-0002dG-KS for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:20:21 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkVK-0006O8-SG for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:19:18 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:19:18 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/sql.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:23:06 -0000 Index: emacs/lisp/progmodes/sql.el diff -c emacs/lisp/progmodes/sql.el:1.34 emacs/lisp/progmodes/sql.el:1.35 *** emacs/lisp/progmodes/sql.el:1.34 Tue Jun 17 16:58:37 2003 --- emacs/lisp/progmodes/sql.el Sun Jul 13 13:19:18 2003 *************** *** 1,10 **** ;;; sql.el --- specialized comint.el for SQL interpreters ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Maintainer: Alex Schroeder ! ;; Version: 1.7.0 ;; Keywords: comm languages processes ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?SqlMode --- 1,10 ---- ;;; sql.el --- specialized comint.el for SQL interpreters ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Maintainer: Alex Schroeder ! ;; Version: 1.8.0 ;; Keywords: comm languages processes ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?SqlMode *************** *** 78,101 **** ;;; Bugs: ! ;; Using sql-ms (isql by Microsoft): When commands with syntax errors ! ;; or execution errors are executed, there is no server feedback. ! ;; This happens in stored procedures for example. The server messages ! ;; only appear after the process is exited. This makes things ! ;; somewhat unreliable. ;; ChangeLog available on request. ! ;;; To Do: ! ;; Add better hilight support for other brands; there is a bias towards ! ;; Oracle because that's what I use at work. Anybody else just send in ! ;; your lists of reserved words, keywords and builtin functions! As ! ;; long as I don't receive any feedback, everything is hilighted with ! ;; ANSI keywords only. I received the list of ANSI keywords from a ! ;; user; if you know of any changes, let me know. ! ;; Add different hilighting levels. ;;; Thanks to all the people who helped me out: --- 78,191 ---- ;;; Bugs: ! ;; sql-ms now uses osql instead of isql. Osql flushes its error ! ;; stream more frequently than isql so that error messages are ! ;; available. There is no prompt and some output still is buffered. ! ;; This improves the interaction under Emacs but it still is somewhat ! ;; awkward. ! ! ;; Quoted identifiers are not supported for hilighting. Most ! ;; databases support the use of double quoted strings in place of ! ;; identifiers; ms (Microsoft SQLServer) also supports identifiers ! ;; enclosed within brackets []. ;; ChangeLog available on request. ! ;;; Product Support: ! ;; Set the variable `sql-product' to the product you usually use. If ! ;; you occasionally use another product, for certain files, add a ! ;; comment on the first line of the file saying ! ;; -*- sql-product: mysql -*- ! ;; See section "File Variables" in the Emacs manual for more info. ! ! ;;; Adding another product: ! ! ;; To add support for additional SQL products the following steps ! ;; must be followed ("xyz" is the name of the product in the examples ! ;; below): ! ! ;; 1) Add the product to `sql-product' choice list. ! ! ;; (const :tag "XyzDB" xyz) ! ! ;; 2) Add an entry to the `sql-product-support' list. ! ! ;; (xyz ! ;; :font-lock sql-mode-xyz-font-lock-keywords ! ;; :sqli-login (user password server database) ! ;; :sqli-connect sql-connect-xyz ! ;; :sqli-prompt-regexp "^xyzdb> " ! ;; :sqli-prompt-length 7 ! ;; :sqli-input-sender nil ! ;; :syntax-alist ((?# . "w"))) ! ! ;; 3) Add customizable values for the product interpreter and options. ! ! ;; ;; Customization for XyzDB ! ;; ! ;; (defcustom sql-xyz-program "ixyz" ! ;; "*Command to start ixyz by XyzDB." ! ;; :type 'file ! ;; :group 'SQL) ! ;; ! ;; (defcustom sql-xyz-options '("-X" "-Y" "-Z") ! ;; "*List of additional options for `sql-xyz-program'." ! ;; :type '(repeat string) ! ;; :group 'SQL) ! ! ;; 4) Add an entry to SQL->Product submenu. ! ! ;; ["XyzDB" sql-highlight-xyz-keywords ! ;; :style radio ! ;; :selected (eq sql-product 'xyz)] ! ! ;; 5) Add the font-lock specifications. At a minimum, default to ! ;; using ANSI keywords. See sql-mode-oracle-font-lock-keywords for ! ;; a more complex example. ! ! ;; (defvar sql-mode-xyz-font-lock-keywords sql-mode-ansi-font-lock-keywords ! ;; "XyzDB SQL keywords used by font-lock.") ! ! ;; 6) Add a product highlighting function. ! ! ;; (defun sql-highlight-xyz-keywords () ! ;; "Highlight XyzDB keywords." ! ;; (interactive) ! ;; (sql-set-product 'xyz)) ! ! ;; 7) Add an autoloaded SQLi function. ! ! ;; ;;;###autoload ! ;; (defun sql-xyz () ! ;; "Run ixyz by XyzDB as an inferior process." ! ;; (interactive) ! ;; (sql-product-interactive 'xyz)) ! ! ;; 8) Add a connect function which formats the command line arguments ! ;; and starts the product interpreter in a comint buffer. See the ! ;; existing connect functions for examples of the types of ! ;; processing available. ! ! ;; (defun sql-connect-xyz () ! ;; "Create comint buffer and connect to XyzDB using the login ! ;; parameters and command options." ! ;; ! ;; ;; Do something with `sql-user', `sql-password', ! ;; ;; `sql-database', and `sql-server'. ! ;; (let ((params sql-xyz-options)) ! ;; (if (not (string= "" sql-server)) ! ;; (setq params (append (list "-S" sql-server) params))) ! ;; (if (not (string= "" sql-database)) ! ;; (setq params (append (list "-D" sql-database) params))) ! ;; (if (not (string= "" sql-password)) ! ;; (setq params (append (list "-P" sql-password) params))) ! ;; (if (not (string= "" sql-user)) ! ;; (setq params (append (list "-U" sql-user) params))) ! ;; (set-buffer (apply 'make-comint "SQL" sql-xyz-program ! ;; nil params)))) ! ;; 9) Save and compile sql.el. ;;; Thanks to all the people who helped me out: *************** *** 105,110 **** --- 195,201 ---- ;; Gregor Zych ;; nino ;; Berend de Boer + ;; Michael Mauger *************** *** 112,118 **** (require 'comint) ;; Need the following to allow GNU Emacs 19 to compile the file. ! (require 'regexp-opt) (require 'custom) ;;; Allow customization --- 203,210 ---- (require 'comint) ;; Need the following to allow GNU Emacs 19 to compile the file. ! (eval-when-compile ! (require 'regexp-opt)) (require 'custom) ;;; Allow customization *************** *** 122,128 **** :version "20.4" :group 'processes) ! ;; These three variables will be used as defaults, if set. (defcustom sql-user "" "*Default username." --- 214,220 ---- :version "20.4" :group 'processes) ! ;; These four variables will be used as defaults, if set. (defcustom sql-user "" "*Default username." *************** *** 147,152 **** --- 239,383 ---- :type 'string :group 'SQL) + ;; SQL Product support + (defcustom sql-product 'ansi + "*Select the SQL database product used so that buffers can be + highlighted properly when you open them." + :type '(choice (const :tag "ANSI" ansi) + (const :tag "DB2" db2) + (const :tag "Informix" informix) + (const :tag "Ingres" ingres) + (const :tag "Interbase" interbase) + (const :tag "Linter" linter) + (const :tag "Microsoft" ms) + (const :tag "MySQL" mysql) + (const :tag "Oracle" oracle) + (const :tag "PostGres" postgres) + (const :tag "Solid" solid) + (const :tag "SQLite" sqlite) + (const :tag "Sybase" sybase)) + :group 'SQL) + + (defvar sql-interactive-product nil + "Product under `sql-interactive-mode'.") + + (defvar sql-product-support + '((ansi + :font-lock sql-mode-ansi-font-lock-keywords) + (db2 + :font-lock sql-mode-db2-font-lock-keywords + :sqli-login nil + :sqli-connect sql-connect-db2 + :sqli-prompt-regexp "^db2 => " + :sqli-prompt-length 7) + (informix + :font-lock sql-mode-informix-font-lock-keywords + :sqli-login (database) + :sqli-connect sql-connect-informix + :sqli-prompt-regexp "^SQL> " + :sqli-prompt-length 5) + (ingres + :font-lock sql-mode-ingres-font-lock-keywords + :sqli-login (database) + :sqli-connect sql-connect-ingres + :sqli-prompt-regexp "^\* " + :sqli-prompt-length 2) + (interbase + :font-lock sql-mode-interbase-font-lock-keywords + :sqli-login (user password database) + :sqli-connect sql-connect-interbase + :sqli-prompt-regexp "^SQL> " + :sqli-prompt-length 5) + (linter + :font-lock sql-mode-linter-font-lock-keywords + :sqli-login (user password database server) + :sqli-connect sql-connect-linter + :sqli-prompt-regexp "^SQL>" + :sqli-prompt-length 4) + (ms + :font-lock sql-mode-ms-font-lock-keywords + :sqli-login (user password server database) + :sqli-connect sql-connect-ms + :sqli-prompt-regexp "^[0-9]*>" + :sqli-prompt-length 5 + :syntax-alist ((?@ . "w"))) + (mysql + :font-lock sql-mode-mysql-font-lock-keywords + :sqli-login (user password database server) + :sqli-connect sql-connect-mysql + :sqli-prompt-regexp "^mysql> " + :sqli-prompt-length 6) + (oracle + :font-lock sql-mode-oracle-font-lock-keywords + :sqli-login (user password database) + :sqli-connect sql-connect-oracle + :sqli-prompt-regexp "^SQL> " + :sqli-prompt-length 5 + :syntax-alist ((?$ . "w") (?# . "w"))) + (postgres + :font-lock sql-mode-postgres-font-lock-keywords + :sqli-login (database server) + :sqli-connect sql-connect-postgres + :sqli-prompt-regexp "^.*> *" + :sqli-prompt-length 5) + (solid + :font-lock sql-mode-solid-font-lock-keywords + :sqli-login (user password server) + :sqli-connect sql-connect-solid + :sqli-prompt-regexp "^" + :sqli-prompt-length 0) + (sqlite + :font-lock sql-mode-sqlite-font-lock-keywords + :sqli-login (user password server database) + :sqli-connect sql-connect-sqlite + :sqli-prompt-regexp "^sqlite> " + :sqli-prompt-length 8) + (sybase + :font-lock sql-mode-sybase-font-lock-keywords + :sqli-login (server user password database) + :sqli-connect sql-connect-sybase + :sqli-prompt-regexp "^SQL> " + :sqli-prompt-length 5 + :syntax-alist ((?@ . "w"))) + ) + "This variable contains a list of product features for each of the + SQL products handled by `sql-mode'. Without an entry in this list a + product will not be properly highlighted and will not support + `sql-interactive-mode'. + + Each element in the list is in the following format: + + \(PRODUCT FEATURE VALUE ...) + + where PRODUCT is the appropriate value of `sql-product'. The product + name is then followed by FEATURE-VALUE pairs. If a FEATURE is not + specified, its VALUE is treated as nil. FEATURE must be one of the + following: + + :font-lock name of the variable containing the product + specific font lock highlighting patterns. + + :sqli-login a list of login parameters (i.e., user, + password, database and server) needed to + connect to the database. + + :sqli-connect the name of a function which accepts no + parameters that will use the values of + `sql-user', `sql-password', + `sql-database' and `sql-server' to open a + comint buffer and connect to the + database. Do product specific + configuration of comint in this function. + + :sqli-prompt-regexp a regular expression string that matches the + prompt issued by the product interpreter. + + :sqli-prompt-length the length of the prompt on the line. + + :syntax-alist an alist of syntax table entries to enable + special character treatment by font-lock and + imenu. ") + ;; misc customization of sql.el behaviour (defcustom sql-electric-stuff nil *************** *** 177,184 **** ;; imenu support for sql-mode. (defvar sql-imenu-generic-expression ! '(("Tables" "^\\s-*create\\s-+table\\s-+\\(\\w+\\)" 1) ! ("Indexes" "^\\s-*create\\s-+index\\s-+\\(\\w+\\)" 1)) "Define interesting points in the SQL buffer for `imenu'. This is used to set `imenu-generic-expression' when SQL mode is --- 408,422 ---- ;; imenu support for sql-mode. (defvar sql-imenu-generic-expression ! ;; Items are in reverse order because they are rendered in reverse. ! '(("Rules/Defaults" "^\\s-*create\\s-+\\(rule\\|default\\)\\s-+\\(\\w+\\)" 2) ! ("Sequences" "^\\s-*create\\s-+sequence\\s-+\\(\\w+\\)" 1) ! ("Triggers" "^\\s-*\\(create\\s-+\\(or\\s-+replace\\s-+\\)?\\)?trigger\\s-+\\(\\w+\\)" 3) ! ("Functions" "^\\s-*\\(create\\s-+\\(or\\s-+replace\\s-+\\)?\\)?function\\s-+\\(\\w+\\)" 3) ! ("Procedures" "^\\s-*\\(create\\s-+\\(or\\s-+replace\\s-+\\)?\\)?proc\\(edure\\)?\\s-+\\(\\w+\\)" 4) ! ("Packages" "^\\s-*create\\s-+\\(or\\s-+replace\\s-+\\)?package\\s-+\\(body\\s-+\\)?\\(\\w+\\)" 3) ! ("Indexes" "^\\s-*create\\s-+index\\s-+\\(\\w+\\)" 1) ! ("Tables/Views" "^\\s-*create\\s-+\\(\\(global\\s-+\\)?\\(temporary\\s-+\\)?table\\|view\\)\\s-+\\(\\w+\\)" 4)) "Define interesting points in the SQL buffer for `imenu'. This is used to set `imenu-generic-expression' when SQL mode is *************** *** 274,280 **** :group 'SQL) (defcustom sql-sqlite-options nil ! "*List of additional options for `sql-mysql-program'. The following list of options is reported to make things work on Windows: \"-C\" \"-t\" \"-f\" \"-n\"." :type '(repeat string) --- 512,518 ---- :group 'SQL) (defcustom sql-sqlite-options nil ! "*List of additional options for `sql-sqlite-program'. The following list of options is reported to make things work on Windows: \"-C\" \"-t\" \"-f\" \"-n\"." :type '(repeat string) *************** *** 353,360 **** ;; Customization for Microsoft ! (defcustom sql-ms-program "isql" ! "*Command to start isql by Microsoft. Starts `sql-interactive-mode' after doing some setup. --- 591,598 ---- ;; Customization for Microsoft ! (defcustom sql-ms-program "osql" ! "*Command to start osql by Microsoft. Starts `sql-interactive-mode' after doing some setup. *************** *** 468,479 **** (defvar sql-prompt-regexp nil "Prompt used to initialize `comint-prompt-regexp'. ! You can change `comint-prompt-regexp' on `sql-interactive-mode-hook'.") (defvar sql-prompt-length 0 "Prompt used to set `left-margin' in `sql-interactive-mode'. ! You can change it on `sql-interactive-mode-hook'.") (defvar sql-alternate-buffer-name nil "Buffer-local string used to possibly rename the SQLi buffer. --- 706,717 ---- (defvar sql-prompt-regexp nil "Prompt used to initialize `comint-prompt-regexp'. ! You can change `sql-prompt-regexp' on `sql-interactive-mode-hook'.") (defvar sql-prompt-length 0 "Prompt used to set `left-margin' in `sql-interactive-mode'. ! You can change `sql-prompt-length' on `sql-interactive-mode-hook'.") (defvar sql-alternate-buffer-name nil "Buffer-local string used to possibly rename the SQLi buffer. *************** *** 518,539 **** (get-buffer-process sql-buffer))] ["Send Region" sql-send-region (and (or (and (boundp 'mark-active); Emacs mark-active) ! (mark)); XEmacs (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] ["Send Buffer" sql-send-buffer (and (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] ["Show SQLi buffer" sql-show-sqli-buffer t] ["Set SQLi buffer" sql-set-sqli-buffer t] ["Pop to SQLi buffer after send" sql-toggle-pop-to-buffer-after-send-region :style toggle :selected sql-pop-to-buffer-after-send-region] ! ("Highlighting" ! ["ANSI SQL keywords" sql-highlight-ansi-keywords t] ! ["Oracle keywords" sql-highlight-oracle-keywords t] ! ["Postgres keywords" sql-highlight-postgres-keywords t] ! ["Linter keywords" sql-highlight-linter-keywords t] ))) ;; easy menu for sql-interactive-mode. --- 756,815 ---- (get-buffer-process sql-buffer))] ["Send Region" sql-send-region (and (or (and (boundp 'mark-active); Emacs mark-active) ! (mark t)); XEmacs (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] ["Send Buffer" sql-send-buffer (and (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] + ["--" nil nil] + ["Start SQLi session" sql-product-interactive (sql-product-feature :sqli-connect)] ["Show SQLi buffer" sql-show-sqli-buffer t] ["Set SQLi buffer" sql-set-sqli-buffer t] ["Pop to SQLi buffer after send" sql-toggle-pop-to-buffer-after-send-region :style toggle :selected sql-pop-to-buffer-after-send-region] ! ["--" nil nil] ! ("Product" ! ["ANSI" sql-highlight-ansi-keywords ! :style radio ! :selected (eq sql-product 'ansi)] ! ["DB2" sql-highlight-db2-keywords ! :style radio ! :selected (eq sql-product 'db2)] ! ["Informix" sql-highlight-informix-keywords ! :style radio ! :selected (eq sql-product 'informix)] ! ["Ingres" sql-highlight-ingres-keywords ! :style radio ! :selected (eq sql-product 'ingres)] ! ["Interbase" sql-highlight-interbase-keywords ! :style radio ! :selected (eq sql-product 'interbase)] ! ["Linter" sql-highlight-linter-keywords ! :style radio ! :selected (eq sql-product 'linter)] ! ["Microsoft" sql-highlight-ms-keywords ! :style radio ! :selected (eq sql-product 'ms)] ! ["MySQL" sql-highlight-mysql-keywords ! :style radio ! :selected (eq sql-product 'mysql)] ! ["Oracle" sql-highlight-oracle-keywords ! :style radio ! :selected (eq sql-product 'oracle)] ! ["Postgres" sql-highlight-postgres-keywords ! :style radio ! :selected (eq sql-product 'postgres)] ! ["Solid" sql-highlight-solid-keywords ! :style radio ! :selected (eq sql-product 'solid)] ! ["SQLite" sql-highlight-sqlite-keywords ! :style radio ! :selected (eq sql-product 'sqlite)] ! ["Sybase" sql-highlight-sybase-keywords ! :style radio ! :selected (eq sql-product 'sybase)] ))) ;; easy menu for sql-interactive-mode. *************** *** 551,562 **** "Abbrev table used in `sql-mode' and `sql-interactive-mode'.") (if sql-mode-abbrev-table () ! (let ((wrapper)) ! (define-abbrev-table 'sql-mode-abbrev-table ()) ! (define-abbrev sql-mode-abbrev-table "ins" "insert") ! (define-abbrev sql-mode-abbrev-table "upd" "update") ! (define-abbrev sql-mode-abbrev-table "del" "delete") ! (define-abbrev sql-mode-abbrev-table "sel" "select"))) ;; Syntax Table --- 827,848 ---- "Abbrev table used in `sql-mode' and `sql-interactive-mode'.") (if sql-mode-abbrev-table () ! (let ((nargs (cdr (subr-arity (symbol-function 'define-abbrev)))) ! d-a) ! ;; In Emacs 21.3+, provide SYSTEM-FLAG to define-abbrev. ! (setq d-a ! (if (>= nargs 6) ! '(lambda (name expansion) (define-abbrev sql-mode-abbrev-table name expansion nil 0 t)) ! '(lambda (name expansion) (define-abbrev sql-mode-abbrev-table name expansion)))) ! ! (define-abbrev-table 'sql-mode-abbrev-table nil) ! (funcall d-a "ins" "insert") ! (funcall d-a "upd" "update") ! (funcall d-a "del" "delete") ! (funcall d-a "sel" "select") ! (funcall d-a "proc" "procedure") ! (funcall d-a "func" "function") ! (funcall d-a "cr" "create"))) ;; Syntax Table *************** *** 581,726 **** ;; Font lock support ! (defvar sql-mode-ansi-font-lock-keywords nil ! "ANSI SQL keywords used by font-lock. ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-ansi-font-lock-keywords. You may want to ! add functions and PL/SQL keywords.") ! (if sql-mode-ansi-font-lock-keywords ! () (let ((ansi-keywords (eval-when-compile (concat "\\b" (regexp-opt '( "authorization" "avg" "begin" "close" "cobol" "commit" "continue" "count" "declare" "double" "end" "escape" "exec" "fetch" "foreign" "fortran" "found" "go" "goto" "indicator" "key" "language" "max" "min" "module" "numeric" "open" "pascal" "pli" "precision" "primary" "procedure" "references" "rollback" ! "schema" "section" "some" "sqlcode" "sqlerror" "sum" "work") t) "\\b"))) (ansi-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( "all" "and" "any" "as" "asc" "between" "by" "check" "create" "current" "default" "delete" "desc" "distinct" "exists" "float" "for" "from" "grant" "group" "having" "in" "insert" "into" "is" "like" "not" "null" "of" "on" "option" "or" "order" "privileges" "public" "select" "set" "table" "to" "union" "unique" ! "update" "user" "values" "view" "where" "with") t) "\\b"))) (ansi-types (eval-when-compile (concat "\\b" (regexp-opt '( ;; ANSI Keywords that look like types "character" "cursor" "dec" "int" "real" ;; ANSI Reserved Word that look like types ! "char" "integer" "smallint" ) t) "\\b")))) ! (setq sql-mode-ansi-font-lock-keywords ! (list (cons ansi-keywords 'font-lock-function-name-face) (cons ansi-reserved-words 'font-lock-keyword-face) ! (cons ansi-types 'font-lock-type-face))))) ! (defvar sql-mode-oracle-font-lock-keywords nil ! "Oracle SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-oracle-font-lock-keywords. You may want ! to add functions and PL/SQL keywords.") ! (if sql-mode-oracle-font-lock-keywords ! () (let ((oracle-keywords (eval-when-compile (concat "\\b" (regexp-opt '( ! "admin" "after" "allocate" "analyze" "archive" "archivelog" "backup" ! "become" "before" "block" "body" "cache" "cancel" "cascade" "change" ! "checkpoint" "compile" "constraint" "constraints" "contents" ! "controlfile" "cycle" "database" "datafile" "dba" "disable" "dismount" ! "dump" "each" "else" "elsif" "enable" "events" "except" "exceptions" ! "execute" "exit" "explain" "extent" "externally" "false" "flush" "force" ! "freelist" "freelists" "function" "groups" "if" "including" "initrans" ! "instance" "layer" "link" "lists" "logfile" "loop" "manage" "manual" ! "maxdatafiles" "maxinistances" "maxlogfiles" "maxloghistory" ! "maxlogmembers" "maxtrans" "maxvalue" "minextents" "minvalue" "mount" ! "new" "next" "noarchivelog" "nocache" "nocycle" "nomaxvalue" ! "nominvalue" "none" "noorder" "noresetlogs" "normal" "nosort" "off" ! "old" "only" "optimal" "others" "out" "own" "package" "parallel" ! "pctincrease" "pctused" "plan" "pragma" "private" "profile" "quota" ! "raise" "read" "recover" "referencing" "resetlogs" "restrict_references" ! "restricted" "return" "returning" "reuse" "rnds" "rnps" "role" "roles" ! "savepoint" "scn" "segment" "sequence" "shared" "snapshot" "sort" ! "statement_id" "statistics" "stop" "storage" "subtype" "switch" "system" ! "tables" "tablespace" "temporary" "thread" "time" "tracing" ! "transaction" "triggers" "true" "truncate" "type" "under" "unlimited" ! "until" "use" "using" "when" "while" "wnds" "wnps" "write") t) "\\b"))) (oracle-warning-words (eval-when-compile (concat "\\b" (regexp-opt '( ! "cursor_already_open" "dup_val_on_index" "exception" "invalid_cursor" "invalid_number" "login_denied" "no_data_found" "not_logged_on" ! "notfound" "others" "pragma" "program_error" "storage_error" ! "timeout_on_resource" "too_many_rows" "transaction_backed_out" ! "value_error" "zero_divide") t) "\\b"))) ! (oracle-reserved-words (eval-when-compile ! (concat "\\b" (regexp-opt '( ! "access" "add" "alter" "audit" "cluster" "column" "comment" "compress" ! "connect" "drop" "else" "exclusive" "file" "grant" ! "identified" "immediate" "increment" "index" "initial" "intersect" ! "level" "lock" "long" "maxextents" "minus" "mode" "modify" "noaudit" ! "nocompress" "nowait" "number" "offline" "online" "pctfree" "prior" ! "raw" "rename" "resource" "revoke" "row" "rowlabel" "rownum" ! "rows" "session" "share" "size" "start" "successful" "synonym" "sysdate" ! "then" "trigger" "uid" "validate" "whenever") t) "\\b"))) ! (oracle-types (eval-when-compile (concat "\\b" (regexp-opt '( ;; Oracle Keywords that look like types ;; Oracle Reserved Words that look like types ! "binary_integer" "blob" "boolean" "constant" "date" "decimal" "rowid" ! "varchar" "varchar2") t) "\\b"))) (oracle-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( ;; Misc Oracle builtin functions ! "abs" "add_months" "ascii" "avg" "ceil" "chartorowid" "chr" "concat" ! "convert" "cos" "cosh" "count" "currval" "decode" "dump" "exp" "floor" ! "glb" "greatest" "greatest_lb" "hextoraw" "initcap" "instr" "instrb" ! "last_day" "least" "least_ub" "length" "lengthb" "ln" "log" "lower" ! "lpad" "ltrim" "lub" "max" "min" "mod" "months_between" "new_time" ! "next_day" "nextval" "nls_initcap" "nls_lower" "nls_upper" "nlssort" ! "nvl" "power" "rawtohex" "replace" "round" "rowidtochar" "rpad" ! "rtrim" "sign" "sin" "sinh" "soundex" "sqlcode" "sqlerrm" "sqrt" ! "stddev" "sum" "substr" "substrb" "tan" "tanh" "to_char" ! "to_date" "to_label" "to_multi_byte" "to_number" "to_single_byte" ! "translate" "trim" "trunc" "uid" "upper" "userenv" "variance" "vsize") t) "\\b")))) ! (setq sql-mode-oracle-font-lock-keywords ! (append sql-mode-ansi-font-lock-keywords ! (list (cons oracle-keywords 'font-lock-function-name-face) (cons oracle-warning-words 'font-lock-warning-face) - (cons oracle-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons oracle-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons oracle-builtin-functions 'font-lock-function-name-face) ;; Emacs (cons oracle-builtin-functions 'font-lock-builtin-face))) ! (cons oracle-types 'font-lock-type-face)))))) ! (defvar sql-mode-postgres-font-lock-keywords nil ! "Postgres SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-postgres-font-lock-keywords.") ! (if sql-mode-postgres-font-lock-keywords ! () (let ((postgres-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( --- 867,1119 ---- ;; Font lock support ! (defvar sql-mode-font-lock-object-name ! (list (concat "^\\s-*\\(create\\(\\s-+or\\s-+replace\\)?\\|drop\\|alter\\)?\\s-+" ! "\\(\\(global\\s-+\\)?\\(temporary\\s-+\\)?table\\|view\\|package\\(\\s-+body\\)?\\|" ! "proc\\(edure\\)?\\|function\\|trigger\\|sequence\\|rule\\|default\\)\\s-+\\(\\w+\\)") ! 8 'font-lock-function-name-face) ! "Pattern to match the names of top-level objects in a CREATE, ! DROP or ALTER statement. ! ! The format of variable should be a valid `font-lock-keywords' ! entry.") ! ! (defvar sql-mode-ansi-font-lock-keywords (let ((ansi-keywords (eval-when-compile (concat "\\b" (regexp-opt '( + "authorization" "avg" "begin" "close" "cobol" "commit" "continue" "count" "declare" "double" "end" "escape" "exec" "fetch" "foreign" "fortran" "found" "go" "goto" "indicator" "key" "language" "max" "min" "module" "numeric" "open" "pascal" "pli" "precision" "primary" "procedure" "references" "rollback" ! "schema" "section" "some" "sqlcode" "sqlerror" "sum" "work" ! ! ) t) "\\b"))) (ansi-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( + "all" "and" "any" "as" "asc" "between" "by" "check" "create" "current" "default" "delete" "desc" "distinct" "exists" "float" "for" "from" "grant" "group" "having" "in" "insert" "into" "is" "like" "not" "null" "of" "on" "option" "or" "order" "privileges" "public" "select" "set" "table" "to" "union" "unique" ! "update" "user" "values" "view" "where" "with" ! ! ) t) "\\b"))) (ansi-types (eval-when-compile (concat "\\b" (regexp-opt '( + ;; ANSI Keywords that look like types "character" "cursor" "dec" "int" "real" ;; ANSI Reserved Word that look like types ! "char" "integer" "smallint" ! ! ) t) "\\b")))) ! (list (cons ansi-keywords 'font-lock-keyword-face) (cons ansi-reserved-words 'font-lock-keyword-face) ! (cons ansi-types 'font-lock-type-face))) ! "ANSI SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-ansi-font-lock-keywords. You may want to ! add functions and PL/SQL keywords.") ! ! (defvar sql-mode-oracle-font-lock-keywords (let ((oracle-keywords (eval-when-compile (concat "\\b" (regexp-opt '( ! ;; Oracle (+ANSI) SQL keywords ! ! ; ANSI keywords ! "authorization" "avg" "begin" "close" "cobol" "commit" ! "continue" "count" "declare" "double" "end" "escape" ! "exec" "fetch" "foreign" "fortran" "found" "go" "goto" "indicator" ! "key" "language" "max" "min" "module" "numeric" "open" "pascal" "pli" ! "precision" "primary" "procedure" "references" "rollback" ! "schema" "section" "some" "sqlcode" "sqlerror" "sum" "work" ! ! ; ANSI reserved words ! "all" "and" "any" "as" "asc" "between" "by" "check" "create" ! "current" "default" "delete" "desc" "distinct" "exists" "float" "for" ! "from" "grant" "group" "having" "in" "insert" "into" "is" ! "like" "not" "null" "of" "on" "option" "or" "order" "privileges" ! "public" "select" "set" "table" "to" "union" "unique" ! "update" "user" "values" "view" "where" "with" ! ! "access" "add" "admin" "after" "allocate" "alter" "analyze" "archive" ! "archivelog" "audit" "authid" "backup" "become" "before" "block" ! "body" "cache" "cancel" "cascade" "change" "checkpoint" "cluster" ! "comment" "compile" "compress" "compute" "connect" "constraint" ! "constraints" "contents" "controlfile" "cross" "currval" "cycle" ! "database" "datafile" "dba" "deterministic" "disable" "dismount" ! "drop" "dump" "each" "else" "else" "elsif" "enable" "events" "except" ! "exceptions" "exclusive" "execute" "exit" "explain" "extent" ! "externally" "false" "file" "flush" "force" "freelist" "freelists" ! "full" "function" "global" "grant" "groups" "identified" "if" ! "immediate" "including" "increment" "index" "initial" "initrans" ! "inner" "instance" "intersect" "join" "layer" "left" "level" "link" ! "lists" "lock" "logfile" "long" "loop" "manage" "manual" ! "maxdatafiles" "maxextents" "maxinistances" "maxlogfiles" ! "maxloghistory" "maxlogmembers" "maxtrans" "maxvalue" "merge" ! "minextents" "minus" "minvalue" "mode" "modify" "mount" "natural" ! "new" "next" "nextval" "noarchivelog" "noaudit" "nocache" "nocompress" ! "nocycle" "nomaxvalue" "nominvalue" "none" "noorder" "noresetlogs" ! "normal" "nosort" "nowait" "off" "offline" "old" "online" "only" ! "optimal" "others" "out" "outer" "over" "own" "package" "parallel" ! "parallel_enable" "pctfree" "pctincrease" "pctused" "plan" "pragma" ! "preserve" "prior" "private" "profile" "quota" "raise" "raw" "read" ! "recover" "referencing" "rename" "replace" "resetlogs" "resource" ! "restrict_references" "restricted" "return" "returning" "reuse" ! "revoke" "right" "rnds" "rnps" "role" "roles" "row" "rowlabel" ! "rownum" "rows" "savepoint" "scn" "segment" "sequence" "session" ! "share" "shared" "size" "snapshot" "sort" "statement_id" "statistics" ! "stop" "storage" "subtype" "successful" "switch" "synonym" "sysdate" ! "system" "tables" "tablespace" "temporary" "then" "thread" "tracing" ! "transaction" "trigger" "triggers" "true" "truncate" "type" "uid" ! "under" "unlimited" "until" "use" "using" "validate" "when" "while" ! "wnds" "wnps" "write" ! ! ) t) "\\b"))) (oracle-warning-words (eval-when-compile (concat "\\b" (regexp-opt '( ! ;; PLSQL defined exceptions ! ! "access_into_null" "case_not_found" "collection_is_null" ! "cursor_already_open" "dup_val_on_index" "invalid_cursor" "invalid_number" "login_denied" "no_data_found" "not_logged_on" ! "program_error" "rowtype_mismatch" "self_is_null" "storage_error" ! "subscript_beyond_count" "subscript_outside_limit" "sys_invalid_rowid" ! "timeout_on_resource" "too_many_rows" "value_error" "zero_divide" ! "exception" "notfound" ! ! ) t) "\\b"))) ! ! (oracle-sqlplus-commands ! (eval-when-compile ! (concat "^\\(\\(" (regexp-opt '( ! ;; SQL*Plus commands ! ! "@" "@@" "accept" "append" "archive" "attribute" "break" ! "btitle" "change" "clear" "column" "connect" "copy" "define" ! "del" "describe" "disconnect" "edit" "execute" "exit" "get" "help" ! "host" "input" "list" "password" "pause" "print" "prompt" "recover" ! "remark" "repfooter" "repheader" "run" "save" "show" "shutdown" ! "spool" "start" "startup" "store" "timing" "ttitle" "undefine" ! "variable" "whenever" ! ! ) t) ! ! "\\)\\|" ! "\\(compute\\s-+\\(avg\\|cou\\|min\\|max\\|num\\|sum\\|std\\|var\\)\\)\\|" ! "\\(set\\s-+\\(appi\\(nfo\\)?\\|array\\(size\\)?\\|" ! "auto\\(commit\\)?\\|autop\\(rint\\)?\\|autorecovery\\|" ! "autot\\(race\\)?\\|blo\\(ckterminator\\)?\\|cmds\\(ep\\)?\\|" ! "colsep\\|com\\(patibility\\)?\\|con\\(cat\\)?\\|" ! "copyc\\(ommit\\)?\\|copytypecheck\\|def\\(ine\\)?\\|" ! "describe\\|echo\\|editf\\(ile\\)?\\|emb\\(edded\\)?\\|" ! "esc\\(ape\\)?\\|feed\\(back\\)?\\|flagger\\|" ! "flu\\(sh\\)?\\|hea\\(ding\\)?\\|heads\\(ep\\)?\\|" ! "instance\\|lin\\(esize\\)?\\|lobof\\(fset\\)?\\|" ! "logsource\\|long\\|longc\\(hunksize\\)?\\|mark\\(up\\)?\\|" ! "newp\\(age\\)?\\|null\\|numf\\(ormat\\)?\\|" ! "num\\(width\\)?\\|pages\\(ize\\)?\\|pau\\(se\\)?\\|" ! "recsep\\|recsepchar\\|serverout\\(put\\)?\\|" ! "shift\\(inout\\)?\\|show\\(mode\\)?\\|" ! "sqlbl\\(anklines\\)?\\|sqlc\\(ase\\)?\\|" ! "sqlco\\(ntinue\\)?\\|sqln\\(umber\\)?\\|" ! "sqlpluscompat\\(ibility\\)?\\|sqlpre\\(fix\\)?\\|" ! "sqlp\\(rompt\\)?\\|sqlt\\(erminator\\)?\\|" ! "suf\\(fix\\)?\\|tab\\|term\\(out\\)?\\|ti\\(me\\)?\\|" ! "timi\\(ng\\)?\\|trim\\(out\\)?\\|trims\\(pool\\)?\\|" ! "und\\(erline\\)?\\|ver\\(ify\\)?\\|wra\\(p\\)?\\)\\)\\)" ! "\\b.*$" ! ))) ! ! (oracle-types ! (eval-when-compile (concat "\\b" (regexp-opt '( ;; Oracle Keywords that look like types ;; Oracle Reserved Words that look like types ! ! "bfile" "binary_integer" "blob" "boolean" "byte" "char" "character" ! "clob" "date" "day" "dec" "decimal" "double" "float" "int" "integer" ! "interval" "local" "long" "month" "natural" "naturaln" "nchar" "nclob" ! "number" "numeric" "nvarchar2" "pls_integer" "positive" "positiven" ! "precision" "raw" "real" "rowid" "second" "signtype" "smallint" ! "string" "time" "timestamp" "urowid" "varchar" "varchar2" "year" ! "zone" ! ! ) t) "\\b"))) (oracle-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( ;; Misc Oracle builtin functions ! ! "abs" "acos" "add_months" "ascii" "asciistr" "asin" "atan" "atan2" ! "avg" "bfilename" "bin_to_num" "bitand" "case" "cast" "ceil" ! "chartorowid" "chr" "coalesce" "compose" "concat" "convert" "corr" ! "cos" "cosh" "count" "covar_pop" "covar_samp" "cume_dist" ! "current_date" "current_timestamp" "current_user" "dbtimezone" ! "decode" "decompose" "dense_rank" "depth" "deref" "dump" "empty_blob" ! "empty_clob" "existsnode" "exp" "extract" "extractvalue" "first" ! "first_value" "floor" "from_tz" "greatest" "group_id" "grouping" ! "grouping_id" "hextoraw" "initcap" "instr" "lag" "last" "last_day" ! "last_value" "lead" "least" "length" "ln" "localtimestamp" "log" ! "lower" "lpad" "ltrim" "make_ref" "max" "min" "mod" "months_between" ! "nchr" "new_time" "next_day" "nls_charset_decl_len" "nls_charset_id" ! "nls_charset_name" "nls_initcap" "nls_lower" "nlssort" "nls_upper" ! "ntile" "nullif" "numtodsinterval" "numtoyminterval" "nvl" "nvl2" ! "path" "percent_rank" "percentile_cont" "percentile_disc" "power" ! "rank" "ratio_to_report" "rawtohex" "rawtonhex" "ref" "reftohex" ! "regr_slope" "regr_intercept" "regr_count" "regr_r2" "regr_avgx" ! "regr_avgy" "regr_sxx" "regr_syy" "regr_sxy" "round" ! "row_number" "rowidtochar" "rowidtonchar" "rpad" "rtrim" ! "sessiontimezone" "sign" "sin" "sinh" "soundex" "sqrt" "stddev" ! "stddev_pop" "stddev_samp" "substr" "sum" "sys_connect_by_path" ! "sys_context" "sys_dburigen" "sys_extract_utc" "sys_guid" "sys_typeid" ! "sys_xmlagg" "sys_xmlgen" "sysdate" "systimestamp" "tan" "tanh" ! "to_char" "to_clob" "to_date" "to_dsinterval" "to_lob" "to_multi_byte" ! "to_nchar" "to_nclob" "to_number" "to_single_byte" "to_timestamp" ! "to_timestamp_tz" "to_yminterval" "translate" "treat" "trim" "trunc" ! "tz_offset" "uid" "unistr" "updatexml" "upper" "user" "userenv" ! "value" "var_pop" "var_samp" "variance" "vsize" "width_bucket" ! "xmlagg" "xmlcolattval" "xmlconcat" "xmlelement" "xmlforest" ! "xmlsequence" "xmltransform" ! ! ) t) "\\b")))) ! (list (cons oracle-sqlplus-commands 'font-lock-doc-face) ! (cons oracle-keywords 'font-lock-keyword-face) (cons oracle-warning-words 'font-lock-warning-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons oracle-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons oracle-builtin-functions 'font-lock-keyword-face) ;; Emacs (cons oracle-builtin-functions 'font-lock-builtin-face))) ! (cons oracle-types 'font-lock-type-face))) ! "Oracle SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-oracle-font-lock-keywords. You may want ! to add functions and PL/SQL keywords.") ! (defvar sql-mode-postgres-font-lock-keywords (let ((postgres-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( *************** *** 729,742 **** --- 1122,1138 ---- (postgres-types (eval-when-compile (concat "\\b" (regexp-opt '( + "bool" "box" "circle" "char" "char2" "char4" "char8" "char16" "date" "float4" "float8" "int2" "int4" "int8" "line" "lseg" "money" "path" "point" "polygon" "serial" "text" "time" "timespan" "timestamp" "varchar" + ) t)"\\b"))) (postgres-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( ;; Misc Postgres builtin functions + "abstime" "age" "area" "box" "center" "date_part" "date_trunc" "datetime" "dexp" "diameter" "dpow" "float" "float4" "height" "initcap" "integer" "isclosed" "isfinite" "isoldpath" "isopen" *************** *** 744,751 **** "position" "radius" "reltime" "revertpoly" "rpad" "rtrim" "substr" "substring" "text" "timespan" "translate" "trim" "upgradepath" "upgradepoly" "upper" "varchar" "width" ) t) "\\b")))) - (setq sql-mode-postgres-font-lock-keywords (append sql-mode-ansi-font-lock-keywords (list (cons postgres-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have 'font-lock-builtin-face --- 1140,1147 ---- "position" "radius" "reltime" "revertpoly" "rpad" "rtrim" "substr" "substring" "text" "timespan" "translate" "trim" "upgradepath" "upgradepoly" "upper" "varchar" "width" + ) t) "\\b")))) (append sql-mode-ansi-font-lock-keywords (list (cons postgres-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have 'font-lock-builtin-face *************** *** 753,773 **** (cons postgres-builtin-functions 'font-lock-preprocessor-face) ;; Emacs (cons postgres-builtin-functions 'font-lock-builtin-face)) ! (cons postgres-types 'font-lock-type-face)))))) ! ! (defvar sql-mode-linter-font-lock-keywords nil ! "Linter SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the ! function `regexp-opt'.") ! (if sql-mode-linter-font-lock-keywords ! () (let ((linter-keywords (eval-when-compile (concat "\\b" (regexp-opt '( "autocommit" "autoinc" "autorowid" "cancel" "cascade" "channel" "committed" "count" "countblob" "cross" "current" "data" "database" "datafile" "datafiles" "datesplit" "dba" "dbname" "default" "deferred" --- 1149,1168 ---- (cons postgres-builtin-functions 'font-lock-preprocessor-face) ;; Emacs (cons postgres-builtin-functions 'font-lock-builtin-face)) ! (cons postgres-types 'font-lock-type-face)))) ! "Postgres SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-postgres-font-lock-keywords.") ! (defvar sql-mode-linter-font-lock-keywords (let ((linter-keywords (eval-when-compile (concat "\\b" (regexp-opt '( + "autocommit" "autoinc" "autorowid" "cancel" "cascade" "channel" "committed" "count" "countblob" "cross" "current" "data" "database" "datafile" "datafiles" "datesplit" "dba" "dbname" "default" "deferred" *************** *** 792,801 **** --- 1187,1198 ---- "trigger_info_size" "true" "trunc" "uncommitted" "unicode" "unknown" "unlimited" "unlisted" "user" "utf8" "value" "varying" "volumes" "wait" "windows_code" "workspace" "write" "xml" + ) t) "\\b"))) (linter-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( + "access" "action" "add" "address" "after" "all" "alter" "always" "and" "any" "append" "as" "asc" "ascic" "async" "at_begin" "at_end" "audit" "aud_obj_name_len" "backup" "base" "before" "between" "blobfile" *************** *** 813,830 **** --- 1210,1231 ---- "start" "stop" "sync" "synchronize" "synonym" "sysdate" "table" "then" "to" "union" "unique" "unlock" "until" "update" "using" "values" "view" "when" "where" "with" "without" + ) t) "\\b"))) (linter-types (eval-when-compile (concat "\\b" (regexp-opt '( + "bigint" "bitmap" "blob" "boolean" "char" "character" "date" "datetime" "dec" "decimal" "double" "float" "int" "integer" "nchar" "number" "numeric" "real" "smallint" "varbyte" "varchar" "byte" "cursor" "long" + ) t) "\\b"))) (linter-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( + "abs" "acos" "asin" "atan" "atan2" "avg" "ceil" "cos" "cosh" "divtime" "exp" "floor" "getbits" "getblob" "getbyte" "getlong" "getraw" "getstr" "gettext" "getword" "hextoraw" "lenblob" "length" "log" *************** *** 835,893 **** "to_gmtime" "to_localtime" "to_number" "trim" "upper" "decode" "substr" "substring" "chr" "dayname" "days" "greatest" "hex" "initcap" "instr" "least" "multime" "replace" "width" ) t) "\\b")))) - (setq sql-mode-linter-font-lock-keywords (append sql-mode-ansi-font-lock-keywords ! (list (cons linter-keywords 'font-lock-function-name-face) (cons linter-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons linter-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons linter-builtin-functions 'font-lock-function-name-face) ;; Emacs (cons linter-builtin-functions 'font-lock-builtin-face))) ! (cons linter-types 'font-lock-type-face)))))) ! (defvar sql-mode-font-lock-keywords sql-mode-ansi-font-lock-keywords "SQL keywords used by font-lock. ! This variable defaults to `sql-mode-ansi-font-lock-keywords'. This is ! used for the default `font-lock-defaults' value in `sql-mode'. This ! can be changed by some entry functions to provide more hilighting.") ;;; Functions to switch highlighting (defun sql-highlight-oracle-keywords () ! "Highlight Oracle keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-oracle-font-lock-keywords) ! (font-lock-fontify-buffer)) (defun sql-highlight-postgres-keywords () ! "Highlight Postgres keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-postgres-font-lock-keywords) ! (font-lock-fontify-buffer)) (defun sql-highlight-linter-keywords () ! "Highlight LINTER keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-linter-font-lock-keywords) ! (font-lock-fontify-buffer)) (defun sql-highlight-ansi-keywords () ! "Highlight ANSI SQL keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-ansi-font-lock-keywords) ! (font-lock-fontify-buffer)) --- 1236,1602 ---- "to_gmtime" "to_localtime" "to_number" "trim" "upper" "decode" "substr" "substring" "chr" "dayname" "days" "greatest" "hex" "initcap" "instr" "least" "multime" "replace" "width" + ) t) "\\b")))) (append sql-mode-ansi-font-lock-keywords ! (list (cons linter-keywords 'font-lock-keywords-face) (cons linter-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons linter-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons linter-builtin-functions 'font-lock-keywords-face) ;; Emacs (cons linter-builtin-functions 'font-lock-builtin-face))) ! (cons linter-types 'font-lock-type-face)))) ! ! "Linter SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'.") ! ! (defvar sql-mode-ms-font-lock-keywords ! (let ((ms-reserved-words (eval-when-compile ! (concat "\\b" ! (regexp-opt '( ! ! "absolute" "add" "all" "alter" "and" "any" "as" "asc" "authorization" ! "avg" "backup" "begin" "between" "break" "browse" "bulk" "by" ! "cascade" "case" "check" "checkpoint" "close" "clustered" "coalesce" ! "column" "commit" "committed" "compute" "confirm" "constraint" ! "contains" "containstable" "continue" "controlrow" "convert" "count" ! "create" "cross" "current" "current_date" "current_time" ! "current_timestamp" "current_user" "database" "deallocate" ! "declare" "default" "delete" "deny" "desc" "disk" "distinct" ! "distributed" "double" "drop" "dummy" "dump" "else" "end" "errlvl" ! "errorexit" "escape" "except" "exec" "execute" "exists" "exit" "fetch" ! "file" "fillfactor" "first" "floppy" "for" "foreign" "freetext" ! "freetexttable" "from" "full" "goto" "grant" "group" "having" ! "holdlock" "identity" "identity_insert" "identitycol" "if" "in" ! "index" "inner" "insert" "intersect" "into" "is" "isolation" "join" ! "key" "kill" "last" "left" "level" "like" "lineno" "load" "max" "min" ! "mirrorexit" "national" "next" "nocheck" "nolock" "nonclustered" "not" ! "null" "nullif" "of" "off" "offsets" "on" "once" "only" "open" ! "opendatasource" "openquery" "openrowset" "option" "or" "order" ! "outer" "output" "over" "paglock" "percent" "perm" "permanent" "pipe" ! "plan" "precision" "prepare" "primary" "print" "prior" "privileges" ! "proc" "procedure" "processexit" "public" "raiserror" "read" ! "readcommitted" "readpast" "readtext" "readuncommitted" "reconfigure" ! "references" "relative" "repeatable" "repeatableread" "replication" ! "restore" "restrict" "return" "revoke" "right" "rollback" "rowcount" ! "rowguidcol" "rowlock" "rule" "save" "schema" "select" "serializable" ! "session_user" "set" "shutdown" "some" "statistics" "sum" ! "system_user" "table" "tablock" "tablockx" "tape" "temp" "temporary" ! "textsize" "then" "to" "top" "tran" "transaction" "trigger" "truncate" ! "tsequal" "uncommitted" "union" "unique" "update" "updatetext" ! "updlock" "use" "user" "values" "view" "waitfor" "when" "where" ! "while" "with" "work" "writetext" ! "collate" "function" "openxml" "returns" ! ! ) t) "\\b"))) ! (ms-types (eval-when-compile ! (concat "\\b" ! (regexp-opt '( ! ! "binary" "bit" "char" "character" "cursor" "datetime" "dec" "decimal" ! "double" "float" "image" "int" "integer" "money" "national" "nchar" ! "ntext" "numeric" "numeric" "nvarchar" "precision" "real" ! "smalldatetime" "smallint" "smallmoney" "text" "timestamp" "tinyint" ! "uniqueidentifier" "varbinary" "varchar" "varying" ! ! ) t) "\\b"))) ! ! (ms-vars "\\b@[a-zA-Z0-9_]*\\b") ! ! (ms-builtin-functions (eval-when-compile ! (concat "\\b" ! (regexp-opt '( ! ;; Misc MS builtin functions ! ! "@@connections" "@@cpu_busy" "@@cursor_rows" "@@datefirst" "@@dbts" ! "@@error" "@@fetch_status" "@@identity" "@@idle" "@@io_busy" ! "@@langid" "@@language" "@@lock_timeout" "@@max_connections" ! "@@max_precision" "@@nestlevel" "@@options" "@@pack_received" ! "@@pack_sent" "@@packet_errors" "@@procid" "@@remserver" "@@rowcount" ! "@@servername" "@@servicename" "@@spid" "@@textsize" "@@timeticks" ! "@@total_errors" "@@total_read" "@@total_write" "@@trancount" ! "@@version" "abs" "acos" "and" "app_name" "ascii" "asin" "atan" "atn2" ! "avg" "case" "cast" "ceiling" "char" "charindex" "coalesce" ! "col_length" "col_name" "columnproperty" "containstable" "convert" ! "cos" "cot" "count" "current_timestamp" "current_user" "cursor_status" ! "databaseproperty" "datalength" "dateadd" "datediff" "datename" ! "datepart" "day" "db_id" "db_name" "degrees" "difference" "exp" ! "file_id" "file_name" "filegroup_id" "filegroup_name" ! "filegroupproperty" "fileproperty" "floor" "formatmessage" ! "freetexttable" "fulltextcatalogproperty" "fulltextserviceproperty" ! "getansinull" "getdate" "grouping" "host_id" "host_name" "ident_incr" ! "ident_seed" "identity" "index_col" "indexproperty" "is_member" ! "is_srvrolemember" "isdate" "isnull" "isnumeric" "left" "len" "log" ! "log10" "lower" "ltrim" "max" "min" "month" "nchar" "newid" "nullif" ! "object_id" "object_name" "objectproperty" "openquery" "openrowset" ! "parsename" "patindex" "patindex" "permissions" "pi" "power" ! "quotename" "radians" "rand" "replace" "replicate" "reverse" "right" ! "round" "rtrim" "session_user" "sign" "sin" "soundex" "space" "sqrt" ! "square" "stats_date" "stdev" "stdevp" "str" "stuff" "substring" "sum" ! "suser_id" "suser_name" "suser_sid" "suser_sname" "system_user" "tan" ! "textptr" "textvalid" "typeproperty" "unicode" "upper" "user" ! "user_id" "user_name" "var" "varp" "year" ! ! ) t) "\\b"))) ! ! (ms-config-commands ! (eval-when-compile ! (concat "^\\(\\(set\\s-+\\(" ! (regexp-opt '( ! ! "datefirst" "dateformat" "deadlock_priority" "lock_timeout" ! "concat_null_yields_null" "cursor_close_on_commit" ! "disable_def_cnst_chk" "fips_flagger" "identity_insert" "language" ! "offsets" "quoted_identifier" "arithabort" "arithignore" "fmtonly" ! "nocount" "noexec" "numeric_roundabort" "parseonly" ! "query_governor_cost_limit" "rowcount" "textsize" "ansi_defaults" ! "ansi_null_dflt_off" "ansi_null_dflt_on" "ansi_nulls" "ansi_padding" ! "ansi_warnings" "forceplan" "showplan_all" "showplan_text" ! "statistics" "implicit_transactions" "remote_proc_transactions" ! "transaction" "xact_abort" ! ! ) t) ! "\\)\\)\\|go\\s-*\\|use\\s-+\\|setuser\\s-+\\|dbcc\\s-+\\).*$")))) ! ! (list (cons ms-config-commands 'font-lock-doc-face) ! (cons ms-reserved-words 'font-lock-keyword-face) ! ;; XEmacs doesn't have 'font-lock-builtin-face ! (if (string-match "XEmacs\\|Lucid" emacs-version) ! (cons ms-builtin-functions 'font-lock-preprocessor-face) ! ;; Emacs ! (cons ms-builtin-functions 'font-lock-builtin-face)) ! (cons ms-vars 'font-lock-variable-name-face) ! (cons ms-types 'font-lock-type-face))) ! ! "Microsoft SQLServer SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-ms-font-lock-keywords.") ! ! (defvar sql-mode-sybase-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Sybase SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-sybase-font-lock-keywords.") ! ! (defvar sql-mode-informix-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Informix SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-informix-font-lock-keywords.") ! ! (defvar sql-mode-interbase-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Interbase SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-interbase-font-lock-keywords.") ! ! (defvar sql-mode-ingres-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Ingres SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-interbase-font-lock-keywords.") ! ! (defvar sql-mode-solid-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Solid SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-solid-font-lock-keywords.") ! (defvar sql-mode-mysql-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "MySQL SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-mysql-font-lock-keywords.") ! ! (defvar sql-mode-sqlite-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "SQLite SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-sqlite-font-lock-keywords.") ! ! (defvar sql-mode-db2-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "DB2 SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-db2-font-lock-keywords.") ! ! (defvar sql-mode-font-lock-keywords nil "SQL keywords used by font-lock. ! Setting this variable directly no longer has any affect. Use ! `sql-product' and `sql-add-product-keywords' to control the ! highlighting rules in sql-mode.") ! ! ! ! ;;; SQL Product support functions ! ! (defun sql-product-feature (feature &optional product) ! "Lookup `feature' needed to support the current SQL product. ! ! See \[sql-product-support] for a list of products and supported features." ! (cadr ! (memq feature ! (assoc (or product sql-product) ! sql-product-support)))) ! ! (defun sql-product-font-lock (keywords-only imenu) ! "Sets `font-lock-defaults' and `font-lock-keywords' based on ! the product-specific keywords and syntax-alists defined in ! `sql-product-support'." ! (let ! ;; Get the product-specific syntax-alist. ! ((syntax-alist ! (append ! (sql-product-feature :syntax-alist) ! '((?_ . "w") (?. . "w"))))) ! ! ;; Get the product-specific keywords. ! (setq sql-mode-font-lock-keywords ! (append ! (eval (sql-product-feature :font-lock)) ! (list sql-mode-font-lock-object-name))) ! ! ;; Setup font-lock. (What is the minimum we should have to do ! ;; here?) ! (setq font-lock-set-defaults nil ! font-lock-keywords sql-mode-font-lock-keywords ! font-lock-defaults (list 'sql-mode-font-lock-keywords ! keywords-only t syntax-alist)) ! ! ;; Setup imenu; it needs the same syntax-alist. ! (when imenu ! (setq imenu-syntax-alist syntax-alist)))) ! ! ;;;###autoload ! (defun sql-add-product-keywords (product keywords) ! "Append a `font-lock-keywords' entry to the existing entries defined ! for the specified `product'." ! ! (let ((font-lock (sql-product-feature :font-lock product))) ! (set font-lock (append (eval font-lock) (list keywords))))) ;;; Functions to switch highlighting + (defun sql-highlight-product () + "Turns on the appropriate font highlighting for the SQL product + selected." + + (when (eq major-mode 'sql-mode) + ;; Setup font-lock + (sql-product-font-lock nil t) + + ;; Force fontification, if its enabled. + (if font-lock-mode + (font-lock-fontify-buffer)) + + ;; Set the mode name to include the product. + (setq mode-name (concat "SQL[" (prin1-to-string sql-product) "]")))) + + (defun sql-set-product (product) + "Set `sql-product' to product and enable appropriate + highlighting." + (interactive "SEnter SQL product: ") + (when (not (assoc product sql-product-support)) + (error "SQL product %s is not supported; treated as ANSI" product) + (setq product 'ansi)) + + ;; Save product setting and fontify. + (setq sql-product product) + (sql-highlight-product)) + (defun sql-highlight-oracle-keywords () ! "Highlight Oracle keywords." (interactive) ! (sql-set-product 'oracle)) (defun sql-highlight-postgres-keywords () ! "Highlight Postgres keywords." (interactive) ! (sql-set-product 'postgres)) (defun sql-highlight-linter-keywords () ! "Highlight LINTER keywords." (interactive) ! (sql-set-product 'linter)) ! ! (defun sql-highlight-ms-keywords () ! "Highlight Microsoft SQLServer keywords." ! (interactive) ! (sql-set-product 'ms)) (defun sql-highlight-ansi-keywords () ! "Highlight ANSI SQL keywords." ! (interactive) ! (sql-set-product 'ansi)) ! ! (defun sql-highlight-sybase-keywords () ! "Highlight Sybase SQL keywords." ! (interactive) ! (sql-set-product 'sybase)) ! ! (defun sql-highlight-informix-keywords () ! "Highlight Informix SQL keywords." ! (interactive) ! (sql-set-product 'informix)) ! ! (defun sql-highlight-interbase-keywords () ! "Highlight Interbase SQL keywords." ! (interactive) ! (sql-set-product 'interbase)) ! ! (defun sql-highlight-ingres-keywords () ! "Highlight Ingres SQL keywords." ! (interactive) ! (sql-set-product 'ingres)) ! ! (defun sql-highlight-solid-keywords () ! "Highlight Solid SQL keywords." ! (interactive) ! (sql-set-product 'solid)) ! ! (defun sql-highlight-mysql-keywords () ! "Highlight MySQL SQL keywords." ! (interactive) ! (sql-set-product 'mysql)) ! ! (defun sql-highlight-sqlite-keywords () ! "Highlight SQLite SQL keywords." ! (interactive) ! (sql-set-product 'sqlite)) ! ! (defun sql-highlight-db2-keywords () ! "Highlight DB2 SQL keywords." (interactive) ! (sql-set-product 'db2)) *************** *** 953,958 **** --- 1662,1668 ---- Sybase: \\[sql-sybase] Ingres: \\[sql-ingres] Microsoft: \\[sql-ms] + DB2: \\[sql-db2] Interbase: \\[sql-interbase] Linter: \\[sql-linter] *************** *** 999,1024 **** The function asks for the username if WHAT contains symbol `user', for the password if it contains symbol `password', for the server if it contains symbol `server', and for the database if it contains symbol ! `database'. In order to ask the user for username, password and database, call the function like this: (sql-get-login 'user 'password 'database)." (interactive) ! (if (memq 'user what) (setq sql-user (read-from-minibuffer "User: " sql-user nil nil sql-user-history))) ! (if (memq 'password what) (setq sql-password (sql-read-passwd "Password: " sql-password))) ! (if (memq 'server what) (setq sql-server (read-from-minibuffer "Server: " sql-server nil nil sql-server-history))) ! (if (memq 'database what) (setq sql-database (read-from-minibuffer "Database: " sql-database nil nil sql-database-history)))) (defun sql-find-sqli-buffer () "Return the current default SQLi buffer or nil. --- 1709,1738 ---- The function asks for the username if WHAT contains symbol `user', for the password if it contains symbol `password', for the server if it contains symbol `server', and for the database if it contains symbol ! `database'. The members of WHAT are processed in the order in which ! they are provided. In order to ask the user for username, password and database, call the function like this: (sql-get-login 'user 'password 'database)." (interactive) ! (while what ! (cond ! ((eq (car what) 'user) ; user (setq sql-user (read-from-minibuffer "User: " sql-user nil nil sql-user-history))) ! ((eq (car what) 'password) ; password (setq sql-password (sql-read-passwd "Password: " sql-password))) ! ((eq (car what) 'server) ; server (setq sql-server (read-from-minibuffer "Server: " sql-server nil nil sql-server-history))) ! ((eq (car what) 'database) ; database (setq sql-database (read-from-minibuffer "Database: " sql-database nil nil sql-database-history)))) + (setq what (cdr what)))) (defun sql-find-sqli-buffer () "Return the current default SQLi buffer or nil. From MAILER-DAEMON Sun Jul 13 13:28:40 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkdp-0003W0-G9 for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:28:05 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkdi-0003V5-L5 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:27:58 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkdg-0003U9-Uh for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:27:57 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkd5-00030v-GQ for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:27:19 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkc4-0007wM-Lp for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:26:16 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:26:16 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:27:59 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5281 emacs/lisp/ChangeLog:1.5282 *** emacs/lisp/ChangeLog:1.5281 Sat Jul 12 20:20:39 2003 --- emacs/lisp/ChangeLog Sun Jul 13 13:26:15 2003 *************** *** 1,3 **** --- 1,108 ---- + 2003-07-13 Karl Eichwalder + + * textmodes/po.el (po-find-charset): White space at the start of the + Content-Type field body is non-mandatory. + + 2003-07-13 Masayuki Ataka (tiny change) + + * textmodes/texinfo.el (texinfo-section-list): Append + appendixsection; a synonym for appendixsec. + + 2003-07-13 Jari Aalto + + * man.el (Man-translate-cleanup): New. + (Man-translate-references): Call `Man-translate-cleanup' to clean + leading, trailing and middle spaces. + + 2003-07-13 Michael Mauger + + Version 1.8.0 of sql-mode. + + Simplify selection of SQL products to define highlighting and + interactive mode. Includes detailed instructions on adding support + for new products. + + * progmodes/sql.el (sql-product): New variable. Identifies SQL + product for use in highlighting and interactive mode. + (sql-interactive-product): New variable. SQL product for + sql-interactive-mode. + (sql-product-support): New variable. Specifies product-specific + parameters to drive highlighting and interactive mode. + (sql-imenu-generic-expression): Add more object types. + (sql-sqlite-options): Correct comment. + (sql-ms-program): Use "osql" rather than "isql". + (sql-prompt-regexp, sql-prompt-length): Update comment. + (sql-mode-menu): Add "Start SQLi session" entry. Replace + Highlighting submenu with Product menu. Fix Send Region entry. + (sql-mode-abbrev-table): Add abbreviations. Support of SYSTEM-FLAG + on define-abbrev. Support was removed with last check-in; it now + handles older Emacsen without the SYSTEM-FLAG. + (sql-mode-font-lock-object-name): Add font-lock pattern for object + names. + (sql-mode-ansi-font-lock-keywords): Set as default value. + (sql-mode-oracle-font-lock-keywords): Set as default value. Support + Oracle 9i keywords. + (sql-mode-postgres-font-lock-keywords): Set as default value. + (sql-mode-linter-font-lock-keywords): Set as default value. + (sql-mode-ms-font-lock-keywords): New variable. Support Microsoft + SQLServer 2000. + (sql-mode-sybase-font-lock-keywords) + (sql-mode-interbase-font-lock-keywords) + (sql-mode-sqlite-font-lock-keywords) + (sql-mode-strong-font-lock-keywords) + (sql-mode-mysql-font-lock-keywords) + (sql-mode-db2-font-lock-keywords): New variables. Default to ANSI + keywords. + (sql-mode-font-lock-defaults): Update comment. + (sql-product-feature): New function. Returns feature associated + with a product from `sql-product-support' alist. + (sql-product-font-lock): New function. Set font-lock support based + on `sql-product'. + (sql-add-product-keywords): New function. Add font-lock rules to + product-specific keyword variables. + (sql-set-product): New function. Set `sql-product' and apply + appropriate font-lock highlighting. + (sql-highlight-product): New function. Set font-lock support based + on a product. Also set mode name to include product name. + (sql-highlight-ansi-keywords, sql-highlight-oracle-keywords) + (sql-highlight-postgres-keywords, sql-highlight-linter-keywords): + Use `sql-set-product'. + (sql-highlight-ms-keywords) + (sql-highlight-sybase-keywords) + (sql-highlight-interbase-keywords) + (sql-highlight-strong-keywords) + (sql-highlight-mysql-keywords) + (sql-highlight-sqlite-keywords) + (sql-highlight-db2-keywords): New functions. Use `sql-set-product'. + (sql-get-login): Prompt in the same order as the tokens. + (sql-mode): Uses `sql-product-highlight' and + `sql-product-font-lock'. + (sql-product-interactive): New function. Common portions of + product-specific interactive mode wrappers. + (sql-interactive-mode): Rewritten to use product features. + (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql) + (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase) + (sql-db2, sql-linter): Use `sql-product-interactive'. + (sql-connect-oracle, sql-connect-sybase, sql-connect-informix) + (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid) + (sql-connect-ingres, sql-connect-postgres) + (sql-connect-interbase, sql-connect-db2, sql-connect-linter): New + functions. Format command line parameters and invoke comint on the + appropriate interpreter. Code was in the corresponding `sql-xyz' + function before. + (sql-connect-ms): New function. Support -E argument to use + operating system credentials for authentication. + + 2003-07-13 Lars Hansen + + * desktop.el (desktop-buffer-dired-misc-data, desktop-buffer-dired): + Handle `dired-directory' being a list. + + 2003-07-13 Jesper Harder (tiny change) + + * mail/smtpmail.el (smtpmail-send-it): Create smtpmail-queue-dir if + it doesn't exist. + 2003-07-12 Richard M. Stallman * progmodes/cc-engine.el (c-declare-lang-variables): Don't use mapcan. From MAILER-DAEMON Sun Jul 13 13:29:47 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkfQ-0007CH-2C for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:29:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkfD-0006bJ-CC for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:29:31 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkef-0005A7-AD for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:28:59 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bked-000563-3W for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:28:55 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkdc-0007yf-C7 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:27:52 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:27:52 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xterm.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:29:41 -0000 Index: emacs/src/xterm.c diff -c emacs/src/xterm.c:1.800 emacs/src/xterm.c:1.801 *** emacs/src/xterm.c:1.800 Tue Jul 8 18:00:53 2003 --- emacs/src/xterm.c Sun Jul 13 13:27:51 2003 *************** *** 534,540 **** int x, y0, y1; { struct frame *f = XFRAME (WINDOW_FRAME (w)); ! XDrawLine (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), f->output_data.x->normal_gc, x, y0, x, y1); } --- 534,540 ---- int x, y0, y1; { struct frame *f = XFRAME (WINDOW_FRAME (w)); ! XDrawLine (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), f->output_data.x->normal_gc, x, y0, x, y1); } *************** *** 3988,3994 **** x_send_scroll_bar_event (window_being_scrolled, scroll_bar_end_scroll, 0, 0); w = XWINDOW (window_being_scrolled); ! if (!NILP (XSCROLL_BAR (w->vertical_scroll_bar)->dragging)) { XSCROLL_BAR (w->vertical_scroll_bar)->dragging = Qnil; --- 3988,3994 ---- x_send_scroll_bar_event (window_being_scrolled, scroll_bar_end_scroll, 0, 0); w = XWINDOW (window_being_scrolled); ! if (!NILP (XSCROLL_BAR (w->vertical_scroll_bar)->dragging)) { XSCROLL_BAR (w->vertical_scroll_bar)->dragging = Qnil; *************** *** 6725,6731 **** do this one, the right one will come later. The toolkit version doesn't seem to need this, but we need to reset it below. */ ! int dont_resize = ((f->want_fullscreen & FULLSCREEN_WAIT) && f->new_text_cols != 0); int rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, event.xconfigure.height); --- 6725,6731 ---- do this one, the right one will come later. The toolkit version doesn't seem to need this, but we need to reset it below. */ ! int dont_resize = ((f->want_fullscreen & FULLSCREEN_WAIT) && f->new_text_cols != 0); int rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, event.xconfigure.height); *************** *** 7464,7487 **** if (FRAME_X_WINDOW (f) == 0) return 1; ! /* Free up our existing icon bitmap if any. */ if (f->output_data.x->icon_bitmap > 0) x_destroy_bitmap (f, f->output_data.x->icon_bitmap); f->output_data.x->icon_bitmap = 0; if (STRINGP (file)) ! bitmap_id = x_create_bitmap_from_file (f, file); else { ! /* Create the GNU bitmap if necessary. */ if (FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id < 0) ! FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id ! = x_create_bitmap_from_data (f, gnu_bits, ! gnu_width, gnu_height); ! /* The first time we create the GNU bitmap, this increments the ref-count one extra time. ! As a result, the GNU bitmap is never freed. That way, we don't have to worry about allocating it again. */ x_reference_bitmap (f, FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id); --- 7464,7499 ---- if (FRAME_X_WINDOW (f) == 0) return 1; ! /* Free up our existing icon bitmap and mask if any. */ if (f->output_data.x->icon_bitmap > 0) x_destroy_bitmap (f, f->output_data.x->icon_bitmap); f->output_data.x->icon_bitmap = 0; if (STRINGP (file)) ! { ! #ifdef USE_GTK ! /* Use gtk_window_set_icon_from_file() if available, ! It's not restricted to bitmaps */ ! if (!xg_set_icon(f, file)) ! return 0; ! #endif /* USE_GTK */ ! bitmap_id = x_create_bitmap_from_file (f, file); ! x_create_bitmap_mask(f, bitmap_id); ! } else { ! /* Create the GNU bitmap and mask if necessary. */ if (FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id < 0) ! { ! FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id ! = x_create_bitmap_from_data (f, gnu_bits, ! gnu_width, gnu_height); ! x_create_bitmap_mask(f, FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id); ! } ! /* The first time we create the GNU bitmap and mask, this increments the ref-count one extra time. ! As a result, the GNU bitmap and mask are never freed. That way, we don't have to worry about allocating it again. */ x_reference_bitmap (f, FRAME_X_DISPLAY_INFO (f)->icon_bitmap_id); *************** *** 9296,9302 **** struct frame *f; int pixmap_id; { ! Pixmap icon_pixmap; #ifndef USE_X_TOOLKIT Window window = FRAME_OUTER_WINDOW (f); --- 9308,9314 ---- struct frame *f; int pixmap_id; { ! Pixmap icon_pixmap, icon_mask; #ifndef USE_X_TOOLKIT Window window = FRAME_OUTER_WINDOW (f); *************** *** 9306,9311 **** --- 9318,9325 ---- { icon_pixmap = x_bitmap_pixmap (f, pixmap_id); f->output_data.x->wm_hints.icon_pixmap = icon_pixmap; + icon_mask = x_bitmap_mask (f, pixmap_id); + f->output_data.x->wm_hints.icon_mask = icon_mask; } else { *************** *** 9318,9323 **** --- 9332,9338 ---- best to explicitly give up. */ #if 0 f->output_data.x->wm_hints.icon_pixmap = None; + f->output_data.x->wm_hints.icon_mask = None; #else return; #endif *************** *** 9329,9339 **** Arg al[1]; XtSetArg (al[0], XtNiconPixmap, icon_pixmap); XtSetValues (f->output_data.x->widget, al, 1); } #else /* not USE_X_TOOLKIT */ ! f->output_data.x->wm_hints.flags |= IconPixmapHint; XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints); #endif /* not USE_X_TOOLKIT */ --- 9344,9356 ---- Arg al[1]; XtSetArg (al[0], XtNiconPixmap, icon_pixmap); XtSetValues (f->output_data.x->widget, al, 1); + XtSetArg (al[0], XtNiconMask, icon_mask); + XtSetValues (f->output_data.x->widget, al, 1); } #else /* not USE_X_TOOLKIT */ ! f->output_data.x->wm_hints.flags |= (IconPixmapHint | IconMaskHint); XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints); #endif /* not USE_X_TOOLKIT */ *************** *** 10523,10529 **** || !strcmp (SDATA (value), "on"))) XSynchronize (dpyinfo->display, True); } ! { Lisp_Object value; value = display_x_get_resource (dpyinfo, --- 10540,10546 ---- || !strcmp (SDATA (value), "on"))) XSynchronize (dpyinfo->display, True); } ! { Lisp_Object value; value = display_x_get_resource (dpyinfo, From MAILER-DAEMON Sun Jul 13 13:31:56 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkhX-0001Rl-Vv for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:55 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkhE-0000wY-20 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:36 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkh1-0000fc-H1 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:23 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkgq-0000Gt-MO for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:12 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkfp-00083q-P6 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:30:09 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:30:09 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xterm.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:31:54 -0000 Index: emacs/src/xterm.h diff -c emacs/src/xterm.h:1.148 emacs/src/xterm.h:1.149 *** emacs/src/xterm.h:1.148 Sat May 24 18:10:38 2003 --- emacs/src/xterm.h Sun Jul 13 13:30:09 2003 *************** *** 126,131 **** --- 126,132 ---- struct x_bitmap_record { Pixmap pixmap; + Pixmap mask; char *file; int refcount; /* Record some info about this pixmap. */ *************** *** 976,981 **** --- 977,988 ---- unsigned int, unsigned int)); extern int x_create_bitmap_from_file P_ ((struct frame *, Lisp_Object)); extern void x_destroy_bitmap P_ ((struct frame *, int)); + extern int x_create_bitmap_mask P_ ((struct frame * , int)); + + #ifdef USE_GTK + extern int xg_set_icon P_ ((struct frame *, Lisp_Object)); + #endif /* USE_GTK */ + extern void x_real_positions P_ ((struct frame *, int *, int *)); extern int defined_color P_ ((struct frame *, char *, XColor *, int)); extern void x_set_border_pixel P_ ((struct frame *, int)); From MAILER-DAEMON Sun Jul 13 13:32:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkhN-0001JK-DJ for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkgt-0000Mn-NW for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:15 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkgm-000086-Lu for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:09 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkg7-0007jw-5C for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:30:27 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkf6-00080h-Hs for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:29:24 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:29:24 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xfns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:31:43 -0000 Index: emacs/src/xfns.c diff -c emacs/src/xfns.c:1.584 emacs/src/xfns.c:1.585 *** emacs/src/xfns.c:1.584 Sat Jul 12 17:40:39 2003 --- emacs/src/xfns.c Sun Jul 13 13:29:24 2003 *************** *** 550,555 **** --- 550,563 ---- return FRAME_X_DISPLAY_INFO (f)->bitmaps[id - 1].pixmap; } + int + x_bitmap_mask (f, id) + FRAME_PTR f; + int id; + { + return FRAME_X_DISPLAY_INFO (f)->bitmaps[id - 1].mask; + } + /* Allocate a new bitmap record. Returns index of new record. */ *************** *** 693,698 **** --- 701,707 ---- { BLOCK_INPUT; XFreePixmap (FRAME_X_DISPLAY (f), dpyinfo->bitmaps[id - 1].pixmap); + XFreePixmap (FRAME_X_DISPLAY (f), dpyinfo->bitmaps[id - 1].mask); if (dpyinfo->bitmaps[id - 1].file) { xfree (dpyinfo->bitmaps[id - 1].file); *************** *** 714,719 **** --- 723,729 ---- if (dpyinfo->bitmaps[i].refcount > 0) { XFreePixmap (dpyinfo->display, dpyinfo->bitmaps[i].pixmap); + XFreePixmap (dpyinfo->display, dpyinfo->bitmaps[i].mask); if (dpyinfo->bitmaps[i].file) xfree (dpyinfo->bitmaps[i].file); } *************** *** 721,726 **** --- 731,835 ---- } + + + /* Useful functions defined in the section + `Image type independent image structures' below. */ + + static unsigned long four_corners_best P_ ((XImage *ximg, unsigned long width, + unsigned long height)); + + static int x_create_x_image_and_pixmap P_ ((struct frame *f, int width, int height, + int depth, XImage **ximg, + Pixmap *pixmap)); + + static void x_destroy_x_image P_ ((XImage *ximg)); + + + /* Create a mask of a bitmap. Note is this not a perfect mask. + It's nicer with some borders in this context */ + + int + x_create_bitmap_mask(f, id) + struct frame *f; + int id; + { + Pixmap pixmap, mask; + XImage *ximg, *mask_img; + unsigned long width, height; + int result; + unsigned long bg; + unsigned long x, y, xp, xm, yp, ym; + GC gc; + + int depth = DefaultDepthOfScreen (FRAME_X_SCREEN (f)); + struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); + + if (!(id > 0)) + return -1; + + pixmap = x_bitmap_pixmap(f, id); + width = x_bitmap_width(f, id); + height = x_bitmap_height(f, id); + + BLOCK_INPUT; + ximg = XGetImage (FRAME_X_DISPLAY (f), pixmap, 0, 0, width, height, + ~0, ZPixmap); + + if (!ximg) + { + UNBLOCK_INPUT; + return -1; + } + + result = x_create_x_image_and_pixmap (f, width, height, 1, &mask_img, &mask); + + UNBLOCK_INPUT; + if (!result) + { + XDestroyImage(ximg); + return -1; + } + + bg = four_corners_best (ximg, width, height); + + for (y = 0; y < ximg->height; ++y) + { + for (x = 0; x < ximg->width; ++x) + { + xp = x != ximg->width - 1 ? x + 1 : 0; + xm = x != 0 ? x - 1 : ximg->width - 1; + yp = y != ximg->height - 1 ? y + 1 : 0; + ym = y != 0 ? y - 1 : ximg->height - 1; + if (XGetPixel (ximg, x, y) == bg + && XGetPixel (ximg, x, yp) == bg + && XGetPixel (ximg, x, ym) == bg + && XGetPixel (ximg, xp, y) == bg + && XGetPixel (ximg, xp, yp) == bg + && XGetPixel (ximg, xp, ym) == bg + && XGetPixel (ximg, xm, y) == bg + && XGetPixel (ximg, xm, yp) == bg + && XGetPixel (ximg, xm, ym) == bg) + XPutPixel (mask_img, x, y, 0); + else + XPutPixel (mask_img, x, y, 1); + } + } + + xassert (interrupt_input_blocked); + gc = XCreateGC (FRAME_X_DISPLAY (f), mask, 0, NULL); + XPutImage (FRAME_X_DISPLAY (f), mask, gc, mask_img, 0, 0, 0, 0, + width, height); + XFreeGC (FRAME_X_DISPLAY (f), gc); + + dpyinfo->bitmaps[id - 1].mask = mask; + + XDestroyImage (ximg); + x_destroy_x_image(mask_img); + + return 0; + } + static Lisp_Object unwind_create_frame P_ ((Lisp_Object)); static Lisp_Object unwind_create_tip_frame P_ ((Lisp_Object)); static void x_disable_image P_ ((struct frame *, struct image *)); *************** *** 975,980 **** --- 1084,1124 ---- { f->output_data.x->wait_for_wm = !NILP (new_value); } + + #ifdef USE_GTK + + /* Wrapper for gtk_window_icon_from_file() */ + + int + xg_set_icon(f, file) + struct frame *f; + Lisp_Object file; + { + struct gcpro gcpro1, gcpro2, gcpro3; + int fd; + int result = 1; + Lisp_Object found, search_path; + char *filename; + + search_path = Fcons (Vdata_directory, Vx_bitmap_file_path); + + GCPRO3 (found, search_path, file); + fd = openp (search_path, file, Qnil, &found, Qnil); + if (fd > 0) + { + filename = (char *) SDATA (found); + BLOCK_INPUT; + result = + gtk_window_set_icon_from_file (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), + filename, + NULL); + UNBLOCK_INPUT; + } + emacs_close (fd); + UNGCPRO; + return result; + } + #endif /* USE_GTK */ /* Functions called only from `x_set_frame_param' From MAILER-DAEMON Sun Jul 13 13:38:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bknf-0005ih-BC for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:38:15 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkll-0004F5-1q for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:36:17 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkjU-0003Sx-0e for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:33:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkjH-00030m-9F for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:33:43 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkiG-00088w-NJ for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:32:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:32:40 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:38:14 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.192 emacs/man/ChangeLog:1.193 *** emacs/man/ChangeLog:1.192 Mon Jul 7 23:27:46 2003 --- emacs/man/ChangeLog Sun Jul 13 13:32:40 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-13 Markus Rost + + * buffers.texi (List Buffers): Adjust to new format of *Buffer + List*. + 2003-07-07 Luc Teirlinck * info.texi (Help-Inv, Help-M, Help-Xref): Update following From MAILER-DAEMON Sun Jul 13 13:39:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkkt-00045O-2O for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:35:23 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkjP-0003Iq-Sp for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:33:51 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkj2-0002bd-Ao for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:33:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkiw-0002Ti-Pz for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:33:22 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkhw-000889-7w for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:32:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:32:20 -0400 Subject: [Emacs-diffs] Changes to emacs/man/buffers.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:35:07 -0000 Index: emacs/man/buffers.texi diff -c emacs/man/buffers.texi:1.22 emacs/man/buffers.texi:1.23 *** emacs/man/buffers.texi:1.22 Tue Feb 4 09:53:26 2003 --- emacs/man/buffers.texi Sun Jul 13 13:32:20 2003 *************** *** 146,168 **** file. The buffers are listed in the order that they were current; the buffers that were current most recently come first. ! @samp{*} at the beginning of a line indicates the buffer is ``modified.'' If several buffers are modified, it may be time to save some with @kbd{C-x s} (@pxref{Saving}). @samp{%} indicates a read-only buffer. @samp{.} marks the current buffer. Here is an example of a buffer list:@refill @smallexample ! MR Buffer Size Mode File ! -- ------ ---- ---- ---- ! .* emacs.tex 383402 Texinfo /u2/emacs/man/emacs.tex ! *Help* 1287 Fundamental ! files.el 23076 Emacs-Lisp /u2/emacs/lisp/files.el ! % RMAIL 64042 RMAIL /u/rms/RMAIL ! *% man 747 Dired /u2/emacs/man/ ! net.emacs 343885 Fundamental /u/rms/net.emacs ! fileio.c 27691 C /u2/emacs/src/fileio.c ! NEWS 67340 Text /u2/emacs/etc/NEWS ! *scratch* 0 Lisp Interaction @end smallexample @noindent --- 146,168 ---- file. The buffers are listed in the order that they were current; the buffers that were current most recently come first. ! @samp{*} in the first field of a line indicates the buffer is ``modified.'' If several buffers are modified, it may be time to save some with @kbd{C-x s} (@pxref{Saving}). @samp{%} indicates a read-only buffer. @samp{.} marks the current buffer. Here is an example of a buffer list:@refill @smallexample ! CRM Buffer Size Mode File ! . * *mail* 42 Mail ! search.c 86055 C ~/cvs/emacs/src/search.c ! % src 20959 Dired by name ~/cvs/emacs/src/ ! * .emacs 3294 Emacs-Lisp ~/.emacs ! % ~ 7677 Dired by name ~/ ! % HELLO 1607 Fundamental ~/cvs/emacs/etc/HELLO ! % NEWS 481184 Outline ~/cvs/emacs/etc/NEWS ! *scratch* 191 Lisp Interaction ! % cvs 1272 Dired by name ~/cvs/ ! * *Messages* 1554 Fundamental @end smallexample @noindent From MAILER-DAEMON Sun Jul 13 13:39:44 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bkoZ-0006Qr-KY for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:39:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bknh-0005mB-T5 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:38:17 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkjx-0003qF-KO for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:34:26 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkiJ-0001lK-1t for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:32:43 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkhI-00086p-GT for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:31:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:31:40 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:39:10 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3313 emacs/src/ChangeLog:1.3314 *** emacs/src/ChangeLog:1.3313 Sat Jul 12 17:53:56 2003 --- emacs/src/ChangeLog Sun Jul 13 13:31:39 2003 *************** *** 1,3 **** --- 1,16 ---- + 2003-07-13 Terje Rosten + + * xterm.c (x_bitmap_icon,x_wm_set_icon_pixmap): Modify to add mask, + and use the Gtk+ function gtk_window_icon_from_file if available. + + * xfns.c (x_bitmap_mask, x_create_bitmap_mask): New functions to + handle mask of bitmaps. + (x_allocate_bitmap_record, x_destroy_bitmap): Modify to handle the + mask property. + (xg_set_icon): New function, wrapper for gtk_window_icon_from_file. + + * xterm.h (xg_set_icon): New function. + 2003-07-12 Paul Eggert * unexelf.c (unexec): Consider a section to precede the .bss From MAILER-DAEMON Sun Jul 13 13:39:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bknq-0005qb-Lz for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:38:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bknD-0005RT-BZ for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:37:47 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bklm-0004Gy-U8 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:36:20 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkl9-00046O-Rf for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:35:39 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bkk9-0008Bs-9k for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:34:37 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:34:37 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:38:25 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.835 emacs/etc/NEWS:1.836 *** emacs/etc/NEWS:1.835 Sat Jul 12 17:58:37 2003 --- emacs/etc/NEWS Sun Jul 13 13:34:36 2003 *************** *** 89,94 **** --- 89,156 ---- * Changes in Emacs 21.4 + ** sql changes. + + *** The variable `sql-product' controls the highlightng of different + SQL dialects. This variable can be set globally via Customize, on a + buffer-specific basis via local variable settings, or for the current + session using the new SQL->Product submenu. (This menu replaces the + SQL->Highlighting submenu.) + + The following values are supported: + + ansi ANSI Standard (default) + db2 DB2 + informix Informix + ingres Ingres + interbase Interbase + linter Linter + ms Microsoft + mysql MySQL + oracle Oracle + postgres Postgres + solid Solid + sqlite SQLite + sybase Sybase + + The current product name will be shown on the mode line following the + SQL mode indicator. + + The technique of setting `sql-mode-font-lock-defaults' directly in + your .emacs will no longer establish the default highlighting -- Use + `sql-product' to accomplish this. + + *** The function `sql-add-product-keywords' can be used to add + font-lock rules to the product specific rules. For example, to have + all identifiers ending in "_t" under MS SQLServer treated as a type, + you would use the following line in your .emacs file: + + (sql-add-product-keywords 'ms + '("\\<\\w+_t\\>" . font-lock-type-face)) + + *** Oracle support includes keyword highlighting for Oracle 9i. Most + SQL and PL/SQL keywords are implemented. SQL*Plus commands are + highlighted in `font-lock-doc-face'. + + *** Microsoft SQLServer support has been significantly improved. + Keyword highlighting for SqlServer 2000 is implemented. + sql-interactive-mode defaults to use osql, rather than isql, because + osql flushes it's error stream more frequently. Thus error messages + are displayed when they occur rather than when the session is + terminated. + + If the username and password are not provided to `sql-ms', osql is + called with the -E command line argument to use the operating system + credentials to authenticate the user. + + *** Imenu support has been enhanced to locate tables, views, indexes, + packages, procedures, functions, triggers, sequences, rules, and + defaults. + + *** Added SQL->Start SQLi Session menu entry which calls the + appropriate sql-interactive-mode wrapper for the current setting of + `sql-product'. + ** M-x view-file and commands that use it now avoid interfering with special modes such as Tar mode. *************** *** 102,108 **** ** New minor mode, Visible mode, toggles invisibility in the current buffer. When enabled, it makes all invisible text visible. When disabled, it ! restores the previous value of `buffer-invisibility-spec'. ** New command `kill-whole-line' kills an entire line at once. By default, it is bound to C-S-. --- 164,170 ---- ** New minor mode, Visible mode, toggles invisibility in the current buffer. When enabled, it makes all invisible text visible. When disabled, it ! restores the previous value of `buffer-invisibility-spec'. ** New command `kill-whole-line' kills an entire line at once. By default, it is bound to C-S-. From MAILER-DAEMON Sun Jul 13 13:51:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bl09-0008Ft-Jb for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:51:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bkzT-0007tj-SI for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:50:27 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bkz6-0006u6-4x for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:50:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bkz4-0006nT-A8 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:50:02 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bky2-00006v-LJ for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:48:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:48:58 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/frame.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:51:08 -0000 Index: emacs/lisp/frame.el diff -c emacs/lisp/frame.el:1.202 emacs/lisp/frame.el:1.203 *** emacs/lisp/frame.el:1.202 Thu Jun 5 21:32:03 2003 --- emacs/lisp/frame.el Sun Jul 13 13:48:58 2003 *************** *** 505,510 **** --- 505,530 ---- ;;;; Creation of additional frames, and other frame miscellanea + (defun modify-all-frames-parameters (alist) + "modify all current and future frames parameters according to ALIST. + This changes `default-frame-alist' and possibly `initial-frame-alist'. + See help of `modify-frame-parameters' for more information." + (let (element) ;; temp + (dolist (frame (frame-list)) + (modify-frame-parameters frame alist)) + + (dolist (pair alist) ;; conses to add/replace + ;; initial-frame-alist needs setting only when + ;; frame-notice-user-settings is true + (and frame-notice-user-settings + (setq element (assoc (car pair) initial-frame-alist)) + (setq initial-frame-alist (delq element initial-frame-alist))) + (and (setq element (assoc (car pair) default-frame-alist)) + (setq default-frame-alist (delq element default-frame-alist))))) + (and frame-notice-user-settings + (setq initial-frame-alist (append initial-frame-alist alist))) + (setq default-frame-alist (append default-frame-alist alist))) + (defun get-other-frame () "Return some frame other than the current frame. Create one if necessary. Note that the minibuffer frame, if separate, From MAILER-DAEMON Sun Jul 13 13:54:57 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bl3l-0007Dp-2D for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:54:53 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bl32-0005ng-Rb for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:54:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bl2l-00056t-H9 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:53:52 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bl27-0003ZO-TR for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:53:11 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19bl16-0000CI-Dm for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:52:08 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Sun, 13 Jul 2003 13:52:08 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 17:54:51 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5282 emacs/lisp/ChangeLog:1.5283 *** emacs/lisp/ChangeLog:1.5282 Sun Jul 13 13:26:15 2003 --- emacs/lisp/ChangeLog Sun Jul 13 13:52:07 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-13 Juanma Barranquero + + * frame.el (modify-all-frames-parameters): Reinstalled (copyright + papers received). + 2003-07-13 Karl Eichwalder * textmodes/po.el (po-find-charset): White space at the start of the From MAILER-DAEMON Sun Jul 13 14:02:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19blAs-0000hw-58 for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:02:14 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19blAe-0000Eb-NO for emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:02:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19blAO-0008FF-Ur for emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:01:45 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19blA7-0007hX-MK for emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:01:27 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bl97-0000QO-2p for emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:00:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sun, 13 Jul 2003 14:00:25 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 18:02:12 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3314 emacs/src/ChangeLog:1.3315 *** emacs/src/ChangeLog:1.3314 Sun Jul 13 13:31:39 2003 --- emacs/src/ChangeLog Sun Jul 13 14:00:24 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-13 Richard M. Stallman + + * s/netbsd.h (START_FILES_1, END_FILES_1): Always define them. + 2003-07-13 Terje Rosten * xterm.c (x_bitmap_icon,x_wm_set_icon_pixmap): Modify to add mask, From MAILER-DAEMON Sun Jul 13 14:02:43 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19blAv-0000oT-FL for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:02:17 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19blAY-00004x-Kh for emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:01:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19blAV-0008To-0Z for emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:01:51 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bl9P-0006hR-Ad for emacs-diffs@gnu.org; Sun, 13 Jul 2003 14:00:43 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19bl8O-0000N5-HB for emacs-diffs@gnu.org; Sun, 13 Jul 2003 13:59:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Sun, 13 Jul 2003 13:59:40 -0400 Subject: [Emacs-diffs] Changes to emacs/src/s/netbsd.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Jul 2003 18:02:15 -0000 Index: emacs/src/s/netbsd.h diff -c emacs/src/s/netbsd.h:1.38 emacs/src/s/netbsd.h:1.39 *** emacs/src/s/netbsd.h:1.38 Sat Jul 12 17:45:20 2003 --- emacs/src/s/netbsd.h Sun Jul 13 13:59:40 2003 *************** *** 70,75 **** --- 70,78 ---- #ifdef HAVE_CRTIN #define START_FILES_1 /usr/lib/crti.o #define END_FILES_1 /usr/lib/crtn.o + #else + #define START_FILES_1 + #define END_FILES_1 #endif #define HAVE_WAIT_HEADER From MAILER-DAEMON Sun Jul 13 22:18:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bsv7-0007dy-0h for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:18:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bsv4-0007Up-4U for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:18:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bsut-0006yo-03 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:18:15 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bsun-0006o3-4S for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:18:09 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19bstl-0001Tr-Ra for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:17:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 13 Jul 2003 22:17:05 -0400 Subject: [Emacs-diffs] Changes to emacs/configure.in X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 02:18:26 -0000 Index: emacs/configure.in diff -c emacs/configure.in:1.342 emacs/configure.in:1.343 *** emacs/configure.in:1.342 Sat Jul 12 17:59:54 2003 --- emacs/configure.in Sun Jul 13 22:17:05 2003 *************** *** 2264,2270 **** __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ ! memset memcmp memmove difftime memcpy mempcpy mblen mbrlen) AC_CHECK_HEADERS(sys/un.h) --- 2264,2270 ---- __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ ! memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign) AC_CHECK_HEADERS(sys/un.h) From MAILER-DAEMON Sun Jul 13 22:24:00 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bt0R-0008If-Hn for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:23:59 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bt09-000800-Sp for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:23:41 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bszZ-0007k8-Ka for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:23:06 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bsz7-0007e1-L3 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:22:37 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19bsy1-0003qN-Sp for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:21:29 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 13 Jul 2003 22:21:29 -0400 Subject: [Emacs-diffs] Changes to emacs/configure X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 02:23:57 -0000 Index: emacs/configure diff -c emacs/configure:1.113 emacs/configure:1.114 *** emacs/configure:1.113 Sun Jun 29 08:05:01 2003 --- emacs/configure Sun Jul 13 22:21:29 2003 *************** *** 1662,1667 **** --- 1662,1671 ---- ## NetBSD ports *-*-netbsd* ) opsys=netbsd + if test -f /usr/lib/crti.o; then + AC_DEFINE(HAVE_CRTIN) + fi + case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; i[3456]86-*-netbsd*) machine=intel386 ;; *************** *** 3396,3402 **** echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ ! '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ --- 3400,3407 ---- echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ ! ''\ ! '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ *************** *** 3410,3417 **** cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - $ac_declaration #include int main () { --- 3415,3422 ---- cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include + $ac_declaration int main () { *************** *** 11341,11346 **** --- 11346,11352 ---- + for ac_func in gethostname getdomainname dup2 \ rename closedir mkdir rmdir sysinfo \ random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ *************** *** 11349,11355 **** __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ ! memset memcmp memmove difftime memcpy mempcpy mblen mbrlen do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 --- 11355,11361 ---- __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \ sendto recvfrom getsockopt setsockopt getsockname getpeername \ gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \ ! memset memcmp memmove difftime memcpy mempcpy mblen mbrlen posix_memalign do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 From MAILER-DAEMON Sun Jul 13 22:26:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bt2A-0002b9-VR for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:25:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bt1a-0002JG-Hc for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:25:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bt1L-0001Vz-8F for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:24:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bt0b-0008WN-NV for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:24:09 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19bszb-0004Nn-6c for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:23:07 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 13 Jul 2003 22:23:07 -0400 Subject: [Emacs-diffs] Changes to emacs/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 02:25:45 -0000 Index: emacs/ChangeLog diff -c emacs/ChangeLog:1.334 emacs/ChangeLog:1.335 *** emacs/ChangeLog:1.334 Sat Jul 12 18:00:09 2003 --- emacs/ChangeLog Sun Jul 13 22:23:07 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-13 Stefan Monnier + + * configure.in: Check for posix_memalign. + 2003-07-12 Richard M. Stallman * configure.in [netbsd systems]: Define HAVE_CRTIN properly. *************** *** 17,24 **** 2003-06-23 Dave Love ! * configure.in: Check for sys/_mbstate_t.h. Test ! XRegisterIMInstantiateCallback prototype. (AH_BOTTOM): Define DO_BLOCK_INPUT, my_strftime. 2003-06-06 Dave Love --- 21,28 ---- 2003-06-23 Dave Love ! * configure.in: Check for sys/_mbstate_t.h. ! Test XRegisterIMInstantiateCallback prototype. (AH_BOTTOM): Define DO_BLOCK_INPUT, my_strftime. 2003-06-06 Dave Love *************** *** 27,34 **** 2003-06-05 Dave Love ! * configure.in: Check for memcpy, mempcpy, mblen, mbrlen. Use ! AC_FUNC_STRFTIME, AC_STRUCT_TIMEZONE, AC_TYPE_MBSTATE_T. (NLIST_STRUCT): Don't define. (AH_BOTTOM): Define my_strftime. --- 31,38 ---- 2003-06-05 Dave Love ! * configure.in: Check for memcpy, mempcpy, mblen, mbrlen. ! Use AC_FUNC_STRFTIME, AC_STRUCT_TIMEZONE, AC_TYPE_MBSTATE_T. (NLIST_STRUCT): Don't define. (AH_BOTTOM): Define my_strftime. *************** *** 43,50 **** 2003-05-22 Dave Love ! * configure.in: Remove redundant test for term.h. Test for ! difftime. 2003-05-20 Dave Love --- 47,53 ---- 2003-05-22 Dave Love ! * configure.in: Remove redundant test for term.h. Test for difftime. 2003-05-20 Dave Love *************** *** 145,151 **** 2003-01-14 Francesco Potort,Al(B ! * configure.in (m68k-motorola-sysv): Removed (obsolete). 2003-01-07 Steven Tamm --- 148,154 ---- 2003-01-14 Francesco Potort,Al(B ! * configure.in (m68k-motorola-sysv): Remove (obsolete). 2003-01-07 Steven Tamm *************** *** 161,168 **** 2003-01-06 David Kastrup ! * Makefile.in (INSTALL_INFO): Get install-info command from ! configure. * configure.in: Add tests for install-info --- 164,170 ---- 2003-01-06 David Kastrup ! * Makefile.in (INSTALL_INFO): Get install-info command from configure. * configure.in: Add tests for install-info *************** *** 182,189 **** 2002-11-27 Dave Love * configure.in: Use AC_CHECK_DECLS, not AC_DECL_SYS_SIGLIST. ! Check for __sys_siglist too. Check for memset. Use ! AC_FUNC_GETPGRP. Add mipsel-*-linux-gnu* target. 2002-11-22 Juanma Barranquero --- 184,191 ---- 2002-11-27 Dave Love * configure.in: Use AC_CHECK_DECLS, not AC_DECL_SYS_SIGLIST. ! Check for __sys_siglist too. Check for memset. ! Use AC_FUNC_GETPGRP. Add mipsel-*-linux-gnu* target. 2002-11-22 Juanma Barranquero *************** *** 195,206 **** 2002-11-15 Dave Love ! * configure.in: Tidy up various quoting issues throughout. Use ! AC_GNU_SOURCE. (AH_BOTTOM): Fix #endif protecting config.h. Maybe include alloca.h. Define GC_SETJMP_WORKS, GC_LISP_OBJECT_ALIGNMENT. Maybe define bcopy, bzero, bcmp. ! (powerpcle-*-solaris2.5*, powerpcle-*-solaris2*): Removed (use non-existent machine file). (sys/vlimit.h, sys/resource.h, fsync, __restrict): Test for. (term.h, X11/Xaw3d/Scrollbar.h): Avoid warning from test. --- 197,208 ---- 2002-11-15 Dave Love ! * configure.in: Tidy up various quoting issues throughout. ! Use AC_GNU_SOURCE. (AH_BOTTOM): Fix #endif protecting config.h. Maybe include alloca.h. Define GC_SETJMP_WORKS, GC_LISP_OBJECT_ALIGNMENT. Maybe define bcopy, bzero, bcmp. ! (powerpcle-*-solaris2.5*, powerpcle-*-solaris2*): Remove (use non-existent machine file). (sys/vlimit.h, sys/resource.h, fsync, __restrict): Test for. (term.h, X11/Xaw3d/Scrollbar.h): Avoid warning from test. *************** *** 220,233 **** 2002-11-08 Dave Love ! * configure.in: Use AC_CONFIG_LIBOBJ_DIR and require autoconf ! 2.54. (AH_BOTTOM) [!HAVE_SIZE_T]: Typedef size_t. 2002-11-07 Miles Bader ! * Makefile.in (maybe_bootstrap): Fix shell variable usage. Handle ! separate-build-dir case. 2002-11-06 Richard M. Stallman --- 222,234 ---- 2002-11-08 Dave Love ! * configure.in: Use AC_CONFIG_LIBOBJ_DIR and require autoconf 2.54. (AH_BOTTOM) [!HAVE_SIZE_T]: Typedef size_t. 2002-11-07 Miles Bader ! * Makefile.in (maybe_bootstrap): Fix shell variable usage. ! Handle separate-build-dir case. 2002-11-06 Richard M. Stallman *************** *** 238,246 **** * configure.in: Require autoconf 2.53. Test for pty.h, sys/mman.h, sys/param.h, mremap, memmove. ! (AH_BOTTOM): Maybe include strings.h. Add local variables for ! mode. ! (AC_PROG_YACC): Deleted. (size_t): Use AC_CHECK_TYPES. (AH_TOP): Up-date copyright. --- 239,246 ---- * configure.in: Require autoconf 2.53. Test for pty.h, sys/mman.h, sys/param.h, mremap, memmove. ! (AH_BOTTOM): Maybe include strings.h. Add local variables for mode. ! (AC_PROG_YACC): Delete. (size_t): Use AC_CHECK_TYPES. (AH_TOP): Up-date copyright. *************** *** 307,313 **** (epaths-force): Insert value of gamedir into PATH_GAME. * configure.in (gamedir): Handle it like lispdir. ! (--with-game-dir option): Deleted. 2002-06-21 Pavel Jan,Bm(Bk --- 307,313 ---- (epaths-force): Insert value of gamedir into PATH_GAME. * configure.in (gamedir): Handle it like lispdir. ! (--with-game-dir option): Delete. 2002-06-21 Pavel Jan,Bm(Bk *************** *** 523,529 **** * Makefile.in: bootstrap should not delete dumped executables. (bootstrap-clean-before): New target. (bootstrap): Use bootstrap-clean-before instead of clean. ! (bootstrap-clean-after): Renamed from bootstrap-clean. Calls changed. 2001-11-24 Eli Zaretskii --- 523,529 ---- * Makefile.in: bootstrap should not delete dumped executables. (bootstrap-clean-before): New target. (bootstrap): Use bootstrap-clean-before instead of clean. ! (bootstrap-clean-after): Rename from bootstrap-clean. Calls changed. 2001-11-24 Eli Zaretskii From MAILER-DAEMON Sun Jul 13 22:43:32 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19btIj-00026A-2o for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:42:53 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19btIS-0001ev-56 for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:42:36 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19btIJ-0001Iw-2Q for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:42:27 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19btIF-00016J-4o for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:42:23 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19btHE-0004n3-Hz for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:41:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 13 Jul 2003 22:41:20 -0400 Subject: [Emacs-diffs] Changes to emacs/configure X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 02:42:51 -0000 Index: emacs/configure diff -c emacs/configure:1.114 emacs/configure:1.115 *** emacs/configure:1.114 Sun Jul 13 22:21:29 2003 --- emacs/configure Sun Jul 13 22:41:20 2003 *************** *** 1662,1671 **** ## NetBSD ports *-*-netbsd* ) opsys=netbsd - if test -f /usr/lib/crti.o; then - AC_DEFINE(HAVE_CRTIN) - fi - case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; i[3456]86-*-netbsd*) machine=intel386 ;; --- 1662,1667 ---- From MAILER-DAEMON Sun Jul 13 22:52:57 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19btRt-0000EM-LJ for mharc-emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:52:21 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19btRp-0008W2-Qg for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:52:17 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19btRl-0008RM-Op for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:52:14 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19btRk-0008Qh-VT for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:52:12 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19btQj-0004yV-7s for emacs-diffs@gnu.org; Sun, 13 Jul 2003 22:51:09 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Sun, 13 Jul 2003 22:51:09 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 02:52:19 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.313 emacs/src/alloc.c:1.314 *** emacs/src/alloc.c:1.313 Wed Jul 9 10:53:41 2003 --- emacs/src/alloc.c Sun Jul 13 22:51:08 2003 *************** *** 644,659 **** /* BLOCK_ALIGN has to be a power of 2. */ #define BLOCK_ALIGN (1 << 10) - #define BLOCK_BYTES \ - (BLOCK_ALIGN - sizeof (struct alinged_block *) - ABLOCKS_PADDING) - - /* Internal data structures and constants. */ /* Padding to leave at the end of a malloc'd block. This is to give malloc a chance to minimize the amount of memory wasted to alignment. It should be tuned to the particular malloc library used. ! The current setting is based on glibc-2.3.2. */ ! #define ABLOCKS_PADDING 0 #define ABLOCKS_SIZE 16 /* An aligned block of memory. */ --- 644,665 ---- /* BLOCK_ALIGN has to be a power of 2. */ #define BLOCK_ALIGN (1 << 10) /* Padding to leave at the end of a malloc'd block. This is to give malloc a chance to minimize the amount of memory wasted to alignment. It should be tuned to the particular malloc library used. ! On glibc-2.3.2, malloc never tries to align, so a padding of 0 is best. ! posix_memalign on the other hand would ideally prefer a value of 4 ! because otherwise, there's 1020 bytes wasted between each ablocks. ! But testing shows that those 1020 will most of the time be efficiently ! used by malloc to place other objects, so a value of 0 is still preferable ! unless you have a lot of cons&floats and virtually nothing else. */ ! #define BLOCK_PADDING 0 ! #define BLOCK_BYTES \ ! (BLOCK_ALIGN - sizeof (struct aligned_block *) - BLOCK_PADDING) ! ! /* Internal data structures and constants. */ ! #define ABLOCKS_SIZE 16 /* An aligned block of memory. */ *************** *** 676,683 **** struct ablocks *abase; /* The padding of all but the last ablock is unused. The padding of the last ablock in an ablocks is not allocated. */ ! #if ABLOCKS_PADDING ! char padding[ABLOCKS_PADDING]; #endif }; --- 682,689 ---- struct ablocks *abase; /* The padding of all but the last ablock is unused. The padding of the last ablock in an ablocks is not allocated. */ ! #if BLOCK_PADDING ! char padding[BLOCK_PADDING]; #endif }; *************** *** 688,694 **** }; /* Size of the block requested from malloc or memalign. */ ! #define ABLOCKS_BYTES (sizeof (struct ablocks) - ABLOCKS_PADDING) #define ABLOCK_ABASE(block) \ (((unsigned long) (block)->abase) <= (1 + 2 * ABLOCKS_SIZE) \ --- 694,700 ---- }; /* Size of the block requested from malloc or memalign. */ ! #define ABLOCKS_BYTES (sizeof (struct ablocks) - BLOCK_PADDING) #define ABLOCK_ABASE(block) \ (((unsigned long) (block)->abase) <= (1 + 2 * ABLOCKS_SIZE) \ *************** *** 699,706 **** --- 705,716 ---- #define ABLOCKS_BUSY(abase) ((abase)->blocks[0].abase) /* Pointer to the (not necessarily aligned) malloc block. */ + #ifdef HAVE_POSIX_MEMALIGN + #define ABLOCKS_BASE(abase) (abase) + #else #define ABLOCKS_BASE(abase) \ (1 & (int) ABLOCKS_BUSY (abase) ? abase : ((void**)abase)[-1]) + #endif /* The list of free ablock. */ static struct ablock *free_ablock; *************** *** 735,742 **** --- 745,759 ---- mallopt (M_MMAP_MAX, 0); #endif + #ifdef HAVE_POSIX_MEMALIGN + { + int err = posix_memalign (&base, BLOCK_ALIGN, ABLOCKS_BYTES); + abase = err ? (base = NULL) : base; + } + #else base = malloc (ABLOCKS_BYTES); abase = ALIGN (base, BLOCK_ALIGN); + #endif aligned = (base == abase); if (!aligned) *************** *** 757,762 **** --- 774,780 ---- } ABLOCKS_BUSY (abase) = (struct ablocks *) aligned; + eassert (0 == ((EMACS_UINT)abase) % BLOCK_ALIGN); eassert (ABLOCK_ABASE (&abase->blocks[3]) == abase); /* 3 is arbitrary */ eassert (ABLOCK_ABASE (&abase->blocks[0]) == abase); eassert (ABLOCKS_BASE (abase) == base); *************** *** 1311,1317 **** /* Number of Lisp strings in a string_block structure. The 1020 is 1024 minus malloc overhead. */ ! #define STRINGS_IN_STRING_BLOCK \ ((1020 - sizeof (struct string_block *)) / sizeof (struct Lisp_String)) /* Structure describing a block from which Lisp_String structures --- 1329,1335 ---- /* Number of Lisp strings in a string_block structure. The 1020 is 1024 minus malloc overhead. */ ! #define STRING_BLOCK_SIZE \ ((1020 - sizeof (struct string_block *)) / sizeof (struct Lisp_String)) /* Structure describing a block from which Lisp_String structures *************** *** 1320,1326 **** struct string_block { struct string_block *next; ! struct Lisp_String strings[STRINGS_IN_STRING_BLOCK]; }; /* Head and tail of the list of sblock structures holding Lisp string --- 1338,1344 ---- struct string_block { struct string_block *next; ! struct Lisp_String strings[STRING_BLOCK_SIZE]; }; /* Head and tail of the list of sblock structures holding Lisp string *************** *** 1515,1528 **** string_blocks = b; ++n_string_blocks; ! for (i = STRINGS_IN_STRING_BLOCK - 1; i >= 0; --i) { s = b->strings + i; NEXT_FREE_LISP_STRING (s) = string_free_list; string_free_list = s; } ! total_free_strings += STRINGS_IN_STRING_BLOCK; } /* Pop a Lisp_String off the free-list. */ --- 1533,1546 ---- string_blocks = b; ++n_string_blocks; ! for (i = STRING_BLOCK_SIZE - 1; i >= 0; --i) { s = b->strings + i; NEXT_FREE_LISP_STRING (s) = string_free_list; string_free_list = s; } ! total_free_strings += STRING_BLOCK_SIZE; } /* Pop a Lisp_String off the free-list. */ *************** *** 1673,1679 **** next = b->next; ! for (i = 0; i < STRINGS_IN_STRING_BLOCK; ++i) { struct Lisp_String *s = b->strings + i; --- 1691,1697 ---- next = b->next; ! for (i = 0; i < STRING_BLOCK_SIZE; ++i) { struct Lisp_String *s = b->strings + i; *************** *** 1728,1735 **** /* Free blocks that contain free Lisp_Strings only, except the first two of them. */ ! if (nfree == STRINGS_IN_STRING_BLOCK ! && total_free_strings > STRINGS_IN_STRING_BLOCK) { lisp_free (b); --n_string_blocks; --- 1746,1753 ---- /* Free blocks that contain free Lisp_Strings only, except the first two of them. */ ! if (nfree == STRING_BLOCK_SIZE ! && total_free_strings > STRING_BLOCK_SIZE) { lisp_free (b); --n_string_blocks; From MAILER-DAEMON Mon Jul 14 01:39:40 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bw3Q-0004C7-BG for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:39:16 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bw3B-0003bs-DZ for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:39:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bw38-0003aU-QN for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:38:59 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bw35-0003SW-Fs for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:38:55 -0400 Received: from eggert by subversions.gnu.org with local (Exim 4.20) id 19bw24-0000b5-AN for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:37:52 -0400 To: emacs-diffs@gnu.org Message-Id: From: Paul Eggert Date: Mon, 14 Jul 2003 01:37:52 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: eggert@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 05:39:15 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.314 emacs/src/alloc.c:1.315 *** emacs/src/alloc.c:1.314 Sun Jul 13 22:51:08 2003 --- emacs/src/alloc.c Mon Jul 14 01:37:52 2003 *************** *** 185,193 **** #ifndef HAVE_SHM ! /* Force it into data space! */ ! EMACS_INT pure[PURESIZE / sizeof (EMACS_INT)] = {0,}; #define PUREBEG (char *) pure #else /* HAVE_SHM */ --- 185,194 ---- #ifndef HAVE_SHM ! /* Force it into data space! Initialize it to a nonzero value; ! otherwise some compilers put it into BSS. */ ! EMACS_INT pure[PURESIZE / sizeof (EMACS_INT)] = {1,}; #define PUREBEG (char *) pure #else /* HAVE_SHM */ *************** *** 404,413 **** struct gcpro *gcprolist; ! /* Addresses of staticpro'd variables. */ #define NSTATICS 1280 ! Lisp_Object *staticvec[NSTATICS] = {0}; /* Index of next unused slot in staticvec. */ --- 405,415 ---- struct gcpro *gcprolist; ! /* Addresses of staticpro'd variables. Initialize it to a nonzero ! value; otherwise some compilers put it into BSS. */ #define NSTATICS 1280 ! Lisp_Object *staticvec[NSTATICS] = {&Vpurify_flag}; /* Index of next unused slot in staticvec. */ From MAILER-DAEMON Mon Jul 14 01:41:27 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19bw4H-0006F2-KL for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:40:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19bw4B-00061u-IG for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:40:03 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19bw3x-0005Gs-4G for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:39:49 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19bw3b-0004Jn-3N for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:39:27 -0400 Received: from eggert by subversions.gnu.org with local (Exim 4.20) id 19bw2a-0000c3-Ev for emacs-diffs@gnu.org; Mon, 14 Jul 2003 01:38:24 -0400 To: emacs-diffs@gnu.org Message-Id: From: Paul Eggert Date: Mon, 14 Jul 2003 01:38:24 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: eggert@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 05:40:08 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3315 emacs/src/ChangeLog:1.3316 *** emacs/src/ChangeLog:1.3315 Sun Jul 13 14:00:24 2003 --- emacs/src/ChangeLog Mon Jul 14 01:38:24 2003 *************** *** 1,3 **** --- 1,14 ---- + 2003-07-13 Paul Eggert + + GCC 3.3 (sparc) no longer puts "int foo = 0;" into data; it + puts it into BSS instead, at least on Solaris 8 and 9. + This is a valid optimization, and it may occur on other platforms, + so Emacs should not assume that initializing a static variable to + zero puts it into data. + * alloc.c (pure, staticvec): + Initialize these arrays to nonzero, so that they're not + put into BSS by that optimization. + 2003-07-13 Richard M. Stallman * s/netbsd.h (START_FILES_1, END_FILES_1): Always define them. From MAILER-DAEMON Mon Jul 14 11:34:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5Kd-0003h2-2w for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:33:39 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5Jd-0003HP-8b for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:32:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5J5-0002Oq-5z for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:32:03 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5IS-0001Wr-VH for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:31:24 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19c5HS-0003mG-5G for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:30:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Mon, 14 Jul 2003 11:30:22 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 15:33:37 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3316 emacs/src/ChangeLog:1.3317 *** emacs/src/ChangeLog:1.3316 Mon Jul 14 01:38:24 2003 --- emacs/src/ChangeLog Mon Jul 14 11:30:21 2003 *************** *** 9,14 **** --- 9,22 ---- Initialize these arrays to nonzero, so that they're not put into BSS by that optimization. + 2003-07-13 Stefan Monnier + + * alloc.c (BLOCK_PADDING): Rename from ABLOCKS_PADDING. Update users. + (lisp_align_malloc): Use posix_memalign is available. + (ABLOCKS_BASE): Use HAVE_POSIX_MEMALIGN as an optimization. + (STRING_BLOCK_SIZE): Rename from STRINGS_IN_STRING_BLOCK + for consistency. Update users. + 2003-07-13 Richard M. Stallman * s/netbsd.h (START_FILES_1, END_FILES_1): Always define them. *************** *** 41,52 **** * s/netbsd.h (START_FILES, LIB_STANDARD): Use START_FILES_1, END_FILES_1. (START_FILES_1, END_FILES_1): New macros (conditional). ! (LD_SWITCH_SYSTEM_TEMACS): Defined. * s/openbsd.h: Don't include bsd4-3.h. ! (TERMINFO): Defined. ! (LIBS_TERMCAP): Defined. ! (LD_SWITCH_SYSTEM): Defined (two definitions). * xfns.c: Include libpng/png.h instead of png.h. --- 49,60 ---- * s/netbsd.h (START_FILES, LIB_STANDARD): Use START_FILES_1, END_FILES_1. (START_FILES_1, END_FILES_1): New macros (conditional). ! (LD_SWITCH_SYSTEM_TEMACS): Define. * s/openbsd.h: Don't include bsd4-3.h. ! (TERMINFO): Define. ! (LIBS_TERMCAP): Define. ! (LD_SWITCH_SYSTEM): Define (two definitions). * xfns.c: Include libpng/png.h instead of png.h. From MAILER-DAEMON Mon Jul 14 11:57:28 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5hg-0002Ig-AU for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:28 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5he-0002Hr-6k for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5hc-0002Hc-Km for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:25 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5gp-00027x-BE for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:56:35 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5fo-0004Uf-Iv for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:55:32 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:55:32 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/minibuf.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 15:57:26 -0000 Index: emacs/lispref/minibuf.texi diff -c emacs/lispref/minibuf.texi:1.34 emacs/lispref/minibuf.texi:1.35 *** emacs/lispref/minibuf.texi:1.34 Mon Jun 30 06:41:12 2003 --- emacs/lispref/minibuf.texi Mon Jul 14 11:55:32 2003 *************** *** 84,90 **** @item @code{minibuffer-local-ns-map} is similar, except that @key{SPC} exits ! just like @key{RET}. This is used mainly for Mocklisp compatibility. @item @code{minibuffer-local-completion-map} is for permissive completion. --- 84,90 ---- @item @code{minibuffer-local-ns-map} is similar, except that @key{SPC} exits ! just like @key{RET}. @item @code{minibuffer-local-completion-map} is for permissive completion. *************** *** 520,526 **** * High-Level Completion:: Convenient special cases of completion (reading buffer name, file name, etc.) * Reading File Names:: Using completion to read file names. ! * Programmed Completion:: Finding the completions for a given file name. @end menu @node Basic Completion --- 520,526 ---- * High-Level Completion:: Convenient special cases of completion (reading buffer name, file name, etc.) * Reading File Names:: Using completion to read file names. ! * Programmed Completion:: Writing your own completion-function. @end menu @node Basic Completion *************** *** 662,667 **** --- 662,683 ---- non-@code{nil}, Emacs does not consider case significant in completion. @end defvar + @defmac lazy-completion-table var fun &rest args + This macro provides a way to initialize the variable @var{var} as a + completion table in a lazy way, not computing its actual contents + until they are first needed. You use this macro to produce a value + that you store in @var{var}. The actual computation of the proper + value is done the first time you do completion using @var{var}. It is + done by calling @var{fun} with the arguments @var{args}. The value + @var{fun} returns becomes the permanent value of @var{var}. + + @example + (defvar foo (lazy-completion-table foo make-my-alist 'global)) + (make-local-variable 'bar) + (setq bar (lazy-completion-table foo make-my-alist 'local) + @end example + @end defmac + @node Minibuffer Completion @subsection Completion and the Minibuffer *************** *** 1218,1223 **** --- 1234,1248 ---- Emacs uses programmed completion when completing file names. @xref{File Name Completion}. + + @defmac dynamic-completion-table function + This macro is a convenient way to write a function that can act as + programmed completion function. The argument @var{function} should be + a function that takes one argument, a string, and returns an alist of + possible completions of it. You can think of + @code{dynamic-completion-table} as a transducer between that interface + and the interface for programmed completion functions. + @end defmac @node Yes-or-No Queries @section Yes-or-No Queries From MAILER-DAEMON Mon Jul 14 11:57:57 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5i9-0002Rw-7A for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5i6-0002RL-Vn for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5i5-0002QX-5f for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5i4-0002PY-3U for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:52 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5h3-0004W5-Je for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:56:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:56:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/variables.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 15:57:55 -0000 Index: emacs/lispref/variables.texi diff -c emacs/lispref/variables.texi:1.40 emacs/lispref/variables.texi:1.41 *** emacs/lispref/variables.texi:1.40 Mon Jun 30 06:43:01 2003 --- emacs/lispref/variables.texi Mon Jul 14 11:56:49 2003 *************** *** 1318,1323 **** --- 1318,1329 ---- @code{nil}. @end defun + @defun buffer-local-value variable buffer + This returns the value of @var{variable} that is currently in + effect in @var{buffer}. If it has no buffer-local binding in + @var{buffer}, this function returns the default value. + @end defun + @defun buffer-local-variables &optional buffer This function returns a list describing the buffer-local variables in buffer @var{buffer}. (If @var{buffer} is omitted, the current buffer is *************** *** 1666,1680 **** to keep the old name as an @emph{alias} of the new one for compatibility. You can do this with @code{defvaralias}. ! @defun defvaralias alias-var base-var [docstring] This function defines the symbol @var{alias-var} as a variable alias for symbol @var{base-var}. This means that retrieving the value of @var{alias-var} returns the value of @var{base-var}, and changing the value of @var{alias-var} changes the value of @var{base-var}. ! If the @var{docstring} argument is present, it specifies the documentation for ! @var{alias-var}; otherwise, it has the same documentation as @var{base-var}, ! if any. @end defun @defun indirect-variable variable --- 1672,1686 ---- to keep the old name as an @emph{alias} of the new one for compatibility. You can do this with @code{defvaralias}. ! @defun defvaralias alias-var base-var &optional docstring This function defines the symbol @var{alias-var} as a variable alias for symbol @var{base-var}. This means that retrieving the value of @var{alias-var} returns the value of @var{base-var}, and changing the value of @var{alias-var} changes the value of @var{base-var}. ! If the @var{docstring} argument is non-@code{nil}, it specifies the ! documentation for @var{alias-var}; otherwise, the alias gets the same ! documentation as @var{base-var} has, if any. @end defun @defun indirect-variable variable From MAILER-DAEMON Mon Jul 14 12:04:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5oB-0004PF-Il for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5o9-0004Ob-BX for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:09 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5o7-0004NV-8F for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:07 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5o6-0004NF-Ti for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:06 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5n6-0004jm-DH for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:03:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:03:04 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/keymaps.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:04:10 -0000 Index: emacs/lispref/keymaps.texi diff -c emacs/lispref/keymaps.texi:1.42 emacs/lispref/keymaps.texi:1.43 *** emacs/lispref/keymaps.texi:1.42 Tue Feb 4 09:47:53 2003 --- emacs/lispref/keymaps.texi Mon Jul 14 12:03:04 2003 *************** *** 937,942 **** --- 937,947 ---- @end example @end defun + @defun current-active-maps + This returns the list of keymaps that would be used by the command + loop in the current circumstances to look up a key sequence. + @end defun + @defun local-key-binding key &optional accept-defaults This function returns the binding for @var{key} in the current local keymap, or @code{nil} if it is undefined there. *************** *** 1473,1478 **** --- 1478,1493 ---- These are not all the keymaps you would see in actuality. @end defun + @defun map-keymap function keymap + The function @code{map-keymap} calls @var{function} once + for each binding in @var{keymap}. It passes two arguments, + the event type and the value of the binding. If @var{keymap} + has a parent, the parent's bindings are included as well. + + This function is the cleanest way to examine all the bindings + in a keymap. + @end defun + @defun where-is-internal command &optional keymap firstonly noindirect This function is a subroutine used by the @code{where-is} command (@pxref{Help, , Help, emacs,The GNU Emacs Manual}). It returns a list *************** *** 1572,1577 **** --- 1587,1597 ---- the string as an argument when you call @code{make-keymap}, @code{make-sparse-keymap} or @code{define-prefix-command} (@pxref{Creating Keymaps}). + + @defun keymap-prompt keymap + This function returns the overall prompt string of @var{keymap}, + or @code{nil} if it has none. + @end defun The order of items in the menu is the same as the order of bindings in the keymap. Since @code{define-key} puts new bindings at the front, you From MAILER-DAEMON Mon Jul 14 12:05:40 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5p0-0004sN-8W for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:05:02 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5oL-0004Sc-Cb for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:21 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5nT-00045g-MW for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:03:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5dJ-0001Rs-8c for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:52:57 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5cI-0004MM-KL for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:51:54 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:51:54 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/text.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:05:00 -0000 Index: emacs/lispref/text.texi diff -c emacs/lispref/text.texi:1.63 emacs/lispref/text.texi:1.64 *** emacs/lispref/text.texi:1.63 Mon Jun 30 06:42:46 2003 --- emacs/lispref/text.texi Mon Jul 14 11:51:54 2003 *************** *** 2762,2779 **** @cindex keymap of character @kindex keymap @r{(text property)} The @code{keymap} property specifies an additional keymap for ! commands. The property's value for the character after point, if ! non-@code{nil}, is used for key lookup before the buffer's local map. ! (For mouse clicks, the @code{keymap} property of the character clicked ! on is the one used.) If the property value is a symbol, the symbol's ! function definition is used as the keymap. @xref{Active Keymaps}. @item local-map @kindex local-map @r{(text property)} ! This property specifies a keymap to use @emph{instead of} the buffer's ! local map. If the property value is a symbol, the symbol's function ! definition is used as the keymap. For most purposes (perhaps all ! purposes), the @code{keymap} is superior. @item syntax-table The @code{syntax-table} property overrides what the syntax table says --- 2762,2781 ---- @cindex keymap of character @kindex keymap @r{(text property)} The @code{keymap} property specifies an additional keymap for ! commands. The property's value for the character before point applies ! if it is non-@code{nil} and rear-sticky, and the property's value for ! the character after point applies if it is non-@code{nil} and ! front-sticky. When the value applies, it is used for key lookup ! before the buffer's local map. (For mouse clicks, the position of the ! click is used instead of the position of point.) If the property ! value is a symbol, the symbol's function definition is used as the ! keymap. @xref{Active Keymaps}. @item local-map @kindex local-map @r{(text property)} ! This property works like @code{keymap} except that it specifies a ! keymap to use @emph{instead of} the buffer's local map. For most ! purposes (perhaps all purposes), the @code{keymap} is superior. @item syntax-table The @code{syntax-table} property overrides what the syntax table says From MAILER-DAEMON Mon Jul 14 12:07:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5pR-0005Cz-F6 for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:05:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5n1-0003wh-1x for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:02:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5kJ-0003ZV-O7 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:00:12 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5hL-0002Do-MV for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:57:07 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5gL-0004VE-6O for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:56:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:56:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/loading.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:05:28 -0000 Index: emacs/lispref/loading.texi diff -c emacs/lispref/loading.texi:1.39 emacs/lispref/loading.texi:1.40 *** emacs/lispref/loading.texi:1.39 Fri Jun 27 12:20:28 2003 --- emacs/lispref/loading.texi Mon Jul 14 11:56:05 2003 *************** *** 286,291 **** --- 286,297 ---- tells @code{locate-library} to display the file name in the echo area. @end deffn + @defvar load-suffixes + This variable is a list of suffixes (strings) that @code{load} should + try adding to the specified file name. The default value is + @code{(".el" ".elc")}. There is no need to include the null suffix. + @end defvar + @node Loading Non-ASCII @section Loading Non-@sc{ascii} Characters From MAILER-DAEMON Mon Jul 14 12:07:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5rY-0005tO-3b for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:07:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5rV-0005rc-1c for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:07:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5or-0004ot-7H for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5eP-0001WY-Oh for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:54:05 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5dP-0004Og-77 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:53:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:53:03 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/commands.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:07:38 -0000 Index: emacs/lispref/commands.texi diff -c emacs/lispref/commands.texi:1.38 emacs/lispref/commands.texi:1.39 *** emacs/lispref/commands.texi:1.38 Tue Feb 4 09:47:52 2003 --- emacs/lispref/commands.texi Mon Jul 14 11:53:03 2003 *************** *** 90,95 **** --- 90,99 ---- these hooks, it terminates execution of the hook, and clears the hook variable to @code{nil} so as to prevent an infinite loop of errors. + A request coming into the Emacs server (@pxref{Emacs Server,,, + emacs, The GNU Emacs Manual}) runs these two hooks just as a keyboard + command does. + @node Defining Commands @section Defining Commands @cindex defining commands *************** *** 2247,2253 **** input comes in, while @code{sleep-for} pauses without updating the screen. ! @defun sit-for seconds &optional millisec nodisp This function performs redisplay (provided there is no pending input from the user), then waits @var{seconds} seconds, or until input is available. The value is @code{t} if @code{sit-for} waited the full --- 2251,2257 ---- input comes in, while @code{sleep-for} pauses without updating the screen. ! @defun sit-for seconds &optional nodisp This function performs redisplay (provided there is no pending input from the user), then waits @var{seconds} seconds, or until input is available. The value is @code{t} if @code{sit-for} waited the full *************** *** 2259,2269 **** Some systems support only a whole number of seconds; on these systems, @var{seconds} is rounded down. - The optional argument @var{millisec} specifies an additional waiting - period measured in milliseconds. This adds to the period specified by - @var{seconds}. If the system doesn't support waiting fractions of a - second, you get an error if you specify nonzero @var{millisec}. - The expression @code{(sit-for 0)} is a convenient way to request a redisplay, without any delay. @xref{Forcing Redisplay}. --- 2263,2268 ---- *************** *** 2276,2281 **** --- 2275,2284 ---- The usual purpose of @code{sit-for} is to give the user time to read text that you display. + + It is also possible to call @code{sit-for} with three arguments, + as @code{(sit-for @var{seconds} @var{millisec} @var{nodisp})}, + but that is considered obsolete. @end defun @defun sleep-for seconds &optional millisec From MAILER-DAEMON Mon Jul 14 12:08:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5fR-0001pp-7U for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:55:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5fK-0001ne-VJ for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:55:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5fH-0001mY-FT for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:55:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5fG-0001lg-MC for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:54:58 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5eG-0004QH-3n for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:53:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:53:56 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/files.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 15:55:04 -0000 Index: emacs/lispref/files.texi diff -c emacs/lispref/files.texi:1.52 emacs/lispref/files.texi:1.53 *** emacs/lispref/files.texi:1.52 Mon Jul 7 16:48:26 2003 --- emacs/lispref/files.texi Mon Jul 14 11:53:56 2003 *************** *** 1276,1282 **** @deffn Command copy-file oldname newname &optional ok-if-exists time This command copies the file @var{oldname} to @var{newname}. An ! error is signaled if @var{oldname} does not exist. If @var{time} is non-@code{nil}, then this function gives the new file the same last-modified time that the old one has. (This works on only --- 1276,1284 ---- @deffn Command copy-file oldname newname &optional ok-if-exists time This command copies the file @var{oldname} to @var{newname}. An ! error is signaled if @var{oldname} does not exist. If @var{newname} ! names a directory, it copies @var{oldname} into that directory, ! preserving its final name component. If @var{time} is non-@code{nil}, then this function gives the new file the same last-modified time that the old one has. (This works on only *************** *** 2294,2299 **** --- 2296,2306 ---- @noindent The @var{handler} then needs to figure out whether to handle @var{filename} or @var{dirname}. + + If the specified file name matches more than one handler, the one + whose match starts last in the file name gets precedence. This rule + is chosen so that handlers for jobs such as uncompression are handled + first, before handlers for jobs such as remote file access. Here are the operations that a magic file name handler gets to handle: From MAILER-DAEMON Mon Jul 14 12:08:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5rc-0005vL-9W for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:07:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5rW-0005sX-94 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:07:38 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5rR-0005qT-WD for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:07:36 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5qh-0005W6-01 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:06:47 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5pg-0004pM-4s for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:05:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:05:44 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:07:39 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.836 emacs/etc/NEWS:1.837 *** emacs/etc/NEWS:1.836 Sun Jul 13 13:34:36 2003 --- emacs/etc/NEWS Mon Jul 14 12:05:43 2003 *************** *** 1680,1710 **** ** New package benchmark.el contains simple support for convenient timing measurements of code (including the garbage collection component). * Lisp Changes in Emacs 21.4 ** The new function `window-inside-edges' returns the edges of the actual text portion of the window, not including the scroll bar or divider line, the fringes, the display margins, the header line and the mode line. ** The new functions `window-pixel-edges' and `window-inside-pixel-edges' return window edges in units of pixels, rather than columns and lines. ** The kill-buffer-hook is now permanent-local. ! ** The `local-map' property now also works at the ends of overlays and ! text-properties, according to their stickiness. This also means that it ! works with empty overlays. The same hold for the `keymap' property. ! ** `select-window' takes a second optional argument `norecord', like ! `switch-to-buffer'. `with-selected-window' is a new macro that uses ! this to temporarily switch the selected window without impacting ! the order of buffer-list. ** (map-keymap FUNCTION KEYMAP) applies the function to each binding in the keymap. ** VC changes for backends: *** (vc-switches BACKEND OPERATION) is a new function for use by backends. *** The new `find-version' backend function replaces the `destfile' --- 1680,1727 ---- ** New package benchmark.el contains simple support for convenient timing measurements of code (including the garbage collection component). + ** The default values of paragraph-start and indent-line-function have + been changed to reflect those used in Text mode rather than those used + in Indented-Text mode. + + ** If you set `query-replace-skip-read-only' non-nil, + `query-replace' and related functions simply ignore + a match if part of it has a read-only property. + * Lisp Changes in Emacs 21.4 + +++ ** The new function `window-inside-edges' returns the edges of the actual text portion of the window, not including the scroll bar or divider line, the fringes, the display margins, the header line and the mode line. + +++ ** The new functions `window-pixel-edges' and `window-inside-pixel-edges' return window edges in units of pixels, rather than columns and lines. + +++ ** The kill-buffer-hook is now permanent-local. ! +++ ! ** `select-window' takes an optional second argument `norecord', like ! `switch-to-buffer'. ! +++ ! ** The new macro `with-selected-window' temporarily switches the ! selected window without impacting the order of buffer-list. ! ! +++ ! ** The `keymap' property now also works at the ends of overlays and ! text-properties, according to their stickiness. This also means that it ! works with empty overlays. The same hold for the `local-map' property. + +++ ** (map-keymap FUNCTION KEYMAP) applies the function to each binding in the keymap. + --- ** VC changes for backends: *** (vc-switches BACKEND OPERATION) is a new function for use by backends. *** The new `find-version' backend function replaces the `destfile' *************** *** 1712,1717 **** --- 1729,1735 ---- Old code still works thanks to a default `find-version' behavior that uses the old `destfile' parameter. + +++ ** The new macro dynamic-completion-table supports using functions as a dynamic completion table. *************** *** 1724,1729 **** --- 1742,1748 ---- minibuffer, FUN will be called in the buffer from which the minibuffer was entered. dynamic-completion-table then computes the completion. + +++ ** The new macro lazy-completion-table initializes a variable as a lazy completion table. *************** *** 1736,1750 **** --- 1755,1773 ---- from which the minibuffer was entered. The return value of `lazy-completion-table' must be used to initialize the value of VAR. + +++ ** `minor-mode-list' now holds a list of minor mode commands. ** The new command `modify-all-frames-parameters' modifies parameters for all (existing and future) frames. + +++ ** `sit-for' can now be called with args (SECONDS &optional NODISP). + +++ ** New standard font-lock face `font-lock-preprocessor-face'. + +++ ** The macro `with-syntax-table' does not copy the table any more. ** The variable `face-font-rescale-alist' specifies how much larger *************** *** 2488,2493 **** --- 2511,2517 ---- You should not set it up so that both the position before and the position after are unacceptable. + +++ ** field-beginning and field-end now accept an additional optional argument, LIMIT. *************** *** 2498,2507 **** --- 2522,2534 ---- Major modes that predefine some abbrevs should always specify this flag. + --- ** Support for Mocklisp has been removed. + --- ** The function insert-string is now obsolete. + --- ** 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 *************** *** 2509,2518 **** --- 2536,2547 ---- handler whose (match-beginning 0) is the largest is chosen. In case of ties, the old "first matched" rule applies. + --- ** Dense keymaps now handle inheritance correctly. Previously a dense keymap would hide all of the simple-char key bindings of the parent keymap. + --- ** 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 *************** *** 2531,2576 **** property over the second half of the command to force (deferred) refontification of `bar' whenever the `e' is added/removed. ** describe-vector now takes a second argument `describer' which is called to print the entries' values. It defaults to `princ'. ** defcustom and other custom declarations now use a default group (the last group defined in the same file) when no :group was given. ** emacsserver now runs pre-command-hook and post-command-hook when it receives a request from emacsclient. ** The variable `recursive-load-depth-limit' has been deleted. Emacs now signals an error if the same file is loaded with more than 3 levels of nesting. ! ** The default values of paragraph-start and indent-line-function have ! been changed to reflect those used in Text mode rather than those used ! in Indented-Text mode. ! ** If a major mode function has a non-nil `no-clone-indirect' property, `clone-indirect-buffer' signals an error if you use it in that buffer. ! ** If you set `query-replace-skip-read-only' non-nil, ! `query-replace' and related functions simply ignore ! a match if part of it has a read-only property. ! ** In `replace-match', the replacement text no longer inherits properties from surrounding text. ** New function `buffer-local-value'. - - Function: buffer-local-value variable buffer - This function 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. ** 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. ** 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 --- 2560,2603 ---- property over the second half of the command to force (deferred) refontification of `bar' whenever the `e' is added/removed. + --- ** describe-vector now takes a second argument `describer' which is called to print the entries' values. It defaults to `princ'. ** defcustom and other custom declarations now use a default group (the last group defined in the same file) when no :group was given. + +++ ** emacsserver now runs pre-command-hook and post-command-hook when it receives a request from emacsclient. + --- ** The variable `recursive-load-depth-limit' has been deleted. Emacs now signals an error if the same file is loaded with more than 3 levels of nesting. ! --- ** If a major mode function has a non-nil `no-clone-indirect' property, `clone-indirect-buffer' signals an error if you use it in that buffer. ! --- ** In `replace-match', the replacement text no longer inherits properties from surrounding text. + +++ ** New function `buffer-local-value'. This function 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. + --- ** 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. + +++ ** 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 *************** *** 2578,2594 **** *** font-lock-extra-managed-props can be set to make sure those extra properties are automatically cleaned up by font-lock. ** 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. ** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' are used by define-derived-mode to make sure the mode hook for the parent mode is run at the end of the child mode. ** define-minor-mode now accepts arbitrary additional keyword arguments and simply passes them to defcustom, if applicable. ** define-derived-mode by default creates a new empty abbrev table. It does not copy abbrevs from the parent mode's abbrev table. --- 2605,2627 ---- *** font-lock-extra-managed-props can be set to make sure those extra properties are automatically cleaned up by font-lock. + --- ** 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 new function `run-mode-hooks' and the new macro `delay-mode-hooks' are used by define-derived-mode to make sure the mode hook for the parent mode is run at the end of the child mode. + +++ ** define-minor-mode now accepts arbitrary additional keyword arguments and simply passes them to defcustom, if applicable. + +++ ** define-derived-mode by default creates a new empty abbrev table. It does not copy abbrevs from the parent mode's abbrev table. *************** *** 2597,2602 **** --- 2630,2636 ---- to test/provide subfeatures. Also `provide' now checks `after-load-alist' and runs any code associated with the provided feature. + --- ** The variable `compilation-parse-errors-filename-function' can be used to transform filenames found in compilation output. *************** *** 2605,2633 **** ignore the leading dots in file names, so that file names such as `.emacs' are treated as extensionless. ** Functions `user-uid' and `user-real-uid' now return floats if the user UID doesn't fit in a Lisp integer. Function `user-full-name' accepts a float as UID parameter. ** `define-key-after' now accepts keys longer than 1. ** The local variable `no-byte-compile' in elisp files is now obeyed. ** The Emacs Lisp byte-compiler now displays the actual line and character position of errors, where possible. Additionally, the form of its warning and error messages have been brought more in line with the output of other GNU tools. ** New functions `keymap-prompt' and `current-active-maps'. ** New function `describe-buffer-bindings'. ** New vars `exec-suffixes' and `load-suffixes' used when searching for an executable resp. an elisp file. ** Variable aliases have been implemented: ! - Function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] This function defines the symbol ALIAS-VAR as a variable alias for symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR --- 2639,2675 ---- ignore the leading dots in file names, so that file names such as `.emacs' are treated as extensionless. + +++ ** Functions `user-uid' and `user-real-uid' now return floats if the user UID doesn't fit in a Lisp integer. Function `user-full-name' accepts a float as UID parameter. + --- ** `define-key-after' now accepts keys longer than 1. + +++ ** The local variable `no-byte-compile' in elisp files is now obeyed. + +++ ** The Emacs Lisp byte-compiler now displays the actual line and character position of errors, where possible. Additionally, the form of its warning and error messages have been brought more in line with the output of other GNU tools. + +++ ** New functions `keymap-prompt' and `current-active-maps'. + --- ** New function `describe-buffer-bindings'. + +++ ** New vars `exec-suffixes' and `load-suffixes' used when searching for an executable resp. an elisp file. + +++ ** Variable aliases have been implemented: ! *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] This function defines the symbol ALIAS-VAR as a variable alias for symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR *************** *** 2637,2643 **** DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has the same documentation as BASE-VAR. ! - Function: indirect-variable VARIABLE This function returns the variable at the end of the chain of aliases of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not --- 2679,2685 ---- DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has the same documentation as BASE-VAR. ! *** indirect-variable VARIABLE This function returns the variable at the end of the chain of aliases of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not *************** *** 2646,2666 **** It might be noteworthy that variables aliases work for all kinds of variables, including buffer-local and frame-local variables. ** 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. ** 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. ** The variables most-positive-fixnum and most-negative-fixnum ! have been moved from the CL package to the core. ** On MS Windows, locale-coding-system is used to interact with the OS. The Windows specific variable w32-system-coding-system, which was formerly used for that purpose is now an alias for locale-coding-system. ! ** Functions y-or-n-p, read-char, read-keysequence and alike 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. ** New packages: --- 2688,2712 ---- It might be noteworthy that variables aliases work for all kinds of variables, including buffer-local and frame-local variables. + +++ ** 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. + +++ ** 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. + +++ ** The variables most-positive-fixnum and most-negative-fixnum ! hold the largest and smallest possible integer values. + --- ** On MS Windows, locale-coding-system is used to interact with the OS. The Windows specific variable w32-system-coding-system, which was formerly used for that purpose is now an alias for locale-coding-system. ! ** 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. ** New packages: From MAILER-DAEMON Mon Jul 14 12:08:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5sS-0006IW-Or for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:08:36 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5rf-0005wo-Uu for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:07:47 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5nH-00040F-4y for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:03:16 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5kN-0003am-4P for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:00:15 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5jM-0004aE-IE for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:59:12 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:59:12 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/modes.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:08:34 -0000 Index: emacs/lispref/modes.texi diff -c emacs/lispref/modes.texi:1.56 emacs/lispref/modes.texi:1.57 *** emacs/lispref/modes.texi:1.56 Mon Jul 7 16:49:02 2003 --- emacs/lispref/modes.texi Mon Jul 14 11:59:12 2003 *************** *** 263,277 **** @cindex major mode hook Each major mode should have a @dfn{mode hook} named @code{@var{modename}-mode-hook}. The major mode command should run that ! hook, with @code{run-hooks}, as the very last thing it does. @xref{Hooks}. @item ! The major mode command may also run the hooks of some more basic modes. ! For example, @code{indented-text-mode} runs @code{text-mode-hook} as ! well as @code{indented-text-mode-hook}. It may run these other hooks ! immediately before the mode's own hook (that is, after everything else), ! or it may run them earlier. @item If something special should be done if the user switches a buffer from --- 263,280 ---- @cindex major mode hook Each major mode should have a @dfn{mode hook} named @code{@var{modename}-mode-hook}. The major mode command should run that ! hook, with @code{run-mode-hooks}, as the very last thing it does. @xref{Hooks}. @item ! The major mode command may start by calling some other major mode ! command (called the @dfn{parent mode}) and then alter some of its ! settings. A mode that does this is called a @dfn{derived mode}. The ! recommended way to define one is to use @code{define-derived-mode}, ! but this is not required. Such a mode should use ! @code{delay-mode-hooks} around its entire body, including the call to ! the parent mode command and the final call to @code{run-mode-hooks}. ! (Using @code{define-derived-mode} does this automatically.) @item If something special should be done if the user switches a buffer from *************** *** 359,365 **** @end group @end smallexample ! Here is the complete major mode function definition for Text mode: @smallexample @group --- 362,368 ---- @end group @end smallexample ! This was formerly the complete major mode function definition for Text mode: @smallexample @group *************** *** 388,394 **** @group (setq mode-name "Text") (setq major-mode 'text-mode) ! (run-hooks 'text-mode-hook)) ; @r{Finally, this permits the user to} ; @r{customize the mode with a hook.} @end group @end smallexample --- 391,397 ---- @group (setq mode-name "Text") (setq major-mode 'text-mode) ! (run-mode-hooks 'text-mode-hook)) ; @r{Finally, this permits the user to} ; @r{customize the mode with a hook.} @end group @end smallexample *************** *** 543,549 **** @group (setq imenu-case-fold-search t) (set-syntax-table lisp-mode-syntax-table) ! (run-hooks 'lisp-mode-hook)) ; @r{This permits the user to use a} ; @r{hook to customize the mode.} @end group @end smallexample --- 546,552 ---- @group (setq imenu-case-fold-search t) (set-syntax-table lisp-mode-syntax-table) ! (run-mode-hooks 'lisp-mode-hook)) ; @r{This permits the user to use a} ; @r{hook to customize the mode.} @end group @end smallexample *************** *** 819,824 **** --- 822,831 ---- way to insert the necessary hook into the rest of Emacs. Minor mode keymaps make this easier than it used to be. + @defvar minor-mode-list + The value of this variable is a list of all minor mode commands. + @end defvar + @menu * Minor Mode Conventions:: Tips for writing a minor mode. * Keymaps and Minor Modes:: How a minor mode can have its own keymap. *************** *** 981,1000 **** implementing a mode in one self-contained definition. It supports only buffer-local minor modes, not global ones. ! @defmac define-minor-mode mode doc &optional init-value mode-indicator keymap body... @tindex define-minor-mode ! This macro defines a new minor mode whose name is @var{mode} (a symbol). ! It defines a command named @var{mode} to toggle the minor mode, with @var{doc} as its documentation string. It also defines a variable named @var{mode}, which is set to @code{t} or @code{nil} by enabling or disabling the mode. The variable is initialized to @var{init-value}. ! The command named @var{mode} finishes by executing the @var{body} forms, ! if any, after it has performed the standard actions such as setting ! the variable named @var{mode}. ! ! The string @var{mode-indicator} says what to display in the mode line when the mode is enabled; if it is @code{nil}, the mode is not displayed in the mode line. --- 988,1003 ---- implementing a mode in one self-contained definition. It supports only buffer-local minor modes, not global ones. ! @defmac define-minor-mode mode doc [init-value [lighter [keymap keyword-args... body...]]] @tindex define-minor-mode ! This macro defines a new minor mode whose name is @var{mode} (a ! symbol). It defines a command named @var{mode} to toggle the minor mode, with @var{doc} as its documentation string. It also defines a variable named @var{mode}, which is set to @code{t} or @code{nil} by enabling or disabling the mode. The variable is initialized to @var{init-value}. ! The string @var{lighter} says what to display in the mode line when the mode is enabled; if it is @code{nil}, the mode is not displayed in the mode line. *************** *** 1005,1012 **** --- 1008,1044 ---- @example (@var{key-sequence} . @var{definition}) @end example + + The @var{keyword-args} consist of keywords followed by corresponding + values. A few keywords have special meanings: + + @table @code + @item :global @var{global} + If non-@code{nil} specifies that the minor mode should be global. + By default, minor modes are buffer-local. + + @item :init-value @var{init-value} + This is equivalent to specifying @var{init-value} positionally. + + @item :lighter @var{lighter} + This is equivalent to specifying @var{lighter} positionally. + + @item :keymap @var{keymap} + This is equivalent to specifying @var{keymap} positionally. + @end table + + Any other keyword arguments are passed passed directly to the + @code{defcustom} generated for the variable @var{mode}. + + The command named @var{mode} finishes by executing the @var{body} forms, + if any, after it has performed the standard actions such as setting + the variable named @var{mode}. @end defmac + @findex easy-mmode-define-minor-mode + The name @code{easy-mmode-define-minor-mode} is an alias + for this macro. + Here is an example of using @code{define-minor-mode}: @smallexample *************** *** 1028,1034 **** ("\C-\M-\^?" . (lambda () (interactive) ! (hungry-electric-delete t))))) @end smallexample @noindent --- 1060,1067 ---- ("\C-\M-\^?" . (lambda () (interactive) ! (hungry-electric-delete t)))) ! :group 'hunger) @end smallexample @noindent *************** *** 1037,1048 **** which indicates whether the mode is enabled, and a variable named @code{hungry-mode-map} which holds the keymap that is active when the mode is enabled. It initializes the keymap with key bindings for ! @kbd{C-@key{DEL}} and @kbd{C-M-@key{DEL}}. ! @findex easy-mmode-define-minor-mode ! The name @code{easy-mmode-define-minor-mode} is an alias ! for this macro. @node Mode Line Format @section Mode Line Format --- 1070,1104 ---- which indicates whether the mode is enabled, and a variable named @code{hungry-mode-map} which holds the keymap that is active when the mode is enabled. It initializes the keymap with key bindings for ! @kbd{C-@key{DEL}} and @kbd{C-M-@key{DEL}}. It puts the variable ! @code{hungry-mode} into custom group @code{hunger}. There are no ! @var{body} forms---many minor modes don't need any. + Here's an equivalent way to write it: ! @smallexample ! (define-minor-mode hungry-mode ! "Toggle Hungry mode. ! With no argument, this command toggles the mode. ! Non-null prefix argument turns on the mode. ! Null prefix argument turns off the mode. ! ! When Hungry mode is enabled, the control delete key ! gobbles all preceding whitespace except the last. ! See the command \\[hungry-electric-delete]." ! ;; The initial value. ! :initial-value nil ! ;; The indicator for the mode line. ! :lighter " Hungry" ! ;; The minor mode bindings. ! :keymap ! '(("\C-\^?" . hungry-electric-delete) ! ("\C-\M-\^?" ! . (lambda () ! (interactive) ! (hungry-electric-delete t)))) ! :group 'hunger) ! @end smallexample @node Mode Line Format @section Mode Line Format *************** *** 1885,1890 **** --- 1941,1959 ---- ("fubar" . fubar-face) @end example + The value of @var{facename} is usually a face name (a symbol), but it + can also be a list of the form + + @example + (face @var{face} @var{prop1} @var{val1} @var{prop2} @var{val2}@dots{}) + @end example + + to specify various text properties to put on the text that matches. + If you do this, be sure to add the other text property names that you + set in this way to the value of @code{font-lock-extra-managed-props} + so that the properties will also be cleared out when they are no longer + appropriate. + @item (@var{matcher} . @var{highlighter}) In this kind of element, @var{highlighter} is a list which specifies how to highlight matches found by @var{matcher}. *************** *** 2060,2065 **** --- 2129,2142 ---- textual modes. @end defvar + @defvar font-lock-extra-managed-props + Additional properties (other than @code{face}) that are being managed + by Font Lock mode. Font Lock mode normally manages only the @code{face} + property; if you want it to manage others as well, you must specify + them in a @var{facename} in @code{font-lock-keywords} as well as adding + them to this list. + @end defvar + @node Levels of Font Lock @subsection Levels of Font Lock *************** *** 2163,2168 **** --- 2240,2249 ---- @vindex font-lock-constant-face Used (typically) for constant names. + @item font-locl-preprocessor-face + @vindex font-locl-preprocessor-face + Used (typically) for preprocessor commands. + @item font-lock-warning-face @vindex font-lock-warning-face Used (typically) for constructs that are peculiar, or that greatly *************** *** 2311,2316 **** --- 2392,2409 ---- (run-hooks 'emacs-lisp-mode-hook) @end example @end defun + + @defun run-mode-hooks &rest hookvars + Like @code{run-hooks}, but is affected by the @code{delay-mode-hooks} + macro. + @end defun + + @defmac delay-mode-hooks body... + This macro executes the @var{body} forms but defers all calls to + @code{run-mode-hooks} within them until the end of @var{body}. + This macro enables a derived mode to arrange not to run + its parent modes' mode hooks until the end. + @end defmac @defun run-hook-with-args hook &rest args This function is the way to run an abnormal hook which passes arguments From MAILER-DAEMON Mon Jul 14 12:13:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5wY-0007yB-HC for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:12:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5vm-0007hj-EM for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:12:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5tN-0006mr-8v for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:09:34 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5op-0004mF-Ct for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:51 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5no-0004ka-IJ for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:03:48 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:03:48 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/internals.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:12:49 -0000 Index: emacs/lispref/internals.texi diff -c emacs/lispref/internals.texi:1.28 emacs/lispref/internals.texi:1.29 *** emacs/lispref/internals.texi:1.28 Wed Apr 23 22:01:11 2003 --- emacs/lispref/internals.texi Mon Jul 14 12:03:48 2003 *************** *** 339,344 **** --- 339,350 ---- @code{nil}, meaning there are no such messages. @end defopt + @defvar post-gc-hook + This is a normal hook that is run at the end of garbage collection. + Garbage collection is inhibited while the hook functions run, so be + careful writing them. + @end defvar + @defopt gc-cons-threshold The value of this variable is the number of bytes of storage that must be allocated for Lisp objects after one garbage collection in order to From MAILER-DAEMON Mon Jul 14 12:13:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5wv-00089n-5W for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:13:13 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5tt-0007DK-UR for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:10:05 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5sL-0006FE-TP for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:08:31 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5pj-0005RG-7z for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:05:47 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5oi-0004lq-NT for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:04:44 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/windows.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:13:11 -0000 Index: emacs/lispref/windows.texi diff -c emacs/lispref/windows.texi:1.62 emacs/lispref/windows.texi:1.63 *** emacs/lispref/windows.texi:1.62 Mon Jun 30 06:43:22 2003 --- emacs/lispref/windows.texi Mon Jul 14 12:04:44 2003 *************** *** 401,411 **** which the cursor appears and to which many commands apply. @end defun ! @defun select-window window This function makes @var{window} the selected window. The cursor then appears in @var{window} (on redisplay). The buffer being displayed in @var{window} is immediately designated the current buffer. The return value is @var{window}. @example --- 401,415 ---- which the cursor appears and to which many commands apply. @end defun ! @defun select-window window &optional norecord This function makes @var{window} the selected window. The cursor then appears in @var{window} (on redisplay). The buffer being displayed in @var{window} is immediately designated the current buffer. + Normally @var{window}'s selected buffer is moved to the front of the + buffer list, but if @var{norecord} is non-@code{nil}, the buffer list + order is unchanged. + The return value is @var{window}. @example *************** *** 432,437 **** --- 436,449 ---- alter the window selected within it, the change persists. @end defmac + @defmac with-selected-window window forms@dots{} + This macro selects @var{window} (without changing the buffer list), + executes @var{forms} in sequence, then restores the previously + selected window (unless that window is no longer alive). It is similar + to @code{save-selected-window} except that it explicitly selects + @var{window} and that it does not alter the buffer list sequence. + @end defmac + @cindex finding windows The following functions choose one of the windows on the screen, offering various criteria for the choice. *************** *** 1733,1760 **** the window and that neighbor. Since the width of the window does not include this separator, the width does not usually equal the difference between the right and left edges. ! Here is the result obtained on a typical 24-line terminal with just one ! window: @example @group (window-edges (selected-window)) ! @result{} (0 0 80 23) @end group @end example @noindent The bottom edge is at line 23 because the last line is the echo area. ! If @var{window} is at the upper left corner of its frame, then ! @var{bottom} is the same as the value of @code{(window-height)}, ! @var{right} is almost the same as the value of @code{(window-width)}, ! and @var{top} and @var{left} are zero. For example, the edges of the ! following window are @w{@samp{0 0 8 5}}. Assuming that the frame has ! more than 8 columns, the last column of the window (column 7) holds a ! border rather than text. The last row (row 4) holds the mode line, ! shown here with @samp{xxxxxxxxx}. @example @group --- 1745,1786 ---- the window and that neighbor. Since the width of the window does not include this separator, the width does not usually equal the difference between the right and left edges. + @end defun + + @defun window-inside-edges window + This is similar to @code{window-edges}, but the edge values + it returns include only the text area of the window. They + do not include the header line, mode line, scroll bar or + vertical separator, fringes, or display margins. + @end defun ! Here are the results obtained on a typical 24-line terminal with just ! one window, with menu bar enabled: @example @group (window-edges (selected-window)) ! @result{} (0 1 80 23) ! @end group ! @group ! (window-inside-edges (selected-window)) ! @result{} (0 1 80 22) @end group @end example @noindent The bottom edge is at line 23 because the last line is the echo area. + The bottom inside edge is at line 22, which is the window's mode line. ! If @var{window} is at the upper left corner of its frame, and there is ! no menu bar, then @var{bottom} returned by @code{window-edges} is the ! same as the value of @code{(window-height)}, @var{right} is almost the ! same as the value of @code{(window-width)}, and @var{top} and ! @var{left} are zero. For example, the edges of the following window ! are @w{@samp{0 0 8 5}}. Assuming that the frame has more than 8 ! columns, the last column of the window (column 7) holds a border ! rather than text. The last row (row 4) holds the mode line, shown ! here with @samp{xxxxxxxxx}. @example @group *************** *** 1772,1778 **** In the following example, let's suppose that the frame is 7 columns wide. Then the edges of the left window are @w{@samp{0 0 4 3}} ! and the edges of the right window are @w{@samp{4 0 8 3}}. @example @group --- 1798,1806 ---- In the following example, let's suppose that the frame is 7 columns wide. Then the edges of the left window are @w{@samp{0 0 4 3}} ! and the edges of the right window are @w{@samp{4 0 7 3}}. ! The inside edges of the left window are @w{@samp{0 0 3 2}}, ! and the inside edges of the right window are @w{@samp{4 0 7 2}}, @example @group *************** *** 1784,1789 **** --- 1812,1828 ---- 0 34 7 @end group @end example + + @defun window-pixel-edges window + This function is like @code{window-edges} except that, on a graphical + display, the edge values are measured in pixels instead of in + character lines and columns. + @end defun + + @defun window-inside-pixel-edges window + This function is like @code{window-inside-edges} except that, on a + graphical display, the edge values are measured in pixels instead of + in character lines and columns. @end defun @node Resizing Windows From MAILER-DAEMON Mon Jul 14 12:14:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5t1-0006af-Kz for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:09:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5r2-0005ef-VY for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:07:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5pM-00056u-0X for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:05:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5l1-0003he-Ka for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:00:55 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5k0-0004bg-Vr for emacs-diffs@gnu.org; Mon, 14 Jul 2003 11:59:52 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 11:59:52 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/os.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:09:09 -0000 Index: emacs/lispref/os.texi diff -c emacs/lispref/os.texi:1.53 emacs/lispref/os.texi:1.54 *** emacs/lispref/os.texi:1.53 Sun Apr 20 21:38:24 2003 --- emacs/lispref/os.texi Mon Jul 14 11:59:52 2003 *************** *** 917,922 **** --- 917,923 ---- @defun user-real-uid This function returns the real @sc{uid} of the user. + The value may be a floating point number. @example @group *************** *** 928,933 **** --- 929,935 ---- @defun user-uid This function returns the effective @sc{uid} of the user. + The value may be a floating point number. @end defun @node Time of Day From MAILER-DAEMON Mon Jul 14 12:15:14 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5vf-0007ff-5I for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:11:55 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5tA-0006fJ-44 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:09:20 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5sW-0006J3-Io for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:08:41 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5mR-0003n5-7c for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:02:23 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5lQ-0004gy-L3 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:01:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:01:20 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/numbers.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:11:54 -0000 Index: emacs/lispref/numbers.texi diff -c emacs/lispref/numbers.texi:1.23 emacs/lispref/numbers.texi:1.24 *** emacs/lispref/numbers.texi:1.23 Tue Feb 4 09:47:54 2003 --- emacs/lispref/numbers.texi Mon Jul 14 12:01:20 2003 *************** *** 135,140 **** --- 135,150 ---- give these arguments the name @var{number-or-marker}. When the argument value is a marker, its position value is used and its buffer is ignored. + @defvar most-positive-fixnum + The value of this variable is the largest integer that Emacs Lisp + can handle. + @end defvar + + @defvar most-negative-fixnum + The value of this variable is the smallest integer that Emacs Lisp can + handle. It is negative. + @end defvar + @node Float Basics @section Floating Point Basics From MAILER-DAEMON Mon Jul 14 12:15:16 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5yh-000117-I4 for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:15:03 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5wy-0008C6-9M for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:13:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5u1-0007Ih-Ig for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:10:13 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5oS-0004W9-Kx for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:28 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5nR-0004k9-E9 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:03:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:03:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/processes.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:15:01 -0000 Index: emacs/lispref/processes.texi diff -c emacs/lispref/processes.texi:1.28 emacs/lispref/processes.texi:1.29 *** emacs/lispref/processes.texi:1.28 Tue Feb 4 09:47:54 2003 --- emacs/lispref/processes.texi Mon Jul 14 12:03:25 2003 *************** *** 79,84 **** --- 79,94 ---- @code{substitute-in-file-name} to perform them (@pxref{File Name Expansion}). + Executing a program can also try adding suffixes to the specified + name: + + @defvar exec-suffixes + This variable is a list of suffixes (strings) to try adding to the + specified program file name. The list should include @code{""} if you + want the name to be tried exactly as specified. The default value is + system-dependent. + @end defvar + Each of the subprocess-creating functions has a @var{buffer-or-name} argument which specifies where the standard output from the program will go. It should be a buffer or a buffer name; if it is a buffer name, From MAILER-DAEMON Mon Jul 14 12:15:50 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5sO-0006GE-4V for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:08:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5oO-0004Ur-Ad for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:04:24 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5mp-0003sY-9s for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:02:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5lr-0003j6-FK for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:01:47 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5kq-0004fV-Rw for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:00:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:00:44 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/compile.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:08:30 -0000 Index: emacs/lispref/compile.texi diff -c emacs/lispref/compile.texi:1.13 emacs/lispref/compile.texi:1.14 *** emacs/lispref/compile.texi:1.13 Tue Feb 4 09:47:52 2003 --- emacs/lispref/compile.texi Mon Jul 14 12:00:44 2003 *************** *** 39,44 **** --- 39,52 ---- not work in subsequent versions if they contain character constants with modifier bits. + @vindex no-byte-compile + If you do not want a Lisp file to be compiled, ever, put a file-local + variable binding for @code{no-byte-compile} into it, like this: + + @example + ;; -*-no-byte-compile: t; -*- + @end example + @xref{Compilation Errors}, for how to investigate errors occurring in byte compilation. *************** *** 48,53 **** --- 56,62 ---- * 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. @end menu *************** *** 397,402 **** --- 406,426 ---- to what @code{eval-when-compile} does. @end defspec + @node Compiler Errors + @section Compiler Errors + @cindex compiler errors + + Byte compilation writes errors and warnings into the buffer + @samp{*Compile-Log*}. The messages include file names and line + numbers that identify the location of the problem. The usual Emacs + commands for operating on compiler diagnostics work properly on + these messages. + + However, the warnings about functions that were used but not + defined are always ``located'' at the end of the file, so these + commands won't find the places they are really used. To do that, + you must search for the function names. + @node Byte-Code Objects @section Byte-Code Function Objects @cindex compiled function From MAILER-DAEMON Mon Jul 14 12:17:00 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5xQ-00007u-3B for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:13:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5x0-0008C4-BI for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:13:18 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5sm-0006U7-AL for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:08:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5qB-0005Su-30 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:06:15 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5pA-0004oT-DN for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:05:12 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:05:12 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/buffers.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:13:42 -0000 Index: emacs/lispref/buffers.texi diff -c emacs/lispref/buffers.texi:1.27 emacs/lispref/buffers.texi:1.28 *** emacs/lispref/buffers.texi:1.27 Sun Apr 6 16:23:10 2003 --- emacs/lispref/buffers.texi Mon Jul 14 12:05:12 2003 *************** *** 938,944 **** This is a normal hook run by @code{kill-buffer} after asking all the questions it is going to ask, just before actually killing the buffer. The buffer to be killed is current when the hook functions run. ! @xref{Hooks}. @end defvar @defvar buffer-offer-save --- 938,945 ---- This is a normal hook run by @code{kill-buffer} after asking all the questions it is going to ask, just before actually killing the buffer. The buffer to be killed is current when the hook functions run. ! @xref{Hooks}. This variable is a permanent local, so its local binding ! is not cleared by changing major modes. @end defvar @defvar buffer-offer-save From MAILER-DAEMON Mon Jul 14 12:18:31 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19c5zm-0001Yr-Qo for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:16:10 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19c5wP-0007vH-Qi for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:12:41 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19c5tR-0006q3-Pk for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:09:38 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19c5qF-0005TG-MC for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:06:19 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19c5pF-0004oi-4C for emacs-diffs@gnu.org; Mon, 14 Jul 2003 12:05:17 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 14 Jul 2003 12:05:17 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 16:16:09 -0000 Index: emacs/lispref/ChangeLog diff -c emacs/lispref/ChangeLog:1.78 emacs/lispref/ChangeLog:1.79 *** emacs/lispref/ChangeLog:1.78 Mon Jul 7 16:49:40 2003 --- emacs/lispref/ChangeLog Mon Jul 14 12:05:17 2003 *************** *** 1,3 **** --- 1,55 ---- + 2003-07-14 Richard M. Stallman + + * buffers.texi (Killing Buffers): kill-buffer-hook is perm local. + + * windows.texi (Selecting Windows): New arg to select-window. + (Selecting Windows): Add with-selected-window. + (Size of Window): Add window-inside-edges, etc. + + * internals.texi (Garbage Collection): Add post-gc-hook. + + * processes.texi (Subprocess Creation): Add exec-suffixes. + + * keymaps.texi (Functions for Key Lookup): Add current-active-maps. + (Scanning Keymaps): Add map-keymaps. + (Defining Menus): Add keymap-prompt. + + * numbers.texi (Integer Basics): Add most-positive-fixnum, + most-negative-fixnum. + + * compile.texi (Byte Compilation): Explain no-byte-compile + (Compiler Errors): New node. + + * os.texi (User Identification): user-uid, user-real-uid + can return float. + + * modes.texi (Major Mode Conventions): Explain about run-mode-hooks + and about derived modes. + (Minor Modes): Add minor-mode-list. + (Defining Minor Modes): Keyword args for define-minor-mode. + (Search-based Fontification): Explain managing other properties. + (Other Font Lock Variables): Add font-lock-extra-managed-props. + (Faces for Font Lock): Add font-locl-preprocessor-face. + (Hooks): Add run-mode-hooks and delay-mode-hooks. + + * variables.texi (Creating Buffer-Local): Add buffer-local-value. + (Variable Aliases): Clarify defvralias. + + * loading.texi (Library Search): Add load-suffixes. + + * minibuf.texi (Basic Completion): Add lazy-completion-table. + (Programmed Completion): Add dynamic-completion-table. + + * files.texi (Changing Files): copy-file allows dir as NEWNAME. + (Magic File Names): Specify precedence order of handlers. + o + * commands.texi (Command Overview): Emacs server runs pre-command-hook + and post-command-hook. + (Waiting): New calling convention for sit-for. + + * text.texi (Special Properties): local-map and keymap properties + apply based on their stickiness. + 2003-07-07 Richard M. Stallman * modes.texi (Minor Mode Conventions): Specify only some kinds From MAILER-DAEMON Mon Jul 14 16:45:30 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cABM-0003F6-Tp for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:44:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cA9r-0002Q8-Kl for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:42:51 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cA9S-0002Bc-E0 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:42:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cA5m-0000Wm-NH for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:38:38 -0400 Received: from nickrob by subversions.gnu.org with local (Exim 4.20) id 19cA4m-00010V-3M for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:37:36 -0400 To: emacs-diffs@gnu.org Message-Id: From: Nick Roberts Date: Mon, 14 Jul 2003 16:37:36 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: nick@nick.uklinux.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 20:44:23 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.837 emacs/etc/NEWS:1.838 *** emacs/etc/NEWS:1.837 Mon Jul 14 12:05:43 2003 --- emacs/etc/NEWS Mon Jul 14 16:37:35 2003 *************** *** 62,76 **** ** Support for Cygwin was added. --- - ** Support for AIX 5.1 was added. - - --- ** Support for FreeBSD/Alpha has been added. --- - ** Support for BSD/OS 5.0 was added. - - --- ** Support for GNU/Linux systems on S390 machines was added. --- --- 62,70 ---- *************** *** 463,481 **** now shown as a hollow box or a thin bar. However, you can control how it blinks off by setting the variable `blink-cursor-alist'. - - +++ - ** Emacs now supports compound-text Extended Segments in X selections. - - Some versions of X, notably XFree86, use Extended Segments to encode - in X selections characters that belong to character sets which are not - part of the list of approved standard encodings defined by the - compound text spec. An example of such non-standard encodings is - BIG5. The new coding system `compound-text-with-extensions' supports - these extensions, and is now used by default for encoding and decoding - X selections. If you don't want this support, set - `selection-coding-system' to `compound-text'. - ** The new variable `x-select-request-type' controls how Emacs requests X selection. The default value is nil, which means that Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, --- 457,462 ---- *************** *** 577,594 **** `display-time-mail-directory'. +++ ! ** The new option `Info-scroll-prefer-subnodes' causes Info to behave ! like the stand-alone Info reader (from the GNU Texinfo package) as far ! as motion between nodes and their subnodes is concerned. If it is t ! Emacs behaves as before when you type SPC in a menu: it visits the ! subnode pointed to by the first menu entry. If this option is nil, ! SPC scrolls to the end of the current node, and only then goes to the ! first menu item, like the stand-alone reader does. ! ! This option was already introduced in Emacs 21.1, but wasn't ! advertised in the NEWS. ! ! The default is now nil. (Prior to Emacs 21.4, it was t.) --- ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. --- 558,564 ---- `display-time-mail-directory'. +++ ! ** The default value for `Info-scroll-prefer-subnodes' is now nil. --- ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. *************** *** 894,907 **** ** The variable `cursor-in-non-selected-windows' can now be set to any of the recognized cursor types. - +++ - ** The default values of `tooltip-delay' and `tooltip-hide-delay' - were changed. - - --- - ** On terminals whose erase-char is ^H (Backspace), Emacs - now uses normal-erase-is-backspace-mode. - --- ** The variable `auto-save-file-name-transforms' now has a third element that controls whether or not the function `make-auto-save-file-name' will --- 864,869 ---- *************** *** 1356,1366 **** which puts calls to `isearch-resume' in the command history. --- - ** When the *scratch* buffer is recreated, its mode is set from - initial-major-mode, which normally is lisp-interaction-mode, - instead of using default-major-mode. - - --- ** Lisp mode now uses font-lock-doc-face for the docstrings. --- --- 1318,1323 ---- *************** *** 1467,1483 **** * New modes and packages in 21.4 ** GDB-Script-mode is used for files like .gdbinit. - ** GDB-UI is now part of the Emacs distribution. - - This mode acts as an enhanced graphical user interface to GDB. You can - interact with GDB through the GUD buffer in the usual way, but there are also - further buffers which control the execution and describe the state of your - program. It separates the input/output of your program from that of GDB and - displays expressions and their current values in their own buffers. It also - uses features of Emacs 21 such as the display margin for breakpoints, and the - tool bar. - - Use M-x gdba to start GDB-UI. --- ** Ido mode is now part of the Emacs distribution. --- 1424,1429 ---- *************** *** 1674,1681 **** mode-lines in inverse-video. --- ! ** The obsolete C mode (c-mode.el) has been removed to avoid problems ! with Custom. cplus-md.el, which required it, has also been removed. ** New package benchmark.el contains simple support for convenient timing measurements of code (including the garbage collection component). --- 1620,1626 ---- mode-lines in inverse-video. --- ! ** cplus-md.el has been removed to avoid problems with Custom. ** New package benchmark.el contains simple support for convenient timing measurements of code (including the garbage collection component). *************** *** 2394,2404 **** properties--any specified text properties are discarded. +++ - *** The meanings of scroll-up-aggressively and scroll-down-aggressively - have been interchanged, so that the former now controls scrolling up, - and the latter now controls scrolling down. - - +++ ** New function window-body-height. This is like window-height but does not count the mode line --- 2339,2344 ---- *************** *** 2630,2639 **** to test/provide subfeatures. Also `provide' now checks `after-load-alist' and runs any code associated with the provided feature. - --- - ** The variable `compilation-parse-errors-filename-function' can - be used to transform filenames found in compilation output. - +++ ** Functions `file-name-sans-extension' and `file-name-extension' now ignore the leading dots in file names, so that file names such as --- 2570,2575 ---- *************** *** 2711,2716 **** --- 2647,2662 ---- ** New packages: + *** The new package gdb-ui.el provides an enhanced graphical interface to + GDB. You can interact with GDB through the GUD buffer in the usual way, but + there are also further buffers which control the execution and describe the + state of your program. It separates the input/output of your program from + that of GDB and displays expressions and their current values in their own + buffers. It also uses features of Emacs 21 such as the display margin for + breakpoints, and the toolbar. + + Use M-x gdba to start GDB-UI. + *** The new package syntax.el provides an efficient way to find the current syntactic context (as returned by parse-partial-sexp). *************** *** 2726,2731 **** --- 2672,2767 ---- 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. + + + * Installation changes in Emacs 21.3 + + ** Support for GNU/Linux on little-endian MIPS and on IBM S390 has + been added. + + + * Changes in Emacs 21.3 + + ** The obsolete C mode (c-mode.el) has been removed to avoid problems + with Custom. + + ** UTF-16 coding systems are available, encoding the same characters + as mule-utf-8. Coding system `utf-16-le-dos' is useful as the value + of `selection-coding-system' in MS Windows, allowing you to paste + multilingual text from the clipboard. Set it interactively with + C-x RET x or in .emacs with `(set-selection-coding-system 'utf-16-le-dos)'. + + ** There is a new language environment for UTF-8 (set up automatically + in UTF-8 locales). + + ** Translation tables are available between equivalent characters in + different Emacs charsets -- for instance `e with acute' coming from the + Latin-1 and Latin-2 charsets. User options `unify-8859-on-encoding-mode' + and `unify-8859-on-decoding-mode' respectively turn on translation + between ISO 8859 character sets (`unification') on encoding + (e.g. writing a file) and decoding (e.g. reading a file). Note that + `unify-8859-on-encoding-mode' is useful and safe, but + `unify-8859-on-decoding-mode' can cause text to change when you read + it and write it out again without edits, so it is not generally advisable. + By default `unify-8859-on-encoding-mode' is turned on. + + ** In Emacs running on the X window system, the default value of + `selection-coding-system' is now `compound-text-with-extensions'. + + If you want the old behavior, set selection-coding-system to + compound-text, which may be significantly more efficient. Using + compound-text-with-extensions seems to be necessary only for decoding + text from applications under XFree86 4.2, whose behaviour is actually + contrary to the compound text specification. + + + * Installation changes in Emacs 21.2 + + ** Support for BSD/OS 5.0 has been added. + + ** Support for AIX 5.1 was added. + + + * Changes in Emacs 21.2 + + ** Emacs now supports compound-text extended segments in X selections. + + X applications can use `extended segments' to encode characters in + compound text that belong to character sets which are not part of the + list of approved standard encodings for X, e.g. Big5. To paste + selections with such characters into Emacs, use the new coding system + compound-text-with-extensions as the value of selection-coding-system. + + ** The default values of `tooltip-delay' and `tooltip-hide-delay' + were changed. + + ** On terminals whose erase-char is ^H (Backspace), Emacs + now uses normal-erase-is-backspace-mode. + + ** When the *scratch* buffer is recreated, its mode is set from + initial-major-mode, which normally is lisp-interaction-mode, + instead of using default-major-mode. + + ** The new option `Info-scroll-prefer-subnodes' causes Info to behave + like the stand-alone Info reader (from the GNU Texinfo package) as far + as motion between nodes and their subnodes is concerned. If it is t + (the default), Emacs behaves as before when you type SPC in a menu: it + visits the subnode pointed to by the first menu entry. If this option + is nil, SPC scrolls to the end of the current node, and only then goes + to the first menu item, like the stand-alone reader does. + + This change was already in Emacs 21.1, but wasn't advertised in the + NEWS. + + + * Lisp Changes in Emacs 21.2 + + ** The meanings of scroll-up-aggressively and scroll-down-aggressively + have been interchanged, so that the former now controls scrolling up, + and the latter now controls scrolling down. + + ** The variable `compilation-parse-errors-filename-function' can + be used to transform filenames found in compilation output. * Installation Changes in Emacs 21.1 From MAILER-DAEMON Mon Jul 14 16:45:34 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cA8K-0001F1-K3 for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:41:16 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cA8C-0001AQ-Q0 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:41:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cA7p-00015m-5l for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:40:51 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cA7n-00014Y-4c for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:40:43 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19cA6l-00013X-P6 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:39:39 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Mon, 14 Jul 2003 16:39:39 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/sql.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 20:41:15 -0000 Index: emacs/lisp/progmodes/sql.el diff -c emacs/lisp/progmodes/sql.el:1.35 emacs/lisp/progmodes/sql.el:1.36 *** emacs/lisp/progmodes/sql.el:1.35 Sun Jul 13 13:19:18 2003 --- emacs/lisp/progmodes/sql.el Mon Jul 14 16:39:39 2003 *************** *** 1,10 **** ;;; sql.el --- specialized comint.el for SQL interpreters ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Maintainer: Alex Schroeder ! ;; Version: 1.8.0 ;; Keywords: comm languages processes ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?SqlMode --- 1,10 ---- ;;; sql.el --- specialized comint.el for SQL interpreters ! ;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. ;; Author: Alex Schroeder ;; Maintainer: Alex Schroeder ! ;; Version: 1.7.0 ;; Keywords: comm languages processes ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?SqlMode *************** *** 78,191 **** ;;; Bugs: ! ;; sql-ms now uses osql instead of isql. Osql flushes its error ! ;; stream more frequently than isql so that error messages are ! ;; available. There is no prompt and some output still is buffered. ! ;; This improves the interaction under Emacs but it still is somewhat ! ;; awkward. ! ! ;; Quoted identifiers are not supported for hilighting. Most ! ;; databases support the use of double quoted strings in place of ! ;; identifiers; ms (Microsoft SQLServer) also supports identifiers ! ;; enclosed within brackets []. ;; ChangeLog available on request. ! ;;; Product Support: ! ;; Set the variable `sql-product' to the product you usually use. If ! ;; you occasionally use another product, for certain files, add a ! ;; comment on the first line of the file saying ! ;; -*- sql-product: mysql -*- ! ;; See section "File Variables" in the Emacs manual for more info. ! ! ;;; Adding another product: ! ! ;; To add support for additional SQL products the following steps ! ;; must be followed ("xyz" is the name of the product in the examples ! ;; below): ! ! ;; 1) Add the product to `sql-product' choice list. ! ! ;; (const :tag "XyzDB" xyz) ! ! ;; 2) Add an entry to the `sql-product-support' list. ! ! ;; (xyz ! ;; :font-lock sql-mode-xyz-font-lock-keywords ! ;; :sqli-login (user password server database) ! ;; :sqli-connect sql-connect-xyz ! ;; :sqli-prompt-regexp "^xyzdb> " ! ;; :sqli-prompt-length 7 ! ;; :sqli-input-sender nil ! ;; :syntax-alist ((?# . "w"))) ! ! ;; 3) Add customizable values for the product interpreter and options. ! ! ;; ;; Customization for XyzDB ! ;; ! ;; (defcustom sql-xyz-program "ixyz" ! ;; "*Command to start ixyz by XyzDB." ! ;; :type 'file ! ;; :group 'SQL) ! ;; ! ;; (defcustom sql-xyz-options '("-X" "-Y" "-Z") ! ;; "*List of additional options for `sql-xyz-program'." ! ;; :type '(repeat string) ! ;; :group 'SQL) ! ! ;; 4) Add an entry to SQL->Product submenu. ! ! ;; ["XyzDB" sql-highlight-xyz-keywords ! ;; :style radio ! ;; :selected (eq sql-product 'xyz)] ! ! ;; 5) Add the font-lock specifications. At a minimum, default to ! ;; using ANSI keywords. See sql-mode-oracle-font-lock-keywords for ! ;; a more complex example. ! ! ;; (defvar sql-mode-xyz-font-lock-keywords sql-mode-ansi-font-lock-keywords ! ;; "XyzDB SQL keywords used by font-lock.") ! ! ;; 6) Add a product highlighting function. ! ! ;; (defun sql-highlight-xyz-keywords () ! ;; "Highlight XyzDB keywords." ! ;; (interactive) ! ;; (sql-set-product 'xyz)) ! ! ;; 7) Add an autoloaded SQLi function. ! ! ;; ;;;###autoload ! ;; (defun sql-xyz () ! ;; "Run ixyz by XyzDB as an inferior process." ! ;; (interactive) ! ;; (sql-product-interactive 'xyz)) ! ! ;; 8) Add a connect function which formats the command line arguments ! ;; and starts the product interpreter in a comint buffer. See the ! ;; existing connect functions for examples of the types of ! ;; processing available. ! ! ;; (defun sql-connect-xyz () ! ;; "Create comint buffer and connect to XyzDB using the login ! ;; parameters and command options." ! ;; ! ;; ;; Do something with `sql-user', `sql-password', ! ;; ;; `sql-database', and `sql-server'. ! ;; (let ((params sql-xyz-options)) ! ;; (if (not (string= "" sql-server)) ! ;; (setq params (append (list "-S" sql-server) params))) ! ;; (if (not (string= "" sql-database)) ! ;; (setq params (append (list "-D" sql-database) params))) ! ;; (if (not (string= "" sql-password)) ! ;; (setq params (append (list "-P" sql-password) params))) ! ;; (if (not (string= "" sql-user)) ! ;; (setq params (append (list "-U" sql-user) params))) ! ;; (set-buffer (apply 'make-comint "SQL" sql-xyz-program ! ;; nil params)))) ! ;; 9) Save and compile sql.el. ;;; Thanks to all the people who helped me out: --- 78,101 ---- ;;; Bugs: ! ;; Using sql-ms (isql by Microsoft): When commands with syntax errors ! ;; or execution errors are executed, there is no server feedback. ! ;; This happens in stored procedures for example. The server messages ! ;; only appear after the process is exited. This makes things ! ;; somewhat unreliable. ;; ChangeLog available on request. ! ;;; To Do: ! ;; Add better hilight support for other brands; there is a bias towards ! ;; Oracle because that's what I use at work. Anybody else just send in ! ;; your lists of reserved words, keywords and builtin functions! As ! ;; long as I don't receive any feedback, everything is hilighted with ! ;; ANSI keywords only. I received the list of ANSI keywords from a ! ;; user; if you know of any changes, let me know. ! ;; Add different hilighting levels. ;;; Thanks to all the people who helped me out: *************** *** 195,201 **** ;; Gregor Zych ;; nino ;; Berend de Boer - ;; Michael Mauger --- 105,110 ---- *************** *** 203,210 **** (require 'comint) ;; Need the following to allow GNU Emacs 19 to compile the file. ! (eval-when-compile ! (require 'regexp-opt)) (require 'custom) ;;; Allow customization --- 112,118 ---- (require 'comint) ;; Need the following to allow GNU Emacs 19 to compile the file. ! (require 'regexp-opt) (require 'custom) ;;; Allow customization *************** *** 214,220 **** :version "20.4" :group 'processes) ! ;; These four variables will be used as defaults, if set. (defcustom sql-user "" "*Default username." --- 122,128 ---- :version "20.4" :group 'processes) ! ;; These three variables will be used as defaults, if set. (defcustom sql-user "" "*Default username." *************** *** 239,383 **** :type 'string :group 'SQL) - ;; SQL Product support - (defcustom sql-product 'ansi - "*Select the SQL database product used so that buffers can be - highlighted properly when you open them." - :type '(choice (const :tag "ANSI" ansi) - (const :tag "DB2" db2) - (const :tag "Informix" informix) - (const :tag "Ingres" ingres) - (const :tag "Interbase" interbase) - (const :tag "Linter" linter) - (const :tag "Microsoft" ms) - (const :tag "MySQL" mysql) - (const :tag "Oracle" oracle) - (const :tag "PostGres" postgres) - (const :tag "Solid" solid) - (const :tag "SQLite" sqlite) - (const :tag "Sybase" sybase)) - :group 'SQL) - - (defvar sql-interactive-product nil - "Product under `sql-interactive-mode'.") - - (defvar sql-product-support - '((ansi - :font-lock sql-mode-ansi-font-lock-keywords) - (db2 - :font-lock sql-mode-db2-font-lock-keywords - :sqli-login nil - :sqli-connect sql-connect-db2 - :sqli-prompt-regexp "^db2 => " - :sqli-prompt-length 7) - (informix - :font-lock sql-mode-informix-font-lock-keywords - :sqli-login (database) - :sqli-connect sql-connect-informix - :sqli-prompt-regexp "^SQL> " - :sqli-prompt-length 5) - (ingres - :font-lock sql-mode-ingres-font-lock-keywords - :sqli-login (database) - :sqli-connect sql-connect-ingres - :sqli-prompt-regexp "^\* " - :sqli-prompt-length 2) - (interbase - :font-lock sql-mode-interbase-font-lock-keywords - :sqli-login (user password database) - :sqli-connect sql-connect-interbase - :sqli-prompt-regexp "^SQL> " - :sqli-prompt-length 5) - (linter - :font-lock sql-mode-linter-font-lock-keywords - :sqli-login (user password database server) - :sqli-connect sql-connect-linter - :sqli-prompt-regexp "^SQL>" - :sqli-prompt-length 4) - (ms - :font-lock sql-mode-ms-font-lock-keywords - :sqli-login (user password server database) - :sqli-connect sql-connect-ms - :sqli-prompt-regexp "^[0-9]*>" - :sqli-prompt-length 5 - :syntax-alist ((?@ . "w"))) - (mysql - :font-lock sql-mode-mysql-font-lock-keywords - :sqli-login (user password database server) - :sqli-connect sql-connect-mysql - :sqli-prompt-regexp "^mysql> " - :sqli-prompt-length 6) - (oracle - :font-lock sql-mode-oracle-font-lock-keywords - :sqli-login (user password database) - :sqli-connect sql-connect-oracle - :sqli-prompt-regexp "^SQL> " - :sqli-prompt-length 5 - :syntax-alist ((?$ . "w") (?# . "w"))) - (postgres - :font-lock sql-mode-postgres-font-lock-keywords - :sqli-login (database server) - :sqli-connect sql-connect-postgres - :sqli-prompt-regexp "^.*> *" - :sqli-prompt-length 5) - (solid - :font-lock sql-mode-solid-font-lock-keywords - :sqli-login (user password server) - :sqli-connect sql-connect-solid - :sqli-prompt-regexp "^" - :sqli-prompt-length 0) - (sqlite - :font-lock sql-mode-sqlite-font-lock-keywords - :sqli-login (user password server database) - :sqli-connect sql-connect-sqlite - :sqli-prompt-regexp "^sqlite> " - :sqli-prompt-length 8) - (sybase - :font-lock sql-mode-sybase-font-lock-keywords - :sqli-login (server user password database) - :sqli-connect sql-connect-sybase - :sqli-prompt-regexp "^SQL> " - :sqli-prompt-length 5 - :syntax-alist ((?@ . "w"))) - ) - "This variable contains a list of product features for each of the - SQL products handled by `sql-mode'. Without an entry in this list a - product will not be properly highlighted and will not support - `sql-interactive-mode'. - - Each element in the list is in the following format: - - \(PRODUCT FEATURE VALUE ...) - - where PRODUCT is the appropriate value of `sql-product'. The product - name is then followed by FEATURE-VALUE pairs. If a FEATURE is not - specified, its VALUE is treated as nil. FEATURE must be one of the - following: - - :font-lock name of the variable containing the product - specific font lock highlighting patterns. - - :sqli-login a list of login parameters (i.e., user, - password, database and server) needed to - connect to the database. - - :sqli-connect the name of a function which accepts no - parameters that will use the values of - `sql-user', `sql-password', - `sql-database' and `sql-server' to open a - comint buffer and connect to the - database. Do product specific - configuration of comint in this function. - - :sqli-prompt-regexp a regular expression string that matches the - prompt issued by the product interpreter. - - :sqli-prompt-length the length of the prompt on the line. - - :syntax-alist an alist of syntax table entries to enable - special character treatment by font-lock and - imenu. ") - ;; misc customization of sql.el behaviour (defcustom sql-electric-stuff nil --- 147,152 ---- *************** *** 408,422 **** ;; imenu support for sql-mode. (defvar sql-imenu-generic-expression ! ;; Items are in reverse order because they are rendered in reverse. ! '(("Rules/Defaults" "^\\s-*create\\s-+\\(rule\\|default\\)\\s-+\\(\\w+\\)" 2) ! ("Sequences" "^\\s-*create\\s-+sequence\\s-+\\(\\w+\\)" 1) ! ("Triggers" "^\\s-*\\(create\\s-+\\(or\\s-+replace\\s-+\\)?\\)?trigger\\s-+\\(\\w+\\)" 3) ! ("Functions" "^\\s-*\\(create\\s-+\\(or\\s-+replace\\s-+\\)?\\)?function\\s-+\\(\\w+\\)" 3) ! ("Procedures" "^\\s-*\\(create\\s-+\\(or\\s-+replace\\s-+\\)?\\)?proc\\(edure\\)?\\s-+\\(\\w+\\)" 4) ! ("Packages" "^\\s-*create\\s-+\\(or\\s-+replace\\s-+\\)?package\\s-+\\(body\\s-+\\)?\\(\\w+\\)" 3) ! ("Indexes" "^\\s-*create\\s-+index\\s-+\\(\\w+\\)" 1) ! ("Tables/Views" "^\\s-*create\\s-+\\(\\(global\\s-+\\)?\\(temporary\\s-+\\)?table\\|view\\)\\s-+\\(\\w+\\)" 4)) "Define interesting points in the SQL buffer for `imenu'. This is used to set `imenu-generic-expression' when SQL mode is --- 177,184 ---- ;; imenu support for sql-mode. (defvar sql-imenu-generic-expression ! '(("Tables" "^\\s-*create\\s-+table\\s-+\\(\\w+\\)" 1) ! ("Indexes" "^\\s-*create\\s-+index\\s-+\\(\\w+\\)" 1)) "Define interesting points in the SQL buffer for `imenu'. This is used to set `imenu-generic-expression' when SQL mode is *************** *** 512,518 **** :group 'SQL) (defcustom sql-sqlite-options nil ! "*List of additional options for `sql-sqlite-program'. The following list of options is reported to make things work on Windows: \"-C\" \"-t\" \"-f\" \"-n\"." :type '(repeat string) --- 274,280 ---- :group 'SQL) (defcustom sql-sqlite-options nil ! "*List of additional options for `sql-mysql-program'. The following list of options is reported to make things work on Windows: \"-C\" \"-t\" \"-f\" \"-n\"." :type '(repeat string) *************** *** 591,598 **** ;; Customization for Microsoft ! (defcustom sql-ms-program "osql" ! "*Command to start osql by Microsoft. Starts `sql-interactive-mode' after doing some setup. --- 353,360 ---- ;; Customization for Microsoft ! (defcustom sql-ms-program "isql" ! "*Command to start isql by Microsoft. Starts `sql-interactive-mode' after doing some setup. *************** *** 706,717 **** (defvar sql-prompt-regexp nil "Prompt used to initialize `comint-prompt-regexp'. ! You can change `sql-prompt-regexp' on `sql-interactive-mode-hook'.") (defvar sql-prompt-length 0 "Prompt used to set `left-margin' in `sql-interactive-mode'. ! You can change `sql-prompt-length' on `sql-interactive-mode-hook'.") (defvar sql-alternate-buffer-name nil "Buffer-local string used to possibly rename the SQLi buffer. --- 468,479 ---- (defvar sql-prompt-regexp nil "Prompt used to initialize `comint-prompt-regexp'. ! You can change `comint-prompt-regexp' on `sql-interactive-mode-hook'.") (defvar sql-prompt-length 0 "Prompt used to set `left-margin' in `sql-interactive-mode'. ! You can change it on `sql-interactive-mode-hook'.") (defvar sql-alternate-buffer-name nil "Buffer-local string used to possibly rename the SQLi buffer. *************** *** 756,815 **** (get-buffer-process sql-buffer))] ["Send Region" sql-send-region (and (or (and (boundp 'mark-active); Emacs mark-active) ! (mark t)); XEmacs (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] ["Send Buffer" sql-send-buffer (and (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] - ["--" nil nil] - ["Start SQLi session" sql-product-interactive (sql-product-feature :sqli-connect)] ["Show SQLi buffer" sql-show-sqli-buffer t] ["Set SQLi buffer" sql-set-sqli-buffer t] ["Pop to SQLi buffer after send" sql-toggle-pop-to-buffer-after-send-region :style toggle :selected sql-pop-to-buffer-after-send-region] ! ["--" nil nil] ! ("Product" ! ["ANSI" sql-highlight-ansi-keywords ! :style radio ! :selected (eq sql-product 'ansi)] ! ["DB2" sql-highlight-db2-keywords ! :style radio ! :selected (eq sql-product 'db2)] ! ["Informix" sql-highlight-informix-keywords ! :style radio ! :selected (eq sql-product 'informix)] ! ["Ingres" sql-highlight-ingres-keywords ! :style radio ! :selected (eq sql-product 'ingres)] ! ["Interbase" sql-highlight-interbase-keywords ! :style radio ! :selected (eq sql-product 'interbase)] ! ["Linter" sql-highlight-linter-keywords ! :style radio ! :selected (eq sql-product 'linter)] ! ["Microsoft" sql-highlight-ms-keywords ! :style radio ! :selected (eq sql-product 'ms)] ! ["MySQL" sql-highlight-mysql-keywords ! :style radio ! :selected (eq sql-product 'mysql)] ! ["Oracle" sql-highlight-oracle-keywords ! :style radio ! :selected (eq sql-product 'oracle)] ! ["Postgres" sql-highlight-postgres-keywords ! :style radio ! :selected (eq sql-product 'postgres)] ! ["Solid" sql-highlight-solid-keywords ! :style radio ! :selected (eq sql-product 'solid)] ! ["SQLite" sql-highlight-sqlite-keywords ! :style radio ! :selected (eq sql-product 'sqlite)] ! ["Sybase" sql-highlight-sybase-keywords ! :style radio ! :selected (eq sql-product 'sybase)] ))) ;; easy menu for sql-interactive-mode. --- 518,539 ---- (get-buffer-process sql-buffer))] ["Send Region" sql-send-region (and (or (and (boundp 'mark-active); Emacs mark-active) ! (mark)); XEmacs (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] ["Send Buffer" sql-send-buffer (and (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] ["Show SQLi buffer" sql-show-sqli-buffer t] ["Set SQLi buffer" sql-set-sqli-buffer t] ["Pop to SQLi buffer after send" sql-toggle-pop-to-buffer-after-send-region :style toggle :selected sql-pop-to-buffer-after-send-region] ! ("Highlighting" ! ["ANSI SQL keywords" sql-highlight-ansi-keywords t] ! ["Oracle keywords" sql-highlight-oracle-keywords t] ! ["Postgres keywords" sql-highlight-postgres-keywords t] ! ["Linter keywords" sql-highlight-linter-keywords t] ))) ;; easy menu for sql-interactive-mode. *************** *** 827,848 **** "Abbrev table used in `sql-mode' and `sql-interactive-mode'.") (if sql-mode-abbrev-table () ! (let ((nargs (cdr (subr-arity (symbol-function 'define-abbrev)))) ! d-a) ! ;; In Emacs 21.3+, provide SYSTEM-FLAG to define-abbrev. ! (setq d-a ! (if (>= nargs 6) ! '(lambda (name expansion) (define-abbrev sql-mode-abbrev-table name expansion nil 0 t)) ! '(lambda (name expansion) (define-abbrev sql-mode-abbrev-table name expansion)))) ! ! (define-abbrev-table 'sql-mode-abbrev-table nil) ! (funcall d-a "ins" "insert") ! (funcall d-a "upd" "update") ! (funcall d-a "del" "delete") ! (funcall d-a "sel" "select") ! (funcall d-a "proc" "procedure") ! (funcall d-a "func" "function") ! (funcall d-a "cr" "create"))) ;; Syntax Table --- 551,562 ---- "Abbrev table used in `sql-mode' and `sql-interactive-mode'.") (if sql-mode-abbrev-table () ! (let ((wrapper)) ! (define-abbrev-table 'sql-mode-abbrev-table ()) ! (define-abbrev sql-mode-abbrev-table "ins" "insert") ! (define-abbrev sql-mode-abbrev-table "upd" "update") ! (define-abbrev sql-mode-abbrev-table "del" "delete") ! (define-abbrev sql-mode-abbrev-table "sel" "select"))) ;; Syntax Table *************** *** 867,1119 **** ;; Font lock support ! (defvar sql-mode-font-lock-object-name ! (list (concat "^\\s-*\\(create\\(\\s-+or\\s-+replace\\)?\\|drop\\|alter\\)?\\s-+" ! "\\(\\(global\\s-+\\)?\\(temporary\\s-+\\)?table\\|view\\|package\\(\\s-+body\\)?\\|" ! "proc\\(edure\\)?\\|function\\|trigger\\|sequence\\|rule\\|default\\)\\s-+\\(\\w+\\)") ! 8 'font-lock-function-name-face) ! ! "Pattern to match the names of top-level objects in a CREATE, ! DROP or ALTER statement. ! ! The format of variable should be a valid `font-lock-keywords' ! entry.") ! (defvar sql-mode-ansi-font-lock-keywords (let ((ansi-keywords (eval-when-compile (concat "\\b" (regexp-opt '( - "authorization" "avg" "begin" "close" "cobol" "commit" "continue" "count" "declare" "double" "end" "escape" "exec" "fetch" "foreign" "fortran" "found" "go" "goto" "indicator" "key" "language" "max" "min" "module" "numeric" "open" "pascal" "pli" "precision" "primary" "procedure" "references" "rollback" ! "schema" "section" "some" "sqlcode" "sqlerror" "sum" "work" ! ! ) t) "\\b"))) (ansi-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( - "all" "and" "any" "as" "asc" "between" "by" "check" "create" "current" "default" "delete" "desc" "distinct" "exists" "float" "for" "from" "grant" "group" "having" "in" "insert" "into" "is" "like" "not" "null" "of" "on" "option" "or" "order" "privileges" "public" "select" "set" "table" "to" "union" "unique" ! "update" "user" "values" "view" "where" "with" ! ! ) t) "\\b"))) (ansi-types (eval-when-compile (concat "\\b" (regexp-opt '( - ;; ANSI Keywords that look like types "character" "cursor" "dec" "int" "real" ;; ANSI Reserved Word that look like types ! "char" "integer" "smallint" ! ! ) t) "\\b")))) ! (list (cons ansi-keywords 'font-lock-keyword-face) (cons ansi-reserved-words 'font-lock-keyword-face) ! (cons ansi-types 'font-lock-type-face))) ! "ANSI SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-ansi-font-lock-keywords. You may want to ! add functions and PL/SQL keywords.") ! ! (defvar sql-mode-oracle-font-lock-keywords (let ((oracle-keywords (eval-when-compile (concat "\\b" (regexp-opt '( ! ;; Oracle (+ANSI) SQL keywords ! ! ; ANSI keywords ! "authorization" "avg" "begin" "close" "cobol" "commit" ! "continue" "count" "declare" "double" "end" "escape" ! "exec" "fetch" "foreign" "fortran" "found" "go" "goto" "indicator" ! "key" "language" "max" "min" "module" "numeric" "open" "pascal" "pli" ! "precision" "primary" "procedure" "references" "rollback" ! "schema" "section" "some" "sqlcode" "sqlerror" "sum" "work" ! ! ; ANSI reserved words ! "all" "and" "any" "as" "asc" "between" "by" "check" "create" ! "current" "default" "delete" "desc" "distinct" "exists" "float" "for" ! "from" "grant" "group" "having" "in" "insert" "into" "is" ! "like" "not" "null" "of" "on" "option" "or" "order" "privileges" ! "public" "select" "set" "table" "to" "union" "unique" ! "update" "user" "values" "view" "where" "with" ! ! "access" "add" "admin" "after" "allocate" "alter" "analyze" "archive" ! "archivelog" "audit" "authid" "backup" "become" "before" "block" ! "body" "cache" "cancel" "cascade" "change" "checkpoint" "cluster" ! "comment" "compile" "compress" "compute" "connect" "constraint" ! "constraints" "contents" "controlfile" "cross" "currval" "cycle" ! "database" "datafile" "dba" "deterministic" "disable" "dismount" ! "drop" "dump" "each" "else" "else" "elsif" "enable" "events" "except" ! "exceptions" "exclusive" "execute" "exit" "explain" "extent" ! "externally" "false" "file" "flush" "force" "freelist" "freelists" ! "full" "function" "global" "grant" "groups" "identified" "if" ! "immediate" "including" "increment" "index" "initial" "initrans" ! "inner" "instance" "intersect" "join" "layer" "left" "level" "link" ! "lists" "lock" "logfile" "long" "loop" "manage" "manual" ! "maxdatafiles" "maxextents" "maxinistances" "maxlogfiles" ! "maxloghistory" "maxlogmembers" "maxtrans" "maxvalue" "merge" ! "minextents" "minus" "minvalue" "mode" "modify" "mount" "natural" ! "new" "next" "nextval" "noarchivelog" "noaudit" "nocache" "nocompress" ! "nocycle" "nomaxvalue" "nominvalue" "none" "noorder" "noresetlogs" ! "normal" "nosort" "nowait" "off" "offline" "old" "online" "only" ! "optimal" "others" "out" "outer" "over" "own" "package" "parallel" ! "parallel_enable" "pctfree" "pctincrease" "pctused" "plan" "pragma" ! "preserve" "prior" "private" "profile" "quota" "raise" "raw" "read" ! "recover" "referencing" "rename" "replace" "resetlogs" "resource" ! "restrict_references" "restricted" "return" "returning" "reuse" ! "revoke" "right" "rnds" "rnps" "role" "roles" "row" "rowlabel" ! "rownum" "rows" "savepoint" "scn" "segment" "sequence" "session" ! "share" "shared" "size" "snapshot" "sort" "statement_id" "statistics" ! "stop" "storage" "subtype" "successful" "switch" "synonym" "sysdate" ! "system" "tables" "tablespace" "temporary" "then" "thread" "tracing" ! "transaction" "trigger" "triggers" "true" "truncate" "type" "uid" ! "under" "unlimited" "until" "use" "using" "validate" "when" "while" ! "wnds" "wnps" "write" ! ! ) t) "\\b"))) (oracle-warning-words (eval-when-compile (concat "\\b" (regexp-opt '( ! ;; PLSQL defined exceptions ! ! "access_into_null" "case_not_found" "collection_is_null" ! "cursor_already_open" "dup_val_on_index" "invalid_cursor" "invalid_number" "login_denied" "no_data_found" "not_logged_on" ! "program_error" "rowtype_mismatch" "self_is_null" "storage_error" ! "subscript_beyond_count" "subscript_outside_limit" "sys_invalid_rowid" ! "timeout_on_resource" "too_many_rows" "value_error" "zero_divide" ! "exception" "notfound" ! ! ) t) "\\b"))) ! ! (oracle-sqlplus-commands ! (eval-when-compile ! (concat "^\\(\\(" (regexp-opt '( ! ;; SQL*Plus commands ! ! "@" "@@" "accept" "append" "archive" "attribute" "break" ! "btitle" "change" "clear" "column" "connect" "copy" "define" ! "del" "describe" "disconnect" "edit" "execute" "exit" "get" "help" ! "host" "input" "list" "password" "pause" "print" "prompt" "recover" ! "remark" "repfooter" "repheader" "run" "save" "show" "shutdown" ! "spool" "start" "startup" "store" "timing" "ttitle" "undefine" ! "variable" "whenever" ! ! ) t) ! ! "\\)\\|" ! "\\(compute\\s-+\\(avg\\|cou\\|min\\|max\\|num\\|sum\\|std\\|var\\)\\)\\|" ! "\\(set\\s-+\\(appi\\(nfo\\)?\\|array\\(size\\)?\\|" ! "auto\\(commit\\)?\\|autop\\(rint\\)?\\|autorecovery\\|" ! "autot\\(race\\)?\\|blo\\(ckterminator\\)?\\|cmds\\(ep\\)?\\|" ! "colsep\\|com\\(patibility\\)?\\|con\\(cat\\)?\\|" ! "copyc\\(ommit\\)?\\|copytypecheck\\|def\\(ine\\)?\\|" ! "describe\\|echo\\|editf\\(ile\\)?\\|emb\\(edded\\)?\\|" ! "esc\\(ape\\)?\\|feed\\(back\\)?\\|flagger\\|" ! "flu\\(sh\\)?\\|hea\\(ding\\)?\\|heads\\(ep\\)?\\|" ! "instance\\|lin\\(esize\\)?\\|lobof\\(fset\\)?\\|" ! "logsource\\|long\\|longc\\(hunksize\\)?\\|mark\\(up\\)?\\|" ! "newp\\(age\\)?\\|null\\|numf\\(ormat\\)?\\|" ! "num\\(width\\)?\\|pages\\(ize\\)?\\|pau\\(se\\)?\\|" ! "recsep\\|recsepchar\\|serverout\\(put\\)?\\|" ! "shift\\(inout\\)?\\|show\\(mode\\)?\\|" ! "sqlbl\\(anklines\\)?\\|sqlc\\(ase\\)?\\|" ! "sqlco\\(ntinue\\)?\\|sqln\\(umber\\)?\\|" ! "sqlpluscompat\\(ibility\\)?\\|sqlpre\\(fix\\)?\\|" ! "sqlp\\(rompt\\)?\\|sqlt\\(erminator\\)?\\|" ! "suf\\(fix\\)?\\|tab\\|term\\(out\\)?\\|ti\\(me\\)?\\|" ! "timi\\(ng\\)?\\|trim\\(out\\)?\\|trims\\(pool\\)?\\|" ! "und\\(erline\\)?\\|ver\\(ify\\)?\\|wra\\(p\\)?\\)\\)\\)" ! "\\b.*$" ! ))) ! ! (oracle-types ! (eval-when-compile (concat "\\b" (regexp-opt '( ;; Oracle Keywords that look like types ;; Oracle Reserved Words that look like types ! ! "bfile" "binary_integer" "blob" "boolean" "byte" "char" "character" ! "clob" "date" "day" "dec" "decimal" "double" "float" "int" "integer" ! "interval" "local" "long" "month" "natural" "naturaln" "nchar" "nclob" ! "number" "numeric" "nvarchar2" "pls_integer" "positive" "positiven" ! "precision" "raw" "real" "rowid" "second" "signtype" "smallint" ! "string" "time" "timestamp" "urowid" "varchar" "varchar2" "year" ! "zone" ! ! ) t) "\\b"))) (oracle-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( ;; Misc Oracle builtin functions ! ! "abs" "acos" "add_months" "ascii" "asciistr" "asin" "atan" "atan2" ! "avg" "bfilename" "bin_to_num" "bitand" "case" "cast" "ceil" ! "chartorowid" "chr" "coalesce" "compose" "concat" "convert" "corr" ! "cos" "cosh" "count" "covar_pop" "covar_samp" "cume_dist" ! "current_date" "current_timestamp" "current_user" "dbtimezone" ! "decode" "decompose" "dense_rank" "depth" "deref" "dump" "empty_blob" ! "empty_clob" "existsnode" "exp" "extract" "extractvalue" "first" ! "first_value" "floor" "from_tz" "greatest" "group_id" "grouping" ! "grouping_id" "hextoraw" "initcap" "instr" "lag" "last" "last_day" ! "last_value" "lead" "least" "length" "ln" "localtimestamp" "log" ! "lower" "lpad" "ltrim" "make_ref" "max" "min" "mod" "months_between" ! "nchr" "new_time" "next_day" "nls_charset_decl_len" "nls_charset_id" ! "nls_charset_name" "nls_initcap" "nls_lower" "nlssort" "nls_upper" ! "ntile" "nullif" "numtodsinterval" "numtoyminterval" "nvl" "nvl2" ! "path" "percent_rank" "percentile_cont" "percentile_disc" "power" ! "rank" "ratio_to_report" "rawtohex" "rawtonhex" "ref" "reftohex" ! "regr_slope" "regr_intercept" "regr_count" "regr_r2" "regr_avgx" ! "regr_avgy" "regr_sxx" "regr_syy" "regr_sxy" "round" ! "row_number" "rowidtochar" "rowidtonchar" "rpad" "rtrim" ! "sessiontimezone" "sign" "sin" "sinh" "soundex" "sqrt" "stddev" ! "stddev_pop" "stddev_samp" "substr" "sum" "sys_connect_by_path" ! "sys_context" "sys_dburigen" "sys_extract_utc" "sys_guid" "sys_typeid" ! "sys_xmlagg" "sys_xmlgen" "sysdate" "systimestamp" "tan" "tanh" ! "to_char" "to_clob" "to_date" "to_dsinterval" "to_lob" "to_multi_byte" ! "to_nchar" "to_nclob" "to_number" "to_single_byte" "to_timestamp" ! "to_timestamp_tz" "to_yminterval" "translate" "treat" "trim" "trunc" ! "tz_offset" "uid" "unistr" "updatexml" "upper" "user" "userenv" ! "value" "var_pop" "var_samp" "variance" "vsize" "width_bucket" ! "xmlagg" "xmlcolattval" "xmlconcat" "xmlelement" "xmlforest" ! "xmlsequence" "xmltransform" ! ! ) t) "\\b")))) ! (list (cons oracle-sqlplus-commands 'font-lock-doc-face) ! (cons oracle-keywords 'font-lock-keyword-face) (cons oracle-warning-words 'font-lock-warning-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons oracle-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons oracle-builtin-functions 'font-lock-keyword-face) ;; Emacs (cons oracle-builtin-functions 'font-lock-builtin-face))) ! (cons oracle-types 'font-lock-type-face))) ! "Oracle SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-oracle-font-lock-keywords. You may want ! to add functions and PL/SQL keywords.") ! (defvar sql-mode-postgres-font-lock-keywords (let ((postgres-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( --- 581,726 ---- ;; Font lock support ! (defvar sql-mode-ansi-font-lock-keywords nil ! "ANSI SQL keywords used by font-lock. ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-ansi-font-lock-keywords. You may want to ! add functions and PL/SQL keywords.") ! (if sql-mode-ansi-font-lock-keywords ! () (let ((ansi-keywords (eval-when-compile (concat "\\b" (regexp-opt '( "authorization" "avg" "begin" "close" "cobol" "commit" "continue" "count" "declare" "double" "end" "escape" "exec" "fetch" "foreign" "fortran" "found" "go" "goto" "indicator" "key" "language" "max" "min" "module" "numeric" "open" "pascal" "pli" "precision" "primary" "procedure" "references" "rollback" ! "schema" "section" "some" "sqlcode" "sqlerror" "sum" "work") t) "\\b"))) (ansi-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( "all" "and" "any" "as" "asc" "between" "by" "check" "create" "current" "default" "delete" "desc" "distinct" "exists" "float" "for" "from" "grant" "group" "having" "in" "insert" "into" "is" "like" "not" "null" "of" "on" "option" "or" "order" "privileges" "public" "select" "set" "table" "to" "union" "unique" ! "update" "user" "values" "view" "where" "with") t) "\\b"))) (ansi-types (eval-when-compile (concat "\\b" (regexp-opt '( ;; ANSI Keywords that look like types "character" "cursor" "dec" "int" "real" ;; ANSI Reserved Word that look like types ! "char" "integer" "smallint" ) t) "\\b")))) ! (setq sql-mode-ansi-font-lock-keywords ! (list (cons ansi-keywords 'font-lock-function-name-face) (cons ansi-reserved-words 'font-lock-keyword-face) ! (cons ansi-types 'font-lock-type-face))))) ! (defvar sql-mode-oracle-font-lock-keywords nil ! "Oracle SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-oracle-font-lock-keywords. You may want ! to add functions and PL/SQL keywords.") ! (if sql-mode-oracle-font-lock-keywords ! () (let ((oracle-keywords (eval-when-compile (concat "\\b" (regexp-opt '( ! "admin" "after" "allocate" "analyze" "archive" "archivelog" "backup" ! "become" "before" "block" "body" "cache" "cancel" "cascade" "change" ! "checkpoint" "compile" "constraint" "constraints" "contents" ! "controlfile" "cycle" "database" "datafile" "dba" "disable" "dismount" ! "dump" "each" "else" "elsif" "enable" "events" "except" "exceptions" ! "execute" "exit" "explain" "extent" "externally" "false" "flush" "force" ! "freelist" "freelists" "function" "groups" "if" "including" "initrans" ! "instance" "layer" "link" "lists" "logfile" "loop" "manage" "manual" ! "maxdatafiles" "maxinistances" "maxlogfiles" "maxloghistory" ! "maxlogmembers" "maxtrans" "maxvalue" "minextents" "minvalue" "mount" ! "new" "next" "noarchivelog" "nocache" "nocycle" "nomaxvalue" ! "nominvalue" "none" "noorder" "noresetlogs" "normal" "nosort" "off" ! "old" "only" "optimal" "others" "out" "own" "package" "parallel" ! "pctincrease" "pctused" "plan" "pragma" "private" "profile" "quota" ! "raise" "read" "recover" "referencing" "resetlogs" "restrict_references" ! "restricted" "return" "returning" "reuse" "rnds" "rnps" "role" "roles" ! "savepoint" "scn" "segment" "sequence" "shared" "snapshot" "sort" ! "statement_id" "statistics" "stop" "storage" "subtype" "switch" "system" ! "tables" "tablespace" "temporary" "thread" "time" "tracing" ! "transaction" "triggers" "true" "truncate" "type" "under" "unlimited" ! "until" "use" "using" "when" "while" "wnds" "wnps" "write") t) "\\b"))) (oracle-warning-words (eval-when-compile (concat "\\b" (regexp-opt '( ! "cursor_already_open" "dup_val_on_index" "exception" "invalid_cursor" "invalid_number" "login_denied" "no_data_found" "not_logged_on" ! "notfound" "others" "pragma" "program_error" "storage_error" ! "timeout_on_resource" "too_many_rows" "transaction_backed_out" ! "value_error" "zero_divide") t) "\\b"))) ! (oracle-reserved-words (eval-when-compile ! (concat "\\b" (regexp-opt '( ! "access" "add" "alter" "audit" "cluster" "column" "comment" "compress" ! "connect" "drop" "else" "exclusive" "file" "grant" ! "identified" "immediate" "increment" "index" "initial" "intersect" ! "level" "lock" "long" "maxextents" "minus" "mode" "modify" "noaudit" ! "nocompress" "nowait" "number" "offline" "online" "pctfree" "prior" ! "raw" "rename" "resource" "revoke" "row" "rowlabel" "rownum" ! "rows" "session" "share" "size" "start" "successful" "synonym" "sysdate" ! "then" "trigger" "uid" "validate" "whenever") t) "\\b"))) ! (oracle-types (eval-when-compile (concat "\\b" (regexp-opt '( ;; Oracle Keywords that look like types ;; Oracle Reserved Words that look like types ! "binary_integer" "blob" "boolean" "constant" "date" "decimal" "rowid" ! "varchar" "varchar2") t) "\\b"))) (oracle-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( ;; Misc Oracle builtin functions ! "abs" "add_months" "ascii" "avg" "ceil" "chartorowid" "chr" "concat" ! "convert" "cos" "cosh" "count" "currval" "decode" "dump" "exp" "floor" ! "glb" "greatest" "greatest_lb" "hextoraw" "initcap" "instr" "instrb" ! "last_day" "least" "least_ub" "length" "lengthb" "ln" "log" "lower" ! "lpad" "ltrim" "lub" "max" "min" "mod" "months_between" "new_time" ! "next_day" "nextval" "nls_initcap" "nls_lower" "nls_upper" "nlssort" ! "nvl" "power" "rawtohex" "replace" "round" "rowidtochar" "rpad" ! "rtrim" "sign" "sin" "sinh" "soundex" "sqlcode" "sqlerrm" "sqrt" ! "stddev" "sum" "substr" "substrb" "tan" "tanh" "to_char" ! "to_date" "to_label" "to_multi_byte" "to_number" "to_single_byte" ! "translate" "trim" "trunc" "uid" "upper" "userenv" "variance" "vsize") t) "\\b")))) ! (setq sql-mode-oracle-font-lock-keywords ! (append sql-mode-ansi-font-lock-keywords ! (list (cons oracle-keywords 'font-lock-function-name-face) (cons oracle-warning-words 'font-lock-warning-face) + (cons oracle-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons oracle-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons oracle-builtin-functions 'font-lock-function-name-face) ;; Emacs (cons oracle-builtin-functions 'font-lock-builtin-face))) ! (cons oracle-types 'font-lock-type-face)))))) ! (defvar sql-mode-postgres-font-lock-keywords nil ! "Postgres SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-postgres-font-lock-keywords.") ! (if sql-mode-postgres-font-lock-keywords ! () (let ((postgres-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( *************** *** 1122,1138 **** (postgres-types (eval-when-compile (concat "\\b" (regexp-opt '( - "bool" "box" "circle" "char" "char2" "char4" "char8" "char16" "date" "float4" "float8" "int2" "int4" "int8" "line" "lseg" "money" "path" "point" "polygon" "serial" "text" "time" "timespan" "timestamp" "varchar" - ) t)"\\b"))) (postgres-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( ;; Misc Postgres builtin functions - "abstime" "age" "area" "box" "center" "date_part" "date_trunc" "datetime" "dexp" "diameter" "dpow" "float" "float4" "height" "initcap" "integer" "isclosed" "isfinite" "isoldpath" "isopen" --- 729,742 ---- *************** *** 1140,1147 **** "position" "radius" "reltime" "revertpoly" "rpad" "rtrim" "substr" "substring" "text" "timespan" "translate" "trim" "upgradepath" "upgradepoly" "upper" "varchar" "width" - ) t) "\\b")))) (append sql-mode-ansi-font-lock-keywords (list (cons postgres-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have 'font-lock-builtin-face --- 744,751 ---- "position" "radius" "reltime" "revertpoly" "rpad" "rtrim" "substr" "substring" "text" "timespan" "translate" "trim" "upgradepath" "upgradepoly" "upper" "varchar" "width" ) t) "\\b")))) + (setq sql-mode-postgres-font-lock-keywords (append sql-mode-ansi-font-lock-keywords (list (cons postgres-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have 'font-lock-builtin-face *************** *** 1149,1168 **** (cons postgres-builtin-functions 'font-lock-preprocessor-face) ;; Emacs (cons postgres-builtin-functions 'font-lock-builtin-face)) ! (cons postgres-types 'font-lock-type-face)))) ! "Postgres SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-postgres-font-lock-keywords.") ! (defvar sql-mode-linter-font-lock-keywords (let ((linter-keywords (eval-when-compile (concat "\\b" (regexp-opt '( - "autocommit" "autoinc" "autorowid" "cancel" "cascade" "channel" "committed" "count" "countblob" "cross" "current" "data" "database" "datafile" "datafiles" "datesplit" "dba" "dbname" "default" "deferred" --- 753,773 ---- (cons postgres-builtin-functions 'font-lock-preprocessor-face) ;; Emacs (cons postgres-builtin-functions 'font-lock-builtin-face)) ! (cons postgres-types 'font-lock-type-face)))))) ! ! (defvar sql-mode-linter-font-lock-keywords nil ! "Linter SQL keywords used by font-lock. This variable is used by `sql-mode' and `sql-interactive-mode'. The regular expressions are created during compilation by calling the ! function `regexp-opt'.") ! (if sql-mode-linter-font-lock-keywords ! () (let ((linter-keywords (eval-when-compile (concat "\\b" (regexp-opt '( "autocommit" "autoinc" "autorowid" "cancel" "cascade" "channel" "committed" "count" "countblob" "cross" "current" "data" "database" "datafile" "datafiles" "datesplit" "dba" "dbname" "default" "deferred" *************** *** 1187,1198 **** "trigger_info_size" "true" "trunc" "uncommitted" "unicode" "unknown" "unlimited" "unlisted" "user" "utf8" "value" "varying" "volumes" "wait" "windows_code" "workspace" "write" "xml" - ) t) "\\b"))) (linter-reserved-words (eval-when-compile (concat "\\b" (regexp-opt '( - "access" "action" "add" "address" "after" "all" "alter" "always" "and" "any" "append" "as" "asc" "ascic" "async" "at_begin" "at_end" "audit" "aud_obj_name_len" "backup" "base" "before" "between" "blobfile" --- 792,801 ---- *************** *** 1210,1231 **** "start" "stop" "sync" "synchronize" "synonym" "sysdate" "table" "then" "to" "union" "unique" "unlock" "until" "update" "using" "values" "view" "when" "where" "with" "without" - ) t) "\\b"))) (linter-types (eval-when-compile (concat "\\b" (regexp-opt '( - "bigint" "bitmap" "blob" "boolean" "char" "character" "date" "datetime" "dec" "decimal" "double" "float" "int" "integer" "nchar" "number" "numeric" "real" "smallint" "varbyte" "varchar" "byte" "cursor" "long" - ) t) "\\b"))) (linter-builtin-functions (eval-when-compile (concat "\\b" (regexp-opt '( - "abs" "acos" "asin" "atan" "atan2" "avg" "ceil" "cos" "cosh" "divtime" "exp" "floor" "getbits" "getblob" "getbyte" "getlong" "getraw" "getstr" "gettext" "getword" "hextoraw" "lenblob" "length" "log" --- 813,830 ---- *************** *** 1236,1602 **** "to_gmtime" "to_localtime" "to_number" "trim" "upper" "decode" "substr" "substring" "chr" "dayname" "days" "greatest" "hex" "initcap" "instr" "least" "multime" "replace" "width" - ) t) "\\b")))) (append sql-mode-ansi-font-lock-keywords ! (list (cons linter-keywords 'font-lock-keywords-face) (cons linter-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons linter-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons linter-builtin-functions 'font-lock-keywords-face) ;; Emacs (cons linter-builtin-functions 'font-lock-builtin-face))) ! (cons linter-types 'font-lock-type-face)))) ! ! "Linter SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'.") ! ! (defvar sql-mode-ms-font-lock-keywords ! (let ((ms-reserved-words (eval-when-compile ! (concat "\\b" ! (regexp-opt '( ! ! "absolute" "add" "all" "alter" "and" "any" "as" "asc" "authorization" ! "avg" "backup" "begin" "between" "break" "browse" "bulk" "by" ! "cascade" "case" "check" "checkpoint" "close" "clustered" "coalesce" ! "column" "commit" "committed" "compute" "confirm" "constraint" ! "contains" "containstable" "continue" "controlrow" "convert" "count" ! "create" "cross" "current" "current_date" "current_time" ! "current_timestamp" "current_user" "database" "deallocate" ! "declare" "default" "delete" "deny" "desc" "disk" "distinct" ! "distributed" "double" "drop" "dummy" "dump" "else" "end" "errlvl" ! "errorexit" "escape" "except" "exec" "execute" "exists" "exit" "fetch" ! "file" "fillfactor" "first" "floppy" "for" "foreign" "freetext" ! "freetexttable" "from" "full" "goto" "grant" "group" "having" ! "holdlock" "identity" "identity_insert" "identitycol" "if" "in" ! "index" "inner" "insert" "intersect" "into" "is" "isolation" "join" ! "key" "kill" "last" "left" "level" "like" "lineno" "load" "max" "min" ! "mirrorexit" "national" "next" "nocheck" "nolock" "nonclustered" "not" ! "null" "nullif" "of" "off" "offsets" "on" "once" "only" "open" ! "opendatasource" "openquery" "openrowset" "option" "or" "order" ! "outer" "output" "over" "paglock" "percent" "perm" "permanent" "pipe" ! "plan" "precision" "prepare" "primary" "print" "prior" "privileges" ! "proc" "procedure" "processexit" "public" "raiserror" "read" ! "readcommitted" "readpast" "readtext" "readuncommitted" "reconfigure" ! "references" "relative" "repeatable" "repeatableread" "replication" ! "restore" "restrict" "return" "revoke" "right" "rollback" "rowcount" ! "rowguidcol" "rowlock" "rule" "save" "schema" "select" "serializable" ! "session_user" "set" "shutdown" "some" "statistics" "sum" ! "system_user" "table" "tablock" "tablockx" "tape" "temp" "temporary" ! "textsize" "then" "to" "top" "tran" "transaction" "trigger" "truncate" ! "tsequal" "uncommitted" "union" "unique" "update" "updatetext" ! "updlock" "use" "user" "values" "view" "waitfor" "when" "where" ! "while" "with" "work" "writetext" ! "collate" "function" "openxml" "returns" ! ! ) t) "\\b"))) ! (ms-types (eval-when-compile ! (concat "\\b" ! (regexp-opt '( ! ! "binary" "bit" "char" "character" "cursor" "datetime" "dec" "decimal" ! "double" "float" "image" "int" "integer" "money" "national" "nchar" ! "ntext" "numeric" "numeric" "nvarchar" "precision" "real" ! "smalldatetime" "smallint" "smallmoney" "text" "timestamp" "tinyint" ! "uniqueidentifier" "varbinary" "varchar" "varying" ! ! ) t) "\\b"))) ! ! (ms-vars "\\b@[a-zA-Z0-9_]*\\b") ! ! (ms-builtin-functions (eval-when-compile ! (concat "\\b" ! (regexp-opt '( ! ;; Misc MS builtin functions ! ! "@@connections" "@@cpu_busy" "@@cursor_rows" "@@datefirst" "@@dbts" ! "@@error" "@@fetch_status" "@@identity" "@@idle" "@@io_busy" ! "@@langid" "@@language" "@@lock_timeout" "@@max_connections" ! "@@max_precision" "@@nestlevel" "@@options" "@@pack_received" ! "@@pack_sent" "@@packet_errors" "@@procid" "@@remserver" "@@rowcount" ! "@@servername" "@@servicename" "@@spid" "@@textsize" "@@timeticks" ! "@@total_errors" "@@total_read" "@@total_write" "@@trancount" ! "@@version" "abs" "acos" "and" "app_name" "ascii" "asin" "atan" "atn2" ! "avg" "case" "cast" "ceiling" "char" "charindex" "coalesce" ! "col_length" "col_name" "columnproperty" "containstable" "convert" ! "cos" "cot" "count" "current_timestamp" "current_user" "cursor_status" ! "databaseproperty" "datalength" "dateadd" "datediff" "datename" ! "datepart" "day" "db_id" "db_name" "degrees" "difference" "exp" ! "file_id" "file_name" "filegroup_id" "filegroup_name" ! "filegroupproperty" "fileproperty" "floor" "formatmessage" ! "freetexttable" "fulltextcatalogproperty" "fulltextserviceproperty" ! "getansinull" "getdate" "grouping" "host_id" "host_name" "ident_incr" ! "ident_seed" "identity" "index_col" "indexproperty" "is_member" ! "is_srvrolemember" "isdate" "isnull" "isnumeric" "left" "len" "log" ! "log10" "lower" "ltrim" "max" "min" "month" "nchar" "newid" "nullif" ! "object_id" "object_name" "objectproperty" "openquery" "openrowset" ! "parsename" "patindex" "patindex" "permissions" "pi" "power" ! "quotename" "radians" "rand" "replace" "replicate" "reverse" "right" ! "round" "rtrim" "session_user" "sign" "sin" "soundex" "space" "sqrt" ! "square" "stats_date" "stdev" "stdevp" "str" "stuff" "substring" "sum" ! "suser_id" "suser_name" "suser_sid" "suser_sname" "system_user" "tan" ! "textptr" "textvalid" "typeproperty" "unicode" "upper" "user" ! "user_id" "user_name" "var" "varp" "year" ! ! ) t) "\\b"))) ! ! (ms-config-commands ! (eval-when-compile ! (concat "^\\(\\(set\\s-+\\(" ! (regexp-opt '( ! ! "datefirst" "dateformat" "deadlock_priority" "lock_timeout" ! "concat_null_yields_null" "cursor_close_on_commit" ! "disable_def_cnst_chk" "fips_flagger" "identity_insert" "language" ! "offsets" "quoted_identifier" "arithabort" "arithignore" "fmtonly" ! "nocount" "noexec" "numeric_roundabort" "parseonly" ! "query_governor_cost_limit" "rowcount" "textsize" "ansi_defaults" ! "ansi_null_dflt_off" "ansi_null_dflt_on" "ansi_nulls" "ansi_padding" ! "ansi_warnings" "forceplan" "showplan_all" "showplan_text" ! "statistics" "implicit_transactions" "remote_proc_transactions" ! "transaction" "xact_abort" ! ! ) t) ! "\\)\\)\\|go\\s-*\\|use\\s-+\\|setuser\\s-+\\|dbcc\\s-+\\).*$")))) ! ! (list (cons ms-config-commands 'font-lock-doc-face) ! (cons ms-reserved-words 'font-lock-keyword-face) ! ;; XEmacs doesn't have 'font-lock-builtin-face ! (if (string-match "XEmacs\\|Lucid" emacs-version) ! (cons ms-builtin-functions 'font-lock-preprocessor-face) ! ;; Emacs ! (cons ms-builtin-functions 'font-lock-builtin-face)) ! (cons ms-vars 'font-lock-variable-name-face) ! (cons ms-types 'font-lock-type-face))) ! ! "Microsoft SQLServer SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-ms-font-lock-keywords.") ! ! (defvar sql-mode-sybase-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Sybase SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-sybase-font-lock-keywords.") ! ! (defvar sql-mode-informix-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Informix SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-informix-font-lock-keywords.") ! ! (defvar sql-mode-interbase-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Interbase SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-interbase-font-lock-keywords.") ! ! (defvar sql-mode-ingres-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Ingres SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-interbase-font-lock-keywords.") ! ! (defvar sql-mode-solid-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "Solid SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-solid-font-lock-keywords.") ! (defvar sql-mode-mysql-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "MySQL SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-mysql-font-lock-keywords.") ! ! (defvar sql-mode-sqlite-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "SQLite SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-sqlite-font-lock-keywords.") ! ! (defvar sql-mode-db2-font-lock-keywords sql-mode-ansi-font-lock-keywords ! "DB2 SQL keywords used by font-lock. ! ! This variable is used by `sql-mode' and `sql-interactive-mode'. The ! regular expressions are created during compilation by calling the ! function `regexp-opt'. Therefore, take a look at the source before ! you define your own sql-mode-db2-font-lock-keywords.") ! ! (defvar sql-mode-font-lock-keywords nil "SQL keywords used by font-lock. ! Setting this variable directly no longer has any affect. Use ! `sql-product' and `sql-add-product-keywords' to control the ! highlighting rules in sql-mode.") ! ! ! ! ;;; SQL Product support functions ! ! (defun sql-product-feature (feature &optional product) ! "Lookup `feature' needed to support the current SQL product. ! ! See \[sql-product-support] for a list of products and supported features." ! (cadr ! (memq feature ! (assoc (or product sql-product) ! sql-product-support)))) ! ! (defun sql-product-font-lock (keywords-only imenu) ! "Sets `font-lock-defaults' and `font-lock-keywords' based on ! the product-specific keywords and syntax-alists defined in ! `sql-product-support'." ! (let ! ;; Get the product-specific syntax-alist. ! ((syntax-alist ! (append ! (sql-product-feature :syntax-alist) ! '((?_ . "w") (?. . "w"))))) ! ! ;; Get the product-specific keywords. ! (setq sql-mode-font-lock-keywords ! (append ! (eval (sql-product-feature :font-lock)) ! (list sql-mode-font-lock-object-name))) ! ! ;; Setup font-lock. (What is the minimum we should have to do ! ;; here?) ! (setq font-lock-set-defaults nil ! font-lock-keywords sql-mode-font-lock-keywords ! font-lock-defaults (list 'sql-mode-font-lock-keywords ! keywords-only t syntax-alist)) ! ! ;; Setup imenu; it needs the same syntax-alist. ! (when imenu ! (setq imenu-syntax-alist syntax-alist)))) ! ! ;;;###autoload ! (defun sql-add-product-keywords (product keywords) ! "Append a `font-lock-keywords' entry to the existing entries defined ! for the specified `product'." ! ! (let ((font-lock (sql-product-feature :font-lock product))) ! (set font-lock (append (eval font-lock) (list keywords))))) ;;; Functions to switch highlighting - (defun sql-highlight-product () - "Turns on the appropriate font highlighting for the SQL product - selected." - - (when (eq major-mode 'sql-mode) - ;; Setup font-lock - (sql-product-font-lock nil t) - - ;; Force fontification, if its enabled. - (if font-lock-mode - (font-lock-fontify-buffer)) - - ;; Set the mode name to include the product. - (setq mode-name (concat "SQL[" (prin1-to-string sql-product) "]")))) - - (defun sql-set-product (product) - "Set `sql-product' to product and enable appropriate - highlighting." - (interactive "SEnter SQL product: ") - (when (not (assoc product sql-product-support)) - (error "SQL product %s is not supported; treated as ANSI" product) - (setq product 'ansi)) - - ;; Save product setting and fontify. - (setq sql-product product) - (sql-highlight-product)) - (defun sql-highlight-oracle-keywords () ! "Highlight Oracle keywords." (interactive) ! (sql-set-product 'oracle)) (defun sql-highlight-postgres-keywords () ! "Highlight Postgres keywords." (interactive) ! (sql-set-product 'postgres)) (defun sql-highlight-linter-keywords () ! "Highlight LINTER keywords." (interactive) ! (sql-set-product 'linter)) ! ! (defun sql-highlight-ms-keywords () ! "Highlight Microsoft SQLServer keywords." ! (interactive) ! (sql-set-product 'ms)) (defun sql-highlight-ansi-keywords () ! "Highlight ANSI SQL keywords." ! (interactive) ! (sql-set-product 'ansi)) ! ! (defun sql-highlight-sybase-keywords () ! "Highlight Sybase SQL keywords." ! (interactive) ! (sql-set-product 'sybase)) ! ! (defun sql-highlight-informix-keywords () ! "Highlight Informix SQL keywords." ! (interactive) ! (sql-set-product 'informix)) ! ! (defun sql-highlight-interbase-keywords () ! "Highlight Interbase SQL keywords." ! (interactive) ! (sql-set-product 'interbase)) ! ! (defun sql-highlight-ingres-keywords () ! "Highlight Ingres SQL keywords." ! (interactive) ! (sql-set-product 'ingres)) ! ! (defun sql-highlight-solid-keywords () ! "Highlight Solid SQL keywords." ! (interactive) ! (sql-set-product 'solid)) ! ! (defun sql-highlight-mysql-keywords () ! "Highlight MySQL SQL keywords." ! (interactive) ! (sql-set-product 'mysql)) ! ! (defun sql-highlight-sqlite-keywords () ! "Highlight SQLite SQL keywords." ! (interactive) ! (sql-set-product 'sqlite)) ! ! (defun sql-highlight-db2-keywords () ! "Highlight DB2 SQL keywords." (interactive) ! (sql-set-product 'db2)) --- 835,893 ---- "to_gmtime" "to_localtime" "to_number" "trim" "upper" "decode" "substr" "substring" "chr" "dayname" "days" "greatest" "hex" "initcap" "instr" "least" "multime" "replace" "width" ) t) "\\b")))) + (setq sql-mode-linter-font-lock-keywords (append sql-mode-ansi-font-lock-keywords ! (list (cons linter-keywords 'font-lock-function-name-face) (cons linter-reserved-words 'font-lock-keyword-face) ;; XEmacs doesn't have font-lock-builtin-face (if (string-match "XEmacs\\|Lucid" emacs-version) (cons linter-builtin-functions 'font-lock-preprocessor-face) ;; GNU Emacs 19 doesn't have it either (if (string-match "GNU Emacs 19" emacs-version) ! (cons linter-builtin-functions 'font-lock-function-name-face) ;; Emacs (cons linter-builtin-functions 'font-lock-builtin-face))) ! (cons linter-types 'font-lock-type-face)))))) ! (defvar sql-mode-font-lock-keywords sql-mode-ansi-font-lock-keywords "SQL keywords used by font-lock. ! This variable defaults to `sql-mode-ansi-font-lock-keywords'. This is ! used for the default `font-lock-defaults' value in `sql-mode'. This ! can be changed by some entry functions to provide more hilighting.") ;;; Functions to switch highlighting (defun sql-highlight-oracle-keywords () ! "Highlight Oracle keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-oracle-font-lock-keywords) ! (font-lock-fontify-buffer)) (defun sql-highlight-postgres-keywords () ! "Highlight Postgres keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-postgres-font-lock-keywords) ! (font-lock-fontify-buffer)) (defun sql-highlight-linter-keywords () ! "Highlight LINTER keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-linter-font-lock-keywords) ! (font-lock-fontify-buffer)) (defun sql-highlight-ansi-keywords () ! "Highlight ANSI SQL keywords. ! Basically, this just sets `font-lock-keywords' appropriately." (interactive) ! (setq font-lock-keywords sql-mode-ansi-font-lock-keywords) ! (font-lock-fontify-buffer)) *************** *** 1662,1668 **** Sybase: \\[sql-sybase] Ingres: \\[sql-ingres] Microsoft: \\[sql-ms] - DB2: \\[sql-db2] Interbase: \\[sql-interbase] Linter: \\[sql-linter] --- 953,958 ---- *************** *** 1709,1738 **** The function asks for the username if WHAT contains symbol `user', for the password if it contains symbol `password', for the server if it contains symbol `server', and for the database if it contains symbol ! `database'. The members of WHAT are processed in the order in which ! they are provided. In order to ask the user for username, password and database, call the function like this: (sql-get-login 'user 'password 'database)." (interactive) ! (while what ! (cond ! ((eq (car what) 'user) ; user (setq sql-user (read-from-minibuffer "User: " sql-user nil nil sql-user-history))) ! ((eq (car what) 'password) ; password (setq sql-password (sql-read-passwd "Password: " sql-password))) ! ((eq (car what) 'server) ; server (setq sql-server (read-from-minibuffer "Server: " sql-server nil nil sql-server-history))) ! ((eq (car what) 'database) ; database (setq sql-database (read-from-minibuffer "Database: " sql-database nil nil sql-database-history)))) - (setq what (cdr what)))) (defun sql-find-sqli-buffer () "Return the current default SQLi buffer or nil. --- 999,1024 ---- The function asks for the username if WHAT contains symbol `user', for the password if it contains symbol `password', for the server if it contains symbol `server', and for the database if it contains symbol ! `database'. In order to ask the user for username, password and database, call the function like this: (sql-get-login 'user 'password 'database)." (interactive) ! (if (memq 'user what) (setq sql-user (read-from-minibuffer "User: " sql-user nil nil sql-user-history))) ! (if (memq 'password what) (setq sql-password (sql-read-passwd "Password: " sql-password))) ! (if (memq 'server what) (setq sql-server (read-from-minibuffer "Server: " sql-server nil nil sql-server-history))) ! (if (memq 'database what) (setq sql-database (read-from-minibuffer "Database: " sql-database nil nil sql-database-history)))) (defun sql-find-sqli-buffer () "Return the current default SQLi buffer or nil. From MAILER-DAEMON Mon Jul 14 16:46:59 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cACV-0003k3-HF for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:45:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cA9L-00020L-Dr for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:42:19 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cA7y-00018U-1i for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:40:54 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cA1M-0008Lq-8j for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:34:04 -0400 Received: from nickrob by subversions.gnu.org with local (Exim 4.20) id 19cA0L-0000rK-HL for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:33:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: Nick Roberts Date: Mon, 14 Jul 2003 16:33:01 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: nick@nick.uklinux.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 20:45:34 -0000 Index: emacs/etc/ChangeLog diff -c emacs/etc/ChangeLog:1.142 emacs/etc/ChangeLog:1.143 *** emacs/etc/ChangeLog:1.142 Thu May 22 00:42:34 2003 --- emacs/etc/ChangeLog Mon Jul 14 16:33:01 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-14 Nick Roberts + + * NEWS: Merge in the changes for versions 21.2 and 21.3 as + documented on the EMACS_21_1_RC branch. + 2003-03-03 Chao-Hong Liu * TUTORIAL.cn: Updated. From MAILER-DAEMON Mon Jul 14 16:48:52 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cAFK-0005Xl-Gv for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:48:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cAFC-0005Qe-2O for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:48:22 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cAEB-0004dA-6n for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:47:19 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cADg-0004En-0Y for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:46:48 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19cACf-0001Eo-HS for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:45:45 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Mon, 14 Jul 2003 16:45:45 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 20:48:27 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5283 emacs/lisp/ChangeLog:1.5284 *** emacs/lisp/ChangeLog:1.5283 Sun Jul 13 13:52:07 2003 --- emacs/lisp/ChangeLog Mon Jul 14 16:45:43 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-14 Mark A. Hershberger + + * xml.el (xml-parse-tag, xml-parse-file, xml-parse-region): + Namespace support. + 2003-07-13 Juanma Barranquero * frame.el (modify-all-frames-parameters): Reinstalled (copyright *************** *** 18,102 **** * man.el (Man-translate-cleanup): New. (Man-translate-references): Call `Man-translate-cleanup' to clean leading, trailing and middle spaces. - - 2003-07-13 Michael Mauger - - Version 1.8.0 of sql-mode. - - Simplify selection of SQL products to define highlighting and - interactive mode. Includes detailed instructions on adding support - for new products. - - * progmodes/sql.el (sql-product): New variable. Identifies SQL - product for use in highlighting and interactive mode. - (sql-interactive-product): New variable. SQL product for - sql-interactive-mode. - (sql-product-support): New variable. Specifies product-specific - parameters to drive highlighting and interactive mode. - (sql-imenu-generic-expression): Add more object types. - (sql-sqlite-options): Correct comment. - (sql-ms-program): Use "osql" rather than "isql". - (sql-prompt-regexp, sql-prompt-length): Update comment. - (sql-mode-menu): Add "Start SQLi session" entry. Replace - Highlighting submenu with Product menu. Fix Send Region entry. - (sql-mode-abbrev-table): Add abbreviations. Support of SYSTEM-FLAG - on define-abbrev. Support was removed with last check-in; it now - handles older Emacsen without the SYSTEM-FLAG. - (sql-mode-font-lock-object-name): Add font-lock pattern for object - names. - (sql-mode-ansi-font-lock-keywords): Set as default value. - (sql-mode-oracle-font-lock-keywords): Set as default value. Support - Oracle 9i keywords. - (sql-mode-postgres-font-lock-keywords): Set as default value. - (sql-mode-linter-font-lock-keywords): Set as default value. - (sql-mode-ms-font-lock-keywords): New variable. Support Microsoft - SQLServer 2000. - (sql-mode-sybase-font-lock-keywords) - (sql-mode-interbase-font-lock-keywords) - (sql-mode-sqlite-font-lock-keywords) - (sql-mode-strong-font-lock-keywords) - (sql-mode-mysql-font-lock-keywords) - (sql-mode-db2-font-lock-keywords): New variables. Default to ANSI - keywords. - (sql-mode-font-lock-defaults): Update comment. - (sql-product-feature): New function. Returns feature associated - with a product from `sql-product-support' alist. - (sql-product-font-lock): New function. Set font-lock support based - on `sql-product'. - (sql-add-product-keywords): New function. Add font-lock rules to - product-specific keyword variables. - (sql-set-product): New function. Set `sql-product' and apply - appropriate font-lock highlighting. - (sql-highlight-product): New function. Set font-lock support based - on a product. Also set mode name to include product name. - (sql-highlight-ansi-keywords, sql-highlight-oracle-keywords) - (sql-highlight-postgres-keywords, sql-highlight-linter-keywords): - Use `sql-set-product'. - (sql-highlight-ms-keywords) - (sql-highlight-sybase-keywords) - (sql-highlight-interbase-keywords) - (sql-highlight-strong-keywords) - (sql-highlight-mysql-keywords) - (sql-highlight-sqlite-keywords) - (sql-highlight-db2-keywords): New functions. Use `sql-set-product'. - (sql-get-login): Prompt in the same order as the tokens. - (sql-mode): Uses `sql-product-highlight' and - `sql-product-font-lock'. - (sql-product-interactive): New function. Common portions of - product-specific interactive mode wrappers. - (sql-interactive-mode): Rewritten to use product features. - (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql) - (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase) - (sql-db2, sql-linter): Use `sql-product-interactive'. - (sql-connect-oracle, sql-connect-sybase, sql-connect-informix) - (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid) - (sql-connect-ingres, sql-connect-postgres) - (sql-connect-interbase, sql-connect-db2, sql-connect-linter): New - functions. Format command line parameters and invoke comint on the - appropriate interpreter. Code was in the corresponding `sql-xyz' - function before. - (sql-connect-ms): New function. Support -E argument to use - operating system credentials for authentication. 2003-07-13 Lars Hansen --- 23,28 ---- From MAILER-DAEMON Mon Jul 14 16:58:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cAJF-0007eJ-O5 for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:52:33 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cAJ0-0007QK-Ml for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:52:18 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cAFm-000679-E1 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:48:59 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cA9G-0001qL-NM for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:42:14 -0400 Received: from lektu by subversions.gnu.org with local (Exim 4.20) id 19cA8G-00017L-8S for emacs-diffs@gnu.org; Mon, 14 Jul 2003 16:41:12 -0400 To: emacs-diffs@gnu.org Message-Id: From: Juanma Barranquero Date: Mon, 14 Jul 2003 16:41:12 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/xml.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: lektu@terra.es List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 20:52:31 -0000 Index: emacs/lisp/xml.el diff -c emacs/lisp/xml.el:1.22 emacs/lisp/xml.el:1.23 *** emacs/lisp/xml.el:1.22 Mon Jun 30 06:34:50 2003 --- emacs/lisp/xml.el Mon Jul 14 16:41:12 2003 *************** *** 121,131 **** ;;******************************************************************* ;;;###autoload ! (defun xml-parse-file (file &optional parse-dtd) "Parse the well-formed XML file FILE. If FILE is already visited, use its buffer and don't kill it. Returns the top node with all its children. ! If PARSE-DTD is non-nil, the DTD is parsed rather than skipped." (let ((keep)) (if (get-file-buffer file) (progn --- 121,132 ---- ;;******************************************************************* ;;;###autoload ! (defun xml-parse-file (file &optional parse-dtd parse-ns) "Parse the well-formed XML file FILE. If FILE is already visited, use its buffer and don't kill it. Returns the top node with all its children. ! If PARSE-DTD is non-nil, the DTD is parsed rather than skipped. ! If PARSE-NS is non-nil, then QNAMES are expanded." (let ((keep)) (if (get-file-buffer file) (progn *************** *** 137,143 **** (let ((xml (xml-parse-region (point-min) (point-max) (current-buffer) ! parse-dtd))) (if keep (goto-char keep) (kill-buffer (current-buffer))) --- 138,144 ---- (let ((xml (xml-parse-region (point-min) (point-max) (current-buffer) ! parse-dtd parse-ns))) (if keep (goto-char keep) (kill-buffer (current-buffer))) *************** *** 184,196 **** ;; prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? ;;;###autoload ! (defun xml-parse-region (beg end &optional buffer parse-dtd) "Parse the region from BEG to END in BUFFER. If BUFFER is nil, it defaults to the current buffer. Returns the XML list for the region, or raises an error if the region ! is not a well-formed XML file. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped, ! and returned as the first element of the list." (save-restriction (narrow-to-region beg end) ;; Use fixed syntax table to ensure regexp char classes and syntax --- 185,198 ---- ;; prolog ::= XMLDecl? Misc* (doctypedecl Misc*)? ;;;###autoload ! (defun xml-parse-region (beg end &optional buffer parse-dtd parse-ns) "Parse the region from BEG to END in BUFFER. If BUFFER is nil, it defaults to the current buffer. Returns the XML list for the region, or raises an error if the region ! is not well-formed XML. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped, ! and returned as the first element of the list. ! If PARSE-NS is non-nil, then QNAMES are expanded." (save-restriction (narrow-to-region beg end) ;; Use fixed syntax table to ensure regexp char classes and syntax *************** *** 209,215 **** (if xml ;; translation of rule [1] of XML specifications (error "XML files can have only one toplevel tag") ! (setq result (xml-parse-tag parse-dtd)) (cond ((null result)) ((listp (car result)) --- 211,217 ---- (if xml ;; translation of rule [1] of XML specifications (error "XML files can have only one toplevel tag") ! (setq result (xml-parse-tag parse-dtd parse-ns)) (cond ((null result)) ((listp (car result)) *************** *** 224,280 **** (nreverse xml))))))) ! (defun xml-parse-tag (&optional parse-dtd) "Parse the tag at point. If PARSE-DTD is non-nil, the DTD of the document, if any, is parsed and returned as the first element in the list. Returns one of: - a list : the matching node - nil : the point is not looking at a tag. - a pair : the first element is the DTD, the second is the node." ! (cond ! ;; Processing instructions (like the tag at the ! ;; beginning of a document). ! ((looking-at "<\\?") ! (search-forward "?>") ! (skip-syntax-forward " ") ! (xml-parse-tag parse-dtd)) ! ;; Character data (CDATA) sections, in which no tag should be interpreted ! ((looking-at "" nil t) ! (error "CDATA section does not end anywhere in the document")) ! (buffer-substring pos (match-beginning 0)))) ! ;; DTD for the document ! ((looking-at "") ! nil) ! ;; end tag ! ((looking-at "[:space:]]+\\)") ! (goto-char (match-end 1)) ! (let* ((node-name (match-string 1)) ! ;; Parse the attribute list. ! (children (list (xml-parse-attlist) (intern node-name))) ! pos) ! ! ;; is this an empty element ? ! (if (looking-at "/>") ! (progn ! (forward-char 2) ! (nreverse children)) ;; is this a valid start tag ? (if (eq (char-after) ?>) --- 226,333 ---- (nreverse xml))))))) ! (defun xml-parse-tag (&optional parse-dtd parse-ns) "Parse the tag at point. If PARSE-DTD is non-nil, the DTD of the document, if any, is parsed and returned as the first element in the list. + If PARSE-NS is non-nil, then QNAMES are expanded. Returns one of: - a list : the matching node - nil : the point is not looking at a tag. - a pair : the first element is the DTD, the second is the node." ! (let ((xml-ns (if (consp parse-ns) ! parse-ns ! (if parse-ns ! (list ! ;; Default no namespace ! (cons "" "") ! ;; We need to seed the xmlns namespace ! (cons "xmlns" "http://www.w3.org/2000/xmlns/")))))) ! (cond ! ;; Processing instructions (like the tag at the ! ;; beginning of a document). ! ((looking-at "<\\?") ! (search-forward "?>") ! (skip-syntax-forward " ") ! (xml-parse-tag parse-dtd xml-ns)) ! ;; Character data (CDATA) sections, in which no tag should be interpreted ! ((looking-at "" nil t) ! (error "CDATA section does not end anywhere in the document")) ! (buffer-substring pos (match-beginning 0)))) ! ;; DTD for the document ! ((looking-at "") ! nil) ! ;; end tag ! ((looking-at "[:space:]]+\\)") ! (goto-char (match-end 1)) ! (let* ((node-name (match-string 1)) ! ;; Parse the attribute list. ! (children (list (xml-parse-attlist) (intern node-name))) ! pos) ! ! ;; add the xmlns:* attrs to our cache ! (when (consp xml-ns) ! (mapcar ! (lambda (attr) ! (let* ((splitup (split-string (symbol-name (car attr)) ":")) ! (prefix (nth 0 splitup)) ! (lname (nth 1 splitup))) ! (when (string= "xmlns" prefix) ! (setq xml-ns (append (list (cons (if lname ! lname ! "") ! (cdr attr))) ! xml-ns))))) ! (car children)) ! ! ;; expand element names ! (let* ((splitup (split-string (symbol-name (cadr children)) ":")) ! (lname (or (nth 1 splitup) ! (nth 0 splitup))) ! (prefix (if (nth 1 splitup) ! (nth 0 splitup) ! ""))) ! (setcdr children (list ! (intern (concat "{" ! (cdr (assoc-string prefix xml-ns)) ! "}" lname))))) ! ! ;; expand attribute names ! (mapcar ! (lambda (attr) ! (let* ((splitup (split-string (symbol-name (car attr)) ":")) ! (lname (or (nth 1 splitup) ! (nth 0 splitup))) ! (prefix (if (nth 1 splitup) ! (nth 0 splitup) ! (caar xml-ns)))) ! ! (setcar attr (intern (concat "{" ! (cdr (assoc-string prefix xml-ns)) ! "}" lname))))) ! (car children))) ! ! ;; is this an empty element ? ! (if (looking-at "/>") ! (progn ! (forward-char 2) ! (nreverse children)) ;; is this a valid start tag ? (if (eq (char-after) ?>) *************** *** 289,295 **** (error "XML: Invalid end tag (expecting %s) at pos %d" node-name (point))) ((= (char-after) ?<) ! (let ((tag (xml-parse-tag))) (when tag (push tag children)))) (t --- 342,348 ---- (error "XML: Invalid end tag (expecting %s) at pos %d" node-name (point))) ((= (char-after) ?<) ! (let ((tag (xml-parse-tag nil xml-ns))) (when tag (push tag children)))) (t *************** *** 320,331 **** (nreverse children)) ;; This was an invalid start tag (error "XML: Invalid attribute list"))))) ! (t ;; This is not a tag. ! (error "XML: Invalid character")))) (defun xml-parse-attlist () ! "Return the attribute-list after point. ! Leave point at the first non-blank character after the tag." (let ((attlist ()) start-pos name) (skip-syntax-forward " ") --- 373,383 ---- (nreverse children)) ;; This was an invalid start tag (error "XML: Invalid attribute list"))))) ! (t ;; This is not a tag. ! (error "XML: Invalid character"))))) (defun xml-parse-attlist () ! "Return the attribute-list after point.Leave point at the first non-blank character after the tag." (let ((attlist ()) start-pos name) (skip-syntax-forward " ") From MAILER-DAEMON Mon Jul 14 17:49:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cBCI-0000OA-6h for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:49:26 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cBCG-0000Nx-2i for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:49:24 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cBCE-0000Md-CR for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:49:22 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cBCE-0000MT-3H for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:49:22 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19cBBD-0005fk-Hv for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:48:19 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Mon, 14 Jul 2003 17:48:19 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 21:49:24 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5284 emacs/lisp/ChangeLog:1.5285 *** emacs/lisp/ChangeLog:1.5284 Mon Jul 14 16:45:43 2003 --- emacs/lisp/ChangeLog Mon Jul 14 17:48:18 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-15 Kim F. Storm + + * apropos.el (apropos-sort-by-scores): Rename from apropos-show-scores. + All uses changed. + 2003-07-14 Mark A. Hershberger * xml.el (xml-parse-tag, xml-parse-file, xml-parse-region): From MAILER-DAEMON Mon Jul 14 17:50:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cBD1-0000bo-OT for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:50:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cBCx-0000ap-Qy for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:50:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cBCv-0000aS-PF for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:50:06 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cBCv-0000aN-Gf for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:50:05 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19cBBv-0005gc-1o for emacs-diffs@gnu.org; Mon, 14 Jul 2003 17:49:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Mon, 14 Jul 2003 17:49:03 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/apropos.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 21:50:09 -0000 Index: emacs/lisp/apropos.el diff -c emacs/lisp/apropos.el:1.93 emacs/lisp/apropos.el:1.94 *** emacs/lisp/apropos.el:1.93 Sat Jul 12 17:57:50 2003 --- emacs/lisp/apropos.el Mon Jul 14 17:49:02 2003 *************** *** 102,109 **** :group 'apropos :type 'face) ! (defcustom apropos-show-scores nil ! "*Non-nil means show score for each match, and sort matches by scores." :group 'apropos :type 'boolean) --- 102,110 ---- :group 'apropos :type 'face) ! (defcustom apropos-sort-by-scores nil ! "*Non-nil means sort matches by scores; best match is shown first. ! The computed score is shown for each match." :group 'apropos :type 'boolean) *************** *** 771,777 **** (lambda (a b) ;; Don't sort by score if user can't see the score. ;; It would be confusing. -- rms. ! (if apropos-show-scores (or (> (cadr a) (cadr b)) (and (= (cadr a) (cadr b)) (string-lessp (car a) (car b)))) --- 772,778 ---- (lambda (a b) ;; Don't sort by score if user can't see the score. ;; It would be confusing. -- rms. ! (if apropos-sort-by-scores (or (> (cadr a) (cadr b)) (and (= (cadr a) (cadr b)) (string-lessp (car a) (car b)))) *************** *** 804,810 **** ;; changed the variable! ;; Just say `no' to variables containing faces! 'face apropos-symbol-face) ! (if apropos-show-scores (insert " (" (number-to-string (cadr apropos-item)) ") ")) ;; Calculate key-bindings if we want them. (and do-keys --- 805,811 ---- ;; changed the variable! ;; Just say `no' to variables containing faces! 'face apropos-symbol-face) ! (if apropos-sort-by-scores (insert " (" (number-to-string (cadr apropos-item)) ") ")) ;; Calculate key-bindings if we want them. (and do-keys From MAILER-DAEMON Mon Jul 14 18:08:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cBRP-0007Dx-CA for mharc-emacs-diffs@gnu.org; Mon, 14 Jul 2003 18:05:03 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cBRL-00075q-Dd for emacs-diffs@gnu.org; Mon, 14 Jul 2003 18:04:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cBQr-0006og-Su for emacs-diffs@gnu.org; Mon, 14 Jul 2003 18:04:30 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cBQD-0006Qz-HX for emacs-diffs@gnu.org; Mon, 14 Jul 2003 18:03:49 -0400 Received: from kfstorm by subversions.gnu.org with local (Exim 4.20) id 19cBPB-0005za-A2 for emacs-diffs@gnu.org; Mon, 14 Jul 2003 18:02:45 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Kim F. Storm" Date: Mon, 14 Jul 2003 18:02:45 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: storm@cua.dk List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jul 2003 22:05:01 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.838 emacs/etc/NEWS:1.839 *** emacs/etc/NEWS:1.838 Mon Jul 14 16:37:35 2003 --- emacs/etc/NEWS Mon Jul 14 18:02:44 2003 *************** *** 148,155 **** ** M-x view-file and commands that use it now avoid interfering with special modes such as Tar mode. ! ** The apropos commands don't sort by scores unless they show scores. ! The option apropos-show-scores controls both uses of scores. +++ ** The old bindings C-M-delete and C-M-backspace have been deleted, --- 148,166 ---- ** M-x view-file and commands that use it now avoid interfering with special modes such as Tar mode. ! ** Enhancements to apropos commands: ! ! *** The apropos commands will now accept a list of words to match. ! When more than one word is specified, at least two of those words must ! be present for an item to match. Regular expression matching is still ! available. ! ! *** The new option `apropos-sort-by-scores' causes the matching items ! to be sorted according to their score. The score for an item is a ! number calculated to indicate how well the item matches the words or ! 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. +++ ** The old bindings C-M-delete and C-M-backspace have been deleted, From MAILER-DAEMON Tue Jul 15 04:13:30 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cKrb-000781-L6 for mharc-emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:08:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cKrY-00075E-98 for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:08:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cKrS-0006z9-Py for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:08:36 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cKrC-0006iy-VX for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:08:19 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19cKqB-0005CQ-Mn for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:07:15 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Tue, 15 Jul 2003 04:07:15 -0400 Subject: [Emacs-diffs] Changes to emacs/configure.in X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jul 2003 08:08:42 -0000 Index: emacs/configure.in diff -c emacs/configure.in:1.343 emacs/configure.in:1.344 *** emacs/configure.in:1.343 Sun Jul 13 22:17:05 2003 --- emacs/configure.in Tue Jul 15 04:07:15 2003 *************** *** 222,230 **** ## NetBSD ports *-*-netbsd* ) opsys=netbsd ! if test -f /usr/lib/crti.o; then AC_DEFINE(HAVE_CRTIN) ! fi case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; --- 222,230 ---- ## NetBSD ports *-*-netbsd* ) opsys=netbsd ! if test -f /usr/lib/crti.o; then] AC_DEFINE(HAVE_CRTIN) ! [ fi case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; From MAILER-DAEMON Tue Jul 15 04:13:43 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cKwO-0001Ap-Io for mharc-emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:13:40 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cKvd-0000Ff-OZ for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:12:53 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cKv6-0008QY-Un for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:12:20 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cKu9-0008Jd-K3 for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:11:21 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19cKt7-0005Ly-RT for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:10:17 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Tue, 15 Jul 2003 04:10:17 -0400 Subject: [Emacs-diffs] Changes to emacs/configure X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jul 2003 08:13:34 -0000 Index: emacs/configure diff -c emacs/configure:1.115 emacs/configure:1.116 *** emacs/configure:1.115 Sun Jul 13 22:41:20 2003 --- emacs/configure Tue Jul 15 04:10:17 2003 *************** *** 1,9 **** #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.57. # ! # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## --- 1,8 ---- #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.57a. # ! # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## *************** *** 22,28 **** fi # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false --- 21,27 ---- fi # Support unset when possible. ! if (as_foo=foo; unset as_foo) >/dev/null 2>&1; then as_unset=unset else as_unset=false *************** *** 41,47 **** LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do ! if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var --- 40,46 ---- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do ! if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var *************** *** 668,674 **** # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ! localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in --- 667,673 ---- # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ! localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in *************** *** 708,717 **** # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$0" : 'X\(//\)[^/]' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 707,716 ---- # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$0" : 'X\(//\)[^/]' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 803,811 **** cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX ! [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ! [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify --- 802,810 ---- cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX ! [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ! [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify *************** *** 942,948 **** echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || ! test -f $ac_srcdir/configure.in; then echo $ac_configure --help else --- 941,947 ---- echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || ! test -f $ac_srcdir/configure.in; then echo $ac_configure --help else *************** *** 956,963 **** if $ac_init_version; then cat <<\_ACEOF ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF --- 955,961 ---- if $ac_init_version; then cat <<\_ACEOF ! Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF *************** *** 969,975 **** running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was ! generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ --- 967,973 ---- running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was ! generated by GNU Autoconf 2.57a. Invocation command line was $ $0 $@ *************** *** 1046,1064 **** 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ! ac_must_keep_next=false # Got value, back to normal. else ! case $ac_arg in ! *=* | --config-cache | -C | -disable-* | --disable-* \ ! | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ! | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ! | -with-* | --with-* | -without-* | --without-* | --x) ! case "$ac_configure_args0 " in ! "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ! esac ! ;; ! -* ) ac_must_keep_next=true ;; ! esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. --- 1044,1062 ---- 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ! ac_must_keep_next=false # Got value, back to normal. else ! case $ac_arg in ! *=* | --config-cache | -C | -disable-* | --disable-* \ ! | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ! | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ! | -with-* | --with-* | -without-* | --without-* | --x) ! case "$ac_configure_args0 " in ! "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ! esac ! ;; ! -* ) ac_must_keep_next=true ;; ! esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. *************** *** 1092,1103 **** case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ ! "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } --- 1090,1101 ---- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ ! "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } *************** *** 1126,1132 **** for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi --- 1124,1130 ---- for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi *************** *** 1225,1231 **** # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | ! sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" --- 1223,1229 ---- # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | ! sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" *************** *** 1242,1254 **** ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ! ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. --- 1240,1252 ---- ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ! ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. *************** *** 1662,1667 **** --- 1660,1672 ---- ## NetBSD ports *-*-netbsd* ) opsys=netbsd + if test -f /usr/lib/crti.o; then + cat >>confdefs.h <<\_ACEOF + #define HAVE_CRTIN 1 + _ACEOF + + fi + case "${canonical}" in alpha*-*-netbsd*) machine=alpha ;; i[3456]86-*-netbsd*) machine=intel386 ;; *************** *** 2964,2970 **** (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 2969,2974 ---- *************** *** 2984,2991 **** # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:$LINENO: checking for C compiler default output" >&5 ! echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 --- 2988,2995 ---- # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ! echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 *************** *** 3005,3027 **** test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ! ;; conftest.$ac_ext ) ! # This is the source file. ! ;; [ab].out ) ! # We found the default executable, but exeext='' is most ! # certainly right. ! break;; *.* ) ! ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool, ! # but it would be cool to find out if it's true. Does anybody ! # maintain Libtool? --akim. ! export ac_cv_exeext ! break;; * ) ! break;; esac done else --- 3009,3031 ---- test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ! ;; conftest.$ac_ext ) ! # This is the source file. ! ;; [ab].out ) ! # We found the default executable, but exeext='' is most ! # certainly right. ! break;; *.* ) ! ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool, ! # but it would be cool to find out if it's true. Does anybody ! # maintain Libtool? --akim. ! export ac_cv_exeext ! break;; * ) ! break;; esac done else *************** *** 3095,3102 **** case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! export ac_cv_exeext ! break;; * ) break;; esac done --- 3099,3106 ---- case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! export ac_cv_exeext ! break;; * ) break;; esac done *************** *** 3121,3127 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3125,3130 ---- *************** *** 3172,3178 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3175,3180 ---- *************** *** 3196,3202 **** 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=$? --- 3198,3204 ---- 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=$? *************** *** 3225,3231 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3227,3232 ---- *************** *** 3246,3252 **** 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=$? --- 3247,3253 ---- 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=$? *************** *** 3286,3292 **** ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3287,3292 ---- *************** *** 3344,3350 **** 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=$? --- 3344,3350 ---- 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=$? *************** *** 3389,3403 **** 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 for ac_declaration in \ ! ''\ ! '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ --- 3389,3402 ---- 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 for ac_declaration in \ ! '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ *************** *** 3405,3418 **** 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ - #include $ac_declaration int main () { --- 3404,3416 ---- 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration + #include int main () { *************** *** 3427,3433 **** 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=$? --- 3425,3431 ---- 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=$? *************** *** 3442,3448 **** fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3440,3445 ---- *************** *** 3463,3469 **** 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=$? --- 3460,3466 ---- 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=$? *************** *** 3570,3576 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3567,3572 ---- *************** *** 3581,3587 **** #else # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 --- 3577,3583 ---- #else # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 *************** *** 3613,3619 **** # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3609,3614 ---- *************** *** 3677,3683 **** # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3672,3677 ---- *************** *** 3688,3694 **** #else # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 --- 3682,3688 ---- #else # include #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 *************** *** 3720,3726 **** # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 3714,3719 ---- *************** *** 3787,3792 **** --- 3780,3786 ---- # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" + # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 *************** *** 3803,3808 **** --- 3797,3803 ---- case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. *************** *** 3810,3829 **** # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done ;; --- 3805,3824 ---- # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done ;; *************** *** 4086,4092 **** echo "$as_me:$LINENO: checking for AIX" >&5 echo $ECHO_N "checking for AIX... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4081,4086 ---- *************** *** 4285,4292 **** while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4279,4285 ---- while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. ! cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext *************** *** 4315,4321 **** 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=$? --- 4308,4314 ---- 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=$? *************** *** 4335,4341 **** 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=$? --- 4328,4334 ---- 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=$? *************** *** 4348,4354 **** fi rm -f conftest.$ac_objext ! break done CC=$ac_save_CC rm -f conftest.$ac_ext --- 4341,4347 ---- fi rm -f conftest.$ac_objext ! break done CC=$ac_save_CC rm -f conftest.$ac_ext *************** *** 4368,4374 **** while :; do ac_cv_sys_file_offset_bits=no cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4361,4366 ---- *************** *** 4397,4403 **** 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=$? --- 4389,4395 ---- 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=$? *************** *** 4411,4417 **** fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4403,4408 ---- *************** *** 4441,4447 **** 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=$? --- 4432,4438 ---- 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=$? *************** *** 4475,4481 **** while :; do ac_cv_sys_large_files=no cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4466,4471 ---- *************** *** 4504,4510 **** 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=$? --- 4494,4500 ---- 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=$? *************** *** 4518,4524 **** fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4508,4513 ---- *************** *** 4548,4554 **** 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=$? --- 4537,4543 ---- 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=$? *************** *** 4585,4591 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4574,4579 ---- *************** *** 4610,4616 **** 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=$? --- 4598,4604 ---- 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=$? *************** *** 4628,4634 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4616,4621 ---- *************** *** 4650,4656 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4637,4642 ---- *************** *** 4675,4681 **** : else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4661,4666 ---- *************** *** 4687,4695 **** # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif --- 4672,4680 ---- # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif *************** *** 4700,4706 **** int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } --- 4685,4691 ---- int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } *************** *** 4750,4756 **** for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 --- 4735,4741 ---- for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 *************** *** 4759,4765 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4744,4749 ---- *************** *** 4775,4781 **** 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=$? --- 4759,4765 ---- 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=$? *************** *** 4821,4827 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4805,4810 ---- *************** *** 4836,4842 **** 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=$? --- 4819,4825 ---- 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=$? *************** *** 4857,4863 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4840,4845 ---- *************** *** 4898,4926 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 4880,4907 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 4931,4937 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 4912,4918 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 4955,4961 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lossaudio $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 4936,4941 ---- *************** *** 4983,4989 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 4963,4969 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 5052,5058 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5032,5037 ---- *************** *** 5067,5073 **** 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=$? --- 5046,5052 ---- 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=$? *************** *** 5088,5094 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5067,5072 ---- *************** *** 5129,5157 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 5107,5134 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 5162,5168 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 5139,5145 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 5187,5193 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5164,5169 ---- *************** *** 5238,5244 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5214,5219 ---- *************** *** 5263,5269 **** 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=$? --- 5238,5244 ---- 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=$? *************** *** 5281,5287 **** if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5256,5261 ---- *************** *** 5303,5309 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5277,5282 ---- *************** *** 5328,5334 **** : else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5301,5306 ---- *************** *** 5340,5348 **** # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif --- 5312,5320 ---- # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif *************** *** 5353,5359 **** int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } --- 5325,5331 ---- int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } *************** *** 5398,5404 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5370,5375 ---- *************** *** 5423,5429 **** 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=$? --- 5394,5400 ---- 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=$? *************** *** 5454,5460 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5425,5430 ---- *************** *** 5478,5484 **** 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=$? --- 5448,5454 ---- 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=$? *************** *** 5519,5525 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5489,5494 ---- *************** *** 5543,5549 **** 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=$? --- 5512,5518 ---- 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=$? *************** *** 5590,5596 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5559,5564 ---- *************** *** 5621,5627 **** 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=$? --- 5589,5595 ---- 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=$? *************** *** 5653,5659 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5621,5626 ---- *************** *** 5686,5692 **** 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=$? --- 5653,5659 ---- 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=$? *************** *** 5717,5723 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5684,5689 ---- *************** *** 5748,5754 **** 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=$? --- 5714,5720 ---- 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=$? *************** *** 5778,5784 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5744,5749 ---- *************** *** 5799,5805 **** 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=$? --- 5764,5770 ---- 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=$? *************** *** 5830,5836 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5795,5800 ---- *************** *** 5860,5866 **** 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=$? --- 5824,5830 ---- 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=$? *************** *** 5892,5898 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5856,5861 ---- *************** *** 5913,5919 **** 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=$? --- 5876,5882 ---- 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=$? *************** *** 5945,5951 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5908,5913 ---- *************** *** 5968,5974 **** 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=$? --- 5930,5936 ---- 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=$? *************** *** 5999,6005 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5961,5966 ---- *************** *** 6025,6031 **** 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=$? --- 5986,5992 ---- 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=$? *************** *** 6037,6043 **** sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5998,6003 ---- *************** *** 6063,6069 **** 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=$? --- 6023,6029 ---- 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=$? *************** *** 6104,6110 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6064,6069 ---- *************** *** 6129,6135 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6088,6094 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 6161,6167 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6120,6125 ---- *************** *** 6185,6191 **** 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=$? --- 6143,6149 ---- 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=$? *************** *** 6197,6203 **** sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6155,6160 ---- *************** *** 6221,6227 **** 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=$? --- 6178,6184 ---- 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=$? *************** *** 6276,6282 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6233,6238 ---- *************** *** 6299,6305 **** 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=$? --- 6255,6261 ---- 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=$? *************** *** 6330,6336 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6286,6291 ---- *************** *** 6397,6403 **** 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=$? --- 6352,6358 ---- 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=$? *************** *** 6428,6434 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6383,6388 ---- *************** *** 6449,6455 **** 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=$? --- 6403,6409 ---- 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=$? *************** *** 6482,6488 **** echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else --- 6436,6442 ---- echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else *************** *** 6599,6606 **** # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && ! test -f $ac_im_libdir/libX11.$ac_extension; then ! ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are --- 6553,6560 ---- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && ! test -f $ac_im_libdir/libX11.$ac_extension; then ! ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are *************** *** 6660,6666 **** # Guess where to find include files, by looking for Intrinsic.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6614,6619 ---- *************** *** 6708,6714 **** ac_save_LIBS=$LIBS LIBS="-lXt $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6661,6666 ---- *************** *** 6729,6735 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6681,6687 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 6763,6769 **** else # Record where we found X for the cache. ac_cv_have_x="have_x=yes \ ! ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi --- 6715,6721 ---- else # Record where we found X for the cache. ac_cv_have_x="have_x=yes \ ! ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi *************** *** 6888,6908 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char malloc_get_state (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 6840,6867 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define malloc_get_state to an innocuous variant, in case declares malloc_get_state. + For example, HP-UX 11i declares gettimeofday. */ + #define malloc_get_state innocuous_malloc_get_state + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char malloc_get_state (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef malloc_get_state + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 6937,6943 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6896,6902 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 6966,6986 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char malloc_set_state (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 6925,6952 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define malloc_set_state to an innocuous variant, in case declares malloc_set_state. + For example, HP-UX 11i declares gettimeofday. */ + #define malloc_set_state innocuous_malloc_set_state + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char malloc_set_state (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef malloc_set_state + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 7015,7021 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6981,6987 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7044,7050 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7010,7015 ---- *************** *** 7065,7071 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7030,7036 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7125,7131 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7090,7095 ---- *************** *** 7140,7146 **** 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=$? --- 7104,7110 ---- 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=$? *************** *** 7161,7167 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7125,7130 ---- *************** *** 7202,7230 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 7165,7192 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 7235,7241 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 7197,7203 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 7260,7280 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 7222,7249 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 7309,7315 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7278,7284 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7343,7349 **** ac_cv_func_mmap_fixed_mapped=no else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7312,7317 ---- *************** *** 7453,7459 **** exit (1); data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, ! MAP_PRIVATE | MAP_FIXED, fd, 0L)) exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) --- 7421,7427 ---- exit (1); data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, ! MAP_PRIVATE | MAP_FIXED, fd, 0L)) exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) *************** *** 7525,7531 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7493,7498 ---- *************** *** 7553,7559 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7520,7526 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7589,7595 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7556,7561 ---- *************** *** 7611,7617 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7577,7583 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7643,7649 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7609,7614 ---- *************** *** 7671,7677 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7636,7642 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7726,7732 **** LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7691,7696 ---- *************** *** 7747,7753 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7711,7717 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7794,7800 **** echo "$as_me:$LINENO: checking whether X on GNU/Linux needs -b to link" >&5 echo $ECHO_N "checking whether X on GNU/Linux needs -b to link... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7758,7763 ---- *************** *** 7815,7821 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7778,7784 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7839,7845 **** CPPFLAGS="$CPPFLAGS -b i486-linuxaout" LIBS="$LIBS -b i486-linuxaout" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7802,7807 ---- *************** *** 7860,7866 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7822,7828 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7898,7904 **** echo "$as_me:$LINENO: checking for Xkb" >&5 echo $ECHO_N "checking for Xkb... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 7860,7865 ---- *************** *** 7920,7926 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7881,7887 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7958,7978 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 7919,7946 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 8007,8013 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7975,7981 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8041,8047 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8009,8014 ---- *************** *** 8065,8071 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8032,8038 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8102,8108 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8069,8074 ---- *************** *** 8126,8132 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8092,8098 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8294,8300 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8260,8265 ---- *************** *** 8317,8323 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8282,8288 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8356,8362 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8321,8326 ---- *************** *** 8380,8386 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8344,8350 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8425,8431 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXmu $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8389,8394 ---- *************** *** 8453,8459 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8416,8422 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8495,8501 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8458,8463 ---- *************** *** 8523,8529 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8485,8491 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8567,8573 **** CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8529,8534 ---- *************** *** 8588,8594 **** 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=$? --- 8549,8555 ---- 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=$? *************** *** 8623,8629 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8584,8589 ---- *************** *** 8648,8654 **** 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=$? --- 8608,8614 ---- 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=$? *************** *** 8681,8687 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXp $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8641,8646 ---- *************** *** 8709,8715 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8668,8674 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8751,8757 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8710,8715 ---- *************** *** 8796,8802 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXaw3d $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8754,8759 ---- *************** *** 8824,8830 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8781,8787 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8899,8905 **** CFLAGS="$CFLAGS --pedantic-errors" fi cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8856,8861 ---- *************** *** 8935,8941 **** 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=$? --- 8891,8897 ---- 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=$? *************** *** 8980,8986 **** echo "$as_me:$LINENO: checking X11/xpm.h usability" >&5 echo $ECHO_N "checking X11/xpm.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8936,8941 ---- *************** *** 8995,9001 **** 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=$? --- 8950,8956 ---- 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=$? *************** *** 9016,9022 **** echo "$as_me:$LINENO: checking X11/xpm.h presence" >&5 echo $ECHO_N "checking X11/xpm.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 8971,8976 ---- *************** *** 9057,9085 **** yes:no ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/xpm.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 9011,9038 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: X11/xpm.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/xpm.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: X11/xpm.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: X11/xpm.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/xpm.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: X11/xpm.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 *************** *** 9105,9111 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXpm -lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9058,9063 ---- *************** *** 9133,9139 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9085,9091 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9162,9168 **** echo "$as_me:$LINENO: checking for XpmReturnAllocPixels preprocessor define" >&5 echo $ECHO_N "checking for XpmReturnAllocPixels preprocessor define... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9114,9119 ---- *************** *** 9219,9225 **** echo "$as_me:$LINENO: checking jerror.h usability" >&5 echo $ECHO_N "checking jerror.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9170,9175 ---- *************** *** 9234,9240 **** 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=$? --- 9184,9190 ---- 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=$? *************** *** 9255,9261 **** echo "$as_me:$LINENO: checking jerror.h presence" >&5 echo $ECHO_N "checking jerror.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9205,9210 ---- *************** *** 9296,9324 **** yes:no ) { echo "$as_me:$LINENO: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: jerror.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jerror.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: jerror.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 9245,9272 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: jerror.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: jerror.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jerror.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: jerror.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: jerror.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: jerror.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: jerror.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 *************** *** 9344,9350 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9292,9297 ---- *************** *** 9372,9378 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9319,9325 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9406,9412 **** _ACEOF cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9353,9358 ---- *************** *** 9449,9455 **** echo "$as_me:$LINENO: checking png.h usability" >&5 echo $ECHO_N "checking png.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9395,9400 ---- *************** *** 9464,9470 **** 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=$? --- 9409,9415 ---- 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=$? *************** *** 9485,9491 **** echo "$as_me:$LINENO: checking png.h presence" >&5 echo $ECHO_N "checking png.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9430,9435 ---- *************** *** 9526,9554 **** yes:no ) { echo "$as_me:$LINENO: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: png.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: png.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: png.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: png.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: png.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 9470,9497 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: png.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: png.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: png.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: png.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: png.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: png.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: png.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: png.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: png.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 *************** *** 9574,9580 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lpng -lz -lm $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9517,9522 ---- *************** *** 9602,9608 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9544,9550 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9655,9661 **** echo "$as_me:$LINENO: checking tiffio.h usability" >&5 echo $ECHO_N "checking tiffio.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9597,9602 ---- *************** *** 9670,9676 **** 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=$? --- 9611,9617 ---- 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=$? *************** *** 9691,9697 **** echo "$as_me:$LINENO: checking tiffio.h presence" >&5 echo $ECHO_N "checking tiffio.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9632,9637 ---- *************** *** 9732,9760 **** yes:no ) { echo "$as_me:$LINENO: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: tiffio.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: tiffio.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: tiffio.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 9672,9699 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: tiffio.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: tiffio.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: tiffio.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: tiffio.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: tiffio.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: tiffio.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: tiffio.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 *************** *** 9783,9789 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $tifflibs $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9722,9727 ---- *************** *** 9811,9817 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9749,9755 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9864,9870 **** echo "$as_me:$LINENO: checking gif_lib.h usability" >&5 echo $ECHO_N "checking gif_lib.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9802,9807 ---- *************** *** 9879,9885 **** 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=$? --- 9816,9822 ---- 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=$? *************** *** 9900,9906 **** echo "$as_me:$LINENO: checking gif_lib.h presence" >&5 echo $ECHO_N "checking gif_lib.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9837,9842 ---- *************** *** 9941,9969 **** yes:no ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: gif_lib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: gif_lib.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 9877,9904 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: gif_lib.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: gif_lib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: gif_lib.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: gif_lib.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: gif_lib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: gif_lib.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: gif_lib.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 *************** *** 9991,9997 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lungif $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 9926,9931 ---- *************** *** 10019,10025 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9953,9959 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10071,10077 **** 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 - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10005,10010 ---- *************** *** 10086,10092 **** 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=$? --- 10019,10025 ---- 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=$? *************** *** 10107,10113 **** 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 - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10040,10045 ---- *************** *** 10148,10176 **** 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 preprocessor's result" >&5 ! echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; 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: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 10080,10107 ---- 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 *************** *** 10229,10235 **** echo "$as_me:$LINENO: checking X11/SM/SMlib.h usability" >&5 echo $ECHO_N "checking X11/SM/SMlib.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10160,10165 ---- *************** *** 10244,10250 **** 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=$? --- 10174,10180 ---- 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=$? *************** *** 10265,10271 **** echo "$as_me:$LINENO: checking X11/SM/SMlib.h presence" >&5 echo $ECHO_N "checking X11/SM/SMlib.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10195,10200 ---- *************** *** 10306,10334 **** yes:no ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 10235,10262 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: X11/SM/SMlib.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 *************** *** 10354,10360 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lSM $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10282,10287 ---- *************** *** 10382,10388 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10309,10315 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10430,10436 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10357,10362 ---- *************** *** 10451,10457 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10377,10383 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10484,10490 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10410,10415 ---- *************** *** 10505,10511 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10430,10436 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10536,10542 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10461,10466 ---- *************** *** 10577,10583 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10501,10507 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10620,10626 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10544,10549 ---- *************** *** 10653,10673 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 10576,10603 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 10702,10708 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10632,10638 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10740,10746 **** ac_cv_c_stack_direction=0 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10670,10675 ---- *************** *** 10811,10817 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10740,10745 ---- *************** *** 10839,10845 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10767,10773 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10878,10884 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lmail $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10806,10811 ---- *************** *** 10906,10912 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10833,10839 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10942,10948 **** ac_check_lib_save_LIBS=$LIBS LIBS="-llockfile $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 10869,10874 ---- *************** *** 10970,10976 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10896,10902 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 11059,11079 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 10985,11012 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 11108,11114 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11041,11047 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 11150,11156 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 11083,11088 ---- *************** *** 11165,11171 **** 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=$? --- 11097,11103 ---- 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=$? *************** *** 11186,11192 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 11118,11123 ---- *************** *** 11227,11255 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 11158,11185 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 11260,11266 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 11190,11196 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 11360,11380 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 11290,11317 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 11409,11415 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11346,11352 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 11452,11458 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 11389,11394 ---- *************** *** 11467,11473 **** 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=$? --- 11403,11409 ---- 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=$? *************** *** 11488,11494 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 11424,11429 ---- *************** *** 11529,11557 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 11464,11491 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 11562,11568 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 11496,11502 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 11580,11586 **** ! for ac_header in sys/time.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then --- 11514,11521 ---- ! ! for ac_header in stdlib.h sys/time.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then *************** *** 11596,11602 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 11531,11536 ---- *************** *** 11611,11617 **** 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=$? --- 11545,11551 ---- 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=$? *************** *** 11632,11638 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 11566,11571 ---- *************** *** 11673,11701 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 11606,11633 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 11706,11712 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 11638,11644 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 11731,11751 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 11663,11690 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 11780,11786 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11719,11725 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 11814,11820 **** ac_cv_func_working_mktime=no else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 11753,11758 ---- *************** *** 11832,11837 **** --- 11770,11779 ---- # endif #endif + #if HAVE_STDLIB_H + # include + #endif + #if HAVE_UNISTD_H # include #endif *************** *** 11844,11853 **** #undef putenv static time_t time_t_max; /* Values we'll use to set the TZ environment variable. */ ! static const char *const tz_strings[] = { ! (const char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) --- 11786,11796 ---- #undef putenv static time_t time_t_max; + static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ ! static char *tz_strings[] = { ! (char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) *************** *** 11878,11892 **** } static void ! mktime_test (now) time_t now; { struct tm *lt; if ((lt = localtime (&now)) && mktime (lt) != now) exit (1); ! now = time_t_max - now; ! if ((lt = localtime (&now)) && mktime (lt) != now) ! exit (1); } static void --- 11821,11841 ---- } static void ! mktime_test1 (now) time_t now; { struct tm *lt; if ((lt = localtime (&now)) && mktime (lt) != now) exit (1); ! } ! ! static void ! mktime_test (now) ! time_t now; ! { ! mktime_test1 (now); ! mktime_test1 ((time_t) (time_t_max - now)); ! mktime_test1 ((time_t) (time_t_min + now)); } static void *************** *** 11946,11951 **** --- 11895,11903 ---- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) continue; time_t_max--; + if ((time_t) -1 < 0) + for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) + continue; delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { *************** *** 11954,11964 **** for (t = 0; t <= time_t_max - delta; t += delta) mktime_test (t); ! mktime_test ((time_t) 60 * 60); ! mktime_test ((time_t) 60 * 60 * 24); for (j = 1; 0 < j; j *= 2) ! bigtime_test (j); bigtime_test (j - 1); } irix_6_4_bug (); --- 11906,11917 ---- for (t = 0; t <= time_t_max - delta; t += delta) mktime_test (t); ! mktime_test ((time_t) 1); ! mktime_test ((time_t) (60 * 60)); ! mktime_test ((time_t) (60 * 60 * 24)); for (j = 1; 0 < j; j *= 2) ! bigtime_test (j); bigtime_test (j - 1); } irix_6_4_bug (); *************** *** 12020,12040 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char getloadavg (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 11973,12000 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define getloadavg to an innocuous variant, in case declares getloadavg. + For example, HP-UX 11i declares gettimeofday. */ + #define getloadavg innocuous_getloadavg + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char getloadavg (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef getloadavg + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 12069,12075 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12029,12035 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12104,12124 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 12064,12091 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 12153,12159 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12120,12126 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12189,12195 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkstat $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12156,12161 ---- *************** *** 12217,12223 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12183,12189 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12259,12265 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lelf $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12225,12230 ---- *************** *** 12287,12293 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12252,12258 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12319,12325 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkvm $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12284,12289 ---- *************** *** 12347,12353 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12311,12317 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12378,12384 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12342,12347 ---- *************** *** 12406,12412 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12369,12375 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12443,12449 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lgetloadavg $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12406,12411 ---- *************** *** 12471,12477 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12433,12439 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12509,12529 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 12471,12498 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 12558,12564 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12527,12533 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12602,12608 **** echo "$as_me:$LINENO: checking sys/dg_sys_info.h usability" >&5 echo $ECHO_N "checking sys/dg_sys_info.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12571,12576 ---- *************** *** 12617,12623 **** 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=$? --- 12585,12591 ---- 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=$? *************** *** 12638,12644 **** echo "$as_me:$LINENO: checking sys/dg_sys_info.h presence" >&5 echo $ECHO_N "checking sys/dg_sys_info.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12606,12611 ---- *************** *** 12679,12707 **** yes:no ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 12646,12673 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: sys/dg_sys_info.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 *************** *** 12734,12740 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldgc $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12700,12705 ---- *************** *** 12762,12768 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12727,12733 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12806,12812 **** echo "$as_me:$LINENO: checking locale.h usability" >&5 echo $ECHO_N "checking locale.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12771,12776 ---- *************** *** 12821,12827 **** 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=$? --- 12785,12791 ---- 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=$? *************** *** 12842,12848 **** echo "$as_me:$LINENO: checking locale.h presence" >&5 echo $ECHO_N "checking locale.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 12806,12811 ---- *************** *** 12883,12911 **** yes:no ) { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 12846,12873 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: locale.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: locale.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: locale.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: locale.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 *************** *** 12934,12954 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 12896,12923 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 12983,12989 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12952,12958 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 13035,13041 **** echo "$as_me:$LINENO: checking inq_stats/cpustats.h usability" >&5 echo $ECHO_N "checking inq_stats/cpustats.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13004,13009 ---- *************** *** 13050,13056 **** 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=$? --- 13018,13024 ---- 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=$? *************** *** 13071,13077 **** echo "$as_me:$LINENO: checking inq_stats/cpustats.h presence" >&5 echo $ECHO_N "checking inq_stats/cpustats.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13039,13044 ---- *************** *** 13112,13140 **** yes:no ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 13079,13106 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: inq_stats/cpustats.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 *************** *** 13182,13188 **** echo "$as_me:$LINENO: checking sys/cpustats.h usability" >&5 echo $ECHO_N "checking sys/cpustats.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13148,13153 ---- *************** *** 13197,13203 **** 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=$? --- 13162,13168 ---- 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=$? *************** *** 13218,13224 **** echo "$as_me:$LINENO: checking sys/cpustats.h presence" >&5 echo $ECHO_N "checking sys/cpustats.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13183,13188 ---- *************** *** 13259,13287 **** yes:no ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 13223,13250 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: sys/cpustats.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 *************** *** 13326,13332 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13289,13294 ---- *************** *** 13341,13347 **** 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=$? --- 13303,13309 ---- 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=$? *************** *** 13362,13368 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13324,13329 ---- *************** *** 13403,13431 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 13364,13391 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 13436,13442 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 13396,13402 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 13470,13476 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13430,13435 ---- *************** *** 13485,13491 **** 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=$? --- 13444,13450 ---- 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=$? *************** *** 13506,13512 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13465,13470 ---- *************** *** 13547,13575 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 13505,13532 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 13580,13586 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 13537,13543 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 13596,13602 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13553,13558 ---- *************** *** 13620,13626 **** 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=$? --- 13576,13582 ---- 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=$? *************** *** 13632,13638 **** sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13588,13593 ---- *************** *** 13656,13662 **** 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=$? --- 13611,13617 ---- 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=$? *************** *** 13704,13710 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13659,13664 ---- *************** *** 13748,13754 **** # If we got an error (system does not support symlinks), try without -L. test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` ac_cv_group_kmem=`echo $ac_ls_output \ ! | sed -ne 's/[ ][ ]*/ /g; s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/; / /s/.* //;p;'` --- 13702,13708 ---- # If we got an error (system does not support symlinks), try without -L. test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` ac_cv_group_kmem=`echo $ac_ls_output \ ! | sed -ne 's/[ ][ ]*/ /g; s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/; / /s/.* //;p;'` *************** *** 13774,13780 **** while :; do ac_cv_sys_largefile_source=no cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13728,13733 ---- *************** *** 13795,13801 **** 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=$? --- 13748,13754 ---- 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=$? *************** *** 13809,13815 **** fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13762,13767 ---- *************** *** 13831,13837 **** 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=$? --- 13783,13789 ---- 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=$? *************** *** 13867,13873 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13819,13824 ---- *************** *** 13888,13894 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13839,13845 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 13921,13927 **** else # Use it with a single arg. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 13872,13877 ---- *************** *** 13942,13948 **** 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=$? --- 13892,13898 ---- 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=$? *************** *** 13979,13999 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 13929,13956 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 14028,14034 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13985,13991 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14060,14066 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14017,14022 ---- *************** *** 14088,14094 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14044,14050 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14129,14149 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 14085,14112 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 14178,14184 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14141,14147 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14215,14235 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 14178,14205 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 14264,14270 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14234,14240 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14303,14309 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14273,14278 ---- *************** *** 14331,14337 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14300,14306 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14369,14389 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char res_send (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 14338,14365 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define res_send to an innocuous variant, in case declares res_send. + For example, HP-UX 11i declares gettimeofday. */ + #define res_send innocuous_res_send + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char res_send (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef res_send + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 14418,14424 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14394,14400 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14444,14464 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char __res_send (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 14420,14447 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define __res_send to an innocuous variant, in case declares __res_send. + For example, HP-UX 11i declares gettimeofday. */ + #define __res_send innocuous___res_send + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char __res_send (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef __res_send + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 14493,14499 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14476,14482 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14521,14527 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14504,14509 ---- *************** *** 14549,14555 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14531,14537 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14578,14584 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14560,14565 ---- *************** *** 14606,14612 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14587,14593 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14650,14670 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char hes_getmailhost (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 14631,14658 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define hes_getmailhost to an innocuous variant, in case declares hes_getmailhost. + For example, HP-UX 11i declares gettimeofday. */ + #define hes_getmailhost innocuous_hes_getmailhost + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char hes_getmailhost (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef hes_getmailhost + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 14699,14705 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14687,14693 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14727,14733 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lhesiod $RESOLVLIB $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14715,14720 ---- *************** *** 14755,14761 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14742,14748 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14798,14804 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lcom_err $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14785,14790 ---- *************** *** 14826,14832 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14812,14818 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14862,14868 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lk5crypto $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14848,14853 ---- *************** *** 14890,14896 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14875,14881 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14926,14932 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14911,14916 ---- *************** *** 14954,14960 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14938,14944 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14990,14996 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb5 $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 14974,14979 ---- *************** *** 15018,15024 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15001,15007 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15055,15061 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldes425 $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15038,15043 ---- *************** *** 15083,15089 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15065,15071 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15118,15124 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldes $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15100,15105 ---- *************** *** 15146,15152 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15127,15133 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15184,15190 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb4 $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15165,15170 ---- *************** *** 15212,15218 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15192,15198 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15247,15253 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15227,15232 ---- *************** *** 15275,15281 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15254,15260 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15324,15330 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15303,15308 ---- *************** *** 15339,15345 **** 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=$? --- 15317,15323 ---- 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=$? *************** *** 15360,15366 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15338,15343 ---- *************** *** 15401,15429 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 15378,15405 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 15434,15440 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 15410,15416 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15467,15473 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15443,15448 ---- *************** *** 15482,15488 **** 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=$? --- 15457,15463 ---- 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=$? *************** *** 15503,15509 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15478,15483 ---- *************** *** 15544,15572 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 15518,15545 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 15577,15583 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 15550,15556 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15606,15612 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15579,15584 ---- *************** *** 15621,15627 **** 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=$? --- 15593,15599 ---- 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=$? *************** *** 15642,15648 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15614,15619 ---- *************** *** 15683,15711 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 15654,15681 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 15716,15722 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 15686,15692 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15745,15751 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15715,15720 ---- *************** *** 15760,15766 **** 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=$? --- 15729,15735 ---- 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=$? *************** *** 15781,15787 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15750,15755 ---- *************** *** 15822,15850 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 15790,15817 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 15855,15861 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 15822,15828 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15895,15901 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15862,15867 ---- *************** *** 15910,15916 **** 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=$? --- 15876,15882 ---- 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=$? *************** *** 15931,15937 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15897,15902 ---- *************** *** 15972,16000 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 15937,15964 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 16005,16011 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 15969,15975 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 16034,16040 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 15998,16003 ---- *************** *** 16049,16055 **** 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=$? --- 16012,16018 ---- 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=$? *************** *** 16070,16076 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16033,16038 ---- *************** *** 16111,16139 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 16073,16100 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 16144,16150 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 16105,16111 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 16173,16179 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16134,16139 ---- *************** *** 16188,16194 **** 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=$? --- 16148,16154 ---- 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=$? *************** *** 16209,16215 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16169,16174 ---- *************** *** 16250,16278 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 16209,16236 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 16283,16289 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 16241,16247 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 16324,16330 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16282,16287 ---- *************** *** 16339,16345 **** 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=$? --- 16296,16302 ---- 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=$? *************** *** 16360,16366 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16317,16322 ---- *************** *** 16401,16429 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 16357,16384 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 16434,16440 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 16389,16395 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 16462,16468 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16417,16422 ---- *************** *** 16490,16496 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 16444,16450 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 16529,16535 **** emacs_cv_localtime_cache=yes else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16483,16488 ---- *************** *** 16614,16634 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 16567,16594 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 16663,16669 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 16623,16629 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 16695,16701 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16655,16660 ---- *************** *** 16727,16733 **** 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=$? --- 16686,16692 ---- 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=$? *************** *** 16761,16767 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16720,16725 ---- *************** *** 16787,16793 **** 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=$? --- 16745,16751 ---- 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=$? *************** *** 16799,16805 **** sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16757,16762 ---- *************** *** 16825,16831 **** 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=$? --- 16782,16788 ---- 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=$? *************** *** 16866,16872 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16823,16828 ---- *************** *** 16891,16897 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 16847,16853 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 16925,16931 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16881,16886 ---- *************** *** 16946,16952 **** 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=$? --- 16901,16907 ---- 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=$? *************** *** 16956,16962 **** emacs_cv_struct_timezone=yes else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 16911,16916 ---- *************** *** 17020,17040 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char socket (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 16974,17001 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define socket to an innocuous variant, in case declares socket. + For example, HP-UX 11i declares gettimeofday. */ + #define socket innocuous_socket + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char socket (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef socket + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 17069,17075 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 17030,17036 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 17106,17112 **** echo "$as_me:$LINENO: checking netinet/in.h usability" >&5 echo $ECHO_N "checking netinet/in.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17067,17072 ---- *************** *** 17121,17127 **** 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=$? --- 17081,17087 ---- 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=$? *************** *** 17142,17148 **** echo "$as_me:$LINENO: checking netinet/in.h presence" >&5 echo $ECHO_N "checking netinet/in.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17102,17107 ---- *************** *** 17183,17211 **** yes:no ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: netinet/in.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: netinet/in.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 17142,17169 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: netinet/in.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: netinet/in.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: netinet/in.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: netinet/in.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: netinet/in.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: netinet/in.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: netinet/in.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 *************** *** 17244,17250 **** echo "$as_me:$LINENO: checking arpa/inet.h usability" >&5 echo $ECHO_N "checking arpa/inet.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17202,17207 ---- *************** *** 17259,17265 **** 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=$? --- 17216,17222 ---- 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=$? *************** *** 17280,17286 **** echo "$as_me:$LINENO: checking arpa/inet.h presence" >&5 echo $ECHO_N "checking arpa/inet.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17237,17242 ---- *************** *** 17321,17349 **** yes:no ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: arpa/inet.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 17277,17304 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: arpa/inet.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: arpa/inet.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: arpa/inet.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: arpa/inet.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: arpa/inet.h: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: arpa/inet.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 *************** *** 17405,17411 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17360,17365 ---- *************** *** 17429,17435 **** 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=$? --- 17383,17389 ---- 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=$? *************** *** 17474,17480 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17428,17433 ---- *************** *** 17489,17495 **** 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=$? --- 17442,17448 ---- 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=$? *************** *** 17510,17516 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17463,17468 ---- *************** *** 17551,17579 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ( cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 --- 17503,17530 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 + echo "$as_me: WARNING: $ac_header: 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 *************** *** 17584,17590 **** if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 17535,17541 ---- if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 17610,17630 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" --- 17561,17588 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ + /* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ + #define $ac_func innocuous_$ac_func + /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ + #ifdef __STDC__ # include #else # include #endif + + #undef $ac_func + /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" *************** *** 17659,17665 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 17617,17623 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 17702,17710 **** /* Some systems only have a dummy stub for fork() */ int main () { ! if (fork() < 0) ! exit (1); ! exit (0); } _ACEOF rm -f conftest$ac_exeext --- 17660,17668 ---- /* Some systems only have a dummy stub for fork() */ int main () { ! if (fork() < 0) ! exit (1); ! exit (0); } _ACEOF rm -f conftest$ac_exeext *************** *** 17760,17766 **** ac_cv_func_vfork_works=cross else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17718,17723 ---- *************** *** 17923,17929 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17880,17885 ---- *************** *** 17944,17950 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 17900,17906 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 17976,17982 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17932,17937 ---- *************** *** 18000,18006 **** 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=$? --- 17955,17961 ---- 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=$? *************** *** 18033,18039 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 17988,17993 ---- *************** *** 18055,18061 **** 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=$? --- 18009,18015 ---- 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=$? *************** *** 18092,18098 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 18046,18051 ---- *************** *** 18113,18119 **** 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=$? --- 18066,18072 ---- 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=$? *************** *** 18125,18131 **** sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 18078,18083 ---- *************** *** 18146,18152 **** 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=$? --- 18098,18104 ---- 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=$? *************** *** 18184,18190 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 18136,18141 ---- *************** *** 18205,18211 **** 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=$? --- 18156,18162 ---- 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=$? *************** *** 18429,18435 **** ## C preprocessor. cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 18380,18385 ---- *************** *** 18476,18488 **** # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ ! "s/'/'\\\\''/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | --- 18426,18438 ---- # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ ! "s/'/'\\\\''/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | *************** *** 18512,18524 **** # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ! ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; ! s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; ! s/^[^=]*=[ ]*$//; }' fi --- 18462,18474 ---- # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ! ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; ! s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; ! s/^[^=]*=[ ]*$//; }' fi *************** *** 18529,18535 **** for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | ! sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' --- 18479,18485 ---- for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | ! sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' *************** *** 18575,18581 **** fi # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false --- 18525,18531 ---- fi # Support unset when possible. ! if (as_foo=foo; unset as_foo) >/dev/null 2>&1; then as_unset=unset else as_unset=false *************** *** 18594,18600 **** LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do ! if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var --- 18544,18550 ---- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do ! if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var *************** *** 18809,18815 **** cat >&5 <<_CSEOF This file was extended by $as_me, which was ! generated by GNU Autoconf 2.57. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS --- 18759,18765 ---- cat >&5 <<_CSEOF This file was extended by $as_me, which was ! generated by GNU Autoconf 2.57a. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS *************** *** 18853,18861 **** -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] ! instantiate the configuration file FILE --header=FILE[:TEMPLATE] ! instantiate the configuration header FILE Configuration files: $config_files --- 18803,18811 ---- -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] ! instantiate the configuration file FILE --header=FILE[:TEMPLATE] ! instantiate the configuration header FILE Configuration files: $config_files *************** *** 18872,18882 **** cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status ! configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 ! Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir --- 18822,18831 ---- cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status ! configured by $0, generated by GNU Autoconf 2.57a, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ! Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir *************** *** 19167,19175 **** (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ! ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ! ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end --- 19116,19124 ---- (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ! ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ! ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end *************** *** 19187,19207 **** # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 19136,19156 ---- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19217,19226 **** as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 19166,19175 ---- as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19285,19291 **** configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. --- 19234,19240 ---- configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. *************** *** 19294,19317 **** case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo $f;; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo $f ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo $srcdir/$f ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } _ACEOF --- 19243,19266 ---- case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo "$f";; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo "$f" ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo "$srcdir/$f" ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } _ACEOF *************** *** 19353,19364 **** # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' --- 19302,19313 ---- # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' *************** *** 19367,19377 **** # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac --- 19316,19326 ---- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac *************** *** 19385,19412 **** case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo $f;; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo $f ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo $srcdir/$f ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. ! sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF --- 19334,19362 ---- case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! # Do quote $f, to prevent DOS paths from being IFS'd. ! echo "$f";; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo "$f" ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo "$srcdir/$f" ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. ! sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF *************** *** 19429,19437 **** s,[\\$`],\\&,g t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end ! s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times --- 19379,19387 ---- s,[\\$`],\\&,g t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end ! s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times *************** *** 19445,19457 **** # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF ! s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail --- 19395,19407 ---- # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF ! s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail *************** *** 19460,19466 **** # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. ! echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS --- 19410,19416 ---- # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. ! echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS *************** *** 19487,19493 **** # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' ! echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS --- 19437,19443 ---- # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' ! echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS *************** *** 19521,19530 **** else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 19471,19480 ---- else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19540,19549 **** as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 19490,19499 ---- as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19575,19584 **** ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_dest" : 'X\(//\)[^/]' \| \ ! X"$ac_dest" : 'X\(//\)$' \| \ ! X"$ac_dest" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 19525,19534 ---- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_dest" : 'X\(//\)[^/]' \| \ ! X"$ac_dest" : 'X\(//\)$' \| \ ! X"$ac_dest" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } From MAILER-DAEMON Tue Jul 15 04:22:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cL4T-00035G-QY for mharc-emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:22:01 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cKwX-0001NK-75 for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:13:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cKrU-00070Z-QU for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:08:37 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cKrO-0006re-1w for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:08:30 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19cKqN-0005D3-BU for emacs-diffs@gnu.org; Tue, 15 Jul 2003 04:07:27 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Tue, 15 Jul 2003 04:07:27 -0400 Subject: [Emacs-diffs] Changes to emacs/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jul 2003 08:21:59 -0000 Index: emacs/ChangeLog diff -c emacs/ChangeLog:1.335 emacs/ChangeLog:1.336 *** emacs/ChangeLog:1.335 Sun Jul 13 22:23:07 2003 --- emacs/ChangeLog Tue Jul 15 04:07:27 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-15 Andreas Schwab + + * configure.in: Temporarily leave quoting for AC_DEFINE. + 2003-07-13 Stefan Monnier * configure.in: Check for posix_memalign. From MAILER-DAEMON Tue Jul 15 15:46:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cViZ-0002PJ-2O for mharc-emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:44:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cVhc-0001fz-PI for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:43:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cVh0-0001HJ-5a for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:42:31 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cVde-0007vB-Ed for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:39:02 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19cVMH-0003w0-2s for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:21:05 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19cVLE-0001RA-4v for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:20:00 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 15 Jul 2003 15:20:00 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jul 2003 19:44:06 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.315 emacs/src/alloc.c:1.316 *** emacs/src/alloc.c:1.315 Mon Jul 14 01:37:52 2003 --- emacs/src/alloc.c Tue Jul 15 15:19:59 2003 *************** *** 2183,2196 **** void init_float () { ! float_block = (struct float_block *) lisp_align_malloc (sizeof *float_block, ! MEM_TYPE_FLOAT); ! float_block->next = 0; ! bzero ((char *) float_block->floats, sizeof float_block->floats); ! bzero ((char *) float_block->gcmarkbits, sizeof float_block->gcmarkbits); ! float_block_index = 0; float_free_list = 0; ! n_float_blocks = 1; } --- 2183,2192 ---- void init_float () { ! float_block = NULL; ! float_block_index = FLOAT_BLOCK_SIZE; /* Force alloc of new float_block. */ float_free_list = 0; ! n_float_blocks = 0; } *************** *** 2252,2272 **** /* We store cons cells inside of cons_blocks, allocating a new cons_block with malloc whenever necessary. Cons cells reclaimed by GC are put on a free list to be reallocated before allocating ! any new cons cells from the latest cons_block. ! ! Each cons_block is just under 1020 bytes long, ! since malloc really allocates in units of powers of two ! and uses 4 bytes for its own overhead. */ #define CONS_BLOCK_SIZE \ ! ((1020 - sizeof (struct cons_block *)) / sizeof (struct Lisp_Cons)) struct cons_block { ! struct cons_block *next; struct Lisp_Cons conses[CONS_BLOCK_SIZE]; }; /* Current cons_block. */ struct cons_block *cons_block; --- 2248,2282 ---- /* We store cons cells inside of cons_blocks, allocating a new cons_block with malloc whenever necessary. Cons cells reclaimed by GC are put on a free list to be reallocated before allocating ! any new cons cells from the latest cons_block. */ #define CONS_BLOCK_SIZE \ ! (((BLOCK_BYTES - sizeof (struct cons_block *)) * CHAR_BIT) \ ! / (sizeof (struct Lisp_Cons) * CHAR_BIT + 1)) ! ! #define CONS_BLOCK(fptr) \ ! ((struct cons_block *)(((EMACS_UINT)(fptr)) & ~(BLOCK_ALIGN - 1))) ! ! #define CONS_INDEX(fptr) \ ! ((((EMACS_UINT)(fptr)) & (BLOCK_ALIGN - 1)) / sizeof (struct Lisp_Cons)) struct cons_block { ! /* Place `conses' at the beginning, to ease up CONS_INDEX's job. */ struct Lisp_Cons conses[CONS_BLOCK_SIZE]; + int gcmarkbits[1 + CONS_BLOCK_SIZE / (sizeof(int) * CHAR_BIT)]; + struct cons_block *next; }; + #define CONS_MARKED_P(fptr) \ + GETMARKBIT (CONS_BLOCK (fptr), CONS_INDEX ((fptr))) + + #define CONS_MARK(fptr) \ + SETMARKBIT (CONS_BLOCK (fptr), CONS_INDEX ((fptr))) + + #define CONS_UNMARK(fptr) \ + UNSETMARKBIT (CONS_BLOCK (fptr), CONS_INDEX ((fptr))) + /* Current cons_block. */ struct cons_block *cons_block; *************** *** 2289,2301 **** void init_cons () { ! cons_block = (struct cons_block *) lisp_malloc (sizeof *cons_block, ! MEM_TYPE_CONS); ! cons_block->next = 0; ! bzero ((char *) cons_block->conses, sizeof cons_block->conses); ! cons_block_index = 0; cons_free_list = 0; ! n_cons_blocks = 1; } --- 2299,2308 ---- void init_cons () { ! cons_block = NULL; ! cons_block_index = CONS_BLOCK_SIZE; /* Force alloc of new cons_block. */ cons_free_list = 0; ! n_cons_blocks = 0; } *************** *** 2332,2339 **** if (cons_block_index == CONS_BLOCK_SIZE) { register struct cons_block *new; ! new = (struct cons_block *) lisp_malloc (sizeof *new, ! MEM_TYPE_CONS); new->next = cons_block; cons_block = new; cons_block_index = 0; --- 2339,2346 ---- if (cons_block_index == CONS_BLOCK_SIZE) { register struct cons_block *new; ! new = (struct cons_block *) lisp_align_malloc (sizeof *new, ! MEM_TYPE_CONS); new->next = cons_block; cons_block = new; cons_block_index = 0; *************** *** 2344,2349 **** --- 2351,2357 ---- XSETCAR (val, car); XSETCDR (val, cdr); + CONS_UNMARK (XCONS (val)); consing_since_gc += sizeof (struct Lisp_Cons); cons_cells_consed++; return val; *************** *** 3435,3440 **** --- 3443,3449 ---- one of the unused cells in the current cons block, and not be on the free-list. */ return (offset >= 0 + && offset < (CONS_BLOCK_SIZE * sizeof b->conses[0]) && offset % sizeof b->conses[0] == 0 && (b != cons_block || offset / sizeof b->conses[0] < cons_block_index) *************** *** 3629,3636 **** break; case Lisp_Cons: ! mark_p = (live_cons_p (m, po) ! && !XMARKBIT (XCONS (obj)->car)); break; case Lisp_Symbol: --- 3638,3644 ---- break; case Lisp_Cons: ! mark_p = (live_cons_p (m, po) && !CONS_MARKED_P (XCONS (obj))); break; case Lisp_Symbol: *************** *** 3704,3711 **** break; case MEM_TYPE_CONS: ! if (live_cons_p (m, p) ! && !XMARKBIT (((struct Lisp_Cons *) p)->car)) XSETCONS (obj, p); break; --- 3712,3718 ---- break; case MEM_TYPE_CONS: ! if (live_cons_p (m, p) && !CONS_MARKED_P ((struct Lisp_Cons *) p)) XSETCONS (obj, p); break; *************** *** 4405,4412 **** for (i = 0; i < tail->nvars; i++) if (!XMARKBIT (tail->var[i])) { - /* Explicit casting prevents compiler warning about - discarding the `volatile' qualifier. */ mark_object (tail->var[i]); XMARK (tail->var[i]); } --- 4412,4417 ---- *************** *** 4416,4422 **** mark_byte_stack (); for (bind = specpdl; bind != specpdl_ptr; bind++) { - /* These casts avoid a warning for discarding `volatile'. */ mark_object (bind->symbol); mark_object (bind->old_value); } --- 4421,4426 ---- *************** *** 5044,5052 **** case Lisp_Cons: { register struct Lisp_Cons *ptr = XCONS (obj); ! if (XMARKBIT (ptr->car)) break; CHECK_ALLOCATED_AND_LIVE (live_cons_p); ! XMARK (ptr->car); /* If the cdr is nil, avoid recursion for the car. */ if (EQ (ptr->cdr, Qnil)) { --- 5048,5056 ---- case Lisp_Cons: { register struct Lisp_Cons *ptr = XCONS (obj); ! if (CONS_MARKED_P (ptr)) break; CHECK_ALLOCATED_AND_LIVE (live_cons_p); ! CONS_MARK (ptr); /* If the cdr is nil, avoid recursion for the car. */ if (EQ (ptr->cdr, Qnil)) { *************** *** 5105,5118 **** { register struct Lisp_Cons *ptr = XCONS (tail); ! if (XMARKBIT (ptr->car)) break; ! XMARK (ptr->car); if (GC_CONSP (ptr->car) ! && ! XMARKBIT (XCAR (ptr->car)) && GC_MARKERP (XCAR (ptr->car))) { ! XMARK (XCAR_AS_LVALUE (ptr->car)); mark_object (XCDR (ptr->car)); } else --- 5109,5122 ---- { register struct Lisp_Cons *ptr = XCONS (tail); ! if (CONS_MARKED_P (ptr)) break; ! CONS_MARK (ptr); if (GC_CONSP (ptr->car) ! && !CONS_MARKED_P (XCONS (ptr->car)) && GC_MARKERP (XCAR (ptr->car))) { ! CONS_MARK (XCONS (ptr->car)); mark_object (XCDR (ptr->car)); } else *************** *** 5178,5200 **** break; case Lisp_String: ! { ! struct Lisp_String *s = XSTRING (obj); ! survives_p = STRING_MARKED_P (s); ! } break; case Lisp_Vectorlike: ! if (GC_BUFFERP (obj)) ! survives_p = VECTOR_MARKED_P (XBUFFER (obj)); ! else if (GC_SUBRP (obj)) ! survives_p = 1; ! else ! survives_p = VECTOR_MARKED_P (XVECTOR (obj)); break; case Lisp_Cons: ! survives_p = XMARKBIT (XCAR (obj)); break; case Lisp_Float: --- 5182,5196 ---- break; case Lisp_String: ! survives_p = STRING_MARKED_P (XSTRING (obj)); break; case Lisp_Vectorlike: ! survives_p = GC_SUBRP (obj) || VECTOR_MARKED_P (XVECTOR (obj)); break; case Lisp_Cons: ! survives_p = CONS_MARKED_P (XCONS (obj)); break; case Lisp_Float: *************** *** 5239,5245 **** register int i; int this_free = 0; for (i = 0; i < lim; i++) ! if (!XMARKBIT (cblk->conses[i].car)) { this_free++; *(struct Lisp_Cons **)&cblk->conses[i].cdr = cons_free_list; --- 5235,5241 ---- register int i; int this_free = 0; for (i = 0; i < lim; i++) ! if (!CONS_MARKED_P (&cblk->conses[i])) { this_free++; *(struct Lisp_Cons **)&cblk->conses[i].cdr = cons_free_list; *************** *** 5251,5257 **** else { num_used++; ! XUNMARK (cblk->conses[i].car); } lim = CONS_BLOCK_SIZE; /* If this block contains only free conses and we have already --- 5247,5253 ---- else { num_used++; ! CONS_UNMARK (&cblk->conses[i]); } lim = CONS_BLOCK_SIZE; /* If this block contains only free conses and we have already *************** *** 5262,5268 **** *cprev = cblk->next; /* Unhook from the free list. */ cons_free_list = *(struct Lisp_Cons **) &cblk->conses[0].cdr; ! lisp_free (cblk); n_cons_blocks--; } else --- 5258,5264 ---- *cprev = cblk->next; /* Unhook from the free list. */ cons_free_list = *(struct Lisp_Cons **) &cblk->conses[0].cdr; ! lisp_align_free (cblk); n_cons_blocks--; } else From MAILER-DAEMON Tue Jul 15 15:47:36 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cVkh-0003Zf-N5 for mharc-emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:46:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cVja-0002lN-PX for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:45:10 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cVan-0006vp-8t for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:36:06 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cVag-0005Vo-Al for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:35:58 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19cVXw-0005fR-1y for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:33:08 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19cVWv-00035n-Hy for emacs-diffs@gnu.org; Tue, 15 Jul 2003 15:32:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 15 Jul 2003 15:32:05 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Jul 2003 19:46:17 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.433 emacs/src/buffer.c:1.434 *** emacs/src/buffer.c:1.433 Fri Jul 11 05:05:18 2003 --- emacs/src/buffer.c Tue Jul 15 15:32:05 2003 *************** *** 447,453 **** for (; list; list = list->next) { Lisp_Object overlay, start, end, old_overlay; ! int charpos; XSETMISC (old_overlay, list); charpos = marker_position (OVERLAY_START (old_overlay)); --- 447,453 ---- for (; list; list = list->next) { Lisp_Object overlay, start, end, old_overlay; ! EMACS_INT charpos; XSETMISC (old_overlay, list); charpos = marker_position (OVERLAY_START (old_overlay)); *************** *** 1630,1635 **** --- 1630,1640 ---- { char *err; + if (EQ (buffer, Fwindow_buffer (selected_window))) + /* Basically a NOP. Avoid signalling an error if the selected window + is dedicated, or a minibuffer, ... */ + return Fset_buffer (buffer); + err = no_switch_window (selected_window); if (err) error (err); *************** *** 4097,4102 **** --- 4102,4115 ---- overlay = Qnil; tail = NULL; + + /* We used to run the functions as soon as we found them and only register + them in last_overlay_modification_hooks for the purpose of the `after' + case. But running elisp code as we traverse the list of overlays is + painful because the list can be modified by the elisp code so we had to + copy at several places. We now simply do a read-only traversal that + only collects the functions to run and we run them afterwards. It's + simpler, especially since all the code was already there. -stef */ if (!after) { From MAILER-DAEMON Wed Jul 16 10:49:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cnb8-0003HM-Rq for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 10:49:38 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cnb6-0003FB-1f for emacs-diffs@gnu.org; Wed, 16 Jul 2003 10:49:36 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cnb3-0003ES-SK for emacs-diffs@gnu.org; Wed, 16 Jul 2003 10:49:34 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cnSr-0000tN-U3 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 10:41:05 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19cnRr-0000ja-G6 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 10:40:03 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 16 Jul 2003 10:40:03 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 14:49:37 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3317 emacs/src/ChangeLog:1.3318 *** emacs/src/ChangeLog:1.3317 Mon Jul 14 11:30:21 2003 --- emacs/src/ChangeLog Wed Jul 16 10:40:03 2003 *************** *** 1,3 **** --- 1,22 ---- + 2003-07-15 Stefan Monnier + + * buffer.c (copy_overlays): Use EMACS_INT for positions. + (Fswitch_to_buffer): Don't signal an error when switching to the same + buffer in a dedicated window. + + * alloc.c: Use bitmaps for cons, as was done for floats. + (init_float, init_cons): Let the normal code allocate the first block. + (CONS_BLOCK_SIZE): Redefine based on BLOCK_BYTES and bitmap size. + (CONS_BLOCK, CONS_INDEX, CONS_MARKED_P, CONS_MARK, CONS_UNMARK): + New macros. + (struct cons_block): Move conses to the beginning. Add gcmarkbits. + (Fcons): Use lisp_align_malloc and CONS_UNMARK. + (live_cons_p): Check the pointer is not past the `conses' array. + (mark_maybe_object, mark_maybe_pointer): Use CONS_MARKED_P. + (mark_object, mark_buffer): Use CONS_MARKED_P and CONS_MARK. + (survives_gc_p): Use CONS_MARKED_P and simplify. + (gc_sweep): Use CONS_MARKED_P, CONS_UNMARK, and lisp_align_free. + 2003-07-13 Paul Eggert GCC 3.3 (sparc) no longer puts "int foo = 0;" into data; it From MAILER-DAEMON Wed Jul 16 11:18:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19co2k-0005b7-S5 for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:18:10 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19co2h-0005Yv-C0 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:18:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19co2f-0005Xt-Hy for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:18:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19co2e-0005XO-KH for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:18:04 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19co1e-0001pc-6V for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:17:02 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 16 Jul 2003 11:17:02 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/syntax.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 15:18:09 -0000 Index: emacs/lisp/emacs-lisp/syntax.el diff -c emacs/lisp/emacs-lisp/syntax.el:1.7 emacs/lisp/emacs-lisp/syntax.el:1.8 *** emacs/lisp/emacs-lisp/syntax.el:1.7 Tue Feb 4 07:53:34 2003 --- emacs/lisp/emacs-lisp/syntax.el Wed Jul 16 11:17:02 2003 *************** *** 1,6 **** ;;; syntax.el --- helper functions to find syntactic context ! ;; Copyright (C) 2000 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal --- 1,6 ---- ;;; syntax.el --- helper functions to find syntactic context ! ;; Copyright (C) 2000, 2003 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: internal *************** *** 25,31 **** ;;; Commentary: ;; The main exported function is `syntax-ppss'. You might also need ! ;; to call `syntax-ppss-after-change-function' or to add it to ;; after-change-functions'(although this is automatically done by ;; syntax-ppss when needed, but that might fail if syntax-ppss is ;; called in a context where after-change-functions is temporarily --- 25,31 ---- ;;; Commentary: ;; The main exported function is `syntax-ppss'. You might also need ! ;; to call `syntax-ppss-flush-cache' or to add it to ;; after-change-functions'(although this is automatically done by ;; syntax-ppss when needed, but that might fail if syntax-ppss is ;; called in a context where after-change-functions is temporarily *************** *** 73,79 **** "Cache of (LAST-POS . LAST-PPSS).") (make-variable-buffer-local 'syntax-ppss-last) ! (defun syntax-ppss-after-change-function (beg &rest ignored) ;; Flush invalid cache entries. (while (and syntax-ppss-cache (> (caar syntax-ppss-cache) beg)) (setq syntax-ppss-cache (cdr syntax-ppss-cache))) --- 73,81 ---- "Cache of (LAST-POS . LAST-PPSS).") (make-variable-buffer-local 'syntax-ppss-last) ! (defalias 'syntax-ppss-after-change-function 'syntax-ppss-flush-cache) ! (defun syntax-ppss-flush-cache (beg &rest ignored) ! "Flush the cache of `syntax-ppss' starting at position BEG." ;; Flush invalid cache entries. (while (and syntax-ppss-cache (> (caar syntax-ppss-cache) beg)) (setq syntax-ppss-cache (cdr syntax-ppss-cache))) *************** *** 106,115 **** "Parse-Partial-Sexp State at POS. The returned value is the same as `parse-partial-sexp' except that the 2nd and 6th values of the returned state cannot be relied upon. - - If the caller knows the PPSS of a nearby position, she can pass it - in OLP-PPSS (with or without its corresponding OLD-POS) to try and - avoid a more expansive scan. Point is at POS when this function returns." ;; Default values. (unless pos (setq pos (point))) --- 108,113 ---- *************** *** 172,179 **** ;; Setup the after-change function if necessary. (unless (or syntax-ppss-cache syntax-ppss-last) ! (add-hook 'after-change-functions ! 'syntax-ppss-after-change-function nil t)) ;; Use the best of OLD-POS and CACHE. (if (or (not old-pos) (< old-pos pt-min)) --- 170,176 ---- ;; Setup the after-change function if necessary. (unless (or syntax-ppss-cache syntax-ppss-last) ! (add-hook 'after-change-functions 'syntax-ppss-flush-cache nil t)) ;; Use the best of OLD-POS and CACHE. (if (or (not old-pos) (< old-pos pt-min)) From MAILER-DAEMON Wed Jul 16 11:44:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19coRp-0007c1-Hc for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:44:05 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19coRk-0007SE-8P for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:44:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19coRd-0007F3-Mo for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:43:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19coPH-0005gj-M9 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:41:27 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19coOH-0005Nm-A7 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:40:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 16 Jul 2003 11:40:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/syntax.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 15:44:03 -0000 Index: emacs/lisp/emacs-lisp/syntax.el diff -c emacs/lisp/emacs-lisp/syntax.el:1.8 emacs/lisp/emacs-lisp/syntax.el:1.9 *** emacs/lisp/emacs-lisp/syntax.el:1.8 Wed Jul 16 11:17:02 2003 --- emacs/lisp/emacs-lisp/syntax.el Wed Jul 16 11:40:25 2003 *************** *** 39,45 **** ;; - new functions `syntax-state', ... to replace uses of parse-partial-state ;; with something higher-level (similar to syntax-ppss-context). ;; - interaction with mmm-mode. - ;; - what to do when the buffer is narrowed ? ;;; Code: --- 39,44 ---- *************** *** 118,258 **** (pt-min (point-min))) (if (and old-pos (> old-pos pos)) (setq old-pos nil)) ;; Use the OLD-POS if usable and close. Don't update the `last' cache. ! (if (and old-pos (< (- pos old-pos) ! ;; The time to find PPSS using syntax-begin-function ! ;; is assumed to be about 2 * distance. ! (* 2 (/ (cdr (aref syntax-ppss-stats 5)) ! (1+ (car (aref syntax-ppss-stats 5))))))) ! (progn ! (incf (car (aref syntax-ppss-stats 0))) ! (incf (cdr (aref syntax-ppss-stats 0)) (- pos old-pos)) ! (parse-partial-sexp old-pos pos nil nil old-ppss)) ! ! (cond ! ;; Use OLD-PPSS if possible and close enough. ! ((and (not old-pos) old-ppss ! ;; BEWARE! We rely on the undocumented 9th field. ! ;; The 9th field currently contains the list of positions ! ;; of open-parens of the enclosing parens. I.e. those positions ! ;; are outside of any string/comment and the first of those is ! ;; outside of any paren (i.e. corresponds to a nil ppss). ! ;; If this list is empty but we are in a string or comment, ! ;; then the 8th field contains a similar "toplevel" position. ! ;; If `pt-min' is too far from `pos', we could try to use ! ;; other positions in (nth 9 old-ppss), but that doesn't seem ! ;; to happen in practice and it would complicate this code ! ;; (and the after-change-function code even more). But maybe it ! ;; would be useful in "degenerate" cases such as when the whole ! ;; file is wrapped in a set of parenthesis. ! (setq pt-min (or (car (nth 9 old-ppss)) ! (nth 8 old-ppss) ! (nth 2 old-ppss))) ! (<= pt-min pos) (< (- pos pt-min) syntax-ppss-max-span)) ! (incf (car (aref syntax-ppss-stats 1))) ! (incf (cdr (aref syntax-ppss-stats 1)) (- pos pt-min)) ! (setq ppss (parse-partial-sexp pt-min pos))) ! ;; The OLD-* data can't be used. Consult the cache. ! (t ! (let ((cache-pred nil) ! (cache syntax-ppss-cache) ! (pt-min (point-min)) ! ;; I differentiate between PT-MIN and PT-BEST because I feel ! ;; like it might be important to ensure that the cache is only ! ;; filled with 100% sure data (whereas syntax-begin-function ! ;; might return incorrect data). Maybe that's just stupid. ! (pt-best (point-min)) ! (ppss-best nil)) ! ;; look for a usable cache entry. ! (while (and cache (< pos (caar cache))) ! (setq cache-pred cache) ! (setq cache (cdr cache))) ! (if cache (setq pt-min (caar cache) ppss (cdar cache))) ! ! ;; Setup the after-change function if necessary. ! (unless (or syntax-ppss-cache syntax-ppss-last) ! (add-hook 'after-change-functions 'syntax-ppss-flush-cache nil t)) ! ! ;; Use the best of OLD-POS and CACHE. ! (if (or (not old-pos) (< old-pos pt-min)) ! (setq pt-best pt-min ppss-best ppss) ! (incf (car (aref syntax-ppss-stats 4))) ! (incf (cdr (aref syntax-ppss-stats 4)) (- pos old-pos)) ! (setq pt-best old-pos ppss-best old-ppss)) ! ! ;; Use the `syntax-begin-function' if available. ! ;; We could try using that function earlier, but: ! ;; - The result might not be 100% reliable, so it's better to use ! ;; the cache if available. ! ;; - The function might be slow. ! ;; - If this function almost always finds a safe nearby spot, ! ;; the cache won't be populated, so consulting it is cheap. ! (unless (or syntax-begin-function ! (not (boundp 'font-lock-beginning-of-syntax-function)) ! (not font-lock-beginning-of-syntax-function)) ! (set (make-local-variable 'syntax-begin-function) ! font-lock-beginning-of-syntax-function)) ! (when (and syntax-begin-function ! (progn (goto-char pos) ! (funcall syntax-begin-function) ! ;; Make sure it's better. ! (> (point) pt-best)) ! ;; Simple sanity check. ! (not (memq (get-text-property (point) 'face) ! '(font-lock-string-face font-lock-comment-face ! font-lock-doc-face)))) ! (incf (car (aref syntax-ppss-stats 5))) ! (incf (cdr (aref syntax-ppss-stats 5)) (- pos (point))) ! (setq pt-best (point) ppss-best nil)) (cond ! ;; Quick case when we found a nearby pos. ! ((< (- pos pt-best) syntax-ppss-max-span) ! (incf (car (aref syntax-ppss-stats 2))) ! (incf (cdr (aref syntax-ppss-stats 2)) (- pos pt-best)) ! (setq ppss (parse-partial-sexp pt-best pos nil nil ppss-best))) ! ;; Slow case: compute the state from some known position and ! ;; populate the cache so we won't need to do it again soon. (t ! (incf (car (aref syntax-ppss-stats 3))) ! (incf (cdr (aref syntax-ppss-stats 3)) (- pos pt-min)) ! ! ;; If `pt-min' is too far, add a few intermediate entries. ! (while (> (- pos pt-min) (* 2 syntax-ppss-max-span)) ! (setq ppss (parse-partial-sexp ! pt-min (setq pt-min (/ (+ pt-min pos) 2)) ! nil nil ppss)) ! (let ((pair (cons pt-min ppss))) ! (if cache-pred ! (push pair (cdr cache-pred)) ! (push pair syntax-ppss-cache)))) ! ! ;; Compute the actual return value. ! (setq ppss (parse-partial-sexp pt-min pos nil nil ppss)) ! ! ;; Debugging check. ! ;; (let ((real-ppss (parse-partial-sexp (point-min) pos))) ! ;; (setcar (last ppss 4) 0) ! ;; (setcar (last real-ppss 4) 0) ! ;; (setcar (last ppss 8) nil) ! ;; (setcar (last real-ppss 8) nil) ! ;; (unless (equal ppss real-ppss) ! ;; (message "!!Syntax: %s != %s" ppss real-ppss) ! ;; (setq ppss real-ppss))) ! ! ;; Store it in the cache. ! (let ((pair (cons pos ppss))) ! (if cache-pred ! (if (> (- (caar cache-pred) pos) syntax-ppss-max-span) ! (push pair (cdr cache-pred)) ! (setcar cache-pred pair)) ! (if (or (null syntax-ppss-cache) ! (> (- (caar syntax-ppss-cache) pos) ! syntax-ppss-max-span)) ! (push pair syntax-ppss-cache) ! (setcar syntax-ppss-cache pair))))))))) ! ! (setq syntax-ppss-last (cons pos ppss)) ! ppss))) ;; Debugging functions --- 117,267 ---- (pt-min (point-min))) (if (and old-pos (> old-pos pos)) (setq old-pos nil)) ;; Use the OLD-POS if usable and close. Don't update the `last' cache. ! (condition-case nil ! (if (and old-pos (< (- pos old-pos) ! ;; The time to use syntax-begin-function and ! ;; find PPSS is assumed to be about 2 * distance. ! (* 2 (/ (cdr (aref syntax-ppss-stats 5)) ! (1+ (car (aref syntax-ppss-stats 5))))))) ! (progn ! (incf (car (aref syntax-ppss-stats 0))) ! (incf (cdr (aref syntax-ppss-stats 0)) (- pos old-pos)) ! (parse-partial-sexp old-pos pos nil nil old-ppss)) (cond ! ;; Use OLD-PPSS if possible and close enough. ! ((and (not old-pos) old-ppss ! ;; BEWARE! We rely on the undocumented 9th field. The 9th ! ;; field currently contains the list of positions of ! ;; open-parens of the enclosing parens. I.e. those ! ;; positions are outside of any string/comment ! ;; and the first of those is outside of any paren ! ;; (i.e. corresponds to a nil ppss). If this list is empty ! ;; but we are in a string or comment, then the 8th field ! ;; contains a similar "toplevel" position. If `pt-min' is ! ;; too far from `pos', we could try to use other positions ! ;; in (nth 9 old-ppss), but that doesn't seem to happen in ! ;; practice and it would complicate this code (and the ! ;; after-change-function code even more). But maybe it ! ;; would be useful in "degenerate" cases such as when the ! ;; whole file is wrapped in a set of parenthesis. ! (setq pt-min (or (car (nth 9 old-ppss)) ! (nth 8 old-ppss) ! (nth 2 old-ppss))) ! (<= pt-min pos) (< (- pos pt-min) syntax-ppss-max-span)) ! (incf (car (aref syntax-ppss-stats 1))) ! (incf (cdr (aref syntax-ppss-stats 1)) (- pos pt-min)) ! (setq ppss (parse-partial-sexp pt-min pos))) ! ;; The OLD-* data can't be used. Consult the cache. (t ! (let ((cache-pred nil) ! (cache syntax-ppss-cache) ! (pt-min (point-min)) ! ;; I differentiate between PT-MIN and PT-BEST because ! ;; I feel like it might be important to ensure that the ! ;; cache is only filled with 100% sure data (whereas ! ;; syntax-begin-function might return incorrect data). ! ;; Maybe that's just stupid. ! (pt-best (point-min)) ! (ppss-best nil)) ! ;; look for a usable cache entry. ! (while (and cache (< pos (caar cache))) ! (setq cache-pred cache) ! (setq cache (cdr cache))) ! (if cache (setq pt-min (caar cache) ppss (cdar cache))) ! ! ;; Setup the after-change function if necessary. ! (unless (or syntax-ppss-cache syntax-ppss-last) ! (add-hook 'after-change-functions ! 'syntax-ppss-flush-cache nil t)) ! ! ;; Use the best of OLD-POS and CACHE. ! (if (or (not old-pos) (< old-pos pt-min)) ! (setq pt-best pt-min ppss-best ppss) ! (incf (car (aref syntax-ppss-stats 4))) ! (incf (cdr (aref syntax-ppss-stats 4)) (- pos old-pos)) ! (setq pt-best old-pos ppss-best old-ppss)) ! ! ;; Use the `syntax-begin-function' if available. ! ;; We could try using that function earlier, but: ! ;; - The result might not be 100% reliable, so it's better to use ! ;; the cache if available. ! ;; - The function might be slow. ! ;; - If this function almost always finds a safe nearby spot, ! ;; the cache won't be populated, so consulting it is cheap. ! (when (and (not syntax-begin-function) ! (boundp 'font-lock-beginning-of-syntax-function) ! font-lock-beginning-of-syntax-function) ! (set (make-local-variable 'syntax-begin-function) ! font-lock-beginning-of-syntax-function)) ! (when (and syntax-begin-function ! (progn (goto-char pos) ! (funcall syntax-begin-function) ! ;; Make sure it's better. ! (> (point) pt-best)) ! ;; Simple sanity check. ! (not (memq (get-text-property (point) 'face) ! '(font-lock-string-face font-lock-doc-face ! font-lock-comment-face)))) ! (incf (car (aref syntax-ppss-stats 5))) ! (incf (cdr (aref syntax-ppss-stats 5)) (- pos (point))) ! (setq pt-best (point) ppss-best nil)) ! ! (cond ! ;; Quick case when we found a nearby pos. ! ((< (- pos pt-best) syntax-ppss-max-span) ! (incf (car (aref syntax-ppss-stats 2))) ! (incf (cdr (aref syntax-ppss-stats 2)) (- pos pt-best)) ! (setq ppss (parse-partial-sexp pt-best pos nil nil ppss-best))) ! ;; Slow case: compute the state from some known position and ! ;; populate the cache so we won't need to do it again soon. ! (t ! (incf (car (aref syntax-ppss-stats 3))) ! (incf (cdr (aref syntax-ppss-stats 3)) (- pos pt-min)) ! ! ;; If `pt-min' is too far, add a few intermediate entries. ! (while (> (- pos pt-min) (* 2 syntax-ppss-max-span)) ! (setq ppss (parse-partial-sexp ! pt-min (setq pt-min (/ (+ pt-min pos) 2)) ! nil nil ppss)) ! (let ((pair (cons pt-min ppss))) ! (if cache-pred ! (push pair (cdr cache-pred)) ! (push pair syntax-ppss-cache)))) ! ! ;; Compute the actual return value. ! (setq ppss (parse-partial-sexp pt-min pos nil nil ppss)) ! ! ;; Debugging check. ! ;; (let ((real-ppss (parse-partial-sexp (point-min) pos))) ! ;; (setcar (last ppss 4) 0) ! ;; (setcar (last real-ppss 4) 0) ! ;; (setcar (last ppss 8) nil) ! ;; (setcar (last real-ppss 8) nil) ! ;; (unless (equal ppss real-ppss) ! ;; (message "!!Syntax: %s != %s" ppss real-ppss) ! ;; (setq ppss real-ppss))) ! ! ;; Store it in the cache. ! (let ((pair (cons pos ppss))) ! (if cache-pred ! (if (> (- (caar cache-pred) pos) syntax-ppss-max-span) ! (push pair (cdr cache-pred)) ! (setcar cache-pred pair)) ! (if (or (null syntax-ppss-cache) ! (> (- (caar syntax-ppss-cache) pos) ! syntax-ppss-max-span)) ! (push pair syntax-ppss-cache) ! (setcar syntax-ppss-cache pair))))))))) ! ! (setq syntax-ppss-last (cons pos ppss)) ! ppss) ! (args-out-of-range ! ;; If the buffer is more narrowed than when we built the cache, ! ;; we may end up calling parse-partial-sexp with a position before ! ;; point-min. In that case, just parse from point-min assuming ! ;; a nil state. ! (parse-partial-sexp (point-min) pos))))) ;; Debugging functions From MAILER-DAEMON Wed Jul 16 12:03:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cofz-0006nu-IS for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:58:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cofG-0005Si-93 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:57:58 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cof3-0005EP-VP for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:57:46 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cocx-0004T5-Ej for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:55:35 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19cobq-0005lD-9W for emacs-diffs@gnu.org; Wed, 16 Jul 2003 11:54:26 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 16 Jul 2003 11:54:26 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/info.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 15:58:41 -0000 Index: emacs/lisp/info.el diff -c emacs/lisp/info.el:1.366 emacs/lisp/info.el:1.367 *** emacs/lisp/info.el:1.366 Mon Jul 7 17:03:32 2003 --- emacs/lisp/info.el Wed Jul 16 11:54:25 2003 *************** *** 1557,1563 **** (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:\n]\\|:[^:,.;() \t\n]\\)*" "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") --- 1557,1565 ---- (setq i (+ i 1))) (Info-goto-node target))) ! (defconst Info-menu-entry-name-re "\\(?:[^:]\\|:[^:,.;() \t\n]\\)*" ! ;; We allow newline because this is also used in Info-follow-reference, ! ;; where the xref name might be wrapped over two lines. "Regexp that matches a menu entry name upto but not including the colon. Because of ambiguities, this should be concatenated with something like `:' and `Info-following-node-name-re'.") From MAILER-DAEMON Wed Jul 16 15:03:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19crYi-0006EX-M8 for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:03:24 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19crYS-00061T-VL for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:03:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19crYH-0005st-9a for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:03:06 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19crWu-00057R-9K for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:01:32 -0400 Received: from bob by subversions.gnu.org with local (Exim 4.20) id 19crVt-0002MD-Pq for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:00:29 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Robert J. Chassell" Date: Wed, 16 Jul 2003 15:00:29 -0400 Subject: [Emacs-diffs] Changes to emacs/lispintro/emacs-lisp-intro.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: bob@rattlesnake.com List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 19:03:23 -0000 Index: emacs/lispintro/emacs-lisp-intro.texi diff -c emacs/lispintro/emacs-lisp-intro.texi:1.20 emacs/lispintro/emacs-lisp-intro.texi:1.21 *** emacs/lispintro/emacs-lisp-intro.texi:1.20 Thu Apr 17 11:05:10 2003 --- emacs/lispintro/emacs-lisp-intro.texi Wed Jul 16 15:00:29 2003 *************** *** 1,4 **** ! \input texinfo @c -*-texinfo-*- @comment %**start of header @setfilename ../info/eintr @c sethtmlfilename emacs-lisp-intro.html --- 1,4 ---- ! \input texinfo @c -*-texinfo-*- @comment %**start of header @setfilename ../info/eintr @c sethtmlfilename emacs-lisp-intro.html *************** *** 13,19 **** @c set for smallbook, which works for all sizes @c of paper, and with Postscript figures >>>> @smallbook ! @clear largebook @set print-postscript-figures @c set largebook @c clear print-postscript-figures --- 13,19 ---- @c set for smallbook, which works for all sizes @c of paper, and with Postscript figures >>>> @smallbook ! @clear largebook @set print-postscript-figures @c set largebook @c clear print-postscript-figures *************** *** 21,28 **** @comment %**end of header ! @set edition-number 2.07 ! @set update-date 2003 Apr 17 @ignore ## Summary of shell commands to create various output formats: --- 21,28 ---- @comment %**end of header ! @set edition-number 2.10 ! @set update-date 2003 July 15 @ignore ## Summary of shell commands to create various output formats: *************** *** 48,53 **** --- 48,64 ---- makeinfo --xml --no-split --paragraph-indent=0 \ --verbose emacs-lisp-intro.texi + #### (You must be in the same directory as the viewed file.) + + ## View DVI output + xdvi emacs-lisp-intro.dvi & + + ## View HTML output + galeon emacs-lisp-intro.html + + ## View Info output with standalone reader + info emacs-lisp-intro.info + @end ignore @c ================ Included Figures ================ *************** *** 144,219 **** @c For all sized formats: print within-book cross @c reference with ``...'' rather than [...] @tex ! % Need following so comma appears after section numbers. ! \global\def\Ysectionnumberandtype{% ! \ifnum\secno=0 \putwordChapter\xreftie\the\chapno, \space % ! \else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno, \space % ! \else \ifnum \subsubsecno=0 % ! \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno, \space % ! \else % ! \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno, \space% ! \fi \fi \fi } ! ! \global\def\Yappendixletterandtype{% ! \ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}, \space% ! \else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno, \space % ! \else \ifnum \subsubsecno=0 % ! \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno, \space % ! \else % ! \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno, \space % ! \fi \fi \fi } ! ! \global\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup ! \def\printedmanual{\ignorespaces #5}% ! \def\printednodename{\ignorespaces #3}% ! \setbox1=\hbox{\printedmanual}% ! \setbox0=\hbox{\printednodename}% ! \ifdim \wd0 = 0pt ! % No printed node name was explicitly given. ! \ifx\SETxref-automatic-section-title\relax % ! % Use the actual chapter/section title appear inside ! % the square brackets. Use the real section title if we have it. ! \ifdim \wd1>0pt% ! % It is in another manual, so we don't have it. ! \def\printednodename{\ignorespaces #1}% ! \else ! \ifhavexrefs ! % We know the real title if we have the xref values. ! \def\printednodename{\refx{#1-title}}% ! \else ! % Otherwise just copy the Info node name. ! \def\printednodename{\ignorespaces #1}% ! \fi% ! \fi ! \def\printednodename{#1-title}% ! \else ! % Use the node name inside the square brackets. ! \def\printednodename{\ignorespaces #1}% ! \fi ! \fi ! % ! % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not ! % insert empty discretionaries after hyphens, which means that it will ! % not find a line break at a hyphen in a node names. Since some manuals ! % are best written with fairly long node names, containing hyphens, this ! % is a loss. Therefore, we give the text of the node name again, so it ! % is as if TeX is seeing it for the first time. ! \ifdim \wd1 > 0pt ! \putwordsection{} ``\printednodename'' in \cite{\printedmanual}% ! \else ! % _ (for example) has to be the character _ for the purposes of the ! % control sequence corresponding to the node, but it has to expand ! % into the usual \leavevmode...\vrule stuff for purposes of ! % printing. So we \turnoffactive for the \refx-snt, back on for the ! % printing, back off for the \refx-pg. ! {\turnoffactive \refx{#1-snt}{}}% ! % \space [\printednodename],\space % <= original ! % \putwordsection{} ``\printednodename'',\space ! ``\printednodename'',\space ! \turnoffactive \putwordpage\tie\refx{#1-pg}{}% ! \fi ! \endgroup} @end tex @c ---------------------------------------------------- --- 155,166 ---- @c For all sized formats: print within-book cross @c reference with ``...'' rather than [...] + + @c This works with the texinfo.tex file, version 2003-05-04.08, + @c in the Texinfo version 4.6 of the 2003 Jun 13 distribution. + @tex ! \global\def\xrefprintnodename#1{``#1''} @end tex @c ---------------------------------------------------- *************** *** 225,243 **** @end direntry @copying ! This is an introduction to @cite{Programming in Emacs Lisp}, for people who are not programmers. ! Edition @value{edition-number}, @value{update-date} ! Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001, 2002, 2003 Free Software Foundation, Inc. ! @sp 2 ! Published by the Free Software Foundation, Inc.@* ! 59 Temple Place, Suite 330@* ! Boston, MA 02111-1307 USA@* @c Printed copies are available for $30 each.@* ISBN 1-882114-43-4 --- 172,209 ---- @end direntry @copying ! This is an @cite{Introduction to Programming in Emacs Lisp}, for people who are not programmers. ! @sp 1 Edition @value{edition-number}, @value{update-date} ! @sp 1 Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001, 2002, 2003 Free Software Foundation, Inc. ! @sp 1 ! @iftex ! Published by the:@* ! ! GNU Press, @hfill @uref{http://www.gnupress.org}@* ! a division of the @hfill General: @email{press@@gnu.org}@* ! Free Software Foundation, Inc. @hfill Orders:@w{ } @email{sales@@gnu.org}@* ! 59 Temple Place, Suite 330 @hfill Tel: +1 (617) 542-5942@* ! Boston, MA 02111-1307 USA @hfill Fax: +1 (617) 542-2652@* ! @end iftex ! ! @ifnottex ! Published by the: ! ! @example ! GNU Press, Website: http://www.gnupress.org ! a division of the General: press@@gnu.org ! Free Software Foundation, Inc. Orders: sales@@gnu.org ! 59 Temple Place, Suite 330 Tel: +1 (617) 542-5942 ! Boston, MA 02111-1307 USA Fax: +1 (617) 542-2652 ! @end example ! @end ifnottex + @sp 1 @c Printed copies are available for $30 each.@* ISBN 1-882114-43-4 *************** *** 270,276 **** @sp 2 @center @titlefont{Programming in Emacs Lisp} @sp 2 ! @center Second Edition @sp 4 @center by Robert J. Chassell --- 236,242 ---- @sp 2 @center @titlefont{Programming in Emacs Lisp} @sp 2 ! @center Revised Second Edition @sp 4 @center by Robert J. Chassell *************** *** 286,332 **** @end iftex @ifnothtml ! ! @c Keep T.O.C. short by tightening up. @ifset largebook @tex \global\parskip 2pt plus 1pt \global\advance\baselineskip by -1pt @end tex @end ifset @shortcontents @contents - @ifset largebook - @tex - \global\parskip 6pt plus 1pt - \global\advance\baselineskip by 1pt - @end tex - @end ifset - - @end ifnothtml - - @c >>>> Set pageno appropriately <<<< - - @c The first page of the Preface is a roman numeral; it is the first - @c right handed page after the Table of Contents; hence the following - @c setting must be for an odd negative number. - - @c if largebook, there are 8 pages in Table of Contents - @ifset largebook - @iftex - @pageno = -9 - @end iftex - @end ifset - - @c if smallbook, there are 10 pages in Table of Contents - @ifclear largebook - @iftex - @pageno = -11 - @end iftex - @end ifclear - @ifnottex @node Top, Preface, (dir), (dir) @top An Introduction to Programming in Emacs Lisp --- 252,269 ---- @end iftex @ifnothtml ! @c Keep T.O.C. short by tightening up for largebook @ifset largebook @tex \global\parskip 2pt plus 1pt \global\advance\baselineskip by -1pt @end tex @end ifset + @end ifnothtml @shortcontents @contents @ifnottex @node Top, Preface, (dir), (dir) @top An Introduction to Programming in Emacs Lisp *************** *** 361,366 **** --- 298,304 ---- * the-the:: An appendix: how to find reduplicated words. * Kill Ring:: An appendix: how the kill ring works. * Full Graph:: How to create a graph with labelled axes. + * Free Software and Free Manuals:: * GNU Free Documentation License:: * Index:: * About the Author:: *************** *** 780,785 **** --- 718,724 ---- * rotate-yank-pointer:: Move a pointer along a list and around. * yank:: Paste a copy of a clipped element. * yank-pop:: Insert first element pointed to. + * ring file:: The @code{rotate-yank-pointer} Function *************** *** 833,838 **** --- 772,787 ---- @end detailmenu @end menu + @c >>>> Set pageno appropriately <<<< + + @c The first page of the Preface is a roman numeral; it is the first + @c right handed page after the Table of Contents; hence the following + @c setting must be for an odd negative number. + + @iftex + @global@pageno = -11 + @end iftex + @node Preface, List Processing, Top, Top @comment node-name, next, previous, up @unnumbered Preface *************** *** 1091,1097 **** @headings off @evenheading @thispage @| @| @thischapter @oddheading @thissection @| @| @thispage ! @pageno = 1 @end iftex @node List Processing, Practicing Evaluation, Preface, Top --- 1040,1046 ---- @headings off @evenheading @thispage @| @| @thischapter @oddheading @thissection @| @| @thispage ! @global@pageno = 1 @end iftex @node List Processing, Practicing Evaluation, Preface, Top *************** *** 1543,1551 **** of locating the definition or set of instructions. What we see is the name through which the instructions can be found. Names of people work the same way. I can be referred to as @samp{Bob}; however, I am ! not the letters @samp{B}, @samp{o}, @samp{b} but am the consciousness ! consistently associated with a particular life-form. The name is not ! me, but it can be used to refer to me. In Lisp, one set of instructions can be attached to several names. For example, the computer instructions for adding numbers can be --- 1492,1500 ---- of locating the definition or set of instructions. What we see is the name through which the instructions can be found. Names of people work the same way. I can be referred to as @samp{Bob}; however, I am ! not the letters @samp{B}, @samp{o}, @samp{b} but am, or were, the ! consciousness consistently associated with a particular life-form. ! The name is not me, but it can be used to refer to me. In Lisp, one set of instructions can be attached to several names. For example, the computer instructions for adding numbers can be *************** *** 2009,2014 **** --- 1958,1964 ---- @code{+} must have values that are numbers, since @code{+} adds numbers. Other functions use different kinds of data for their arguments. + @need 1250 @findex concat For example, the @code{concat} function links together or unites two or more strings of text to produce a string. The arguments are strings. *************** *** 2325,2331 **** @smallexample @group (message "He saw %d %s" ! (- fill-column 34) (concat "red " (substring "The quick brown foxes jumped." 16 21) --- 2275,2281 ---- @smallexample @group (message "He saw %d %s" ! (- fill-column 32) (concat "red " (substring "The quick brown foxes jumped." 16 21) *************** *** 2537,2542 **** --- 2487,2493 ---- steepest. You have now climbed the most difficult part; what remains becomes easier as you progress onwards. + @need 1000 In summary, @itemize @bullet *************** *** 3536,3542 **** each argument in the same order it is specified in the @code{interactive} list. In the string, each part is separated from the next part by a @samp{\n}, which is a newline. For example, you ! could follow @code{"BAppend to buffer:@: "} with a @samp{\n}) and an @samp{r}. This would cause Emacs to pass the values of point and mark to the function as well as prompt you for the buffer---three arguments in all. --- 3487,3493 ---- each argument in the same order it is specified in the @code{interactive} list. In the string, each part is separated from the next part by a @samp{\n}, which is a newline. For example, you ! could follow @code{"BAppend to buffer:@: "} with a @samp{\n} and an @samp{r}. This would cause Emacs to pass the values of point and mark to the function as well as prompt you for the buffer---three arguments in all. *************** *** 4393,4398 **** --- 4344,4350 ---- prompt for information. Parts of the string are separated by newlines, @samp{\n}. + @need 1000 Common code characters are: @table @code *************** *** 4523,4530 **** can contain @samp{%s}, @samp{%d}, or @samp{%c} to print the value of arguments that follow the string. The argument used by @samp{%s} must be a string or a symbol; the argument used by @samp{%d} must be a ! number. The argument used by @samp{%c} must be an ascii code number; ! it will be printed as the character with that @sc{ascii} code. @item setq @itemx set --- 4475,4482 ---- can contain @samp{%s}, @samp{%d}, or @samp{%c} to print the value of arguments that follow the string. The argument used by @samp{%s} must be a string or a symbol; the argument used by @samp{%d} must be a ! number. The argument used by @samp{%c} must be an @sc{ascii} code ! number; it will be printed as the character with that @sc{ascii} code. @item setq @itemx set *************** *** 4632,4638 **** In versions 20 and higher, when a function is written in Emacs Lisp, @code{describe-function} will also tell you the location of the function definition. If you move point over the file name and press ! the @key{RET} key, which is this case means @code{help-follow} rather than `return' or `enter', Emacs will take you directly to the function definition. --- 4584,4590 ---- In versions 20 and higher, when a function is written in Emacs Lisp, @code{describe-function} will also tell you the location of the function definition. If you move point over the file name and press ! the @key{RET} key, which in this case means @code{help-follow} rather than `return' or `enter', Emacs will take you directly to the function definition. *************** *** 4647,4654 **** the locations of the functions, variables, and other items to which @code{find-tags} jumps. ! To use the @code{find-tags} command, type @kbd{M-.} (i.e., type the ! @key{META} key and the period key at the same time, or else type the @key{ESC} key and then type the period key), and then, at the prompt, type in the name of the function whose source code you want to see, such as @code{mark-whole-buffer}, and then type @key{RET}. Emacs will --- 4599,4606 ---- the locations of the functions, variables, and other items to which @code{find-tags} jumps. ! To use the @code{find-tags} command, type @kbd{M-.} (i.e., press the ! period key while holding down the @key{META} key, or else type the @key{ESC} key and then type the period key), and then, at the prompt, type in the name of the function whose source code you want to see, such as @code{mark-whole-buffer}, and then type @key{RET}. Emacs will *************** *** 4668,4674 **** the @file{/usr/local/share/emacs/} directory; thus you would use the @code{M-x visit-tags-table} command and specify a pathname such as @file{/usr/local/share/emacs/21.0.100/lisp/TAGS} or ! @file{/usr/local/src/emacs/lisp/TAGS}. If the tags table has not already been created, you will have to create it yourself. @need 1250 --- 4620,4626 ---- the @file{/usr/local/share/emacs/} directory; thus you would use the @code{M-x visit-tags-table} command and specify a pathname such as @file{/usr/local/share/emacs/21.0.100/lisp/TAGS} or ! @file{/usr/local/src/emacs/src/TAGS}. If the tags table has not already been created, you will have to create it yourself. @need 1250 *************** *** 4893,4898 **** --- 4845,4851 ---- to the @code{simplified-beginning-of-buffer} function described in the previous section. + @need 1250 @node Body of mark-whole-buffer, , mark-whole-buffer overview, mark-whole-buffer @comment node-name, next, previous, up @subsection Body of @code{mark-whole-buffer} *************** *** 5477,5482 **** --- 5430,5438 ---- reverse of @code{append-to-buffer} or @code{copy-to-buffer}, since they copy a region of text @emph{from} the current buffer to another buffer. + Here is a discussion based on the original code. The code was + simplified in 2003 and is harder to understand. + In addition, this code illustrates the use of @code{interactive} with a buffer that might be @dfn{read-only} and the important distinction between the name of an object and the object actually referred to. *************** *** 5830,5836 **** mark is still accessible; it is recorded on the mark ring and you can go back to it with @kbd{C-u C-@key{SPC}}.) Meanwhile, point is located at the beginning of the inserted text, which is where it was ! before you called the insert function. @need 1250 The whole @code{let} expression looks like this: --- 5786,5793 ---- mark is still accessible; it is recorded on the mark ring and you can go back to it with @kbd{C-u C-@key{SPC}}.) Meanwhile, point is located at the beginning of the inserted text, which is where it was ! before you called the insert function, the position of which was saved ! by the first @code{save-excursion}. @need 1250 The whole @code{let} expression looks like this: *************** *** 6144,6155 **** The number that results from all this is passed to @code{goto-char} and the cursor is moved to that point. @node beginning-of-buffer complete, , beginning-of-buffer opt arg, beginning-of-buffer @comment node-name, next, previous, up @subsection The Complete @code{beginning-of-buffer} ! @need 800 Here is the complete text of the @code{beginning-of-buffer} function: @smallexample @group --- 6101,6114 ---- The number that results from all this is passed to @code{goto-char} and the cursor is moved to that point. + @need 1500 @node beginning-of-buffer complete, , beginning-of-buffer opt arg, beginning-of-buffer @comment node-name, next, previous, up @subsection The Complete @code{beginning-of-buffer} ! @need 1000 Here is the complete text of the @code{beginning-of-buffer} function: + @sp 1 @smallexample @group *************** *** 6158,6163 **** --- 6117,6124 ---- leave mark at previous position. With arg N, put point N/10 of the way from the true beginning. + @end group + @group Don't use this in Lisp programs! \(goto-char (point-min)) is faster and does not set the mark." *************** *** 6265,6273 **** @section @code{optional} Argument Exercise Write an interactive function with an optional argument that tests ! whether its argument, a number, is greater or less than the value of ! @code{fill-column}, and tells you which, in a message. However, if you ! do not pass an argument to the function, use 56 as a default value. @node Narrowing & Widening, car cdr & cons, More Complex, Top @comment node-name, next, previous, up --- 6226,6235 ---- @section @code{optional} Argument Exercise Write an interactive function with an optional argument that tests ! whether its argument, a number, is greater than or equal to, or else, ! less than the value of @code{fill-column}, and tells you which, in a ! message. However, if you do not pass an argument to the function, use ! 56 as a default value. @node Narrowing & Widening, car cdr & cons, More Complex, Top @comment node-name, next, previous, up *************** *** 6396,6402 **** The @code{what-line} command tells you the number of the line in which the cursor is located. The function illustrates the use of the @code{save-restriction} and @code{save-excursion} commands. Here is the ! text of the function in full: @smallexample @group --- 6358,6364 ---- The @code{what-line} command tells you the number of the line in which the cursor is located. The function illustrates the use of the @code{save-restriction} and @code{save-excursion} commands. Here is the ! original text of the function: @smallexample @group *************** *** 6412,6420 **** @end group @end smallexample ! The function has a documentation line and is interactive, as you would ! expect. The next two lines use the functions @code{save-restriction} and ! @code{widen}. The @code{save-restriction} special form notes whatever narrowing is in effect, if any, in the current buffer and restores that narrowing after --- 6374,6392 ---- @end group @end smallexample ! (In recent versions of GNU Emacs, the @code{what-line} function has ! been expanded to tell you your line number in a narrowed buffer as ! well as your line number in a widened buffer. The recent version is ! more complex than the version shown here. If you feel adventurous, ! you might want to look at it after figuring out how this version ! works. The newer version uses a conditional to determine whether the ! buffer has been narrowed, and rather than use @code{beginning-of-line} ! to move point to the beginning of the current line, if need be, the ! function uses @code{(forward-line 0)}.) ! ! The function as shown here has a documentation line and is ! interactive, as you would expect. The next two lines use the ! functions @code{save-restriction} and @code{widen}. The @code{save-restriction} special form notes whatever narrowing is in effect, if any, in the current buffer and restores that narrowing after *************** *** 6460,6465 **** --- 6432,6438 ---- something such as @samp{Line 243}. @need 1200 + The number that is printed in place of the @samp{%d} is computed by the last line of the function: *************** *** 6485,6495 **** Write a function that will display the first 60 characters of the current buffer, even if you have narrowed the buffer to its latter ! half so that the first line is inaccessible. Restore point, mark, ! and narrowing. For this exercise, you need to use ! @code{save-restriction}, @code{widen}, @code{goto-char}, ! @code{point-min}, @code{buffer-substring}, @code{message}, and other ! functions, a whole potpourri. @node car cdr & cons, Cutting & Storing Text, Narrowing & Widening, Top @comment node-name, next, previous, up --- 6458,6478 ---- Write a function that will display the first 60 characters of the current buffer, even if you have narrowed the buffer to its latter ! half so that the first line is inaccessible. Restore point, mark, and ! narrowing. For this exercise, you need to use a whole potpourri of ! functions, including @code{save-restriction}, @code{widen}, ! @code{goto-char}, @code{point-min}, @code{message}, and ! @code{buffer-substring}. ! ! @cindex Properties, mention of @code{buffer-substring-no-properties} ! (@code{buffer-substring} is a previously unmentioned function you will ! have to investigate yourself; or perhaps you will have to use ! @code{buffer-substring-no-properties} @dots{}, yet another function ! and one that introduces text properties, a feature otherwise not ! discussed here. @xref{Text Properties, , Text Properties, elisp, The ! GNU Emacs Lisp Reference Manual}. Additionally, do you really need ! @code{goto-char} or @code{point-min}? Or can you write the function ! without them?) @node car cdr & cons, Cutting & Storing Text, Narrowing & Widening, Top @comment node-name, next, previous, up *************** *** 6571,6577 **** returned by the @code{cdr} function, is @code{(violet daisy buttercup)}. ! @need 1250 You can see this by evaluating the following in the usual way: @smallexample --- 6554,6560 ---- returned by the @code{cdr} function, is @code{(violet daisy buttercup)}. ! @need 800 You can see this by evaluating the following in the usual way: @smallexample *************** *** 7081,7086 **** --- 7064,7073 ---- except that the function replaces the second and subsequent elements of a list rather than the first element. + (To see how to change the last element of a list, look ahead to + @ref{kill-new function, , The @code{kill-new} function}, which uses + the @code{nthcdr} and @code{setcdr} functions.) + @need 1200 To see how this works, set the value of the variable to a list of domesticated animals by evaluating the following expression: *************** *** 7339,7352 **** @code{interactive}. According to the documentation for @code{interactive}, the asterisk, @samp{*}, should prevent the @code{zap-to-char} function from doing anything at all when the buffer ! is read only. The function should not copy the text to the kill ring. ! It is a bug that it does. ! In version 21, @code{interactive} is implemented correctly. So the asterisk, @samp{*}, had to be removed from the interactive ! specification. If you insert an @samp{*} and evaluate the function ! definition, then the next time you run the @code{zap-to-char} function ! on a read-only buffer, you will not copy any text. That change aside, and a change to the documentation, the two versions of the @code{zap-to-char} function are identical. --- 7326,7341 ---- @code{interactive}. According to the documentation for @code{interactive}, the asterisk, @samp{*}, should prevent the @code{zap-to-char} function from doing anything at all when the buffer ! is read only. In version 19, the function should not copy the text to ! the kill ring. It is a bug that it does. ! In version 21, the function is designed to copy the text to the kill ! ring; moreover, @code{interactive} is implemented correctly. So the asterisk, @samp{*}, had to be removed from the interactive ! specification. However, if you insert an @samp{*} yourself and ! evaluate the function definition, then the next time you run the ! @code{zap-to-char} function on a read-only buffer, you will not copy ! any text. That change aside, and a change to the documentation, the two versions of the @code{zap-to-char} function are identical. *************** *** 7560,7567 **** @need 1200 We will go through the @code{condition-case} code in a moment. First, ! let us look at the complete definition of @code{kill-region}, with ! comments added: @c v 21 @smallexample --- 7549,7557 ---- @need 1200 We will go through the @code{condition-case} code in a moment. First, ! let us look at the original definition of @code{kill-region}, with ! comments added (the newer definition has an optional third argument ! and is more complex): @c v 21 @smallexample *************** *** 8141,8146 **** --- 8131,8138 ---- Here is the complete text of the version 21 @code{copy-region-as-kill} function: + @c !!! for no text properties, use buffer-substring-no-properties + @smallexample @group (defun copy-region-as-kill (beg end) *************** *** 8588,8599 **** @findex setcdr, @r{example} Thus, if we had a four element list that was supposed to be three elements long, we could set the @sc{cdr} of the next to last element ! to @code{nil}, and thereby shorten the list. ! ! You can see this by evaluating the following three expressions in turn. ! First set the value of @code{trees} to @code{(maple oak pine birch)}, ! then set the @sc{cdr} of its second @sc{cdr} to @code{nil} and then ! find the value of @code{trees}: @smallexample @group --- 8580,8593 ---- @findex setcdr, @r{example} Thus, if we had a four element list that was supposed to be three elements long, we could set the @sc{cdr} of the next to last element ! to @code{nil}, and thereby shorten the list. (If you sent the last ! element to some other value than @code{nil}, which you could do, then ! you would not have shortened the list.) ! ! You can see shortening by evaluating the following three expressions ! in turn. First set the value of @code{trees} to @code{(maple oak pine ! birch)}, then set the @sc{cdr} of its second @sc{cdr} to @code{nil} ! and then find the value of @code{trees}: @smallexample @group *************** *** 8718,8723 **** --- 8712,8718 ---- to learn how lists are implemented in a computer. This will make clear such mysteries as the use of the term `pointer'. + @need 1250 @node cons & search-fwd Review, search Exercises, copy-region-as-kill, Cutting & Storing Text @comment node-name, next, previous, up @section Review *************** *** 8843,8849 **** @end enumerate @item kill-region ! @itemx delete-region @itemx copy-region-as-kill @code{kill-region} cuts the text between point and mark from the --- 8838,8844 ---- @end enumerate @item kill-region ! @itemx delete-and-extract-region @itemx copy-region-as-kill @code{kill-region} cuts the text between point and mark from the *************** *** 11523,11539 **** @item Write a function for Texinfo mode that creates an index entry at the beginning of a paragraph for every @samp{@@dfn} within the paragraph. ! (In a Texinfo file, @samp{@@dfn} marks a definition. For more ! information, see @ifinfo ! @ref{Indicating, , Indicating Definitions, texinfo}.) @end ifinfo @ifhtml ! @ref{Indicating, , Indicating, texinfo, Texinfo Manual}.) @end ifhtml @iftex ``Indicating Definitions, Commands, etc.'' in @cite{Texinfo, The GNU ! Documentation Format}.) @end iftex @end itemize --- 11518,11547 ---- @item Write a function for Texinfo mode that creates an index entry at the beginning of a paragraph for every @samp{@@dfn} within the paragraph. ! (In a Texinfo file, @samp{@@dfn} marks a definition. This book is ! written in Texinfo.) ! ! Many of the functions you will need are described in two of the ! previous chapters, @ref{Cutting & Storing Text, , Cutting and Storing ! Text}, and @ref{Yanking, , Yanking Text Back}. If you use ! @code{forward-paragraph} to put the index entry at the beginning of ! the paragraph, you will have to use @w{@kbd{C-h f}} ! (@code{describe-function}) to find out how to make the command go ! backwards. ! ! For more information, see @ifinfo ! @ref{Indicating, , Indicating Definitions, texinfo}. @end ifinfo @ifhtml ! @ref{Indicating, , Indicating, texinfo, Texinfo Manual}, which goes to ! a Texinfo manual in the current directory. Or, if you are on the ! Internet, see ! @uref{http://www.gnu.org/manual/texinfo-4.6/html_node/Indicating.html} @end ifhtml @iftex ``Indicating Definitions, Commands, etc.'' in @cite{Texinfo, The GNU ! Documentation Format}. @end iftex @end itemize *************** *** 14705,14711 **** '("../lisp/macros.el" "../lisp/mailalias.el" "../lisp/makesum.el")) ! '< @end group @end smallexample --- 14713,14719 ---- '("../lisp/macros.el" "../lisp/mailalias.el" "../lisp/makesum.el")) ! '<) @end group @end smallexample *************** *** 16097,16103 **** arguments are optional.) Each of these arguments consists of a keyword followed by a value. ! Each keyword starts with the character @code{:}. @need 1250 For example, the customizable user option variable --- 16105,16111 ---- arguments are optional.) Each of these arguments consists of a keyword followed by a value. ! Each keyword starts with the colon character @samp{:}. @need 1250 For example, the customizable user option variable *************** *** 16180,16191 **** those who do not know what they are doing, so they do not inadvertently generate an error. ! The @code{custom-set-variables} works somewhat differently than a ! @code{setq}. While I have never learned the differences, I do modify ! the @code{custom-set-variables} expressions in my @file{.emacs} file ! by hand: I make the changes in what appears to me to be a reasonable ! manner and have not had any problems. Others prefer to use the ! Customization command and let Emacs do the work for them. Another @code{custom-set-@dots{}} function is @code{custom-set-faces}. This function sets the various font faces. Over time, I have set a --- 16188,16199 ---- those who do not know what they are doing, so they do not inadvertently generate an error. ! The @code{custom-set-variables} function works somewhat differently ! than a @code{setq}. While I have never learned the differences, I do ! modify the @code{custom-set-variables} expressions in my @file{.emacs} ! file by hand: I make the changes in what appears to me to be a ! reasonable manner and have not had any problems. Others prefer to use ! the Customization command and let Emacs do the work for them. Another @code{custom-set-@dots{}} function is @code{custom-set-faces}. This function sets the various font faces. Over time, I have set a *************** *** 16249,16254 **** --- 16257,16263 ---- By now, of course, I remember these things, but when I started, I did not. + @need 1200 @smallexample @group ;;;; Bob's .emacs file *************** *** 16699,16709 **** Many people in the GNU Emacs community have written extensions to Emacs. As time goes by, these extensions are often included in new releases. For example, the Calendar and Diary packages are now part ! of the standard GNU Emacs. ! ! (Calc, which I consider a vital part of Emacs, would be part of the ! standard distribution except that it was so large it was packaged ! separately and no one has changed that.) You can use a @code{load} command to evaluate a complete file and thereby install all the functions and variables in the file into Emacs. --- 16708,16714 ---- Many people in the GNU Emacs community have written extensions to Emacs. As time goes by, these extensions are often included in new releases. For example, the Calendar and Diary packages are now part ! of the standard GNU Emacs, as is Calc. You can use a @code{load} command to evaluate a complete file and thereby install all the functions and variables in the file into Emacs. *************** *** 17081,17088 **** --- 17086,17216 ---- (set-mouse-color "white")) @end group @end smallexample + + @item + Convert @kbd{@key{CTL}-h} into @key{DEL} and @key{DEL} + into @kbd{@key{CTL}-h}.@* + (Some olders keyboards needed this, although I have not seen the + problem recently.) + + @smallexample + @group + ;; Translate `C-h' to . + ; (keyboard-translate ?\C-h ?\C-?) + + ;; Translate to `C-h'. + (keyboard-translate ?\C-? ?\C-h) + @end group + @end smallexample + + @item Turn off a blinking cursor! + + @smallexample + @group + (if (fboundp 'blink-cursor-mode) + (blink-cursor-mode -1)) + @end group + @end smallexample + + @item Ignore case when using `grep'@* + @samp{-n}@w{ } Prefix each line of output with line number@* + @samp{-i}@w{ } Ignore case distinctions@* + @samp{-e}@w{ } Protect patterns beginning with a hyphen character, @samp{-} + + @smallexample + (setq grep-command "grep -n -i -e ") + @end smallexample + + @item Automatically uncompress compressed files when visiting them + + @smallexample + (load "uncompress") + @end smallexample + + @item Find an existing buffer, even if it has a different name@* + This avoids problems with symbolic links. + + @smallexample + (setq find-file-existing-other-name t) + @end smallexample + + @item Set your language environment and default input method + + @smallexample + @group + (set-language-environment "latin-1") + ;; Remember you can enable or disable multilingual text input + ;; with the @code{toggle-input-method'} (@kbd{C-\}) command + (setq default-input-method "latin-1-prefix") + @end group + @end smallexample + + If you want to write with Chinese `GB' characters, set this instead: + + @smallexample + @group + (set-language-environment "Chinese-GB") + (setq default-input-method "chinese-tonepy") + @end group + @end smallexample @end itemize + @subsubheading Fixing Unpleasant Key Bindings + @cindex Key bindings, fixing + @cindex Bindings, key, fixing unpleasant + + Some systems bind keys unpleasantly. Sometimes, for example, the + @key{CTL} key appears in an awkward spot rather than at the far left + of the home row. + + Usually, when people fix these sorts of keybindings, they do not + change their @file{~/.emacs} file. Instead, they bind the proper keys + on their consoles with the @code{loadkeys} or @code{install-keymap} + commands in their boot script and then include @code{xmodmap} commands + in their @file{.xinitrc} or @file{.Xsession} file for X Windows. + + @need 1250 + @noindent + For a boot script: + + @smallexample + @group + loadkeys /usr/share/keymaps/i386/qwerty/emacs2.kmap.gz + + @exdent or + + install-keymap emacs2 + @end group + @end smallexample + + @need 1250 + @noindent + For a @file{.xinitrc} or @file{.Xsession} file when the @key{Caps + Lock} key is at the far left of the home row: + + @smallexample + @group + # Bind the key labeled `Caps Lock' to `Control' + # (Such a broken user interface suggests that keyboard manufacturers + # think that computers are typewriters from 1885.) + + xmodmap -e "clear Lock" + xmodmap -e "add Control = Caps_Lock" + @end group + @end smallexample + + @need 1250 + @noindent + In a @file{.xinitrc} or @file{.Xsession} file, to convert an @key{ALT} + key to a @key{META} key: + + @smallexample + @group + # Some ill designed keyboards have a key labeled ALT and no Meta + xmodmap -e "keysym Alt_L = Meta_L Alt_L" + @end group + @end smallexample + @node Mode Line, , Miscellaneous, Emacs Initialization @section A Modified Mode Line @vindex default-mode-line-format *************** *** 17160,17170 **** on. However, the format looks complicated because of two features we have not discussed. The first string in the mode line is a dash or hyphen, @samp{-}. In the old days, it would have been specified simply as @code{"-"}. But nowadays, Emacs can add properties to a string, such as highlighting or, as in this case, a help feature. If you place your mouse cursor ! over the hyphen, some help information appears (By default, you must wait one second before the information appears. You can change that timing by changing the value of @code{tooltip-delay}.) --- 17288,17299 ---- on. However, the format looks complicated because of two features we have not discussed. + @cindex Properties, in mode line example The first string in the mode line is a dash or hyphen, @samp{-}. In the old days, it would have been specified simply as @code{"-"}. But nowadays, Emacs can add properties to a string, such as highlighting or, as in this case, a help feature. If you place your mouse cursor ! over the hyphen, some help information appears (By default, you must wait one second before the information appears. You can change that timing by changing the value of @code{tooltip-delay}.) *************** *** 17187,17196 **** case, a string. The second, third, and fourth elements of this new string format can be repeated. ! @xref{Text Props and Strings, , Text Properties in String, elisp, The ! GNU Emacs Lisp Reference Manual}, and see @ref{Mode Line Format, , Mode ! Line Format, elisp, The GNU Emacs Lisp Reference Manual}, for more ! information. @code{mode-line-buffer-identification} displays the current buffer name. It is a list --- 17316,17324 ---- case, a string. The second, third, and fourth elements of this new string format can be repeated. ! @xref{Text Properties, , Text Properties, elisp, The GNU Emacs Lisp ! Reference Manual}, and see @ref{Mode Line Format, , Mode Line Format, ! elisp, The GNU Emacs Lisp Reference Manual}, for more information. @code{mode-line-buffer-identification} displays the current buffer name. It is a list *************** *** 17495,17500 **** --- 17623,17629 ---- @end group @end smallexample + @need 1500 @noindent Finally, after you type @kbd{d} two more times, Emacs will reach the error, and the top two lines of the @file{*Backtrace*} buffer will look *************** *** 17573,17578 **** --- 17702,17708 ---- Edebug is described in @ref{edebug, , Edebug, elisp, The GNU Emacs Lisp Reference Manual}. + @need 1250 Here is a bugged function definition for @code{triangle-recursively}. @xref{Recursive triangle function, , Recursion in place of a counter}, for a review of it. *************** *** 17660,17666 **** @noindent This means the value of @code{number} is 3, which is @sc{ascii} ! `control-c' (the third letter of the alphabet). You can continue moving through the code until you reach the line with the error. Before evaluation, that line looks like this: --- 17790,17797 ---- @noindent This means the value of @code{number} is 3, which is @sc{ascii} ! `control-c' (the third letter of the alphabet, in case you need to ! know this information). You can continue moving through the code until you reach the line with the error. Before evaluation, that line looks like this: *************** *** 17990,17995 **** --- 18121,18127 ---- * rotate-yank-pointer:: Move a pointer along a list and around. * yank:: Paste a copy of a clipped element. * yank-pop:: Insert first element pointed to. + * ring file:: @end menu @node rotate-yank-pointer, yank, Kill Ring, Kill Ring *************** *** 18308,18313 **** --- 18440,18446 ---- @noindent will be 1. + @need 1200 Consequently, the argument to @code{nthcdr} will be found as the result of the expression *************** *** 18384,18389 **** --- 18517,18523 ---- is 1. (I just checked this by placing the cursor after the expression and typing @kbd{C-x C-e}. Indeed, 1 is printed in the echo area.) + @need 2000 @node rotate-yk-ptr remainder, kill-rng-yk-ptr last elt, Remainder Function, rotate-yk-ptr body @unnumberedsubsubsec Using @code{%} in @code{rotate-yank-pointer} *************** *** 18682,18688 **** and doing this is easier than writing a function to determine the magnitude of the number that follows the minus sign. ! @node yank-pop, , yank, Kill Ring @comment node-name, next, previous, up @appendixsec @code{yank-pop} @findex yank-pop --- 18816,18822 ---- and doing this is easier than writing a function to determine the magnitude of the number that follows the minus sign. ! @node yank-pop, ring file, yank, Kill Ring @comment node-name, next, previous, up @appendixsec @code{yank-pop} @findex yank-pop *************** *** 18729,18735 **** exchanged so point is again left in front of the newly inserted text. That is all there is to it! ! @node Full Graph, GNU Free Documentation License, Kill Ring, Top @appendix A Graph with Labelled Axes Printed axes help you understand a graph. They convey scale. In an --- 18863,18879 ---- exchanged so point is again left in front of the newly inserted text. That is all there is to it! ! @node ring file, , yank-pop, Kill Ring ! @comment node-name, next, previous, up ! @appendixsec The @file{ring.el} File ! @cindex @file{ring.el} file ! ! Interestingly, GNU Emacs posses a file called @file{ring.el} that ! provides many of the features we just discussed. But functions such ! as @code{kill-ring-yank-pointer} do not use this library, possibly ! because they were written earlier. ! ! @node Full Graph, Free Software and Free Manuals, Kill Ring, Top @appendix A Graph with Labelled Axes Printed axes help you understand a graph. They convey scale. In an *************** *** 18875,18880 **** --- 19019,19025 ---- @noindent As we shall see, this expression is not quite right. + @need 2000 @node print-Y-axis, print-X-axis, print-graph Varlist, Full Graph @comment node-name, next, previous, up @appendixsec The @code{print-Y-axis} Function *************** *** 18950,18956 **** divided into several smaller problems. First, consider the case when the highest value of the graph is an ! integral multiple of five---when it is 5, 10, 15 ,or some higher multiple of five. We can use this value as the Y axis height. A fairly simply way to determine whether a number is a multiple of --- 19095,19101 ---- divided into several smaller problems. First, consider the case when the highest value of the graph is an ! integral multiple of five---when it is 5, 10, 15, or some higher multiple of five. We can use this value as the Y axis height. A fairly simply way to determine whether a number is a multiple of *************** *** 19250,19255 **** --- 19395,19401 ---- blank label using the @code{make-string} function. The base line consists of the number one followed by a tic mark. + @need 2000 @node print-Y-axis Penultimate, , Y-axis-column, print-Y-axis @appendixsubsec The Not Quite Final Version of @code{print-Y-axis} *************** *** 19325,19330 **** --- 19471,19477 ---- will pass the value of @code{height-of-top-line}, which in this case would end up as 15.) + @need 2000 @node print-X-axis, Print Whole Graph, print-Y-axis, Full Graph @appendixsec The @code{print-X-axis} Function @cindex Axis, print horizontal *************** *** 19667,19672 **** --- 19814,19820 ---- @need 1250 Emacs will print the horizontal axis like this: + @sp 1 @smallexample @group *************** *** 19921,19926 **** --- 20069,20075 ---- @end group @end smallexample + @need 1200 On the other hand, if you pass @code{print-graph} a @code{vertical-step} value of 2, by evaluating this expression: *************** *** 20004,20012 **** @end smallexample @noindent ! On my machine, this takes about an hour. It looks though 303 Lisp files in my copy of Emacs version 19.23. After all that computing, ! the @code{list-for-graph} has this value: @smallexample @group --- 20153,20161 ---- @end smallexample @noindent ! On my old machine, this took about an hour. It looked though 303 Lisp files in my copy of Emacs version 19.23. After all that computing, ! the @code{list-for-graph} had this value: @smallexample @group *************** *** 20016,20022 **** @end smallexample @noindent ! This means that my copy of Emacs has 537 function definitions with fewer than 10 words or symbols in them, 1,027 function definitions with 10 to 19 words or symbols in them, 955 function definitions with 20 to 29 words or symbols in them, and so on. --- 20165,20171 ---- @end smallexample @noindent ! This means that my copy of Emacs had 537 function definitions with fewer than 10 words or symbols in them, 1,027 function definitions with 10 to 19 words or symbols in them, 955 function definitions with 20 to 29 words or symbols in them, and so on. *************** *** 20064,20069 **** --- 20213,20219 ---- is a function definition that says `return the value resulting from dividing whatever is passed to me as @code{arg} by 50'. + @need 1200 Earlier, for example, we had a function @code{multiply-by-seven}; it multiplied its argument by 7. This function is similar, except it divides its argument by 50; and, it has no name. The anonymous *************** *** 20992,21006 **** When made and installed, you can call the @code{print-graph} command like this: @smallexample @group (print-graph fiftieth-list-for-graph 50 10) @end group @end smallexample Here is the graph: - @sp 2 @smallexample --- 21142,21158 ---- When made and installed, you can call the @code{print-graph} command like this: + @sp 1 @smallexample @group (print-graph fiftieth-list-for-graph 50 10) @end group @end smallexample + @sp 1 + @noindent Here is the graph: @sp 2 @smallexample *************** *** 21032,21047 **** @sp 2 The largest group of functions contain 10 -- 19 words and symbols each. ! @node GNU Free Documentation License, Index, Full Graph, Top @appendix GNU Free Documentation License @cindex FDL, GNU Free Documentation License ! @center Version 1.1, March 2000 @display ! Copyright @copyright{} 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies --- 21184,21326 ---- @sp 2 + @noindent The largest group of functions contain 10 -- 19 words and symbols each. ! @node Free Software and Free Manuals, GNU Free Documentation License, Full Graph, Top ! @appendix Free Software and Free Manuals ! ! @strong{by Richard M. Stallman} ! @sp 1 ! ! The biggest deficiency in free operating systems is not in the ! software---it is the lack of good free manuals that we can include in ! these systems. Many of our most important programs do not come with ! full manuals. Documentation is an essential part of any software ! package; when an important free software package does not come with a ! free manual, that is a major gap. We have many such gaps today. ! ! Once upon a time, many years ago, I thought I would learn Perl. I got ! a copy of a free manual, but I found it hard to read. When I asked ! Perl users about alternatives, they told me that there were better ! introductory manuals---but those were not free. ! ! Why was this? The authors of the good manuals had written them for ! O'Reilly Associates, which published them with restrictive terms---no ! copying, no modification, source files not available---which exclude ! them from the free software community. ! ! That wasn't the first time this sort of thing has happened, and (to ! our community's great loss) it was far from the last. Proprietary ! manual publishers have enticed a great many authors to restrict their ! manuals since then. Many times I have heard a GNU user eagerly tell me ! about a manual that he is writing, with which he expects to help the ! GNU project---and then had my hopes dashed, as he proceeded to explain ! that he had signed a contract with a publisher that would restrict it ! so that we cannot use it. ! ! Given that writing good English is a rare skill among programmers, we ! can ill afford to lose manuals this way. ! ! @c (texinfo)uref ! (The Free Software Foundation ! @uref{http://www.gnu.org/doc/doc.html#DescriptionsOfGNUDocumentation, , ! sells printed copies} of free @uref{http://www.gnu.org/doc/doc.html, ! GNU manuals}, too.) ! ! Free documentation, like free software, is a matter of freedom, not ! price. The problem with these manuals was not that O'Reilly Associates ! charged a price for printed copies---that in itself is fine. (The Free ! Software Foundation sells printed copies of free GNU manuals, too.) ! But GNU manuals are available in source code form, while these manuals ! are available only on paper. GNU manuals come with permission to copy ! and modify; the Perl manuals do not. These restrictions are the ! problems. ! ! The criterion for a free manual is pretty much the same as for free ! software: it is a matter of giving all users certain ! freedoms. Redistribution (including commercial redistribution) must be ! permitted, so that the manual can accompany every copy of the program, ! on-line or on paper. Permission for modification is crucial too. ! ! As a general rule, I don't believe that it is essential for people to ! have permission to modify all sorts of articles and books. The issues ! for writings are not necessarily the same as those for software. For ! example, I don't think you or I are obliged to give permission to ! modify articles like this one, which describe our actions and our ! views. ! ! But there is a particular reason why the freedom to modify is crucial ! for documentation for free software. When people exercise their right ! to modify the software, and add or change its features, if they are ! conscientious they will change the manual too---so they can provide ! accurate and usable documentation with the modified program. A manual ! which forbids programmers to be conscientious and finish the job, or ! more precisely requires them to write a new manual from scratch if ! they change the program, does not fill our community's needs. ! ! While a blanket prohibition on modification is unacceptable, some ! kinds of limits on the method of modification pose no problem. For ! example, requirements to preserve the original author's copyright ! notice, the distribution terms, or the list of authors, are ok. It is ! also no problem to require modified versions to include notice that ! they were modified, even to have entire sections that may not be ! deleted or changed, as long as these sections deal with nontechnical ! topics. (Some GNU manuals have them.) ! ! These kinds of restrictions are not a problem because, as a practical ! matter, they don't stop the conscientious programmer from adapting the ! manual to fit the modified program. In other words, they don't block ! the free software community from making full use of the manual. ! ! However, it must be possible to modify all the technical content of ! the manual, and then distribute the result in all the usual media, ! through all the usual channels; otherwise, the restrictions do block ! the community, the manual is not free, and so we need another manual. ! ! Unfortunately, it is often hard to find someone to write another ! manual when a proprietary manual exists. The obstacle is that many ! users think that a proprietary manual is good enough---so they don't ! see the need to write a free manual. They do not see that the free ! operating system has a gap that needs filling. ! ! Why do users think that proprietary manuals are good enough? Some have ! not considered the issue. I hope this article will do something to ! change that. ! ! Other users consider proprietary manuals acceptable for the same ! reason so many people consider proprietary software acceptable: they ! judge in purely practical terms, not using freedom as a ! criterion. These people are entitled to their opinions, but since ! those opinions spring from values which do not include freedom, they ! are no guide for those of us who do value freedom. ! ! Please spread the word about this issue. We continue to lose manuals ! to proprietary publishing. If we spread the word that proprietary ! manuals are not sufficient, perhaps the next person who wants to help ! GNU by writing documentation will realize, before it is too late, that ! he must above all make it free. ! ! We can also encourage commercial publishers to sell free, copylefted ! manuals instead of proprietary ones. One way you can help this is to ! check the distribution terms of a manual before you buy it, and prefer ! copylefted manuals to non-copylefted ones. ! ! @sp 2 ! @noindent ! Note: The Free Software Foundation maintains a page on its Web site ! that lists free books available from other publishers:@* ! @uref{http://www.gnu.org/doc/other-free-books.html} ! ! ! @node GNU Free Documentation License, Index, Free Software and Free Manuals, Top @appendix GNU Free Documentation License @cindex FDL, GNU Free Documentation License ! @center Version 1.2, November 2002 @display ! Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies *************** *** 21053,21064 **** PREAMBLE The purpose of this License is to make a manual, textbook, or other ! written document @dfn{free} in the sense of freedom: to assure everyone ! the effective freedom to copy and redistribute it, with or without ! modifying it, either commercially or noncommercially. Secondarily, ! this License preserves for the author and publisher a way to get ! credit for their work, while not being considered responsible for ! modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It --- 21332,21343 ---- PREAMBLE The purpose of this License is to make a manual, textbook, or other ! functional and useful document @dfn{free} in the sense of freedom: to ! assure everyone the effective freedom to copy and redistribute it, ! with or without modifying it, either commercially or noncommercially. ! Secondarily, this License preserves for the author and publisher a way ! to get credit for their work, while not being considered responsible ! for modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It *************** *** 21076,21132 **** @item APPLICABILITY AND DEFINITIONS ! This License applies to any manual or other work that contains a ! notice placed by the copyright holder saying it can be distributed ! under the terms of this License. The ``Document'', below, refers to any ! such manual or work. Any member of the public is a licensee, and is ! addressed as ``you''. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. ! A ``Secondary Section'' is a named appendix or a front-matter section of ! the Document that deals exclusively with the relationship of the ! publishers or authors of the Document to the Document's overall subject ! (or to related matters) and contains nothing that could fall directly ! within that overall subject. (For example, if the Document is in part a ! textbook of mathematics, a Secondary Section may not explain any ! mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice ! that says that the Document is released under this License. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that ! the Document is released under this License. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the ! general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file ! format whose markup has been designed to thwart or discourage ! subsequent modification by readers is not Transparent. A copy that is ! not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain ! @sc{ascii} without markup, Texinfo input format, La@TeX{} input format, ! @acronym{SGML} or @acronym{XML} using a publicly available ! @acronym{DTD}, and standard-conforming simple @acronym{HTML} designed ! for human modification. Opaque formats include PostScript, ! @acronym{PDF}, proprietary formats that can be read and edited only by ! proprietary word processors, @acronym{SGML} or @acronym{XML} for which ! the @acronym{DTD} and/or processing tools are not generally available, ! and the machine-generated @acronym{HTML} produced by some word ! processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material --- 21355,21423 ---- @item APPLICABILITY AND DEFINITIONS ! This License applies to any manual or other work, in any medium, that ! contains a notice placed by the copyright holder saying it can be ! distributed under the terms of this License. Such a notice grants a ! world-wide, royalty-free license, unlimited in duration, to use that ! work under the conditions stated herein. The ``Document'', below, ! refers to any such manual or work. Any member of the public is a ! licensee, and is addressed as ``you''. You accept the license if you ! copy, modify or distribute the work in a way requiring permission ! under copyright law. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. ! A ``Secondary Section'' is a named appendix or a front-matter section ! of the Document that deals exclusively with the relationship of the ! publishers or authors of the Document to the Document's overall ! subject (or to related matters) and contains nothing that could fall ! directly within that overall subject. (Thus, if the Document is in ! part a textbook of mathematics, a Secondary Section may not explain ! any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice ! that says that the Document is released under this License. If a ! section does not fit the above definition of Secondary then it is not ! allowed to be designated as Invariant. The Document may contain zero ! Invariant Sections. If the Document does not identify any Invariant ! Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that ! the Document is released under this License. A Front-Cover Text may ! be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the ! general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file ! format whose markup, or absence of markup, has been arranged to thwart ! or discourage subsequent modification by readers is not Transparent. ! An image format is not Transparent if used for any substantial amount ! of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain ! @sc{ascii} without markup, Texinfo input format, La@TeX{} input ! format, @acronym{SGML} or @acronym{XML} using a publicly available ! @acronym{DTD}, and standard-conforming simple @acronym{HTML}, ! PostScript or @acronym{PDF} designed for human modification. Examples ! of transparent image formats include @acronym{PNG}, @acronym{XCF} and ! @acronym{JPG}. Opaque formats include proprietary formats that can be ! read and edited only by proprietary word processors, @acronym{SGML} or ! @acronym{XML} for which the @acronym{DTD} and/or processing tools are ! not generally available, and the machine-generated @acronym{HTML}, ! PostScript or @acronym{PDF} produced by some word processors for ! output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material *************** *** 21135,21140 **** --- 21426,21446 ---- the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. + A section ``Entitled XYZ'' means a named subunit of the Document whose + title either is precisely XYZ or contains XYZ in parentheses following + text that translates XYZ in another language. (Here XYZ stands for a + specific section name mentioned below, such as ``Acknowledgements'', + ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' + of such a section when you modify the Document means that it remains a + section ``Entitled XYZ'' according to this definition. + + The Document may include Warranty Disclaimers next to the notice which + states that this License applies to the Document. These Warranty + Disclaimers are considered to be included by reference in this + License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and has + no effect on the meaning of this License. + @item VERBATIM COPYING *************** *** 21154,21162 **** @item COPYING IN QUANTITY ! If you publish printed copies of the Document numbering more than 100, ! and the Document's license notice requires Cover Texts, you must enclose ! the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present --- 21460,21469 ---- @item COPYING IN QUANTITY ! If you publish printed copies (or copies in media that commonly have ! printed covers) of the Document, numbering more than 100, and the ! Document's license notice requires Cover Texts, you must enclose the ! copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present *************** *** 21174,21189 **** If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy ! a publicly-accessible computer-network location containing a complete ! Transparent copy of the Document, free of added material, which the ! general network-using public has access to download anonymously at no ! charge using public-standard network protocols. If you use the latter ! option, you must take reasonably prudent steps, when you begin ! distribution of Opaque copies in quantity, to ensure that this ! Transparent copy will remain thus accessible at the stated location ! until at least one year after the last time you distribute an Opaque ! copy (directly or through your agents or retailers) of that edition to ! the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give --- 21481,21495 ---- If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy ! a computer-network location from which the general network-using ! public has access to download using public-standard network protocols ! a complete Transparent copy of the Document, free of added material. ! If you use the latter option, you must take reasonably prudent steps, ! when you begin distribution of Opaque copies in quantity, to ensure ! that this Transparent copy will remain thus accessible at the stated ! location until at least one year after the last time you distribute an ! Opaque copy (directly or through your agents or retailers) of that ! edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give *************** *** 21211,21217 **** List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the ! Document (all of its principal authors, if it has less than five). @item State on the Title page the name of the publisher of the --- 21517,21524 ---- List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the ! Document (all of its principal authors, if it has fewer than five), ! unless they release you from this requirement. @item State on the Title page the name of the publisher of the *************** *** 21237,21246 **** Include an unaltered copy of this License. @item ! Preserve the section entitled ``History'', and its title, and add to ! it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If ! there is no section entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. --- 21544,21553 ---- Include an unaltered copy of this License. @item ! Preserve the section Entitled ``History'', Preserve its Title, and add ! to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If ! there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. *************** *** 21255,21264 **** publisher of the version it refers to gives permission. @item ! In any section entitled ``Acknowledgments'' or ``Dedications'', ! preserve the section's title, and preserve in the section all the ! substance and tone of each of the contributor acknowledgments ! and/or dedications given therein. @item Preserve all the Invariant Sections of the Document, --- 21562,21571 ---- publisher of the version it refers to gives permission. @item ! For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve ! the Title of the section, and preserve in the section all the ! substance and tone of each of the contributor acknowledgements and/or ! dedications given therein. @item Preserve all the Invariant Sections of the Document, *************** *** 21266,21277 **** or the equivalent are not considered part of the section titles. @item ! Delete any section entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item ! Do not retitle any existing section as ``Endorsements'' ! or to conflict in title with any Invariant Section. @end enumerate If the Modified Version includes new front-matter sections or --- 21573,21587 ---- or the equivalent are not considered part of the section titles. @item ! Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item ! Do not retitle any existing section to be Entitled ``Endorsements'' or ! to conflict in title with any Invariant Section. ! ! @item ! Preserve any Warranty Disclaimers. @end enumerate If the Modified Version includes new front-matter sections or *************** *** 21281,21287 **** list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. ! You may add a section entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a --- 21591,21597 ---- list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. ! You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a *************** *** 21309,21315 **** versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its ! license notice. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single --- 21619,21625 ---- versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its ! license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single *************** *** 21320,21330 **** Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. ! In the combination, you must combine any sections entitled ``History'' ! in the various original documents, forming one section entitled ! ``History''; likewise combine any sections entitled ``Acknowledgments'', ! and any sections entitled ``Dedications''. You must delete all sections ! entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS --- 21630,21640 ---- Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. ! In the combination, you must combine any sections Entitled ``History'' ! in the various original documents, forming one section Entitled ! ``History''; likewise combine any sections Entitled ``Acknowledgements'', ! and any sections Entitled ``Dedications''. You must delete all ! sections Entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS *************** *** 21345,21362 **** A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or ! distribution medium, does not as a whole count as a Modified Version ! of the Document, provided no compilation copyright is claimed for the ! compilation. Such a compilation is called an ``aggregate'', and this ! License does not apply to the other self-contained works thus compiled ! with the Document, on account of their being thus compiled, if they ! are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these ! copies of the Document, then if the Document is less than one quarter ! of the entire aggregate, the Document's Cover Texts may be placed on ! covers that surround only the Document within the aggregate. ! Otherwise they must appear on covers around the whole aggregate. @item TRANSLATION --- 21655,21674 ---- A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or ! distribution medium, is called an ``aggregate'' if the copyright ! resulting from the compilation is not used to limit the legal rights ! of the compilation's users beyond what the individual works permit. ! When the Document is included in an aggregate, this License does not ! apply to the other works in the aggregate which are not themselves ! derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these ! copies of the Document, then if the Document is less than one half of ! the entire aggregate, the Document's Cover Texts may be placed on ! covers that bracket the Document within the aggregate, or the ! electronic equivalent of covers if the Document is in electronic form. ! Otherwise they must appear on printed covers that bracket the whole ! aggregate. @item TRANSLATION *************** *** 21367,21376 **** permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a ! translation of this License provided that you also include the ! original English version of this License. In case of a disagreement ! between the translation and the original English version of this ! License, the original English version will prevail. @item TERMINATION --- 21679,21695 ---- permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a ! translation of this License, and all the license notices in the ! Document, and any Warranty Disclaimers, provided that you also include ! the original English version of this License and the original versions ! of those notices and disclaimers. In case of a disagreement between ! the translation and the original version of this License or a notice ! or disclaimer, the original version will prevail. ! ! If a section in the Document is Entitled ``Acknowledgements'', ! ``Dedications'', or ``History'', the requirement (section 4) to Preserve ! its Title (section 1) will typically require changing the actual ! title. @item TERMINATION *************** *** 21401,21406 **** --- 21720,21764 ---- number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. @end enumerate + + @page + @appendixsubsec ADDENDUM: How to use this License for your documents + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + @smallexample + @group + Copyright (C) @var{year} @var{your name}. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled ``GNU + Free Documentation License''. + @end group + @end smallexample + + If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, + replace the ``with...Texts.'' line with this: + + @smallexample + @group + with the Invariant Sections being @var{list their titles}, with + the Front-Cover Texts being @var{list}, and with the Back-Cover Texts + being @var{list}. + @end group + @end smallexample + + If you have Invariant Sections without Cover Texts, or some other + combination of the three, merge those two alternatives to suit the + situation. + + If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, + to permit their use in free software. @node Index, About the Author, GNU Free Documentation License, Top @comment node-name, next, previous, up From MAILER-DAEMON Wed Jul 16 15:04:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19crZU-0006hs-Sr for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:04:12 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19crYf-000695-Kv for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:03:21 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19crXy-0005dw-HS for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:02:54 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19crWu-00057T-Du for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:01:32 -0400 Received: from bob by subversions.gnu.org with local (Exim 4.20) id 19crVu-0002MH-0w for emacs-diffs@gnu.org; Wed, 16 Jul 2003 15:00:30 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Robert J. Chassell" Date: Wed, 16 Jul 2003 15:00:30 -0400 Subject: [Emacs-diffs] Changes to emacs/lispintro/texinfo.tex X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: bob@rattlesnake.com List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 19:04:10 -0000 Index: emacs/lispintro/texinfo.tex diff -c emacs/lispintro/texinfo.tex:1.3 emacs/lispintro/texinfo.tex:1.4 *** emacs/lispintro/texinfo.tex:1.3 Tue Feb 4 09:44:45 2003 --- emacs/lispintro/texinfo.tex Wed Jul 16 15:00:28 2003 *************** *** 3,12 **** % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % ! \def\texinfoversion{2002-06-07.15} % ! % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, ! % 2000, 01, 02 Free Software Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License as --- 3,12 ---- % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % ! \def\texinfoversion{2003-07-16.18} % ! % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, ! % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License as *************** *** 29,47 **** % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: ! % ftp://ftp.gnu.org/gnu/texinfo.tex % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) - % ftp://texinfo.org/texinfo/texinfo.tex % ftp://tug.org/tex/texinfo.tex % (and all CTAN mirrors, see http://www.ctan.org), % and /home/gd/gnu/doc/texinfo.tex on the GNU machines. % % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. % - % Texinfo has a small home page at http://texinfo.org/ and also - % http://www.gnu.org/software/texinfo. - % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. --- 29,45 ---- % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: ! % ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) % ftp://tug.org/tex/texinfo.tex % (and all CTAN mirrors, see http://www.ctan.org), % and /home/gd/gnu/doc/texinfo.tex on the GNU machines. % + % The GNU Texinfo home page is http://www.gnu.org/software/texinfo. + % % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. *************** *** 58,65 **** % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % ! % It is possible to adapt texinfo.tex for other languages. You can get ! % the existing language-specific files from the full Texinfo distribution. \message{Loading texinfo [version \texinfoversion]:} --- 56,64 ---- % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % ! % It is possible to adapt texinfo.tex for other languages, to some ! % extent. You can get the existing language-specific files from the ! % full Texinfo distribution. \message{Loading texinfo [version \texinfoversion]:} *************** *** 69,75 **** \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} ! % Save some parts of plain tex whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c --- 68,81 ---- \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} ! \message{Basics,} ! \chardef\other=12 ! ! % We never want plain's \outer definition of \+ in Texinfo. ! % For @tex, we can use \tabalign. ! \let\+ = \relax ! ! % Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c *************** *** 79,97 **** \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexi=\i \let\ptexlbrace=\{ \let\ptexrbrace=\} \let\ptexstar=\* \let\ptext=\t - % We never want plain's outer \+ definition in Texinfo. - % For @tex, we can use \tabalign. - \let\+ = \relax - - \message{Basics,} - \chardef\other=12 - % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J --- 85,102 ---- \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! + \let\ptexgtr=> + \let\ptexhat=^ \let\ptexi=\i + \let\ptexindent=\indent \let\ptexlbrace=\{ + \let\ptexless=< + \let\ptexplus=+ \let\ptexrbrace=\} + \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J *************** *** 138,177 **** \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi \ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi % Ignore a token. % \def\gobble#1{} \hyphenation{ap-pen-dix} - \hyphenation{mini-buf-fer mini-buf-fers} \hyphenation{eshell} \hyphenation{white-space} % Margin to add to right of even pages, to left of odd pages. ! \newdimen \bindingoffset ! \newdimen \normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, ! % since that produces some useless output on the terminal. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% ! \ifx\eTeXversion\undefined ! \def\loggingall{\tracingcommands2 \tracingstats2 ! \tracingpages1 \tracingoutput1 \tracinglostchars1 ! \tracingmacros2 \tracingparagraphs1 \tracingrestores1 ! \showboxbreadth\maxdimen\showboxdepth\maxdimen ! }% ! \else ! \def\loggingall{\tracingcommands3 \tracingstats2 ! \tracingpages1 \tracingoutput1 \tracinglostchars1 ! \tracingmacros2 \tracingparagraphs1 \tracingrestores1 ! \tracingscantokens1 \tracingassigns1 \tracingifs1 ! \tracinggroups1 \tracingnesting2 ! \showboxbreadth\maxdimen\showboxdepth\maxdimen }% - \fi % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. --- 143,207 ---- \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi \ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi + % In some macros, we cannot use the `\? notation---the left quote is + % in some cases the escape char. + \chardef\colonChar = `\: + \chardef\commaChar = `\, + \chardef\dotChar = `\. + \chardef\equalChar = `\= + \chardef\exclamChar= `\! + \chardef\questChar = `\? + \chardef\semiChar = `\; + \chardef\spaceChar = `\ % + \chardef\underChar = `\_ + % Ignore a token. % \def\gobble#1{} + % True if #1 is the empty string, i.e., called like `\ifempty{}'. + % + \def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}% + \def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}% + + % Hyphenation fixes. \hyphenation{ap-pen-dix} \hyphenation{eshell} + \hyphenation{mini-buf-fer mini-buf-fers} + \hyphenation{time-stamp} \hyphenation{white-space} % Margin to add to right of even pages, to left of odd pages. ! \newdimen\bindingoffset ! \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, ! % since that produces some useless output on the terminal. We also make ! % some effort to order the tracing commands to reduce output in the log ! % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% ! \def\loggingall{% ! \tracingstats2 ! \tracingpages1 ! \tracinglostchars2 % 2 gives us more in etex ! \tracingparagraphs1 ! \tracingoutput1 ! \tracingmacros2 ! \tracingrestores1 ! \showboxbreadth\maxdimen \showboxdepth\maxdimen ! \ifx\eTeXversion\undefined\else % etex gives us more logging ! \tracingscantokens1 ! \tracingifs1 ! \tracinggroups1 ! \tracingnesting2 ! \tracingassigns1 ! \fi ! \tracingcommands3 % 3 gives us more in etex ! \errorcontextlines\maxdimen }% % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. *************** *** 276,282 **** \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox ! }% end of group with \turnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } --- 306,312 ---- \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox ! }% end of group with \normalturnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } *************** *** 436,452 **** } - % Single-spacing is done by various environments (specifically, in - % \nonfillstart and \quotations). - \newskip\singlespaceskip \singlespaceskip = 12.5pt - \def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading\singlespaceskip - } - %% Simple single-character @ commands % @@ prints an @ --- 466,471 ---- *************** *** 466,481 **** \let\{=\mylbrace \let\}=\myrbrace \begingroup ! % Definitions to produce actual \{ & \} command in an index. ! \catcode`\{ = 12 \catcode`\} = 12 \catcode`\[ = 1 \catcode`\] = 2 ! \catcode`\@ = 0 \catcode`\\ = 12 ! @gdef@lbracecmd[\{]% ! @gdef@rbracecmd[\}]% ! @endgroup % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent ! % Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H. \let\, = \c \let\dotaccent = \. \def\ringaccent#1{{\accent23 #1}} --- 485,503 ---- \let\{=\mylbrace \let\}=\myrbrace \begingroup ! % Definitions to produce \{ and \} commands for indices, ! % and @{ and @} for the aux file. ! \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 ! \catcode`\! = 0 \catcode`\\ = \other ! !gdef!lbracecmd[\{]% ! !gdef!rbracecmd[\}]% ! !gdef!lbraceatcmd[@{]% ! !gdef!rbraceatcmd[@}]% ! !endgroup % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent ! % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \c \let\dotaccent = \. \def\ringaccent#1{{\accent23 #1}} *************** *** 484,490 **** \let\udotaccent = \d % Other special characters: @questiondown @exclamdown ! % Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} --- 506,512 ---- \let\udotaccent = \d % Other special characters: @questiondown @exclamdown ! % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} *************** *** 517,522 **** --- 539,547 ---- % @* forces a line break. \def\*{\hfil\break\hbox{}\ignorespaces} + % @/ allows a line break. + \let\/=\allowbreak + % @. is an end-of-sentence period. \def\.{.\spacefactor=3000 } *************** *** 539,544 **** --- 564,579 ---- % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % + % Another complication is that the group might be very large. This can + % cause the glue on the previous page to be unduly stretched, because it + % does not have much material. In this case, it's better to add an + % explicit \vfill so that the extra space is at the bottom. The + % threshold for doing this is if the group is more than \vfilllimit + % percent of a page (\vfilllimit can be changed inside of @tex). + % + \newbox\groupbox + \def\vfilllimit{0.7} + % \def\group{\begingroup \ifnum\catcode13=\active \else \errhelp = \groupinvalidhelp *************** *** 552,561 **** % above. But it's pretty close. \def\Egroup{% \egroup % End the \vtop. \endgroup % End the \group. }% % ! \vtop\bgroup % We have to put a strut on the last line in case the @group is in % the midst of an example, rather than completely enclosing it. % Otherwise, the interline space between the last line of the group --- 587,608 ---- % above. But it's pretty close. \def\Egroup{% \egroup % End the \vtop. + % \dimen0 is the vertical size of the group's box. + \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox + % \dimen2 is how much space is left on the page (more or less). + \dimen2 = \pageheight \advance\dimen2 by -\pagetotal + % if the group doesn't fit on the current page, and it's a big big + % group, force a page break. + \ifdim \dimen0 > \dimen2 + \ifdim \pagetotal < \vfilllimit\pageheight + \page + \fi + \fi + \copy\groupbox \endgroup % End the \group. }% % ! \setbox\groupbox = \vtop\bgroup % We have to put a strut on the last line in case the @group is in % the midst of an example, rather than completely enclosing it. % Otherwise, the interline space between the last line of the group *************** *** 680,687 **** \spacefactor=3000 } ! ! % @page forces the start of a new page % \def\page{\par\vfill\supereject} --- 727,733 ---- \spacefactor=3000 } ! % @page forces the start of a new page. % \def\page{\par\vfill\supereject} *************** *** 753,782 **** % @include file insert text of that file as input. % Allow normal characters that we make active in the argument (a file name). \def\include{\begingroup ! \catcode`\\=12 ! \catcode`~=12 ! \catcode`^=12 ! \catcode`_=12 ! \catcode`|=12 ! \catcode`<=12 ! \catcode`>=12 ! \catcode`+=12 \parsearg\includezzz} % Restore active chars for included file. \def\includezzz#1{\endgroup\begingroup % Read the included file in a group so nested @include's work. \def\thisfile{#1}% \input\thisfile \endgroup} \def\thisfile{} ! % @center line outputs that line, centered ! ! \def\center{\parsearg\centerzzz} ! \def\centerzzz #1{{\advance\hsize by -\leftskip ! \advance\hsize by -\rightskip ! \centerline{#1}}} % @sp n outputs n lines of vertical space --- 799,834 ---- % @include file insert text of that file as input. % Allow normal characters that we make active in the argument (a file name). \def\include{\begingroup ! \catcode`\\=\other ! \catcode`~=\other ! \catcode`^=\other ! \catcode`_=\other ! \catcode`|=\other ! \catcode`<=\other ! \catcode`>=\other ! \catcode`+=\other \parsearg\includezzz} % Restore active chars for included file. \def\includezzz#1{\endgroup\begingroup % Read the included file in a group so nested @include's work. \def\thisfile{#1}% + \let\value=\expandablevalue \input\thisfile \endgroup} \def\thisfile{} ! % @center line ! % outputs that line, centered. ! % ! \def\center{\parsearg\docenter} ! \def\docenter#1{{% ! \ifhmode \hfil\break \fi ! \advance\hsize by -\leftskip ! \advance\hsize by -\rightskip ! \line{\hfil \ignorespaces#1\unskip \hfil}% ! \ifhmode \break \fi ! }} % @sp n outputs n lines of vertical space *************** *** 796,802 **** % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. ! % We cannot implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} --- 848,855 ---- % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. ! % NCHARS can also be the word `asis' or `none'. ! % We cannot feasibly implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} *************** *** 832,837 **** --- 885,937 ---- \fi } + % @firstparagraphindent WORD + % If WORD is `none', then suppress indentation of the first paragraph + % after a section heading. If WORD is `insert', then do indentat such + % paragraphs. + % + % The paragraph indentation is suppressed or not by calling + % \suppressfirstparagraphindent, which the sectioning commands do. We + % switch the definition of this back and forth according to WORD. By + % default, we suppress indentation. + % + \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} + \newdimen\currentparindent + % + \def\insertword{insert} + % + \def\firstparagraphindent{\parsearg\dofirstparagraphindent} + \def\dofirstparagraphindent#1{% + \def\temp{#1}% + \ifx\temp\noneword + \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent + \else\ifx\temp\insertword + \let\suppressfirstparagraphindent = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @firstparagraphindent option `\temp'}% + \fi\fi + } + + % Here is how we actually suppress indentation. Redefine \everypar to + % \kern backwards by \parindent, and then reset itself to empty. + % + % We also make \indent itself not actually do anything until the next + % paragraph. + % + \gdef\dosuppressfirstparagraphindent{% + \gdef\indent{% + \global\let\indent=\ptexindent + \global\everypar = {}% + }% + \global\everypar = {% + \kern-\parindent + \global\let\indent=\ptexindent + \global\everypar = {}% + }% + }% + + % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} *************** *** 841,851 **** % to set catcodes according to plain TeX first, to allow for subscripts, % superscripts, special math chars, etc. % - % @math does not do math typesetting in section titles, index - % entries, and other such contexts where the catcodes are set before - % @math gets a chance to work. This could perhaps be fixed, but for now - % at least we can have real math in the main text, where it's needed most. - % \let\implicitmath = $%$ font-lock fix % % One complication: _ usually means subscripts, but it could also mean --- 941,946 ---- *************** *** 853,861 **** % _ within @math be active (mathcode "8000), and distinguish by seeing % if the current family is \slfam, which is what @var uses. % ! {\catcode95 = \active % 95 = _ \gdef\mathunderscore{% ! \catcode95=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% }} % --- 948,956 ---- % _ within @math be active (mathcode "8000), and distinguish by seeing % if the current family is \slfam, which is what @var uses. % ! {\catcode\underChar = \active \gdef\mathunderscore{% ! \catcode\underChar=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% }} % *************** *** 871,879 **** --- 966,992 ---- \tex \mathcode`\_="8000 \mathunderscore \let\\ = \mathbackslash + \mathactive \implicitmath\finishmath} \def\finishmath#1{#1\implicitmath\Etex} + % Some active characters (such as <) are spaced differently in math. + % We have to reset their definitions in case the @math was an + % argument to a command which set the catcodes (such as @item or @section). + % + { + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + } + } + % @bullet and @minus need the same treatment as @math, just above. \def\bullet{\implicitmath\ptexbullet\implicitmath} \def\minus{\implicitmath-\implicitmath} *************** *** 965,971 **** \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi \ifnum\pdftexversion<13 ! #1.pdf% \else {#1.pdf}% \fi --- 1078,1084 ---- \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi \ifnum\pdftexversion<13 ! #1.pdf% \else {#1.pdf}% \fi *************** *** 987,1026 **** \openin 1 \jobname.toc \ifeof 1\else\begingroup \closein 1 - \indexnofonts - \def\tt{} - \let\_ = \normalunderscore % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % \def\chapentry ##1##2##3{} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{} \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}} \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}} \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} ! \def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}} \input \jobname.toc \def\chapentry ##1##2##3{% \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\secentry ##1##2##3##4{% \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\unnumbsecentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}{##1}} \def\subsecentry ##1##2##3##4##5{% \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\unnumbsubsecentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}{##1}} \def\subsubsecentry ##1##2##3##4##5##6{% \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} ! \def\unnumbsubsubsecentry ##1##2##3##4##5{% ! \pdfoutline goto name{\pdfmkpgn{##5}}{##1}} \input \jobname.toc \endgroup\fi }} --- 1100,1138 ---- \openin 1 \jobname.toc \ifeof 1\else\begingroup \closein 1 % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % \def\chapentry ##1##2##3{} \def\secentry ##1##2##3##4{\advancenumber{chap##2}} \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} ! \let\appendixentry = \chapentry ! \let\unnumbchapentry = \chapentry ! \let\unnumbsecentry = \secentry ! \let\unnumbsubsecentry = \subsecentry ! \let\unnumbsubsubsecentry = \subsubsecentry \input \jobname.toc \def\chapentry ##1##2##3{% \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} \def\secentry ##1##2##3##4{% \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} \def\subsecentry ##1##2##3##4##5{% \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} \def\subsubsecentry ##1##2##3##4##5##6{% \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} ! \let\appendixentry = \chapentry ! \let\unnumbchapentry = \chapentry ! \let\unnumbsecentry = \secentry ! \let\unnumbsubsecentry = \subsecentry ! \let\unnumbsubsubsecentry = \subsubsecentry ! % ! % Make special characters normal for writing to the pdf file. ! % ! \indexnofonts ! \let\tt=\relax ! \turnoffactive \input \jobname.toc \endgroup\fi }} *************** *** 1170,1187 **** \newcount\mainmagstep \ifx\bigger\relax % not really supported. ! \let\mainmagstep=\magstep1 \setfont\textrm\rmshape{12}{1000} \setfont\texttt\ttshape{12}{1000} \else ! % \mainmagstep=\magstephalf ! \mainmagstep=\magstep1 \setfont\textrm\rmshape{10}{\mainmagstep} \setfont\texttt\ttshape{10}{\mainmagstep} \fi ! % Instead of cmb10, you many want to use cmbx10. % cmbx10 is a prettier font on its own, but cmb10 ! % looks better when embedded in a line with cmr10. \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} \setfont\textsl\slshape{10}{\mainmagstep} --- 1282,1299 ---- \newcount\mainmagstep \ifx\bigger\relax % not really supported. ! \mainmagstep=\magstep1 \setfont\textrm\rmshape{12}{1000} \setfont\texttt\ttshape{12}{1000} \else ! \mainmagstep=\magstephalf \setfont\textrm\rmshape{10}{\mainmagstep} \setfont\texttt\ttshape{10}{\mainmagstep} \fi ! % Instead of cmb10, you may want to use cmbx10. % cmbx10 is a prettier font on its own, but cmb10 ! % looks better when embedded in a line with cmr10 ! % (in Bob's opinion). \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} \setfont\textsl\slshape{10}{\mainmagstep} *************** *** 1232,1237 **** --- 1344,1350 ---- \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} + \def\authortt{\sectt} % Chapter (and unnumbered) fonts (17.28pt). \setfont\chaprm\rmbshape{12}{\magstep2} *************** *** 1329,1335 **** \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \resetmathfonts \setleading{9.5pt}} ! \let\smallexamplefonts = \smallerfonts % Set up the default fonts, so we can use them for creating boxes. % --- 1442,1466 ---- \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \resetmathfonts \setleading{9.5pt}} ! ! % Set the fonts to use with the @small... environments. ! \let\smallexamplefonts = \smallfonts ! ! % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample ! % can fit this many characters: ! % 8.5x11=86 smallbook=72 a4=90 a5=69 ! % If we use \smallerfonts (8pt), then we can fit this many characters: ! % 8.5x11=90+ smallbook=80 a4=90+ a5=77 ! % For me, subjectively, the few extra characters that fit aren't worth ! % the additional smallness of 8pt. So I'm making the default 9pt. ! % ! % By the way, for comparison, here's what fits with @example (10pt): ! % 8.5x11=71 smallbook=60 a4=75 a5=58 ! % ! % I wish we used A4 paper on this side of the Atlantic. ! % ! % --karl, 24jan03. ! % Set up the default fonts, so we can use them for creating boxes. % *************** *** 1346,1360 **** \setfont\shortcontrm\rmshape{12}{1000} \setfont\shortcontbf\bxshape{12}{1000} \setfont\shortcontsl\slshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. ! \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} ! \def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} ! \def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} \let\i=\smartitalic \let\var=\smartslanted --- 1477,1493 ---- \setfont\shortcontrm\rmshape{12}{1000} \setfont\shortcontbf\bxshape{12}{1000} \setfont\shortcontsl\slshape{12}{1000} + \setfont\shortconttt\ttshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. ! \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else ! \ptexslash\fi\fi\fi} ! \def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} ! \def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} \let\i=\smartitalic \let\var=\smartslanted *************** *** 1372,1377 **** --- 1505,1521 ---- \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } + % Set sfcode to normal for the chars that usually have another value. + % Can't use plain's \frenchspacing because it uses the `\x notation, and + % sometimes \x has an active definition that messes things up. + % + \catcode`@=11 + \def\frenchspacing{% + \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m + \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + } + \catcode`@=\other + \def\t#1{% {\tt \rawbackslash \frenchspacing #1}% \null *************** *** 1471,1485 **** \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\arg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} ! % Default is kbdinputdistinct. (Too much of a hassle to call the macro, ! % the catcodes are wrong for parsearg to work.) ! \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% --- 1615,1631 ---- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\arg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% + \else + \errhelp = \EMsimple + \errmessage{Unknown @kbdinputstyle option `\arg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} ! % Default is `distinct.' ! \kbdinputstyle distinct \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% *************** *** 1567,1572 **** --- 1713,1728 ---- % @pounds{} is a sterling sign. \def\pounds{{\it\$}} + % @registeredsymbol - R in a circle. For now, only works in text size; + % we'd have to redo the font mechanism to change the \scriptstyle and + % \scriptscriptstyle font sizes to make it look right in headings. + % Adapted from the plain.tex definition of \copyright. + % + \def\registeredsymbol{% + $^{{\ooalign{\hfil\raise.07ex\hbox{$\scriptstyle\rm R$}\hfil\crcr\Orb}}% + }$% + } + \message{page headings,} *************** *** 1593,1599 **** \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% % ! \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% % % Leave some space at the very top of the page. \vglue\titlepagetopglue --- 1749,1756 ---- \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% % ! \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines ! \let\tt=\authortt}% % % Leave some space at the very top of the page. \vglue\titlepagetopglue *************** *** 1874,1883 **** % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % ! % Stop a page break at the \parskip glue coming up. Unfortunately % we can't prevent a possible page break at the following ! % \baselineskip glue. ! \nobreak \endgroup \itemxneedsnegativevskipfalse \else --- 2031,2048 ---- % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % ! % Stop a page break at the \parskip glue coming up. (Unfortunately % we can't prevent a possible page break at the following ! % \baselineskip glue.) However, if what follows is an environment ! % such as @example, there will be no \parskip glue; then ! % the negative vskip we just would cause the example and the item to ! % crash together. So we use this bizarre value of 10001 as a signal ! % to \aboveenvbreak to insert \parskip glue after all. ! % (Possibly there are other commands that could be followed by ! % @example which need the same treatment, but not section titles; or ! % maybe section titles are the only special case and they should be ! % penalty 10001...) ! \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else *************** *** 1970,1992 **** \itemizey {#1}{\Eitemize} } ! \def\itemizey #1#2{% ! \aboveenvbreak % ! \itemmax=\itemindent % ! \advance \itemmax by -\itemmargin % ! \advance \leftskip by \itemindent % ! \exdentamount=\itemindent ! \parindent = 0pt % ! \parskip = \smallskipamount % ! \ifdim \parskip=0pt \parskip=2pt \fi% ! \def#2{\endgraf\afterenvbreak\endgroup}% ! \def\itemcontents{#1}% ! \let\item=\itemizeitem} ! ! % Set sfcode to normal for the chars that usually have another value. ! % These are `.?!:;,' ! \def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 ! \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. --- 2135,2155 ---- \itemizey {#1}{\Eitemize} } ! \def\itemizey#1#2{% ! \aboveenvbreak ! \itemmax=\itemindent ! \advance\itemmax by -\itemmargin ! \advance\leftskip by \itemindent ! \exdentamount=\itemindent ! \parindent=0pt ! \parskip=\smallskipamount ! \ifdim\parskip=0pt \parskip=2pt \fi ! \def#2{\endgraf\afterenvbreak\endgroup}% ! \def\itemcontents{#1}% ! % @itemize with no arg is equivalent to @itemize @bullet. ! \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi ! \let\item=\itemizeitem ! } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. *************** *** 2209,2216 **** \let\go\pickupwholefraction \else \global\advance\colcount by 1 ! \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator; ! % typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi --- 2372,2379 ---- \let\go\pickupwholefraction \else \global\advance\colcount by 1 ! \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a ! % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi *************** *** 2225,2242 **** \go } - % This used to have \hskip1sp. But then the space in a template line is - % not enough. That is bad. So let's go back to just & until we - % encounter the problem it was intended to solve again. - % --karl, nathan@acm.org, 20apr99. - \def\tab{&} - % @multitable ... @end multitable definitions: % \def\multitable{\parsearg\dotable} \def\dotable#1{\bgroup \vskip\parskip ! \let\item\crcr \tolerance=9500 \hbadness=9500 \setmultitablespacing --- 2388,2405 ---- \go } % @multitable ... @end multitable definitions: % \def\multitable{\parsearg\dotable} \def\dotable#1{\bgroup \vskip\parskip ! \let\item=\crcrwithfootnotes ! % A \tab used to include \hskip1sp. But then the space in a template ! % line is not enough. That is bad. So let's go back to just & until ! % we encounter the problem it was intended to solve again. --karl, ! % nathan@acm.org, 20apr99. ! \let\tab=&% ! \let\startfootins=\startsavedfootnote \tolerance=9500 \hbadness=9500 \setmultitablespacing *************** *** 2244,2250 **** \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 ! \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% % % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable --- 2407,2417 ---- \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 ! \def\Emultitable{% ! \global\setpercentfalse ! \crcrwithfootnotes\crcr ! \egroup\egroup ! }% % % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable *************** *** 2333,2338 **** --- 2500,2524 ---- %% than skip between lines in the table. \fi} + % In case a @footnote appears inside an alignment, save the footnote + % text to a box and make the \insert when a row of the table is + % finished. Otherwise, the insertion is lost, it never migrates to the + % main vertical list. --kasal, 22jan03. + % + \newbox\savedfootnotes + % + % \dotable \let's \startfootins to this, so that \dofootnote will call + % it instead of starting the insertion right away. + \def\startsavedfootnote{% + \global\setbox\savedfootnotes = \vbox\bgroup + \unvbox\savedfootnotes + } + \def\crcrwithfootnotes{% + \crcr + \ifvoid\savedfootnotes \else + \noalign{\insert\footins{\box\savedfootnotes}}% + \fi + } \message{conditionals,} % Prevent errors for section commands. *************** *** 2368,2432 **** % and so want to turn off most commands, in case they are used % incorrectly. % \def\ignoremorecommands{% \let\defcodeindex = \relax ! \let\defcv = \relax ! \let\deffn = \relax ! \let\deffnx = \relax \let\defindex = \relax ! \let\defivar = \relax ! \let\defmac = \relax ! \let\defmethod = \relax ! \let\defop = \relax ! \let\defopt = \relax ! \let\defspec = \relax ! \let\deftp = \relax ! \let\deftypefn = \relax ! \let\deftypefun = \relax ! \let\deftypeivar = \relax ! \let\deftypeop = \relax ! \let\deftypevar = \relax ! \let\deftypevr = \relax ! \let\defun = \relax ! \let\defvar = \relax ! \let\defvr = \relax ! \let\ref = \relax ! \let\xref = \relax ! \let\printindex = \relax ! \let\pxref = \relax ! \let\settitle = \relax ! \let\setchapternewpage = \relax ! \let\setchapterstyle = \relax ! \let\everyheading = \relax \let\evenheading = \relax - \let\oddheading = \relax \let\everyfooting = \relax ! \let\evenfooting = \relax ! \let\oddfooting = \relax \let\headings = \relax \let\include = \relax \let\lowersections = \relax ! \let\down = \relax \let\raisesections = \relax ! \let\up = \relax \let\set = \relax ! \let\clear = \relax ! \let\item = \relax } ! % Ignore @ignore, @ifhtml, @ifinfo, @ifplaintext, @ifnottex, @html, @menu, ! % @direntry, and @documentdescription. % ! \def\ignore{\doignore{ignore}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifplaintext{\doignore{ifplaintext}} ! \def\ifnottex{\doignore{ifnottex}} ! \def\html{\doignore{html}} \def\menu{\doignore{menu}} ! \def\direntry{\doignore{direntry}} ! \def\documentdescription{\doignore{documentdescription}} ! \def\documentdescriptionword{documentdescription} % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. --- 2554,2670 ---- % and so want to turn off most commands, in case they are used % incorrectly. % + % We use \empty instead of \relax for the @def... commands, so that \end + % doesn't throw an error. For instance: + % @ignore + % @deffn ... + % @end deffn + % @end ignore + % + % The @end deffn is going to get expanded, because we're trying to allow + % nested conditionals. But we don't want to expand the actual @deffn, + % since it might be syntactically correct and intended to be ignored. + % Since \end checks for \relax, using \empty does not cause an error. + % \def\ignoremorecommands{% \let\defcodeindex = \relax ! \let\defcv = \empty ! \let\defcvx = \empty ! \let\Edefcv = \empty ! \let\deffn = \empty ! \let\deffnx = \empty ! \let\Edeffn = \empty \let\defindex = \relax ! \let\defivar = \empty ! \let\defivarx = \empty ! \let\Edefivar = \empty ! \let\defmac = \empty ! \let\defmacx = \empty ! \let\Edefmac = \empty ! \let\defmethod = \empty ! \let\defmethodx = \empty ! \let\Edefmethod = \empty ! \let\defop = \empty ! \let\defopx = \empty ! \let\Edefop = \empty ! \let\defopt = \empty ! \let\defoptx = \empty ! \let\Edefopt = \empty ! \let\defspec = \empty ! \let\defspecx = \empty ! \let\Edefspec = \empty ! \let\deftp = \empty ! \let\deftpx = \empty ! \let\Edeftp = \empty ! \let\deftypefn = \empty ! \let\deftypefnx = \empty ! \let\Edeftypefn = \empty ! \let\deftypefun = \empty ! \let\deftypefunx = \empty ! \let\Edeftypefun = \empty ! \let\deftypeivar = \empty ! \let\deftypeivarx = \empty ! \let\Edeftypeivar = \empty ! \let\deftypemethod = \empty ! \let\deftypemethodx = \empty ! \let\Edeftypemethod = \empty ! \let\deftypeop = \empty ! \let\deftypeopx = \empty ! \let\Edeftypeop = \empty ! \let\deftypevar = \empty ! \let\deftypevarx = \empty ! \let\Edeftypevar = \empty ! \let\deftypevr = \empty ! \let\deftypevrx = \empty ! \let\Edeftypevr = \empty ! \let\defun = \empty ! \let\defunx = \empty ! \let\Edefun = \empty ! \let\defvar = \empty ! \let\defvarx = \empty ! \let\Edefvar = \empty ! \let\defvr = \empty ! \let\defvrx = \empty ! \let\Edefvr = \empty ! \let\clear = \relax ! \let\down = \relax ! \let\evenfooting = \relax \let\evenheading = \relax \let\everyfooting = \relax ! \let\everyheading = \relax \let\headings = \relax \let\include = \relax + \let\item = \relax \let\lowersections = \relax ! \let\oddfooting = \relax ! \let\oddheading = \relax ! \let\printindex = \relax ! \let\pxref = \relax \let\raisesections = \relax ! \let\ref = \relax \let\set = \relax ! \let\setchapternewpage = \relax ! \let\setchapterstyle = \relax ! \let\settitle = \relax ! \let\up = \relax ! \let\verbatiminclude = \relax ! \let\xref = \relax } ! % Ignore @ignore, @ifhtml, @ifinfo, and the like. % ! \def\direntry{\doignore{direntry}} ! \def\documentdescriptionword{documentdescription} ! \def\documentdescription{\doignore{documentdescription}} ! \def\html{\doignore{html}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} + \def\ifnottex{\nestedignore{ifnottex}} \def\ifplaintext{\doignore{ifplaintext}} ! \def\ifxml{\doignore{ifxml}} ! \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} ! \def\xml{\doignore{xml}} % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. *************** *** 2444,2450 **** \long\def\doignoretext##1@end #1{\enddoignore}% % % Make sure that spaces turn into tokens that match what \doignoretext wants. ! \catcode32 = 10 % % Ignore braces, too, so mismatched braces don't cause trouble. \catcode`\{ = 9 --- 2682,2688 ---- \long\def\doignoretext##1@end #1{\enddoignore}% % % Make sure that spaces turn into tokens that match what \doignoretext wants. ! \catcode\spaceChar = 10 % % Ignore braces, too, so mismatched braces don't cause trouble. \catcode`\{ = 9 *************** *** 2486,2492 **** \immediate\write16{If you are running another version of TeX, relax.} \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} \immediate\write16{ Then upgrade your TeX installation if you can.} ! \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)} \immediate\write16{If you are stuck with version 3.0, run the} \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} \immediate\write16{ to use a workaround.} --- 2724,2730 ---- \immediate\write16{If you are running another version of TeX, relax.} \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} \immediate\write16{ Then upgrade your TeX installation if you can.} ! \immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)} \immediate\write16{If you are stuck with version 3.0, run the} \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} \immediate\write16{ to use a workaround.} *************** *** 2508,2515 **** % We must actually expand the ignored text to look for the @end % command, so that nested ignore constructs work. Thus, we put the % text into a \vbox and then do nothing with the result. To minimize ! % the change of memory overflow, we follow the approach outlined on ! % page 401 of the TeXbook: make the current font be a dummy font. % \setbox0 = \vbox\bgroup % Don't complain about control sequences we have declared \outer. --- 2746,2753 ---- % We must actually expand the ignored text to look for the @end % command, so that nested ignore constructs work. Thus, we put the % text into a \vbox and then do nothing with the result. To minimize ! % the chance of memory overflow, we follow the approach outlined on ! % page 401 of the TeXbook. % \setbox0 = \vbox\bgroup % Don't complain about control sequences we have declared \outer. *************** *** 2530,2537 **** % % Set the current font to be \nullfont, a TeX primitive, and define % all the font commands to also use \nullfont. We don't use ! % dummy.tfm, as suggested in the TeXbook, because not all sites ! % might have that installed. Therefore, math mode will still % produce output, but that should be an extremely small amount of % stuff compared to the main input. % --- 2768,2775 ---- % % Set the current font to be \nullfont, a TeX primitive, and define % all the font commands to also use \nullfont. We don't use ! % dummy.tfm, as suggested in the TeXbook, because some sites ! % might not have that installed. Therefore, math mode will still % produce output, but that should be an extremely small amount of % stuff compared to the main input. % *************** *** 2560,2566 **** % Do minimal line-breaking. \pretolerance = 10000 % ! % Do not execute instructions in @tex \def\tex{\doignore{tex}}% % Do not execute macro definitions. % `c' is a comment character, so the word `macro' will get cut off. --- 2798,2804 ---- % Do minimal line-breaking. \pretolerance = 10000 % ! % Do not execute instructions in @tex. \def\tex{\doignore{tex}}% % Do not execute macro definitions. % `c' is a comment character, so the word `macro' will get cut off. *************** *** 2605,2611 **** % we're called from @code, as @code{@value{foo-bar_}}. So \let any % such active characters to their normal equivalents. \gdef\value{\begingroup ! \catcode`\-=12 \catcode`\_=12 \indexbreaks \let_\normalunderscore \valuexxx} } --- 2843,2849 ---- % we're called from @code, as @code{@value{foo-bar_}}. So \let any % such active characters to their normal equivalents. \gdef\value{\begingroup ! \catcode`\-=\other \catcode`\_=\other \indexbreaks \let_\normalunderscore \valuexxx} } *************** *** 2614,2628 **** % We have this subroutine so that we can handle at least some @value's % properly in indexes (we \let\value to this in \indexdummies). Ones % whose names contain - or _ still won't work, but we can't do anything ! % about that. The command has to be fully expandable, since the result ! % winds up in the index file. This means that if the variable's value ! % contains other Texinfo commands, it's almost certain it will fail ! % (although perhaps we could fix that with sufficient work to do a ! % one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \else \csname SET#1\endcsname \fi --- 2852,2868 ---- % We have this subroutine so that we can handle at least some @value's % properly in indexes (we \let\value to this in \indexdummies). Ones % whose names contain - or _ still won't work, but we can't do anything ! % about that. The command has to be fully expandable (if the variable ! % is set), since the result winds up in the index file. This means that ! % if the variable's value contains other Texinfo commands, it's almost ! % certain it will fail (although perhaps we could fix that with ! % sufficient work to do a one-level expansion on the result, instead of ! % complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% + \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi *************** *** 2631,2643 **** % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % ! \def\ifset{\parsearg\ifsetxxx} ! \def\ifsetxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \expandafter\ifsetfail \else ! \expandafter\ifsetsucceed \fi } \def\ifsetsucceed{\conditionalsucceed{ifset}} \def\ifsetfail{\nestedignore{ifset}} --- 2871,2884 ---- % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % ! \def\ifset{\parsearg\doifset} ! \def\doifset#1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \let\next=\ifsetfail \else ! \let\next=\ifsetsucceed \fi + \next } \def\ifsetsucceed{\conditionalsucceed{ifset}} \def\ifsetfail{\nestedignore{ifset}} *************** *** 2646,2658 **** % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % ! \def\ifclear{\parsearg\ifclearxxx} ! \def\ifclearxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \expandafter\ifclearsucceed \else ! \expandafter\ifclearfail \fi } \def\ifclearsucceed{\conditionalsucceed{ifclear}} \def\ifclearfail{\nestedignore{ifclear}} --- 2887,2900 ---- % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % ! \def\ifclear{\parsearg\doifclear} ! \def\doifclear#1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \let\next=\ifclearsucceed \else ! \let\next=\ifclearfail \fi + \next } \def\ifclearsucceed{\conditionalsucceed{ifclear}} \def\ifclearfail{\nestedignore{ifclear}} *************** *** 2671,2698 **** \defineunmatchedend{ifnotinfo} \defineunmatchedend{ifnotplaintext} ! % We can't just want to start a group at @iftex (etc.) and end it at ! % @end iftex, since then @set commands inside the conditional have no ! % effect (they'd get reverted at the end of the group). So we must ! % define \Eiftex to redefine itself to be its previous value. (We can't ! % just define it to fail again with an ``unmatched end'' error, since ! % the @ifset might be nested.) ! % ! \def\conditionalsucceed#1{% ! \edef\temp{% ! % Remember the current value of \E#1. ! \let\nece{prevE#1} = \nece{E#1}% ! % ! % At the `@end #1', redefine \E#1 to be its previous value. ! \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% ! }% ! \temp ! } ! ! % We need to expand lots of \csname's, but we don't want to expand the ! % control sequences after we've constructed them. % ! \def\nece#1{\expandafter\noexpand\csname#1\endcsname} % @defininfoenclose. \let\definfoenclose=\comment --- 2913,2925 ---- \defineunmatchedend{ifnotinfo} \defineunmatchedend{ifnotplaintext} ! % True conditional. Since \set globally defines its variables, we can ! % just start and end a group (to keep the @end definition undefined at ! % the outer level). % ! \def\conditionalsucceed#1{\begingroup ! \expandafter\def\csname E#1\endcsname{\endgroup}% ! } % @defininfoenclose. \let\definfoenclose=\comment *************** *** 2785,2888 **** \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} ! % Take care of texinfo commands likely to appear in an index entry. ! % (Must be a way to avoid doing expansion at all, and thus not have to ! % laboriously list every single command here.) % \def\indexdummies{% ! \def\ { }% ! \def\@{@}% change to @@ when we switch to @ as escape char in aux files. ! % Need these in case \tex is in effect and \{ is a \delimiter again. ! % But can't use \lbracecmd and \rbracecmd because texindex assumes ! % braces and backslashes are used only as delimiters. ! \let\{ = \mylbrace ! \let\} = \myrbrace ! \def\_{{\realbackslash _}}% ! \normalturnoffactive ! % ! % Take care of the plain tex accent commands. ! \def\,##1{\realbackslash ,{##1}}% ! \def\"{\realbackslash "}% ! \def\`{\realbackslash `}% ! \def\'{\realbackslash '}% ! \def\^{\realbackslash ^}% ! \def\~{\realbackslash ~}% ! \def\={\realbackslash =}% ! \def\b{\realbackslash b}% ! \def\c{\realbackslash c}% ! \def\d{\realbackslash d}% ! \def\u{\realbackslash u}% ! \def\v{\realbackslash v}% ! \def\H{\realbackslash H}% ! \def\dotless##1{\realbackslash dotless {##1}}% ! % Take care of the plain tex special European modified letters. ! \def\AA{\realbackslash AA}% ! \def\AE{\realbackslash AE}% ! \def\L{\realbackslash L}% ! \def\OE{\realbackslash OE}% ! \def\O{\realbackslash O}% ! \def\aa{\realbackslash aa}% ! \def\ae{\realbackslash ae}% ! \def\l{\realbackslash l}% ! \def\oe{\realbackslash oe}% ! \def\o{\realbackslash o}% ! \def\ss{\realbackslash ss}% ! % ! % Although these internals commands shouldn't show up, sometimes they do. ! \def\bf{\realbackslash bf }% ! \def\gtr{\realbackslash gtr}% ! \def\hat{\realbackslash hat}% ! \def\less{\realbackslash less}% ! %\def\rm{\realbackslash rm }% ! \def\sf{\realbackslash sf}% ! \def\sl{\realbackslash sl }% ! \def\tclose##1{\realbackslash tclose {##1}}% ! \def\tt{\realbackslash tt}% ! % ! \def\b##1{\realbackslash b {##1}}% ! \def\i##1{\realbackslash i {##1}}% ! \def\sc##1{\realbackslash sc {##1}}% ! \def\t##1{\realbackslash t {##1}}% ! \def\r##1{\realbackslash r {##1}}% ! % ! \def\TeX{\realbackslash TeX}% ! \def\acronym##1{\realbackslash acronym {##1}}% ! \def\cite##1{\realbackslash cite {##1}}% ! \def\code##1{\realbackslash code {##1}}% ! \def\command##1{\realbackslash command {##1}}% ! \def\dfn##1{\realbackslash dfn {##1}}% ! \def\dots{\realbackslash dots }% ! \def\emph##1{\realbackslash emph {##1}}% ! \def\env##1{\realbackslash env {##1}}% ! \def\file##1{\realbackslash file {##1}}% ! \def\kbd##1{\realbackslash kbd {##1}}% ! \def\key##1{\realbackslash key {##1}}% ! \def\math##1{\realbackslash math {##1}}% ! \def\option##1{\realbackslash option {##1}}% ! \def\samp##1{\realbackslash samp {##1}}% ! \def\strong##1{\realbackslash strong {##1}}% ! \def\uref##1{\realbackslash uref {##1}}% ! \def\url##1{\realbackslash url {##1}}% ! \def\var##1{\realbackslash var {##1}}% ! \def\w{\realbackslash w }% ! % ! % These math commands don't seem likely to be used in index entries. ! \def\copyright{\realbackslash copyright}% ! \def\equiv{\realbackslash equiv}% ! \def\error{\realbackslash error}% ! \def\expansion{\realbackslash expansion}% ! \def\point{\realbackslash point}% ! \def\print{\realbackslash print}% ! \def\result{\realbackslash result}% ! % ! % Handle some cases of @value -- where the variable name does not ! % contain - or _, and the value does not contain any ! % (non-fully-expandable) commands. ! \let\value = \expandablevalue ! % ! \unsepspaces ! % Turn off macro expansion ! \turnoffmacros } % If an index command is used in an @example environment, any spaces --- 3012,3177 ---- \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} ! % Take care of Texinfo commands that can appear in an index entry. ! % Since there are some commands we want to expand, and others we don't, ! % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% ! \def\@{@}% change to @@ when we switch to @ as escape char in index files. ! \def\ {\realbackslash\space }% ! % Need these in case \tex is in effect and \{ is a \delimiter again. ! % But can't use \lbracecmd and \rbracecmd because texindex assumes ! % braces and backslashes are used only as delimiters. ! \let\{ = \mylbrace ! \let\} = \myrbrace ! % ! % \definedummyword defines \#1 as \realbackslash #1\space, thus ! % effectively preventing its expansion. This is used only for control ! % words, not control letters, because the \space would be incorrect ! % for control characters, but is needed to separate the control word ! % from whatever follows. ! % ! % For control letters, we have \definedummyletter, which omits the ! % space. ! % ! % These can be used both for control words that take an argument and ! % those that do not. If it is followed by {arg} in the input, then ! % that will dutifully get written to the index (or wherever). ! % ! \def\definedummyword##1{% ! \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% ! }% ! \def\definedummyletter##1{% ! \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% ! }% ! % ! % Do the redefinitions. ! \commondummies ! } ! ! % For the aux file, @ is the escape character. So we want to redefine ! % everything using @ instead of \realbackslash. When everything uses ! % @, this will be simpler. ! % ! \def\atdummies{% ! \def\@{@@}% ! \def\ {@ }% ! \let\{ = \lbraceatcmd ! \let\} = \rbraceatcmd ! % ! % (See comments in \indexdummies.) ! \def\definedummyword##1{% ! \expandafter\def\csname ##1\endcsname{@##1\space}% ! }% ! \def\definedummyletter##1{% ! \expandafter\def\csname ##1\endcsname{@##1}% ! }% ! % ! % Do the redefinitions. ! \commondummies ! } ! ! % Called from \indexdummies and \atdummies. \definedummyword and ! % \definedummyletter must be defined first. ! % ! \def\commondummies{% ! % ! \normalturnoffactive ! % ! % Control letters and accents. ! \definedummyletter{_}% ! \definedummyletter{,}% ! \definedummyletter{"}% ! \definedummyletter{`}% ! \definedummyletter{'}% ! \definedummyletter{^}% ! \definedummyletter{~}% ! \definedummyletter{=}% ! \definedummyword{u}% ! \definedummyword{v}% ! \definedummyword{H}% ! \definedummyword{dotaccent}% ! \definedummyword{ringaccent}% ! \definedummyword{tieaccent}% ! \definedummyword{ubaraccent}% ! \definedummyword{udotaccent}% ! \definedummyword{dotless}% ! % ! % Other non-English letters. ! \definedummyword{AA}% ! \definedummyword{AE}% ! \definedummyword{L}% ! \definedummyword{OE}% ! \definedummyword{O}% ! \definedummyword{aa}% ! \definedummyword{ae}% ! \definedummyword{l}% ! \definedummyword{oe}% ! \definedummyword{o}% ! \definedummyword{ss}% ! % ! % Although these internal commands shouldn't show up, sometimes they do. ! \definedummyword{bf}% ! \definedummyword{gtr}% ! \definedummyword{hat}% ! \definedummyword{less}% ! \definedummyword{sf}% ! \definedummyword{sl}% ! \definedummyword{tclose}% ! \definedummyword{tt}% ! % ! % Texinfo font commands. ! \definedummyword{b}% ! \definedummyword{i}% ! \definedummyword{r}% ! \definedummyword{sc}% ! \definedummyword{t}% ! % ! \definedummyword{TeX}% ! \definedummyword{acronym}% ! \definedummyword{cite}% ! \definedummyword{code}% ! \definedummyword{command}% ! \definedummyword{dfn}% ! \definedummyword{dots}% ! \definedummyword{emph}% ! \definedummyword{env}% ! \definedummyword{file}% ! \definedummyword{kbd}% ! \definedummyword{key}% ! \definedummyword{math}% ! \definedummyword{option}% ! \definedummyword{samp}% ! \definedummyword{strong}% ! \definedummyword{uref}% ! \definedummyword{url}% ! \definedummyword{var}% ! \definedummyword{w}% ! % ! % Assorted special characters. ! \definedummyword{bullet}% ! \definedummyword{copyright}% ! \definedummyword{dots}% ! \definedummyword{enddots}% ! \definedummyword{equiv}% ! \definedummyword{error}% ! \definedummyword{expansion}% ! \definedummyword{minus}% ! \definedummyword{pounds}% ! \definedummyword{point}% ! \definedummyword{print}% ! \definedummyword{result}% ! % ! % Handle some cases of @value -- where the variable name does not ! % contain - or _, and the value does not contain any ! % (non-fully-expandable) commands. ! \let\value = \expandablevalue ! % ! % Normal spaces, not active ones. ! \unsepspaces ! % ! % No macro expansion. ! \turnoffmacros } % If an index command is used in an @example environment, any spaces *************** *** 2891,2973 **** {\obeyspaces \gdef\unsepspaces{\obeyspaces\let =\space}} ! % \indexnofonts no-ops all font-change commands. ! % This is used when outputting the strings to sort the index by. ! \def\indexdummyfont#1{#1} \def\indexdummytex{TeX} \def\indexdummydots{...} ! \def\indexnofonts{% ! \def\@{@}% ! % how to handle braces? ! \def\_{\normalunderscore}% ! % ! \let\,=\indexdummyfont ! \let\"=\indexdummyfont ! \let\`=\indexdummyfont ! \let\'=\indexdummyfont ! \let\^=\indexdummyfont ! \let\~=\indexdummyfont ! \let\==\indexdummyfont ! \let\b=\indexdummyfont ! \let\c=\indexdummyfont ! \let\d=\indexdummyfont ! \let\u=\indexdummyfont ! \let\v=\indexdummyfont ! \let\H=\indexdummyfont ! \let\dotless=\indexdummyfont ! % Take care of the plain tex special European modified letters. ! \def\AA{AA}% ! \def\AE{AE}% ! \def\L{L}% ! \def\OE{OE}% ! \def\O{O}% ! \def\aa{aa}% ! \def\ae{ae}% ! \def\l{l}% ! \def\oe{oe}% ! \def\o{o}% ! \def\ss{ss}% ! % ! % Don't no-op \tt, since it isn't a user-level command ! % and is used in the definitions of the active chars like <, >, |, etc. ! % Likewise with the other plain tex font commands. ! %\let\tt=\indexdummyfont ! % ! \let\b=\indexdummyfont ! \let\i=\indexdummyfont ! \let\r=\indexdummyfont ! \let\sc=\indexdummyfont ! \let\t=\indexdummyfont ! % ! \let\TeX=\indexdummytex ! \let\acronym=\indexdummyfont ! \let\cite=\indexdummyfont ! \let\code=\indexdummyfont ! \let\command=\indexdummyfont ! \let\dfn=\indexdummyfont ! \let\dots=\indexdummydots ! \let\emph=\indexdummyfont ! \let\env=\indexdummyfont ! \let\file=\indexdummyfont ! \let\kbd=\indexdummyfont ! \let\key=\indexdummyfont ! \let\math=\indexdummyfont ! \let\option=\indexdummyfont ! \let\samp=\indexdummyfont ! \let\strong=\indexdummyfont ! \let\uref=\indexdummyfont ! \let\url=\indexdummyfont ! \let\var=\indexdummyfont ! \let\w=\indexdummyfont ! } ! ! % To define \realbackslash, we must make \ not be an escape. ! % We must first make another character (@) an escape ! % so we do not become unable to do a definition. ! ! {\catcode`\@=0 \catcode`\\=\other ! @gdef@realbackslash{\}} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? --- 3180,3265 ---- {\obeyspaces \gdef\unsepspaces{\obeyspaces\let =\space}} ! ! % \indexnofonts is used when outputting the strings to sort the index ! % by, and when constructing control sequence names. It eliminates all ! % control sequences and just writes whatever the best ASCII sort string ! % would be for a given command (usually its argument). ! % \def\indexdummytex{TeX} \def\indexdummydots{...} ! % \def\indexnofonts{% ! \def\ { }% ! \def\@{@}% ! % how to handle braces? ! \def\_{\normalunderscore}% ! % ! \let\,=\asis ! \let\"=\asis ! \let\`=\asis ! \let\'=\asis ! \let\^=\asis ! \let\~=\asis ! \let\==\asis ! \let\u=\asis ! \let\v=\asis ! \let\H=\asis ! \let\dotaccent=\asis ! \let\ringaccent=\asis ! \let\tieaccent=\asis ! \let\ubaraccent=\asis ! \let\udotaccent=\asis ! \let\dotless=\asis ! % ! % Other non-English letters. ! \def\AA{AA}% ! \def\AE{AE}% ! \def\L{L}% ! \def\OE{OE}% ! \def\O{O}% ! \def\aa{aa}% ! \def\ae{ae}% ! \def\l{l}% ! \def\oe{oe}% ! \def\o{o}% ! \def\ss{ss}% ! \def\exclamdown{!}% ! \def\questiondown{?}% ! % ! % Don't no-op \tt, since it isn't a user-level command ! % and is used in the definitions of the active chars like <, >, |, etc. ! % Likewise with the other plain tex font commands. ! %\let\tt=\asis ! % ! % Texinfo font commands. ! \let\b=\asis ! \let\i=\asis ! \let\r=\asis ! \let\sc=\asis ! \let\t=\asis ! % ! \let\TeX=\indexdummytex ! \let\acronym=\asis ! \let\cite=\asis ! \let\code=\asis ! \let\command=\asis ! \let\dfn=\asis ! \let\dots=\indexdummydots ! \let\emph=\asis ! \let\env=\asis ! \let\file=\asis ! \let\kbd=\asis ! \let\key=\asis ! \let\math=\asis ! \let\option=\asis ! \let\samp=\asis ! \let\strong=\asis ! \let\uref=\asis ! \let\url=\asis ! \let\var=\asis ! \let\w=\asis ! } \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? *************** *** 2999,3026 **** \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % ! \def\thirdarg{#3}% ! % ! % If third arg is present, precede it with space in sort key. ! \ifx\thirdarg\emptymacro ! \let\subentry = \empty ! \else ! \def\subentry{ #3}% ! \fi ! % ! % First process the index entry with all font commands turned ! % off to get the string to sort by. ! {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% ! % ! % Now the real index entry with the fonts. \toks0 = {#2}% % ! % If the third (subentry) arg is present, add it to the index ! % line to write. \ifx\thirdarg\emptymacro \else ! \toks0 = \expandafter{\the\toks0{#3}}% \fi % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the --- 3291,3314 ---- \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % ! % The main index entry text. \toks0 = {#2}% % ! % If third arg is present, precede it with space in sort key. ! \def\thirdarg{#3}% \ifx\thirdarg\emptymacro \else ! % If the third (subentry) arg is present, add it to the index ! % line to write. ! \toks0 = \expandafter{\the\toks0 \space #3}% \fi % + % Process the index entry with all font commands turned off, to + % get the string to sort by. + {\indexnofonts + \edef\temp{\the\toks0}% need full expansion + \xdef\indexsorttmp{\temp}% + }% + % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the *************** *** 3051,3062 **** \iflinks \ifvmode \skip0 = \lastskip ! \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi \fi % \temp % do the write % - % \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi \fi }% --- 3339,3349 ---- \iflinks \ifvmode \skip0 = \lastskip ! \ifdim\lastskip = 0pt \else \nobreak\vskip-\skip0 \fi \fi % \temp % do the write % \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi \fi }% *************** *** 3106,3111 **** --- 3393,3399 ---- % \smallfonts \rm \tolerance = 9500 + \everypar = {}% don't want the \kern\-parindent from indentation suppression. \indexbreaks % % See if the index file exists and is nonempty. *************** *** 3487,3492 **** --- 3775,3781 ---- \numberedsubsubseczzz{#2} \fi \fi + \suppressfirstparagraphindent } % like \numhead, but chooses appendix heading levels *************** *** 3506,3511 **** --- 3795,3801 ---- \appendixsubsubseczzz{#2} \fi \fi + \suppressfirstparagraphindent } % like \numhead, but chooses numberless heading levels *************** *** 3525,3530 **** --- 3815,3821 ---- \unnumberedsubsubseczzz{#2} \fi \fi + \suppressfirstparagraphindent } % @chapter, @appendix, @unnumbered. *************** *** 3532,3573 **** \outer\def\chapter{\parsearg\chapteryyy} \def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% ! \chapmacro {#1}{\the\chapno}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! % We don't substitute the actual chapter name into \thischapter ! % because we don't want its macros evaluated now. ! \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% ! {\the\chapno}}}% ! \temp ! \donoderef ! \global\let\section = \numberedsec ! \global\let\subsection = \numberedsubsec ! \global\let\subsubsection = \numberedsubsubsec ! } \outer\def\appendix{\parsearg\appendixyyy} \def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \appendixno by 1 ! \message{\putwordAppendix\space \appendixletter}% ! \chapmacro {#1}{\putwordAppendix{} \appendixletter}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}% ! {\appendixletter}}}% ! \temp ! \appendixnoderef ! \global\let\section = \appendixsec ! \global\let\subsection = \appendixsubsec ! \global\let\subsubsection = \appendixsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. --- 3823,3863 ---- \outer\def\chapter{\parsearg\chapteryyy} \def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% ! \chapmacro {#1}{\the\chapno}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! % We don't substitute the actual chapter name into \thischapter ! % because we don't want its macros evaluated now. ! \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% ! \writetocentry{chap}{#1}{{\the\chapno}} ! \donoderef ! \global\let\section = \numberedsec ! \global\let\subsection = \numberedsubsec ! \global\let\subsubsection = \numberedsubsubsec ! } ! ! % we use \chapno to avoid indenting back ! \def\appendixbox#1{% ! \setbox0 = \hbox{\putwordAppendix{} \the\chapno}% ! \hbox to \wd0{#1\hss}} \outer\def\appendix{\parsearg\appendixyyy} \def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \appendixno by 1 ! \message{\putwordAppendix\space \appendixletter}% ! \chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% ! \writetocentry{appendix}{#1}{{\appendixletter}} ! \appendixnoderef ! \global\let\section = \appendixsec ! \global\let\subsection = \appendixsubsec ! \global\let\subsubsection = \appendixsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. *************** *** 3580,3729 **** \outer\def\unnumbered{\parsearg\unnumberedyyy} \def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \def\unnumberedzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! % ! % This used to be simply \message{#1}, but TeX fully expands the ! % argument to \message. Therefore, if #1 contained @-commands, TeX ! % expanded them. For example, in `@unnumbered The @cite{Book}', TeX ! % expanded @cite (which turns out to cause errors because \cite is meant ! % to be executed, not expanded). ! % ! % Anyway, we don't want the fully-expanded definition of @cite to appear ! % as a result of the \message, we just want `@cite' itself. We use ! % \the to achieve this: TeX expands \the only once, ! % simply yielding the contents of . (We also do this for ! % the toc entries.) ! \toks0 = {#1}\message{(\the\toks0)}% ! % ! \unnumbchapmacro {#1}% ! \gdef\thischapter{#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% ! \temp ! \unnumbnoderef ! \global\let\section = \unnumberedsec ! \global\let\subsection = \unnumberedsubsec ! \global\let\subsubsection = \unnumberedsubsubsec } % Sections. \outer\def\numberedsec{\parsearg\secyyy} \def\secyyy #1{\numhead1{#1}} % normally calls seczzz \def\seczzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% ! {\the\chapno}{\the\secno}}}% ! \temp ! \donoderef ! \nobreak } \outer\def\appendixsection{\parsearg\appendixsecyyy} \outer\def\appendixsec{\parsearg\appendixsecyyy} \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% ! {\appendixletter}{\the\secno}}}% ! \temp ! \appendixnoderef ! \nobreak } \outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} \def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz #1{% ! \plainsecheading {#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry% ! {\the\toks0}{\the\chapno}}}% ! \temp ! \unnumbnoderef ! \nobreak } % Subsections. \outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} \def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% ! {\the\chapno}{\the\secno}{\the\subsecno}}}% ! \temp ! \donoderef ! \nobreak } \outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} \def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% ! {\appendixletter}{\the\secno}{\the\subsecno}}}% ! \temp ! \appendixnoderef ! \nobreak } \outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{% ! \plainsubsecheading {#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% ! {\the\toks0}{\the\chapno}{\the\secno}}}% ! \temp ! \unnumbnoderef ! \nobreak } % Subsubsections. \outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} \def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% ! {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% ! \temp ! \donoderef ! \nobreak } \outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} \def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% ! {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% ! \temp ! \appendixnoderef ! \nobreak } \outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{% ! \plainsubsubsecheading {#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% ! {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% ! \temp ! \unnumbnoderef ! \nobreak } % These are variants which are not "outer", so they can appear in @ifinfo. --- 3870,3990 ---- \outer\def\unnumbered{\parsearg\unnumberedyyy} \def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \def\unnumberedzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! % ! % This used to be simply \message{#1}, but TeX fully expands the ! % argument to \message. Therefore, if #1 contained @-commands, TeX ! % expanded them. For example, in `@unnumbered The @cite{Book}', TeX ! % expanded @cite (which turns out to cause errors because \cite is meant ! % to be executed, not expanded). ! % ! % Anyway, we don't want the fully-expanded definition of @cite to appear ! % as a result of the \message, we just want `@cite' itself. We use ! % \the to achieve this: TeX expands \the only once, ! % simply yielding the contents of . (We also do this for ! % the toc entries.) ! \toks0 = {#1}\message{(\the\toks0)}% ! % ! \unnumbchapmacro {#1}% ! \gdef\thischapter{#1}\gdef\thissection{#1}% ! \writetocentry{unnumbchap}{#1}{{\the\chapno}} ! \unnumbnoderef ! \global\let\section = \unnumberedsec ! \global\let\subsection = \unnumberedsubsec ! \global\let\subsubsection = \unnumberedsubsubsec } % Sections. \outer\def\numberedsec{\parsearg\secyyy} \def\secyyy #1{\numhead1{#1}} % normally calls seczzz \def\seczzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% ! \writetocentry{sec}{#1}{{\the\chapno}{\the\secno}} ! \donoderef ! \nobreak } \outer\def\appendixsection{\parsearg\appendixsecyyy} \outer\def\appendixsec{\parsearg\appendixsecyyy} \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% ! \writetocentry{sec}{#1}{{\appendixletter}{\the\secno}} ! \appendixnoderef ! \nobreak } \outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} \def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz #1{% ! \plainsecheading {#1}\gdef\thissection{#1}% ! \writetocentry{unnumbsec}{#1}{{\the\chapno}{\the\secno}} ! \unnumbnoderef ! \nobreak } % Subsections. \outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} \def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% ! \writetocentry{subsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}} ! \donoderef ! \nobreak } \outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} \def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% ! \writetocentry{subsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}} ! \appendixnoderef ! \nobreak } \outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{% ! \plainsubsecheading {#1}\gdef\thissection{#1}% ! \writetocentry{unnumbsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}} ! \unnumbnoderef ! \nobreak } % Subsubsections. \outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} \def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \writetocentry{subsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}} ! \donoderef ! \nobreak } \outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} \def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \writetocentry{subsubsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}} ! \appendixnoderef ! \nobreak } \outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{% ! \plainsubsubsecheading {#1}\gdef\thissection{#1}% ! \writetocentry{unnumbsubsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}} ! \unnumbnoderef ! \nobreak } % These are variants which are not "outer", so they can appear in @ifinfo. *************** *** 3764,3779 **** \def\majorheading{\parsearg\majorheadingzzz} \def\majorheadingzzz #1{% ! {\advance\chapheadingskip by 10pt \chapbreak }% ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} \def\chapheading{\parsearg\chapheadingzzz} \def\chapheadingzzz #1{\chapbreak % ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} % @heading, @subheading, @subsubheading. \def\heading{\parsearg\plainsecheading} --- 4025,4040 ---- \def\majorheading{\parsearg\majorheadingzzz} \def\majorheadingzzz #1{% ! {\advance\chapheadingskip by 10pt \chapbreak }% ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} \def\chapheading{\parsearg\chapheadingzzz} \def\chapheadingzzz #1{\chapbreak % ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} % @heading, @subheading, @subsubheading. \def\heading{\parsearg\plainsecheading} *************** *** 3919,3925 **** \hangindent = \wd0 % zero if no section number \unhbox0 #3}% }% ! \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak } --- 4180,4195 ---- \hangindent = \wd0 % zero if no section number \unhbox0 #3}% }% ! % Add extra space after the heading -- either a line space or a ! % paragraph space, whichever is more. (Some people like to set ! % \parskip to large values for some reason.) Don't allow stretch, though. ! \nobreak ! \ifdim\parskip>\normalbaselineskip ! \kern\parskip ! \else ! \kern\normalbaselineskip ! \fi ! \nobreak } *************** *** 3931,3946 **** % Called from @chapter, etc. We supply {\folio} at the end of the % argument, which will end up as the last argument to the \...entry macro. % ! % We open the .toc file here instead of at @setfilename or any other ! % fixed time so that @contents can be put in the document anywhere. % \newif\iftocfileopened ! \def\writetocentry#1{% \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi ! \iflinks \write\tocfile{#1{\folio}}\fi % % Tell \shipout to create a page destination if we're doing pdf, which % will be the target of the links in the table of contents. We can't --- 4201,4222 ---- % Called from @chapter, etc. We supply {\folio} at the end of the % argument, which will end up as the last argument to the \...entry macro. % ! % Usage: \writetocentry{chap}{The Name of The Game}{{\the\chapno}} ! % We open the .toc file for writing here instead of at @setfilename (or ! % any other fixed time) so that @contents can be anywhere in the document. % \newif\iftocfileopened ! \def\writetocentry#1#2#3{% \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi ! % ! \iflinks ! \toks0 = {#2}% ! \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}#3{\folio}}}% ! \temp ! \fi % % Tell \shipout to create a page destination if we're doing pdf, which % will be the target of the links in the table of contents. We can't *************** *** 3979,3985 **** \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. ! \ifnum \pageno>0 \pageno = \lastnegativepageno \fi } --- 4255,4261 ---- \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. ! \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } *************** *** 3996,4002 **** \pdfmakeoutlines \endgroup \lastnegativepageno = \pageno ! \pageno = \savepageno } % And just the chapters. --- 4272,4278 ---- \pdfmakeoutlines \endgroup \lastnegativepageno = \pageno ! \global\pageno = \savepageno } % And just the chapters. *************** *** 4008,4023 **** \let\unnumbchapentry = \shortunnumberedentry % We want a true roman here for the page numbers. \secfonts ! \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2##3{} \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2##3##4{} \def\subsubsecentry ##1##2##3##4##5##6{} ! \def\unnumbsubsubsecentry ##1##2##3##4##5{} \openin 1 \jobname.toc \ifeof 1 \else \closein 1 --- 4284,4300 ---- \let\unnumbchapentry = \shortunnumberedentry % We want a true roman here for the page numbers. \secfonts ! \let\rm=\shortcontrm \let\bf=\shortcontbf ! \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} \def\subsecentry ##1##2##3##4##5{} \def\subsubsecentry ##1##2##3##4##5##6{} ! \let\unnumbsecentry = \secentry ! \let\unnumbsubsecentry = \subsecentry ! \let\unnumbsubsubsecentry = \subsubsecentry \openin 1 \jobname.toc \ifeof 1 \else \closein 1 *************** *** 4027,4033 **** \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno ! \pageno = \savepageno } \let\shortcontents = \summarycontents --- 4304,4310 ---- \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno ! \global\pageno = \savepageno } \let\shortcontents = \summarycontents *************** *** 4050,4056 **** } % Appendices, in the main contents. ! \def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}} % % Appendices, in the short toc. \let\shortappendixentry = \shortchapentry --- 4327,4334 ---- } % Appendices, in the main contents. ! \def\appendixentry#1#2#3{% ! \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}} % % Appendices, in the short toc. \let\shortappendixentry = \shortchapentry *************** *** 4074,4094 **** } % Unnumbered chapters. ! \def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} ! \def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} ! \def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} ! \def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} ! \def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}} % This parameter controls the indentation of the various levels. \newdimen\tocindent \tocindent = 3pc --- 4352,4372 ---- } % Unnumbered chapters. ! \def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}} ! \def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}} % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} ! \def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} ! \def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} ! \def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}} % This parameter controls the indentation of the various levels. \newdimen\tocindent \tocindent = 3pc *************** *** 4190,4203 **** \def\tex{\begingroup \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 ! \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie \catcode `\%=14 ! \catcode 43=12 % plus ! \catcode`\"=12 ! \catcode`\==12 ! \catcode`\|=12 ! \catcode`\<=12 ! \catcode`\>=12 \escapechar=`\\ % \let\b=\ptexb --- 4468,4481 ---- \def\tex{\begingroup \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 ! \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 ! \catcode `\+=\other ! \catcode `\"=\other ! \catcode `\==\other ! \catcode `\|=\other ! \catcode `\<=\other ! \catcode `\>=\other \escapechar=`\\ % \let\b=\ptexb *************** *** 4209,4217 **** --- 4487,4497 ---- \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi + \let\indent=\ptexindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace + \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext % *************** *** 4251,4265 **** % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the ! % start of the next paragraph will insert \parskip % \def\aboveenvbreak{{% ! \ifnum\lastpenalty < 10000 \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip ! \penalty-50 \vskip\envskipamount \fi \fi --- 4531,4548 ---- % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the ! % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% ! % =10000 instead of <10000 because of a special case in \itemzzz, q.v. ! \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip ! % it's not a good place to break if the last penalty was \nobreak ! % or better ... ! \ifnum\lastpenalty>10000 \else \penalty-50 \fi \vskip\envskipamount \fi \fi *************** *** 4291,4297 **** % \newskip\lskip\newskip\rskip ! \long\def\cartouche{% \begingroup \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt %we want these *outside*. --- 4574,4581 ---- % \newskip\lskip\newskip\rskip ! \def\cartouche{% ! \par % can't be in the midst of a paragraph. \begingroup \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt %we want these *outside*. *************** *** 4338,4344 **** \inENV % This group ends at the end of the body \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt --- 4622,4627 ---- *************** *** 4377,4403 **** % @example: Same as @lisp. \def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} ! % @small... is usually equivalent to the non-small (@smallbook ! % redefines). We must call \example (or whatever) last in the ! % definition, since it reads the return following the @example (or ! % whatever) command. ! % ! % This actually allows (for example) @end display inside an ! % @smalldisplay. Too bad, but makeinfo will catch the error anyway. ! % ! \def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display} ! \def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp} ! \def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format} ! \def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp} ! ! % Real @smallexample and @smalllisp (when @smallbook): use smaller fonts. % Originally contributed by Pavel@xerox. ! \def\smalllispx{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}% \def\Esmallexample{\nonfillfinish\endgroup}% \smallexamplefonts \lisp } % @display: same as @lisp except keep current font. % --- 4660,4675 ---- % @example: Same as @lisp. \def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} ! % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. ! \def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}% \def\Esmallexample{\nonfillfinish\endgroup}% \smallexamplefonts \lisp } + \let\smallexample = \smalllisp + % @display: same as @lisp except keep current font. % *************** *** 4407,4415 **** \gobble } % ! % @smalldisplay (when @smallbook): @display plus smaller fonts. % ! \def\smalldisplayx{\begingroup \def\Esmalldisplay{\nonfillfinish\endgroup}% \smallexamplefonts \rm \display --- 4679,4687 ---- \gobble } % ! % @smalldisplay: @display plus smaller fonts. % ! \def\smalldisplay{\begingroup \def\Esmalldisplay{\nonfillfinish\endgroup}% \smallexamplefonts \rm \display *************** *** 4424,4432 **** \gobble } % ! % @smallformat (when @smallbook): @format plus smaller fonts. % ! \def\smallformatx{\begingroup \def\Esmallformat{\nonfillfinish\endgroup}% \smallexamplefonts \rm \format --- 4696,4704 ---- \gobble } % ! % @smallformat: @format plus smaller fonts. % ! \def\smallformat{\begingroup \def\Esmallformat{\nonfillfinish\endgroup}% \smallexamplefonts \rm \format *************** *** 4453,4459 **** \def\quotation{% \begingroup\inENV %This group ends at the end of the @quotation body {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace \parindent=0pt % We have retained a nonzero parskip for the environment, since we're % doing normal filling. So to avoid extra space below the environment... --- 4725,4730 ---- *************** *** 4476,4485 **** % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % ! % [Knuth] p. 344; only we need to do '@' too \def\dospecials{% ! \do\ \do\\\do\@\do\{\do\}\do\$\do\&% ! \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} % % [Knuth] p. 380 \def\uncatcodespecials{% --- 4747,4760 ---- % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % ! % [Knuth] p.344; only we need to do the other characters Texinfo sets ! % active too. Otherwise, they get lost as the first character on a ! % verbatim line. \def\dospecials{% ! \do\ \do\\\do\{\do\}\do\$\do\&% ! \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% ! \do\<\do\>\do\|\do\@\do+\do\"% ! } % % [Knuth] p. 380 \def\uncatcodespecials{% *************** *** 4566,4572 **** % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': ! % we need not redefine '\', '{' and '}' % % Inspired by LaTeX's verbatim command set [latex.ltx] %% Include LaTeX hack for completeness -- never know --- 4841,4847 ---- % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': ! % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] %% Include LaTeX hack for completeness -- never know *************** *** 4576,4584 **** %% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ %% #1|endgroup|def|Everbatim[]|end[verbatim]] %% |endgroup \begingroup \catcode`\ =\active ! \gdef\doverbatim#1@end verbatim{#1\end{verbatim}} \endgroup % \def\verbatim{% --- 4851,4864 ---- %% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ %% #1|endgroup|def|Everbatim[]|end[verbatim]] %% |endgroup + % \begingroup \catcode`\ =\active ! \obeylines % ! % ignore everything up to the first ^^M, that's the newline at the end ! % of the @verbatim input line itself. Otherwise we get an extra blank ! % line in the output. ! \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}% \endgroup % \def\verbatim{% *************** *** 4594,4607 **** % Allow normal characters that we make active in the argument (a file name). \def\verbatiminclude{% \begingroup ! \catcode`\\=12 ! \catcode`~=12 ! \catcode`^=12 ! \catcode`_=12 ! \catcode`|=12 ! \catcode`<=12 ! \catcode`>=12 ! \catcode`+=12 \parsearg\doverbatiminclude } \def\setupverbatiminclude{% --- 4874,4887 ---- % Allow normal characters that we make active in the argument (a file name). \def\verbatiminclude{% \begingroup ! \catcode`\\=\other ! \catcode`~=\other ! \catcode`^=\other ! \catcode`_=\other ! \catcode`|=\other ! \catcode`<=\other ! \catcode`>=\other ! \catcode`+=\other \parsearg\doverbatiminclude } \def\setupverbatiminclude{% *************** *** 4615,4658 **** % Restore active chars for included file. \endgroup \begingroup ! \def\thisfile{#1}% ! \expandafter\expandafter\setupverbatiminclude\input\thisfile ! \endgroup\nonfillfinish\endgroup } % @copying ... @end copying. ! % Save the text away for @insertcopying later. % ! \newbox\copyingbox % \def\copying{\begingroup \parindent = 0pt % looks wrong on title page ! \def\Ecopying{\egroup\endgroup}% ! \global\setbox\copyingbox = \vbox\bgroup } - % @insertcopying. - % - \def\insertcopying{\unvcopy\copyingbox} - - \message{defuns,} % @defun etc. % Allow user to change definition object font (\df) internally ! \def\setdeffont #1 {\csname DEF#1\endcsname} \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt - \newskip\deftypemargin \deftypemargin=12pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount ! % define \functionparens, which makes ( and ) and & do special things. ! % \functionparens affects the group it is contained in. \def\activeparens{% ! \catcode`\(=\active \catcode`\)=\active \catcode`\&=\active ! \catcode`\[=\active \catcode`\]=\active} % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) --- 4895,4996 ---- % Restore active chars for included file. \endgroup \begingroup ! \let\value=\expandablevalue ! \def\thisfile{#1}% ! \expandafter\expandafter\setupverbatiminclude\input\thisfile ! \endgroup ! \nonfillfinish ! \endgroup } % @copying ... @end copying. ! % Save the text away for @insertcopying later. Many commands won't be ! % allowed in this context, but that's ok. % ! % We save the uninterpreted tokens, rather than creating a box. ! % Saving the text in a box would be much easier, but then all the ! % typesetting commands (@smallbook, font changes, etc.) have to be done ! % beforehand -- and a) we want @copying to be done first in the source ! % file; b) letting users define the frontmatter in as flexible order as ! % possible is very desirable. % \def\copying{\begingroup + % Define a command to swallow text until we reach `@end copying'. + % \ is the escape char in this texinfo.tex file, so it is the + % delimiter for the command; @ will be the escape char when we read + % it, but that doesn't matter. + \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}% + % + % We must preserve ^^M's in the input file; see \insertcopying below. + \catcode`\^^M = \active + \docopying + } + + % What we do to finish off the copying text. + % + \def\enddocopying{\endgroup\ignorespaces} + + % @insertcopying. Here we must play games with ^^M's. On the one hand, + % we need them to delimit commands such as `@end quotation', so they + % must be active. On the other hand, we certainly don't want every + % end-of-line to be a \par, as would happen with the normal active + % definition of ^^M. On the third hand, two ^^M's in a row should still + % generate a \par. + % + % Our approach is to make ^^M insert a space and a penalty1 normally; + % then it can also check if \lastpenalty=1. If it does, then manually + % do \par. + % + % This messes up the normal definitions of @c[omment], so we redefine + % it. Similarly for @ignore. (These commands are used in the gcc + % manual for man page generation.) + % + % Seems pretty fragile, most line-oriented commands will presumably + % fail, but for the limited use of getting the copying text (which + % should be quite simple) inserted, we can hope it's ok. + % + {\catcode`\^^M=\active % + \gdef\insertcopying{\begingroup % \parindent = 0pt % looks wrong on title page ! \def^^M{% ! \ifnum \lastpenalty=1 % ! \par % ! \else % ! \space \penalty 1 % ! \fi % ! }% ! % ! % Fix @c[omment] for catcode 13 ^^M's. ! \def\c##1^^M{\ignorespaces}% ! \let\comment = \c % ! % ! % Don't bother jumping through all the hoops that \doignore does, it ! % would be very hard since the catcodes are already set. ! \long\def\ignore##1\end ignore{\ignorespaces}% ! % ! \copyingtext % ! \endgroup}% } \message{defuns,} % @defun etc. % Allow user to change definition object font (\df) internally ! \def\setdeffont#1 {\csname DEF#1\endcsname} \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount ! ! % We want ()&[] to print specially on the defun line. ! % \def\activeparens{% ! \catcode`\(=\active \catcode`\)=\active ! \catcode`\&=\active ! \catcode`\[=\active \catcode`\]=\active ! } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) *************** *** 4699,4786 **** % Active &'s sneak into the index arguments, so make sure it's defined. { ! \catcode`& = 13 \global\let& = \ampnr } ! % First, defname, which formats the header line itself. ! % #1 should be the function name. ! % #2 should be the type of definition, such as "Function". ! ! \def\defname #1#2{% ! % Get the values of \leftskip and \rightskip as they were ! % outside the @def... ! \dimen2=\leftskip ! \advance\dimen2 by -\defbodyindent ! \noindent ! \setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% ! \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line ! \dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations ! \parshape 2 0in \dimen0 \defargsindent \dimen1 ! % Now output arg 2 ("Function" or some such) ! % ending at \deftypemargin from the right margin, ! % but stuck inside a box of width 0 so it does not interfere with linebreaking ! {% Adjust \hsize to exclude the ambient margins, ! % so that \rightline will obey them. ! \advance \hsize by -\dimen2 ! \rlap{\rightline{{\rm #2}\hskip -1.25pc }}}% ! % Make all lines underfull and no complaints: ! \tolerance=10000 \hbadness=10000 ! \advance\leftskip by -\defbodyindent ! \exdentamount=\defbodyindent ! {\df #1}\enskip % Generate function name ! } ! ! % Actually process the body of a definition ! % #1 should be the terminating control sequence, such as \Edefun. ! % #2 should be the "another name" control sequence, such as \defunx. ! % #3 should be the control sequence that actually processes the header, ! % such as \defunheader. ! ! \def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup % ! \catcode 61=\active % 61 is `=' ! \obeylines\activeparens\spacesplit#3} % #1 is the \E... control sequence to end the definition (which we define). ! % #2 is the \...x control sequence for consecutive fns (which we define). ! % #3 is the control sequence to call to resume processing. % #4, delimited by the space, is the class name. % ! \def\defmethparsebody#1#2#3#4 {\begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#4}}} % Used for @deftypemethod and @deftypeivar. ! % #1 is the \E... control sequence to end the definition (which we define). ! % #2 is the \...x control sequence for consecutive fns (which we define). ! % #3 is the control sequence to call to resume processing. % #4, delimited by a space, is the class name. % #5 is the method's return type. % ! \def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV ! \medbreak ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} % Used for @deftypeop. The change from \deftypemethparsebody is an % extra argument at the beginning which is the `category', instead of it --- 5037,5160 ---- % Active &'s sneak into the index arguments, so make sure it's defined. { ! \catcode`& = \active \global\let& = \ampnr } ! % \defname, which formats the name of the @def (not the args). ! % #1 is the function name. ! % #2 is the type of definition, such as "Function". ! % ! \def\defname#1#2{% ! % How we'll output the type name. Putting it in brackets helps ! % distinguish it from the body text that may end up on the next line ! % just below it. ! \ifempty{#2}% ! \def\defnametype{}% ! \else ! \def\defnametype{[\rm #2]}% ! \fi ! % ! % Get the values of \leftskip and \rightskip as they were outside the @def... ! \dimen2=\leftskip ! \advance\dimen2 by -\defbodyindent ! % ! % Figure out values for the paragraph shape. ! \setbox0=\hbox{\hskip \deflastargmargin{\defnametype}}% ! \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line ! \dimen1=\hsize \advance \dimen1 by -\defargsindent % size for continuations ! \parshape 2 0in \dimen0 \defargsindent \dimen1 ! % ! % Output arg 2 ("Function" or some such) but stuck inside a box of ! % width 0 so it does not interfere with linebreaking. ! \noindent ! % ! {% Adjust \hsize to exclude the ambient margins, ! % so that \rightline will obey them. ! \advance \hsize by -\dimen2 ! \dimen3 = 0pt % was -1.25pc ! \rlap{\rightline{\defnametype\kern\dimen3}}% ! }% ! % ! % Allow all lines to be underfull without complaint: ! \tolerance=10000 \hbadness=10000 ! \advance\leftskip by -\defbodyindent ! \exdentamount=\defbodyindent ! {\df #1}\enskip % output function name ! % \defunargs will be called next to output the arguments, if any. ! } + % Common pieces to start any @def... % #1 is the \E... control sequence to end the definition (which we define). ! % #2 is the \...x control sequence (which our caller defines). ! % #3 is the control sequence to process the header, such as \defunheader. ! % ! \def\parsebodycommon#1#2#3{% ! \begingroup\inENV ! % If there are two @def commands in a row, we'll have a \nobreak, ! % which is there to keep the function description together with its ! % header. But if there's nothing but headers, we want to allow a ! % break after all. Check for penalty 10002 (inserted by ! % \defargscommonending) instead of 10000, since the sectioning ! % commands insert a \penalty10000, and we don't want to allow a break ! % between a section heading and a defun. ! \ifnum\lastpenalty=10002 \penalty0 \fi ! \medbreak ! % ! % Define the \E... end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! % ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! } ! ! % Common part of the \...x definitions. ! % ! \def\defxbodycommon{% ! % As with \parsebodycommon above, allow line break if we have multiple ! % x headers in a row. It's not a great place, though. ! \ifnum\lastpenalty=10000 \penalty1000 \fi ! % ! \begingroup\obeylines ! } ! ! % Process body of @defun, @deffn, @defmac, etc. ! % ! \def\defparsebody#1#2#3{% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2{\defxbodycommon \activeparens \spacesplit#3}% ! \catcode\equalChar=\active ! \begingroup\obeylines\activeparens ! \spacesplit#3% ! } ! ! % #1, #2, #3 are the common arguments (see \parsebodycommon above). % #4, delimited by the space, is the class name. % ! \def\defmethparsebody#1#2#3#4 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}}% ! \begingroup\obeylines\activeparens ! % The \empty here prevents misinterpretation of a construct such as ! % @deffn {whatever} {Enharmonic comma} ! % See comments at \deftpparsebody, although in our case we don't have ! % to remove the \empty afterwards, since it is empty. ! \spacesplit{#3{#4}}\empty ! } % Used for @deftypemethod and @deftypeivar. ! % #1, #2, #3 are the common arguments (see \defparsebody). % #4, delimited by a space, is the class name. % #5 is the method's return type. % ! \def\deftypemethparsebody#1#2#3#4 #5 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}}% ! \begingroup\obeylines\activeparens ! \spacesplit{#3{#4}{#5}}% ! } % Used for @deftypeop. The change from \deftypemethparsebody is an % extra argument at the beginning which is the `category', instead of it *************** *** 4789,4852 **** % input at hand. Thus also need a control sequence (passed as #5) for % the \E... definition to assign the category name to. % ! \def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV ! \medbreak ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 ##3 {% ! \def#4{##1}% ! \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}} ! \def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 {\def#4{##1}% ! \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#5}}} % These parsing functions are similar to the preceding ones % except that they do not make parens into active characters. % These are used for "variables" since they have no arguments. - - \def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody - \medbreak % - % Define the end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% - \def#2{\begingroup\obeylines\spacesplit#3}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup % - \catcode 61=\active % - \obeylines\spacesplit#3} - - % This is used for \def{tp,vr}parsebody. It could probably be used for - % some of the others, too, with some judicious conditionals. % ! \def\parsebodycommon#1#2#3{% ! \begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent \begingroup\obeylines } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% \spacesplit{#3{#4}}% } --- 5163,5210 ---- % input at hand. Thus also need a control sequence (passed as #5) for % the \E... definition to assign the category name to. % ! \def\deftypeopparsebody#1#2#3#4#5 #6 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 ##2 ##3 {\def#4{##1}% ! \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}}% ! \begingroup\obeylines\activeparens ! \spacesplit{#3{#5}{#6}}% ! } ! % For @defop. ! \def\defopparsebody #1#2#3#4#5 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 ##2 {\def#4{##1}% ! \defxbodycommon \activeparens \spacesplit{#3{##2}}}% ! \begingroup\obeylines\activeparens ! \spacesplit{#3{#5}}% ! } % These parsing functions are similar to the preceding ones % except that they do not make parens into active characters. % These are used for "variables" since they have no arguments. % ! \def\defvarparsebody #1#2#3{% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2{\defxbodycommon \spacesplit#3}% ! \catcode\equalChar=\active \begingroup\obeylines + \spacesplit#3% + } + + % @defopvar. + \def\defopvarparsebody #1#2#3#4#5 {% + \parsebodycommon{#1}{#2}{#3}% + \def#2##1 ##2 {\def#4{##1}% + \defxbodycommon \spacesplit{#3{##2}}}% + \begingroup\obeylines + \spacesplit{#3{#5}}% } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% + \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% + \begingroup\obeylines \spacesplit{#3{#4}}% } *************** *** 4861,4866 **** --- 5219,5226 ---- % \def\deftpparsebody #1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% + \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% + \begingroup\obeylines \spacesplit{\parsetpheaderline{#3{#4}}}\empty } *************** *** 4877,4914 **** #1{\removeemptybraces#2\relax}{#3}% }% ! \def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 {\def#4{##1}% ! \begingroup\obeylines\spacesplit{#3{##2}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\spacesplit{#3{#5}}} ! ! % Split up #2 at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, % the second is all of #2 after that space token. % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. ! ! {\obeylines ! \gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% ! \long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% ! \ifx\relax #3% ! #1{#2}{}\else #1{#2}{#3#4}\fi}} ! ! % So much for the things common to all kinds of definitions. % Define @defun. ! % First, define the processing that is wanted for arguments of \defun ! % Use this to expand the args and terminate the paragraph they make up \def\defunargs#1{\functionparens \sl % Expand, preventing hyphenation at `-' chars. % Note that groups don't affect changes in \hyphenchar. --- 5237,5273 ---- #1{\removeemptybraces#2\relax}{#3}% }% ! % Split up #2 (the rest of the input line) at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, % the second is all of #2 after that space token. % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. ! % ! {\obeylines % ! \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx}% ! \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{% ! \ifx\relax #3% ! #1{#2}{}% ! \else % ! #1{#2}{#3#4}% ! \fi}% ! } % Define @defun. ! % This is called to end the arguments processing for all the @def... commands. ! % ! \def\defargscommonending{% ! \interlinepenalty = 10000 ! \advance\rightskip by 0pt plus 1fil ! \endgraf ! \nobreak\vskip -\parskip ! \penalty 10002 % signal to \parsebodycommon. ! } + % This expands the args and terminates the paragraph they comprise. + % \def\defunargs#1{\functionparens \sl % Expand, preventing hyphenation at `-' chars. % Note that groups don't affect changes in \hyphenchar. *************** *** 4917,4925 **** #1% {\tensl\hyphenchar\font=45}% \ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% ! \interlinepenalty=10000 ! \advance\rightskip by 0pt plus 1fil ! \endgraf\nobreak\vskip -\parskip\nobreak } \def\deftypefunargs #1{% --- 5276,5282 ---- #1% {\tensl\hyphenchar\font=45}% \ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% ! \defargscommonending } \def\deftypefunargs #1{% *************** *** 4928,4936 **** % Use \boldbraxnoamp, not \functionparens, so that & is not special. \boldbraxnoamp \tclose{#1}% avoid \code because of side effects on active chars ! \interlinepenalty=10000 ! \advance\rightskip by 0pt plus 1fil ! \endgraf\nobreak\vskip -\parskip\nobreak } % Do complete processing of one @defun or @defunx line already parsed. --- 5285,5291 ---- % Use \boldbraxnoamp, not \functionparens, so that & is not special. \boldbraxnoamp \tclose{#1}% avoid \code because of side effects on active chars ! \defargscommonending } % Do complete processing of one @defun or @defunx line already parsed. *************** *** 4941,4947 **** \def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% \begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } % @defun == @deffn Function --- 5296,5302 ---- \def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% \begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } % @defun == @deffn Function *************** *** 4951,4957 **** \def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDeffunc}% \defunargs {#2}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } % @deftypefun int foobar (int @var{foo}, float @var{bar}) --- 5306,5312 ---- \def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDeffunc}% \defunargs {#2}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } % @deftypefun int foobar (int @var{foo}, float @var{bar}) *************** *** 4965,4971 **** \doind {fn}{\code{#2}}% Make entry in function index \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% \deftypefunargs {#3}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } % @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) --- 5320,5326 ---- \doind {fn}{\code{#2}}% Make entry in function index \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% \deftypefunargs {#3}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } % @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) *************** *** 4986,4992 **** % at least some C++ text from working \defname {\defheaderxcond#2\relax$.$#3}{#1}% \deftypefunargs {#4}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } % @defmac == @deffn Macro --- 5341,5347 ---- % at least some C++ text from working \defname {\defheaderxcond#2\relax$.$#3}{#1}% \deftypefunargs {#4}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } % @defmac == @deffn Macro *************** *** 4996,5002 **** \def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDefmac}% \defunargs {#2}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } % @defspec == @deffn Special Form --- 5351,5357 ---- \def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDefmac}% \defunargs {#2}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } % @defspec == @deffn Special Form *************** *** 5006,5012 **** \def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDefspec}% \defunargs {#2}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } % @defop CATEGORY CLASS OPERATION ARG... --- 5361,5367 ---- \def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index \begingroup\defname {#1}{\putwordDefspec}% \defunargs {#2}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } % @defop CATEGORY CLASS OPERATION ARG... *************** *** 5015,5023 **** \defopparsebody\Edefop\defopx\defopheader\defoptype} % \def\defopheader#1#2#3{% ! \dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index ! \begingroup\defname {#2}{\defoptype\ \putwordon\ #1}% ! \defunargs {#3}\endgroup % } % @deftypeop CATEGORY CLASS TYPE OPERATION ARG... --- 5370,5380 ---- \defopparsebody\Edefop\defopx\defopheader\defoptype} % \def\defopheader#1#2#3{% ! \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% function index entry ! \begingroup ! \defname{#2}{\defoptype\ \putwordon\ #1}% ! \defunargs{#3}% ! \endgroup } % @deftypeop CATEGORY CLASS TYPE OPERATION ARG... *************** *** 5084,5092 **** \defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} \def\defcvarheader #1#2#3{% ! \dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index ! \begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}% ! \defvarargs {#3}\endgroup % } % @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME --- 5441,5451 ---- \defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} \def\defcvarheader #1#2#3{% ! \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% variable index entry ! \begingroup ! \defname{#2}{\defcvtype\ \putwordof\ #1}% ! \defvarargs{#3}% ! \endgroup } % @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME *************** *** 5094,5100 **** \def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} % \def\defivarheader#1#2#3{% ! \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index \begingroup \defname{#2}{\putwordInstanceVariableof\ #1}% \defvarargs{#3}% --- 5453,5459 ---- \def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} % \def\defivarheader#1#2#3{% ! \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% entry in var index \begingroup \defname{#2}{\putwordInstanceVariableof\ #1}% \defvarargs{#3}% *************** *** 5106,5113 **** % This is actually simple: just print them in roman. % This must expand the args and terminate the paragraph they make up \def\defvarargs #1{\normalparens #1% ! \interlinepenalty=10000 ! \endgraf\nobreak\vskip -\parskip\nobreak} % @defvr Counter foo-count --- 5465,5472 ---- % This is actually simple: just print them in roman. % This must expand the args and terminate the paragraph they make up \def\defvarargs #1{\normalparens #1% ! \defargscommonending ! } % @defvr Counter foo-count *************** *** 5143,5150 **** \def\deftypevarheader #1#2{% \dovarind#2 \relax% Make entry in variables index \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% ! \interlinepenalty=10000 ! \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} \def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} --- 5502,5508 ---- \def\deftypevarheader #1#2{% \dovarind#2 \relax% Make entry in variables index \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% ! \defargscommonending \endgroup} \def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} *************** *** 5154,5161 **** \def\deftypevrheader #1#2#3{\dovarind#3 \relax% \begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} ! \interlinepenalty=10000 ! \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} % Now define @deftp --- 5512,5518 ---- \def\deftypevrheader #1#2#3{\dovarind#3 \relax% \begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} ! \defargscommonending \endgroup} % Now define @deftp *************** *** 5204,5210 **** \def\scanmacro#1{% \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ % Append \endinput to make sure that TeX does not see the ending newline. \toks0={#1\endinput}% \immediate\openout\macscribble=\jobname.tmp --- 5561,5567 ---- \def\scanmacro#1{% \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=\other \escapechar=`\@ % Append \endinput to make sure that TeX does not see the ending newline. \toks0={#1\endinput}% \immediate\openout\macscribble=\jobname.tmp *************** *** 5218,5224 **** \def\scanmacro#1{% \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ \let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} \fi --- 5575,5581 ---- \def\scanmacro#1{% \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=\other \escapechar=`\@ \let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} \fi *************** *** 5248,5254 **** } % Trim a single trailing ^^M off a string. ! {\catcode`\^^M=12\catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% --- 5605,5611 ---- } % Trim a single trailing ^^M off a string. ! {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% *************** *** 5263,5291 **** % body, and then making it the \newlinechar in \scanmacro. \def\macrobodyctxt{% ! \catcode`\~=12 ! \catcode`\^=12 ! \catcode`\_=12 ! \catcode`\|=12 ! \catcode`\<=12 ! \catcode`\>=12 ! \catcode`\+=12 ! \catcode`\{=12 ! \catcode`\}=12 ! \catcode`\@=12 ! \catcode`\^^M=12 \usembodybackslash} \def\macroargctxt{% ! \catcode`\~=12 ! \catcode`\^=12 ! \catcode`\_=12 ! \catcode`\|=12 ! \catcode`\<=12 ! \catcode`\>=12 ! \catcode`\+=12 ! \catcode`\@=12 ! \catcode`\\=12} % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N --- 5620,5648 ---- % body, and then making it the \newlinechar in \scanmacro. \def\macrobodyctxt{% ! \catcode`\~=\other ! \catcode`\^=\other ! \catcode`\_=\other ! \catcode`\|=\other ! \catcode`\<=\other ! \catcode`\>=\other ! \catcode`\+=\other ! \catcode`\{=\other ! \catcode`\}=\other ! \catcode`\@=\other ! \catcode`\^^M=\other \usembodybackslash} \def\macroargctxt{% ! \catcode`\~=\other ! \catcode`\^=\other ! \catcode`\_=\other ! \catcode`\|=\other ! \catcode`\<=\other ! \catcode`\>=\other ! \catcode`\+=\other ! \catcode`\@=\other ! \catcode`\\=\other} % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N *************** *** 5326,5357 **** \else \expandafter\parsemacbody \fi} ! \def\unmacro{\parsearg\unmacroxxx} ! \def\unmacroxxx#1{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% ! % Remove the macro name from \macrolist \begingroup ! \edef\tempa{\expandafter\noexpand\csname#1\endcsname}% ! \def\do##1{% ! \def\tempb{##1}% ! \ifx\tempa\tempb ! % remove this ! \else ! \toks0 = \expandafter{\newmacrolist\do}% ! \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}% ! \fi}% ! \def\newmacrolist{}% ! % Execute macro list to define \newmacrolist ! \macrolist ! \global\let\macrolist\newmacrolist \endgroup \else \errmessage{Macro #1 not defined}% \fi } % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. --- 5683,5715 ---- \else \expandafter\parsemacbody \fi} ! \def\unmacro{\parsearg\dounmacro} ! \def\dounmacro#1{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% ! % Remove the macro name from \macrolist: \begingroup ! \expandafter\let\csname#1\endcsname \relax ! \let\do\unmacrodo ! \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } + % Called by \do from \dounmacro on each macro. The idea is to omit any + % macro definitions that have been changed to \relax. + % + \def\unmacrodo#1{% + \ifx#1\relax + % remove this + \else + \noexpand\do \noexpand #1% + \fi + } + % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. *************** *** 5499,5506 **** % @node's job is to define \lastnode. \def\node{\ENVcheck\parsearg\nodezzz} ! \def\nodezzz#1{\nodexxx [#1,]} ! \def\nodexxx[#1,#2]{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\relax --- 5857,5864 ---- % @node's job is to define \lastnode. \def\node{\ENVcheck\parsearg\nodezzz} ! \def\nodezzz#1{\nodexxx #1,\finishnodeparse} ! \def\nodexxx#1,#2\finishnodeparse{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\relax *************** *** 5534,5548 **** \gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} ! % \setref{NAME}{SNT} defines a cross-reference point NAME, namely ! % NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have ! % to set \indexdummies so commands such as @code in a section title ! % aren't expanded. It would be nicer not to expand the titles in the ! % first place, but there's so many layers that that is hard to do. % \def\setref#1#2{{% ! \indexdummies \pdfmkdest{#1}% \dosetq{#1-title}{Ytitle}% \dosetq{#1-pg}{Ypagenumber}% \dosetq{#1-snt}{#2}% --- 5892,5914 ---- \gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} ! % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an ! % anchor), namely NAME-title (the corresponding @chapter/etc. name), ! % NAME-pg (the page number), and NAME-snt (section number and type). ! % Called from \foonoderef. ! % ! % We have to set \indexdummies so commands such as @code in a section ! % title aren't expanded. It would be nicer not to expand the titles in ! % the first place, but there's so many layers that that is hard to do. ! % ! % Likewise, use \turnoffactive so that punctuation chars such as underscore ! % and backslash work in node names. % \def\setref#1#2{{% ! \atdummies \pdfmkdest{#1}% + % + \turnoffactive \dosetq{#1-title}{Ytitle}% \dosetq{#1-pg}{Ypagenumber}% \dosetq{#1-snt}{#2}% *************** *** 5594,5600 **** \ifpdf \leavevmode \getfilename{#4}% ! {\normalturnoffactive \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% goto file{\the\filename.pdf} name{#1}% --- 5960,5966 ---- \ifpdf \leavevmode \getfilename{#4}% ! {\turnoffactive \otherbackslash \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% goto file{\the\filename.pdf} name{#1}% *************** *** 5614,5695 **** % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. ! {\normalturnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% ! % [mynode], ! [\printednodename],\space ! % page 3 ! \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \endlink \endgroup} ! % \dosetq is the interface for calls from other macros ! % Use \normalturnoffactive so that punctuation chars such as underscore ! % and backslash work in node names. (\turnoffactive doesn't do \.) \def\dosetq#1#2{% {\let\folio=0% - \normalturnoffactive \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% ! \iflinks ! \next ! \fi }% } ! % \internalsetq {foo}{page} expands into ! % CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} ! % When the aux file is read, ' is the escape character ! ! \def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} ! ! % Things to be expanded by \internalsetq \def\Ypagenumber{\folio} - \def\Ytitle{\thissection} - \def\Ynothing{} - \def\Ysectionnumberandtype{% ! \ifnum\secno=0 \putwordChapter\xreftie\the\chapno % ! \else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % ! \else \ifnum \subsubsecno=0 % ! \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % ! \else % ! \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % ! \fi \fi \fi } \def\Yappendixletterandtype{% ! \ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% ! \else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % ! \else \ifnum \subsubsecno=0 % ! \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % ! \else % ! \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % ! \fi \fi \fi } ! ! \gdef\xreftie{'tie} % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined ! \let\linenumber = \empty % Non-3.0. \else \def\linenumber{\the\inputlineno:\space} \fi % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. ! \def\refx#1#2{% ! \expandafter\ifx\csname X#1\endcsname\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks --- 5980,6073 ---- % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. ! {\turnoffactive \otherbackslash % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% ! % output the `[mynode]' via a macro. ! \xrefprintnodename\printednodename ! % ! % But we always want a comma and a space: ! ,\space ! % ! % output the `page 3'. ! \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% \fi \endlink \endgroup} ! % This macro is called from \xrefX for the `[nodename]' part of xref ! % output. It's a separate macro only so it can be changed more easily, ! % since not square brackets don't work in some documents. Particularly ! % one that Bob is working on :). ! % ! \def\xrefprintnodename#1{[#1]} ! % \dosetq is called from \setref to do the actual \write (\iflinks). ! % \def\dosetq#1#2{% {\let\folio=0% \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% ! \iflinks \next \fi }% } ! % \internalsetq{foo}{page} expands into ! % CHARACTERS @xrdef{foo}{...expansion of \page...} ! \def\internalsetq#1#2{@xrdef{#1}{\csname #2\endcsname}} + % Things to be expanded by \internalsetq. + % \def\Ypagenumber{\folio} \def\Ytitle{\thissection} \def\Ynothing{} \def\Ysectionnumberandtype{% ! \ifnum\secno=0 ! \putwordChapter@tie \the\chapno ! \else \ifnum\subsecno=0 ! \putwordSection@tie \the\chapno.\the\secno ! \else \ifnum\subsubsecno=0 ! \putwordSection@tie \the\chapno.\the\secno.\the\subsecno ! \else ! \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno ! \fi\fi\fi ! } \def\Yappendixletterandtype{% ! \ifnum\secno=0 ! \putwordAppendix@tie @char\the\appendixno{}% ! \else \ifnum\subsecno=0 ! \putwordSection@tie @char\the\appendixno.\the\secno ! \else \ifnum\subsubsecno=0 ! \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno ! \else ! \putwordSection@tie ! @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno ! \fi\fi\fi ! } % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined ! \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{\the\inputlineno:\space} \fi % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. ! % \def\refx#1#2{% ! {% ! \indexnofonts ! \otherbackslash ! \expandafter\global\expandafter\let\expandafter\thisrefX ! \csname X#1\endcsname ! }% ! \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks *************** *** 5704,5722 **** \fi \else % It's defined, so just use it. ! \csname X#1\endcsname \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. % ! \def\xrdef#1{\begingroup ! % Reenable \ as an escape while reading the second argument. ! \catcode`\\ = 0 ! \afterassignment\endgroup ! \expandafter\gdef\csname X#1\endcsname ! } % Read the last existing aux file, if any. No error if none exists. \def\readauxfile{\begingroup --- 6082,6095 ---- \fi \else % It's defined, so just use it. ! \thisrefX \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. % ! \def\xrdef#1{\expandafter\gdef\csname X#1\endcsname} % Read the last existing aux file, if any. No error if none exists. \def\readauxfile{\begingroup *************** *** 5747,5755 **** \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other ! \catcode`\@=\other ! \catcode`\^=\other ! % It was suggested to define this as 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ --- 6120,6126 ---- \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other ! % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ *************** *** 5762,5767 **** --- 6133,6141 ---- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % + \catcode`\^=\other + % + % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other *************** *** 5773,5779 **** --- 6147,6155 ---- \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other + \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off + % % Make the characters 128-255 be printing characters {% \count 1=128 *************** *** 5783,5799 **** \ifnum \count 1<256 \loop \fi }% }% ! % The aux file uses ' as the escape (for now). % Turn off \ as an escape so we do not lose on % entries which were dumped with control sequences in their names. ! % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ % Reference to such entries still does not work the way one would wish, % but at least they do not bomb out when the aux file is read in. \catcode`\{=1 \catcode`\}=2 ! \catcode`\%=\other ! \catcode`\'=0 ! \catcode`\\=\other % \openin 1 \jobname.aux \ifeof 1 \else --- 6159,6176 ---- \ifnum \count 1<256 \loop \fi }% }% ! % % Turn off \ as an escape so we do not lose on % entries which were dumped with control sequences in their names. ! % For example, @xrdef{$\leq $-fun}{page ...} made by @defun ^^ % Reference to such entries still does not work the way one would wish, % but at least they do not bomb out when the aux file is read in. + \catcode`\\=\other + % + % @ is our escape character in .aux files. \catcode`\{=1 \catcode`\}=2 ! \catcode`\@=0 % \openin 1 \jobname.aux \ifeof 1 \else *************** *** 5827,5844 **** % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty ! \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf ! \footnotezzz }% % Don't bother with the trickery in plain.tex to not require the --- 6204,6222 ---- % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% + \let\indent=\ptexindent \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty ! \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf ! \dofootnote }% % Don't bother with the trickery in plain.tex to not require the *************** *** 5848,5857 **** % \parseargline fail inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % ! \long\gdef\footnotezzz{\insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox --- 6226,6242 ---- % \parseargline fail inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % ! % The start of the footnote looks usually like this: ! \gdef\startfootins{\insert\footins\bgroup} ! % ! % ... but this macro is redefined inside @multitable. ! % ! \gdef\dofootnote{% ! \startfootins % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. + \hsize=\pagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox *************** *** 5881,5892 **** \footstrut \futurelet\next\fo@t } - \def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t - \else\let\next\f@t\fi \next} - \def\f@@t{\bgroup\aftergroup\@foot\let\next} - \def\f@t#1{#1\@foot} - \def\@foot{\strut\par\egroup} - }%end \catcode `\@=11 % @| inserts a changebar to the left of the current line. It should --- 6266,6271 ---- *************** *** 5933,5940 **** \openin 1 = epsf.tex \ifeof 1 \else \closein 1 ! % Do not bother showing banner with post-v2.7 epsf.tex (available in ! % doc/epsf.tex until it shows up on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi --- 6312,6319 ---- \openin 1 = epsf.tex \ifeof 1 \else \closein 1 ! % Do not bother showing banner with epsf.tex v2.7k (available in ! % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi *************** *** 6059,6069 **** } % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; ! % 4) hoffset; 5) binding offset; 6) topskip. We also call ! % \setleading{\textleading}, so the caller should define \textleading. ! % The caller should also set \parskip. % ! \def\internalpagesizes#1#2#3#4#5#6{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip --- 6438,6450 ---- } % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; ! % 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) ! % physical page width. ! % ! % We also call \setleading{\textleading}, so the caller should define ! % \textleading. The caller should also set \parskip. % ! \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip *************** *** 6082,6109 **** \normaloffset = #4\relax \bindingoffset = #5\relax % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } - % Use `small' versions. - % - \def\smallenvironments{% - \let\smalldisplay = \smalldisplayx - \let\smallexample = \smalllispx - \let\smallformat = \smallformatx - \let\smalllisp = \smalllispx - } - % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. ! \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% }} % Use @smallbook to reset parameters for 7x9.5 (or so) format. --- 6463,6489 ---- \normaloffset = #4\relax \bindingoffset = #5\relax % + \ifpdf + \pdfpageheight #7\relax + \pdfpagewidth #8\relax + \fi + % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. ! \internalpagesizes{46\baselineskip}{6in}% ! {\voffset}{.25in}% ! {\bindingoffset}{36pt}% ! {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.5 (or so) format. *************** *** 6111,6136 **** \parskip = 2pt plus 1pt \textleading = 12pt % ! \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt - \deftypemargin = 0pt \defbodyindent = .5cm - \smallenvironments }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt ! \textleading = 12pt % ! \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% % \tolerance = 700 \hfuzz = 1pt }} % Use @afivepaper to print on European A5 paper. --- 6491,6532 ---- \parskip = 2pt plus 1pt \textleading = 12pt % ! \internalpagesizes{7.5in}{5in}% ! {\voffset}{.25in}% ! {\bindingoffset}{16pt}% ! {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt ! \textleading = 13.2pt % ! % Double-side printing via postscript on Laserjet 4050 ! % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. ! % To change the settings for a different printer or situation, adjust ! % \normaloffset until the front-side and back-side texts align. Then ! % do the same for \bindingoffset. You can set these for testing in ! % your texinfo source file like this: ! % @tex ! % \global\normaloffset = -6mm ! % \global\bindingoffset = 10mm ! % @end tex ! \internalpagesizes{51\baselineskip}{160mm} ! {\voffset}{\hoffset}% ! {\bindingoffset}{44pt}% ! {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. *************** *** 6140,6176 **** \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % ! \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt ! \contentsrightmargin = 0mm ! \deftypemargin = 0pt \defbodyindent = 2mm \tableindent = 12mm - % - \smallenvironments }} ! % A specific text layout, 24x15cm overall, intended for A4 paper. Top margin ! % 29mm, hence bottom margin 28mm, nominal side margin 3cm. \def\afourlatex{{\globaldefs = 1 - \textleading = 13.6pt - % \afourpaper ! \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% % ! % Must explicitly reset to 0 because we call \afourpaper, apparently, ! % although this does not entirely make sense. \globaldefs = 0 }} ! % Use @afourwide to print on European A4 paper in wide format. ! \def\afourwide{% \afourpaper ! \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% ! } % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, --- 6536,6575 ---- \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % ! \internalpagesizes{160mm}{120mm}% ! {\voffset}{\hoffset}% ! {\bindingoffset}{8pt}% ! {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt ! \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm }} ! % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper ! \internalpagesizes{237mm}{150mm}% ! {\voffset}{4.6mm}% ! {\bindingoffset}{7mm}% ! {297mm}{210mm}% % ! % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} ! % Use @afourwide to print on A4 paper in landscape format. ! \def\afourwide{{\globaldefs = 1 \afourpaper ! \internalpagesizes{241mm}{165mm}% ! {\voffset}{-2.95mm}% ! {\bindingoffset}{7mm}% ! {297mm}{210mm}% ! \globaldefs = 0 ! }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, *************** *** 6185,6191 **** \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % ! \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% }} % Set default to letter. --- 6584,6599 ---- \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % ! \dimen0 = #1 ! \advance\dimen0 by \voffset ! % ! \dimen2 = \hsize ! \advance\dimen2 by \normaloffset ! % ! \internalpagesizes{#1}{\hsize}% ! {\voffset}{\normaloffset}% ! {\bindingoffset}{44pt}% ! {\dimen0}{\dimen2}% }} % Set default to letter. *************** *** 6249,6255 **** \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. ! \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} \catcode`\|=\active \def|{{\tt\char124}} --- 6657,6663 ---- \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. ! \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active \def|{{\tt\char124}} *************** *** 6263,6270 **** \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix - %\catcode 27=\active - %\def^^[{$\diamondsuit$} % Set up an active definition for =, but don't enable it most of the time. {\catcode`\==\active --- 6671,6676 ---- *************** *** 6281,6324 **** \catcode`\@=0 ! % \rawbackslashxx output one backslash character in current font \global\chardef\rawbackslashxx=`\\ - %{\catcode`\\=\other - %@gdef@rawbackslashxx{\}} ! % \rawbackslash redefines \ as input to do \rawbackslashxx. {\catcode`\\=\active ! @gdef@rawbackslash{@let\=@rawbackslashxx }} % \normalbackslash outputs one backslash in fixed width font. \def\normalbackslash{{\tt\rawbackslashxx}} - % \catcode 17=0 % Define control-q \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. ! @def@turnoffactive{@let"=@normaldoublequote ! @let\=@realbackslash ! @let~=@normaltilde ! @let^=@normalcaret ! @let_=@normalunderscore ! @let|=@normalverticalbar ! @let<=@normalless ! @let>=@normalgreater ! @let+=@normalplus ! @let$=@normaldollar}%$ font-lock fix ! ! @def@normalturnoffactive{@let"=@normaldoublequote ! @let\=@normalbackslash ! @let~=@normaltilde ! @let^=@normalcaret ! @let_=@normalunderscore ! @let|=@normalverticalbar ! @let<=@normalless ! @let>=@normalgreater ! @let+=@normalplus ! @let$=@normaldollar}%$ font-lock fix % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. --- 6687,6732 ---- \catcode`\@=0 ! % \rawbackslashxx outputs one backslash character in current font, ! % as in \char`\\. \global\chardef\rawbackslashxx=`\\ ! % \rawbackslash defines an active \ to do \rawbackslashxx. ! % \otherbackslash defines an active \ to be a literal `\' character with ! % catcode other. {\catcode`\\=\active ! @gdef@rawbackslash{@let\=@rawbackslashxx} ! @gdef@otherbackslash{@let\=@realbackslash} ! } ! ! % \realbackslash is an actual character `\' with catcode other. ! {\catcode`\\=\other @gdef@realbackslash{\}} % \normalbackslash outputs one backslash in fixed width font. \def\normalbackslash{{\tt\rawbackslashxx}} \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. ! @def@turnoffactive{% ! @let"=@normaldoublequote ! @let\=@realbackslash ! @let~=@normaltilde ! @let^=@normalcaret ! @let_=@normalunderscore ! @let|=@normalverticalbar ! @let<=@normalless ! @let>=@normalgreater ! @let+=@normalplus ! @let$=@normaldollar %$ font-lock fix ! } ! ! % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of ! % the literal character `\'. (Thus, \ is not expandable when this is in ! % effect.) ! % ! @def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. From MAILER-DAEMON Wed Jul 16 16:56:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ctKC-0007C2-3Y for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ctK9-0007AX-8Y for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:29 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ctK0-00074F-LG for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:21 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ctJs-00073w-R2 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:12 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19ctIs-0002nS-9x for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:55:10 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Wed, 16 Jul 2003 16:55:10 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-defs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 20:56:30 -0000 Index: emacs/lisp/progmodes/cc-defs.el diff -c emacs/lisp/progmodes/cc-defs.el:1.22 emacs/lisp/progmodes/cc-defs.el:1.23 *** emacs/lisp/progmodes/cc-defs.el:1.22 Sat Jul 12 20:19:56 2003 --- emacs/lisp/progmodes/cc-defs.el Wed Jul 16 16:55:10 2003 *************** *** 105,111 **** ;;; Variables also used at compile time. ! (defconst c-version "5.30.3" "CC Mode version number.") (defconst c-version-sym (intern c-version)) --- 105,111 ---- ;;; Variables also used at compile time. ! (defconst c-version "5.30.4" "CC Mode version number.") (defconst c-version-sym (intern c-version)) *************** *** 864,882 **** ;; This function does not do any hidden buffer changes. (assq (car (c-intersect-lists list alist1)) alist2)) ! (defsubst c-langelem-col (langelem &optional preserve-point) ! "Convenience routine to return the column of LANGELEM's relpos. ! Leaves point at the relpos unless PRESERVE-POINT is non-nil. This function does not do any hidden buffer changes." ! (if (cdr langelem) ! (let ((here (point))) ! (goto-char (cdr langelem)) ! (prog1 (current-column) ! (if preserve-point ! (goto-char here)) ! )) ! 0)) (defsubst c-keep-region-active () ;; Do whatever is necessary to keep the region active in XEmacs. --- 864,920 ---- ;; This function does not do any hidden buffer changes. (assq (car (c-intersect-lists list alist1)) alist2)) ! (defsubst c-langelem-sym (langelem) ! "Return the syntactic symbol in LANGELEM. ! ! LANGELEM is a syntactic element, i.e. either a cons cell on the ! \"old\" form given as the first argument to lineup functions or a list ! on the \"new\" form as used in `c-syntactic-element'. ! ! This function does not do any hidden buffer changes." ! (car langelem)) ! ! (defsubst c-langelem-pos (langelem) ! "Return the (primary) anchor position in LANGELEM, or nil if there is none. ! ! LANGELEM is a syntactic element, i.e. either a cons cell on the ! \"old\" form given as the first argument to lineup functions or a list ! on the \"new\" form as used in `c-syntactic-element'. ! ! This function does not do any hidden buffer changes." ! (if (consp (cdr langelem)) ! (car-safe (cdr langelem)) ! (cdr langelem))) ! ! (defun c-langelem-col (langelem &optional preserve-point) ! "Return the column of the (primary) anchor position in LANGELEM. ! Leave point at that position unless PRESERVE-POINT is non-nil. ! ! LANGELEM is a syntactic element, i.e. either a cons cell on the ! \"old\" form given as the first argument to lineup functions or a list ! on the \"new\" form as used in `c-syntactic-element'. ! ! This function does not do any hidden buffer changes." ! (let ((pos (c-langelem-pos langelem)) ! (here (point))) ! (if pos ! (progn ! (goto-char pos) ! (prog1 (current-column) ! (if preserve-point ! (goto-char here)))) ! 0))) ! ! (defsubst c-langelem-2nd-pos (langelem) ! "Return the secondary position in LANGELEM, or nil if there is none. ! ! LANGELEM is a syntactic element, typically on the \"new\" form as used ! in `c-syntactic-element'. It may be on the \"old\" form that is used ! as the first argument to lineup functions, but then the returned value ! always will be nil. This function does not do any hidden buffer changes." ! (car-safe (cdr-safe (cdr-safe langelem)))) (defsubst c-keep-region-active () ;; Do whatever is necessary to keep the region active in XEmacs. From MAILER-DAEMON Wed Jul 16 16:57:15 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ctKk-0007ef-Iw for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:57:06 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ctKP-0007K3-M8 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ctKF-0007GM-Ql for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:36 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ctJV-00070r-5S for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:55:49 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19ctIU-0002ks-Nd for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:54:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Wed, 16 Jul 2003 16:54:46 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-engine.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 20:57:00 -0000 Index: emacs/lisp/progmodes/cc-engine.el diff -c emacs/lisp/progmodes/cc-engine.el:1.31 emacs/lisp/progmodes/cc-engine.el:1.32 *** emacs/lisp/progmodes/cc-engine.el:1.31 Sat Jul 12 20:20:27 2003 --- emacs/lisp/progmodes/cc-engine.el Wed Jul 16 16:54:46 2003 *************** *** 265,271 **** ;; situations to speed up recognition; it isn't mandatory that font ;; locking is in use. This variable is extended with the face in ;; `c-doc-face-name' when fontification is activated in cc-fonts.el. ! (defconst c-literal-faces '(font-lock-comment-face font-lock-string-face)) --- 265,271 ---- ;; situations to speed up recognition; it isn't mandatory that font ;; locking is in use. This variable is extended with the face in ;; `c-doc-face-name' when fontification is activated in cc-fonts.el. ! (defvar c-literal-faces '(font-lock-comment-face font-lock-string-face)) From MAILER-DAEMON Wed Jul 16 16:57:56 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ctKc-0007Z7-PC for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:58 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ctKC-0007C5-Ih for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:32 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ctJg-00073k-LQ for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:56:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ctJ6-0005ma-2K for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:55:24 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19ctI4-0002kC-CP for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:54:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Wed, 16 Jul 2003 16:54:20 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-langs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 20:56:57 -0000 Index: emacs/lisp/progmodes/cc-langs.el diff -c emacs/lisp/progmodes/cc-langs.el:1.24 emacs/lisp/progmodes/cc-langs.el:1.25 *** emacs/lisp/progmodes/cc-langs.el:1.24 Sat Jul 5 15:54:33 2003 --- emacs/lisp/progmodes/cc-langs.el Wed Jul 16 16:54:19 2003 *************** *** 268,274 **** ;; the constants in this file are evaluated. t (funcall (c-lang-const c-make-mode-syntax-table))) ! (c-lang-defconst make-c++-template-syntax-table ;; A variant of `c++-mode-syntax-table' that defines `<' and `>' as ;; parenthesis characters. Used temporarily when template argument ;; lists are parsed. Note that this encourages incorrect parsing of --- 268,274 ---- ;; the constants in this file are evaluated. t (funcall (c-lang-const c-make-mode-syntax-table))) ! (c-lang-defconst c++-make-template-syntax-table ;; A variant of `c++-mode-syntax-table' that defines `<' and `>' as ;; parenthesis characters. Used temporarily when template argument ;; lists are parsed. Note that this encourages incorrect parsing of *************** *** 282,289 **** (modify-syntax-entry ?> ")<" table) table))) (c-lang-defvar c++-template-syntax-table ! (and (c-lang-const make-c++-template-syntax-table) ! (funcall (c-lang-const make-c++-template-syntax-table)))) (c-lang-defconst c-identifier-syntax-modifications "A list that describes the modifications that should be done to the --- 282,289 ---- (modify-syntax-entry ?> ")<" table) table))) (c-lang-defvar c++-template-syntax-table ! (and (c-lang-const c++-make-template-syntax-table) ! (funcall (c-lang-const c++-make-template-syntax-table)))) (c-lang-defconst c-identifier-syntax-modifications "A list that describes the modifications that should be done to the *************** *** 882,900 **** (c-lang-defvar comment-start-skip (c-lang-const comment-start-skip) 'dont-doc) ! (c-lang-defconst syntactic-ws-start "Regexp matching any sequence that can start syntactic whitespace. The only uncertain case is '#' when there are cpp directives." t "[ \n\t\r\v\f#]\\|/[/*]\\|\\\\[\n\r]" awk "[ \n\t\r\v\f#]\\|\\\\[\n\r]") ! (c-lang-defvar c-syntactic-ws-start (c-lang-const syntactic-ws-start) 'dont-doc) ! (c-lang-defconst syntactic-ws-end "Regexp matching any single character that might end syntactic whitespace." t "[ \n\t\r\v\f/]" awk "[ \n\t\r\v\f]") ! (c-lang-defvar c-syntactic-ws-end (c-lang-const syntactic-ws-end) 'dont-doc) (c-lang-defconst c-nonwhite-syntactic-ws --- 882,900 ---- (c-lang-defvar comment-start-skip (c-lang-const comment-start-skip) 'dont-doc) ! (c-lang-defconst c-syntactic-ws-start "Regexp matching any sequence that can start syntactic whitespace. The only uncertain case is '#' when there are cpp directives." t "[ \n\t\r\v\f#]\\|/[/*]\\|\\\\[\n\r]" awk "[ \n\t\r\v\f#]\\|\\\\[\n\r]") ! (c-lang-defvar c-syntactic-ws-start (c-lang-const c-syntactic-ws-start) 'dont-doc) ! (c-lang-defconst c-syntactic-ws-end "Regexp matching any single character that might end syntactic whitespace." t "[ \n\t\r\v\f/]" awk "[ \n\t\r\v\f]") ! (c-lang-defvar c-syntactic-ws-end (c-lang-const c-syntactic-ws-end) 'dont-doc) (c-lang-defconst c-nonwhite-syntactic-ws From MAILER-DAEMON Wed Jul 16 17:02:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ctPr-0005mN-TM for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:02:23 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ctPg-0005X5-8J for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:02:12 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ctPY-0005Dx-G8 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:02:04 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ctOu-0004p2-PK for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:01:24 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19ctNu-0002wX-F3 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:00:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Wed, 16 Jul 2003 17:00:22 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 21:02:21 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5285 emacs/lisp/ChangeLog:1.5286 *** emacs/lisp/ChangeLog:1.5285 Mon Jul 14 17:48:18 2003 --- emacs/lisp/ChangeLog Wed Jul 16 17:00:21 2003 *************** *** 1,3 **** --- 1,18 ---- + 2003-07-16 Martin Stjernholm + + * progmodes/cc-defs.el (c-langelem-sym, c-langelem-pos, + c-langelem-2nd-pos): Added accessor functions for syntactic + elements. + + 2003-07-16 Martin Stjernholm + + * progmodes/cc-engine.el (c-literal-faces): Declare as a variable + since it might be modified. + + * progmodes/cc-langs.el: (c++-make-template-syntax-table, + c-syntactic-ws-start, c-syntactic-ws-end): Gave more consistent + names to these language constants. + 2003-07-15 Kim F. Storm * apropos.el (apropos-sort-by-scores): Rename from apropos-show-scores. From MAILER-DAEMON Wed Jul 16 17:02:52 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ctPx-00061m-SJ for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:02:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ctPP-00053W-Eb for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:01:55 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ctOn-0004kB-AJ for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:01:17 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ctOW-0004dy-GO for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:01:00 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19ctNW-0002tr-3e for emacs-diffs@gnu.org; Wed, 16 Jul 2003 16:59:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Wed, 16 Jul 2003 16:59:58 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/cc-vars.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 21:02:28 -0000 Index: emacs/lisp/progmodes/cc-vars.el diff -c emacs/lisp/progmodes/cc-vars.el:1.30 emacs/lisp/progmodes/cc-vars.el:1.31 *** emacs/lisp/progmodes/cc-vars.el:1.30 Thu Jul 3 08:30:59 2003 --- emacs/lisp/progmodes/cc-vars.el Wed Jul 16 16:59:57 2003 *************** *** 1504,1517 **** (cc-bytecomp-defvar c-syntactic-context) (defvar c-syntactic-context) ;; Variable containing the syntactic analysis list during indentation. ! ;; It is a list with one element for each found syntactic symbol. ! ;; Each element is a list with the symbol name in the first position, ! ;; followed by zero or more elements containing any additional info ! ;; associated with the syntactic symbol. Specifically, the second ! ;; element is the relpos (a.k.a. anchor position), or nil if there ! ;; isn't any. See the comments in the `c-offsets-alist' variable for ! ;; more detailed info about the data each syntactic symbol provides. ! ;; ;; This is always bound dynamically. It should never be set ;; statically (e.g. with `setq'). --- 1504,1512 ---- (cc-bytecomp-defvar c-syntactic-context) (defvar c-syntactic-context) ;; Variable containing the syntactic analysis list during indentation. ! ;; It is a list with one element for each found syntactic symbol. See ! ;; `c-syntactic-element' for further info. ! ;; ;; This is always bound dynamically. It should never be set ;; statically (e.g. with `setq'). *************** *** 1519,1525 **** (defvar c-syntactic-element) ;; Variable containing the info regarding the current syntactic ;; element during calls to the lineup functions. The value is one of ! ;; the elements in the list in `c-syntactic-context'. ;; ;; This is always bound dynamically. It should never be set ;; statically (e.g. with `setq'). --- 1514,1530 ---- (defvar c-syntactic-element) ;; Variable containing the info regarding the current syntactic ;; element during calls to the lineup functions. The value is one of ! ;; the elements in the list in `c-syntactic-context' and is a list ! ;; with the symbol name in the first position, followed by zero or ! ;; more elements containing any additional info associated with the ! ;; syntactic symbol. There are accessor functions `c-langelem-sym', ! ;; `c-langelem-pos', `c-langelem-col', and `c-langelem-2nd-pos' to ! ;; access the list. ! ;; ! ;; Specifically, the element returned by `c-langelem-pos' is the ! ;; relpos (a.k.a. anchor position), or nil if there isn't any. See ! ;; the comments in the `c-offsets-alist' variable for more detailed ! ;; info about the data each syntactic symbol provides. ;; ;; This is always bound dynamically. It should never be set ;; statically (e.g. with `setq'). From MAILER-DAEMON Wed Jul 16 17:43:25 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cu3L-0004Wm-0y for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:43:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cu2y-0003Z8-S8 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:42:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cu2s-0003Nd-Qm for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:42:44 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cu2q-0003Jh-AF for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:42:40 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19cu1m-00071x-4i for emacs-diffs@gnu.org; Wed, 16 Jul 2003 17:41:34 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Wed, 16 Jul 2003 17:41:34 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 21:43:09 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5286 emacs/lisp/ChangeLog:1.5287 *** emacs/lisp/ChangeLog:1.5286 Wed Jul 16 17:00:21 2003 --- emacs/lisp/ChangeLog Wed Jul 16 17:41:33 2003 *************** *** 1,16 **** 2003-07-16 Martin Stjernholm ! * progmodes/cc-defs.el (c-langelem-sym, c-langelem-pos, ! c-langelem-2nd-pos): Added accessor functions for syntactic ! elements. 2003-07-16 Martin Stjernholm * progmodes/cc-engine.el (c-literal-faces): Declare as a variable since it might be modified. ! * progmodes/cc-langs.el: (c++-make-template-syntax-table, ! c-syntactic-ws-start, c-syntactic-ws-end): Gave more consistent names to these language constants. 2003-07-15 Kim F. Storm --- 1,25 ---- + 2003-07-16 Stefan Monnier + + * info.el (Info-menu-entry-name-re): Allow newlines in + menu entry names. + + * emacs-lisp/syntax.el (syntax-ppss-flush-cache): Rename from + syntax-ppss-after-change-function. + (syntax-ppss-after-change-function): New alias. Update uses. + (syntax-ppss): Catch the case where the buffer is narrowed. + 2003-07-16 Martin Stjernholm ! * progmodes/cc-defs.el (c-langelem-sym, c-langelem-pos) ! (c-langelem-2nd-pos): Add accessor functions for syntactic elements. 2003-07-16 Martin Stjernholm * progmodes/cc-engine.el (c-literal-faces): Declare as a variable since it might be modified. ! * progmodes/cc-langs.el: (c++-make-template-syntax-table) ! (c-syntactic-ws-start, c-syntactic-ws-end): Give more consistent names to these language constants. 2003-07-15 Kim F. Storm *************** *** 25,31 **** 2003-07-13 Juanma Barranquero ! * frame.el (modify-all-frames-parameters): Reinstalled (copyright papers received). 2003-07-13 Karl Eichwalder --- 34,40 ---- 2003-07-13 Juanma Barranquero ! * frame.el (modify-all-frames-parameters): Reinstall (copyright papers received). 2003-07-13 Karl Eichwalder *************** *** 35,42 **** 2003-07-13 Masayuki Ataka (tiny change) ! * textmodes/texinfo.el (texinfo-section-list): Append ! appendixsection; a synonym for appendixsec. 2003-07-13 Jari Aalto --- 44,51 ---- 2003-07-13 Masayuki Ataka (tiny change) ! * textmodes/texinfo.el (texinfo-section-list): ! Append appendixsection; a synonym for appendixsec. 2003-07-13 Jari Aalto *************** *** 85,100 **** 2003-07-11 Glenn Morris * calendar/timeclock.el (timeclock-relative) ! (timeclock-ask-before-exiting, timeclock-use-display-time): Doc ! changes. (timeclock-modeline-display): Give a message if `timeclock-use-display-time' is non-nil but `display-time-mode' is not active. 2003-07-11 Kenichi Handa ! * international/mule-cmds.el (set-language-environment): Set ! current-language-environment to the correct string. 2003-07-10 Vinicius Jose Latorre --- 94,109 ---- 2003-07-11 Glenn Morris * calendar/timeclock.el (timeclock-relative) ! (timeclock-ask-before-exiting, timeclock-use-display-time): ! Doc changes. (timeclock-modeline-display): Give a message if `timeclock-use-display-time' is non-nil but `display-time-mode' is not active. 2003-07-11 Kenichi Handa ! * international/mule-cmds.el (set-language-environment): ! Set current-language-environment to the correct string. 2003-07-10 Vinicius Jose Latorre *************** *** 114,120 **** (timeclock-day-over-hook, timeclock-workday-remaining) (timeclock-status-string, timeclock-when-to-leave) (timeclock-when-to-leave-string, timeclock-log-data) ! (timeclock-find-discrep, timeclock-day-base) (timeclock-generate-report, timeclock-visit-timelog): Doc fix. (timeclock-modeline-display): Set the variable `timeclock-modeline-display'. --- 123,129 ---- (timeclock-day-over-hook, timeclock-workday-remaining) (timeclock-status-string, timeclock-when-to-leave) (timeclock-when-to-leave-string, timeclock-log-data) ! (timeclock-find-discrep, timeclock-day-base) (timeclock-generate-report, timeclock-visit-timelog): Doc fix. (timeclock-modeline-display): Set the variable `timeclock-modeline-display'. *************** *** 145,152 **** 2003-07-08 Martin Stjernholm ! * progmodes/cc-fonts.el (javadoc-font-lock-keywords, ! autodoc-font-lock-keywords): Don't byte compile on font lock initialization when running from byte compiled files. 2003-07-08 Alan Mackenzie --- 154,161 ---- 2003-07-08 Martin Stjernholm ! * progmodes/cc-fonts.el (javadoc-font-lock-keywords) ! (autodoc-font-lock-keywords): Don't byte compile on font lock initialization when running from byte compiled files. 2003-07-08 Alan Mackenzie *************** *** 156,163 **** 2003-07-08 Martin Stjernholm ! * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist, ! c-lang-variable-inits, c-lang-variable-inits-tail): The values of these are changed, so declare them as variables and not constants. 2003-07-08 Markus Rost --- 165,172 ---- 2003-07-08 Martin Stjernholm ! * progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist) ! (c-lang-variable-inits, c-lang-variable-inits-tail): The values of these are changed, so declare them as variables and not constants. 2003-07-08 Markus Rost *************** *** 183,197 **** * man.el (Man-name-regexp): Match + as part of name. ! * simple.el (visible-mode): Renamed from vis-mode. (vis-mode-saved-buffer-invisibility-spec): Doc fix. * simple.el (current-word): New arg REALLY-WORD specifies don't include punctuation chars. * emacs-lisp/debug.el (debug, debugger-env-macro): ! Use with-no-warnings while accessing and binding ! unread-command-char. * international/mule-cmds.el (set-display-table-and-terminal-coding-system): Use explicit loop instead of calling standard-display-default. --- 192,205 ---- * man.el (Man-name-regexp): Match + as part of name. ! * simple.el (visible-mode): Rename from vis-mode. (vis-mode-saved-buffer-invisibility-spec): Doc fix. * simple.el (current-word): New arg REALLY-WORD specifies don't include punctuation chars. * emacs-lisp/debug.el (debug, debugger-env-macro): ! Use with-no-warnings while accessing and binding unread-command-char. * international/mule-cmds.el (set-display-table-and-terminal-coding-system): Use explicit loop instead of calling standard-display-default. *************** *** 1676,1688 **** 2003-06-30 Richard M. Stallman - * progmodes/compile.el (compile-auto-highlight): Default now t. - (compile): Doc fix. - - * progmodes/compile.el (compilation-next-error): Fix previous change. - - * emacs-lisp/debug.el (debug): - * loadup.el (pure-space-overflow): Set it if overflow. * startup.el (pure-space-overflow): New variable. --- 1684,1689 ---- *************** *** 1788,1801 **** xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. * international/ucs-tables.el (ucs-unify-8859, ucs-fragment-8859): ! Adjusted for the name change: xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. * international/mule-conf.el: Adjusted for the name change: xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. * international/mule-cmds.el (reset-language-environment): ! Adjusted for the name change: xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. 2003-06-20 Luc Teirlinck --- 1789,1802 ---- xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. * international/ucs-tables.el (ucs-unify-8859, ucs-fragment-8859): ! Adjust for the name change: xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. * international/mule-conf.el: Adjusted for the name change: xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. * international/mule-cmds.el (reset-language-environment): ! Adjust for the name change: xxx-utf-16-{le,be} -> xxx-utf-16{le,be}. 2003-06-20 Luc Teirlinck *************** *** 2124,2133 **** 2003-06-05 Takaaki Ota ! * textmodes/table.el (table-cell-horizontal-chars): Renamed from table-cell-horizontal-char. Now a string value instead of a character. ?= is allowed for horizontal boundary as well as ?-. ! (table-command-remap-alist, table-command-list): Changed defconst to defvar because the value is modified. (table-insert, table-insert-row, table-insert-column) (table-recognize, table-recognize-region, table-widen-cell) --- 2125,2134 ---- 2003-06-05 Takaaki Ota ! * textmodes/table.el (table-cell-horizontal-chars): Rename from table-cell-horizontal-char. Now a string value instead of a character. ?= is allowed for horizontal boundary as well as ?-. ! (table-command-remap-alist, table-command-list): Change defconst to defvar because the value is modified. (table-insert, table-insert-row, table-insert-column) (table-recognize, table-recognize-region, table-widen-cell) *************** *** 2487,2493 **** 2003-06-01 Michael Kifer ! * desktop.el (desktop-create-buffer): Added (desktop-first-buffer) to the let-statement to avoid the startup error that desktop-first-buffer is undefined. --- 2488,2494 ---- 2003-06-01 Michael Kifer ! * desktop.el (desktop-create-buffer): Add (desktop-first-buffer) to the let-statement to avoid the startup error that desktop-first-buffer is undefined. *************** *** 2555,2561 **** 2003-05-31 Juanma Barranquero * misc.el (mark-beginning-of-buffer, mark-end-of-buffer) ! (upcase-char, forward-to-word, backward-to-word): Moved from unused.el. * unused.el: Deleted (contents moved to misc.el). --- 2556,2562 ---- 2003-05-31 Juanma Barranquero * misc.el (mark-beginning-of-buffer, mark-end-of-buffer) ! (upcase-char, forward-to-word, backward-to-word): Move from unused.el. * unused.el: Deleted (contents moved to misc.el). *************** *** 2666,2675 **** 2003-05-29 Kenichi Handa * international/mule.el (ctext-non-standard-encodings-alist): ! Renamed from non-standard-icccm-encodings-alist. (ctext-non-standard-encodings-regexp): New variable (ctext-post-read-conversion): Full rewrite. ! (ctext-non-standard-designations-alist): Renamed from non-standard-designations-alist. (ctext-pre-write-conversion): Full rewrite. --- 2667,2676 ---- 2003-05-29 Kenichi Handa * international/mule.el (ctext-non-standard-encodings-alist): ! Rename from non-standard-icccm-encodings-alist. (ctext-non-standard-encodings-regexp): New variable (ctext-post-read-conversion): Full rewrite. ! (ctext-non-standard-designations-alist): Rename from non-standard-designations-alist. (ctext-pre-write-conversion): Full rewrite. *************** *** 2720,2726 **** of local-write-file-hooks. Use make-local-variable to make it local. * descr-text.el (describe-char-unicode-data): New dummy definition. ! (unicode-data): Commented out since we can't use UnicodeData.txt as is. (describe-char-unicodedata-file): Variable renamed and commented out. * faces.el (set-face-attribute): Set face-modified prop to t --- 2721,2727 ---- of local-write-file-hooks. Use make-local-variable to make it local. * descr-text.el (describe-char-unicode-data): New dummy definition. ! (unicode-data): Comment out since we can't use UnicodeData.txt as is. (describe-char-unicodedata-file): Variable renamed and commented out. * faces.el (set-face-attribute): Set face-modified prop to t *************** *** 3018,3051 **** (check-ispell-version): Now the alias for `ispell-check-version'. (ispell-message-fcc-skip): New variable that determines if and when to query about saving Fcc copy of message if an attachment is large. ! (ispell-skip-html): Declared buffer-local. (ispell-local-dictionary-alist): Docstring expanded. Tag name changed from "Character Set" to "Coding System". ! (ispell-dictionary-alist-1): Removed redundant command-line option to load brasileiro, british, and castellano dictionary files. ! (ispell-dictionary-alist-2): Removed redundant command-line option to load czech dictionary file. ! (ispell-dictionary-alist-3): Moved francais-tex here. ! (ispell-dictionary-alist-4): Removed german and german8 dictionaries. The deutsch ones are the correct definitions. `nederlands' and `nederlands8' dictionaries moved here. (ispell-dictionary-alist-5): `polish' and `portugues' dictionaries moved here. Removed redundant command-line option to `norsk' and `portugues'. ! (ispell-dictionary-alist-6): Removed redundant command-line option to load `russian' and `slovak' dictionary files. (ispell-dictionary-alist): Tag name changed from "Character Set" to "Coding System". ! (ispell-version): Updated to 3.6. (ispell-library-directory): Calls non-deprecated function. (ispell-valid-dictionary-list): New function returning all valid dictionaries on machine. (ispell-checking-message): Documentation string improved. ! (ispell-skip-region-alist): Added uuencoded and postscript region ! skipping. Improved http/e-mail/file regexp to not match `/.\w'. (ispell-html-skip-alists): New variable for html region support. ! (ispell-send-string): Removed redundant xemacs check. ! (ispell-word): Fix spelling error in documentation string, added extent information to support highlighting in ispell-minor-mode. (ispell-command-loop): Disable horizontal scrollbar in XEmacs choices buffer. --- 3019,3052 ---- (check-ispell-version): Now the alias for `ispell-check-version'. (ispell-message-fcc-skip): New variable that determines if and when to query about saving Fcc copy of message if an attachment is large. ! (ispell-skip-html): Declare buffer-local. (ispell-local-dictionary-alist): Docstring expanded. Tag name changed from "Character Set" to "Coding System". ! (ispell-dictionary-alist-1): Remove redundant command-line option to load brasileiro, british, and castellano dictionary files. ! (ispell-dictionary-alist-2): Remove redundant command-line option to load czech dictionary file. ! (ispell-dictionary-alist-3): Move francais-tex here. ! (ispell-dictionary-alist-4): Remove german and german8 dictionaries. The deutsch ones are the correct definitions. `nederlands' and `nederlands8' dictionaries moved here. (ispell-dictionary-alist-5): `polish' and `portugues' dictionaries moved here. Removed redundant command-line option to `norsk' and `portugues'. ! (ispell-dictionary-alist-6): Remove redundant command-line option to load `russian' and `slovak' dictionary files. (ispell-dictionary-alist): Tag name changed from "Character Set" to "Coding System". ! (ispell-version): Update to 3.6. (ispell-library-directory): Calls non-deprecated function. (ispell-valid-dictionary-list): New function returning all valid dictionaries on machine. (ispell-checking-message): Documentation string improved. ! (ispell-skip-region-alist): Add uuencoded and postscript region ! skipping. Improve http/e-mail/file regexp to not match `/.\w'. (ispell-html-skip-alists): New variable for html region support. ! (ispell-send-string): Remove redundant xemacs check. ! (ispell-word): Fix spelling error in documentation string, add extent information to support highlighting in ispell-minor-mode. (ispell-command-loop): Disable horizontal scrollbar in XEmacs choices buffer. *************** *** 3058,3066 **** (ispell-region): Add support for MIME region skipping and Fcc message query for large attachments. (ispell-begin-skip-region-regexp): Add documentation string. ! Added message support and cleaned up code for generic and html regions. (ispell-begin-skip-region): Function is now requires alist argument. ! (ispell-begin-tex-skip-regexp): Added comments and support improved html and message regions. (ispell-skip-region-list): New function for MIME and region skipping. (ispell-tex-arg-end): Add documentation string. --- 3059,3067 ---- (ispell-region): Add support for MIME region skipping and Fcc message query for large attachments. (ispell-begin-skip-region-regexp): Add documentation string. ! Add message support and clean up code for generic and html regions. (ispell-begin-skip-region): Function is now requires alist argument. ! (ispell-begin-tex-skip-regexp): Add comments and support improved html and message regions. (ispell-skip-region-list): New function for MIME and region skipping. (ispell-tex-arg-end): Add documentation string. *************** *** 3075,3081 **** (ispell-mime-skip-part): New function supporting MIME. (ispell-message): Add MIME support. (ispell-buffer-local-parsing): Variable `ispell-skip-html' now local. ! (ispell-buffer-local-dict): Fixed bug for detecting and reloading new dictionary. 2003-05-22 Stephen J. Turnbull --- 3076,3082 ---- (ispell-mime-skip-part): New function supporting MIME. (ispell-message): Add MIME support. (ispell-buffer-local-parsing): Variable `ispell-skip-html' now local. ! (ispell-buffer-local-dict): Fix bug for detecting and reloading new dictionary. 2003-05-22 Stephen J. Turnbull *************** *** 5412,5418 **** * language/european.el (iso-latin-1): Definition of this coding system moved to mule-conf.el. ! * international/mule-conf.el (iso-latin-1): Moved from european.el. * term/x-win.el (x-select-text): Don't set a text containing --- 5413,5419 ---- * language/european.el (iso-latin-1): Definition of this coding system moved to mule-conf.el. ! * international/mule-conf.el (iso-latin-1): Move from european.el. * term/x-win.el (x-select-text): Don't set a text containing *************** *** 5884,5890 **** unless it is used for a search path. In GNU, the word `path' is reserved for search paths. ! * net/tramp.el (tramp-send-string, tramp-send-region): Removed. (tramp-send-string): New function. Takes over the role of the functions above, in order to have a unique place handling `tramp-chunksize'. Same implementation as `tramp-send-region'. --- 5885,5891 ---- unless it is used for a search path. In GNU, the word `path' is reserved for search paths. ! * net/tramp.el (tramp-send-string, tramp-send-region): Remove. (tramp-send-string): New function. Takes over the role of the functions above, in order to have a unique place handling `tramp-chunksize'. Same implementation as `tramp-send-region'. *************** *** 19420,19426 **** (vc-cvs-retrieve-snapshot): Set file-property sticky-tag. (vc-cvs-valid-symbolic-tag-name-p): New function. (vc-cvs-parse-sticky-tag): New function. ! (vc-cvs-parse-entry): Added parsing of sticky tags. 2002-02-21 Per Abrahamsen --- 19421,19427 ---- (vc-cvs-retrieve-snapshot): Set file-property sticky-tag. (vc-cvs-valid-symbolic-tag-name-p): New function. (vc-cvs-parse-sticky-tag): New function. ! (vc-cvs-parse-entry): Add parsing of sticky tags. 2002-02-21 Per Abrahamsen From MAILER-DAEMON Wed Jul 16 18:19:34 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19cubq-0007Yz-KC for mharc-emacs-diffs@gnu.org; Wed, 16 Jul 2003 18:18:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19cubn-0007T0-Co for emacs-diffs@gnu.org; Wed, 16 Jul 2003 18:18:47 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19cubl-0007Pc-78 for emacs-diffs@gnu.org; Wed, 16 Jul 2003 18:18:45 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19cubk-0007OD-5A for emacs-diffs@gnu.org; Wed, 16 Jul 2003 18:18:44 -0400 Received: from karl by subversions.gnu.org with local (Exim 4.20) id 19cuaj-0000oF-6a for emacs-diffs@gnu.org; Wed, 16 Jul 2003 18:17:41 -0400 To: emacs-diffs@gnu.org Message-Id: From: Karl Berry Date: Wed, 16 Jul 2003 18:17:41 -0400 Subject: [Emacs-diffs] Changes to emacs/man/info.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: karl@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jul 2003 22:18:48 -0000 Index: emacs/man/info.texi diff -c emacs/man/info.texi:1.32 emacs/man/info.texi:1.33 *** emacs/man/info.texi:1.32 Mon Jul 7 23:39:24 2003 --- emacs/man/info.texi Wed Jul 16 18:17:40 2003 *************** *** 6,18 **** @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.32 2003/07/08 03:39:24 teirllm Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU documentation system. ! Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. @quotation --- 6,18 ---- @syncodeindex vr cp @syncodeindex ky cp @comment %**end of header ! @comment $Id: info.texi,v 1.33 2003/07/16 22:17:40 karl Exp $ @copying This file describes how to use Info, the on-line, menu-driven GNU documentation system. ! Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. @quotation *************** *** 782,794 **** other words another ``manual''), or, on occasion, even a file on a remote machine (although Info files distributed with Emacs or the stand-alone Info avoid using remote links). Such a cross reference ! looks like this: @xref{Overview,,,texinfo}. (After following this ! link, type @kbd{l} to get back to this node.) Here the name ! @samp{texinfo} between parentheses (shown in the stand-alone version) ! refers to the file name. This file name appears in cross references ! and node names if it differs from the current file. In Emacs, the ! file name is hidden (along with other text). (Use @kbd{M-x ! visible-mode} to show or hide it.) The remainder of this node applies only to the Emacs version. If you use the stand-alone version, you can type @kbd{n} immediately. --- 782,795 ---- other words another ``manual''), or, on occasion, even a file on a remote machine (although Info files distributed with Emacs or the stand-alone Info avoid using remote links). Such a cross reference ! looks like this: @xref{Top,, Overview of Texinfo, texinfo, Texinfo: ! The GNU Documentation Format}. (After following this link, type ! @kbd{l} to get back to this node.) Here the name @samp{texinfo} ! between parentheses (shown in the stand-alone version) refers to the ! file name. This file name appears in cross references and node names ! if it differs from the current file. In Emacs, the file name is ! hidden (along with other text). (Use @kbd{M-x visible-mode} to show ! or hide it.) The remainder of this node applies only to the Emacs version. If you use the stand-alone version, you can type @kbd{n} immediately. From MAILER-DAEMON Thu Jul 17 06:23:05 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19d5tz-0003Vu-Os for mharc-emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:22:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19d5sU-00033M-Qt for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:20:46 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19d5qj-0001lY-B1 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:18:57 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19d5ny-0001Gs-Uh for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:16:06 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19d5my-0002oJ-D7 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:15:04 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Thu, 17 Jul 2003 06:15:04 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xterm.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 10:22:17 -0000 Index: emacs/src/xterm.c diff -c emacs/src/xterm.c:1.801 emacs/src/xterm.c:1.802 *** emacs/src/xterm.c:1.801 Sun Jul 13 13:27:51 2003 --- emacs/src/xterm.c Thu Jul 17 06:15:04 2003 *************** *** 8140,8146 **** /* This is XPointer in XFree86 but (XPointer *) on Tru64, at least, hence the configure test. */ ! (XPointer) xim_inst); #else /* not HAVE_X11R6_XIM */ dpyinfo->xim = NULL; xim_open_dpy (dpyinfo, resource_name); --- 8140,8146 ---- /* This is XPointer in XFree86 but (XPointer *) on Tru64, at least, hence the configure test. */ ! (XRegisterIMInstantiateCallback_arg6) xim_inst); #else /* not HAVE_X11R6_XIM */ dpyinfo->xim = NULL; xim_open_dpy (dpyinfo, resource_name); From MAILER-DAEMON Thu Jul 17 06:24:16 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19d5uF-0003hG-8T for mharc-emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:22:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19d5tI-0003Dk-D8 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:21:36 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19d5pj-0001Pw-RG for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:17:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19d5o9-0001HA-O8 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:16:17 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19d5n9-0002oj-Gq for emacs-diffs@gnu.org; Thu, 17 Jul 2003 06:15:15 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Thu, 17 Jul 2003 06:15:15 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 10:22:33 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3318 emacs/src/ChangeLog:1.3319 *** emacs/src/ChangeLog:1.3318 Wed Jul 16 10:40:03 2003 --- emacs/src/ChangeLog Thu Jul 17 06:15:15 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-17 Richard M. Stallman + + * xterm.c (xim_initialize): Redo 6/24 change. + 2003-07-15 Stefan Monnier * buffer.c (copy_overlays): Use EMACS_INT for positions. From MAILER-DAEMON Thu Jul 17 07:46:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19d7Co-0000Jp-9d for mharc-emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:45:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19d7Be-0007lq-MH for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:44:38 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19d7BL-0007U8-H1 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:44:19 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19d78r-0006O3-Tk for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:41:45 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19d77r-0002El-Lp for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:40:43 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 17 Jul 2003 07:40:43 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/awk-mode.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 11:45:48 -0000 From MAILER-DAEMON Thu Jul 17 07:48:28 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19d7EV-0001r6-6Q for mharc-emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:47:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19d7Dv-0001AA-3S for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:46:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19d7Bu-00088I-N7 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:44:55 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19d78r-0006O2-Tm for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:41:45 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19d77r-0002Eh-KK for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:40:43 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 17 Jul 2003 07:40:43 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/obsolete/awk-mode.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 11:47:31 -0000 From MAILER-DAEMON Thu Jul 17 07:52:55 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19d7GL-0004PB-AJ for mharc-emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:49:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19d7Bb-0007iJ-I8 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:44:35 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19d7BM-0007VN-96 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:44:20 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19d78r-0006O1-Tj for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:41:45 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19d77r-0002Ee-Ik for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:40:43 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 17 Jul 2003 07:40:43 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 11:49:27 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5287 emacs/lisp/ChangeLog:1.5288 *** emacs/lisp/ChangeLog:1.5287 Wed Jul 16 17:41:33 2003 --- emacs/lisp/ChangeLog Thu Jul 17 07:40:42 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-17 Martin Stjernholm + + * progmodes/awk-mode.el: Obsoleted by the AWK support in CC Mode - + moved to the directory obsolete. + 2003-07-16 Stefan Monnier * info.el (Info-menu-entry-name-re): Allow newlines in From MAILER-DAEMON Thu Jul 17 07:59:19 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19d7Pg-0000Ja-TU for mharc-emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:59:08 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19d7PY-0008Ve-Rt for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:59:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19d7PB-0007z3-EK for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:58:58 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19d7P9-0007ws-P4 for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:58:35 -0400 Received: from mast by subversions.gnu.org with local (Exim 4.20) id 19d7O8-0002fR-SC for emacs-diffs@gnu.org; Thu, 17 Jul 2003 07:57:32 -0400 To: emacs-diffs@gnu.org Message-Id: From: Martin Stjernholm Date: Thu, 17 Jul 2003 07:57:32 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/loaddefs.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: mast@lysator.liu.se List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Jul 2003 11:59:03 -0000 Index: emacs/lisp/loaddefs.el diff -c emacs/lisp/loaddefs.el:2.92 emacs/lisp/loaddefs.el:2.93 *** emacs/lisp/loaddefs.el:2.92 Sat Jun 21 19:59:13 2003 --- emacs/lisp/loaddefs.el Thu Jul 17 07:57:30 2003 *************** *** 4,10 **** ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" ! ;;;;;; "play/5x5.el" (15935 48681)) ;;; Generated autoloads from play/5x5.el (autoload (quote 5x5) "5x5" "\ --- 4,10 ---- ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best ;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5" ! ;;;;;; "play/5x5.el" (15941 42963)) ;;; Generated autoloads from play/5x5.el (autoload (quote 5x5) "5x5" "\ *************** *** 64,70 **** ;;;*** ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el" ! ;;;;;; (16065 23055)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload (quote ada-add-extensions) "ada-mode" "\ --- 64,70 ---- ;;;*** ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el" ! ;;;;;; (16070 35808)) ;;; Generated autoloads from progmodes/ada-mode.el (autoload (quote ada-add-extensions) "ada-mode" "\ *************** *** 126,132 **** ;;;*** ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el" ! ;;;;;; (16053 28656)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload (quote ada-header) "ada-stmt" "\ --- 126,132 ---- ;;;*** ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el" ! ;;;;;; (16054 60750)) ;;; Generated autoloads from progmodes/ada-stmt.el (autoload (quote ada-header) "ada-stmt" "\ *************** *** 137,143 **** ;;;*** ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el" ! ;;;;;; (16065 24704)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload (quote ada-find-file) "ada-xref" "\ --- 137,143 ---- ;;;*** ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el" ! ;;;;;; (16070 35808)) ;;; Generated autoloads from progmodes/ada-xref.el (autoload (quote ada-find-file) "ada-xref" "\ *************** *** 152,158 **** ;;;;;; change-log-mode add-change-log-entry-other-window add-change-log-entry ;;;;;; find-change-log prompt-for-change-log-name add-log-mailing-address ;;;;;; add-log-full-name add-log-current-defun-function) "add-log" ! ;;;;;; "add-log.el" (16111 31859)) ;;; Generated autoloads from add-log.el (defvar add-log-current-defun-function nil "\ --- 152,158 ---- ;;;;;; change-log-mode add-change-log-entry-other-window add-change-log-entry ;;;;;; find-change-log prompt-for-change-log-name add-log-mailing-address ;;;;;; add-log-full-name add-log-current-defun-function) "add-log" ! ;;;;;; "add-log.el" (16111 41824)) ;;; Generated autoloads from add-log.el (defvar add-log-current-defun-function nil "\ *************** *** 289,296 **** ;;;*** ;;;### (autoloads (defadvice ad-add-advice ad-default-compilation-action ! ;;;;;; ad-redefinition-action) "advice" "emacs-lisp/advice.el" (16055 ! ;;;;;; 49030)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action (quote warn) "\ --- 289,296 ---- ;;;*** ;;;### (autoloads (defadvice ad-add-advice ad-default-compilation-action ! ;;;;;; ad-redefinition-action) "advice" "emacs-lisp/advice.el" (16057 ! ;;;;;; 36338)) ;;; Generated autoloads from emacs-lisp/advice.el (defvar ad-redefinition-action (quote warn) "\ *************** *** 389,395 **** ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule ;;;;;; align-highlight-rule align-current align-entire align-regexp ! ;;;;;; align) "align" "align.el" (16083 48497)) ;;; Generated autoloads from align.el (autoload (quote align) "align" "\ --- 389,395 ---- ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule ;;;;;; align-highlight-rule align-current align-entire align-regexp ! ;;;;;; align) "align" "align.el" (16111 41824)) ;;; Generated autoloads from align.el (autoload (quote align) "align" "\ *************** *** 478,484 **** ;;;*** ! ;;;### (autoloads (allout-init) "allout" "allout.el" (16055 62232)) ;;; Generated autoloads from allout.el (autoload (quote allout-init) "allout" "\ --- 478,484 ---- ;;;*** ! ;;;### (autoloads (allout-init) "allout" "allout.el" (16057 36333)) ;;; Generated autoloads from allout.el (autoload (quote allout-init) "allout" "\ *************** *** 514,520 **** ;;;*** ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp" ! ;;;;;; "net/ange-ftp.el" (16025 23570)) ;;; Generated autoloads from net/ange-ftp.el (defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir)) --- 514,520 ---- ;;;*** ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp" ! ;;;;;; "net/ange-ftp.el" (16139 21086)) ;;; Generated autoloads from net/ange-ftp.el (defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir)) *************** *** 538,544 **** ;;;*** ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) ! ;;;;;; "animate" "play/animate.el" (15935 48681)) ;;; Generated autoloads from play/animate.el (autoload (quote animate-string) "animate" "\ --- 538,544 ---- ;;;*** ;;;### (autoloads (animate-birthday-present animate-sequence animate-string) ! ;;;;;; "animate" "play/animate.el" (15941 42963)) ;;; Generated autoloads from play/animate.el (autoload (quote animate-string) "animate" "\ *************** *** 565,571 **** ;;;*** ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on) ! ;;;;;; "ansi-color" "ansi-color.el" (16075 41319)) ;;; Generated autoloads from ansi-color.el (autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\ --- 565,571 ---- ;;;*** ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on) ! ;;;;;; "ansi-color" "ansi-color.el" (16111 41824)) ;;; Generated autoloads from ansi-color.el (autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\ *************** *** 591,597 **** ;;;*** ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules) ! ;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (15935 48914)) ;;; Generated autoloads from progmodes/antlr-mode.el (autoload (quote antlr-show-makefile-rules) "antlr-mode" "\ --- 591,597 ---- ;;;*** ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules) ! ;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (15941 42963)) ;;; Generated autoloads from progmodes/antlr-mode.el (autoload (quote antlr-show-makefile-rules) "antlr-mode" "\ *************** *** 630,636 **** ;;;### (autoloads (appt-make-list appt-delete appt-add appt-display-diary ;;;;;; appt-display-duration appt-msg-window appt-display-mode-line ;;;;;; appt-visible appt-audible appt-message-warning-time appt-issue-message) ! ;;;;;; "appt" "calendar/appt.el" (15935 46813)) ;;; Generated autoloads from calendar/appt.el (defvar appt-issue-message t "\ --- 630,636 ---- ;;;### (autoloads (appt-make-list appt-delete appt-add appt-display-diary ;;;;;; appt-display-duration appt-msg-window appt-display-mode-line ;;;;;; appt-visible appt-audible appt-message-warning-time appt-issue-message) ! ;;;;;; "appt" "calendar/appt.el" (15941 42957)) ;;; Generated autoloads from calendar/appt.el (defvar appt-issue-message t "\ *************** *** 705,717 **** ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property ;;;;;; apropos-command apropos-variable apropos-mode) "apropos" ! ;;;;;; "apropos.el" (15935 40265)) ;;; Generated autoloads from apropos.el (autoload (quote apropos-mode) "apropos" "\ Major mode for following hyperlinks in output of apropos commands. ! \\{apropos-mode-map}" t nil) (autoload (quote apropos-variable) "apropos" "\ Show user variables that match REGEXP. --- 705,719 ---- ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property ;;;;;; apropos-command apropos-variable apropos-mode) "apropos" ! ;;;;;; "apropos.el" (16148 4632)) ;;; Generated autoloads from apropos.el (autoload (quote apropos-mode) "apropos" "\ Major mode for following hyperlinks in output of apropos commands. ! \\{apropos-mode-map} ! ! \(fn)" t nil) (autoload (quote apropos-variable) "apropos" "\ Show user variables that match REGEXP. *************** *** 764,771 **** ;;;*** ! ;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (16078 ! ;;;;;; 6141)) ;;; Generated autoloads from arc-mode.el (autoload (quote archive-mode) "arc-mode" "\ --- 766,773 ---- ;;;*** ! ;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (16111 ! ;;;;;; 41824)) ;;; Generated autoloads from arc-mode.el (autoload (quote archive-mode) "arc-mode" "\ *************** *** 785,791 **** ;;;*** ! ;;;### (autoloads (array-mode) "array" "array.el" (15935 40288)) ;;; Generated autoloads from array.el (autoload (quote array-mode) "array" "\ --- 787,793 ---- ;;;*** ! ;;;### (autoloads (array-mode) "array" "array.el" (15941 42951)) ;;; Generated autoloads from array.el (autoload (quote array-mode) "array" "\ *************** *** 856,863 **** ;;;*** ! ;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (15792 ! ;;;;;; 10236)) ;;; Generated autoloads from textmodes/artist.el (autoload (quote artist-mode) "artist" "\ --- 858,865 ---- ;;;*** ! ;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (15829 ! ;;;;;; 28909)) ;;; Generated autoloads from textmodes/artist.el (autoload (quote artist-mode) "artist" "\ *************** *** 1062,1069 **** ;;;*** ! ;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (16011 ! ;;;;;; 4976)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload (quote asm-mode) "asm-mode" "\ --- 1064,1071 ---- ;;;*** ! ;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (16131 ! ;;;;;; 19792)) ;;; Generated autoloads from progmodes/asm-mode.el (autoload (quote asm-mode) "asm-mode" "\ *************** *** 1091,1097 **** ;;;*** ;;;### (autoloads (auto-show-mode auto-show-mode) "auto-show" "obsolete/auto-show.el" ! ;;;;;; (15935 48553)) ;;; Generated autoloads from obsolete/auto-show.el (defvar auto-show-mode nil "\ --- 1093,1099 ---- ;;;*** ;;;### (autoloads (auto-show-mode auto-show-mode) "auto-show" "obsolete/auto-show.el" ! ;;;;;; (15941 42963)) ;;; Generated autoloads from obsolete/auto-show.el (defvar auto-show-mode nil "\ *************** *** 1107,1113 **** ;;;*** ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el" ! ;;;;;; (15851 22937)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ --- 1109,1115 ---- ;;;*** ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el" ! ;;;;;; (15856 53268)) ;;; Generated autoloads from autoarg.el (defvar autoarg-mode nil "\ *************** *** 1162,1168 **** ;;;*** ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el" ! ;;;;;; (16065 23715)) ;;; Generated autoloads from progmodes/autoconf.el (autoload (quote autoconf-mode) "autoconf" "\ --- 1164,1170 ---- ;;;*** ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el" ! ;;;;;; (16070 35808)) ;;; Generated autoloads from progmodes/autoconf.el (autoload (quote autoconf-mode) "autoconf" "\ *************** *** 1173,1179 **** ;;;*** ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert) ! ;;;;;; "autoinsert" "autoinsert.el" (15935 40121)) ;;; Generated autoloads from autoinsert.el (autoload (quote auto-insert) "autoinsert" "\ --- 1175,1181 ---- ;;;*** ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert) ! ;;;;;; "autoinsert" "autoinsert.el" (15941 42951)) ;;; Generated autoloads from autoinsert.el (autoload (quote auto-insert) "autoinsert" "\ *************** *** 1211,1217 **** ;;;### (autoloads (batch-update-autoloads update-directory-autoloads ;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el" ! ;;;;;; (16067 45352)) ;;; Generated autoloads from emacs-lisp/autoload.el (autoload (quote update-file-autoloads) "autoload" "\ --- 1213,1219 ---- ;;;### (autoloads (batch-update-autoloads update-directory-autoloads ;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el" ! ;;;;;; (16070 35807)) ;;; Generated autoloads from emacs-lisp/autoload.el (autoload (quote update-file-autoloads) "autoload" "\ *************** *** 1242,1248 **** ;;;*** ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-mode ! ;;;;;; auto-revert-mode) "autorevert" "autorevert.el" (15538 8758)) ;;; Generated autoloads from autorevert.el (defvar auto-revert-mode nil "\ --- 1244,1250 ---- ;;;*** ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-mode ! ;;;;;; auto-revert-mode) "autorevert" "autorevert.el" (15538 10657)) ;;; Generated autoloads from autorevert.el (defvar auto-revert-mode nil "\ *************** *** 1326,1347 **** ;;;*** - ;;;### (autoloads (awk-mode) "awk-mode" "progmodes/awk-mode.el" (15303 - ;;;;;; 10362)) - ;;; Generated autoloads from progmodes/awk-mode.el - - (autoload (quote awk-mode) "awk-mode" "\ - Major mode for editing AWK code. - This is much like C mode except for the syntax of comments. Its keymap - inherits from C mode's and it has the same variables for customizing - indentation. It has its own abbrev table and its own syntax table. - - Turning on AWK mode runs `awk-mode-hook'." t nil) - - ;;;*** - ;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el" ! ;;;;;; (15935 47054)) ;;; Generated autoloads from emacs-lisp/backquote.el (autoload (quote backquote) "backquote" "\ --- 1328,1335 ---- ;;;*** ;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from emacs-lisp/backquote.el (autoload (quote backquote) "backquote" "\ *************** *** 1420,1427 **** ;;;*** ! ;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (16111 ! ;;;;;; 31886)) ;;; Generated autoloads from textmodes/bibtex.el (autoload (quote bibtex-mode) "bibtex" "\ --- 1408,1415 ---- ;;;*** ! ;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (16135 ! ;;;;;; 8992)) ;;; Generated autoloads from textmodes/bibtex.el (autoload (quote bibtex-mode) "bibtex" "\ *************** *** 1429,1450 **** General information on working with BibTeX mode: ! You should use commands as \\[bibtex-Book] to get a template for a specific entry. You should then fill in all desired fields using \\[bibtex-next-field] to jump from field to field. After having filled in all desired fields in the entry, you should clean the new entry ! with command \\[bibtex-clean-entry]. ! Some features of BibTeX mode are available only by setting variable ! `bibtex-maintain-sorted-entries' to t. However, then BibTeX mode will ! work with buffer containing only valid (syntactical correct) entries and with entries being sorted. This is usually the case, if you have created a buffer completely with BibTeX mode and finished every new entry with \\[bibtex-clean-entry]. ! For third party BibTeX buffers, please call the function ! `bibtex-convert-alien' to fully take advantage of all features of ! BibTeX mode. Special information: --- 1417,1437 ---- General information on working with BibTeX mode: ! You should use commands such as \\[bibtex-Book] to get a template for a specific entry. You should then fill in all desired fields using \\[bibtex-next-field] to jump from field to field. After having filled in all desired fields in the entry, you should clean the new entry ! with the command \\[bibtex-clean-entry]. ! Some features of BibTeX mode are available only by setting the variable ! `bibtex-maintain-sorted-entries' to non-nil. However, then BibTeX mode will ! work only with buffers containing valid (syntactical correct) entries and with entries being sorted. This is usually the case, if you have created a buffer completely with BibTeX mode and finished every new entry with \\[bibtex-clean-entry]. ! For third party BibTeX files, call the function `bibtex-convert-alien' ! to fully take advantage of all features of BibTeX mode. Special information: *************** *** 1456,1463 **** The OPT or ALT string may be removed from a field with \\[bibtex-remove-OPT-or-ALT]. \\[bibtex-make-field] inserts a new field after the current one. \\[bibtex-kill-field] kills the current field entirely. ! \\[bibtex-yank] will yank the last recently killed field after the ! current field. \\[bibtex-remove-delimiters] removes the double-quotes or braces around the text of the current field. \\[bibtex-empty-field] replaces the text of the current field with the default \"\" or {}. --- 1443,1449 ---- The OPT or ALT string may be removed from a field with \\[bibtex-remove-OPT-or-ALT]. \\[bibtex-make-field] inserts a new field after the current one. \\[bibtex-kill-field] kills the current field entirely. ! \\[bibtex-yank] yanks the last recently killed field after the current field. \\[bibtex-remove-delimiters] removes the double-quotes or braces around the text of the current field. \\[bibtex-empty-field] replaces the text of the current field with the default \"\" or {}. *************** *** 1519,1533 **** ;;;*** ! ;;;### (autoloads nil "binhex" "gnus/binhex.el" (15834 24337)) ;;; Generated autoloads from gnus/binhex.el (defconst binhex-begin-line "^:...............................................................$") ;;;*** ! ;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (15935 ! ;;;;;; 48681)) ;;; Generated autoloads from play/blackbox.el (autoload (quote blackbox) "blackbox" "\ --- 1505,1519 ---- ;;;*** ! ;;;### (autoloads nil "binhex" "gnus/binhex.el" (15856 53273)) ;;; Generated autoloads from gnus/binhex.el (defconst binhex-begin-line "^:...............................................................$") ;;;*** ! ;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (15941 ! ;;;;;; 42963)) ;;; Generated autoloads from play/blackbox.el (autoload (quote blackbox) "blackbox" "\ *************** *** 1651,1657 **** ;;;;;; bookmark-load bookmark-save bookmark-write bookmark-delete ;;;;;; bookmark-insert bookmark-rename bookmark-insert-location ;;;;;; bookmark-relocate bookmark-jump bookmark-set) "bookmark" ! ;;;;;; "bookmark.el" (15832 12509)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-map "rb" 'bookmark-jump) (define-key ctl-x-map "rm" 'bookmark-set) --- 1637,1643 ---- ;;;;;; bookmark-load bookmark-save bookmark-write bookmark-delete ;;;;;; bookmark-insert bookmark-rename bookmark-insert-location ;;;;;; bookmark-relocate bookmark-jump bookmark-set) "bookmark" ! ;;;;;; "bookmark.el" (15856 53268)) ;;; Generated autoloads from bookmark.el (define-key ctl-x-map "rb" 'bookmark-jump) (define-key ctl-x-map "rm" 'bookmark-set) *************** *** 1941,1947 **** ;;;;;; browse-url-default-browser browse-url-at-mouse browse-url-at-point ;;;;;; browse-url browse-url-of-region browse-url-of-dired-file ;;;;;; browse-url-of-buffer browse-url-of-file browse-url-browser-function) ! ;;;;;; "browse-url" "net/browse-url.el" (16111 31879)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\ --- 1927,1933 ---- ;;;;;; browse-url-default-browser browse-url-at-mouse browse-url-at-point ;;;;;; browse-url browse-url-of-region browse-url-of-dired-file ;;;;;; browse-url-of-buffer browse-url-of-file browse-url-browser-function) ! ;;;;;; "browse-url" "net/browse-url.el" (16139 21086)) ;;; Generated autoloads from net/browse-url.el (defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\ *************** *** 2224,2231 **** ;;;*** ! ;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (15828 ! ;;;;;; 33860)) ;;; Generated autoloads from play/bruce.el (autoload (quote bruce) "bruce" "\ --- 2210,2217 ---- ;;;*** ! ;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (15829 ! ;;;;;; 28909)) ;;; Generated autoloads from play/bruce.el (autoload (quote bruce) "bruce" "\ *************** *** 2241,2247 **** ;;;*** ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next) ! ;;;;;; "bs" "bs.el" (15727 20555)) ;;; Generated autoloads from bs.el (autoload (quote bs-cycle-next) "bs" "\ --- 2227,2233 ---- ;;;*** ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next) ! ;;;;;; "bs" "bs.el" (15728 55517)) ;;; Generated autoloads from bs.el (autoload (quote bs-cycle-next) "bs" "\ *************** *** 2282,2289 **** ;;;*** ;;;### (autoloads (insert-text-button make-text-button insert-button ! ;;;;;; make-button define-button-type) "button" "button.el" (15887 ! ;;;;;; 35338)) ;;; Generated autoloads from button.el (defvar button-map (let ((map (make-sparse-keymap))) (define-key map " " (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\ --- 2268,2275 ---- ;;;*** ;;;### (autoloads (insert-text-button make-text-button insert-button ! ;;;;;; make-button define-button-type) "button" "button.el" (15924 ! ;;;;;; 18767)) ;;; Generated autoloads from button.el (defvar button-map (let ((map (make-sparse-keymap))) (define-key map " " (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\ *************** *** 2371,2377 **** ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile ;;;;;; compile-defun byte-compile-file byte-recompile-directory ;;;;;; byte-force-recompile) "bytecomp" "emacs-lisp/bytecomp.el" ! ;;;;;; (16111 31866)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (autoload (quote byte-force-recompile) "bytecomp" "\ --- 2357,2363 ---- ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile ;;;;;; compile-defun byte-compile-file byte-recompile-directory ;;;;;; byte-force-recompile) "bytecomp" "emacs-lisp/bytecomp.el" ! ;;;;;; (16135 8990)) ;;; Generated autoloads from emacs-lisp/bytecomp.el (autoload (quote byte-force-recompile) "bytecomp" "\ *************** *** 2463,2469 **** ;;;*** ! ;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (15935 46813)) ;;; Generated autoloads from calendar/cal-dst.el (put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t) --- 2449,2455 ---- ;;;*** ! ;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (15941 42957)) ;;; Generated autoloads from calendar/cal-dst.el (put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t) *************** *** 2473,2479 **** ;;;*** ;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el" ! ;;;;;; (15935 46813)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload (quote list-yahrzeit-dates) "cal-hebrew" "\ --- 2459,2465 ---- ;;;*** ;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el" ! ;;;;;; (15941 42957)) ;;; Generated autoloads from calendar/cal-hebrew.el (autoload (quote list-yahrzeit-dates) "cal-hebrew" "\ *************** *** 2487,2494 **** ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle ;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc ! ;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (15935 ! ;;;;;; 46670)) ;;; Generated autoloads from calc/calc.el (defvar calc-info-filename "calc.info" "\ --- 2473,2480 ---- ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle ;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc ! ;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (15941 ! ;;;;;; 42957)) ;;; Generated autoloads from calc/calc.el (defvar calc-info-filename "calc.info" "\ *************** *** 2583,2589 **** ;;;*** ;;;### (autoloads (calc-extensions) "calc-ext" "calc/calc-ext.el" ! ;;;;;; (15935 46669)) ;;; Generated autoloads from calc/calc-ext.el (autoload (quote calc-extensions) "calc-ext" "\ --- 2569,2575 ---- ;;;*** ;;;### (autoloads (calc-extensions) "calc-ext" "calc/calc-ext.el" ! ;;;;;; (15941 42957)) ;;; Generated autoloads from calc/calc-ext.el (autoload (quote calc-extensions) "calc-ext" "\ *************** *** 2593,2600 **** ;;;*** ! ;;;### (autoloads (calculator) "calculator" "calculator.el" (15934 ! ;;;;;; 39203)) ;;; Generated autoloads from calculator.el (autoload (quote calculator) "calculator" "\ --- 2579,2586 ---- ;;;*** ! ;;;### (autoloads (calculator) "calculator" "calculator.el" (15941 ! ;;;;;; 42951)) ;;; Generated autoloads from calculator.el (autoload (quote calculator) "calculator" "\ *************** *** 2621,2627 **** ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar ;;;;;; number-of-diary-entries view-diary-entries-initially calendar-offset ;;;;;; calendar-week-start-day) "calendar" "calendar/calendar.el" ! ;;;;;; (15953 24862)) ;;; Generated autoloads from calendar/calendar.el (defvar calendar-week-start-day 0 "\ --- 2607,2613 ---- ;;;;;; calendar-remove-frame-by-deleting mark-diary-entries-in-calendar ;;;;;; number-of-diary-entries view-diary-entries-initially calendar-offset ;;;;;; calendar-week-start-day) "calendar" "calendar/calendar.el" ! ;;;;;; (15961 24151)) ;;; Generated autoloads from calendar/calendar.el (defvar calendar-week-start-day 0 "\ *************** *** 3164,3220 **** ;;;*** - ;;;### (autoloads nil "cc-langs" "progmodes/cc-langs.el" (16065 23993)) - ;;; Generated autoloads from progmodes/cc-langs.el - - (defvar c-mode-syntax-table nil "\ - Syntax table used in c-mode buffers.") - - (defvar c++-mode-syntax-table nil "\ - Syntax table used in c++-mode buffers.") - - (defvar objc-mode-syntax-table nil "\ - Syntax table used in objc-mode buffers.") - - (defvar java-mode-syntax-table nil "\ - Syntax table used in java-mode buffers.") - - (defvar idl-mode-syntax-table nil "\ - Syntax table used in idl-mode buffers.") - - (defvar pike-mode-syntax-table nil "\ - Syntax table used in pike-mode buffers.") - - ;;;*** - ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode ;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" ! ;;;;;; (16116 34477)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload (quote c-initialize-cc-mode) "cc-mode" "\ ! Not documented ! \(fn)" nil nil) (autoload (quote c-mode) "cc-mode" "\ Major mode for editing K&R and ANSI C code. To submit a problem report, enter `\\[c-submit-bug-report]' from a c-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the ! problem, including a reproducible test case and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `c-mode-hook' is run with no args, if that value is ! bound and has a non-nil value. Also the hook `c-mode-common-hook' is ! run first. Key bindings: \\{c-mode-map} \(fn)" t nil) (autoload (quote c++-mode) "cc-mode" "\ Major mode for editing C++ code. To submit a problem report, enter `\\[c-submit-bug-report]' from a --- 3150,3199 ---- ;;;*** ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode ;;;;;; c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" ! ;;;;;; (16139 20775)) ;;; Generated autoloads from progmodes/cc-mode.el (autoload (quote c-initialize-cc-mode) "cc-mode" "\ ! Initialize CC Mode for use in the current buffer. ! If the optional NEW-STYLE-INIT is nil or left out then all necessary ! initialization to run CC Mode for the C language is done. Otherwise ! only some basic setup is done, and a call to `c-init-language-vars', ! is necessary too (which gives more control). See \"cc-mode.el\" for ! more info. ! \(fn &optional NEW-STYLE-INIT)" nil nil) ! ! (defvar c-mode-syntax-table nil "\ ! Syntax table used in c-mode buffers.") ! (add-to-list 'auto-mode-alist '("\\.\\(cc\\|hh\\)\\'" . c++-mode)) ! (add-to-list 'auto-mode-alist '("\\.[ch]\\(pp\\|xx\\|\\+\\+\\)\\'" . c++-mode)) ! (add-to-list 'auto-mode-alist '("\\.\\(CC?\\|HH?\\)\\'" . c++-mode)) ! (add-to-list 'auto-mode-alist '("\\.[ch]\\'" . c-mode)) ! (add-to-list 'auto-mode-alist '("\\.y\\(acc\\)?\\'" . c-mode)) ! (add-to-list 'auto-mode-alist '("\\.lex\\'" . c-mode)) (autoload (quote c-mode) "cc-mode" "\ Major mode for editing K&R and ANSI C code. To submit a problem report, enter `\\[c-submit-bug-report]' from a c-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the ! problem, including a reproducible test case, and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `c-mode-hook'. Key bindings: \\{c-mode-map} \(fn)" t nil) + (defvar c++-mode-syntax-table nil "\ + Syntax table used in c++-mode buffers.") + (autoload (quote c++-mode) "cc-mode" "\ Major mode for editing C++ code. To submit a problem report, enter `\\[c-submit-bug-report]' from a *************** *** 3225,3239 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `c++-mode-hook' is run with no args, if that ! variable is bound and has a non-nil value. Also the hook ! `c-mode-common-hook' is run first. Key bindings: \\{c++-mode-map} \(fn)" t nil) (autoload (quote objc-mode) "cc-mode" "\ Major mode for editing Objective C code. To submit a problem report, enter `\\[c-submit-bug-report]' from an --- 3204,3221 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `c++-mode-hook'. Key bindings: \\{c++-mode-map} \(fn)" t nil) + (defvar objc-mode-syntax-table nil "\ + Syntax table used in objc-mode buffers.") + (add-to-list 'auto-mode-alist '("\\.m\\'" . objc-mode)) + (autoload (quote objc-mode) "cc-mode" "\ Major mode for editing Objective C code. To submit a problem report, enter `\\[c-submit-bug-report]' from an *************** *** 3244,3281 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `objc-mode-hook' is run with no args, if that value ! is bound and has a non-nil value. Also the hook `c-mode-common-hook' ! is run first. Key bindings: \\{objc-mode-map} \(fn)" t nil) (autoload (quote java-mode) "cc-mode" "\ Major mode for editing Java code. To submit a problem report, enter `\\[c-submit-bug-report]' from a java-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description ! of the problem, including a reproducible test case and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `java-mode-hook' is run with no args, if that value ! is bound and has a non-nil value. Also the common hook ! `c-mode-common-hook' is run first. Note that this mode automatically ! sets the \"java\" style before calling any hooks so be careful if you ! set styles in `c-mode-common-hook'. Key bindings: \\{java-mode-map} \(fn)" t nil) (autoload (quote idl-mode) "cc-mode" "\ ! Major mode for editing CORBA's IDL code. To submit a problem report, enter `\\[c-submit-bug-report]' from an idl-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description --- 3226,3267 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `objc-mode-hook'. Key bindings: \\{objc-mode-map} \(fn)" t nil) + (defvar java-mode-syntax-table nil "\ + Syntax table used in java-mode buffers.") + (add-to-list 'auto-mode-alist '("\\.java\\'" . java-mode)) + (autoload (quote java-mode) "cc-mode" "\ Major mode for editing Java code. To submit a problem report, enter `\\[c-submit-bug-report]' from a java-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description ! of the problem, including a reproducible test case, and send the message. To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `java-mode-hook'. Key bindings: \\{java-mode-map} \(fn)" t nil) + (defvar idl-mode-syntax-table nil "\ + Syntax table used in idl-mode buffers.") + (add-to-list 'auto-mode-alist '("\\.idl\\'" . idl-mode)) + (autoload (quote idl-mode) "cc-mode" "\ ! Major mode for editing CORBA's IDL, PSDL and CIDL code. To submit a problem report, enter `\\[c-submit-bug-report]' from an idl-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description *************** *** 3284,3298 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `idl-mode-hook' is run with no args, if that ! variable is bound and has a non-nil value. Also the hook ! `c-mode-common-hook' is run first. Key bindings: \\{idl-mode-map} \(fn)" t nil) (autoload (quote pike-mode) "cc-mode" "\ Major mode for editing Pike code. To submit a problem report, enter `\\[c-submit-bug-report]' from a --- 3270,3288 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `idl-mode-hook'. Key bindings: \\{idl-mode-map} \(fn)" t nil) + (defvar pike-mode-syntax-table nil "\ + Syntax table used in pike-mode buffers.") + (add-to-list 'auto-mode-alist '("\\.\\(u?lpc\\|pike\\|pmod\\(.in\\)?\\)\\'" . pike-mode)) + (add-to-list 'interpreter-mode-alist '("pike" . pike-mode)) + (autoload (quote pike-mode) "cc-mode" "\ Major mode for editing Pike code. To submit a problem report, enter `\\[c-submit-bug-report]' from a *************** *** 3303,3321 **** To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook variable `pike-mode-hook' is run with no args, if that value ! is bound and has a non-nil value. Also the common hook ! `c-mode-common-hook' is run first. Key bindings: \\{pike-mode-map} \(fn)" t nil) ;;;*** ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles" ! ;;;;;; "progmodes/cc-styles.el" (15942 63314)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload (quote c-set-style) "cc-styles" "\ --- 3293,3316 ---- To see what version of CC Mode you are running, enter `\\[c-version]'. ! The hook `c-mode-common-hook' is run with no args at mode ! initialization, then `pike-mode-hook'. Key bindings: \\{pike-mode-map} \(fn)" t nil) + (add-to-list 'auto-mode-alist '("\\.awk\\'" . awk-mode)) + (add-to-list 'interpreter-mode-alist '("awk" . awk-mode)) + (add-to-list 'interpreter-mode-alist '("mawk" . awk-mode)) + (add-to-list 'interpreter-mode-alist '("nawk" . awk-mode)) + (add-to-list 'interpreter-mode-alist '("gawk" . awk-mode)) + (autoload 'awk-mode "cc-mode" "Major mode for editing AWK code.") ;;;*** ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles" ! ;;;;;; "progmodes/cc-styles.el" (16139 20775)) ;;; Generated autoloads from progmodes/cc-styles.el (autoload (quote c-set-style) "cc-styles" "\ *************** *** 3349,3356 **** (autoload (quote c-add-style) "cc-styles" "\ Adds a style to `c-style-alist', or updates an existing one. ! STYLE is a string identifying the style to add or update. DESCRIP is ! an association list describing the style and must be of the form: ([BASESTYLE] (VARIABLE . VALUE) [(VARIABLE . VALUE) ...]) --- 3344,3351 ---- (autoload (quote c-add-style) "cc-styles" "\ Adds a style to `c-style-alist', or updates an existing one. ! STYLE is a string identifying the style to add or update. DESCRIPTION ! is an association list describing the style and must be of the form: ([BASESTYLE] (VARIABLE . VALUE) [(VARIABLE . VALUE) ...]) *************** *** 3358,3364 **** VARIABLE and VALUE. This function also sets the current style to STYLE using `c-set-style' if the optional SET-P flag is non-nil. ! \(fn STYLE DESCRIP &optional SET-P)" t nil) (autoload (quote c-set-offset) "cc-styles" "\ Change the value of a syntactic element symbol in `c-offsets-alist'. --- 3353,3359 ---- VARIABLE and VALUE. This function also sets the current style to STYLE using `c-set-style' if the optional SET-P flag is non-nil. ! \(fn STYLE DESCRIPTION &optional SET-P)" t nil) (autoload (quote c-set-offset) "cc-styles" "\ Change the value of a syntactic element symbol in `c-offsets-alist'. *************** *** 3370,3395 **** ;;;*** - ;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (15954 24280)) - ;;; Generated autoloads from progmodes/cc-vars.el - - (defconst c-emacs-features (let ((infodock-p (boundp (quote infodock-version))) (comments (let ((table (copy-syntax-table)) entry) (modify-syntax-entry 97 ". 12345678" table) (cond ((arrayp table) (setq entry (aref table 97)) (if (consp entry) (setq entry (car entry)))) ((fboundp (quote get-char-table)) (setq entry (get-char-table 97 table))) ((and (fboundp (quote char-table-p)) (char-table-p table)) (setq entry (car (char-table-range table [97])))) (t (error "CC Mode is incompatible with this version of Emacs"))) (if (= (logand (lsh entry -16) 255) 255) (quote 8-bit) (quote 1-bit))))) (if infodock-p (list comments (quote infodock)) (list comments))) "\ - A list of features extant in the Emacs you are using. - There are many flavors of Emacs out there, each with different - features supporting those needed by CC Mode. Here's the current - supported list, along with the values for this variable: - - XEmacs 19, 20, 21: (8-bit) - Emacs 19, 20: (1-bit) - - Infodock (based on XEmacs) has an additional symbol on this list: - `infodock'.") - - ;;;*** - ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program ;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el" ! ;;;;;; (16078 25937)) ;;; Generated autoloads from international/ccl.el (autoload (quote ccl-compile) "ccl" "\ --- 3365,3373 ---- ;;;*** ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program ;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el" ! ;;;;;; (16111 41831)) ;;; Generated autoloads from international/ccl.el (autoload (quote ccl-compile) "ccl" "\ *************** *** 3653,3659 **** ;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer ;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive ;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el" ! ;;;;;; (16077 62320)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (autoload (quote checkdoc) "checkdoc" "\ --- 3631,3637 ---- ;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer ;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive ;;;;;; checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el" ! ;;;;;; (16111 41827)) ;;; Generated autoloads from emacs-lisp/checkdoc.el (autoload (quote checkdoc) "checkdoc" "\ *************** *** 3836,3843 **** ;;;*** ;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer ! ;;;;;; decode-hz-region) "china-util" "language/china-util.el" (16071 ! ;;;;;; 62686)) ;;; Generated autoloads from language/china-util.el (autoload (quote decode-hz-region) "china-util" "\ --- 3814,3821 ---- ;;;*** ;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer ! ;;;;;; decode-hz-region) "china-util" "language/china-util.el" (16111 ! ;;;;;; 41831)) ;;; Generated autoloads from language/china-util.el (autoload (quote decode-hz-region) "china-util" "\ *************** *** 3865,3871 **** ;;;*** ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command) ! ;;;;;; "chistory" "chistory.el" (15876 52395)) ;;; Generated autoloads from chistory.el (autoload (quote repeat-matching-complex-command) "chistory" "\ --- 3843,3849 ---- ;;;*** ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command) ! ;;;;;; "chistory" "chistory.el" (15877 48879)) ;;; Generated autoloads from chistory.el (autoload (quote repeat-matching-complex-command) "chistory" "\ *************** *** 3904,3910 **** ;;;*** ! ;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (15834 24364)) ;;; Generated autoloads from emacs-lisp/cl.el (defvar custom-print-functions nil "\ --- 3882,3888 ---- ;;;*** ! ;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (15856 53273)) ;;; Generated autoloads from emacs-lisp/cl.el (defvar custom-print-functions nil "\ *************** *** 3920,3926 **** ;;;*** ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el" ! ;;;;;; (16040 38577)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload (quote common-lisp-indent-function) "cl-indent" "\ --- 3898,3904 ---- ;;;*** ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el" ! ;;;;;; (16054 60749)) ;;; Generated autoloads from emacs-lisp/cl-indent.el (autoload (quote common-lisp-indent-function) "cl-indent" "\ *************** *** 3950,3957 **** ;;;*** ! ;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (15935 ! ;;;;;; 40408)) ;;; Generated autoloads from cmuscheme.el (autoload (quote run-scheme) "cmuscheme" "\ --- 3928,3935 ---- ;;;*** ! ;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (15941 ! ;;;;;; 42951)) ;;; Generated autoloads from cmuscheme.el (autoload (quote run-scheme) "cmuscheme" "\ *************** *** 3968,3974 **** ;;;*** ;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el" ! ;;;;;; (16067 36214)) ;;; Generated autoloads from international/code-pages.el (autoload (quote cp-make-coding-system) "code-pages" "\ --- 3946,3952 ---- ;;;*** ;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el" ! ;;;;;; (16070 35808)) ;;; Generated autoloads from international/code-pages.el (autoload (quote cp-make-coding-system) "code-pages" "\ *************** *** 3984,3990 **** ;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage ;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage) ! ;;;;;; "codepage" "international/codepage.el" (15935 48018)) ;;; Generated autoloads from international/codepage.el (autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\ --- 3962,3968 ---- ;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage ;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage) ! ;;;;;; "codepage" "international/codepage.el" (15941 42961)) ;;; Generated autoloads from international/codepage.el (autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\ *************** *** 4043,4049 **** ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list ;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command ;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" ! ;;;;;; (16111 31859)) ;;; Generated autoloads from comint.el (autoload (quote make-comint-in-buffer) "comint" "\ --- 4021,4027 ---- ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list ;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command ;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" ! ;;;;;; (16111 41824)) ;;; Generated autoloads from comint.el (autoload (quote make-comint-in-buffer) "comint" "\ *************** *** 4113,4120 **** ;;;*** ! ;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (15668 ! ;;;;;; 8345)) ;;; Generated autoloads from compare-w.el (autoload (quote compare-windows) "compare-w" "\ --- 4091,4098 ---- ;;;*** ! ;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (15678 ! ;;;;;; 51462)) ;;; Generated autoloads from compare-w.el (autoload (quote compare-windows) "compare-w" "\ *************** *** 4139,4145 **** ;;;### (autoloads (next-error compilation-minor-mode compilation-shell-minor-mode ;;;;;; compilation-mode grep-tree grep-find grep compile compilation-search-path ;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) ! ;;;;;; "compile" "progmodes/compile.el" (16111 31879)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ --- 4117,4123 ---- ;;;### (autoloads (next-error compilation-minor-mode compilation-shell-minor-mode ;;;;;; compilation-mode grep-tree grep-find grep compile compilation-search-path ;;;;;; compilation-ask-about-save compilation-window-height compilation-mode-hook) ! ;;;;;; "compile" "progmodes/compile.el" (16139 20823)) ;;; Generated autoloads from progmodes/compile.el (defvar compilation-mode-hook nil "\ *************** *** 4198,4206 **** Interactively, prompts for the command if `compilation-read-command' is non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. ! To run more than one compilation at once, start one and rename the ! `*compilation*' buffer to some other name with \\[rename-buffer]. ! Then start the next one. The name used for the buffer is actually whatever is returned by the function in `compilation-buffer-name-function', so you can set that --- 4176,4186 ---- Interactively, prompts for the command if `compilation-read-command' is non-nil; otherwise uses `compile-command'. With prefix arg, always prompts. ! To run more than one compilation at once, start one and rename ! the `*compilation*' buffer to some other name with ! \\[rename-buffer]. Then start the next one. On most systems, ! termination of the main compilation process kills its ! subprocesses. The name used for the buffer is actually whatever is returned by the function in `compilation-buffer-name-function', so you can set that *************** *** 4315,4321 **** ;;;*** ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" ! ;;;;;; (15851 7849)) ;;; Generated autoloads from complete.el (defvar partial-completion-mode nil "\ --- 4295,4301 ---- ;;;*** ;;;### (autoloads (partial-completion-mode) "complete" "complete.el" ! ;;;;;; (15856 53268)) ;;; Generated autoloads from complete.el (defvar partial-completion-mode nil "\ *************** *** 4350,4356 **** ;;;*** ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el" ! ;;;;;; (15937 24942)) ;;; Generated autoloads from completion.el (autoload (quote dynamic-completion-mode) "completion" "\ --- 4330,4336 ---- ;;;*** ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el" ! ;;;;;; (15941 42951)) ;;; Generated autoloads from completion.el (autoload (quote dynamic-completion-mode) "completion" "\ *************** *** 4363,4369 **** ;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after ;;;;;; find-composition compose-chars decompose-string compose-string ;;;;;; decompose-region compose-region) "composite" "composite.el" ! ;;;;;; (15935 40578)) ;;; Generated autoloads from composite.el (defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\ --- 4343,4349 ---- ;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after ;;;;;; find-composition compose-chars decompose-string compose-string ;;;;;; decompose-region compose-region) "composite" "composite.el" ! ;;;;;; (15941 42951)) ;;; Generated autoloads from composite.el (defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\ *************** *** 4608,4614 **** ;;;*** ;;;### (autoloads (copyright copyright-update) "copyright" "emacs-lisp/copyright.el" ! ;;;;;; (16111 31866)) ;;; Generated autoloads from emacs-lisp/copyright.el (autoload (quote copyright-update) "copyright" "\ --- 4588,4594 ---- ;;;*** ;;;### (autoloads (copyright copyright-update) "copyright" "emacs-lisp/copyright.el" ! ;;;;;; (16111 41827)) ;;; Generated autoloads from emacs-lisp/copyright.el (autoload (quote copyright-update) "copyright" "\ *************** *** 4630,4636 **** ;;;*** ;;;### (autoloads (cperl-mode) "cperl-mode" "progmodes/cperl-mode.el" ! ;;;;;; (16055 62522)) ;;; Generated autoloads from progmodes/cperl-mode.el (autoload (quote cperl-mode) "cperl-mode" "\ --- 4610,4616 ---- ;;;*** ;;;### (autoloads (cperl-mode) "cperl-mode" "progmodes/cperl-mode.el" ! ;;;;;; (16057 36339)) ;;; Generated autoloads from progmodes/cperl-mode.el (autoload (quote cperl-mode) "cperl-mode" "\ *************** *** 4803,4809 **** ;;;*** ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el" ! ;;;;;; (16065 26348)) ;;; Generated autoloads from progmodes/cpp.el (autoload (quote cpp-highlight-buffer) "cpp" "\ --- 4783,4789 ---- ;;;*** ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el" ! ;;;;;; (16070 35808)) ;;; Generated autoloads from progmodes/cpp.el (autoload (quote cpp-highlight-buffer) "cpp" "\ *************** *** 4822,4828 **** ;;;*** ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el" ! ;;;;;; (16010 48739)) ;;; Generated autoloads from emulation/crisp.el (defvar crisp-mode nil "\ --- 4802,4808 ---- ;;;*** ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el" ! ;;;;;; (16011 28193)) ;;; Generated autoloads from emulation/crisp.el (defvar crisp-mode nil "\ *************** *** 4846,4852 **** ;;;*** ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el" ! ;;;;;; (15935 47054)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload (quote completing-read-multiple) "crm" "\ --- 4826,4832 ---- ;;;*** ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from emacs-lisp/crm.el (autoload (quote completing-read-multiple) "crm" "\ *************** *** 4882,4888 **** ;;;*** ;;;### (autoloads (cua-mode) "cua-base" "emulation/cua-base.el" (16111 ! ;;;;;; 31879)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ --- 4862,4868 ---- ;;;*** ;;;### (autoloads (cua-mode) "cua-base" "emulation/cua-base.el" (16111 ! ;;;;;; 41830)) ;;; Generated autoloads from emulation/cua-base.el (defvar cua-mode nil "\ *************** *** 4920,4926 **** ;;;;;; customize-face customize-changed-options customize-option-other-window ;;;;;; customize-option customize-group-other-window customize-group ;;;;;; customize-mode customize customize-save-variable customize-set-variable ! ;;;;;; customize-set-value) "cus-edit" "cus-edit.el" (16111 31859)) ;;; Generated autoloads from cus-edit.el (add-hook 'same-window-regexps "\\`\\*Customiz.*\\*\\'") --- 4900,4906 ---- ;;;;;; customize-face customize-changed-options customize-option-other-window ;;;;;; customize-option customize-group-other-window customize-group ;;;;;; customize-mode customize customize-save-variable customize-set-variable ! ;;;;;; customize-set-value) "cus-edit" "cus-edit.el" (16111 41824)) ;;; Generated autoloads from cus-edit.el (add-hook 'same-window-regexps "\\`\\*Customiz.*\\*\\'") *************** *** 5151,5157 **** ;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-theme-face-value ;;;;;; custom-set-faces custom-declare-face) "cus-face" "cus-face.el" ! ;;;;;; (15935 40544)) ;;; Generated autoloads from cus-face.el (autoload (quote custom-declare-face) "cus-face" "\ --- 5131,5137 ---- ;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-theme-face-value ;;;;;; custom-set-faces custom-declare-face) "cus-face" "cus-face.el" ! ;;;;;; (15941 42951)) ;;; Generated autoloads from cus-face.el (autoload (quote custom-declare-face) "cus-face" "\ *************** *** 5209,5215 **** ;;;*** ;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el" ! ;;;;;; (15998 41141)) ;;; Generated autoloads from cus-theme.el (autoload (quote customize-create-theme) "cus-theme" "\ --- 5189,5195 ---- ;;;*** ;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el" ! ;;;;;; (16135 8990)) ;;; Generated autoloads from cus-theme.el (autoload (quote customize-create-theme) "cus-theme" "\ *************** *** 5220,5235 **** ;;;*** ;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el" ! ;;;;;; (15935 40479)) ;;; Generated autoloads from cvs-status.el (autoload (quote cvs-status-mode) "cvs-status" "\ ! Mode used for cvs status output." t nil) ;;;*** ;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode) ! ;;;;;; "cwarn" "progmodes/cwarn.el" (15538 7545)) ;;; Generated autoloads from progmodes/cwarn.el (autoload (quote cwarn-mode) "cwarn" "\ --- 5200,5217 ---- ;;;*** ;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el" ! ;;;;;; (15941 42951)) ;;; Generated autoloads from cvs-status.el (autoload (quote cvs-status-mode) "cvs-status" "\ ! Mode used for cvs status output. ! ! \(fn)" t nil) ;;;*** ;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode) ! ;;;;;; "cwarn" "progmodes/cwarn.el" (15538 10657)) ;;; Generated autoloads from progmodes/cwarn.el (autoload (quote cwarn-mode) "cwarn" "\ *************** *** 5271,5277 **** ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char ;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el" ! ;;;;;; (15954 5018)) ;;; Generated autoloads from language/cyril-util.el (autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\ --- 5253,5259 ---- ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char ;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el" ! ;;;;;; (15961 24154)) ;;; Generated autoloads from language/cyril-util.el (autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\ *************** *** 5300,5306 **** ;;;*** ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el" ! ;;;;;; (16111 31860)) ;;; Generated autoloads from dabbrev.el (define-key esc-map "/" (quote dabbrev-expand)) --- 5282,5288 ---- ;;;*** ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el" ! ;;;;;; (16111 41824)) ;;; Generated autoloads from dabbrev.el (define-key esc-map "/" (quote dabbrev-expand)) *************** *** 5349,5356 **** ;;;*** ! ;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (15975 ! ;;;;;; 54612)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload (quote dcl-mode) "dcl-mode" "\ --- 5331,5338 ---- ;;;*** ! ;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (15997 ! ;;;;;; 672)) ;;; Generated autoloads from progmodes/dcl-mode.el (autoload (quote dcl-mode) "dcl-mode" "\ *************** *** 5477,5483 **** ;;;*** ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug" ! ;;;;;; "emacs-lisp/debug.el" (16111 31866)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger (quote debug)) --- 5459,5465 ---- ;;;*** ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug" ! ;;;;;; "emacs-lisp/debug.el" (16139 21085)) ;;; Generated autoloads from emacs-lisp/debug.el (setq debugger (quote debug)) *************** *** 5512,5518 **** ;;;*** ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el" ! ;;;;;; (16055 62670)) ;;; Generated autoloads from play/decipher.el (autoload (quote decipher) "decipher" "\ --- 5494,5500 ---- ;;;*** ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el" ! ;;;;;; (16057 36338)) ;;; Generated autoloads from play/decipher.el (autoload (quote decipher) "decipher" "\ *************** *** 5567,5573 **** ;;;*** ;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (16111 ! ;;;;;; 31880)) ;;; Generated autoloads from progmodes/delphi.el (autoload (quote delphi-mode) "delphi" "\ --- 5549,5555 ---- ;;;*** ;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (16111 ! ;;;;;; 41832)) ;;; Generated autoloads from progmodes/delphi.el (autoload (quote delphi-mode) "delphi" "\ *************** *** 5617,5624 **** ;;;*** ! ;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (16012 ! ;;;;;; 48297)) ;;; Generated autoloads from delsel.el (defalias (quote pending-delete-mode) (quote delete-selection-mode)) --- 5599,5606 ---- ;;;*** ! ;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (16014 ! ;;;;;; 64003)) ;;; Generated autoloads from delsel.el (defalias (quote pending-delete-mode) (quote delete-selection-mode)) *************** *** 5705,5711 **** ;;;*** ;;;### (autoloads (describe-char describe-text-properties) "descr-text" ! ;;;;;; "descr-text.el" (16111 31860)) ;;; Generated autoloads from descr-text.el (autoload (quote describe-text-properties) "descr-text" "\ --- 5687,5693 ---- ;;;*** ;;;### (autoloads (describe-char describe-text-properties) "descr-text" ! ;;;;;; "descr-text.el" (16111 41824)) ;;; Generated autoloads from descr-text.el (autoload (quote describe-text-properties) "descr-text" "\ *************** *** 5730,5736 **** ;;;### (autoloads (desktop-revert desktop-save-in-load-dir desktop-change-dir ;;;;;; desktop-load-default desktop-read) "desktop" "desktop.el" ! ;;;;;; (16111 31860)) ;;; Generated autoloads from desktop.el (autoload (quote desktop-read) "desktop" "\ --- 5712,5718 ---- ;;;### (autoloads (desktop-revert desktop-save-in-load-dir desktop-change-dir ;;;;;; desktop-load-default desktop-read) "desktop" "desktop.el" ! ;;;;;; (16148 4632)) ;;; Generated autoloads from desktop.el (autoload (quote desktop-read) "desktop" "\ *************** *** 5768,5775 **** ;;;*** ! ;;;### (autoloads nil "devan-util" "language/devan-util.el" (15944 ! ;;;;;; 24769)) ;;; Generated autoloads from language/devan-util.el (defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]") --- 5750,5757 ---- ;;;*** ! ;;;### (autoloads nil "devan-util" "language/devan-util.el" (15961 ! ;;;;;; 24154)) ;;; Generated autoloads from language/devan-util.el (defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]") *************** *** 5777,5783 **** ;;;*** ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" ! ;;;;;; "calendar/diary-lib.el" (16116 59977)) ;;; Generated autoloads from calendar/diary-lib.el (autoload (quote diary) "diary-lib" "\ --- 5759,5765 ---- ;;;*** ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib" ! ;;;;;; "calendar/diary-lib.el" (16131 19792)) ;;; Generated autoloads from calendar/diary-lib.el (autoload (quote diary) "diary-lib" "\ *************** *** 5791,5796 **** --- 5773,5779 ---- (autoload (quote diary-mail-entries) "diary-lib" "\ Send a mail message showing diary entries for next NDAYS days. If no prefix argument is given, NDAYS is set to `diary-mail-days'. + Mail is sent to the address specified by `diary-mail-addr'. You can call `diary-mail-entries' every night using an at/cron job. For example, this script will run the program at 2am daily. Since *************** *** 5801,5806 **** --- 5784,5790 ---- # diary-rem.sh -- repeatedly run the Emacs diary-reminder emacs -batch \\ -eval \"(setq diary-mail-days 3 \\ + diary-file \\\"/path/to/diary.file\\\" \\ european-calendar-style t \\ diary-mail-addr \\\"user@host.name\\\" )\" \\ -l diary-lib -f diary-mail-entries *************** *** 5821,5827 **** ;;;*** ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff" ! ;;;;;; "diff.el" (15739 64695)) ;;; Generated autoloads from diff.el (defvar diff-switches "-c" "\ --- 5805,5811 ---- ;;;*** ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff" ! ;;;;;; "diff.el" (15763 44949)) ;;; Generated autoloads from diff.el (defvar diff-switches "-c" "\ *************** *** 5854,5860 **** ;;;*** ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el" ! ;;;;;; (15935 40739)) ;;; Generated autoloads from diff-mode.el (autoload (quote diff-mode) "diff-mode" "\ --- 5838,5844 ---- ;;;*** ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el" ! ;;;;;; (15941 42951)) ;;; Generated autoloads from diff-mode.el (autoload (quote diff-mode) "diff-mode" "\ *************** *** 5867,5873 **** You can also switch between context diff and unified diff with \\[diff-context->unified], or vice versa with \\[diff-unified->context] and you can also revert the direction of ! a diff with \\[diff-reverse-direction]." t nil) (autoload (quote diff-minor-mode) "diff-mode" "\ Minor mode for viewing/editing context diffs. --- 5851,5859 ---- You can also switch between context diff and unified diff with \\[diff-context->unified], or vice versa with \\[diff-unified->context] and you can also revert the direction of ! a diff with \\[diff-reverse-direction]. ! ! \(fn)" t nil) (autoload (quote diff-minor-mode) "diff-mode" "\ Minor mode for viewing/editing context diffs. *************** *** 5881,5887 **** ;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink ;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename ;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches) ! ;;;;;; "dired" "dired.el" (16111 31860)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches "-al" "\ --- 5867,5873 ---- ;;;;;; dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink ;;;;;; dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename ;;;;;; dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches) ! ;;;;;; "dired" "dired.el" (16140 30175)) ;;; Generated autoloads from dired.el (defvar dired-listing-switches "-al" "\ *************** *** 6021,6027 **** ;;;;;; dired-do-compress dired-compress-file dired-do-kill-lines ;;;;;; dired-do-shell-command dired-do-print dired-do-chown dired-do-chgrp ;;;;;; dired-do-chmod dired-backup-diff dired-diff) "dired-aux" ! ;;;;;; "dired-aux.el" (15948 48462)) ;;; Generated autoloads from dired-aux.el (autoload (quote dired-diff) "dired-aux" "\ --- 6007,6013 ---- ;;;;;; dired-do-compress dired-compress-file dired-do-kill-lines ;;;;;; dired-do-shell-command dired-do-print dired-do-chown dired-do-chgrp ;;;;;; dired-do-chmod dired-backup-diff dired-diff) "dired-aux" ! ;;;;;; "dired-aux.el" (15961 24150)) ;;; Generated autoloads from dired-aux.el (autoload (quote dired-diff) "dired-aux" "\ *************** *** 6353,6359 **** ;;;*** ! ;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (15976 22456)) ;;; Generated autoloads from dired-x.el (autoload (quote dired-jump) "dired-x" "\ --- 6339,6345 ---- ;;;*** ! ;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (15997 670)) ;;; Generated autoloads from dired-x.el (autoload (quote dired-jump) "dired-x" "\ *************** *** 6367,6373 **** ;;;*** ! ;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (15996 23487)) ;;; Generated autoloads from dirtrack.el (autoload (quote dirtrack) "dirtrack" "\ --- 6353,6359 ---- ;;;*** ! ;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (15997 671)) ;;; Generated autoloads from dirtrack.el (autoload (quote dirtrack) "dirtrack" "\ *************** *** 6387,6393 **** ;;;*** ;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (16111 ! ;;;;;; 31879)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload (quote disassemble) "disass" "\ --- 6373,6379 ---- ;;;*** ;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (16111 ! ;;;;;; 41828)) ;;; Generated autoloads from emacs-lisp/disass.el (autoload (quote disassemble) "disass" "\ *************** *** 6405,6411 **** ;;;;;; standard-display-graphic standard-display-g1 standard-display-ascii ;;;;;; standard-display-default standard-display-8bit describe-current-display-table ;;;;;; describe-display-table set-display-table-slot display-table-slot ! ;;;;;; make-display-table) "disp-table" "disp-table.el" (15935 40699)) ;;; Generated autoloads from disp-table.el (autoload (quote make-display-table) "disp-table" "\ --- 6391,6397 ---- ;;;;;; standard-display-graphic standard-display-g1 standard-display-ascii ;;;;;; standard-display-default standard-display-8bit describe-current-display-table ;;;;;; describe-display-table set-display-table-slot display-table-slot ! ;;;;;; make-display-table) "disp-table" "disp-table.el" (15941 42951)) ;;; Generated autoloads from disp-table.el (autoload (quote make-display-table) "disp-table" "\ *************** *** 6522,6528 **** ;;;*** ! ;;;### (autoloads (doctor) "doctor" "play/doctor.el" (15935 48681)) ;;; Generated autoloads from play/doctor.el (autoload (quote doctor) "doctor" "\ --- 6508,6514 ---- ;;;*** ! ;;;### (autoloads (doctor) "doctor" "play/doctor.el" (15941 42963)) ;;; Generated autoloads from play/doctor.el (autoload (quote doctor) "doctor" "\ *************** *** 6533,6539 **** ;;;*** ;;;### (autoloads (double-mode double-mode) "double" "double.el" ! ;;;;;; (15935 40668)) ;;; Generated autoloads from double.el (defvar double-mode nil "\ --- 6519,6525 ---- ;;;*** ;;;### (autoloads (double-mode double-mode) "double" "double.el" ! ;;;;;; (15941 42951)) ;;; Generated autoloads from double.el (defvar double-mode nil "\ *************** *** 6554,6560 **** ;;;*** ! ;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (15935 48681)) ;;; Generated autoloads from play/dunnet.el (autoload (quote dunnet) "dunnet" "\ --- 6540,6546 ---- ;;;*** ! ;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (15941 42963)) ;;; Generated autoloads from play/dunnet.el (autoload (quote dunnet) "dunnet" "\ *************** *** 6577,6583 **** ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap ;;;;;; easy-mmode-define-global-mode define-minor-mode) "easy-mmode" ! ;;;;;; "emacs-lisp/easy-mmode.el" (16111 31879)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode)) --- 6563,6569 ---- ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap ;;;;;; easy-mmode-define-global-mode define-minor-mode) "easy-mmode" ! ;;;;;; "emacs-lisp/easy-mmode.el" (16131 19792)) ;;; Generated autoloads from emacs-lisp/easy-mmode.el (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode)) *************** *** 6652,6659 **** ;;;*** ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define ! ;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (16048 ! ;;;;;; 14080)) ;;; Generated autoloads from emacs-lisp/easymenu.el (put (quote easy-menu-define) (quote lisp-indent-function) (quote defun)) --- 6638,6645 ---- ;;;*** ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define ! ;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (16054 ! ;;;;;; 60749)) ;;; Generated autoloads from emacs-lisp/easymenu.el (put (quote easy-menu-define) (quote lisp-indent-function) (quote defun)) *************** *** 6795,6801 **** ;;;;;; ebnf-apply-style ebnf-merge-style ebnf-insert-style ebnf-setup ;;;;;; ebnf-syntax-region ebnf-syntax-buffer ebnf-eps-region ebnf-eps-buffer ;;;;;; ebnf-spool-region ebnf-spool-buffer ebnf-print-region ebnf-print-buffer ! ;;;;;; ebnf-customize) "ebnf2ps" "progmodes/ebnf2ps.el" (15943 30637)) ;;; Generated autoloads from progmodes/ebnf2ps.el (autoload (quote ebnf-customize) "ebnf2ps" "\ --- 6781,6787 ---- ;;;;;; ebnf-apply-style ebnf-merge-style ebnf-insert-style ebnf-setup ;;;;;; ebnf-syntax-region ebnf-syntax-buffer ebnf-eps-region ebnf-eps-buffer ;;;;;; ebnf-spool-region ebnf-spool-buffer ebnf-print-region ebnf-print-buffer ! ;;;;;; ebnf-customize) "ebnf2ps" "progmodes/ebnf2ps.el" (15961 24154)) ;;; Generated autoloads from progmodes/ebnf2ps.el (autoload (quote ebnf-customize) "ebnf2ps" "\ *************** *** 6942,6948 **** ;;;;;; ebrowse-back-in-position-stack ebrowse-tags-search-member-use ;;;;;; ebrowse-tags-query-replace ebrowse-tags-loop-continue ebrowse-tags-complete-symbol ;;;;;; ebrowse-electric-choose-tree ebrowse-tree-mode) "ebrowse" ! ;;;;;; "progmodes/ebrowse.el" (15957 2861)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload (quote ebrowse-tree-mode) "ebrowse" "\ --- 6928,6934 ---- ;;;;;; ebrowse-back-in-position-stack ebrowse-tags-search-member-use ;;;;;; ebrowse-tags-query-replace ebrowse-tags-loop-continue ebrowse-tags-complete-symbol ;;;;;; ebrowse-electric-choose-tree ebrowse-tree-mode) "ebrowse" ! ;;;;;; "progmodes/ebrowse.el" (15961 24154)) ;;; Generated autoloads from progmodes/ebrowse.el (autoload (quote ebrowse-tree-mode) "ebrowse" "\ *************** *** 7029,7035 **** ;;;*** ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el" ! ;;;;;; (15980 293)) ;;; Generated autoloads from ebuff-menu.el (autoload (quote electric-buffer-list) "ebuff-menu" "\ --- 7015,7021 ---- ;;;*** ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el" ! ;;;;;; (15997 671)) ;;; Generated autoloads from ebuff-menu.el (autoload (quote electric-buffer-list) "ebuff-menu" "\ *************** *** 7054,7060 **** ;;;*** ;;;### (autoloads (Electric-command-history-redo-expression) "echistory" ! ;;;;;; "echistory.el" (15935 40999)) ;;; Generated autoloads from echistory.el (autoload (quote Electric-command-history-redo-expression) "echistory" "\ --- 7040,7046 ---- ;;;*** ;;;### (autoloads (Electric-command-history-redo-expression) "echistory" ! ;;;;;; "echistory.el" (15941 42951)) ;;; Generated autoloads from echistory.el (autoload (quote Electric-command-history-redo-expression) "echistory" "\ *************** *** 7066,7072 **** ;;;*** ;;;### (autoloads (edebug-eval-top-level-form def-edebug-spec edebug-all-forms ! ;;;;;; edebug-all-defs) "edebug" "emacs-lisp/edebug.el" (16111 31879)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ --- 7052,7058 ---- ;;;*** ;;;### (autoloads (edebug-eval-top-level-form def-edebug-spec edebug-all-forms ! ;;;;;; edebug-all-defs) "edebug" "emacs-lisp/edebug.el" (16111 41828)) ;;; Generated autoloads from emacs-lisp/edebug.el (defvar edebug-all-defs nil "\ *************** *** 7129,7135 **** ;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor ;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions ;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup ! ;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (16071 49233)) ;;; Generated autoloads from ediff.el (autoload (quote ediff-files) "ediff" "\ --- 7115,7121 ---- ;;;;;; ediff-merge-directory-revisions ediff-merge-directories-with-ancestor ;;;;;; ediff-merge-directories ediff-directories3 ediff-directory-revisions ;;;;;; ediff-directories ediff-buffers3 ediff-buffers ediff-backup ! ;;;;;; ediff-files3 ediff-files) "ediff" "ediff.el" (16111 41824)) ;;; Generated autoloads from ediff.el (autoload (quote ediff-files) "ediff" "\ *************** *** 7365,7371 **** ;;;*** ;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el" ! ;;;;;; (15935 41013)) ;;; Generated autoloads from ediff-help.el (autoload (quote ediff-customize) "ediff-help" "\ --- 7351,7357 ---- ;;;*** ;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el" ! ;;;;;; (15941 42951)) ;;; Generated autoloads from ediff-help.el (autoload (quote ediff-customize) "ediff-help" "\ *************** *** 7375,7381 **** ;;;*** ! ;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (15935 41026)) ;;; Generated autoloads from ediff-hook.el (defvar ediff-window-setup-function) --- 7361,7367 ---- ;;;*** ! ;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (15941 42951)) ;;; Generated autoloads from ediff-hook.el (defvar ediff-window-setup-function) *************** *** 7388,7394 **** ;;;*** ;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el" ! ;;;;;; (16071 49233)) ;;; Generated autoloads from ediff-mult.el (autoload (quote ediff-show-registry) "ediff-mult" "\ --- 7374,7380 ---- ;;;*** ;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el" ! ;;;;;; (16111 41824)) ;;; Generated autoloads from ediff-mult.el (autoload (quote ediff-show-registry) "ediff-mult" "\ *************** *** 7401,7407 **** ;;;*** ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe) ! ;;;;;; "ediff-util" "ediff-util.el" (16071 49233)) ;;; Generated autoloads from ediff-util.el (autoload (quote ediff-toggle-multiframe) "ediff-util" "\ --- 7387,7393 ---- ;;;*** ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe) ! ;;;;;; "ediff-util" "ediff-util.el" (16111 41824)) ;;; Generated autoloads from ediff-util.el (autoload (quote ediff-toggle-multiframe) "ediff-util" "\ *************** *** 7422,7428 **** ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro ;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el" ! ;;;;;; (15935 41162)) ;;; Generated autoloads from edmacro.el (defvar edmacro-eight-bits nil "\ --- 7408,7414 ---- ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro ;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el" ! ;;;;;; (15941 42952)) ;;; Generated autoloads from edmacro.el (defvar edmacro-eight-bits nil "\ *************** *** 7475,7481 **** ;;;*** ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt" ! ;;;;;; "emulation/edt.el" (15935 47202)) ;;; Generated autoloads from emulation/edt.el (autoload (quote edt-set-scroll-margins) "edt" "\ --- 7461,7467 ---- ;;;*** ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt" ! ;;;;;; "emulation/edt.el" (15941 42958)) ;;; Generated autoloads from emulation/edt.el (autoload (quote edt-set-scroll-margins) "edt" "\ *************** *** 7493,7499 **** ;;;*** ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el" ! ;;;;;; (15935 41174)) ;;; Generated autoloads from ehelp.el (autoload (quote with-electric-help) "ehelp" "\ --- 7479,7485 ---- ;;;*** ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el" ! ;;;;;; (16139 21083)) ;;; Generated autoloads from ehelp.el (autoload (quote with-electric-help) "ehelp" "\ *************** *** 7531,7537 **** ;;;*** ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string) ! ;;;;;; "eldoc" "emacs-lisp/eldoc.el" (16055 62096)) ;;; Generated autoloads from emacs-lisp/eldoc.el (defvar eldoc-minor-mode-string " ElDoc" "\ --- 7517,7523 ---- ;;;*** ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string) ! ;;;;;; "eldoc" "emacs-lisp/eldoc.el" (16057 36338)) ;;; Generated autoloads from emacs-lisp/eldoc.el (defvar eldoc-minor-mode-string " ElDoc" "\ *************** *** 7563,7570 **** ;;;*** ! ;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (15818 ! ;;;;;; 46540)) ;;; Generated autoloads from elide-head.el (autoload (quote elide-head) "elide-head" "\ --- 7549,7556 ---- ;;;*** ! ;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (15829 ! ;;;;;; 28907)) ;;; Generated autoloads from elide-head.el (autoload (quote elide-head) "elide-head" "\ *************** *** 7580,7586 **** ;;;*** ;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el" ! ;;;;;; (15790 59914)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload (quote elint-initialize) "elint" "\ --- 7566,7572 ---- ;;;*** ;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el" ! ;;;;;; (15829 28908)) ;;; Generated autoloads from emacs-lisp/elint.el (autoload (quote elint-initialize) "elint" "\ *************** *** 7626,7632 **** ;;;*** ;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el" ! ;;;;;; (15672 29686)) ;;; Generated autoloads from mail/emacsbug.el (autoload (quote report-emacs-bug) "emacsbug" "\ --- 7612,7618 ---- ;;;*** ;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el" ! ;;;;;; (15678 51470)) ;;; Generated autoloads from mail/emacsbug.el (autoload (quote report-emacs-bug) "emacsbug" "\ *************** *** 7641,7647 **** ;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote ;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor ;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge" ! ;;;;;; "emerge.el" (15998 51012)) ;;; Generated autoloads from emerge.el (defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge")) --- 7627,7633 ---- ;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote ;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor ;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge" ! ;;;;;; "emerge.el" (16011 28192)) ;;; Generated autoloads from emerge.el (defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge")) *************** *** 7720,7726 **** ;;;*** ;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el" ! ;;;;;; (15935 48018)) ;;; Generated autoloads from international/encoded-kb.el (defvar encoded-kbd-mode nil "\ --- 7706,7712 ---- ;;;*** ;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el" ! ;;;;;; (15941 42961)) ;;; Generated autoloads from international/encoded-kb.el (defvar encoded-kbd-mode nil "\ *************** *** 7778,7785 **** ;;;*** ! ;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (15620 ! ;;;;;; 25657)) ;;; Generated autoloads from eshell/esh-mode.el (autoload (quote eshell-mode) "esh-mode" "\ --- 7764,7771 ---- ;;;*** ! ;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (15678 ! ;;;;;; 51469)) ;;; Generated autoloads from eshell/esh-mode.el (autoload (quote eshell-mode) "esh-mode" "\ *************** *** 7803,7809 **** ;;;*** ;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command ! ;;;;;; eshell) "eshell" "eshell/eshell.el" (16061 1440)) ;;; Generated autoloads from eshell/eshell.el (autoload (quote eshell) "eshell" "\ --- 7789,7795 ---- ;;;*** ;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command ! ;;;;;; eshell) "eshell" "eshell/eshell.el" (16070 35808)) ;;; Generated autoloads from eshell/eshell.el (autoload (quote eshell) "eshell" "\ *************** *** 7845,7854 **** ;;;### (autoloads (complete-tag select-tags-table tags-apropos list-tags ;;;;;; tags-query-replace tags-search tags-loop-continue next-file ;;;;;; pop-tag-mark find-tag-regexp find-tag-other-frame find-tag-other-window ! ;;;;;; find-tag find-tag-noselect tags-table-files visit-tags-table ! ;;;;;; find-tag-default-function find-tag-hook tags-add-tables tags-compression-info-list ! ;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el" ! ;;;;;; (16022 34317)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ --- 7831,7841 ---- ;;;### (autoloads (complete-tag select-tags-table tags-apropos list-tags ;;;;;; tags-query-replace tags-search tags-loop-continue next-file ;;;;;; pop-tag-mark find-tag-regexp find-tag-other-frame find-tag-other-window ! ;;;;;; find-tag find-tag-noselect tags-table-files visit-tags-table-buffer ! ;;;;;; visit-tags-table find-tag-default-function find-tag-hook ! ;;;;;; tags-add-tables tags-compression-info-list tags-table-list ! ;;;;;; tags-case-fold-search) "etags" "progmodes/etags.el" (16148 ! ;;;;;; 4633)) ;;; Generated autoloads from progmodes/etags.el (defvar tags-file-name nil "\ *************** *** 7919,7924 **** --- 7906,7923 ---- \(fn FILE &optional LOCAL)" t nil) + (autoload (quote visit-tags-table-buffer) "etags" "\ + Select the buffer containing the current tags table. + If optional arg is a string, visit that file as a tags table. + If optional arg is t, visit the next table in `tags-table-list'. + If optional arg is the atom `same', don't look for a new table; + just select the buffer visiting `tags-file-name'. + If arg is nil or absent, choose a first buffer from information in + `tags-file-name', `tags-table-list', `tags-table-list-pointer'. + Returns t if it visits a tags table, or nil if there are no more in the list. + + \(fn &optional CONT)" nil nil) + (autoload (quote tags-table-files) "etags" "\ Return a list of files in the current tags table. Assumes the tags table is the current buffer. The file names are returned *************** *** 8133,8139 **** ;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker ;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker ;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal) ! ;;;;;; "ethio-util" "language/ethio-util.el" (15935 48150)) ;;; Generated autoloads from language/ethio-util.el (autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\ --- 8132,8138 ---- ;;;;;; ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker ;;;;;; ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker ;;;;;; ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal) ! ;;;;;; "ethio-util" "language/ethio-util.el" (15941 42961)) ;;; Generated autoloads from language/ethio-util.el (autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\ *************** *** 8328,8334 **** ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline ;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el" ! ;;;;;; (15791 51837)) ;;; Generated autoloads from net/eudc.el (autoload (quote eudc-set-server) "eudc" "\ --- 8327,8333 ---- ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline ;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el" ! ;;;;;; (15829 28909)) ;;; Generated autoloads from net/eudc.el (autoload (quote eudc-set-server) "eudc" "\ *************** *** 8447,8453 **** ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p ;;;;;; executable-self-display executable-set-magic executable-find) ! ;;;;;; "executable" "progmodes/executable.el" (16071 64787)) ;;; Generated autoloads from progmodes/executable.el (autoload (quote executable-find) "executable" "\ --- 8446,8452 ---- ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p ;;;;;; executable-self-display executable-set-magic executable-find) ! ;;;;;; "executable" "progmodes/executable.el" (16111 41832)) ;;; Generated autoloads from progmodes/executable.el (autoload (quote executable-find) "executable" "\ *************** *** 8524,8530 **** ;;;*** ! ;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (16034 39468)) ;;; Generated autoloads from progmodes/f90.el (autoload (quote f90-mode) "f90" "\ --- 8523,8529 ---- ;;;*** ! ;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (16054 60750)) ;;; Generated autoloads from progmodes/f90.el (autoload (quote f90-mode) "f90" "\ *************** *** 8593,8599 **** ;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only ;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu ;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face) ! ;;;;;; "facemenu" "facemenu.el" (15935 41357)) ;;; Generated autoloads from facemenu.el (define-key global-map "\M-g" 'facemenu-keymap) (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap) --- 8592,8598 ---- ;;;;;; facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only ;;;;;; facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu ;;;;;; facemenu-set-background facemenu-set-foreground facemenu-set-face) ! ;;;;;; "facemenu" "facemenu.el" (15941 42952)) ;;; Generated autoloads from facemenu.el (define-key global-map "\M-g" 'facemenu-keymap) (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap) *************** *** 8752,8758 **** ;;;*** ;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock" ! ;;;;;; "fast-lock.el" (15930 37682)) ;;; Generated autoloads from fast-lock.el (autoload (quote fast-lock-mode) "fast-lock" "\ --- 8751,8757 ---- ;;;*** ;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock" ! ;;;;;; "fast-lock.el" (15941 42952)) ;;; Generated autoloads from fast-lock.el (autoload (quote fast-lock-mode) "fast-lock" "\ *************** *** 8793,8799 **** ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue ;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts ! ;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (15832 6910)) ;;; Generated autoloads from mail/feedmail.el (autoload (quote feedmail-send-it) "feedmail" "\ --- 8792,8798 ---- ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue ;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts ! ;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (15856 53274)) ;;; Generated autoloads from mail/feedmail.el (autoload (quote feedmail-send-it) "feedmail" "\ *************** *** 8847,8853 **** ;;;*** ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu ! ;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (15975 45005)) ;;; Generated autoloads from ffap.el (autoload (quote ffap-next) "ffap" "\ --- 8846,8852 ---- ;;;*** ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu ! ;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (15997 671)) ;;; Generated autoloads from ffap.el (autoload (quote ffap-next) "ffap" "\ *************** *** 8906,8912 **** ;;;*** ;;;### (autoloads (file-cache-minibuffer-complete) "filecache" "filecache.el" ! ;;;;;; (15996 23174)) ;;; Generated autoloads from filecache.el (autoload (quote file-cache-minibuffer-complete) "filecache" "\ --- 8905,8911 ---- ;;;*** ;;;### (autoloads (file-cache-minibuffer-complete) "filecache" "filecache.el" ! ;;;;;; (15997 671)) ;;; Generated autoloads from filecache.el (autoload (quote file-cache-minibuffer-complete) "filecache" "\ *************** *** 8925,8931 **** ;;;*** ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options ! ;;;;;; find-ls-option) "find-dired" "find-dired.el" (15935 41394)) ;;; Generated autoloads from find-dired.el (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\ --- 8924,8930 ---- ;;;*** ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options ! ;;;;;; find-ls-option) "find-dired" "find-dired.el" (15941 42952)) ;;; Generated autoloads from find-dired.el (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\ *************** *** 8978,8984 **** ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file ;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el" ! ;;;;;; (16072 61017)) ;;; Generated autoloads from find-file.el (autoload (quote ff-get-other-file) "find-file" "\ --- 8977,8983 ---- ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file ;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el" ! ;;;;;; (16111 41825)) ;;; Generated autoloads from find-file.el (autoload (quote ff-get-other-file) "find-file" "\ *************** *** 9063,9069 **** ;;;;;; find-variable-other-window find-variable find-variable-noselect ;;;;;; find-function-other-frame find-function-other-window find-function ;;;;;; find-function-noselect find-function-search-for-symbol find-library) ! ;;;;;; "find-func" "emacs-lisp/find-func.el" (16072 61074)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload (quote find-library) "find-func" "\ --- 9062,9068 ---- ;;;;;; find-variable-other-window find-variable find-variable-noselect ;;;;;; find-function-other-frame find-function-other-window find-function ;;;;;; find-function-noselect find-function-search-for-symbol find-library) ! ;;;;;; "find-func" "emacs-lisp/find-func.el" (16111 41828)) ;;; Generated autoloads from emacs-lisp/find-func.el (autoload (quote find-library) "find-func" "\ *************** *** 9204,9210 **** ;;;*** ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords) ! ;;;;;; "finder" "finder.el" (15887 14308)) ;;; Generated autoloads from finder.el (autoload (quote finder-list-keywords) "finder" "\ --- 9203,9209 ---- ;;;*** ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords) ! ;;;;;; "finder" "finder.el" (15924 18767)) ;;; Generated autoloads from finder.el (autoload (quote finder-list-keywords) "finder" "\ *************** *** 9226,9232 **** ;;;*** ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl" ! ;;;;;; "flow-ctrl.el" (15935 41434)) ;;; Generated autoloads from flow-ctrl.el (autoload (quote enable-flow-control) "flow-ctrl" "\ --- 9225,9231 ---- ;;;*** ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl" ! ;;;;;; "flow-ctrl.el" (15941 42952)) ;;; Generated autoloads from flow-ctrl.el (autoload (quote enable-flow-control) "flow-ctrl" "\ *************** *** 9249,9255 **** ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off ;;;;;; flyspell-version flyspell-mode flyspell-prog-mode flyspell-mode-line-string) ! ;;;;;; "flyspell" "textmodes/flyspell.el" (15577 17335)) ;;; Generated autoloads from textmodes/flyspell.el (defvar flyspell-mode-line-string " Fly" "\ --- 9248,9254 ---- ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off ;;;;;; flyspell-version flyspell-mode flyspell-prog-mode flyspell-mode-line-string) ! ;;;;;; "flyspell" "textmodes/flyspell.el" (15589 6175)) ;;; Generated autoloads from textmodes/flyspell.el (defvar flyspell-mode-line-string " Fly" "\ *************** *** 9323,9329 **** ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode ;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" ! ;;;;;; (15832 29330)) ;;; Generated autoloads from follow.el (autoload (quote turn-on-follow-mode) "follow" "\ --- 9322,9328 ---- ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode ;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el" ! ;;;;;; (15856 53268)) ;;; Generated autoloads from follow.el (autoload (quote turn-on-follow-mode) "follow" "\ *************** *** 9399,9405 **** ;;;### (autoloads (font-lock-fontify-buffer font-lock-remove-keywords ;;;;;; font-lock-add-keywords font-lock-mode-internal) "font-lock" ! ;;;;;; "font-lock.el" (16027 16187)) ;;; Generated autoloads from font-lock.el (autoload (quote font-lock-mode-internal) "font-lock" "\ --- 9398,9404 ---- ;;;### (autoloads (font-lock-fontify-buffer font-lock-remove-keywords ;;;;;; font-lock-add-keywords font-lock-mode-internal) "font-lock" ! ;;;;;; "font-lock.el" (16138 682)) ;;; Generated autoloads from font-lock.el (autoload (quote font-lock-mode-internal) "font-lock" "\ *************** *** 9455,9462 **** ;;;*** ! ;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (15935 ! ;;;;;; 48280)) ;;; Generated autoloads from mail/footnote.el (autoload (quote footnote-mode) "footnote" "\ --- 9454,9461 ---- ;;;*** ! ;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (15941 ! ;;;;;; 42961)) ;;; Generated autoloads from mail/footnote.el (autoload (quote footnote-mode) "footnote" "\ *************** *** 9477,9483 **** ;;;*** ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode) ! ;;;;;; "forms" "forms.el" (16111 31861)) ;;; Generated autoloads from forms.el (autoload (quote forms-mode) "forms" "\ --- 9476,9482 ---- ;;;*** ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode) ! ;;;;;; "forms" "forms.el" (16111 41825)) ;;; Generated autoloads from forms.el (autoload (quote forms-mode) "forms" "\ *************** *** 9514,9520 **** ;;;*** ;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran" ! ;;;;;; "progmodes/fortran.el" (16116 34477)) ;;; Generated autoloads from progmodes/fortran.el (defvar fortran-tab-mode-default nil "\ --- 9513,9519 ---- ;;;*** ;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran" ! ;;;;;; "progmodes/fortran.el" (16131 19793)) ;;; Generated autoloads from progmodes/fortran.el (defvar fortran-tab-mode-default nil "\ *************** *** 9600,9606 **** ;;;*** ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region ! ;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (15935 48681)) ;;; Generated autoloads from play/fortune.el (autoload (quote fortune-add-fortune) "fortune" "\ --- 9599,9605 ---- ;;;*** ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region ! ;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (15941 42963)) ;;; Generated autoloads from play/fortune.el (autoload (quote fortune-add-fortune) "fortune" "\ *************** *** 9650,9656 **** ;;;*** ;;;### (autoloads (set-fringe-style fringe-mode fringe-mode) "fringe" ! ;;;;;; "fringe.el" (15985 65470)) ;;; Generated autoloads from fringe.el (defvar fringe-mode nil "\ --- 9649,9655 ---- ;;;*** ;;;### (autoloads (set-fringe-style fringe-mode fringe-mode) "fringe" ! ;;;;;; "fringe.el" (15997 671)) ;;; Generated autoloads from fringe.el (defvar fringe-mode nil "\ *************** *** 9696,9702 **** ;;;*** ! ;;;### (autoloads (gdba) "gdb-ui" "gdb-ui.el" (16116 34476)) ;;; Generated autoloads from gdb-ui.el (autoload (quote gdba) "gdb-ui" "\ --- 9695,9701 ---- ;;;*** ! ;;;### (autoloads (gdba) "gdb-ui" "gdb-ui.el" (16139 21084)) ;;; Generated autoloads from gdb-ui.el (autoload (quote gdba) "gdb-ui" "\ *************** *** 9817,9823 **** ;;;*** ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server ! ;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (15935 47838)) ;;; Generated autoloads from gnus/gnus.el (autoload (quote gnus-slave-no-server) "gnus" "\ --- 9816,9822 ---- ;;;*** ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server ! ;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (15941 42960)) ;;; Generated autoloads from gnus/gnus.el (autoload (quote gnus-slave-no-server) "gnus" "\ *************** *** 9857,9863 **** ;;;### (autoloads (gnus-agent-batch gnus-agent-batch-fetch gnus-agentize ;;;;;; gnus-plugged gnus-unplugged) "gnus-agent" "gnus/gnus-agent.el" ! ;;;;;; (15935 47838)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload (quote gnus-unplugged) "gnus-agent" "\ --- 9856,9862 ---- ;;;### (autoloads (gnus-agent-batch gnus-agent-batch-fetch gnus-agentize ;;;;;; gnus-plugged gnus-unplugged) "gnus-agent" "gnus/gnus-agent.el" ! ;;;;;; (15941 42960)) ;;; Generated autoloads from gnus/gnus-agent.el (autoload (quote gnus-unplugged) "gnus-agent" "\ *************** *** 9896,9902 **** ;;;*** ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" ! ;;;;;; (16055 61921)) ;;; Generated autoloads from gnus/gnus-art.el (autoload (quote gnus-article-prepare-display) "gnus-art" "\ --- 9895,9901 ---- ;;;*** ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el" ! ;;;;;; (16057 36338)) ;;; Generated autoloads from gnus/gnus-art.el (autoload (quote gnus-article-prepare-display) "gnus-art" "\ *************** *** 9918,9925 **** ;;;*** ;;;### (autoloads (gnus-cache-generate-nov-databases gnus-cache-generate-active ! ;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (15935 ! ;;;;;; 47838)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload (quote gnus-jog-cache) "gnus-cache" "\ --- 9917,9924 ---- ;;;*** ;;;### (autoloads (gnus-cache-generate-nov-databases gnus-cache-generate-active ! ;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (15941 ! ;;;;;; 42960)) ;;; Generated autoloads from gnus/gnus-cache.el (autoload (quote gnus-jog-cache) "gnus-cache" "\ *************** *** 9943,9949 **** ;;;*** ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) ! ;;;;;; "gnus-group" "gnus/gnus-group.el" (15935 47838)) ;;; Generated autoloads from gnus/gnus-group.el (autoload (quote gnus-fetch-group) "gnus-group" "\ --- 9942,9948 ---- ;;;*** ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group) ! ;;;;;; "gnus-group" "gnus/gnus-group.el" (16131 19792)) ;;; Generated autoloads from gnus/gnus-group.el (autoload (quote gnus-fetch-group) "gnus-group" "\ *************** *** 9974,9980 **** ;;;*** ;;;### (autoloads (gnus-mailing-list-mode turn-on-gnus-mailing-list-mode) ! ;;;;;; "gnus-ml" "gnus/gnus-ml.el" (15935 47838)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\ --- 9973,9979 ---- ;;;*** ;;;### (autoloads (gnus-mailing-list-mode turn-on-gnus-mailing-list-mode) ! ;;;;;; "gnus-ml" "gnus/gnus-ml.el" (15941 42960)) ;;; Generated autoloads from gnus/gnus-ml.el (autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\ *************** *** 9993,9999 **** ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update ;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el" ! ;;;;;; (15847 36479)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload (quote gnus-group-split-setup) "gnus-mlspl" "\ --- 9992,9998 ---- ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update ;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el" ! ;;;;;; (15856 53273)) ;;; Generated autoloads from gnus/gnus-mlspl.el (autoload (quote gnus-group-split-setup) "gnus-mlspl" "\ *************** *** 10104,10111 **** ;;;*** ! ;;;### (autoloads (gnus-msg-mail) "gnus-msg" "gnus/gnus-msg.el" (15935 ! ;;;;;; 47838)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload (quote gnus-msg-mail) "gnus-msg" "\ --- 10103,10110 ---- ;;;*** ! ;;;### (autoloads (gnus-msg-mail) "gnus-msg" "gnus/gnus-msg.el" (15941 ! ;;;;;; 42960)) ;;; Generated autoloads from gnus/gnus-msg.el (autoload (quote gnus-msg-mail) "gnus-msg" "\ *************** *** 10120,10126 **** ;;;*** ;;;### (autoloads (gnus-mule-add-group) "gnus-mule" "gnus/gnus-mule.el" ! ;;;;;; (15847 36479)) ;;; Generated autoloads from gnus/gnus-mule.el (autoload (quote gnus-mule-add-group) "gnus-mule" "\ --- 10119,10125 ---- ;;;*** ;;;### (autoloads (gnus-mule-add-group) "gnus-mule" "gnus/gnus-mule.el" ! ;;;;;; (15856 53273)) ;;; Generated autoloads from gnus/gnus-mule.el (autoload (quote gnus-mule-add-group) "gnus-mule" "\ *************** *** 10169,10175 **** ;;;*** ;;;### (autoloads (gnus-declare-backend gnus-unload) "gnus-start" ! ;;;;;; "gnus/gnus-start.el" (15650 59284)) ;;; Generated autoloads from gnus/gnus-start.el (autoload (quote gnus-unload) "gnus-start" "\ --- 10168,10174 ---- ;;;*** ;;;### (autoloads (gnus-declare-backend gnus-unload) "gnus-start" ! ;;;;;; "gnus/gnus-start.el" (15678 51469)) ;;; Generated autoloads from gnus/gnus-start.el (autoload (quote gnus-unload) "gnus-start" "\ *************** *** 10188,10194 **** ;;;*** ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el" ! ;;;;;; (15847 36480)) ;;; Generated autoloads from gnus/gnus-win.el (autoload (quote gnus-add-configuration) "gnus-win" "\ --- 10187,10193 ---- ;;;*** ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el" ! ;;;;;; (15856 53274)) ;;; Generated autoloads from gnus/gnus-win.el (autoload (quote gnus-add-configuration) "gnus-win" "\ *************** *** 10198,10204 **** ;;;*** ! ;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (16024 13827)) ;;; Generated autoloads from play/gomoku.el (autoload (quote gomoku) "gomoku" "\ --- 10197,10203 ---- ;;;*** ! ;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (16025 36884)) ;;; Generated autoloads from play/gomoku.el (autoload (quote gomoku) "gomoku" "\ *************** *** 10225,10231 **** ;;;*** ;;;### (autoloads (goto-address goto-address-at-point goto-address-at-mouse) ! ;;;;;; "goto-addr" "net/goto-addr.el" (16072 61173)) ;;; Generated autoloads from net/goto-addr.el (autoload (quote goto-address-at-mouse) "goto-addr" "\ --- 10224,10230 ---- ;;;*** ;;;### (autoloads (goto-address goto-address-at-point goto-address-at-mouse) ! ;;;;;; "goto-addr" "net/goto-addr.el" (16111 41831)) ;;; Generated autoloads from net/goto-addr.el (autoload (quote goto-address-at-mouse) "goto-addr" "\ *************** *** 10271,10277 **** ;;;*** ;;;### (autoloads (gdb-script-mode bashdb jdb pdb perldb xdb dbx ! ;;;;;; sdb gdb) "gud" "progmodes/gud.el" (16116 34477)) ;;; Generated autoloads from progmodes/gud.el (autoload (quote gdb) "gud" "\ --- 10270,10276 ---- ;;;*** ;;;### (autoloads (gdb-script-mode bashdb jdb pdb perldb xdb dbx ! ;;;;;; sdb gdb) "gud" "progmodes/gud.el" (16131 19793)) ;;; Generated autoloads from progmodes/gud.el (autoload (quote gdb) "gud" "\ *************** *** 10352,10359 **** ;;;*** ! ;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (15935 ! ;;;;;; 48681)) ;;; Generated autoloads from play/handwrite.el (autoload (quote handwrite) "handwrite" "\ --- 10351,10358 ---- ;;;*** ! ;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (15941 ! ;;;;;; 42963)) ;;; Generated autoloads from play/handwrite.el (autoload (quote handwrite) "handwrite" "\ *************** *** 10371,10377 **** ;;;*** ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el" ! ;;;;;; (15935 48681)) ;;; Generated autoloads from play/hanoi.el (autoload (quote hanoi) "hanoi" "\ --- 10370,10376 ---- ;;;*** ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el" ! ;;;;;; (15941 42963)) ;;; Generated autoloads from play/hanoi.el (autoload (quote hanoi) "hanoi" "\ *************** *** 10400,10406 **** ;;;### (autoloads (describe-categories describe-syntax describe-variable ;;;;;; variable-at-point describe-function-1 describe-function locate-library ! ;;;;;; help-with-tutorial) "help-fns" "help-fns.el" (16065 15076)) ;;; Generated autoloads from help-fns.el (autoload (quote help-with-tutorial) "help-fns" "\ --- 10399,10405 ---- ;;;### (autoloads (describe-categories describe-syntax describe-variable ;;;;;; variable-at-point describe-function-1 describe-function locate-library ! ;;;;;; help-with-tutorial) "help-fns" "help-fns.el" (16070 35806)) ;;; Generated autoloads from help-fns.el (autoload (quote help-with-tutorial) "help-fns" "\ *************** *** 10468,10474 **** ;;;*** ;;;### (autoloads (three-step-help) "help-macro" "help-macro.el" ! ;;;;;; (15954 4442)) ;;; Generated autoloads from help-macro.el (defvar three-step-help nil "\ --- 10467,10473 ---- ;;;*** ;;;### (autoloads (three-step-help) "help-macro" "help-macro.el" ! ;;;;;; (15961 24150)) ;;; Generated autoloads from help-macro.el (defvar three-step-help nil "\ *************** *** 10484,10490 **** ;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button ;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup ! ;;;;;; help-mode) "help-mode" "help-mode.el" (16039 41462)) ;;; Generated autoloads from help-mode.el (autoload (quote help-mode) "help-mode" "\ --- 10483,10489 ---- ;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button ;;;;;; help-make-xrefs help-setup-xref help-mode-finish help-mode-setup ! ;;;;;; help-mode) "help-mode" "help-mode.el" (16054 60746)) ;;; Generated autoloads from help-mode.el (autoload (quote help-mode) "help-mode" "\ *************** *** 10564,10570 **** ;;;*** ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper" ! ;;;;;; "emacs-lisp/helper.el" (15954 4801)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload (quote Helper-describe-bindings) "helper" "\ --- 10563,10569 ---- ;;;*** ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper" ! ;;;;;; "emacs-lisp/helper.el" (15961 24152)) ;;; Generated autoloads from emacs-lisp/helper.el (autoload (quote Helper-describe-bindings) "helper" "\ *************** *** 10580,10586 **** ;;;*** ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl" ! ;;;;;; "hexl.el" (16030 5145)) ;;; Generated autoloads from hexl.el (autoload (quote hexl-mode) "hexl" "\ --- 10579,10585 ---- ;;;*** ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl" ! ;;;;;; "hexl.el" (16054 60746)) ;;; Generated autoloads from hexl.el (autoload (quote hexl-mode) "hexl" "\ *************** *** 10675,10682 **** ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer ;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer ! ;;;;;; hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" (15935 ! ;;;;;; 41671)) ;;; Generated autoloads from hi-lock.el (defvar hi-lock-mode nil "\ --- 10674,10681 ---- ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer ;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer ! ;;;;;; hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el" (15941 ! ;;;;;; 42952)) ;;; Generated autoloads from hi-lock.el (defvar hi-lock-mode nil "\ *************** *** 10787,10793 **** ;;;*** ;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially ! ;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (15935 48914)) ;;; Generated autoloads from progmodes/hideif.el (autoload (quote hide-ifdef-mode) "hideif" "\ --- 10786,10792 ---- ;;;*** ;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially ! ;;;;;; hide-ifdef-mode) "hideif" "progmodes/hideif.el" (15941 42965)) ;;; Generated autoloads from progmodes/hideif.el (autoload (quote hide-ifdef-mode) "hideif" "\ *************** *** 10842,10848 **** ;;;*** ;;;### (autoloads (hs-minor-mode hs-hide-comments-when-hiding-all) ! ;;;;;; "hideshow" "progmodes/hideshow.el" (15587 40845)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-hide-comments-when-hiding-all t "\ --- 10841,10847 ---- ;;;*** ;;;### (autoloads (hs-minor-mode hs-hide-comments-when-hiding-all) ! ;;;;;; "hideshow" "progmodes/hideshow.el" (15589 6174)) ;;; Generated autoloads from progmodes/hideshow.el (defvar hs-hide-comments-when-hiding-all t "\ *************** *** 10903,10909 **** ;;;### (autoloads (global-highlight-changes highlight-compare-with-file ;;;;;; highlight-changes-rotate-faces highlight-changes-previous-change ;;;;;; highlight-changes-next-change highlight-changes-mode highlight-changes-remove-highlight) ! ;;;;;; "hilit-chg" "hilit-chg.el" (15935 41683)) ;;; Generated autoloads from hilit-chg.el (defvar highlight-changes-mode nil) --- 10902,10908 ---- ;;;### (autoloads (global-highlight-changes highlight-compare-with-file ;;;;;; highlight-changes-rotate-faces highlight-changes-previous-change ;;;;;; highlight-changes-next-change highlight-changes-mode highlight-changes-remove-highlight) ! ;;;;;; "hilit-chg" "hilit-chg.el" (15941 42952)) ;;; Generated autoloads from hilit-chg.el (defvar highlight-changes-mode nil) *************** *** 11021,11027 **** ;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction ;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space ;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp" ! ;;;;;; "hippie-exp.el" (15930 37749)) ;;; Generated autoloads from hippie-exp.el (defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\ --- 11020,11026 ---- ;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction ;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space ;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp" ! ;;;;;; "hippie-exp.el" (15941 42952)) ;;; Generated autoloads from hippie-exp.el (defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\ *************** *** 11094,11100 **** ;;;*** ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el" ! ;;;;;; (16068 44808)) ;;; Generated autoloads from hl-line.el (autoload (quote hl-line-mode) "hl-line" "\ --- 11093,11099 ---- ;;;*** ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el" ! ;;;;;; (16070 35806)) ;;; Generated autoloads from hl-line.el (autoload (quote hl-line-mode) "hl-line" "\ *************** *** 11134,11140 **** ;;;*** ;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el" ! ;;;;;; (15935 46813)) ;;; Generated autoloads from calendar/holidays.el (autoload (quote holidays) "holidays" "\ --- 11133,11139 ---- ;;;*** ;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from calendar/holidays.el (autoload (quote holidays) "holidays" "\ *************** *** 11158,11164 **** ;;;*** ;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll) ! ;;;;;; "hscroll" "obsolete/hscroll.el" (15935 48553)) ;;; Generated autoloads from obsolete/hscroll.el (autoload (quote turn-on-hscroll) "hscroll" "\ --- 11157,11163 ---- ;;;*** ;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll) ! ;;;;;; "hscroll" "obsolete/hscroll.el" (15941 42963)) ;;; Generated autoloads from obsolete/hscroll.el (autoload (quote turn-on-hscroll) "hscroll" "\ *************** *** 11205,11211 **** ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode ! ;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (16013 64855)) ;;; Generated autoloads from ibuf-ext.el (autoload (quote ibuffer-auto-mode) "ibuf-ext" "\ --- 11204,11210 ---- ;;;;;; ibuffer-backward-filter-group ibuffer-forward-filter-group ;;;;;; ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group ;;;;;; ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode ! ;;;;;; ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (16135 8990)) ;;; Generated autoloads from ibuf-ext.el (autoload (quote ibuffer-auto-mode) "ibuf-ext" "\ *************** *** 11558,11565 **** ;;;*** ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter ! ;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (16071 ! ;;;;;; 53334)) ;;; Generated autoloads from ibuf-macs.el (autoload (quote define-ibuffer-column) "ibuf-macs" "\ --- 11557,11564 ---- ;;;*** ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter ! ;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (16111 ! ;;;;;; 41826)) ;;; Generated autoloads from ibuf-macs.el (autoload (quote define-ibuffer-column) "ibuf-macs" "\ *************** *** 11645,11651 **** ;;;*** ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) ! ;;;;;; "ibuffer" "ibuffer.el" (16071 53236)) ;;; Generated autoloads from ibuffer.el (autoload (quote ibuffer-list-buffers) "ibuffer" "\ --- 11644,11650 ---- ;;;*** ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) ! ;;;;;; "ibuffer" "ibuffer.el" (16135 8990)) ;;; Generated autoloads from ibuffer.el (autoload (quote ibuffer-list-buffers) "ibuffer" "\ *************** *** 11685,11691 **** ;;;*** ;;;### (autoloads (icomplete-minibuffer-setup icomplete-mode) "icomplete" ! ;;;;;; "icomplete.el" (15935 41799)) ;;; Generated autoloads from icomplete.el (autoload (quote icomplete-mode) "icomplete" "\ --- 11684,11690 ---- ;;;*** ;;;### (autoloads (icomplete-minibuffer-setup icomplete-mode) "icomplete" ! ;;;;;; "icomplete.el" (15941 42953)) ;;; Generated autoloads from icomplete.el (autoload (quote icomplete-mode) "icomplete" "\ *************** *** 11702,11708 **** ;;;*** ! ;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (15935 48915)) ;;; Generated autoloads from progmodes/icon.el (autoload (quote icon-mode) "icon" "\ --- 11701,11707 ---- ;;;*** ! ;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (15941 42965)) ;;; Generated autoloads from progmodes/icon.el (autoload (quote icon-mode) "icon" "\ *************** *** 11743,11749 **** ;;;*** ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" ! ;;;;;; (15790 55821)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload (quote idlwave-shell) "idlw-shell" "\ --- 11742,11748 ---- ;;;*** ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el" ! ;;;;;; (15829 28909)) ;;; Generated autoloads from progmodes/idlw-shell.el (autoload (quote idlwave-shell) "idlw-shell" "\ *************** *** 11769,11775 **** ;;;*** ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" ! ;;;;;; (16055 62372)) ;;; Generated autoloads from progmodes/idlwave.el (autoload (quote idlwave-mode) "idlwave" "\ --- 11768,11774 ---- ;;;*** ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el" ! ;;;;;; (16057 36339)) ;;; Generated autoloads from progmodes/idlwave.el (autoload (quote idlwave-mode) "idlwave" "\ *************** *** 11900,11906 **** ;;;;;; ido-find-file ido-find-file-in-dir ido-switch-buffer-other-frame ;;;;;; ido-insert-buffer ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window ;;;;;; ido-switch-buffer ido-read-buffer ido-mode ido-mode) "ido" ! ;;;;;; "ido.el" (15995 47749)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ --- 11899,11905 ---- ;;;;;; ido-find-file ido-find-file-in-dir ido-switch-buffer-other-frame ;;;;;; ido-insert-buffer ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window ;;;;;; ido-switch-buffer ido-read-buffer ido-mode ido-mode) "ido" ! ;;;;;; "ido.el" (15997 671)) ;;; Generated autoloads from ido.el (defvar ido-mode nil "\ *************** *** 12142,12148 **** ;;;*** ! ;;;### (autoloads (ielm) "ielm" "ielm.el" (15935 41827)) ;;; Generated autoloads from ielm.el (add-hook 'same-window-buffer-names "*ielm*") --- 12141,12147 ---- ;;;*** ! ;;;### (autoloads (ielm) "ielm" "ielm.el" (15941 42953)) ;;; Generated autoloads from ielm.el (add-hook 'same-window-buffer-names "*ielm*") *************** *** 12156,12162 **** ;;;### (autoloads (defimage find-image remove-images insert-image ;;;;;; put-image create-image image-type-available-p image-type-from-file-header ! ;;;;;; image-type-from-data) "image" "image.el" (15935 41897)) ;;; Generated autoloads from image.el (autoload (quote image-type-from-data) "image" "\ --- 12155,12161 ---- ;;;### (autoloads (defimage find-image remove-images insert-image ;;;;;; put-image create-image image-type-available-p image-type-from-file-header ! ;;;;;; image-type-from-data) "image" "image.el" (15941 42953)) ;;; Generated autoloads from image.el (autoload (quote image-type-from-data) "image" "\ *************** *** 12271,12277 **** ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp ;;;;;; image-file-name-regexps image-file-name-extensions) "image-file" ! ;;;;;; "image-file.el" (15786 7485)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\ --- 12270,12276 ---- ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp ;;;;;; image-file-name-regexps image-file-name-extensions) "image-file" ! ;;;;;; "image-file.el" (15829 28907)) ;;; Generated autoloads from image-file.el (defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\ *************** *** 12332,12338 **** ;;;*** ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar ! ;;;;;; imenu-sort-function) "imenu" "imenu.el" (16069 21415)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ --- 12331,12337 ---- ;;;*** ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar ! ;;;;;; imenu-sort-function) "imenu" "imenu.el" (16070 35806)) ;;; Generated autoloads from imenu.el (defvar imenu-sort-function nil "\ *************** *** 12485,12491 **** ;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion ;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region) ! ;;;;;; "ind-util" "language/ind-util.el" (16071 62458)) ;;; Generated autoloads from language/ind-util.el (autoload (quote indian-compose-region) "ind-util" "\ --- 12484,12490 ---- ;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion ;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region) ! ;;;;;; "ind-util" "language/ind-util.el" (16111 41831)) ;;; Generated autoloads from language/ind-util.el (autoload (quote indian-compose-region) "ind-util" "\ *************** *** 12527,12533 **** ;;;*** ;;;### (autoloads (inferior-lisp) "inf-lisp" "progmodes/inf-lisp.el" ! ;;;;;; (15650 57540)) ;;; Generated autoloads from progmodes/inf-lisp.el (defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\ --- 12526,12532 ---- ;;;*** ;;;### (autoloads (inferior-lisp) "inf-lisp" "progmodes/inf-lisp.el" ! ;;;;;; (15678 51473)) ;;; Generated autoloads from progmodes/inf-lisp.el (defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\ *************** *** 12586,12592 **** ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node ;;;;;; Info-goto-emacs-command-node Info-index Info-directory info-standalone ;;;;;; info-emacs-manual info info-other-window) "info" "info.el" ! ;;;;;; (16116 34476)) ;;; Generated autoloads from info.el (autoload (quote info-other-window) "info" "\ --- 12585,12591 ---- ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node ;;;;;; Info-goto-emacs-command-node Info-index Info-directory info-standalone ;;;;;; info-emacs-manual info info-other-window) "info" "info.el" ! ;;;;;; (16149 47790)) ;;; Generated autoloads from info.el (autoload (quote info-other-window) "info" "\ *************** *** 12669,12675 **** ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file ;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" ! ;;;;;; (16083 48497)) ;;; Generated autoloads from info-look.el (autoload (quote info-lookup-reset) "info-look" "\ --- 12668,12674 ---- ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file ;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" ! ;;;;;; (16111 41826)) ;;; Generated autoloads from info-look.el (autoload (quote info-lookup-reset) "info-look" "\ *************** *** 12732,12738 **** ;;;*** ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify) ! ;;;;;; "informat" "informat.el" (15935 42088)) ;;; Generated autoloads from informat.el (autoload (quote Info-tagify) "informat" "\ --- 12731,12737 ---- ;;;*** ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify) ! ;;;;;; "informat" "informat.el" (15941 42953)) ;;; Generated autoloads from informat.el (autoload (quote Info-tagify) "informat" "\ *************** *** 12794,12800 **** ;;;*** ;;;### (autoloads (iso-accents-mode) "iso-acc" "international/iso-acc.el" ! ;;;;;; (15935 48018)) ;;; Generated autoloads from international/iso-acc.el (autoload (quote iso-accents-mode) "iso-acc" "\ --- 12793,12799 ---- ;;;*** ;;;### (autoloads (iso-accents-mode) "iso-acc" "international/iso-acc.el" ! ;;;;;; (15941 42961)) ;;; Generated autoloads from international/iso-acc.el (autoload (quote iso-accents-mode) "iso-acc" "\ *************** *** 12827,12833 **** ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only ;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso ;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt" ! ;;;;;; "international/iso-cvt.el" (15935 48018)) ;;; Generated autoloads from international/iso-cvt.el (autoload (quote iso-spanish) "iso-cvt" "\ --- 12826,12832 ---- ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only ;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso ;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt" ! ;;;;;; "international/iso-cvt.el" (15941 42961)) ;;; Generated autoloads from international/iso-cvt.el (autoload (quote iso-spanish) "iso-cvt" "\ *************** *** 12911,12917 **** ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" ! ;;;;;; (15935 48018)) ;;; Generated autoloads from international/iso-transl.el (or key-translation-map (setq key-translation-map (make-sparse-keymap))) (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) --- 12910,12916 ---- ;;;*** ;;;### (autoloads nil "iso-transl" "international/iso-transl.el" ! ;;;;;; (15941 42961)) ;;; Generated autoloads from international/iso-transl.el (or key-translation-map (setq key-translation-map (make-sparse-keymap))) (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map) *************** *** 12924,12930 **** ;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell ;;;;;; ispell-help ispell-pdict-save ispell-word ispell-dictionary-alist ;;;;;; ispell-local-dictionary-alist ispell-personal-dictionary) ! ;;;;;; "ispell" "textmodes/ispell.el" (16077 16968)) ;;; Generated autoloads from textmodes/ispell.el (defvar ispell-personal-dictionary nil "\ --- 12923,12929 ---- ;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell ;;;;;; ispell-help ispell-pdict-save ispell-word ispell-dictionary-alist ;;;;;; ispell-local-dictionary-alist ispell-personal-dictionary) ! ;;;;;; "ispell" "textmodes/ispell.el" (16111 41838)) ;;; Generated autoloads from textmodes/ispell.el (defvar ispell-personal-dictionary nil "\ *************** *** 13214,13220 **** ;;;### (autoloads (iswitchb-mode iswitchb-buffer-other-frame iswitchb-display-buffer ;;;;;; iswitchb-buffer-other-window iswitchb-buffer iswitchb-default-keybindings ! ;;;;;; iswitchb-read-buffer) "iswitchb" "iswitchb.el" (16111 31861)) ;;; Generated autoloads from iswitchb.el (autoload (quote iswitchb-read-buffer) "iswitchb" "\ --- 13213,13219 ---- ;;;### (autoloads (iswitchb-mode iswitchb-buffer-other-frame iswitchb-display-buffer ;;;;;; iswitchb-buffer-other-window iswitchb-buffer iswitchb-default-keybindings ! ;;;;;; iswitchb-read-buffer) "iswitchb" "iswitchb.el" (16131 19788)) ;;; Generated autoloads from iswitchb.el (autoload (quote iswitchb-read-buffer) "iswitchb" "\ *************** *** 13288,13294 **** ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region ;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku ;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal) ! ;;;;;; "japan-util" "language/japan-util.el" (16005 1612)) ;;; Generated autoloads from language/japan-util.el (autoload (quote setup-japanese-environment-internal) "japan-util" "\ --- 13287,13293 ---- ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region ;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku ;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal) ! ;;;;;; "japan-util" "language/japan-util.el" (16011 28193)) ;;; Generated autoloads from language/japan-util.el (autoload (quote setup-japanese-environment-internal) "japan-util" "\ *************** *** 13365,13372 **** ;;;*** ! ;;;### (autoloads (jit-lock-register) "jit-lock" "jit-lock.el" (15935 ! ;;;;;; 42156)) ;;; Generated autoloads from jit-lock.el (autoload (quote jit-lock-register) "jit-lock" "\ --- 13364,13371 ---- ;;;*** ! ;;;### (autoloads (jit-lock-register) "jit-lock" "jit-lock.el" (15941 ! ;;;;;; 42953)) ;;; Generated autoloads from jit-lock.el (autoload (quote jit-lock-register) "jit-lock" "\ *************** *** 13380,13386 **** ;;;*** ;;;### (autoloads (with-auto-compression-mode auto-compression-mode) ! ;;;;;; "jka-compr" "jka-compr.el" (16111 31861)) ;;; Generated autoloads from jka-compr.el (defvar auto-compression-mode nil "\ --- 13379,13385 ---- ;;;*** ;;;### (autoloads (with-auto-compression-mode auto-compression-mode) ! ;;;;;; "jka-compr" "jka-compr.el" (16111 41826)) ;;; Generated autoloads from jka-compr.el (defvar auto-compression-mode nil "\ *************** *** 13407,13413 **** ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup ;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el" ! ;;;;;; (15935 47202)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ --- 13406,13412 ---- ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup ;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from emulation/keypad.el (defvar keypad-setup nil "\ *************** *** 13463,13469 **** ;;;*** ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el" ! ;;;;;; (15935 48018)) ;;; Generated autoloads from international/kinsoku.el (autoload (quote kinsoku) "kinsoku" "\ --- 13462,13468 ---- ;;;*** ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el" ! ;;;;;; (15941 42961)) ;;; Generated autoloads from international/kinsoku.el (autoload (quote kinsoku) "kinsoku" "\ *************** *** 13484,13491 **** ;;;*** ! ;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (15935 ! ;;;;;; 48018)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ --- 13483,13490 ---- ;;;*** ! ;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (15941 ! ;;;;;; 42961)) ;;; Generated autoloads from international/kkc.el (defvar kkc-after-update-conversion-functions nil "\ *************** *** 13510,13516 **** ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro ;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter ;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro" ! ;;;;;; "kmacro.el" (16012 48473)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) --- 13509,13515 ---- ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro ;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter ;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro" ! ;;;;;; "kmacro.el" (16014 64004)) ;;; Generated autoloads from kmacro.el (global-set-key "\C-x(" 'kmacro-start-macro) (global-set-key "\C-x)" 'kmacro-end-macro) *************** *** 13628,13634 **** ;;;*** ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" ! ;;;;;; (15905 54531)) ;;; Generated autoloads from play/landmark.el (defalias (quote landmark-repeat) (quote lm-test-run)) --- 13627,13633 ---- ;;;*** ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el" ! ;;;;;; (15924 18775)) ;;; Generated autoloads from play/landmark.el (defalias (quote landmark-repeat) (quote lm-test-run)) *************** *** 13662,13669 **** ;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion ;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao ! ;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (15935 ! ;;;;;; 48150)) ;;; Generated autoloads from language/lao-util.el (autoload (quote lao-compose-string) "lao-util" "\ --- 13661,13668 ---- ;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion ;;;;;; lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao ! ;;;;;; lao-compose-string) "lao-util" "language/lao-util.el" (15941 ! ;;;;;; 42961)) ;;; Generated autoloads from language/lao-util.el (autoload (quote lao-compose-string) "lao-util" "\ *************** *** 13711,13717 **** ;;;*** ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display) ! ;;;;;; "latin1-disp" "international/latin1-disp.el" (15985 3489)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ --- 13710,13716 ---- ;;;*** ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display) ! ;;;;;; "latin1-disp" "international/latin1-disp.el" (15997 672)) ;;; Generated autoloads from international/latin1-disp.el (defvar latin1-display nil "\ *************** *** 13755,13761 **** ;;;*** ;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock" ! ;;;;;; "lazy-lock.el" (15935 42241)) ;;; Generated autoloads from lazy-lock.el (autoload (quote lazy-lock-mode) "lazy-lock" "\ --- 13754,13760 ---- ;;;*** ;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock" ! ;;;;;; "lazy-lock.el" (15941 42953)) ;;; Generated autoloads from lazy-lock.el (autoload (quote lazy-lock-mode) "lazy-lock" "\ *************** *** 13857,13863 **** ;;;*** ! ;;;### (autoloads (life) "life" "play/life.el" (15935 48681)) ;;; Generated autoloads from play/life.el (autoload (quote life) "life" "\ --- 13856,13862 ---- ;;;*** ! ;;;### (autoloads (life) "life" "play/life.el" (15941 42963)) ;;; Generated autoloads from play/life.el (autoload (quote life) "life" "\ *************** *** 13870,13877 **** ;;;*** ! ;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (15766 ! ;;;;;; 29876)) ;;; Generated autoloads from loadhist.el (autoload (quote unload-feature) "loadhist" "\ --- 13869,13876 ---- ;;;*** ! ;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (15781 ! ;;;;;; 48896)) ;;; Generated autoloads from loadhist.el (autoload (quote unload-feature) "loadhist" "\ *************** *** 13884,13890 **** ;;;*** ;;;### (autoloads (locate-with-filter locate) "locate" "locate.el" ! ;;;;;; (15935 42259)) ;;; Generated autoloads from locate.el (autoload (quote locate) "locate" "\ --- 13883,13889 ---- ;;;*** ;;;### (autoloads (locate-with-filter locate) "locate" "locate.el" ! ;;;;;; (15941 42956)) ;;; Generated autoloads from locate.el (autoload (quote locate) "locate" "\ *************** *** 13903,13909 **** ;;;*** ! ;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (16111 31861)) ;;; Generated autoloads from log-edit.el (autoload (quote log-edit) "log-edit" "\ --- 13902,13908 ---- ;;;*** ! ;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (16111 41826)) ;;; Generated autoloads from log-edit.el (autoload (quote log-edit) "log-edit" "\ *************** *** 13924,13931 **** ;;;*** ! ;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (16060 ! ;;;;;; 11649)) ;;; Generated autoloads from log-view.el (autoload (quote log-view-mode) "log-view" "\ --- 13923,13930 ---- ;;;*** ! ;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (16070 ! ;;;;;; 35806)) ;;; Generated autoloads from log-view.el (autoload (quote log-view-mode) "log-view" "\ *************** *** 13936,13943 **** ;;;*** ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer ! ;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (15935 ! ;;;;;; 42324)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt)))) --- 13935,13942 ---- ;;;*** ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer ! ;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (15941 ! ;;;;;; 42956)) ;;; Generated autoloads from lpr.el (defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt)))) *************** *** 14031,14037 **** ;;;*** ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el" ! ;;;;;; (16066 27775)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ --- 14030,14036 ---- ;;;*** ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el" ! ;;;;;; (16070 35806)) ;;; Generated autoloads from ls-lisp.el (defvar ls-lisp-support-shell-wildcards t "\ *************** *** 14042,14049 **** ;;;*** ! ;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (15935 ! ;;;;;; 46813)) ;;; Generated autoloads from calendar/lunar.el (autoload (quote phases-of-moon) "lunar" "\ --- 14041,14048 ---- ;;;*** ! ;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (15941 ! ;;;;;; 42958)) ;;; Generated autoloads from calendar/lunar.el (autoload (quote phases-of-moon) "lunar" "\ *************** *** 14056,14063 **** ;;;*** ! ;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (15935 ! ;;;;;; 48915)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload (quote m4-mode) "m4-mode" "\ --- 14055,14062 ---- ;;;*** ! ;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (15941 ! ;;;;;; 42965)) ;;; Generated autoloads from progmodes/m4-mode.el (autoload (quote m4-mode) "m4-mode" "\ *************** *** 14069,14075 **** ;;;*** ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro ! ;;;;;; name-last-kbd-macro) "macros" "macros.el" (15935 42395)) ;;; Generated autoloads from macros.el (autoload (quote name-last-kbd-macro) "macros" "\ --- 14068,14074 ---- ;;;*** ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro ! ;;;;;; name-last-kbd-macro) "macros" "macros.el" (15941 42956)) ;;; Generated autoloads from macros.el (autoload (quote name-last-kbd-macro) "macros" "\ *************** *** 14157,14163 **** ;;;*** ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr" ! ;;;;;; "mail/mail-extr.el" (16071 64205)) ;;; Generated autoloads from mail/mail-extr.el (autoload (quote mail-extract-address-components) "mail-extr" "\ --- 14156,14162 ---- ;;;*** ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr" ! ;;;;;; "mail/mail-extr.el" (16111 41831)) ;;; Generated autoloads from mail/mail-extr.el (autoload (quote mail-extract-address-components) "mail-extr" "\ *************** *** 14188,14194 **** ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history ;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el" ! ;;;;;; (15935 48280)) ;;; Generated autoloads from mail/mail-hist.el (autoload (quote mail-hist-define-keys) "mail-hist" "\ --- 14187,14193 ---- ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history ;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el" ! ;;;;;; (15941 42961)) ;;; Generated autoloads from mail/mail-hist.el (autoload (quote mail-hist-define-keys) "mail-hist" "\ *************** *** 14219,14226 **** ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region ;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p ! ;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (15935 ! ;;;;;; 48280)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ --- 14218,14225 ---- ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region ;;;;;; mail-unquote-printable mail-quote-printable mail-file-babyl-p ! ;;;;;; mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (15941 ! ;;;;;; 42961)) ;;; Generated autoloads from mail/mail-utils.el (defvar mail-use-rfc822 nil "\ *************** *** 14268,14274 **** ;;;*** ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup) ! ;;;;;; "mailabbrev" "mail/mailabbrev.el" (15905 54449)) ;;; Generated autoloads from mail/mailabbrev.el (autoload (quote mail-abbrevs-setup) "mailabbrev" "\ --- 14267,14273 ---- ;;;*** ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup) ! ;;;;;; "mailabbrev" "mail/mailabbrev.el" (15924 18773)) ;;; Generated autoloads from mail/mailabbrev.el (autoload (quote mail-abbrevs-setup) "mailabbrev" "\ *************** *** 14291,14298 **** ;;;*** ;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases ! ;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (16055 ! ;;;;;; 62806)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style (quote angles) "\ --- 14290,14297 ---- ;;;*** ;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases ! ;;;;;; mail-complete-style) "mailalias" "mail/mailalias.el" (16057 ! ;;;;;; 36338)) ;;; Generated autoloads from mail/mailalias.el (defvar mail-complete-style (quote angles) "\ *************** *** 14338,14344 **** ;;;*** ;;;### (autoloads (makefile-mode) "make-mode" "progmodes/make-mode.el" ! ;;;;;; (15992 60888)) ;;; Generated autoloads from progmodes/make-mode.el (autoload (quote makefile-mode) "make-mode" "\ --- 14337,14343 ---- ;;;*** ;;;### (autoloads (makefile-mode) "make-mode" "progmodes/make-mode.el" ! ;;;;;; (15997 672)) ;;; Generated autoloads from progmodes/make-mode.el (autoload (quote makefile-mode) "make-mode" "\ *************** *** 14431,14437 **** ;;;*** ! ;;;### (autoloads (man-follow man) "man" "man.el" (16111 31861)) ;;; Generated autoloads from man.el (defalias (quote manual-entry) (quote man)) --- 14430,14436 ---- ;;;*** ! ;;;### (autoloads (man-follow man) "man" "man.el" (16148 4632)) ;;; Generated autoloads from man.el (defalias (quote manual-entry) (quote man)) *************** *** 14458,14464 **** ;;;*** ! ;;;### (autoloads (master-mode) "master" "master.el" (15935 42463)) ;;; Generated autoloads from master.el (autoload (quote master-mode) "master" "\ --- 14457,14463 ---- ;;;*** ! ;;;### (autoloads (master-mode) "master" "master.el" (15941 42956)) ;;; Generated autoloads from master.el (autoload (quote master-mode) "master" "\ *************** *** 14480,14487 **** ;;;*** ! ;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (16111 ! ;;;;;; 31862)) ;;; Generated autoloads from menu-bar.el (put (quote menu-bar-mode) (quote standard-value) (quote (t))) --- 14479,14486 ---- ;;;*** ! ;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (16131 ! ;;;;;; 19792)) ;;; Generated autoloads from menu-bar.el (put (quote menu-bar-mode) (quote standard-value) (quote (t))) *************** *** 14514,14520 **** ;;;;;; message-signature message-indent-citation-function message-cite-function ;;;;;; message-yank-prefix message-citation-line-function message-send-mail-function ;;;;;; message-user-organization-file message-signature-separator ! ;;;;;; message-from-style) "message" "gnus/message.el" (16061 817)) ;;; Generated autoloads from gnus/message.el (defvar message-from-style (quote default) "\ --- 14513,14519 ---- ;;;;;; message-signature message-indent-citation-function message-cite-function ;;;;;; message-yank-prefix message-citation-line-function message-send-mail-function ;;;;;; message-user-organization-file message-signature-separator ! ;;;;;; message-from-style) "message" "gnus/message.el" (16070 35808)) ;;; Generated autoloads from gnus/message.el (defvar message-from-style (quote default) "\ *************** *** 14744,14750 **** ;;;*** ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el" ! ;;;;;; (15945 27155)) ;;; Generated autoloads from progmodes/meta-mode.el (autoload (quote metafont-mode) "meta-mode" "\ --- 14743,14749 ---- ;;;*** ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el" ! ;;;;;; (15961 24155)) ;;; Generated autoloads from progmodes/meta-mode.el (autoload (quote metafont-mode) "meta-mode" "\ *************** *** 14771,14777 **** ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body ;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el" ! ;;;;;; (15935 48280)) ;;; Generated autoloads from mail/metamail.el (autoload (quote metamail-interpret-header) "metamail" "\ --- 14770,14776 ---- ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body ;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el" ! ;;;;;; (15941 42961)) ;;; Generated autoloads from mail/metamail.el (autoload (quote metamail-interpret-header) "metamail" "\ *************** *** 14815,14822 **** ;;;*** ;;;### (autoloads (mh-letter-mode mh-smail-other-window mh-user-agent-compose ! ;;;;;; mh-smail-batch mh-smail) "mh-comp" "mh-e/mh-comp.el" (16040 ! ;;;;;; 52480)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload (quote mh-smail) "mh-comp" "\ --- 14814,14821 ---- ;;;*** ;;;### (autoloads (mh-letter-mode mh-smail-other-window mh-user-agent-compose ! ;;;;;; mh-smail-batch mh-smail) "mh-comp" "mh-e/mh-comp.el" (16054 ! ;;;;;; 60750)) ;;; Generated autoloads from mh-e/mh-comp.el (autoload (quote mh-smail) "mh-comp" "\ *************** *** 14884,14896 **** When a message is composed, the hooks `text-mode-hook' and `mh-letter-mode-hook' are run. ! \\{mh-letter-mode-map}" t nil) (add-to-list 'auto-mode-alist '("/drafts/[0-9]+\\'" . mh-letter-mode)) ;;;*** ;;;### (autoloads (mh-version mh-nmail mh-rmail) "mh-e" "mh-e/mh-e.el" ! ;;;;;; (16042 6118)) ;;; Generated autoloads from mh-e/mh-e.el (autoload (quote mh-rmail) "mh-e" "\ --- 14883,14897 ---- When a message is composed, the hooks `text-mode-hook' and `mh-letter-mode-hook' are run. ! \\{mh-letter-mode-map} ! ! \(fn)" t nil) (add-to-list 'auto-mode-alist '("/drafts/[0-9]+\\'" . mh-letter-mode)) ;;;*** ;;;### (autoloads (mh-version mh-nmail mh-rmail) "mh-e" "mh-e/mh-e.el" ! ;;;;;; (16054 60750)) ;;; Generated autoloads from mh-e/mh-e.el (autoload (quote mh-rmail) "mh-e" "\ *************** *** 14914,14920 **** ;;;*** ! ;;;### (autoloads nil "mh-utils" "mh-e/mh-utils.el" (16040 52480)) ;;; Generated autoloads from mh-e/mh-utils.el (put (quote mh-progs) (quote risky-local-variable) t) --- 14915,14921 ---- ;;;*** ! ;;;### (autoloads nil "mh-utils" "mh-e/mh-utils.el" (16054 60750)) ;;; Generated autoloads from mh-e/mh-utils.el (put (quote mh-progs) (quote risky-local-variable) t) *************** *** 14955,14961 **** ;;;*** ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef" ! ;;;;;; "minibuf-eldef.el" (15935 43116)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ --- 14956,14962 ---- ;;;*** ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef" ! ;;;;;; "minibuf-eldef.el" (15941 42956)) ;;; Generated autoloads from minibuf-eldef.el (defvar minibuffer-electric-default-mode nil "\ *************** *** 14996,15002 **** ;;;*** ;;;### (autoloads (malayalam-composition-function malayalam-compose-region) ! ;;;;;; "mlm-util" "language/mlm-util.el" (15962 53815)) ;;; Generated autoloads from language/mlm-util.el (autoload (quote malayalam-compose-region) "mlm-util" "\ --- 14997,15003 ---- ;;;*** ;;;### (autoloads (malayalam-composition-function malayalam-compose-region) ! ;;;;;; "mlm-util" "language/mlm-util.el" (15997 672)) ;;; Generated autoloads from language/mlm-util.el (autoload (quote malayalam-compose-region) "mlm-util" "\ *************** *** 15014,15020 **** ;;;*** ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el" ! ;;;;;; (15935 47838)) ;;; Generated autoloads from gnus/mm-partial.el (autoload (quote mm-inline-partial) "mm-partial" "\ --- 15015,15021 ---- ;;;*** ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el" ! ;;;;;; (15941 42960)) ;;; Generated autoloads from gnus/mm-partial.el (autoload (quote mm-inline-partial) "mm-partial" "\ *************** *** 15028,15034 **** ;;;*** ;;;### (autoloads (mm-uu-test mm-uu-dissect) "mm-uu" "gnus/mm-uu.el" ! ;;;;;; (15948 48664)) ;;; Generated autoloads from gnus/mm-uu.el (autoload (quote mm-uu-dissect) "mm-uu" "\ --- 15029,15035 ---- ;;;*** ;;;### (autoloads (mm-uu-test mm-uu-dissect) "mm-uu" "gnus/mm-uu.el" ! ;;;;;; (15961 24153)) ;;; Generated autoloads from gnus/mm-uu.el (autoload (quote mm-uu-dissect) "mm-uu" "\ *************** *** 15044,15050 **** ;;;*** ;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el" ! ;;;;;; (15935 48915)) ;;; Generated autoloads from progmodes/modula2.el (autoload (quote modula-2-mode) "modula2" "\ --- 15045,15051 ---- ;;;*** ;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el" ! ;;;;;; (15941 42965)) ;;; Generated autoloads from progmodes/modula2.el (autoload (quote modula-2-mode) "modula2" "\ *************** *** 15076,15082 **** ;;;*** ;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el" ! ;;;;;; (15837 12655)) ;;; Generated autoloads from play/morse.el (autoload (quote morse-region) "morse" "\ --- 15077,15083 ---- ;;;*** ;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el" ! ;;;;;; (15856 53275)) ;;; Generated autoloads from play/morse.el (autoload (quote morse-region) "morse" "\ *************** *** 15091,15098 **** ;;;*** ! ;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (15954 ! ;;;;;; 4515)) ;;; Generated autoloads from mouse-sel.el (defvar mouse-sel-mode nil "\ --- 15092,15099 ---- ;;;*** ! ;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (15961 ! ;;;;;; 24151)) ;;; Generated autoloads from mouse-sel.el (defvar mouse-sel-mode nil "\ *************** *** 15143,15149 **** ;;;*** ! ;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (16055 62620)) ;;; Generated autoloads from play/mpuz.el (autoload (quote mpuz) "mpuz" "\ --- 15144,15150 ---- ;;;*** ! ;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (16057 36338)) ;;; Generated autoloads from play/mpuz.el (autoload (quote mpuz) "mpuz" "\ *************** *** 15153,15159 **** ;;;*** ! ;;;### (autoloads (msb-mode) "msb" "msb.el" (15935 43170)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ --- 15154,15160 ---- ;;;*** ! ;;;### (autoloads (msb-mode) "msb" "msb.el" (15941 42956)) ;;; Generated autoloads from msb.el (defvar msb-mode nil "\ *************** *** 15179,15185 **** ;;;;;; describe-current-coding-system describe-current-coding-system-briefly ;;;;;; describe-coding-system describe-character-set list-charset-chars ;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el" ! ;;;;;; (16019 26894)) ;;; Generated autoloads from international/mule-diag.el (autoload (quote list-character-sets) "mule-diag" "\ --- 15180,15186 ---- ;;;;;; describe-current-coding-system describe-current-coding-system-briefly ;;;;;; describe-coding-system describe-character-set list-charset-chars ;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el" ! ;;;;;; (16025 36884)) ;;; Generated autoloads from international/mule-diag.el (autoload (quote list-character-sets) "mule-diag" "\ *************** *** 15321,15327 **** ;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion ;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist ;;;;;; truncate-string-to-width store-substring string-to-sequence) ! ;;;;;; "mule-util" "international/mule-util.el" (15815 41144)) ;;; Generated autoloads from international/mule-util.el (autoload (quote string-to-sequence) "mule-util" "\ --- 15322,15328 ---- ;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion ;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist ;;;;;; truncate-string-to-width store-substring string-to-sequence) ! ;;;;;; "mule-util" "international/mule-util.el" (15829 28908)) ;;; Generated autoloads from international/mule-util.el (autoload (quote string-to-sequence) "mule-util" "\ *************** *** 15452,15458 **** ;;;*** ;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el" ! ;;;;;; (16111 31862)) ;;; Generated autoloads from mwheel.el (defvar mouse-wheel-mode nil "\ --- 15453,15459 ---- ;;;*** ;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el" ! ;;;;;; (16111 41826)) ;;; Generated autoloads from mwheel.el (defvar mouse-wheel-mode nil "\ *************** *** 15480,15486 **** ;;;### (autoloads (network-connection network-connection-to-service ;;;;;; whois-reverse-lookup whois finger ftp dig dns-lookup-host ;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute) ! ;;;;;; "net-utils" "net/net-utils.el" (15997 47200)) ;;; Generated autoloads from net/net-utils.el (autoload (quote traceroute) "net-utils" "\ --- 15481,15487 ---- ;;;### (autoloads (network-connection network-connection-to-service ;;;;;; whois-reverse-lookup whois finger ftp dig dns-lookup-host ;;;;;; nslookup nslookup-host route arp netstat ipconfig ping traceroute) ! ;;;;;; "net-utils" "net/net-utils.el" (16011 28193)) ;;; Generated autoloads from net/net-utils.el (autoload (quote traceroute) "net-utils" "\ *************** *** 15575,15581 **** ;;;;;; comment-region uncomment-region comment-kill comment-set-column ;;;;;; comment-indent comment-indent-default comment-normalize-vars ;;;;;; comment-multi-line comment-padding comment-style comment-column) ! ;;;;;; "newcomment" "newcomment.el" (16111 31862)) ;;; Generated autoloads from newcomment.el (defalias (quote indent-for-comment) (quote comment-indent)) --- 15576,15582 ---- ;;;;;; comment-region uncomment-region comment-kill comment-set-column ;;;;;; comment-indent comment-indent-default comment-normalize-vars ;;;;;; comment-multi-line comment-padding comment-style comment-column) ! ;;;;;; "newcomment" "newcomment.el" (16135 8990)) ;;; Generated autoloads from newcomment.el (defalias (quote indent-for-comment) (quote comment-indent)) *************** *** 15738,15745 **** ;;;*** ! ;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (15935 ! ;;;;;; 47838)) ;;; Generated autoloads from gnus/nndoc.el (autoload (quote nndoc-add-type) "nndoc" "\ --- 15739,15746 ---- ;;;*** ! ;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (15941 ! ;;;;;; 42960)) ;;; Generated autoloads from gnus/nndoc.el (autoload (quote nndoc-add-type) "nndoc" "\ *************** *** 15754,15760 **** ;;;*** ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el" ! ;;;;;; (15967 26059)) ;;; Generated autoloads from gnus/nnfolder.el (autoload (quote nnfolder-generate-active-file) "nnfolder" "\ --- 15755,15761 ---- ;;;*** ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el" ! ;;;;;; (15997 671)) ;;; Generated autoloads from gnus/nnfolder.el (autoload (quote nnfolder-generate-active-file) "nnfolder" "\ *************** *** 15766,15772 **** ;;;*** ;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el" ! ;;;;;; (15935 47838)) ;;; Generated autoloads from gnus/nnkiboze.el (autoload (quote nnkiboze-generate-groups) "nnkiboze" "\ --- 15767,15773 ---- ;;;*** ;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el" ! ;;;;;; (15941 42960)) ;;; Generated autoloads from gnus/nnkiboze.el (autoload (quote nnkiboze-generate-groups) "nnkiboze" "\ *************** *** 15778,15784 **** ;;;*** ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el" ! ;;;;;; (15935 47838)) ;;; Generated autoloads from gnus/nnml.el (autoload (quote nnml-generate-nov-databases) "nnml" "\ --- 15779,15785 ---- ;;;*** ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el" ! ;;;;;; (15941 42960)) ;;; Generated autoloads from gnus/nnml.el (autoload (quote nnml-generate-nov-databases) "nnml" "\ *************** *** 15789,15795 **** ;;;*** ;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies) ! ;;;;;; "nnsoup" "gnus/nnsoup.el" (15935 47838)) ;;; Generated autoloads from gnus/nnsoup.el (autoload (quote nnsoup-pack-replies) "nnsoup" "\ --- 15790,15796 ---- ;;;*** ;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies) ! ;;;;;; "nnsoup" "gnus/nnsoup.el" (15941 42960)) ;;; Generated autoloads from gnus/nnsoup.el (autoload (quote nnsoup-pack-replies) "nnsoup" "\ *************** *** 15839,15845 **** ;;;*** ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el" ! ;;;;;; (15893 60640)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload (quote nroff-mode) "nroff-mode" "\ --- 15840,15846 ---- ;;;*** ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el" ! ;;;;;; (15924 18776)) ;;; Generated autoloads from textmodes/nroff-mode.el (autoload (quote nroff-mode) "nroff-mode" "\ *************** *** 15847,15858 **** \\{nroff-mode-map} Turning on Nroff mode runs `text-mode-hook', then `nroff-mode-hook'. Also, try `nroff-electric-mode', for automatically inserting ! closing requests for requests that are used in matched pairs." t nil) ;;;*** ;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el" ! ;;;;;; (15935 48915)) ;;; Generated autoloads from progmodes/octave-hlp.el (autoload (quote octave-help) "octave-hlp" "\ --- 15848,15861 ---- \\{nroff-mode-map} Turning on Nroff mode runs `text-mode-hook', then `nroff-mode-hook'. Also, try `nroff-electric-mode', for automatically inserting ! closing requests for requests that are used in matched pairs. ! ! \(fn)" t nil) ;;;*** ;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el" ! ;;;;;; (15941 42965)) ;;; Generated autoloads from progmodes/octave-hlp.el (autoload (quote octave-help) "octave-hlp" "\ *************** *** 15866,15872 **** ;;;*** ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el" ! ;;;;;; (15935 48915)) ;;; Generated autoloads from progmodes/octave-inf.el (autoload (quote inferior-octave) "octave-inf" "\ --- 15869,15875 ---- ;;;*** ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el" ! ;;;;;; (15941 42965)) ;;; Generated autoloads from progmodes/octave-inf.el (autoload (quote inferior-octave) "octave-inf" "\ *************** *** 15889,15895 **** ;;;*** ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el" ! ;;;;;; (15935 48915)) ;;; Generated autoloads from progmodes/octave-mod.el (autoload (quote octave-mode) "octave-mod" "\ --- 15892,15898 ---- ;;;*** ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el" ! ;;;;;; (15941 42965)) ;;; Generated autoloads from progmodes/octave-mod.el (autoload (quote octave-mode) "octave-mod" "\ *************** *** 16065,16071 **** ;;;*** ! ;;;### (autoloads (show-paren-mode) "paren" "paren.el" (15935 43375)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ --- 16068,16074 ---- ;;;*** ! ;;;### (autoloads (show-paren-mode) "paren" "paren.el" (15941 42956)) ;;; Generated autoloads from paren.el (defvar show-paren-mode nil "\ *************** *** 16088,16095 **** ;;;*** ! ;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (15935 ! ;;;;;; 48915)) ;;; Generated autoloads from progmodes/pascal.el (autoload (quote pascal-mode) "pascal" "\ --- 16091,16098 ---- ;;;*** ! ;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (15941 ! ;;;;;; 42965)) ;;; Generated autoloads from progmodes/pascal.el (autoload (quote pascal-mode) "pascal" "\ *************** *** 16160,16166 **** ;;;*** ;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select" ! ;;;;;; "emulation/pc-select.el" (15935 47202)) ;;; Generated autoloads from emulation/pc-select.el (defvar pc-selection-mode nil "\ --- 16163,16169 ---- ;;;*** ;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select" ! ;;;;;; "emulation/pc-select.el" (15941 42958)) ;;; Generated autoloads from emulation/pc-select.el (defvar pc-selection-mode nil "\ *************** *** 16234,16241 **** ;;;*** ! ;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (15644 ! ;;;;;; 49243)) ;;; Generated autoloads from pcmpl-cvs.el (autoload (quote pcomplete/cvs) "pcmpl-cvs" "\ --- 16237,16244 ---- ;;;*** ! ;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (15678 ! ;;;;;; 51468)) ;;; Generated autoloads from pcmpl-cvs.el (autoload (quote pcomplete/cvs) "pcmpl-cvs" "\ *************** *** 16357,16364 **** ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list ;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete ! ;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (15930 ! ;;;;;; 37772)) ;;; Generated autoloads from pcomplete.el (autoload (quote pcomplete) "pcomplete" "\ --- 16360,16367 ---- ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list ;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete ! ;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (15941 ! ;;;;;; 42956)) ;;; Generated autoloads from pcomplete.el (autoload (quote pcomplete) "pcomplete" "\ *************** *** 16417,16423 **** ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status ;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs" ! ;;;;;; "pcvs.el" (16078 30454)) ;;; Generated autoloads from pcvs.el (autoload (quote cvs-checkout) "pcvs" "\ --- 16420,16426 ---- ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status ;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs" ! ;;;;;; "pcvs.el" (16111 41826)) ;;; Generated autoloads from pcvs.el (autoload (quote cvs-checkout) "pcvs" "\ *************** *** 16494,16500 **** ;;;*** ! ;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (16111 31864)) ;;; Generated autoloads from pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m))) --- 16497,16503 ---- ;;;*** ! ;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (16111 41826)) ;;; Generated autoloads from pcvs-defs.el (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m))) *************** *** 16502,16508 **** ;;;*** ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" ! ;;;;;; (16078 17148)) ;;; Generated autoloads from progmodes/perl-mode.el (autoload (quote perl-mode) "perl-mode" "\ --- 16505,16511 ---- ;;;*** ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el" ! ;;;;;; (16111 41834)) ;;; Generated autoloads from progmodes/perl-mode.el (autoload (quote perl-mode) "perl-mode" "\ *************** *** 16558,16564 **** ;;;*** ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el" ! ;;;;;; (15905 54616)) ;;; Generated autoloads from textmodes/picture.el (autoload (quote picture-mode) "picture" "\ --- 16561,16567 ---- ;;;*** ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el" ! ;;;;;; (15924 18776)) ;;; Generated autoloads from textmodes/picture.el (autoload (quote picture-mode) "picture" "\ *************** *** 16630,16636 **** ;;;*** ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el" ! ;;;;;; (15808 14185)) ;;; Generated autoloads from textmodes/po.el (autoload (quote po-find-file-coding-system) "po" "\ --- 16633,16639 ---- ;;;*** ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el" ! ;;;;;; (16148 4633)) ;;; Generated autoloads from textmodes/po.el (autoload (quote po-find-file-coding-system) "po" "\ *************** *** 16641,16647 **** ;;;*** ! ;;;### (autoloads (pong) "pong" "play/pong.el" (15935 48681)) ;;; Generated autoloads from play/pong.el (autoload (quote pong) "pong" "\ --- 16644,16650 ---- ;;;*** ! ;;;### (autoloads (pong) "pong" "play/pong.el" (15941 42963)) ;;; Generated autoloads from play/pong.el (autoload (quote pong) "pong" "\ *************** *** 16658,16664 **** ;;;*** ;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-to-string) ! ;;;;;; "pp" "emacs-lisp/pp.el" (15935 47054)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload (quote pp-to-string) "pp" "\ --- 16661,16667 ---- ;;;*** ;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-to-string) ! ;;;;;; "pp" "emacs-lisp/pp.el" (15941 42958)) ;;; Generated autoloads from emacs-lisp/pp.el (autoload (quote pp-to-string) "pp" "\ *************** *** 16711,16717 **** ;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview ;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript ;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el" ! ;;;;;; (15971 46342)) ;;; Generated autoloads from printing.el (autoload (quote pr-interface) "printing" "\ --- 16714,16720 ---- ;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview ;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript ;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el" ! ;;;;;; (15997 671)) ;;; Generated autoloads from printing.el (autoload (quote pr-interface) "printing" "\ *************** *** 17299,17305 **** ;;;*** ;;;### (autoloads (run-prolog prolog-mode) "prolog" "progmodes/prolog.el" ! ;;;;;; (15608 6934)) ;;; Generated autoloads from progmodes/prolog.el (autoload (quote prolog-mode) "prolog" "\ --- 17302,17308 ---- ;;;*** ;;;### (autoloads (run-prolog prolog-mode) "prolog" "progmodes/prolog.el" ! ;;;;;; (15610 3872)) ;;; Generated autoloads from progmodes/prolog.el (autoload (quote prolog-mode) "prolog" "\ *************** *** 17319,17335 **** ;;;*** ! ;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (15935 43727)) ;;; Generated autoloads from ps-bdf.el ! (defvar bdf-directory-list (if (and (memq system-type (quote (ms-dos windows-nt))) (boundp (quote installation-directory))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\ *List of directories to search for `BDF' font files. The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** ;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (16111 ! ;;;;;; 31880)) ;;; Generated autoloads from progmodes/ps-mode.el (autoload (quote ps-mode) "ps-mode" "\ --- 17322,17338 ---- ;;;*** ! ;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (16148 4633)) ;;; Generated autoloads from ps-bdf.el ! (defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\ *List of directories to search for `BDF' font files. The default value is '(\"/usr/local/share/emacs/fonts/bdf\").") ;;;*** ;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (16111 ! ;;;;;; 41834)) ;;; Generated autoloads from progmodes/ps-mode.el (autoload (quote ps-mode) "ps-mode" "\ *************** *** 17378,17384 **** ;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-header-string-charsets ;;;;;; ps-mule-encode-header-string ps-mule-initialize ps-mule-plot-composition ;;;;;; ps-mule-plot-string ps-mule-set-ascii-font ps-mule-prepare-ascii-font ! ;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" (16066 64547)) ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ --- 17381,17387 ---- ;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-header-string-charsets ;;;;;; ps-mule-encode-header-string ps-mule-initialize ps-mule-plot-composition ;;;;;; ps-mule-plot-string ps-mule-set-ascii-font ps-mule-prepare-ascii-font ! ;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" (16070 35806)) ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ *************** *** 17504,17511 **** ;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer ;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces ;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type ! ;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (16066 ! ;;;;;; 64547)) ;;; Generated autoloads from ps-print.el (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\ --- 17507,17514 ---- ;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer ;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces ;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type ! ;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (16148 ! ;;;;;; 4633)) ;;; Generated autoloads from ps-print.el (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\ *************** *** 17705,17711 **** ;;;;;; quail-defrule quail-install-decode-map quail-install-map ;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout ;;;;;; quail-define-package quail-use-package quail-title) "quail" ! ;;;;;; "international/quail.el" (16022 15688)) ;;; Generated autoloads from international/quail.el (autoload (quote quail-title) "quail" "\ --- 17708,17714 ---- ;;;;;; quail-defrule quail-install-decode-map quail-install-map ;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout ;;;;;; quail-define-package quail-use-package quail-title) "quail" ! ;;;;;; "international/quail.el" (16025 36884)) ;;; Generated autoloads from international/quail.el (autoload (quote quail-title) "quail" "\ *************** *** 17936,17943 **** ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls ;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url ! ;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (15935 ! ;;;;;; 48476)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ --- 17939,17946 ---- ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls ;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url ! ;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (15941 ! ;;;;;; 42963)) ;;; Generated autoloads from net/quickurl.el (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ *************** *** 18008,18015 **** ;;;*** ! ;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (15935 ! ;;;;;; 48476)) ;;; Generated autoloads from net/rcompile.el (autoload (quote remote-compile) "rcompile" "\ --- 18011,18018 ---- ;;;*** ! ;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (15941 ! ;;;;;; 42963)) ;;; Generated autoloads from net/rcompile.el (autoload (quote remote-compile) "rcompile" "\ *************** *** 18021,18027 **** ;;;*** ;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el" ! ;;;;;; (15935 47054)) ;;; Generated autoloads from emacs-lisp/re-builder.el (autoload (quote re-builder) "re-builder" "\ --- 18024,18030 ---- ;;;*** ;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from emacs-lisp/re-builder.el (autoload (quote re-builder) "re-builder" "\ *************** *** 18031,18037 **** ;;;*** ! ;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (16050 24794)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ --- 18034,18040 ---- ;;;*** ! ;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (16054 60749)) ;;; Generated autoloads from recentf.el (defvar recentf-mode nil "\ *************** *** 18057,18064 **** ;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle ;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle ;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle ! ;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (15935 ! ;;;;;; 43819)) ;;; Generated autoloads from rect.el (autoload (quote move-to-column-force) "rect" "\ --- 18060,18067 ---- ;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle ;;;;;; delete-whitespace-rectangle open-rectangle insert-rectangle ;;;;;; yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle ! ;;;;;; delete-rectangle move-to-column-force) "rect" "rect.el" (15941 ! ;;;;;; 42956)) ;;; Generated autoloads from rect.el (autoload (quote move-to-column-force) "rect" "\ *************** *** 18181,18187 **** ;;;*** ;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (16111 ! ;;;;;; 31887)) ;;; Generated autoloads from textmodes/refill.el (autoload (quote refill-mode) "refill" "\ --- 18184,18190 ---- ;;;*** ;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (16111 ! ;;;;;; 41838)) ;;; Generated autoloads from textmodes/refill.el (autoload (quote refill-mode) "refill" "\ *************** *** 18196,18203 **** ;;;*** ! ;;;### (autoloads (reftex-mode turn-on-reftex) "reftex" "textmodes/reftex.el" ! ;;;;;; (16065 22699)) ;;; Generated autoloads from textmodes/reftex.el (autoload (quote turn-on-reftex) "reftex" "\ --- 18199,18206 ---- ;;;*** ! ;;;### (autoloads (reftex-scanning-info-available-p reftex-mode turn-on-reftex) ! ;;;;;; "reftex" "textmodes/reftex.el" (16140 30177)) ;;; Generated autoloads from textmodes/reftex.el (autoload (quote turn-on-reftex) "reftex" "\ *************** *** 18238,18247 **** \(fn &optional ARG)" t nil) ;;;*** ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" ! ;;;;;; (16065 22527)) ;;; Generated autoloads from textmodes/reftex-cite.el (autoload (quote reftex-citation) "reftex-cite" "\ --- 18241,18255 ---- \(fn &optional ARG)" t nil) + (autoload (quote reftex-scanning-info-available-p) "reftex" "\ + Is the scanning info about the current document available? + + \(fn)" nil nil) + ;;;*** ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" ! ;;;;;; (16070 35808)) ;;; Generated autoloads from textmodes/reftex-cite.el (autoload (quote reftex-citation) "reftex-cite" "\ *************** *** 18270,18276 **** ;;;*** ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" ! ;;;;;; (15935 49285)) ;;; Generated autoloads from textmodes/reftex-index.el (autoload (quote reftex-index-phrases-mode) "reftex-index" "\ --- 18278,18284 ---- ;;;*** ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el" ! ;;;;;; (15941 42966)) ;;; Generated autoloads from textmodes/reftex-index.el (autoload (quote reftex-index-phrases-mode) "reftex-index" "\ *************** *** 18302,18309 **** ;;;*** ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el" ! ;;;;;; (16043 5451)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload (quote regexp-opt) "regexp-opt" "\ --- 18310,18330 ---- ;;;*** + ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" + ;;;;;; (16140 30177)) + ;;; Generated autoloads from textmodes/reftex-parse.el + + (autoload (quote reftex-all-document-files) "reftex-parse" "\ + Return a list of all files belonging to the current document. + When RELATIVE is non-nil, give file names relative to directory + of master file. + + \(fn &optional RELATIVE)" nil nil) + + ;;;*** + ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el" ! ;;;;;; (16054 60749)) ;;; Generated autoloads from emacs-lisp/regexp-opt.el (autoload (quote regexp-opt) "regexp-opt" "\ *************** *** 18330,18336 **** ;;;*** ! ;;;### (autoloads (repeat) "repeat" "repeat.el" (15935 43856)) ;;; Generated autoloads from repeat.el (autoload (quote repeat) "repeat" "\ --- 18351,18357 ---- ;;;*** ! ;;;### (autoloads (repeat) "repeat" "repeat.el" (15941 42956)) ;;; Generated autoloads from repeat.el (autoload (quote repeat) "repeat" "\ *************** *** 18407,18414 **** ;;;*** ! ;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (15935 ! ;;;;;; 43901)) ;;; Generated autoloads from resume.el (autoload (quote resume-suspend-hook) "resume" "\ --- 18428,18435 ---- ;;;*** ! ;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (15941 ! ;;;;;; 42956)) ;;; Generated autoloads from resume.el (autoload (quote resume-suspend-hook) "resume" "\ *************** *** 18419,18425 **** ;;;*** ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el" ! ;;;;;; (16029 32482)) ;;; Generated autoloads from reveal.el (autoload (quote reveal-mode) "reveal" "\ --- 18440,18446 ---- ;;;*** ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el" ! ;;;;;; (16054 60749)) ;;; Generated autoloads from reveal.el (autoload (quote reveal-mode) "reveal" "\ *************** *** 18454,18460 **** ;;;### (autoloads (file-name-shadow-mode file-name-shadow-tty-properties ;;;;;; file-name-shadow-properties) "rfn-eshadow" "rfn-eshadow.el" ! ;;;;;; (15724 26374)) ;;; Generated autoloads from rfn-eshadow.el (defvar file-name-shadow-properties (quote (face file-name-shadow field shadow)) "\ --- 18475,18481 ---- ;;;### (autoloads (file-name-shadow-mode file-name-shadow-tty-properties ;;;;;; file-name-shadow-properties) "rfn-eshadow" "rfn-eshadow.el" ! ;;;;;; (15728 55520)) ;;; Generated autoloads from rfn-eshadow.el (defvar file-name-shadow-properties (quote (face file-name-shadow field shadow)) "\ *************** *** 18497,18507 **** ;;;*** ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el" ! ;;;;;; (14632 7438)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload (quote ring-p) "ring" "\ ! Returns t if X is a ring; nil otherwise. \(fn X)" nil nil) --- 18518,18528 ---- ;;;*** ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el" ! ;;;;;; (16148 4633)) ;;; Generated autoloads from emacs-lisp/ring.el (autoload (quote ring-p) "ring" "\ ! Return t if X is a ring; nil otherwise. \(fn X)" nil nil) *************** *** 18512,18518 **** ;;;*** ! ;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (16055 62708)) ;;; Generated autoloads from net/rlogin.el (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)") --- 18533,18539 ---- ;;;*** ! ;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (16057 36338)) ;;; Generated autoloads from net/rlogin.el (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)") *************** *** 18563,18569 **** ;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output ;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers ;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names) ! ;;;;;; "rmail" "mail/rmail.el" (16066 55484)) ;;; Generated autoloads from mail/rmail.el (defvar rmail-dont-reply-to-names nil "\ --- 18584,18590 ---- ;;;;;; rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output ;;;;;; rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers ;;;;;; rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names) ! ;;;;;; "rmail" "mail/rmail.el" (16070 35808)) ;;; Generated autoloads from mail/rmail.el (defvar rmail-dont-reply-to-names nil "\ *************** *** 18811,18817 **** ;;;*** ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el" ! ;;;;;; (15828 34013)) ;;; Generated autoloads from mail/rmailedit.el (autoload (quote rmail-edit-current-message) "rmailedit" "\ --- 18832,18838 ---- ;;;*** ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el" ! ;;;;;; (15829 28908)) ;;; Generated autoloads from mail/rmailedit.el (autoload (quote rmail-edit-current-message) "rmailedit" "\ *************** *** 18876,18882 **** ;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output ;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout" ! ;;;;;; "mail/rmailout.el" (15935 40173)) ;;; Generated autoloads from mail/rmailout.el (defvar rmail-output-file-alist nil "\ --- 18897,18903 ---- ;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output ;;;;;; rmail-output-to-rmail-file rmail-output-file-alist) "rmailout" ! ;;;;;; "mail/rmailout.el" (15941 42961)) ;;; Generated autoloads from mail/rmailout.el (defvar rmail-output-file-alist nil "\ *************** *** 18943,18950 **** ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent ;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject ! ;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (15935 ! ;;;;;; 48280)) ;;; Generated autoloads from mail/rmailsort.el (autoload (quote rmail-sort-by-date) "rmailsort" "\ --- 18964,18971 ---- ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent ;;;;;; rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject ! ;;;;;; rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (15941 ! ;;;;;; 42961)) ;;; Generated autoloads from mail/rmailsort.el (autoload (quote rmail-sort-by-date) "rmailsort" "\ *************** *** 18996,19002 **** ;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp ;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary ;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages) ! ;;;;;; "rmailsum" "mail/rmailsum.el" (16019 30707)) ;;; Generated autoloads from mail/rmailsum.el (defvar rmail-summary-scroll-between-messages t "\ --- 19017,19023 ---- ;;;;;; rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp ;;;;;; rmail-summary-by-recipients rmail-summary-by-labels rmail-summary ;;;;;; rmail-summary-line-count-flag rmail-summary-scroll-between-messages) ! ;;;;;; "rmailsum" "mail/rmailsum.el" (16025 36884)) ;;; Generated autoloads from mail/rmailsum.el (defvar rmail-summary-scroll-between-messages t "\ *************** *** 19078,19084 **** ;;;*** ;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el" ! ;;;;;; (15935 48553)) ;;; Generated autoloads from obsolete/rnewspost.el (autoload (quote news-post-news) "rnewspost" "\ --- 19099,19105 ---- ;;;*** ;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el" ! ;;;;;; (15941 42963)) ;;; Generated autoloads from obsolete/rnewspost.el (autoload (quote news-post-news) "rnewspost" "\ *************** *** 19091,19097 **** ;;;*** ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region ! ;;;;;; rot13-string rot13) "rot13" "rot13.el" (15935 43923)) ;;; Generated autoloads from rot13.el (autoload (quote rot13) "rot13" "\ --- 19112,19118 ---- ;;;*** ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region ! ;;;;;; rot13-string rot13) "rot13" "rot13.el" (15941 42956)) ;;; Generated autoloads from rot13.el (autoload (quote rot13) "rot13" "\ *************** *** 19173,19179 **** ;;;*** ;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (16111 ! ;;;;;; 31864)) ;;; Generated autoloads from ruler-mode.el (autoload (quote ruler-mode) "ruler-mode" "\ --- 19194,19200 ---- ;;;*** ;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (16111 ! ;;;;;; 41826)) ;;; Generated autoloads from ruler-mode.el (autoload (quote ruler-mode) "ruler-mode" "\ *************** *** 19183,19190 **** ;;;*** ! ;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (15935 ! ;;;;;; 47054)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload (quote rx-to-string) "rx" "\ --- 19204,19211 ---- ;;;*** ! ;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (15941 ! ;;;;;; 42958)) ;;; Generated autoloads from emacs-lisp/rx.el (autoload (quote rx-to-string) "rx" "\ *************** *** 19459,19465 **** ;;;*** ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el" ! ;;;;;; (16039 16411)) ;;; Generated autoloads from progmodes/scheme.el (autoload (quote scheme-mode) "scheme" "\ --- 19480,19486 ---- ;;;*** ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el" ! ;;;;;; (16054 60750)) ;;; Generated autoloads from progmodes/scheme.el (autoload (quote scheme-mode) "scheme" "\ *************** *** 19540,19546 **** ;;;*** ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el" ! ;;;;;; (15935 44067)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ --- 19561,19567 ---- ;;;*** ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el" ! ;;;;;; (15941 42956)) ;;; Generated autoloads from scroll-all.el (defvar scroll-all-mode nil "\ *************** *** 19566,19572 **** ;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name ;;;;;; mail-header-separator send-mail-function mail-yank-ignored-headers ;;;;;; mail-interactive mail-self-blind mail-specify-envelope-from ! ;;;;;; mail-from-style) "sendmail" "mail/sendmail.el" (16071 64650)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style (quote angles) "\ --- 19587,19593 ---- ;;;;;; mail-alias-file mail-default-reply-to mail-archive-file-name ;;;;;; mail-header-separator send-mail-function mail-yank-ignored-headers ;;;;;; mail-interactive mail-self-blind mail-specify-envelope-from ! ;;;;;; mail-from-style) "sendmail" "mail/sendmail.el" (16133 25850)) ;;; Generated autoloads from mail/sendmail.el (defvar mail-from-style (quote angles) "\ *************** *** 19593,19600 **** The value used to specify it is whatever is found in `mail-envelope-from', with `user-mail-address' as fallback. ! On most systems, specifying the envelope-from address ! is a privileged operation.") (custom-autoload (quote mail-specify-envelope-from) "sendmail") --- 19614,19622 ---- The value used to specify it is whatever is found in `mail-envelope-from', with `user-mail-address' as fallback. ! On most systems, specifying the envelope-from address is a ! privileged operation. This variable is only used if ! `send-mail-function' is set to `sendmail-send-it'.") (custom-autoload (quote mail-specify-envelope-from) "sendmail") *************** *** 19772,19778 **** ;;;*** ;;;### (autoloads (server-mode server-start) "server" "server.el" ! ;;;;;; (16024 25477)) ;;; Generated autoloads from server.el (autoload (quote server-start) "server" "\ --- 19794,19800 ---- ;;;*** ;;;### (autoloads (server-mode server-start) "server" "server.el" ! ;;;;;; (16025 36883)) ;;; Generated autoloads from server.el (autoload (quote server-start) "server" "\ *************** *** 19804,19810 **** ;;;*** ! ;;;### (autoloads (ses-mode) "ses" "ses.el" (15933 28295)) ;;; Generated autoloads from ses.el (autoload (quote ses-mode) "ses" "\ --- 19826,19832 ---- ;;;*** ! ;;;### (autoloads (ses-mode) "ses" "ses.el" (15941 42956)) ;;; Generated autoloads from ses.el (autoload (quote ses-mode) "ses" "\ *************** *** 19822,19828 **** ;;;*** ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el" ! ;;;;;; (16111 31888)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload (quote sgml-mode) "sgml-mode" "\ --- 19844,19850 ---- ;;;*** ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el" ! ;;;;;; (16139 21086)) ;;; Generated autoloads from textmodes/sgml-mode.el (autoload (quote sgml-mode) "sgml-mode" "\ *************** *** 19846,19851 **** --- 19868,19875 ---- \(fn)" t nil) + (defalias (quote xml-mode) (quote sgml-mode)) + (autoload (quote html-mode) "sgml-mode" "\ Major mode based on SGML mode for editing HTML documents. This allows inserting skeleton constructs used in hypertext documents with *************** *** 19888,19894 **** ;;;*** ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el" ! ;;;;;; (16111 31880)) ;;; Generated autoloads from progmodes/sh-script.el (put (quote sh-mode) (quote mode-class) (quote special)) --- 19912,19918 ---- ;;;*** ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el" ! ;;;;;; (16135 8991)) ;;; Generated autoloads from progmodes/sh-script.el (put (quote sh-mode) (quote mode-class) (quote special)) *************** *** 19954,19960 **** ;;;*** ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el" ! ;;;;;; (15935 47054)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload (quote list-load-path-shadows) "shadow" "\ --- 19978,19984 ---- ;;;*** ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from emacs-lisp/shadow.el (autoload (quote list-load-path-shadows) "shadow" "\ *************** *** 20001,20008 **** ;;;*** ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group ! ;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (16012 ! ;;;;;; 49034)) ;;; Generated autoloads from shadowfile.el (autoload (quote shadow-define-cluster) "shadowfile" "\ --- 20025,20032 ---- ;;;*** ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group ! ;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (16014 ! ;;;;;; 64004)) ;;; Generated autoloads from shadowfile.el (autoload (quote shadow-define-cluster) "shadowfile" "\ *************** *** 20041,20047 **** ;;;*** ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el" ! ;;;;;; (16111 31864)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\ --- 20065,20071 ---- ;;;*** ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el" ! ;;;;;; (16111 41826)) ;;; Generated autoloads from shell.el (defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\ *************** *** 20087,20094 **** ;;;*** ! ;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (15962 ! ;;;;;; 51923)) ;;; Generated autoloads from progmodes/simula.el (autoload (quote simula-mode) "simula" "\ --- 20111,20118 ---- ;;;*** ! ;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (15997 ! ;;;;;; 672)) ;;; Generated autoloads from progmodes/simula.el (autoload (quote simula-mode) "simula" "\ *************** *** 20130,20141 **** (as in) `abbrev-table', or nil if they should not be changed. Turning on SIMULA mode calls the value of the variable simula-mode-hook ! with no arguments, if that value is non-nil." t nil) ;;;*** ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new ! ;;;;;; define-skeleton) "skeleton" "skeleton.el" (16111 31865)) ;;; Generated autoloads from skeleton.el (defvar skeleton-filter (quote identity) "\ --- 20154,20167 ---- (as in) `abbrev-table', or nil if they should not be changed. Turning on SIMULA mode calls the value of the variable simula-mode-hook ! with no arguments, if that value is non-nil. ! ! \(fn)" t nil) ;;;*** ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new ! ;;;;;; define-skeleton) "skeleton" "skeleton.el" (16111 41826)) ;;; Generated autoloads from skeleton.el (defvar skeleton-filter (quote identity) "\ *************** *** 20245,20251 **** ;;;*** ;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el" ! ;;;;;; (15935 44142)) ;;; Generated autoloads from smerge-mode.el (autoload (quote smerge-ediff) "smerge-mode" "\ --- 20271,20277 ---- ;;;*** ;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el" ! ;;;;;; (15941 42957)) ;;; Generated autoloads from smerge-mode.el (autoload (quote smerge-ediff) "smerge-mode" "\ *************** *** 20264,20270 **** ;;;*** ;;;### (autoloads (smiley-region) "smiley-ems" "gnus/smiley-ems.el" ! ;;;;;; (15847 36480)) ;;; Generated autoloads from gnus/smiley-ems.el (autoload (quote smiley-region) "smiley-ems" "\ --- 20290,20296 ---- ;;;*** ;;;### (autoloads (smiley-region) "smiley-ems" "gnus/smiley-ems.el" ! ;;;;;; (15856 53274)) ;;; Generated autoloads from gnus/smiley-ems.el (autoload (quote smiley-region) "smiley-ems" "\ *************** *** 20278,20284 **** ;;;*** ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" ! ;;;;;; "mail/smtpmail.el" (16065 19461)) ;;; Generated autoloads from mail/smtpmail.el (autoload (quote smtpmail-send-it) "smtpmail" "\ --- 20304,20310 ---- ;;;*** ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail" ! ;;;;;; "mail/smtpmail.el" (16148 4633)) ;;; Generated autoloads from mail/smtpmail.el (autoload (quote smtpmail-send-it) "smtpmail" "\ *************** *** 20293,20299 **** ;;;*** ! ;;;### (autoloads (snake) "snake" "play/snake.el" (15745 59594)) ;;; Generated autoloads from play/snake.el (autoload (quote snake) "snake" "\ --- 20319,20325 ---- ;;;*** ! ;;;### (autoloads (snake) "snake" "play/snake.el" (15763 44954)) ;;; Generated autoloads from play/snake.el (autoload (quote snake) "snake" "\ *************** *** 20348,20354 **** ;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name ;;;;;; calendar-longitude calendar-latitude calendar-time-display-form) ! ;;;;;; "solar" "calendar/solar.el" (15935 46813)) ;;; Generated autoloads from calendar/solar.el (defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\ --- 20374,20380 ---- ;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name ;;;;;; calendar-longitude calendar-latitude calendar-time-display-form) ! ;;;;;; "solar" "calendar/solar.el" (15941 42958)) ;;; Generated autoloads from calendar/solar.el (defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\ *************** *** 20419,20426 **** ;;;*** ! ;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (15935 ! ;;;;;; 48681)) ;;; Generated autoloads from play/solitaire.el (autoload (quote solitaire) "solitaire" "\ --- 20445,20452 ---- ;;;*** ! ;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (15941 ! ;;;;;; 42963)) ;;; Generated autoloads from play/solitaire.el (autoload (quote solitaire) "solitaire" "\ *************** *** 20497,20503 **** ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields ;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs ! ;;;;;; sort-lines sort-subr) "sort" "sort.el" (16111 31865)) ;;; Generated autoloads from sort.el (autoload (quote sort-subr) "sort" "\ --- 20523,20529 ---- ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields ;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs ! ;;;;;; sort-lines sort-subr) "sort" "sort.el" (16111 41826)) ;;; Generated autoloads from sort.el (autoload (quote sort-subr) "sort" "\ *************** *** 20640,20646 **** ;;;*** ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar" ! ;;;;;; "speedbar.el" (15935 44194)) ;;; Generated autoloads from speedbar.el (defalias (quote speedbar) (quote speedbar-frame-mode)) --- 20666,20672 ---- ;;;*** ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar" ! ;;;;;; "speedbar.el" (15941 42957)) ;;; Generated autoloads from speedbar.el (defalias (quote speedbar) (quote speedbar-frame-mode)) *************** *** 20720,20726 **** ;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres ;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix ;;;;;; sql-sybase sql-oracle sql-mode sql-help) "sql" "progmodes/sql.el" ! ;;;;;; (16116 34477)) ;;; Generated autoloads from progmodes/sql.el (autoload (quote sql-help) "sql" "\ --- 20746,20752 ---- ;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres ;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix ;;;;;; sql-sybase sql-oracle sql-mode sql-help) "sql" "progmodes/sql.el" ! ;;;;;; (16148 4633)) ;;; Generated autoloads from progmodes/sql.el (autoload (quote sql-help) "sql" "\ *************** *** 21121,21128 **** ;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes ;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke ;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke ! ;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (15948 ! ;;;;;; 48516)) ;;; Generated autoloads from strokes.el (autoload (quote strokes-global-set-stroke) "strokes" "\ --- 21147,21154 ---- ;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes ;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke ;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke ! ;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (15961 ! ;;;;;; 24151)) ;;; Generated autoloads from strokes.el (autoload (quote strokes-global-set-stroke) "strokes" "\ *************** *** 21250,21256 **** ;;;*** ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el" ! ;;;;;; (16078 48647)) ;;; Generated autoloads from mail/supercite.el (autoload (quote sc-cite-original) "supercite" "\ --- 21276,21282 ---- ;;;*** ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el" ! ;;;;;; (16111 41831)) ;;; Generated autoloads from mail/supercite.el (autoload (quote sc-cite-original) "supercite" "\ *************** *** 21282,21299 **** ;;;*** ! ;;;### (autoloads (syntax-ppss) "syntax" "emacs-lisp/syntax.el" (15935 ! ;;;;;; 47054)) ;;; Generated autoloads from emacs-lisp/syntax.el (autoload (quote syntax-ppss) "syntax" "\ Parse-Partial-Sexp State at POS. The returned value is the same as `parse-partial-sexp' except that the 2nd and 6th values of the returned state cannot be relied upon. - - If the caller knows the PPSS of a nearby position, she can pass it - in OLP-PPSS (with or without its corresponding OLD-POS) to try and - avoid a more expansive scan. Point is at POS when this function returns. \(fn &optional POS)" nil nil) --- 21308,21321 ---- ;;;*** ! ;;;### (autoloads (syntax-ppss) "syntax" "emacs-lisp/syntax.el" (16149 ! ;;;;;; 47790)) ;;; Generated autoloads from emacs-lisp/syntax.el (autoload (quote syntax-ppss) "syntax" "\ Parse-Partial-Sexp State at POS. The returned value is the same as `parse-partial-sexp' except that the 2nd and 6th values of the returned state cannot be relied upon. Point is at POS when this function returns. \(fn &optional POS)" nil nil) *************** *** 21335,21341 **** ;;;;;; table-recognize table-insert-row-column table-insert-column ;;;;;; table-insert-row table-insert table-point-left-cell-hook ;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook) ! ;;;;;; "table" "textmodes/table.el" (16111 31888)) ;;; Generated autoloads from textmodes/table.el (defvar table-cell-map-hook nil "\ --- 21357,21363 ---- ;;;;;; table-recognize table-insert-row-column table-insert-column ;;;;;; table-insert-row table-insert table-point-left-cell-hook ;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook) ! ;;;;;; "table" "textmodes/table.el" (16111 41838)) ;;; Generated autoloads from textmodes/table.el (defvar table-cell-map-hook nil "\ *************** *** 21923,21929 **** ;;;*** ! ;;;### (autoloads (talk-connect) "talk" "talk.el" (15568 53176)) ;;; Generated autoloads from talk.el (autoload (quote talk-connect) "talk" "\ --- 21945,21951 ---- ;;;*** ! ;;;### (autoloads (talk-connect) "talk" "talk.el" (15589 6165)) ;;; Generated autoloads from talk.el (autoload (quote talk-connect) "talk" "\ *************** *** 21933,21939 **** ;;;*** ! ;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (15950 37647)) ;;; Generated autoloads from tar-mode.el (autoload (quote tar-mode) "tar-mode" "\ --- 21955,21961 ---- ;;;*** ! ;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (15961 24151)) ;;; Generated autoloads from tar-mode.el (autoload (quote tar-mode) "tar-mode" "\ *************** *** 21950,21961 **** inside of a tar archive without extracting it and re-archiving it. See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ! \\{tar-mode-map}" t nil) ;;;*** ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl" ! ;;;;;; "progmodes/tcl.el" (16111 31880)) ;;; Generated autoloads from progmodes/tcl.el (autoload (quote tcl-mode) "tcl" "\ --- 21972,21985 ---- inside of a tar archive without extracting it and re-archiving it. See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. ! \\{tar-mode-map} ! ! \(fn)" t nil) ;;;*** ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl" ! ;;;;;; "progmodes/tcl.el" (16111 41834)) ;;; Generated autoloads from progmodes/tcl.el (autoload (quote tcl-mode) "tcl" "\ *************** *** 22006,22012 **** ;;;*** ! ;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (15935 48476)) ;;; Generated autoloads from net/telnet.el (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") --- 22030,22036 ---- ;;;*** ! ;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (15941 42963)) ;;; Generated autoloads from net/telnet.el (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)") *************** *** 22030,22037 **** ;;;*** ! ;;;### (autoloads (ansi-term term make-term) "term" "term.el" (15935 ! ;;;;;; 44347)) ;;; Generated autoloads from term.el (autoload (quote make-term) "term" "\ --- 22054,22061 ---- ;;;*** ! ;;;### (autoloads (ansi-term term make-term) "term" "term.el" (15941 ! ;;;;;; 42957)) ;;; Generated autoloads from term.el (autoload (quote make-term) "term" "\ *************** *** 22097,22103 **** ;;;*** ;;;### (autoloads (testcover-this-defun testcover-start) "testcover" ! ;;;;;; "emacs-lisp/testcover.el" (16004 31775)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload (quote testcover-start) "testcover" "\ --- 22121,22127 ---- ;;;*** ;;;### (autoloads (testcover-this-defun testcover-start) "testcover" ! ;;;;;; "emacs-lisp/testcover.el" (16011 28192)) ;;; Generated autoloads from emacs-lisp/testcover.el (autoload (quote testcover-start) "testcover" "\ *************** *** 22115,22121 **** ;;;*** ! ;;;### (autoloads (tetris) "tetris" "play/tetris.el" (15745 59717)) ;;; Generated autoloads from play/tetris.el (autoload (quote tetris) "tetris" "\ --- 22139,22145 ---- ;;;*** ! ;;;### (autoloads (tetris) "tetris" "play/tetris.el" (15763 44954)) ;;; Generated autoloads from play/tetris.el (autoload (quote tetris) "tetris" "\ *************** *** 22146,22152 **** ;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command ;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp ;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el" ! ;;;;;; (16111 31888)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ --- 22170,22176 ---- ;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command ;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp ;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el" ! ;;;;;; (16139 21086)) ;;; Generated autoloads from textmodes/tex-mode.el (defvar tex-shell-file-name nil "\ *************** *** 22448,22454 **** ;;;*** ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer) ! ;;;;;; "texinfmt" "textmodes/texinfmt.el" (16111 31888)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload (quote texinfo-format-buffer) "texinfmt" "\ --- 22472,22478 ---- ;;;*** ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer) ! ;;;;;; "texinfmt" "textmodes/texinfmt.el" (16111 41838)) ;;; Generated autoloads from textmodes/texinfmt.el (autoload (quote texinfo-format-buffer) "texinfmt" "\ *************** *** 22488,22494 **** ;;;*** ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote) ! ;;;;;; "texinfo" "textmodes/texinfo.el" (16111 31888)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote "``" "\ --- 22512,22518 ---- ;;;*** ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote) ! ;;;;;; "texinfo" "textmodes/texinfo.el" (16148 4633)) ;;; Generated autoloads from textmodes/texinfo.el (defvar texinfo-open-quote "``" "\ *************** *** 22574,22580 **** ;;;### (autoloads (thai-composition-function thai-post-read-conversion ;;;;;; thai-compose-buffer thai-compose-string thai-compose-region) ! ;;;;;; "thai-util" "language/thai-util.el" (15935 48150)) ;;; Generated autoloads from language/thai-util.el (autoload (quote thai-compose-region) "thai-util" "\ --- 22598,22604 ---- ;;;### (autoloads (thai-composition-function thai-post-read-conversion ;;;;;; thai-compose-buffer thai-compose-string thai-compose-region) ! ;;;;;; "thai-util" "language/thai-util.el" (15941 42961)) ;;; Generated autoloads from language/thai-util.el (autoload (quote thai-compose-region) "thai-util" "\ *************** *** 22613,22619 **** ;;;### (autoloads (list-at-point number-at-point symbol-at-point ;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing) ! ;;;;;; "thingatpt" "thingatpt.el" (15935 44362)) ;;; Generated autoloads from thingatpt.el (autoload (quote forward-thing) "thingatpt" "\ --- 22637,22643 ---- ;;;### (autoloads (list-at-point number-at-point symbol-at-point ;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing) ! ;;;;;; "thingatpt" "thingatpt.el" (15941 42957)) ;;; Generated autoloads from thingatpt.el (autoload (quote forward-thing) "thingatpt" "\ *************** *** 22673,22679 **** ;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region ;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan ;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util" ! ;;;;;; "language/tibet-util.el" (15935 48150)) ;;; Generated autoloads from language/tibet-util.el (autoload (quote tibetan-char-p) "tibet-util" "\ --- 22697,22703 ---- ;;;;;; tibetan-composition-function tibetan-decompose-string tibetan-decompose-region ;;;;;; tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan ;;;;;; tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util" ! ;;;;;; "language/tibet-util.el" (15941 42961)) ;;; Generated autoloads from language/tibet-util.el (autoload (quote tibetan-char-p) "tibet-util" "\ *************** *** 22752,22758 **** ;;;*** ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el" ! ;;;;;; (15935 49285)) ;;; Generated autoloads from textmodes/tildify.el (autoload (quote tildify-region) "tildify" "\ --- 22776,22782 ---- ;;;*** ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el" ! ;;;;;; (15941 42966)) ;;; Generated autoloads from textmodes/tildify.el (autoload (quote tildify-region) "tildify" "\ *************** *** 22776,22782 **** ;;;*** ;;;### (autoloads (display-time-mode display-time display-time-day-and-date) ! ;;;;;; "time" "time.el" (16009 54369)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ --- 22800,22806 ---- ;;;*** ;;;### (autoloads (display-time-mode display-time display-time-day-and-date) ! ;;;;;; "time" "time.el" (16011 28192)) ;;; Generated autoloads from time.el (defvar display-time-day-and-date nil "\ *************** *** 22897,22903 **** ;;;*** ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp" ! ;;;;;; "time-stamp.el" (15931 55755)) ;;; Generated autoloads from time-stamp.el (autoload (quote time-stamp) "time-stamp" "\ --- 22921,22927 ---- ;;;*** ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp" ! ;;;;;; "time-stamp.el" (15941 42957)) ;;; Generated autoloads from time-stamp.el (autoload (quote time-stamp) "time-stamp" "\ *************** *** 22931,22937 **** ;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out ;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in ;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el" ! ;;;;;; (16111 31865)) ;;; Generated autoloads from calendar/timeclock.el (autoload (quote timeclock-modeline-display) "timeclock" "\ --- 22955,22961 ---- ;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out ;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in ;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el" ! ;;;;;; (16148 4633)) ;;; Generated autoloads from calendar/timeclock.el (autoload (quote timeclock-modeline-display) "timeclock" "\ *************** *** 22976,22981 **** --- 23000,23008 ---- (autoload (quote timeclock-status-string) "timeclock" "\ Report the overall timeclock status at the present moment. + If SHOW-SECONDS is non-nil, display second resolution. + If TODAY-ONLY is non-nil, the display will be relative only to time + worked today, ignoring the time worked on previous days. \(fn &optional SHOW-SECONDS TODAY-ONLY)" t nil) *************** *** 23018,23029 **** (autoload (quote timeclock-when-to-leave-string) "timeclock" "\ Return a string representing at what time the workday ends today. This string is relative to the value of `timeclock-workday'. If ! NO-MESSAGE is non-nil, no messages will be displayed in the ! minibuffer. If SHOW-SECONDS is non-nil, the value printed/returned ! will include seconds. If TODAY-ONLY is non-nil, the value returned ! will be relative only to the time worked today, and not to past time. ! This argument only makes a difference if `timeclock-relative' is ! non-nil. \(fn &optional SHOW-SECONDS TODAY-ONLY)" t nil) --- 23045,23053 ---- (autoload (quote timeclock-when-to-leave-string) "timeclock" "\ Return a string representing at what time the workday ends today. This string is relative to the value of `timeclock-workday'. If ! SHOW-SECONDS is non-nil, the value printed/returned will include ! seconds. If TODAY-ONLY is non-nil, the value returned will be ! relative only to the time worked today, and not to past time. \(fn &optional SHOW-SECONDS TODAY-ONLY)" t nil) *************** *** 23104,23110 **** ;;;*** ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv" ! ;;;;;; "international/titdic-cnv.el" (15935 48018)) ;;; Generated autoloads from international/titdic-cnv.el (autoload (quote titdic-convert) "titdic-cnv" "\ --- 23128,23134 ---- ;;;*** ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv" ! ;;;;;; "international/titdic-cnv.el" (15941 42961)) ;;; Generated autoloads from international/titdic-cnv.el (autoload (quote titdic-convert) "titdic-cnv" "\ *************** *** 23145,23151 **** ;;;*** ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" ! ;;;;;; "tmm.el" (15556 11342)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [f10] 'tmm-menubar) --- 23169,23175 ---- ;;;*** ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm" ! ;;;;;; "tmm.el" (15556 35357)) ;;; Generated autoloads from tmm.el (define-key global-map "\M-`" 'tmm-menubar) (define-key global-map [f10] 'tmm-menubar) *************** *** 23247,23253 **** ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu ;;;;;; tool-bar-local-item tool-bar-add-item tool-bar-mode) "tool-bar" ! ;;;;;; "toolbar/tool-bar.el" (15668 41521)) ;;; Generated autoloads from toolbar/tool-bar.el (defvar tool-bar-mode nil "\ --- 23271,23277 ---- ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu ;;;;;; tool-bar-local-item tool-bar-add-item tool-bar-mode) "tool-bar" ! ;;;;;; "toolbar/tool-bar.el" (15678 51473)) ;;; Generated autoloads from toolbar/tool-bar.el (defvar tool-bar-mode nil "\ *************** *** 23328,23334 **** ;;;*** ;;;### (autoloads (tooltip-mode tooltip-mode) "tooltip" "tooltip.el" ! ;;;;;; (15935 44436)) ;;; Generated autoloads from tooltip.el (autoload (quote tooltip-mode) "tooltip" "\ --- 23352,23358 ---- ;;;*** ;;;### (autoloads (tooltip-mode tooltip-mode) "tooltip" "tooltip.el" ! ;;;;;; (15941 42957)) ;;; Generated autoloads from tooltip.el (autoload (quote tooltip-mode) "tooltip" "\ *************** *** 23346,23353 **** ;;;*** ! ;;;### (autoloads (tpu-edt-on) "tpu-edt" "emulation/tpu-edt.el" (15651 ! ;;;;;; 2747)) ;;; Generated autoloads from emulation/tpu-edt.el (defalias (quote tpu-edt-mode) (quote tpu-edt-on)) --- 23370,23377 ---- ;;;*** ! ;;;### (autoloads (tpu-edt-on) "tpu-edt" "emulation/tpu-edt.el" (15678 ! ;;;;;; 51469)) ;;; Generated autoloads from emulation/tpu-edt.el (defalias (quote tpu-edt-mode) (quote tpu-edt-on)) *************** *** 23382,23388 **** ;;;*** ! ;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (15954 11393)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload (quote tq-create) "tq" "\ --- 23406,23412 ---- ;;;*** ! ;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (15961 24152)) ;;; Generated autoloads from emacs-lisp/tq.el (autoload (quote tq-create) "tq" "\ *************** *** 23396,23402 **** ;;;*** ;;;### (autoloads (trace-function-background trace-function trace-buffer) ! ;;;;;; "trace" "emacs-lisp/trace.el" (15761 63033)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ --- 23420,23426 ---- ;;;*** ;;;### (autoloads (trace-function-background trace-function trace-buffer) ! ;;;;;; "trace" "emacs-lisp/trace.el" (15763 44953)) ;;; Generated autoloads from emacs-lisp/trace.el (defvar trace-buffer "*trace-output*" "\ *************** *** 23429,23435 **** ;;;### (autoloads (tramp-completion-file-name-handler tramp-file-name-handler ;;;;;; tramp-completion-file-name-regexp tramp-file-name-regexp) ! ;;;;;; "tramp" "net/tramp.el" (16111 31879)) ;;; Generated autoloads from net/tramp.el (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\ --- 23453,23459 ---- ;;;### (autoloads (tramp-completion-file-name-handler tramp-file-name-handler ;;;;;; tramp-completion-file-name-regexp tramp-file-name-regexp) ! ;;;;;; "tramp" "net/tramp.el" (16111 41831)) ;;; Generated autoloads from net/tramp.el (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\ *************** *** 23558,23564 **** ;;;### (autoloads (type-break-guesstimate-keystroke-threshold type-break-statistics ;;;;;; type-break type-break-mode type-break-keystroke-threshold ;;;;;; type-break-good-rest-interval type-break-interval type-break-mode) ! ;;;;;; "type-break" "type-break.el" (16111 31865)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ --- 23582,23588 ---- ;;;### (autoloads (type-break-guesstimate-keystroke-threshold type-break-statistics ;;;;;; type-break type-break-mode type-break-keystroke-threshold ;;;;;; type-break-good-rest-interval type-break-interval type-break-mode) ! ;;;;;; "type-break" "type-break.el" (16111 41826)) ;;; Generated autoloads from type-break.el (defvar type-break-mode nil "\ *************** *** 23738,23744 **** ;;;*** ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message) ! ;;;;;; "undigest" "mail/undigest.el" (15956 38952)) ;;; Generated autoloads from mail/undigest.el (autoload (quote undigestify-rmail-message) "undigest" "\ --- 23762,23768 ---- ;;;*** ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message) ! ;;;;;; "undigest" "mail/undigest.el" (15961 24154)) ;;; Generated autoloads from mail/undigest.el (autoload (quote undigestify-rmail-message) "undigest" "\ *************** *** 23757,23763 **** ;;;*** ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el" ! ;;;;;; (15763 33775)) ;;; Generated autoloads from mail/unrmail.el (autoload (quote batch-unrmail) "unrmail" "\ --- 23781,23787 ---- ;;;*** ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el" ! ;;;;;; (15763 44954)) ;;; Generated autoloads from mail/unrmail.el (autoload (quote batch-unrmail) "unrmail" "\ *************** *** 23776,23783 **** ;;;*** ! ;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (15935 ! ;;;;;; 47054)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload (quote unsafep) "unsafep" "\ --- 23800,23807 ---- ;;;*** ! ;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (15941 ! ;;;;;; 42958)) ;;; Generated autoloads from emacs-lisp/unsafep.el (autoload (quote unsafep) "unsafep" "\ *************** *** 23790,23796 **** ;;;*** ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock) ! ;;;;;; "userlock" "userlock.el" (15764 44217)) ;;; Generated autoloads from userlock.el (autoload (quote ask-user-about-lock) "userlock" "\ --- 23814,23820 ---- ;;;*** ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock) ! ;;;;;; "userlock" "userlock.el" (15781 48897)) ;;; Generated autoloads from userlock.el (autoload (quote ask-user-about-lock) "userlock" "\ *************** *** 23843,23849 **** ;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window ;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file ;;;;;; with-vc-file vc-branch-part vc-before-checkin-hook vc-checkin-hook ! ;;;;;; vc-checkout-hook) "vc" "vc.el" (16116 34476)) ;;; Generated autoloads from vc.el (defvar vc-checkout-hook nil "\ --- 23867,23873 ---- ;;;;;; vc-directory vc-merge vc-insert-headers vc-version-other-window ;;;;;; vc-diff vc-register vc-next-action vc-do-command edit-vc-file ;;;;;; with-vc-file vc-branch-part vc-before-checkin-hook vc-checkin-hook ! ;;;;;; vc-checkout-hook) "vc" "vc.el" (16139 21084)) ;;; Generated autoloads from vc.el (defvar vc-checkout-hook nil "\ *************** *** 24124,24130 **** ;;;*** ! ;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (16078 24841)) ;;; Generated autoloads from vc-cvs.el (defun vc-cvs-registered (f) (when (file-readable-p (expand-file-name --- 24148,24154 ---- ;;;*** ! ;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (16135 8990)) ;;; Generated autoloads from vc-cvs.el (defun vc-cvs-registered (f) (when (file-readable-p (expand-file-name *************** *** 24134,24140 **** ;;;*** ! ;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (16064 63661)) ;;; Generated autoloads from vc-mcvs.el (defun vc-mcvs-registered (file) (let ((dir file)) --- 24158,24164 ---- ;;;*** ! ;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (16070 35807)) ;;; Generated autoloads from vc-mcvs.el (defun vc-mcvs-registered (file) (let ((dir file)) *************** *** 24153,24159 **** ;;;*** ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el" ! ;;;;;; (16058 44808)) ;;; Generated autoloads from vc-rcs.el (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ --- 24177,24183 ---- ;;;*** ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el" ! ;;;;;; (16070 35807)) ;;; Generated autoloads from vc-rcs.el (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ *************** *** 24166,24172 **** ;;;*** ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el" ! ;;;;;; (16058 44425)) ;;; Generated autoloads from vc-sccs.el (defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ --- 24190,24196 ---- ;;;*** ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el" ! ;;;;;; (16070 35807)) ;;; Generated autoloads from vc-sccs.el (defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ *************** *** 24183,24189 **** ;;;*** ! ;;;### (autoloads nil "vc-svn" "vc-svn.el" (16066 39743)) ;;; Generated autoloads from vc-svn.el (defun vc-svn-registered (f) (when (file-readable-p (expand-file-name --- 24207,24213 ---- ;;;*** ! ;;;### (autoloads nil "vc-svn" "vc-svn.el" (16135 8990)) ;;; Generated autoloads from vc-svn.el (defun vc-svn-registered (f) (when (file-readable-p (expand-file-name *************** *** 24196,24202 **** ;;;*** ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el" ! ;;;;;; (15973 44110)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload (quote vhdl-mode) "vhdl-mode" "\ --- 24220,24226 ---- ;;;*** ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el" ! ;;;;;; (15997 673)) ;;; Generated autoloads from progmodes/vhdl-mode.el (autoload (quote vhdl-mode) "vhdl-mode" "\ *************** *** 24721,24727 **** ;;;*** ! ;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (15935 47202)) ;;; Generated autoloads from emulation/vi.el (autoload (quote vi-mode) "vi" "\ --- 24745,24751 ---- ;;;*** ! ;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (15941 42958)) ;;; Generated autoloads from emulation/vi.el (autoload (quote vi-mode) "vi" "\ *************** *** 24776,24782 **** ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion ;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer ;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util" ! ;;;;;; "language/viet-util.el" (15901 33692)) ;;; Generated autoloads from language/viet-util.el (autoload (quote viet-encode-viscii-char) "viet-util" "\ --- 24800,24806 ---- ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion ;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer ;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util" ! ;;;;;; "language/viet-util.el" (15924 18773)) ;;; Generated autoloads from language/viet-util.el (autoload (quote viet-encode-viscii-char) "viet-util" "\ *************** *** 24822,24829 **** ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame ;;;;;; view-buffer-other-window view-buffer view-file-other-frame ! ;;;;;; view-file-other-window view-file) "view" "view.el" (16111 ! ;;;;;; 31865)) ;;; Generated autoloads from view.el (defvar view-mode nil "\ --- 24846,24853 ---- ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame ;;;;;; view-buffer-other-window view-buffer view-file-other-frame ! ;;;;;; view-file-other-window view-file) "view" "view.el" (16140 ! ;;;;;; 30175)) ;;; Generated autoloads from view.el (defvar view-mode nil "\ *************** *** 25031,25037 **** ;;;*** ;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (16111 ! ;;;;;; 31879)) ;;; Generated autoloads from emulation/vip.el (autoload (quote vip-setup) "vip" "\ --- 25055,25061 ---- ;;;*** ;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (16111 ! ;;;;;; 41830)) ;;; Generated autoloads from emulation/vip.el (autoload (quote vip-setup) "vip" "\ *************** *** 25047,25053 **** ;;;*** ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" ! ;;;;;; (15935 47203)) ;;; Generated autoloads from emulation/viper.el (autoload (quote toggle-viper-mode) "viper" "\ --- 25071,25077 ---- ;;;*** ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from emulation/viper.el (autoload (quote toggle-viper-mode) "viper" "\ *************** *** 25146,25152 **** ;;;*** ! ;;;### (autoloads (webjump) "webjump" "net/webjump.el" (15935 48476)) ;;; Generated autoloads from net/webjump.el (autoload (quote webjump) "webjump" "\ --- 25170,25176 ---- ;;;*** ! ;;;### (autoloads (webjump) "webjump" "net/webjump.el" (15941 42963)) ;;; Generated autoloads from net/webjump.el (autoload (quote webjump) "webjump" "\ *************** *** 25195,25201 **** ;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check ;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check ;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el" ! ;;;;;; (16111 31865)) ;;; Generated autoloads from whitespace.el (autoload (quote whitespace-toggle-leading-check) "whitespace" "\ --- 25219,25225 ---- ;;;;;; whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check ;;;;;; whitespace-toggle-indent-check whitespace-toggle-trailing-check ;;;;;; whitespace-toggle-leading-check) "whitespace" "whitespace.el" ! ;;;;;; (16111 41826)) ;;; Generated autoloads from whitespace.el (autoload (quote whitespace-toggle-leading-check) "whitespace" "\ *************** *** 25283,25289 **** ;;;*** ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse ! ;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (15935 44721)) ;;; Generated autoloads from wid-browse.el (autoload (quote widget-browse-at) "wid-browse" "\ --- 25307,25313 ---- ;;;*** ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse ! ;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (15941 42957)) ;;; Generated autoloads from wid-browse.el (autoload (quote widget-browse-at) "wid-browse" "\ *************** *** 25311,25317 **** ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create ;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (16111 ! ;;;;;; 31865)) ;;; Generated autoloads from wid-edit.el (autoload (quote widgetp) "wid-edit" "\ --- 25335,25341 ---- ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create ;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (16111 ! ;;;;;; 41826)) ;;; Generated autoloads from wid-edit.el (autoload (quote widgetp) "wid-edit" "\ *************** *** 25354,25360 **** ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right ;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (16111 ! ;;;;;; 31865)) ;;; Generated autoloads from windmove.el (autoload (quote windmove-left) "windmove" "\ --- 25378,25384 ---- ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right ;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (16111 ! ;;;;;; 41826)) ;;; Generated autoloads from windmove.el (autoload (quote windmove-left) "windmove" "\ *************** *** 25407,25413 **** ;;;*** ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" ! ;;;;;; (15935 44772)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ --- 25431,25437 ---- ;;;*** ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" ! ;;;;;; (15941 42957)) ;;; Generated autoloads from winner.el (defvar winner-mode nil "\ *************** *** 25426,25432 **** ;;;*** ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" ! ;;;;;; "woman.el" (16011 21748)) ;;; Generated autoloads from woman.el (autoload (quote woman) "woman" "\ --- 25450,25456 ---- ;;;*** ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman" ! ;;;;;; "woman.el" (16011 28192)) ;;; Generated autoloads from woman.el (autoload (quote woman) "woman" "\ *************** *** 25462,25468 **** ;;;*** ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el" ! ;;;;;; (15935 47203)) ;;; Generated autoloads from emulation/ws-mode.el (autoload (quote wordstar-mode) "ws-mode" "\ --- 25486,25492 ---- ;;;*** ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el" ! ;;;;;; (15941 42958)) ;;; Generated autoloads from emulation/ws-mode.el (autoload (quote wordstar-mode) "ws-mode" "\ *************** *** 25575,25581 **** ;;;*** ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el" ! ;;;;;; (16111 31865)) ;;; Generated autoloads from xml.el (autoload (quote xml-parse-file) "xml" "\ --- 25599,25605 ---- ;;;*** ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el" ! ;;;;;; (16148 4633)) ;;; Generated autoloads from xml.el (autoload (quote xml-parse-file) "xml" "\ *************** *** 25583,25605 **** If FILE is already visited, use its buffer and don't kill it. Returns the top node with all its children. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped. ! \(fn FILE &optional PARSE-DTD)" nil nil) (autoload (quote xml-parse-region) "xml" "\ Parse the region from BEG to END in BUFFER. If BUFFER is nil, it defaults to the current buffer. Returns the XML list for the region, or raises an error if the region ! is not a well-formed XML file. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped, and returned as the first element of the list. ! \(fn BEG END &optional BUFFER PARSE-DTD)" nil nil) ;;;*** ! ;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (16017 ! ;;;;;; 34179)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ --- 25607,25631 ---- If FILE is already visited, use its buffer and don't kill it. Returns the top node with all its children. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped. + If PARSE-NS is non-nil, then QNAMES are expanded. ! \(fn FILE &optional PARSE-DTD PARSE-NS)" nil nil) (autoload (quote xml-parse-region) "xml" "\ Parse the region from BEG to END in BUFFER. If BUFFER is nil, it defaults to the current buffer. Returns the XML list for the region, or raises an error if the region ! is not well-formed XML. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped, and returned as the first element of the list. + If PARSE-NS is non-nil, then QNAMES are expanded. ! \(fn BEG END &optional BUFFER PARSE-DTD PARSE-NS)" nil nil) ;;;*** ! ;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (16025 ! ;;;;;; 36883)) ;;; Generated autoloads from xt-mouse.el (defvar xterm-mouse-mode nil "\ *************** *** 25647,25653 **** ;;;*** ! ;;;### (autoloads (zone) "zone" "play/zone.el" (15634 63601)) ;;; Generated autoloads from play/zone.el (autoload (quote zone) "zone" "\ --- 25673,25679 ---- ;;;*** ! ;;;### (autoloads (zone) "zone" "play/zone.el" (15678 51471)) ;;; Generated autoloads from play/zone.el (autoload (quote zone) "zone" "\ *************** *** 25658,25664 **** ;;;*** ;;;### (autoloads (zone-mode zone-mode-update-serial-hook) "zone-mode" ! ;;;;;; "net/zone-mode.el" (15935 48476)) ;;; Generated autoloads from net/zone-mode.el (autoload (quote zone-mode-update-serial-hook) "zone-mode" "\ --- 25684,25690 ---- ;;;*** ;;;### (autoloads (zone-mode zone-mode-update-serial-hook) "zone-mode" ! ;;;;;; "net/zone-mode.el" (15941 42963)) ;;; Generated autoloads from net/zone-mode.el (autoload (quote zone-mode-update-serial-hook) "zone-mode" "\ *************** *** 25674,25680 **** - automatically update the serial number for a zone when saving the file ! - fontification" t nil) ;;;*** --- 25700,25708 ---- - automatically update the serial number for a zone when saving the file ! - fontification ! ! \(fn)" t nil) ;;;*** *************** *** 25697,25704 **** ;;;;;; "calendar/cal-julian.el" "calendar/cal-mayan.el" "calendar/cal-menu.el" ;;;;;; "calendar/cal-move.el" "calendar/cal-persia.el" "calendar/cal-tex.el" ;;;;;; "calendar/cal-x.el" "calendar/parse-time.el" "case-table.el" ! ;;;;;; "cdl.el" "cus-dep.el" "cus-start.el" "custom.el" "dos-fns.el" ! ;;;;;; "dos-vars.el" "dos-w32.el" "ediff-diff.el" "ediff-init.el" ;;;;;; "ediff-merg.el" "ediff-ptch.el" "ediff-vers.el" "ediff-wind.el" ;;;;;; "electric.el" "emacs-lisp/assoc.el" "emacs-lisp/authors.el" ;;;;;; "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/byte-run.el" --- 25725,25732 ---- ;;;;;; "calendar/cal-julian.el" "calendar/cal-mayan.el" "calendar/cal-menu.el" ;;;;;; "calendar/cal-move.el" "calendar/cal-persia.el" "calendar/cal-tex.el" ;;;;;; "calendar/cal-x.el" "calendar/parse-time.el" "case-table.el" ! ;;;;;; "cdl.el" "cus-dep.el" "cus-load.el" "cus-start.el" "custom.el" ! ;;;;;; "dos-fns.el" "dos-vars.el" "dos-w32.el" "ediff-diff.el" "ediff-init.el" ;;;;;; "ediff-merg.el" "ediff-ptch.el" "ediff-vers.el" "ediff-wind.el" ;;;;;; "electric.el" "emacs-lisp/assoc.el" "emacs-lisp/authors.el" ;;;;;; "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el" "emacs-lisp/byte-run.el" *************** *** 25776,25814 **** ;;;;;; "net/eudcb-bbdb.el" "net/eudcb-ldap.el" "net/eudcb-ph.el" ;;;;;; "net/ldap.el" "net/netrc.el" "net/tls.el" "net/tramp-ftp.el" ;;;;;; "net/tramp-smb.el" "net/tramp-util.el" "net/tramp-uu.el" ! ;;;;;; "net/tramp-vc.el" "net/trampver.el" "obsolete/float.el" "obsolete/hilit19.el" ! ;;;;;; "obsolete/mlsupport.el" "obsolete/ooutline.el" "obsolete/profile.el" ! ;;;;;; "obsolete/rnews.el" "obsolete/sc.el" "obsolete/sun-curs.el" ! ;;;;;; "obsolete/sun-fns.el" "obsolete/uncompress.el" "obsolete/x-apollo.el" ! ;;;;;; "obsolete/x-menu.el" "patcomp.el" "paths.el" "pcvs-info.el" ! ;;;;;; "pcvs-parse.el" "pcvs-util.el" "play/gamegrid.el" "play/gametree.el" ! ;;;;;; "play/meese.el" "progmodes/ada-prj.el" "progmodes/cc-align.el" ! ;;;;;; "progmodes/cc-bytecomp.el" "progmodes/cc-cmds.el" "progmodes/cc-compat.el" ! ;;;;;; "progmodes/cc-defs.el" "progmodes/cc-engine.el" "progmodes/cc-menus.el" ! ;;;;;; "progmodes/ebnf-bnf.el" "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el" ! ;;;;;; "progmodes/ebnf-yac.el" "progmodes/idlw-rinfo.el" "progmodes/idlw-toolbar.el" ! ;;;;;; "progmodes/mantemp.el" "progmodes/xscheme.el" "register.el" ! ;;;;;; "replace.el" "s-region.el" "saveplace.el" "scroll-bar.el" ! ;;;;;; "select.el" "simple.el" "soundex.el" "startup.el" "subdirs.el" ! ;;;;;; "subr.el" "tempo.el" "term/AT386.el" "term/apollo.el" "term/bg-mouse.el" ! ;;;;;; "term/bobcat.el" "term/internal.el" "term/iris-ansi.el" "term/keyswap.el" ! ;;;;;; "term/linux.el" "term/lk201.el" "term/mac-win.el" "term/news.el" ! ;;;;;; "term/pc-win.el" "term/rxvt.el" "term/sun-mouse.el" "term/sun.el" ! ;;;;;; "term/sup-mouse.el" "term/tty-colors.el" "term/tvi970.el" ! ;;;;;; "term/vt100.el" "term/vt102.el" "term/vt125.el" "term/vt200.el" ! ;;;;;; "term/vt201.el" "term/vt220.el" "term/vt240.el" "term/vt300.el" ! ;;;;;; "term/vt320.el" "term/vt400.el" "term/vt420.el" "term/w32-win.el" ! ;;;;;; "term/wyse50.el" "term/x-win.el" "term/xterm.el" "textmodes/bib-mode.el" ! ;;;;;; "textmodes/fill.el" "textmodes/makeinfo.el" "textmodes/page-ext.el" ! ;;;;;; "textmodes/page.el" "textmodes/paragraphs.el" "textmodes/refbib.el" ! ;;;;;; "textmodes/refer.el" "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" ! ;;;;;; "textmodes/reftex-global.el" "textmodes/reftex-parse.el" ! ;;;;;; "textmodes/reftex-ref.el" "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" ! ;;;;;; "textmodes/reftex-vars.el" "textmodes/texnfo-upd.el" "textmodes/text-mode.el" ! ;;;;;; "timezone.el" "uniquify.el" "vc-hooks.el" "vcursor.el" "version.el" ! ;;;;;; "vms-patch.el" "vmsproc.el" "vt-control.el" "vt100-led.el" ! ;;;;;; "w32-fns.el" "w32-vars.el" "widget.el" "window.el") (16116 ! ;;;;;; 61316 216684)) ;;;*** --- 25804,25842 ---- ;;;;;; "net/eudcb-bbdb.el" "net/eudcb-ldap.el" "net/eudcb-ph.el" ;;;;;; "net/ldap.el" "net/netrc.el" "net/tls.el" "net/tramp-ftp.el" ;;;;;; "net/tramp-smb.el" "net/tramp-util.el" "net/tramp-uu.el" ! ;;;;;; "net/tramp-vc.el" "net/trampver.el" "obsolete/awk-mode.el" ! ;;;;;; "obsolete/float.el" "obsolete/hilit19.el" "obsolete/mlsupport.el" ! ;;;;;; "obsolete/ooutline.el" "obsolete/profile.el" "obsolete/rnews.el" ! ;;;;;; "obsolete/sc.el" "obsolete/sun-curs.el" "obsolete/sun-fns.el" ! ;;;;;; "obsolete/uncompress.el" "obsolete/x-apollo.el" "obsolete/x-menu.el" ! ;;;;;; "patcomp.el" "paths.el" "pcvs-info.el" "pcvs-parse.el" "pcvs-util.el" ! ;;;;;; "play/gamegrid.el" "play/gametree.el" "play/meese.el" "progmodes/ada-prj.el" ! ;;;;;; "progmodes/cc-align.el" "progmodes/cc-awk.el" "progmodes/cc-bytecomp.el" ! ;;;;;; "progmodes/cc-cmds.el" "progmodes/cc-compat.el" "progmodes/cc-defs.el" ! ;;;;;; "progmodes/cc-engine.el" "progmodes/cc-fonts.el" "progmodes/cc-langs.el" ! ;;;;;; "progmodes/cc-menus.el" "progmodes/cc-vars.el" "progmodes/ebnf-bnf.el" ! ;;;;;; "progmodes/ebnf-iso.el" "progmodes/ebnf-otz.el" "progmodes/ebnf-yac.el" ! ;;;;;; "progmodes/idlw-rinfo.el" "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" ! ;;;;;; "progmodes/xscheme.el" "register.el" "replace.el" "s-region.el" ! ;;;;;; "saveplace.el" "scroll-bar.el" "select.el" "simple.el" "soundex.el" ! ;;;;;; "startup.el" "subdirs.el" "subr.el" "tempo.el" "term/AT386.el" ! ;;;;;; "term/apollo.el" "term/bg-mouse.el" "term/bobcat.el" "term/internal.el" ! ;;;;;; "term/iris-ansi.el" "term/keyswap.el" "term/linux.el" "term/lk201.el" ! ;;;;;; "term/mac-win.el" "term/news.el" "term/pc-win.el" "term/rxvt.el" ! ;;;;;; "term/sun-mouse.el" "term/sun.el" "term/sup-mouse.el" "term/tty-colors.el" ! ;;;;;; "term/tvi970.el" "term/vt100.el" "term/vt102.el" "term/vt125.el" ! ;;;;;; "term/vt200.el" "term/vt201.el" "term/vt220.el" "term/vt240.el" ! ;;;;;; "term/vt300.el" "term/vt320.el" "term/vt400.el" "term/vt420.el" ! ;;;;;; "term/w32-win.el" "term/wyse50.el" "term/x-win.el" "term/xterm.el" ! ;;;;;; "textmodes/bib-mode.el" "textmodes/fill.el" "textmodes/makeinfo.el" ! ;;;;;; "textmodes/page-ext.el" "textmodes/page.el" "textmodes/paragraphs.el" ! ;;;;;; "textmodes/refbib.el" "textmodes/refer.el" "textmodes/reftex-auc.el" ! ;;;;;; "textmodes/reftex-dcr.el" "textmodes/reftex-global.el" "textmodes/reftex-ref.el" ! ;;;;;; "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" "textmodes/reftex-vars.el" ! ;;;;;; "textmodes/texnfo-upd.el" "textmodes/text-mode.el" "timezone.el" ! ;;;;;; "uniquify.el" "vc-hooks.el" "vcursor.el" "version.el" "vms-patch.el" ! ;;;;;; "vmsproc.el" "vt-control.el" "vt100-led.el" "w32-fns.el" ! ;;;;;; "w32-vars.el" "widget.el" "window.el") (16150 35885 616236)) ;;;*** From MAILER-DAEMON Fri Jul 18 18:47:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19de0n-0006jQ-N6 for mharc-emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:47:37 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ddzt-0004VW-9m for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:46:41 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ddzJ-0003WD-US for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:46:06 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ddyB-0002yg-J0 for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:44:55 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ddxB-00043l-4e for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:43:53 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Fri, 18 Jul 2003 18:43:53 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/simple.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2003 22:47:36 -0000 Index: emacs/lisp/simple.el diff -c emacs/lisp/simple.el:1.614 emacs/lisp/simple.el:1.615 *** emacs/lisp/simple.el:1.614 Mon Jul 7 17:00:26 2003 --- emacs/lisp/simple.el Fri Jul 18 18:43:52 2003 *************** *** 3159,3165 **** If optional arg REALLY-WORD is non-nil, it finds just a word." (save-excursion (let* ((oldpoint (point)) (start (point)) (end (point)) ! (syntaxes (if really-word "w_" "w")) (not-syntaxes (concat "^" syntaxes))) (skip-syntax-backward syntaxes) (setq start (point)) (goto-char oldpoint) --- 3159,3165 ---- If optional arg REALLY-WORD is non-nil, it finds just a word." (save-excursion (let* ((oldpoint (point)) (start (point)) (end (point)) ! (syntaxes (if really-word "w" "w_")) (not-syntaxes (concat "^" syntaxes))) (skip-syntax-backward syntaxes) (setq start (point)) (goto-char oldpoint) From MAILER-DAEMON Fri Jul 18 18:48:27 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19de1L-000827-U9 for mharc-emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:48:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19de0t-0006y7-NV for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:47:43 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19de0R-0005rE-9s for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:47:15 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19de0O-0005qJ-FI for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:47:12 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ddzO-00049P-9s for emacs-diffs@gnu.org; Fri, 18 Jul 2003 18:46:10 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Fri, 18 Jul 2003 18:46:10 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2003 22:48:09 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5288 emacs/lisp/ChangeLog:1.5289 *** emacs/lisp/ChangeLog:1.5288 Thu Jul 17 07:40:42 2003 --- emacs/lisp/ChangeLog Fri Jul 18 18:46:08 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-18 John Paul Wallington + + * simple.el (current-word): Don't include punctuation char when + `really-word' arg is non-nil. + 2003-07-17 Martin Stjernholm * progmodes/awk-mode.el: Obsoleted by the AWK support in CC Mode - From MAILER-DAEMON Fri Jul 18 21:26:57 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19dgUI-0004A8-Ui for mharc-emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:26:14 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19dgTe-0003hn-N2 for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:25:34 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19dgTK-0002We-Tg for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:25:15 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19dgT1-0001R5-U8 for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:24:55 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19dgRy-0007rO-5v for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:23:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Fri, 18 Jul 2003 21:23:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/kkc.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 01:26:14 -0000 Index: emacs/lisp/international/kkc.el diff -c emacs/lisp/international/kkc.el:1.28 emacs/lisp/international/kkc.el:1.29 *** emacs/lisp/international/kkc.el:1.28 Tue Feb 4 08:09:38 2003 --- emacs/lisp/international/kkc.el Fri Jul 18 21:23:50 2003 *************** *** 549,561 **** ;; The currently selected conversion is after the list shown ;; previously. We start calculation of message width from ;; the conversion next of TO. ! (setq this-idx next-idx msg nil) ! ;; The current conversion is in MSG. Just clear brackets ! ;; around index number. ! (if (string-match "<.>" msg) ! (progn ! (aset msg (match-beginning 0) ?\ ) ! (aset msg (1- (match-end 0)) ?\ ))))) (if (not msg) (let ((len (length kkc-current-conversions)) (max-width (window-width (minibuffer-window))) --- 549,555 ---- ;; The currently selected conversion is after the list shown ;; previously. We start calculation of message width from ;; the conversion next of TO. ! (setq this-idx next-idx msg nil))) (if (not msg) (let ((len (length kkc-current-conversions)) (max-width (window-width (minibuffer-window))) *************** *** 587,593 **** (setq l (nthcdr this-idx kkc-current-conversions)) (setq msg (format " %c %s" (aref kkc-show-conversion-list-index-chars 0) ! (car l)) idx (1+ this-idx) l (cdr l)) (while (< idx next-idx) --- 581,588 ---- (setq l (nthcdr this-idx kkc-current-conversions)) (setq msg (format " %c %s" (aref kkc-show-conversion-list-index-chars 0) ! (propertize (car l) ! 'kkc-conversion-index this-idx)) idx (1+ this-idx) l (cdr l)) (while (< idx next-idx) *************** *** 595,614 **** msg (aref kkc-show-conversion-list-index-chars (- idx this-idx)) ! (car l))) ! (setq idx (1+ idx) l (cdr l))) (aset first-slot 2 msg))) (if (> current-idx 0) ! (progn ! ;; Highlight the current conversion by brackets. ! (string-match (format " \\(%c\\) " ! (aref kkc-show-conversion-list-index-chars ! (- current-idx this-idx))) ! msg) ! (aset msg (match-beginning 0) ?<) ! (aset msg (1- (match-end 0)) ?>))) ! (message "%s" msg))) ;; Update the conversion area with the latest conversion selected. ;; ALL if non nil means to update the whole area, else update only --- 590,615 ---- msg (aref kkc-show-conversion-list-index-chars (- idx this-idx)) ! (propertize (car l) ! 'kkc-conversion-index idx)) ! idx (1+ idx) l (cdr l))) (aset first-slot 2 msg))) + + ;; Highlight the current conversion. (if (> current-idx 0) ! (let ((pos 3) ! (limit (length msg))) ! (remove-text-properties 0 (length msg) '(face nil) msg) ! (while (not (eq (get-text-property pos 'kkc-conversion-index msg) ! current-idx)) ! (setq pos (next-single-property-change pos 'kkc-conversion-index ! msg limit))) ! (put-text-property pos (next-single-property-change ! pos 'kkc-conversion-index msg limit) ! 'face 'highlight msg))) ! (let ((message-log-max nil)) ! (message "%s" msg)))) ;; Update the conversion area with the latest conversion selected. ;; ALL if non nil means to update the whole area, else update only From MAILER-DAEMON Fri Jul 18 21:29:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19dgXU-0003Xs-Af for mharc-emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:29:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19dgX4-0002sx-6M for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:29:06 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19dgWo-0002YY-8U for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:28:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19dgWd-0002Rc-Mv for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:28:39 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19dgVd-000801-K2 for emacs-diffs@gnu.org; Fri, 18 Jul 2003 21:27:37 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Fri, 18 Jul 2003 21:27:37 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 01:29:31 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5289 emacs/lisp/ChangeLog:1.5290 *** emacs/lisp/ChangeLog:1.5289 Fri Jul 18 18:46:08 2003 --- emacs/lisp/ChangeLog Fri Jul 18 21:27:36 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-19 Kenichi Handa + + * international/kkc.el (kkc-show-conversion-list-update): + Highlight the correct candidate in the message. + 2003-07-18 John Paul Wallington * simple.el (current-word): Don't include punctuation char when From MAILER-DAEMON Sat Jul 19 12:23:13 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19duUJ-0003O1-RJ for mharc-emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:23:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19duUH-0003G7-3t for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:23:09 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19duUD-00032E-CZ for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:23:06 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19duTa-0001UG-3f for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:22:26 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19duSY-0004PV-2D for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:21:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 19 Jul 2003 12:21:22 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/artist.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 16:23:10 -0000 Index: emacs/lisp/textmodes/artist.el diff -c emacs/lisp/textmodes/artist.el:1.12 emacs/lisp/textmodes/artist.el:1.13 *** emacs/lisp/textmodes/artist.el:1.12 Fri Oct 18 11:25:48 2002 --- emacs/lisp/textmodes/artist.el Sat Jul 19 12:21:21 2003 *************** *** 32,38 **** ;; --------------- ;; ;; Artist is an Emacs lisp package that allows you to draw lines, ! ;; rectangles and ellipses by using your mouse and/or keyboard. The ;; shapes are made up with the ascii characters |, -, / and \. ;; ;; Features are: --- 32,38 ---- ;; --------------- ;; ;; Artist is an Emacs lisp package that allows you to draw lines, ! ;; rectangles and ellipses by using your mouse and/or keyboard. The ;; shapes are made up with the ascii characters |, -, / and \. ;; ;; Features are: *************** *** 61,80 **** ;; erase characters erase rectangles ;; ;; Straight lines are lines that go horizontally, vertically or ! ;; diagonally. Plain lines go in any direction. The operations in ;; the right column are accessed by holding down the shift key while ;; drawing. ;; ;; It is possible to vaporize (erase) entire lines and connected lines ;; (rectangles for example) as long as the lines being vaporized are ! ;; straight and connected at their endpoints. Vaporizing is inspired ;; by the drawrect package by Jari Aalto . ;; ;; * Flood-filling: You can fill any area with a certain character by ;; flood-filling. ;; ;; * Cut copy and paste: You can cut, copy and paste rectangular ! ;; regions. Artist also interfaces with the rect package (this can be ;; turned off if it causes you any trouble) so anything you cut in ;; artist can be yanked with C-x r y and vice versa. ;; --- 61,80 ---- ;; erase characters erase rectangles ;; ;; Straight lines are lines that go horizontally, vertically or ! ;; diagonally. Plain lines go in any direction. The operations in ;; the right column are accessed by holding down the shift key while ;; drawing. ;; ;; It is possible to vaporize (erase) entire lines and connected lines ;; (rectangles for example) as long as the lines being vaporized are ! ;; straight and connected at their endpoints. Vaporizing is inspired ;; by the drawrect package by Jari Aalto . ;; ;; * Flood-filling: You can fill any area with a certain character by ;; flood-filling. ;; ;; * Cut copy and paste: You can cut, copy and paste rectangular ! ;; regions. Artist also interfaces with the rect package (this can be ;; turned off if it causes you any trouble) so anything you cut in ;; artist can be yanked with C-x r y and vice versa. ;; *************** *** 85,91 **** ;; poly-line, you can set arrows on the line-ends by typing < or >. ;; ;; * Aspect-ratio: You can set the variable artist-aspect-ratio to ! ;; reflect the height-width ratio for the font you are using. Squares ;; and circles are then drawn square/round. Note, that once your ;; ascii-file is shown with font with a different height-width ratio, ;; the squares won't be square and the circles won't be round. --- 85,91 ---- ;; poly-line, you can set arrows on the line-ends by typing < or >. ;; ;; * Aspect-ratio: You can set the variable artist-aspect-ratio to ! ;; reflect the height-width ratio for the font you are using. Squares ;; and circles are then drawn square/round. Note, that once your ;; ascii-file is shown with font with a different height-width ratio, ;; the squares won't be square and the circles won't be round. *************** *** 1685,1691 **** (list 'if fn (cons 'funcall (cons fn args)))) (defvar artist-butlast-fn 'artist-butlast ! "The butlast function") (if (fboundp 'butlast) (setq artist-butlast-fn 'butlast) --- 1685,1691 ---- (list 'if fn (cons 'funcall (cons fn args)))) (defvar artist-butlast-fn 'artist-butlast ! "The butlast function.") (if (fboundp 'butlast) (setq artist-butlast-fn 'butlast) *************** *** 2526,2532 **** when drawing a simple image. Output is a straight line, which is a list on the form ! (END-POINT-1 END-POINT-2 SHAPE-INFO). END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. SHAPE-INFO is a vector [START-X START-Y LENGTH-OF-LINE DIRECTION --- 2526,2532 ---- when drawing a simple image. Output is a straight line, which is a list on the form ! \(END-POINT-1 END-POINT-2 SHAPE-INFO). END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. SHAPE-INFO is a vector [START-X START-Y LENGTH-OF-LINE DIRECTION *************** *** 2581,2587 **** "Draws a rectangle with corners at X1, Y1 and X2, Y2. Output is a rectangle, which is a list on the form ! (END-POINT-1 END-POINT-2 SHAPE-INFO). END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. SHAPE-INFO is a list of four straight lines." --- 2581,2587 ---- "Draws a rectangle with corners at X1, Y1 and X2, Y2. Output is a rectangle, which is a list on the form ! \(END-POINT-1 END-POINT-2 SHAPE-INFO). END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. SHAPE-INFO is a list of four straight lines." *************** *** 2642,2648 **** "Draw a square with corners at X1, Y1 and X2, Y2. Output is a square, which is a list on the form ! (END-POINT-1 END-POINT-2 SHAPE-INFO). END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. SHAPE-INFO is a list of four straight lines." --- 2642,2648 ---- "Draw a square with corners at X1, Y1 and X2, Y2. Output is a square, which is a list on the form ! \(END-POINT-1 END-POINT-2 SHAPE-INFO). END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. SHAPE-INFO is a list of four straight lines." From MAILER-DAEMON Sat Jul 19 12:24:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19duVe-00074q-IW for mharc-emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:24:34 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19duUy-0005b9-Ng for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:23:52 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19duUt-0005Kl-Ur for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:23:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19duUm-0004nX-22 for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:23:40 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19duTj-0004lX-T1 for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:22:35 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 19 Jul 2003 12:22:35 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/enriched.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 16:24:33 -0000 Index: emacs/lisp/textmodes/enriched.el diff -c emacs/lisp/textmodes/enriched.el:1.1 emacs/lisp/textmodes/enriched.el:1.2 *** emacs/lisp/textmodes/enriched.el:1.1 Fri May 30 19:28:51 2003 --- emacs/lisp/textmodes/enriched.el Sat Jul 19 12:22:35 2003 *************** *** 462,468 **** "Decode a `display' property for text between START and END. PARAM is a `' found for the property. Value is a list `(START END SYMBOL VALUE)' with START and END denoting ! the range of text to assign text property SYMBOL with value VALUE " (let ((prop (when (stringp param) (condition-case () (car (read-from-string param)) --- 462,468 ---- "Decode a `display' property for text between START and END. PARAM is a `' found for the property. Value is a list `(START END SYMBOL VALUE)' with START and END denoting ! the range of text to assign text property SYMBOL with value VALUE." (let ((prop (when (stringp param) (condition-case () (car (read-from-string param)) From MAILER-DAEMON Sat Jul 19 12:25:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19duWD-0007uF-E7 for mharc-emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:25:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19duW5-0007dK-LZ for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:25:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19duVd-00073W-JK for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:24:34 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19duVE-00060Y-Ab for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:24:08 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19duU6-0004ri-Ld for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:22:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 19 Jul 2003 12:22:58 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/two-column.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 16:25:07 -0000 Index: emacs/lisp/textmodes/two-column.el diff -c emacs/lisp/textmodes/two-column.el:1.26 emacs/lisp/textmodes/two-column.el:1.27 *** emacs/lisp/textmodes/two-column.el:1.26 Sat Oct 13 15:12:07 2001 --- emacs/lisp/textmodes/two-column.el Sat Jul 19 12:22:58 2003 *************** *** 223,229 **** (defcustom 2C-mode-line-format '("-%*- %15b --" (-3 . "%p") "--%[(" mode-name minor-mode-alist "%n" mode-line-process ")%]%-") ! "*Value of mode-line-format for a buffer in two-column minor mode." :type 'sexp :group 'two-column) --- 223,229 ---- (defcustom 2C-mode-line-format '("-%*- %15b --" (-3 . "%p") "--%[(" mode-name minor-mode-alist "%n" mode-line-process ")%]%-") ! "*Value of `mode-line-format' for a buffer in two-column minor mode." :type 'sexp :group 'two-column) From MAILER-DAEMON Sat Jul 19 12:27:16 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19duY9-0002wt-15 for mharc-emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:27:09 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19duXw-0002CH-Gl for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:26:56 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19duXt-00025O-VF for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:26:54 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19duXm-0001mi-Mo for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:26:46 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19duWm-0005C4-Lg for emacs-diffs@gnu.org; Sat, 19 Jul 2003 12:25:44 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Sat, 19 Jul 2003 12:25:44 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 16:27:08 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5290 emacs/lisp/ChangeLog:1.5291 *** emacs/lisp/ChangeLog:1.5290 Fri Jul 18 21:27:36 2003 --- emacs/lisp/ChangeLog Sat Jul 19 12:25:43 2003 *************** *** 1,3 **** --- 1,12 ---- + 2003-07-19 John Paul Wallington + + * textmodes/artist.el (artist-butlast-fn, artist-draw-sline) + (artist-draw-rect, artist-draw-square): Doc fixes. + + * textmodes/enriched.el (enriched-decode-display-prop): Doc fix. + + * textmodes/two-column.el (2C-mode-line-format): Doc fix. + 2003-07-19 Kenichi Handa * international/kkc.el (kkc-show-conversion-list-update): *************** *** 33,39 **** * progmodes/cc-engine.el (c-literal-faces): Declare as a variable since it might be modified. ! * progmodes/cc-langs.el: (c++-make-template-syntax-table) (c-syntactic-ws-start, c-syntactic-ws-end): Give more consistent names to these language constants. --- 42,48 ---- * progmodes/cc-engine.el (c-literal-faces): Declare as a variable since it might be modified. ! * progmodes/cc-langs.el (c++-make-template-syntax-table) (c-syntactic-ws-start, c-syntactic-ws-end): Give more consistent names to these language constants. From MAILER-DAEMON Sat Jul 19 16:49:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19dyd9-0003At-4S for mharc-emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:48:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19dycc-0002cY-44 for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:48:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19dycT-0002Yx-Nb for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:47:54 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19dya7-0001Uo-7W for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:45:27 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19dyZ7-0005Ex-2G for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:44:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Sat, 19 Jul 2003 16:44:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 20:48:33 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5291 emacs/lisp/ChangeLog:1.5292 *** emacs/lisp/ChangeLog:1.5291 Sat Jul 19 12:25:43 2003 --- emacs/lisp/ChangeLog Sat Jul 19 16:44:23 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-19 Markus Rost + + * textmodes/artist.el (artist-erase-char): Fix default value using + ?\s. + 2003-07-19 John Paul Wallington * textmodes/artist.el (artist-butlast-fn, artist-draw-sline) From MAILER-DAEMON Sat Jul 19 16:49:35 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19dye1-0004fD-Bl for mharc-emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:49:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19dydd-0003dx-BO for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:49:05 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19dybI-0001nc-Eu for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:46:40 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19dyZn-0000tP-GE for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:45:07 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19dyYn-0005EN-BY for emacs-diffs@gnu.org; Sat, 19 Jul 2003 16:44:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Sat, 19 Jul 2003 16:44:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/artist.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Jul 2003 20:49:28 -0000 Index: emacs/lisp/textmodes/artist.el diff -c emacs/lisp/textmodes/artist.el:1.13 emacs/lisp/textmodes/artist.el:1.14 *** emacs/lisp/textmodes/artist.el:1.13 Sat Jul 19 12:21:21 2003 --- emacs/lisp/textmodes/artist.el Sat Jul 19 16:44:05 2003 *************** *** 446,452 **** "Char to use when filling.") (make-variable-buffer-local 'artist-fill-char) ! (defvar artist-erase-char ?\ "Char to use when erasing.") (make-variable-buffer-local 'artist-erase-char) --- 446,452 ---- "Char to use when filling.") (make-variable-buffer-local 'artist-fill-char) ! (defvar artist-erase-char ?\s "Char to use when erasing.") (make-variable-buffer-local 'artist-erase-char) From MAILER-DAEMON Sun Jul 20 15:04:05 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eJTF-0007AS-Qe for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eJT7-0006zG-K5 for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:37 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eJSd-0006KF-Mi for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:09 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eJSB-0005t7-D4 for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:02:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19eJRj-0003rj-GO for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:02:11 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19eJQW-0000aE-8c for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:00:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sun, 20 Jul 2003 15:00:56 -0400 Subject: [Emacs-diffs] Changes to emacs/man/tramp.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 19:03:43 -0000 Index: emacs/man/tramp.texi diff -c emacs/man/tramp.texi:1.22 emacs/man/tramp.texi:1.23 *** emacs/man/tramp.texi:1.22 Tue Jun 17 10:05:19 2003 --- emacs/man/tramp.texi Sun Jul 20 15:00:56 2003 *************** *** 1310,1315 **** --- 1310,1360 ---- the variables @code{tramp-actions-before-shell} and @code{tramp-multi-actions} (for multi-hop connections). + @item Non-Bourne commands in @file{.profile} + + After logging in to the remote host, @tramp{} issues the command + @code{exec /bin/sh}. (Actually, the command is slightly different.) + When @code{/bin/sh} is executed, it reads some init files, such as + @file{~/.shrc} or @file{~/.profile}. + + Now, some people have a login shell which is not @code{/bin/sh} but a + Bourne-ish shell such as bash or ksh. Some of these people might put + their shell setup into the files @code{~/.shrc} or @code{~/.profile}. + This way, it is possible for non-Bourne constructs to end up in those + files. Then, @code{exec /bin/sh} might cause the Bourne shell to barf + on those constructs. + + As an example, imagine somebody putting @code{export FOO=bar} into the + file @file{~/.profile}. The standard Bourne shell does not understand + this syntax and will emit a syntax error when it reaches this line. + + Another example is the tilde (@code{~}) character, say when adding + @file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this + character, and since there is usually no directory whose name consists + of the single character tilde, strange things will happen. + + What can you do about this? + + Well, one possibility is to make sure that everything in @file{~/.shrc} + and @file{~/.profile} on all remote hosts is Bourne-compatible. In the + above example, instead of @code{export FOO=bar}, you might use + @code{FOO=bar; export FOO} instead. + + The other possibility is to put your non-Bourne shell setup into some + other files. For example, bash reads the file @file{~/.bash_profile} + instead of @file{~/.profile}, if the former exists. So bash + aficionados just rename their @file{~/.profile} to + @file{~/.bash_profile} on all remote hosts, and Bob's your uncle. + + The @tramp{} developers would like to circumvent this problem, so if you + have an idea about it, please tell us. However, we are afraid it is not + that simple: before saying @code{exec /bin/sh}, @tramp{} does not know + which kind of shell it might be talking to. It could be a Bourne-ish + shell like ksh or bash, or it could be a csh derivative like tcsh, or + it could be zsh, or even rc. If the shell is Bourne-ish already, then + it might be prudent to omit the @code{exec /bin/sh} step. But how to + find out if the shell is Bourne-ish? + @end table From MAILER-DAEMON Sun Jul 20 15:04:07 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eJTJ-0007IJ-7z for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:49 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eJT8-00070n-U7 for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:38 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eJSc-0006Ht-Rg for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:09 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eJSB-0005t7-7E for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:02:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19eJRj-0003rl-P8 for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:02:11 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19eJQW-0000aH-A8 for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:00:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sun, 20 Jul 2003 15:00:56 -0400 Subject: [Emacs-diffs] Changes to emacs/man/trampver.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 19:03:48 -0000 Index: emacs/man/trampver.texi diff -c emacs/man/trampver.texi:1.4 emacs/man/trampver.texi:1.5 *** emacs/man/trampver.texi:1.4 Tue Jun 17 10:05:19 2003 --- emacs/man/trampver.texi Sun Jul 20 15:00:56 2003 *************** *** 5,11 **** @c configure.ac, so you should edit that file and run @c "autoconf && ./configure" to change the version number. @macro trampver{} ! 2.0.35 @end macro @c Other flags from configuration --- 5,11 ---- @c configure.ac, so you should edit that file and run @c "autoconf && ./configure" to change the version number. @macro trampver{} ! 2.0.36 @end macro @c Other flags from configuration From MAILER-DAEMON Sun Jul 20 15:04:07 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eJTN-0007P5-K6 for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:53 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eJSk-0006Yj-Up for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:14 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eJSb-0006Dy-An for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:03:05 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eJSB-0005t7-IU for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:02:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19eJRi-0003rn-7N for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:02:10 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19eJQW-0000aA-5z for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:00:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sun, 20 Jul 2003 15:00:56 -0400 Subject: [Emacs-diffs] Changes to emacs/man/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 19:03:52 -0000 Index: emacs/man/ChangeLog diff -c emacs/man/ChangeLog:1.193 emacs/man/ChangeLog:1.194 *** emacs/man/ChangeLog:1.193 Sun Jul 13 13:32:40 2003 --- emacs/man/ChangeLog Sun Jul 20 15:00:55 2003 *************** *** 1,3 **** --- 1,9 ---- + 2003-07-20 Kai Gro,A_(Bjohann + Tramp version 2.0.36 released. + + * tramp.texi (Remote shell setup): Explain about problems with + non-Bourne commands in ~/.profile and ~/.shrc. + 2003-07-13 Markus Rost * buffers.texi (List Buffers): Adjust to new format of *Buffer From MAILER-DAEMON Sun Jul 20 15:21:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eJk1-0000e2-Je for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:21:05 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eJjO-0000I6-4B for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:20:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eJjJ-0000ET-KR for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:20:22 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eJil-0007Ja-3E for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:19:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19eJVH-0004WC-7r for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:05:51 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19eJUH-0000dy-AQ for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:04:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sun, 20 Jul 2003 15:04:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/net/trampver.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 19:20:59 -0000 Index: emacs/lisp/net/trampver.el diff -c emacs/lisp/net/trampver.el:1.4 emacs/lisp/net/trampver.el:1.5 *** emacs/lisp/net/trampver.el:1.4 Tue Jun 17 10:03:58 2003 --- emacs/lisp/net/trampver.el Sun Jul 20 15:04:47 2003 *************** *** 30,36 **** ;; are auto-frobbed from configure.ac, so you should edit that file and run ;; "autoconf && ./configure" to change them. ! (defconst tramp-version "2.0.35" "This version of Tramp.") (defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org" --- 30,36 ---- ;; are auto-frobbed from configure.ac, so you should edit that file and run ;; "autoconf && ./configure" to change them. ! (defconst tramp-version "2.0.36" "This version of Tramp.") (defconst tramp-bug-report-address "tramp-devel@mail.freesoftware.fsf.org" From MAILER-DAEMON Sun Jul 20 15:27:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eJqI-0002YU-Va for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:27:34 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eJk4-0000iX-Pg for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:21:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eJjK-0000F8-Ge for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:20:23 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eJil-0007Ja-Co for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:19:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19eJVH-0004W3-5b for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:05:51 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19eJUH-0000dn-1M for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:04:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sun, 20 Jul 2003 15:04:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 19:27:28 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5292 emacs/lisp/ChangeLog:1.5293 *** emacs/lisp/ChangeLog:1.5292 Sat Jul 19 16:44:23 2003 --- emacs/lisp/ChangeLog Sun Jul 20 15:04:48 2003 *************** *** 1,3 **** --- 1,37 ---- + 2003-07-20 Kai Gro,A_(Bjohann + Version 2.0.36 of Tramp released. + + * net/tramp.el (tramp-default-password-end-of-line): Renamed from + tramp-password-end-of-line. + (tramp-password-end-of-line): New method parameter. + (tramp-get-password-end-of-line): Function to access method + parameter `tramp-password-end-of-line', or variable + `tramp-default-password-end-of-line' (default value). + (tramp-methods): Add entries for new parameter + tramp-password-end-of-line. + (tramp-enter-password): Use new function + `tramp-get-password-end-of-line'. + (tramp-handle-insert-file-contents): Do not + unconditionally inhibit the file operation file-local-copy, only + do that when the inhibit-file-name-operation is currently + insert-file-contents. This fixes finding remote CVS-controlled + files. (It would barf on inserting the CVS/Entries file + literally, because the file-local-copy handler wasn't called.) + (tramp-handle-shell-command): Support optional third arg + ERROR-BUFFER. + (tramp-sh-extra-args): Adapt defcustom type to XEmacs. + (tramp-initial-commands): New variable. + (tramp-process-initial-commands): New function, using the variable. + (tramp-open-connection-setup-interactive-shell): Call the new + function. + (tramp-buffer-name, tramp-debug-buffer-name): Always put the + method into the buffer name, never use nil. Reported by Hanak + David . + (tramp-open-connection-setup-interactive-shell): Erase buffer + before sending "stty -onlcr". + + * net/tramp-vc.el (vc-workfile-unchanged-p): Add comment. + 2003-07-19 Markus Rost * textmodes/artist.el (artist-erase-char): Fix default value using From MAILER-DAEMON Sun Jul 20 15:27:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eJp7-0001sk-3a for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:26:21 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eJk5-0000ij-Uh for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:21:09 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eJjK-0000Em-1W for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:20:22 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eJik-0007Ja-UY for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:19:46 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19eJVH-0004W4-5u for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:05:51 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19eJUH-0000dq-4W for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:04:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sun, 20 Jul 2003 15:04:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/net/tramp-vc.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 19:26:20 -0000 Index: emacs/lisp/net/tramp-vc.el diff -c emacs/lisp/net/tramp-vc.el:1.4 emacs/lisp/net/tramp-vc.el:1.5 *** emacs/lisp/net/tramp-vc.el:1.4 Fri Feb 28 13:28:47 2003 --- emacs/lisp/net/tramp-vc.el Sun Jul 20 15:04:48 2003 *************** *** 336,341 **** --- 336,344 ---- (tramp-tramp-file-p filename) (not (let ((v (tramp-dissect-file-name filename))) + ;; The following check is probably to test whether + ;; file-attributes returns correct last modification + ;; times. This check needs to be changed. (tramp-get-remote-perl (tramp-file-name-multi-method v) (tramp-file-name-method v) (tramp-file-name-user v) From MAILER-DAEMON Sun Jul 20 15:28:12 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eJqQ-0002dQ-Dy for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:27:42 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eJmn-000145-3M for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:23:57 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eJjE-0000A1-Oj for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:20:21 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eJik-0007Ja-Fl for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:19:46 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19eJVH-0004W9-5f for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:05:51 -0400 Received: from kai by subversions.gnu.org with local (Exim 4.20) id 19eJUH-0000dv-8U for emacs-diffs@gnu.org; Sun, 20 Jul 2003 15:04:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: =?iso-8859-1?Q?Kai_Gro=DFjohann?= Date: Sun, 20 Jul 2003 15:04:49 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/net/tramp.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: kai.grossjohann@gmx.net List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 19:27:40 -0000 Index: emacs/lisp/net/tramp.el diff -c emacs/lisp/net/tramp.el:1.38 emacs/lisp/net/tramp.el:1.39 *** emacs/lisp/net/tramp.el:1.38 Tue Jun 17 10:03:58 2003 --- emacs/lisp/net/tramp.el Sun Jul 20 15:04:47 2003 *************** *** 238,265 **** (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ("scp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ("scp1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-e" "none")) (tramp-copy-args ("-1")) ! (tramp-copy-keep-date-arg "-p")) ("scp2" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-2" "-e" "none")) (tramp-copy-args ("-2")) ! (tramp-copy-keep-date-arg "-p")) ("scp1_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh1") --- 238,269 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("scp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("scp1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-e" "none")) (tramp-copy-args ("-1")) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("scp2" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-2" "-e" "none")) (tramp-copy-args ("-2")) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("scp1_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh1") *************** *** 267,273 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ("scp2_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh2") --- 271,278 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("scp2_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh2") *************** *** 275,323 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ("rsync" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "rsync") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args ("-e" "ssh")) ! (tramp-copy-keep-date-arg "-t")) ("remcp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "remsh") (tramp-copy-program "rcp") (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ("rsh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "rsh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("ssh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("ssh1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-e" "none")) (tramp-copy-args ("-1")) ! (tramp-copy-keep-date-arg nil)) ("ssh2" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-2" "-e" "none")) (tramp-copy-args ("-2")) ! (tramp-copy-keep-date-arg nil)) ("ssh1_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh1") --- 280,335 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("rsync" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "rsync") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args ("-e" "ssh")) ! (tramp-copy-keep-date-arg "-t") ! (tramp-password-end-of-line nil)) ("remcp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "remsh") (tramp-copy-program "rcp") (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("rsh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "rsh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("ssh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("ssh1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-e" "none")) (tramp-copy-args ("-1")) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("ssh2" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-2" "-e" "none")) (tramp-copy-args ("-2")) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("ssh1_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh1") *************** *** 325,331 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("ssh2_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh2") --- 337,344 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("ssh2_old" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh2") *************** *** 333,346 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("remsh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "remsh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("telnet" (tramp-connection-function tramp-open-connection-telnet) (tramp-login-program "telnet") --- 346,361 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("remsh" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "remsh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("telnet" (tramp-connection-function tramp-open-connection-telnet) (tramp-login-program "telnet") *************** *** 348,361 **** (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("su" (tramp-connection-function tramp-open-connection-su) (tramp-login-program "su") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-" "%u")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("sudo" (tramp-connection-function tramp-open-connection-su) (tramp-login-program "sudo") (tramp-copy-program nil) --- 363,378 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("su" (tramp-connection-function tramp-open-connection-su) (tramp-login-program "su") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-" "%u")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("sudo" (tramp-connection-function tramp-open-connection-su) (tramp-login-program "sudo") (tramp-copy-program nil) *************** *** 363,390 **** (tramp-login-args ("-u" "%u" "-s" "-p" "Password:")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("multi" (tramp-connection-function tramp-open-connection-multi) (tramp-login-program nil) (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("scpx" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ("sshx" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("krlogin" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "krlogin") --- 380,411 ---- (tramp-login-args ("-u" "%u" "-s" "-p" "Password:")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("multi" (tramp-connection-function tramp-open-connection-multi) (tramp-login-program nil) (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args nil) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("scpx" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program "scp") (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ("sshx" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "ssh") (tramp-copy-program nil) (tramp-remote-sh "/bin/sh") (tramp-login-args ("-e" "none" "-t" "-t" "/bin/sh")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("krlogin" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "krlogin") *************** *** 392,398 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-x")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("plink" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") --- 413,420 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-x")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line nil)) ("plink" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") *************** *** 400,406 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-ssh")) ;optionally add "-v" (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("plink1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") --- 422,429 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-ssh")) ;optionally add "-v" (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line "xy")) ;see docstring for "xy" ("plink1" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") *************** *** 408,414 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-ssh")) ;optionally add "-v" (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil)) ("pscp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") --- 431,438 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-1" "-ssh")) ;optionally add "-v" (tramp-copy-args nil) ! (tramp-copy-keep-date-arg nil) ! (tramp-password-end-of-line "xy")) ;see docstring for "xy" ("pscp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "plink") *************** *** 416,422 **** (tramp-remote-sh "/bin/sh") (tramp-login-args ("-ssh")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ("fcp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "fsh") --- 440,447 ---- (tramp-remote-sh "/bin/sh") (tramp-login-args ("-ssh")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line "xy")) ;see docstring for "xy" ("fcp" (tramp-connection-function tramp-open-connection-rsh) (tramp-login-program "fsh") *************** *** 424,430 **** (tramp-remote-sh "/bin/sh -i") (tramp-login-args ("sh" "-i")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p")) ) "*Alist of methods for remote files. This is a list of entries of the form (NAME PARAM1 PARAM2 ...). --- 449,456 ---- (tramp-remote-sh "/bin/sh -i") (tramp-login-args ("sh" "-i")) (tramp-copy-args nil) ! (tramp-copy-keep-date-arg "-p") ! (tramp-password-end-of-line nil)) ) "*Alist of methods for remote files. This is a list of entries of the form (NAME PARAM1 PARAM2 ...). *************** *** 469,474 **** --- 495,509 ---- This specifies the parameter to use for the copying program when the timestamp of the original file should be kept. For `rcp', use `-p', for `rsync', use `-t'. + * `tramp-password-end-of-line' + This specifies the string to use for terminating the line after + submitting the password. If this method parameter is nil, then the + value of the normal variable `tramp-default-password-end-of-line' + is used. This parameter is necessary because the \"plink\" program + requires any two characters after sending the password. These do + not have to be newline or carriage return characters. Other login + programs are happy with just one character, the newline character. + We use \"xy\" as the value for methods using \"plink\". What does all this mean? Well, you should specify `tramp-login-program' for all methods; this program is used to log in to the remote site. Then, *************** *** 518,524 **** (list (const tramp-encoding-function) (choice (const nil) function)) (list (const tramp-decoding-function) ! (choice (const nil) function)))))) (defcustom tramp-multi-methods '("multi" "multiu") "*List of multi-hop methods. --- 553,561 ---- (list (const tramp-encoding-function) (choice (const nil) function)) (list (const tramp-decoding-function) ! (choice (const nil) function)) ! (list (const tramp-password-end-of-line) ! (choice (const nil) string)))))) (defcustom tramp-multi-methods '("multi" "multiu") "*List of multi-hop methods. *************** *** 664,680 **** "*String used for end of line in rsh connections. I don't think this ever needs to be changed, so please tell me about it if you need to change this. ! Also see `tramp-password-end-of-line'." :group 'tramp :type 'string) ! (defcustom tramp-password-end-of-line ! (if (string-match "plink" tramp-default-method) ! ;; Any two characters will do for plink! Doesn't have to be ! ;; newline characters. ! "xy" ! tramp-rsh-end-of-line) "*String used for end of line after sending a password. It seems that people using plink under Windows need to send \"\\r\\n\" (carriage-return, then newline) after a password, but just \"\\n\" after all other lines. This variable can be used for the --- 701,717 ---- "*String used for end of line in rsh connections. I don't think this ever needs to be changed, so please tell me about it if you need to change this. ! Also see the method parameter `tramp-password-end-of-line' and the normal ! variable `tramp-default-password-end-of-line'." :group 'tramp :type 'string) ! (defcustom tramp-default-password-end-of-line ! tramp-rsh-end-of-line "*String used for end of line after sending a password. + This variable provides the default value for the method parameter + `tramp-password-end-of-line', see `tramp-methods' for more details. + It seems that people using plink under Windows need to send \"\\r\\n\" (carriage-return, then newline) after a password, but just \"\\n\" after all other lines. This variable can be used for the *************** *** 806,812 **** for tilde expansion. The extra arguments should typically prevent the shell from reading its init file." :group 'tramp ! :type '(alist :key-type string :value-type string)) (defcustom tramp-prefix-format (if tramp-unified-filenames "/" "/[") --- 843,853 ---- for tilde expansion. The extra arguments should typically prevent the shell from reading its init file." :group 'tramp ! ;; This might be the wrong way to test whether the widget type ! ;; `alist' is available. Who knows the right way to test it? ! :type (if (get 'alist 'widget-type) ! '(alist :key-type string :value-type string) ! '(repeat (cons string string)))) (defcustom tramp-prefix-format (if tramp-unified-filenames "/" "/[") *************** *** 1171,1176 **** --- 1212,1232 ---- :group 'tramp :type '(repeat (list variable function))) + (defcustom tramp-initial-commands + '("unset correct" + "unset autocorrect") + "List of commands to send to the first remote shell that we see. + These commands will be sent to any shell, and thus they should be + designed to work in such circumstances. Also, restrict the commands + to the bare necessity for getting the remote shell into a state + where it is possible to execute the Bourne-ish shell. + + At the moment, the command to execute the Bourne-ish shell uses strange + quoting which `tcsh' tries to correct, so we send the command \"unset + autocorrect\" to the remote host." + :group 'tramp + :type '(repeat string)) + ;; Chunked sending kluge. We set this to 500 for black-listed constellations ;; known to have a bug in `process-send-string'; some ssh connections appear ;; to drop bytes when data is sent too quickly. *************** *** 1290,1295 **** --- 1346,1356 ---- In the connection buffer, this variable has the value of the like-named method parameter, as specified in `tramp-methods' (which see).") + (defvar tramp-password-end-of-line nil + "This internal variable holds a parameter for `tramp-methods'. + In the connection buffer, this variable has the value of the like-named + method parameter, as specified in `tramp-methods' (which see).") + ;; CCC `local in each buffer'? (defvar tramp-ls-command nil "This command is used to get a long listing with numeric user and group ids. *************** *** 2896,2903 **** (let (status) (when (string-match "&[ \t]*\\'" command) (error "Tramp doesn't grok asynchronous shell commands, yet")) ! (when error-buffer ! (error "Tramp doesn't grok optional third arg ERROR-BUFFER, yet")) (save-excursion (tramp-barf-unless-okay multi-method method user host --- 2957,2964 ---- (let (status) (when (string-match "&[ \t]*\\'" command) (error "Tramp doesn't grok asynchronous shell commands, yet")) ! ;; (when error-buffer ! ;; (error "Tramp doesn't grok optional third arg ERROR-BUFFER, yet")) (save-excursion (tramp-barf-unless-okay multi-method method user host *************** *** 2905,2912 **** nil 'file-error "tramp-handle-shell-command: Couldn't `cd %s'" (tramp-shell-quote-argument localname)) ! (tramp-send-command multi-method method user host ! (concat command "; tramp_old_status=$?")) ;; This will break if the shell command prints "/////" ;; somewhere. Let's just hope for the best... (tramp-wait-for-output)) --- 2966,2977 ---- nil 'file-error "tramp-handle-shell-command: Couldn't `cd %s'" (tramp-shell-quote-argument localname)) ! (tramp-send-command ! multi-method method user host ! (if error-buffer ! (format "( %s ) 2>/tmp/tramp.$$.err; tramp_old_status=$?" ! command) ! (format "%s ;tramp_old_status=$?" command))) ;; This will break if the shell command prints "/////" ;; somewhere. Let's just hope for the best... (tramp-wait-for-output)) *************** *** 2918,2923 **** --- 2983,3000 ---- (setq output-buffer (current-buffer))) (set-buffer output-buffer) (insert-buffer (tramp-get-buffer multi-method method user host)) + (when error-buffer + (save-excursion + (unless (bufferp error-buffer) + (setq error-buffer (get-buffer-create error-buffer))) + (tramp-send-command + multi-method method user host + "cat /tmp/tramp.$$.err") + (tramp-wait-for-output) + (set-buffer error-buffer) + (insert-buffer (tramp-get-buffer multi-method method user host)) + (tramp-send-command-and-check + multi-method method user host "rm -f /tmp/tramp.$$.err"))) (save-excursion (tramp-send-command multi-method method user host "cd") (tramp-wait-for-output) *************** *** 3084,3090 **** ;; jka-compr. By let-binding inhibit-file-name-operation, we ;; propagate that care to the file-local-copy operation. (let ((local-copy ! (let ((inhibit-file-name-operation 'file-local-copy)) (file-local-copy filename))) (coding-system-used nil) (result nil)) --- 3161,3170 ---- ;; jka-compr. By let-binding inhibit-file-name-operation, we ;; propagate that care to the file-local-copy operation. (let ((local-copy ! (let ((inhibit-file-name-operation ! (when (eq inhibit-file-name-operation ! 'insert-file-contents) ! 'file-local-copy))) (file-local-copy filename))) (coding-system-used nil) (result nil)) *************** *** 4115,4126 **** (defun tramp-buffer-name (multi-method method user host) "A name for the connection buffer for USER at HOST using METHOD." ! (cond (multi-method ! (tramp-buffer-name-multi-method "tramp" multi-method method user host)) ! (user ! (format "*tramp/%s %s@%s*" method user host)) ! (t ! (format "*tramp/%s %s*" method host)))) (defun tramp-buffer-name-multi-method (prefix multi-method method user host) "A name for the multi method connection buffer. --- 4195,4206 ---- (defun tramp-buffer-name (multi-method method user host) "A name for the connection buffer for USER at HOST using METHOD." ! (if multi-method ! (tramp-buffer-name-multi-method "tramp" multi-method method user host) ! (let ((method (tramp-find-method multi-method method user host))) ! (if user ! (format "*tramp/%s %s@%s*" method user host)) ! (format "*tramp/%s %s*" method host)))) (defun tramp-buffer-name-multi-method (prefix multi-method method user host) "A name for the multi method connection buffer. *************** *** 4150,4162 **** (defun tramp-debug-buffer-name (multi-method method user host) "A name for the debug buffer for USER at HOST using METHOD." ! (cond (multi-method ! (tramp-buffer-name-multi-method "debug tramp" ! multi-method method user host)) ! (user ! (format "*debug tramp/%s %s@%s*" method user host)) ! (t ! (format "*debug tramp/%s %s*" method host)))) (defun tramp-get-debug-buffer (multi-method method user host) "Get the debug buffer for USER at HOST using METHOD." --- 4230,4242 ---- (defun tramp-debug-buffer-name (multi-method method user host) "A name for the debug buffer for USER at HOST using METHOD." ! (if multi-method ! (tramp-buffer-name-multi-method "debug tramp" ! multi-method method user host) ! (let ((method (tramp-find-method multi-method method user host))) ! (if user ! (format "*debug tramp/%s %s@%s*" method user host) ! (format "*debug tramp/%s %s*" method host))))) (defun tramp-get-debug-buffer (multi-method method user host) "Get the debug buffer for USER at HOST using METHOD." *************** *** 4540,4545 **** --- 4620,4647 ---- (unless (eq exit 'ok) (error "Login failed")))) + ;; Functions to execute when we have seen the remote shell prompt but + ;; before we exec the Bourne-ish shell. Note that these commands + ;; might be sent to any shell, not just a Bourne-ish shell. This + ;; means that the commands need to work in all shells. (It is also + ;; okay for some commands to just fail with an error message, but + ;; please make sure that they at least don't crash the odd shell people + ;; might be running...) + (defun tramp-process-initial-commands (p + multi-method method user host + commands) + "Send list of commands to remote host, in order." + (let (cmd) + (while commands + (setq cmd (pop commands)) + (erase-buffer) + (tramp-message 10 "Sending command to remote shell: %s" + cmd) + (tramp-send-command multi-method method user host cmd) + (tramp-barf-if-no-shell-prompt + p 60 "Remote shell command failed: %s" cmd)) + (erase-buffer))) + ;; The actual functions for opening connections. (defun tramp-open-connection-telnet (multi-method method user host) *************** *** 4950,4956 **** Uses PROMPT as a prompt and sends the password to process P." (let ((pw (tramp-read-passwd prompt))) (erase-buffer) ! (process-send-string p (concat pw tramp-password-end-of-line)))) ;; HHH: Not Changed. This might handle the case where USER is not ;; given in the "File name" very poorly. Then, the local --- 5052,5064 ---- Uses PROMPT as a prompt and sends the password to process P." (let ((pw (tramp-read-passwd prompt))) (erase-buffer) ! (process-send-string ! p (concat pw ! (tramp-get-password-end-of-line ! tramp-current-multi-method ! tramp-current-method ! tramp-current-user ! tramp-current-host))))) ;; HHH: Not Changed. This might handle the case where USER is not ;; given in the "File name" very poorly. Then, the local *************** *** 4976,4981 **** --- 5084,5091 ---- ;; a Kerberos login. (sit-for 1) (tramp-discard-garbage-erase-buffer p multi-method method user host) + (tramp-process-initial-commands p multi-method method user host + tramp-initial-commands) ;; It is useful to set the prompt in the following command because ;; some people have a setting for $PS1 which /bin/sh doesn't know ;; about and thus /bin/sh will display a strange prompt. For *************** *** 5035,5040 **** --- 5145,5151 ---- ;; We have found a ^M but cannot frob the process coding system ;; because we're running on a non-MULE Emacs. Let's try ;; stty, instead. + (erase-buffer) (tramp-message 9 "Trying `stty -onlcr'") (tramp-send-command-internal multi-method method user host "stty -onlcr")))) *************** *** 6057,6062 **** --- 6168,6182 ---- (error "Method `%s' didn't specify `keep-date' arg for tramp" (or multi-method method))))) + (defun tramp-get-password-end-of-line (multi-method method user host) + (let ((entry (assoc 'tramp-password-end-of-line + (assoc (tramp-find-method multi-method method user host) + tramp-methods)))) + (unless entry + (error "Method `%s' didn't specify `password-end-of-line' arg for tramp" + (or multi-method method))) + (or (second entry) tramp-default-password-end-of-line))) + ;; Auto saving to a special directory. (defun tramp-make-auto-save-file-name (fn) *************** *** 6322,6328 **** tramp-auto-save-directory ; vars to dump tramp-default-method tramp-rsh-end-of-line ! tramp-password-end-of-line tramp-remote-path tramp-login-prompt-regexp tramp-password-prompt-regexp --- 6442,6448 ---- tramp-auto-save-directory ; vars to dump tramp-default-method tramp-rsh-end-of-line ! tramp-default-password-end-of-line tramp-remote-path tramp-login-prompt-regexp tramp-password-prompt-regexp From MAILER-DAEMON Sun Jul 20 19:41:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eNnN-0000aq-Bm for mharc-emacs-diffs@gnu.org; Sun, 20 Jul 2003 19:40:49 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eNm2-0000HP-B8 for emacs-diffs@gnu.org; Sun, 20 Jul 2003 19:39:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eNm0-0000GQ-CK for emacs-diffs@gnu.org; Sun, 20 Jul 2003 19:39:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eNly-0000Fm-Qj for emacs-diffs@gnu.org; Sun, 20 Jul 2003 19:39:22 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19eNky-0004uj-E8 for emacs-diffs@gnu.org; Sun, 20 Jul 2003 19:38:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Sun, 20 Jul 2003 19:38:20 -0400 Subject: [Emacs-diffs] Changes to emacs/configure.in X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2003 23:40:47 -0000 Index: emacs/configure.in diff -c emacs/configure.in:1.344 emacs/configure.in:1.345 *** emacs/configure.in:1.344 Tue Jul 15 04:07:15 2003 --- emacs/configure.in Sun Jul 20 19:38:20 2003 *************** *** 182,187 **** --- 182,191 ---- dnl per the autoconf manual, we can speed up autoconf somewhat by quoting dnl the great gob of text. Thus it's not processed for possible expansion. dnl Just make sure the brackets remain balanced. + dnl + dnl Since Emacs can't find matching pairs of quotes, boundaries are + dnl indicated by comments. + dnl quotation begins [ ### If you add support for a new configuration, add code to this *************** *** 223,228 **** --- 227,233 ---- *-*-netbsd* ) opsys=netbsd if test -f /usr/lib/crti.o; then] + dnl Leave quotation here temporarily AC_DEFINE(HAVE_CRTIN) [ fi *************** *** 1168,1173 **** --- 1173,1179 ---- fi ] + dnl quotation ends if test $unported = yes; then AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems. From MAILER-DAEMON Mon Jul 21 02:27:35 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eU91-0000Q4-EY for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:27:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eU8y-0000Oz-T9 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:27:32 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eU8w-0000OB-G1 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:27:31 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eU84-0008Uu-Lo for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:26:36 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19eU74-0007eo-FX for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:25:34 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Mon, 21 Jul 2003 02:25:34 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 06:27:34 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5293 emacs/lisp/ChangeLog:1.5294 *** emacs/lisp/ChangeLog:1.5293 Sun Jul 20 15:04:48 2003 --- emacs/lisp/ChangeLog Mon Jul 21 02:25:33 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-21 Andreas Schwab + + * progmodes/sh-script.el (sh-mode-syntax-table): Change syntax of + ?, to "_". + 2003-07-20 Kai Gro,A_(Bjohann Version 2.0.36 of Tramp released. From MAILER-DAEMON Mon Jul 21 02:27:52 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eU9H-0000YZ-PH for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:27:51 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eU9F-0000XW-OP for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:27:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eU9E-0000Wi-DH for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:27:48 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eU7P-0008Ns-8k for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:25:55 -0400 Received: from schwab by subversions.gnu.org with local (Exim 4.20) id 19eU6O-0007VU-Lh for emacs-diffs@gnu.org; Mon, 21 Jul 2003 02:24:52 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andreas Schwab Date: Mon, 21 Jul 2003 02:24:52 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/sh-script.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: schwab@suse.de List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 06:27:51 -0000 Index: emacs/lisp/progmodes/sh-script.el diff -c emacs/lisp/progmodes/sh-script.el:1.125 emacs/lisp/progmodes/sh-script.el:1.126 *** emacs/lisp/progmodes/sh-script.el:1.125 Fri Jul 4 16:37:49 2003 --- emacs/lisp/progmodes/sh-script.el Mon Jul 21 02:24:52 2003 *************** *** 406,411 **** --- 406,412 ---- ?. "_" ?^ "_" ?~ "_" + ?, "_" ?< "." ?> ".") (csh eval identity sh) From MAILER-DAEMON Mon Jul 21 03:20:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eUxL-00051x-Ex for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:19:35 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eUwN-0004lH-Hn for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:18:35 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eUvg-0003LB-VH for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:17:57 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eUva-000388-2a for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:17:46 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19eUuW-0000Xm-I3 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:16:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Mon, 21 Jul 2003 03:16:40 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/quail.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 07:19:33 -0000 Index: emacs/lisp/international/quail.el diff -c emacs/lisp/international/quail.el:1.128 emacs/lisp/international/quail.el:1.129 *** emacs/lisp/international/quail.el:1.128 Thu Apr 10 23:58:00 2003 --- emacs/lisp/international/quail.el Mon Jul 21 03:16:40 2003 *************** *** 1692,1697 **** --- 1692,1700 ---- (t ;; No way to handle the last character in this context. + (setq def (quail-map-definition + (quail-lookup-key quail-current-key (1- len)))) + (setq quail-current-str (quail-get-current-str (1- len) def)) (1- len)))))) (defun quail-next-translation () From MAILER-DAEMON Mon Jul 21 03:22:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eUzl-0007sZ-Em for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:22:05 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eUza-0007Zh-6H for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:21:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eUy6-0005TU-A5 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:20:23 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eUwn-0004wv-BM for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:19:01 -0400 Received: from handa by subversions.gnu.org with local (Exim 4.20) id 19eUvg-00015u-Tl for emacs-diffs@gnu.org; Mon, 21 Jul 2003 03:17:52 -0400 To: emacs-diffs@gnu.org Message-Id: From: Kenichi Handa Date: Mon, 21 Jul 2003 03:17:52 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: handa@etl.go.jp List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 07:22:04 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5294 emacs/lisp/ChangeLog:1.5295 *** emacs/lisp/ChangeLog:1.5294 Mon Jul 21 02:25:33 2003 --- emacs/lisp/ChangeLog Mon Jul 21 03:17:51 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-21 Kenichi Handa + + * international/quail.el (quail-translate-key): Update + quail-current-str correctly. + 2003-07-21 Andreas Schwab * progmodes/sh-script.el (sh-mode-syntax-table): Change syntax of From MAILER-DAEMON Mon Jul 21 05:54:04 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXM0-0001pt-Bc for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:53:12 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXLs-0001Zs-Dw for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:53:04 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXLG-00016Q-SH for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:52:26 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXKm-0000qO-4O for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:51:56 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXJm-0007mY-0k for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:50:54 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:50:54 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:53:09 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.316 emacs/src/alloc.c:1.317 *** emacs/src/alloc.c:1.316 Tue Jul 15 15:19:59 2003 --- emacs/src/alloc.c Mon Jul 21 05:50:53 2003 *************** *** 5761,5771 **** DEFVAR_LISP ("gc-elapsed", &Vgc_elapsed, doc: /* Accumulated time elapsed in garbage collections. ! The time is in seconds as a floating point value. ! Programs may reset this to get statistics in a specific period. */); DEFVAR_INT ("gcs-done", &gcs_done, ! doc: /* Accumulated number of garbage collections done. ! Programs may reset this to get statistics in a specific period. */); defsubr (&Scons); defsubr (&Slist); --- 5761,5769 ---- DEFVAR_LISP ("gc-elapsed", &Vgc_elapsed, doc: /* Accumulated time elapsed in garbage collections. ! The time is in seconds as a floating point value. */); DEFVAR_INT ("gcs-done", &gcs_done, ! doc: /* Accumulated number of garbage collections done. */); defsubr (&Scons); defsubr (&Slist); From MAILER-DAEMON Mon Jul 21 05:54:50 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXMn-0002eL-82 for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:01 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXM0-0001rC-VV for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:53:12 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXLM-0001Ae-RQ for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:52:33 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXLC-00011b-6p for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:52:22 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXKC-0007na-AF for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:51:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:51:20 -0400 Subject: [Emacs-diffs] Changes to emacs/src/s/netbsd.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:54:00 -0000 Index: emacs/src/s/netbsd.h diff -c emacs/src/s/netbsd.h:1.39 emacs/src/s/netbsd.h:1.40 *** emacs/src/s/netbsd.h:1.39 Sun Jul 13 13:59:40 2003 --- emacs/src/s/netbsd.h Mon Jul 21 05:51:20 2003 *************** *** 99,105 **** switches, so this also works with older versions that don't implement -z combreloc. */ ! #define LD_SWITCH_SYSTEM_TEMACS -z nocombreloc #endif /* __ELF__ */ --- 99,105 ---- switches, so this also works with older versions that don't implement -z combreloc. */ ! #define LD_SWITCH_SYSTEM_TEMACS -Wl,-z,nocombreloc #endif /* __ELF__ */ From MAILER-DAEMON Mon Jul 21 05:54:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXNB-0002z7-Hb for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:25 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXN9-0002vU-3C for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXN7-0002uP-JO for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:22 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXN7-0002uJ-DJ for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:21 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXM7-0007rc-Cm for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:53:19 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:53:19 -0400 Subject: [Emacs-diffs] Changes to emacs/src/s/openbsd.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:54:24 -0000 Index: emacs/src/s/openbsd.h diff -c emacs/src/s/openbsd.h:1.3 emacs/src/s/openbsd.h:1.4 *** emacs/src/s/openbsd.h:1.3 Sat Jul 12 17:44:13 2003 --- emacs/src/s/openbsd.h Mon Jul 21 05:53:19 2003 *************** *** 10,15 **** --- 10,16 ---- #define TERMINFO #define LIBS_TERMCAP -lncurses + #undef LD_SWITCH_SYSTEM_TEMACS #undef LD_SWITCH_SYSTEM #ifdef __ELF__ From MAILER-DAEMON Mon Jul 21 05:55:23 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXNW-0003O8-F1 for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:46 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXNE-00032h-1X for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:28 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXMb-0002Qq-1k for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:53:49 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXMa-0002Pd-7z for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:53:48 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXLZ-0007pi-UK for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:52:45 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:52:45 -0400 Subject: [Emacs-diffs] Changes to emacs/src/fns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:54:44 -0000 Index: emacs/src/fns.c diff -c emacs/src/fns.c:1.340 emacs/src/fns.c:1.341 *** emacs/src/fns.c:1.340 Sun Jul 6 15:29:48 2003 --- emacs/src/fns.c Mon Jul 21 05:52:45 2003 *************** *** 3479,3488 **** #include #endif ! DEFUN ("langinfo", Flanginfo, Slanginfo, 1, 1, 0, ! doc: /* Access locale data ITEM, if available. ! ! ITEM may be one of the following: `codeset', returning the character set as a string (locale item CODESET); --- 3479,3487 ---- #include #endif ! DEFUN ("locale-info", Flocale_info, Slocale_info, 1, 1, 0, ! doc: /* Access locale data ITEM for the current C locale, if available. ! ITEM should be one of the following: `codeset', returning the character set as a string (locale item CODESET); *************** *** 3490,3501 **** `months', returning a 12-element vector of month names (locale items MON_n); ! `paper', returning a list (WIDTH, HEIGHT) for the default paper size, ! where the width and height are in mm (locale items PAPER_WIDTH, ! PAPER_HEIGHT). If the system can't provide such information through a call to ! nl_langinfo(3) or if ITEM isn't from the list above, return nil. See also Info node `(libc)Locales'. --- 3489,3499 ---- `months', returning a 12-element vector of month names (locale items MON_n); ! `paper', returning a list (WIDTH HEIGHT) for the default paper size, ! both measured in milimeters (locale items PAPER_WIDTH, PAPER_HEIGHT). If the system can't provide such information through a call to ! `nl_langinfo', or if ITEM isn't from the list above, return nil. See also Info node `(libc)Locales'. *************** *** 5690,5696 **** defsubr (&Sbase64_encode_string); defsubr (&Sbase64_decode_string); defsubr (&Smd5); ! defsubr (&Slanginfo); } --- 5688,5694 ---- defsubr (&Sbase64_encode_string); defsubr (&Sbase64_decode_string); defsubr (&Smd5); ! defsubr (&Slocale_info); } From MAILER-DAEMON Mon Jul 21 05:58:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXNl-0003r6-1c for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:55:01 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXNL-00038i-11 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:35 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXNJ-00037b-BA for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:33 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXNI-00037G-Id for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:32 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXMH-0007rx-TY for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:53:29 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:53:29 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:55:00 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3319 emacs/src/ChangeLog:1.3320 *** emacs/src/ChangeLog:1.3319 Thu Jul 17 06:15:15 2003 --- emacs/src/ChangeLog Mon Jul 21 05:53:29 2003 *************** *** 1,3 **** --- 1,16 ---- + 2003-07-21 Richard M. Stallman + + * s/openbsd.h (LD_SWITCH_SYSTEM_TEMACS): Add undef. + + * fns.c (Flocale_info): Renamed from Flanginfo. Doc fixes. + (syms_of_fns): Corresponding change. + + * alloc.c (syms_of_alloc): Doc fixes. + + 2003-07-20 Han Boetes (tiny change) + + * s/netbsd.h: Use -Wl syntax. + 2003-07-17 Richard M. Stallman * xterm.c (xim_initialize): Redo 6/24 change. From MAILER-DAEMON Mon Jul 21 05:58:24 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXOK-0004qf-B9 for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:55:36 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXOB-0004Yi-EZ for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:55:27 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXO7-0004NY-Ak for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:55:23 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXNw-0003yh-00 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:55:12 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXMv-0007t0-A6 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:09 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:54:09 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/mule.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:55:35 -0000 Index: emacs/lisp/international/mule.el diff -c emacs/lisp/international/mule.el:1.187 emacs/lisp/international/mule.el:1.188 *** emacs/lisp/international/mule.el:1.187 Wed May 28 22:54:03 2003 --- emacs/lisp/international/mule.el Mon Jul 21 05:54:09 2003 *************** *** 1513,1526 **** sgml-html-meta-auto-coding-function) "A list of functions which attempt to determine a coding system. ! Each function in this list should be written to operate on the current ! buffer, but should not modify it in any way. It should take one ! argument SIZE, past which it should not search. If a function ! succeeds in determining a coding system, it should return that coding ! system. Otherwise, it should return nil. ! Any `coding:' tags present have a higher priority than the ! functions in this list." :group 'files :group 'mule :type '(repeat function)) --- 1513,1530 ---- sgml-html-meta-auto-coding-function) "A list of functions which attempt to determine a coding system. ! Each function in this list should be written to operate on the ! current buffer, but should not modify it in any way. The buffer ! will contain undecoded text of parts of the file. Each function ! should take one argument, SIZE, which says how many ! characters (starting from point) it should look at. ! If one of these functions succeeds in determining a coding ! system, it should return that coding system. Otherwise, it ! should return nil. ! ! If a file has a `coding:' tag, that takes precedence over these ! functions, so they won't be called at all." :group 'files :group 'mule :type '(repeat function)) From MAILER-DAEMON Mon Jul 21 05:59:43 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXSJ-0006UB-4Q for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:59:43 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXSG-0006Rg-Ce for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:59:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXSD-0006Py-4w for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:59:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXSC-0006Ps-Sz for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:59:36 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXRC-00087j-LO for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:58:34 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:58:34 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/NEWS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:59:41 -0000 Index: emacs/etc/NEWS diff -c emacs/etc/NEWS:1.839 emacs/etc/NEWS:1.840 *** emacs/etc/NEWS:1.839 Mon Jul 14 18:02:44 2003 --- emacs/etc/NEWS Mon Jul 21 05:58:34 2003 *************** *** 1714,1720 **** +++ ** `minor-mode-list' now holds a list of minor mode commands. ! ** The new command `modify-all-frames-parameters' modifies parameters for all (existing and future) frames. +++ --- 1714,1721 ---- +++ ** `minor-mode-list' now holds a list of minor mode commands. ! +++ ! ** The new function `modify-all-frames-parameters' modifies parameters for all (existing and future) frames. +++ *************** *** 1726,1787 **** +++ ** The macro `with-syntax-table' does not copy the table any more. ** 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. ** 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). ** `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. ** `set-fontset-font', `fontset-info', `fontset-font' now operate on the default fontset if the argument NAME is nil.. ** 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. ** New function `set-process-filter-multibyte' sets the multibyteness of a string given to a process's filter. ** New function `process-filter-multibyte-p' returns t if a string given to a process's filter is multibyte. ** 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 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', which was not compatible with the behaviour of file reading. ** New function `string-to-multibyte' converts a unibyte string to a multibyte string with the same individual character codes. ** New variables `gc-elapsed' and `gcs-done' provide extra information on garbage collection. ** New function `decode-coding-inserted-region' decodes a region as if it is read from a file without decoding. ! ** New function `langinfo' accesses locale information. ** `save-selected-window' now saves and restores the selected window of every frame. This way, it restores everything that can be changed by calling `select-window'. ** `easy-menu-define' now allows you to use nil for the symbol name if you don't need to give the menu a name. If you install the menu into other keymaps right away (MAPS is non-nil), it usually doesn't --- 1727,1803 ---- +++ ** The macro `with-syntax-table' does not copy the table any more. + +++ ** 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. + +++ ** 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). + +++ ** `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. + --- ** `set-fontset-font', `fontset-info', `fontset-font' now operate on the default fontset if the argument NAME is nil.. + +++ ** 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. + +++ ** New function `set-process-filter-multibyte' sets the multibyteness of a string given to a process's filter. + +++ ** New function `process-filter-multibyte-p' returns t if a string given to a process's filter is multibyte. + +++ ** 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 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', which was not compatible with the behaviour of file reading. + +++ ** New function `string-to-multibyte' converts a unibyte string to a multibyte string with the same individual character codes. + +++ ** New variables `gc-elapsed' and `gcs-done' provide extra information on garbage collection. + +++ ** New function `decode-coding-inserted-region' decodes a region as if it is read from a file without decoding. ! +++ ! ** New function `locale-info' accesses locale information. + +++ ** `save-selected-window' now saves and restores the selected window of every frame. This way, it restores everything that can be changed by calling `select-window'. + --- ** `easy-menu-define' now allows you to use nil for the symbol name if you don't need to give the menu a name. If you install the menu into other keymaps right away (MAPS is non-nil), it usually doesn't *************** *** 1789,1794 **** --- 1805,1811 ---- ** Byte compiler changes: + --- *** `(featurep 'xemacs)' is treated by the compiler as nil. This helps to avoid noisy compiler warnings in code meant to run under both Emacs and XEmacs and may sometimes make the result significantly more *************** *** 1796,1801 **** --- 1813,1819 ---- generally run in Emacs and vice versa, this optimization doesn't lose you anything. + +++ *** You can avoid warnings for possibly-undefined symbols with a simple convention that the compiler understands. (This is mostly useful in code meant to be portable to different Emacs versions.) *************** *** 1812,1824 **** macro expansion), but such tests may be nested. Note that `when' and `unless' expand to `if', but `cond' doesn't. ! ** New translation table `translation-table-for-input'. +++ ** `load-history' can now have elements of the form (t . FUNNAME), which means FUNNAME was previously defined as an autoload (before the current file redefined it). ** 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 --- 1830,1850 ---- macro expansion), but such tests may be nested. Note that `when' and `unless' expand to `if', but `cond' doesn't. ! +++ ! *** The new macro `with-no-warnings' suppresses all compiler warnings ! inside its body. In terms of execution, it is equivalent to `progn'. ! ! +++ ! ** The new translation table `translation-table-for-input' ! is used for customizing self-insertion. The character to ! be inserted is translated through it. +++ ** `load-history' can now have elements of the form (t . FUNNAME), which means FUNNAME was previously defined as an autoload (before the current file redefined it). + +++ ** 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 *************** *** 1841,1853 **** do anything dangerous; otherwise it returns a reason why the form might be unsafe (calls dangerous function, alters global variable, etc). ! ** When you are printing using print-continuous-numbering, ! if no objects have had to be recorded in print-number-table, ! all elements of print-number-table are nil. ** When using non-toolkit scroll bars with the default width, the scroll-bar-width frame parameter value is nil. ** The new function copy-abbrev-table returns a new abbrev table that is a copy of a given abbrev table. --- 1867,1886 ---- do anything dangerous; otherwise it returns a reason why the form might be unsafe (calls dangerous function, alters global variable, etc). ! +++ ! ** 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. + +++ ** When using non-toolkit scroll bars with the default width, the scroll-bar-width frame parameter value is nil. + +++ ** The new function copy-abbrev-table returns a new abbrev table that is a copy of a given abbrev table. *************** *** 1858,1869 **** --- 1891,1905 ---- #!/usr/bin/emacs --script + +++ ** A function's docstring can now hold the function's usage info on its last line. It should match the regexp "\n\n(fn.*)\\'". + --- ** New CCL functions `lookup-character' and `lookup-integer' access hash tables defined by the Lisp function `define-translation-hash-table'. + +++ ** 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. *************** *** 1871,1889 **** --- 1907,1929 ---- ** There is a new Warnings facility; see the functions `warn' and `display-warning'. + +++ ** The functions all-completions and try-completion now accept lists of strings as well as hash-tables additionally to alists, obarrays and functions. Furthermore, the function `test-completion' is now exported to Lisp. + --- ** When pure storage overflows while dumping, Emacs now prints how much pure storage it will approximately need. + +++ ** The new variable `auto-coding-functions' lets you specify functions to examine a file being visited and deduce the proper coding system for it. (If the coding system is detected incorrectly for a specific file, you can put a `coding:' tags to override it.) + --- ** The new function `merge-coding-systems' fills in unspecified aspects of one coding system from another coding system. From MAILER-DAEMON Mon Jul 21 06:00:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXRP-0005sl-Lw for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:58:47 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXQt-0005dl-6k for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:58:15 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXPx-000571-CA for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:57:17 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXOU-0004qi-3n for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:55:46 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXNK-0007tX-GM for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:54:34 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:54:34 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/international/mule-cmds.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 09:58:45 -0000 Index: emacs/lisp/international/mule-cmds.el diff -c emacs/lisp/international/mule-cmds.el:1.241 emacs/lisp/international/mule-cmds.el:1.242 *** emacs/lisp/international/mule-cmds.el:1.241 Thu Jul 10 22:40:01 2003 --- emacs/lisp/international/mule-cmds.el Mon Jul 21 05:54:34 2003 *************** *** 2302,2310 **** (setq locale-coding-system coding-system)))) ;; Default to A4 paper if we're not in a C, POSIX or US locale. ! ;; (See comments in Flanginfo.) (let ((locale locale) ! (paper (langinfo 'paper))) (if paper ;; This will always be null at the time of writing. (cond --- 2302,2310 ---- (setq locale-coding-system coding-system)))) ;; Default to A4 paper if we're not in a C, POSIX or US locale. ! ;; (See comments in Flocale_info.) (let ((locale locale) ! (paper (locale-info 'paper))) (if paper ;; This will always be null at the time of writing. (cond From MAILER-DAEMON Mon Jul 21 06:00:21 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXSl-0006y1-1d for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:11 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXSh-0006vO-Ul for emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXSd-0006rf-6C for emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXRk-0006F1-QV for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:59:08 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXQk-00086B-RV for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:58:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:58:06 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/lisp-mode.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 10:00:09 -0000 Index: emacs/lisp/emacs-lisp/lisp-mode.el diff -c emacs/lisp/emacs-lisp/lisp-mode.el:1.148 emacs/lisp/emacs-lisp/lisp-mode.el:1.149 *** emacs/lisp/emacs-lisp/lisp-mode.el:1.148 Tue Jun 3 19:14:25 2003 --- emacs/lisp/emacs-lisp/lisp-mode.el Mon Jul 21 05:58:06 2003 *************** *** 320,326 **** (setq mode-name "Emacs-Lisp") (lisp-mode-variables) (setq imenu-case-fold-search nil) ! (run-hooks 'emacs-lisp-mode-hook)) (put 'emacs-lisp-mode 'custom-mode-group 'lisp) (defvar lisp-mode-map --- 320,326 ---- (setq mode-name "Emacs-Lisp") (lisp-mode-variables) (setq imenu-case-fold-search nil) ! (run-mode-hooks 'emacs-lisp-mode-hook)) (put 'emacs-lisp-mode 'custom-mode-group 'lisp) (defvar lisp-mode-map *************** *** 356,362 **** (setq font-lock-keywords-case-fold-search t) (setq imenu-case-fold-search t) (set-syntax-table lisp-mode-syntax-table) ! (run-hooks 'lisp-mode-hook)) ;; This will do unless inf-lisp.el is loaded. (defun lisp-eval-defun (&optional and-go) --- 356,362 ---- (setq font-lock-keywords-case-fold-search t) (setq imenu-case-fold-search t) (set-syntax-table lisp-mode-syntax-table) ! (run-mode-hooks 'lisp-mode-hook)) ;; This will do unless inf-lisp.el is loaded. (defun lisp-eval-defun (&optional and-go) From MAILER-DAEMON Mon Jul 21 06:00:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXSv-0007BI-4z for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:21 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXSi-0006wN-Dy for emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXSd-0006t3-R4 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:05 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXSb-0006q5-JQ for emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:01 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXRa-00089R-F3 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:58:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:58:58 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 10:00:17 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5295 emacs/lisp/ChangeLog:1.5296 *** emacs/lisp/ChangeLog:1.5295 Mon Jul 21 03:17:51 2003 --- emacs/lisp/ChangeLog Mon Jul 21 05:58:57 2003 *************** *** 1,3 **** --- 1,18 ---- + 2003-07-21 Richard M. Stallman + + * emacs-lisp/lisp-mode.el (emacs-lisp-mode): Use run-mode-hooks. + (lisp-mode): Likewise. + + * subr.el (with-selected-window): Copy code form save-selected-window + so as to call select-window with norecord arg. + (dynamic-completion-table): Doc fix. + (lazy-completion-table): Doc fix. + + * international/mule-cmds.el (set-locale-environment): + langinfo renamed to locale-info. + + * international/mule.el (auto-coding-functions): Doc fix. + 2003-07-21 Kenichi Handa * international/quail.el (quail-translate-key): Update From MAILER-DAEMON Mon Jul 21 06:00:43 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eXTC-0007W6-Sx for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 06:00:38 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eXRg-00068o-01 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:59:04 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eXQq-0005Vr-3n for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:58:13 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eXQi-0005Ot-8v for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:58:04 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eXPh-00081V-J2 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 05:57:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Mon, 21 Jul 2003 05:57:01 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/subr.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 10:00:37 -0000 Index: emacs/lisp/subr.el diff -c emacs/lisp/subr.el:1.358 emacs/lisp/subr.el:1.359 *** emacs/lisp/subr.el:1.358 Tue Jul 8 12:56:56 2003 --- emacs/lisp/subr.el Mon Jul 21 05:57:01 2003 *************** *** 1622,1632 **** (defmacro with-selected-window (window &rest body) "Execute the forms in BODY with WINDOW as the selected window. The value returned is the value of the last form in BODY. See also `with-temp-buffer'." (declare (indent 1) (debug t)) ! `(save-selected-window ! (select-window ,window 'norecord) ! ,@body)) (defmacro with-temp-file (file &rest body) "Create a new buffer, evaluate BODY there, and write the buffer to FILE. --- 1622,1645 ---- (defmacro with-selected-window (window &rest body) "Execute the forms in BODY with WINDOW as the selected window. The value returned is the value of the last form in BODY. + This does not alter the buffer list ordering. See also `with-temp-buffer'." (declare (indent 1) (debug t)) ! ;; Most of this code is a copy of save-selected-window. ! `(let ((save-selected-window-window (selected-window)) ! (save-selected-window-alist ! (mapcar (lambda (frame) (list frame (frame-selected-window frame))) ! (frame-list)))) ! (unwind-protect ! (progn (select-window ,window 'norecord) ! ,@body) ! (dolist (elt save-selected-window-alist) ! (and (frame-live-p (car elt)) ! (window-live-p (cadr elt)) ! (set-frame-selected-window (car elt) (cadr elt)))) ! (if (window-live-p save-selected-window-window) ! ;; This is where the code differs from save-selected-window. ! (select-window save-selected-window-window 'norecord)))) (defmacro with-temp-file (file &rest body) "Create a new buffer, evaluate BODY there, and write the buffer to FILE. *************** *** 1783,1793 **** "Use function FUN as a dynamic completion table. FUN is called with one argument, the string for which completion is required, and it should return an alist containing all the intended possible ! completions. This alist may be a full list of possible completions so that FUN ! can ignore the value of its argument. If completion is performed in the minibuffer, FUN will be called in the buffer from which the minibuffer was ! entered. `dynamic-completion-table' then computes the completion, see Info ! node `(elisp)Programmed Completion'." (let ((win (make-symbol "window")) (string (make-symbol "string")) (predicate (make-symbol "predicate")) --- 1796,1809 ---- "Use function FUN as a dynamic completion table. FUN is called with one argument, the string for which completion is required, and it should return an alist containing all the intended possible ! completions. This alist may be a full list of possible completions so that FUN ! can ignore the value of its argument. If completion is performed in the minibuffer, FUN will be called in the buffer from which the minibuffer was ! entered. ! ! The result of the `dynamic-completion-table' form is a function ! that can be used as the ALIST argument to `try-completion' and ! `all-completion'. See Info node `(elisp)Programmed Completion'." (let ((win (make-symbol "window")) (string (make-symbol "string")) (predicate (make-symbol "predicate")) *************** *** 1805,1813 **** "Initialize variable VAR as a lazy completion table. If the completion table VAR is used for the first time (e.g., by passing VAR as an argument to `try-completion'), the function FUN is called with arguments ! ARGS. FUN must return the completion table that will be stored in VAR. If ! completion is requested in the minibuffer, FUN will be called in the buffer ! from which the minibuffer was entered. The return value of `lazy-completion-table' must be used to initialize the value of VAR." (let ((str (make-symbol "string"))) `(dynamic-completion-table --- 1821,1829 ---- "Initialize variable VAR as a lazy completion table. If the completion table VAR is used for the first time (e.g., by passing VAR as an argument to `try-completion'), the function FUN is called with arguments ! ARGS. FUN must return the completion table that will be stored in VAR. ! If completion is requested in the minibuffer, FUN will be called in the buffer ! from which the minibuffer was entered. The return value of `lazy-completion-table' must be used to initialize the value of VAR." (let ((str (make-symbol "string"))) `(dynamic-completion-table From MAILER-DAEMON Mon Jul 21 14:07:46 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ef4b-0004Yr-1U for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 14:07:45 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ef4W-0004XG-Hg for emacs-diffs@gnu.org; Mon, 21 Jul 2003 14:07:40 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ef4S-0004W6-9O for emacs-diffs@gnu.org; Mon, 21 Jul 2003 14:07:38 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ef4R-0004Vq-V0 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 14:07:35 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ef3S-00012o-4T for emacs-diffs@gnu.org; Mon, 21 Jul 2003 14:06:34 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Mon, 21 Jul 2003 14:06:34 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 18:07:43 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5296 emacs/lisp/ChangeLog:1.5297 *** emacs/lisp/ChangeLog:1.5296 Mon Jul 21 05:58:57 2003 --- emacs/lisp/ChangeLog Mon Jul 21 14:06:33 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-21 John Paul Wallington + + * subr.el (with-selected-window): Add closing paren. + 2003-07-21 Richard M. Stallman * emacs-lisp/lisp-mode.el (emacs-lisp-mode): Use run-mode-hooks. From MAILER-DAEMON Mon Jul 21 16:22:06 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eh5z-0000Vt-8B for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:17:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eh48-0000Bs-DU for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:15:24 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19egyN-0007UL-Mn for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:09:28 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ef17-00043p-20 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 14:04:09 -0400 Received: from jpw by subversions.gnu.org with local (Exim 4.20) id 19ef06-0000tn-Mf for emacs-diffs@gnu.org; Mon, 21 Jul 2003 14:03:06 -0400 To: emacs-diffs@gnu.org Message-Id: From: John Paul Wallington Date: Mon, 21 Jul 2003 14:03:06 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/subr.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: jpw@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 20:17:16 -0000 Index: emacs/lisp/subr.el diff -c emacs/lisp/subr.el:1.359 emacs/lisp/subr.el:1.360 *** emacs/lisp/subr.el:1.359 Mon Jul 21 05:57:01 2003 --- emacs/lisp/subr.el Mon Jul 21 14:03:06 2003 *************** *** 1639,1645 **** (set-frame-selected-window (car elt) (cadr elt)))) (if (window-live-p save-selected-window-window) ;; This is where the code differs from save-selected-window. ! (select-window save-selected-window-window 'norecord)))) (defmacro with-temp-file (file &rest body) "Create a new buffer, evaluate BODY there, and write the buffer to FILE. --- 1639,1645 ---- (set-frame-selected-window (car elt) (cadr elt)))) (if (window-live-p save-selected-window-window) ;; This is where the code differs from save-selected-window. ! (select-window save-selected-window-window 'norecord))))) (defmacro with-temp-file (file &rest body) "Create a new buffer, evaluate BODY there, and write the buffer to FILE. From MAILER-DAEMON Mon Jul 21 16:58:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ehjd-0001mZ-Ec for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:58:17 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ehYS-0007RP-7W for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:46:44 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ehVd-0006hd-Un for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:43:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19egtR-0006Kv-D9 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:04:21 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19egsQ-00030I-Qk for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:03:18 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Mon, 21 Jul 2003 16:03:18 -0400 Subject: [Emacs-diffs] Changes to emacs/src/alloc.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 20:58:15 -0000 Index: emacs/src/alloc.c diff -c emacs/src/alloc.c:1.317 emacs/src/alloc.c:1.318 *** emacs/src/alloc.c:1.317 Mon Jul 21 05:50:53 2003 --- emacs/src/alloc.c Mon Jul 21 16:03:18 2003 *************** *** 92,100 **** /* Mark, unmark, query mark bit of a Lisp string. S must be a pointer to a struct Lisp_String. */ ! #define MARK_STRING(S) ((S)->size |= MARKBIT) ! #define UNMARK_STRING(S) ((S)->size &= ~MARKBIT) ! #define STRING_MARKED_P(S) ((S)->size & MARKBIT) #define VECTOR_MARK(V) ((V)->size |= ARRAY_MARK_FLAG) #define VECTOR_UNMARK(V) ((V)->size &= ~ARRAY_MARK_FLAG) --- 92,100 ---- /* Mark, unmark, query mark bit of a Lisp string. S must be a pointer to a struct Lisp_String. */ ! #define MARK_STRING(S) ((S)->size |= ARRAY_MARK_FLAG) ! #define UNMARK_STRING(S) ((S)->size &= ~ARRAY_MARK_FLAG) ! #define STRING_MARKED_P(S) ((S)->size & ARRAY_MARK_FLAG) #define VECTOR_MARK(V) ((V)->size |= ARRAY_MARK_FLAG) #define VECTOR_UNMARK(V) ((V)->size &= ~ARRAY_MARK_FLAG) *************** *** 106,112 **** strings. */ #define GC_STRING_BYTES(S) (STRING_BYTES (S)) ! #define GC_STRING_CHARS(S) ((S)->size & ~MARKBIT) /* Number of bytes of consing done since the last gc. */ --- 106,112 ---- strings. */ #define GC_STRING_BYTES(S) (STRING_BYTES (S)) ! #define GC_STRING_CHARS(S) ((S)->size & ~ARRAY_MARK_FLAG) /* Number of bytes of consing done since the last gc. */ *************** *** 1446,1452 **** string_bytes (s) struct Lisp_String *s; { ! int nbytes = (s->size_byte < 0 ? s->size & ~MARKBIT : s->size_byte); if (!PURE_POINTER_P (s) && s->data && nbytes != SDATA_NBYTES (SDATA_OF_STRING (s))) --- 1446,1452 ---- string_bytes (s) struct Lisp_String *s; { ! int nbytes = (s->size_byte < 0 ? s->size & ~ARRAY_MARK_FLAG : s->size_byte); if (!PURE_POINTER_P (s) && s->data && nbytes != SDATA_NBYTES (SDATA_OF_STRING (s))) From MAILER-DAEMON Mon Jul 21 17:05:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ehnL-0003B5-60 for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:02:07 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ehbU-0008Nz-8X for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:49:52 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19egy3-0007On-SW for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:09:08 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19egth-0006Pa-IR for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:04:37 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19egsh-00031v-H0 for emacs-diffs@gnu.org; Mon, 21 Jul 2003 16:03:35 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Mon, 21 Jul 2003 16:03:35 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 21:02:05 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3320 emacs/src/ChangeLog:1.3321 *** emacs/src/ChangeLog:1.3320 Mon Jul 21 05:53:29 2003 --- emacs/src/ChangeLog Mon Jul 21 16:03:35 2003 *************** *** 1,3 **** --- 1,9 ---- + 2003-07-21 Stefan Monnier + + * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P) + (GC_STRING_CHARS, string_bytes): Use ARRAY_MARK_FLAG rather than + MARKBIT as the gcmarkbit for strings. + 2003-07-21 Richard M. Stallman * s/openbsd.h (LD_SWITCH_SYSTEM_TEMACS): Add undef. From MAILER-DAEMON Mon Jul 21 17:42:44 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eiQP-0006Ia-6D for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:42:29 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eiMs-0005EM-NK for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:38:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eiMj-00058x-6d for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:38:41 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eiLc-0004c5-7A for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:37:32 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19eiKc-00046K-3H for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:36:30 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Mon, 21 Jul 2003 17:36:30 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/idlwave.el X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 21:42:27 -0000 Index: emacs/lisp/progmodes/idlwave.el diff -c emacs/lisp/progmodes/idlwave.el:3.25 emacs/lisp/progmodes/idlwave.el:3.26 *** emacs/lisp/progmodes/idlwave.el:3.25 Tue May 6 13:40:52 2003 --- emacs/lisp/progmodes/idlwave.el Mon Jul 21 17:36:29 2003 *************** *** 5,11 **** ;; Chris Chase ;; Maintainer: J.D. Smith ;; Version: 4.15 ! ;; Date: $Date: 2003/05/06 17:40:52 $ ;; Keywords: languages ;; This file is part of GNU Emacs. --- 5,11 ---- ;; Chris Chase ;; Maintainer: J.D. Smith ;; Version: 4.15 ! ;; Date: $Date: 2003/07/21 21:36:29 $ ;; Keywords: languages ;; This file is part of GNU Emacs. *************** *** 1399,1405 **** ;; Note that this is documented in the v18 manuals as being a string ;; of length one rather than a single character. ;; The code in this file accepts either format for compatibility. ! (defvar idlwave-comment-indent-char ?\ "Character to be inserted for IDL comment indentation. Normally a space.") --- 1399,1405 ---- ;; Note that this is documented in the v18 manuals as being a string ;; of length one rather than a single character. ;; The code in this file accepts either format for compatibility. ! (defvar idlwave-comment-indent-char ?\s "Character to be inserted for IDL comment indentation. Normally a space.") From MAILER-DAEMON Mon Jul 21 18:01:56 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eidS-0001Fv-Ma for mharc-emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:55:58 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eiTA-0007Tz-BA for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:45:20 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eiRw-00075j-7s for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:44:04 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eiM2-0004oS-CX for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:37:58 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19eiL2-000474-Hk for emacs-diffs@gnu.org; Mon, 21 Jul 2003 17:36:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Mon, 21 Jul 2003 17:36:56 -0400 Subject: [Emacs-diffs] Changes to emacs/lisp/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2003 21:55:57 -0000 Index: emacs/lisp/ChangeLog diff -c emacs/lisp/ChangeLog:1.5297 emacs/lisp/ChangeLog:1.5298 *** emacs/lisp/ChangeLog:1.5297 Mon Jul 21 14:06:33 2003 --- emacs/lisp/ChangeLog Mon Jul 21 17:36:55 2003 *************** *** 1,3 **** --- 1,8 ---- + 2003-07-21 Markus Rost + + * progmodes/idlwave.el (idlwave-comment-indent-char): Fix default + value using ?\s. + 2003-07-21 John Paul Wallington * subr.el (with-selected-window): Add closing paren. From MAILER-DAEMON Tue Jul 22 11:18:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eysx-0006Ad-7n for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:17:03 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eysk-0005qo-JM for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:16:50 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyrB-0005AW-Jl for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:15:18 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyqy-0004wZ-NJ for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:15:00 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eypy-0003Wp-OB for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:13:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:13:58 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/minibuf.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:17:00 -0000 Index: emacs/lispref/minibuf.texi diff -c emacs/lispref/minibuf.texi:1.35 emacs/lispref/minibuf.texi:1.36 *** emacs/lispref/minibuf.texi:1.35 Mon Jul 14 11:55:32 2003 --- emacs/lispref/minibuf.texi Tue Jul 22 11:13:58 2003 *************** *** 526,541 **** @node Basic Completion @subsection Basic Completion Functions ! The two functions @code{try-completion} and @code{all-completions} ! have nothing in themselves to do with minibuffers. We describe them in ! this chapter so as to keep them near the higher-level completion ! features that do use the minibuffer. @defun try-completion string collection &optional predicate This function returns the longest common substring of all possible completions of @var{string} in @var{collection}. The value of ! @var{collection} must be an alist, an obarray, or a function that ! implements a virtual set of strings (see below). Completion compares @var{string} against each of the permissible completions specified by @var{collection}; if the beginning of the --- 526,541 ---- @node Basic Completion @subsection Basic Completion Functions ! The functions @code{try-completion}, @code{all-completions} and ! @code{test-completion} have nothing in themselves to do with ! minibuffers. We describe them in this chapter so as to keep them near ! the higher-level completion features that do use the minibuffer. @defun try-completion string collection &optional predicate This function returns the longest common substring of all possible completions of @var{string} in @var{collection}. The value of ! @var{collection} must be a list of strings, an alist, an obarray, or a ! function that implements a virtual set of strings (see below). Completion compares @var{string} against each of the permissible completions specified by @var{collection}; if the beginning of the *************** *** 559,571 **** empty and then add symbols to it one by one using @code{intern}. Also, you cannot intern a given symbol in more than one obarray. - If the argument @var{predicate} is non-@code{nil}, then it must be a - function of one argument. It is used to test each possible match, and - the match is accepted only if @var{predicate} returns non-@code{nil}. - The argument given to @var{predicate} is either a cons cell from the alist - (the @sc{car} of which is a string) or else it is a symbol (@emph{not} a - symbol name) from the obarray. - You can also use a symbol that is a function as @var{collection}. Then the function is solely responsible for performing completion; @code{try-completion} returns whatever this function returns. The --- 559,564 ---- *************** *** 574,579 **** --- 567,579 ---- function can be used in @code{all-completions} and do the appropriate thing in either case.) @xref{Programmed Completion}. + If the argument @var{predicate} is non-@code{nil}, then it must be a + function of one argument. It is used to test each possible match, and + the match is accepted only if @var{predicate} returns non-@code{nil}. + The argument given to @var{predicate} is either a string from the + list, a cons cell from the alist (the @sc{car} of which is a string) + or a symbol (@emph{not} a symbol name) from the obarray. + In the first of the following examples, the string @samp{foo} is matched by three of the alist @sc{car}s. All of the matches begin with the characters @samp{fooba}, so that is the result. In the second *************** *** 657,678 **** @end smallexample @end defun @defvar completion-ignore-case ! If the value of this variable is ! non-@code{nil}, Emacs does not consider case significant in completion. @end defvar @defmac lazy-completion-table var fun &rest args This macro provides a way to initialize the variable @var{var} as a ! completion table in a lazy way, not computing its actual contents ! until they are first needed. You use this macro to produce a value ! that you store in @var{var}. The actual computation of the proper ! value is done the first time you do completion using @var{var}. It is ! done by calling @var{fun} with the arguments @var{args}. The value ! @var{fun} returns becomes the permanent value of @var{var}. @example (defvar foo (lazy-completion-table foo make-my-alist 'global)) (make-local-variable 'bar) (setq bar (lazy-completion-table foo make-my-alist 'local) @end example --- 657,694 ---- @end smallexample @end defun + @defun test-completion string collection &optional predicate + This function returns non-@code{nil} if @var{string} is a valid + completion possibility specified by @var{collection} and + @var{predicate}. The other arguments are the same as in + @code{try-completion}. For instance, if @var{collection} is a list, + this is true if @var{string} appears in the list and @var{predicate} + is satisfied. + + If @var{collection} is a function, it is called with three arguments, + the values @var{string}, @var{predicate} and @code{lambda}; whatever + it returns, @code{test-completion} returns in turn. + @end defun + @defvar completion-ignore-case ! If the value of this variable is non-@code{nil}, Emacs does not ! consider case significant in completion. @end defvar @defmac lazy-completion-table var fun &rest args This macro provides a way to initialize the variable @var{var} as a ! collection for completion in a lazy way, not computing its actual ! contents until they are first needed. You use this macro to produce a ! value that you store in @var{var}. The actual computation of the ! proper value is done the first time you do completion using @var{var}. ! It is done by calling @var{fun} with the arguments @var{args}. The ! value @var{fun} returns becomes the permanent value of @var{var}. ! ! Here are two examples of use: @example (defvar foo (lazy-completion-table foo make-my-alist 'global)) + (make-local-variable 'bar) (setq bar (lazy-completion-table foo make-my-alist 'local) @end example *************** *** 1219,1225 **** string. @item ! @code{lambda} specifies a test for an exact match. The completion function should return @code{t} if the specified string is an exact match for some possibility; @code{nil} otherwise. @end itemize --- 1235,1241 ---- string. @item ! @code{lambda} specifies @code{test-completion}. The completion function should return @code{t} if the specified string is an exact match for some possibility; @code{nil} otherwise. @end itemize *************** *** 1227,1236 **** It would be consistent and clean for completion functions to allow lambda expressions (lists that are functions) as well as function symbols as @var{collection}, but this is impossible. Lists as ! completion tables are already assigned another meaning---as alists. It ! would be unreliable to fail to handle an alist normally because it is ! also a possible function. So you must arrange for any function you wish ! to use for completion to be encapsulated in a symbol. Emacs uses programmed completion when completing file names. @xref{File Name Completion}. --- 1243,1252 ---- It would be consistent and clean for completion functions to allow lambda expressions (lists that are functions) as well as function symbols as @var{collection}, but this is impossible. Lists as ! completion tables already have other meanings, and it would be ! unreliable to treat one differently just because it is also a possible ! function. So you must arrange for any function you wish to use for ! completion to be encapsulated in a symbol. Emacs uses programmed completion when completing file names. @xref{File Name Completion}. *************** *** 1594,1599 **** --- 1610,1620 ---- The current value of this variable is used to rebind @code{help-form} locally inside the minibuffer (@pxref{Help Functions}). @end defvar + + @defun minibufferp &optional buffer + This function returns non-@code{nil} if @var{buffer} is a minibuffer. + If @var{buffer} is omitted, it tests the current buffer. + @end defun @defun active-minibuffer-window This function returns the currently active minibuffer window, or From MAILER-DAEMON Tue Jul 22 11:22:01 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eywJ-0000Cj-V1 for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:20:31 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eywD-00007C-Eg for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:20:25 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyw2-0008P6-Tq for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:20:14 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyvv-0008La-Pp for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:20:07 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyuv-0004Tq-Gf for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:19:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:19:05 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/processes.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:20:31 -0000 Index: emacs/lispref/processes.texi diff -c emacs/lispref/processes.texi:1.30 emacs/lispref/processes.texi:1.31 *** emacs/lispref/processes.texi:1.30 Tue Jul 22 11:18:32 2003 --- emacs/lispref/processes.texi Tue Jul 22 11:19:05 2003 *************** *** 901,907 **** @menu * Process Buffers:: If no filter, output is put in a buffer. * Filter Functions:: Filter functions accept output from the process. ! * Decoding Ouptut:: Filters can get unibyte or multibyte strings. * Accepting Output:: How to wait until process output arrives. @end menu --- 901,907 ---- @menu * Process Buffers:: If no filter, output is put in a buffer. * Filter Functions:: Filter functions accept output from the process. ! * Decoding Output:: Filters can get unibyte or multibyte strings. * Accepting Output:: How to wait until process output arrives. @end menu From MAILER-DAEMON Tue Jul 22 11:25:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ez00-0001aB-Pi for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:20 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eyzi-0001Tw-Mt for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyzf-0001SY-OU for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyxx-0000xD-Ne for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:22:13 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyww-0005Ti-NV for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:21:10 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:21:10 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/syntax.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:24:19 -0000 Index: emacs/lispref/syntax.texi diff -c emacs/lispref/syntax.texi:1.26 emacs/lispref/syntax.texi:1.27 *** emacs/lispref/syntax.texi:1.26 Tue Feb 4 09:47:54 2003 --- emacs/lispref/syntax.texi Tue Jul 22 11:21:10 2003 *************** *** 433,439 **** @exdent @r{Examples:} ;; @r{Put the space character in class whitespace.} ! (modify-syntax-entry ?\ " ") @result{} nil @end group --- 433,439 ---- @exdent @r{Examples:} ;; @r{Put the space character in class whitespace.} ! (modify-syntax-entry ?\s " ") @result{} nil @end group *************** *** 479,485 **** @example @group ! (string (char-syntax ?\ )) @result{} " " @end group --- 479,485 ---- @example @group ! (string (char-syntax ?\s)) @result{} " " @end group From MAILER-DAEMON Tue Jul 22 11:32:14 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eytW-0006c2-6m for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:17:38 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eyt1-0006Lf-GJ for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:17:07 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyss-00063n-N8 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:17:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eysI-0005S7-US for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:16:22 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyrI-0003ai-J1 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:15:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:15:20 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/nonascii.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:17:37 -0000 Index: emacs/lispref/nonascii.texi diff -c emacs/lispref/nonascii.texi:1.36 emacs/lispref/nonascii.texi:1.37 *** emacs/lispref/nonascii.texi:1.36 Mon Jun 30 06:41:43 2003 --- emacs/lispref/nonascii.texi Tue Jul 22 11:15:20 2003 *************** *** 191,196 **** --- 191,202 ---- each unibyte character to a multibyte character. @end defun + @defun string-to-multibyte string + This function returns a multibyte string containing the same sequence + of character codes as @var{string}. If @var{string} is a multibyte + string, the value is the equal to @var{string}. + @end defun + @node Selecting a Representation @section Selecting a Representation *************** *** 505,510 **** --- 511,521 ---- coding systems that don't specify any other translation table. @end defvar + @defvar translation-table-for-input + Self-inserting characters are translated through this translation + table before they are inserted. + @end defvar + @node Coding Systems @section Coding Systems *************** *** 887,892 **** --- 898,919 ---- the subprocess, and @var{output-coding} applies to output to it. @end defvar + @defvar auto-coding-functions + This variable holds a list of functions that try to determine a + coding system for a file based on its undecoded contents. + + Each function in this list should be written to look at text in the + current buffer, but should not modify it in any way. The buffer will + contain undecoded text of parts of the file. Each function should + take one argument, @var{size}, which tells it how many characters to + look at, starting from point. If the function succeeds in determining + a coding system for the file, it should return that coding system. + Otherwise, it should return @code{nil}. + + If a file has a @samp{coding:} tag, that takes precedence, so these + functions won't be called. + @end defvar + @defun find-operation-coding-system operation &rest arguments This function returns the coding system to use (by default) for performing @var{operation} with @var{arguments}. The value has this *************** *** 1040,1045 **** --- 1067,1083 ---- string is acceptable. @end defun + @defun decode-coding-inserted-region from to filename &optional visit beg end replace + This function decodes the text from @var{from} to @var{to} as if + it were being read from file @var{filename} using @code{insert-file-contents} + using the rest of the arguments provided. + + The normal way to use this function is after reading text from a file + without decoding, if you decide you would rather have decoded it. + Instead of deleting the text and reading it again, this time with + decoding, you can call this function. + @end defun + @node Terminal I/O Encoding @subsection Terminal I/O Encoding *************** *** 1235,1237 **** --- 1273,1303 ---- locale is specified by environment variables in the usual POSIX fashion. @end defvar + @defun locale-info item + This function returns locale data @var{item} for the current POSIX + locale, if available. @var{item} should be one of these symbols: + + @table @code + @item codeset + Return the character set as a string (locale item @code{CODESET}). + + @item days + Return a 7-element vector of day names (locale items + @code{DAY_1} through @code{DAY_7}); + + @item months + Return a 12-element vector of month names (locale items @code{MON_1} + through @code{MON_12}). + + @item paper + Return a list @code{(@var{width} @var{height})} for the default paper + size measured in milimeters (locale items @code{PAPER_WIDTH} and + @code{PAPER_HEIGHT}). + @end table + + If the system can't provide the requested information, or if + @var{item} is not one of those symbols, the value is @code{nil}. All + strings in the return value are decoded using + @code{locale-coding-system}. @xref{Locales,,, libc, GNU Libc Manual}, + for more information about locales and locale items. + @end defun From MAILER-DAEMON Tue Jul 22 11:33:08 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eyyM-0001AR-NE for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:22:38 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eyxs-0000tK-L2 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:22:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyx8-0000Sc-7Y for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:21:23 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyuN-0007z7-0B for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:18:31 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eytM-0003gu-NG for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:17:28 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:17:28 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/objects.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:22:34 -0000 Index: emacs/lispref/objects.texi diff -c emacs/lispref/objects.texi:1.34 emacs/lispref/objects.texi:1.35 *** emacs/lispref/objects.texi:1.34 Sun Jun 22 13:04:07 2003 --- emacs/lispref/objects.texi Tue Jul 22 11:17:28 2003 *************** *** 258,266 **** You can use the same syntax for punctuation characters, but it is often a good idea to add a @samp{\} so that the Emacs commands for ! editing Lisp code don't get confused. For example, @samp{?\ } is the ! way to write the space character. If the character is @samp{\}, you ! @emph{must} use a second @samp{\} to quote it: @samp{?\\}. @cindex whitespace @cindex bell character --- 258,266 ---- You can use the same syntax for punctuation characters, but it is often a good idea to add a @samp{\} so that the Emacs commands for ! editing Lisp code don't get confused. For example, @samp{?\(} is the ! way to write the open-paren character. If the character is @samp{\}, ! you @emph{must} use a second @samp{\} to quote it: @samp{?\\}. @cindex whitespace @cindex bell character *************** *** 281,293 **** @cindex @samp{\e} @cindex space @cindex @samp{\s} ! You can express the characters Control-g, backspace, tab, newline, vertical tab, formfeed, space, return, del, and escape as @samp{?\a}, @samp{?\b}, @samp{?\t}, @samp{?\n}, @samp{?\v}, @samp{?\f}, ! @samp{?\r}, @samp{?\d}, @samp{?\e}, and @samp{?\s}, respectively. Thus, @example ! ?\a @result{} 7 ; @r{@kbd{C-g}} ?\b @result{} 8 ; @r{backspace, @key{BS}, @kbd{C-h}} ?\t @result{} 9 ; @r{tab, @key{TAB}, @kbd{C-i}} ?\n @result{} 10 ; @r{newline, @kbd{C-j}} --- 281,294 ---- @cindex @samp{\e} @cindex space @cindex @samp{\s} ! You can express the characters control-g, backspace, tab, newline, vertical tab, formfeed, space, return, del, and escape as @samp{?\a}, @samp{?\b}, @samp{?\t}, @samp{?\n}, @samp{?\v}, @samp{?\f}, ! @samp{?\s}, @samp{?\r}, @samp{?\d}, and @samp{?\e}, respectively. ! Thus, @example ! ?\a @result{} 7 ; @r{control-g, @kbd{C-g}} ?\b @result{} 8 ; @r{backspace, @key{BS}, @kbd{C-h}} ?\t @result{} 9 ; @r{tab, @key{TAB}, @kbd{C-i}} ?\n @result{} 10 ; @r{newline, @kbd{C-j}} *************** *** 302,309 **** @cindex escape sequence These sequences which start with backslash are also known as ! @dfn{escape sequences}, because backslash plays the role of an escape ! character; this usage has nothing to do with the character @key{ESC}. @cindex control characters Control characters may be represented using yet another read syntax. --- 303,312 ---- @cindex escape sequence These sequences which start with backslash are also known as ! @dfn{escape sequences}, because backslash plays the role of an ! ``escape character''; this terminology has nothing to do with the ! character @key{ESC}. @samp{\s} is meant for use only in character ! constants; in string constants, just write the space. @cindex control characters Control characters may be represented using yet another read syntax. *************** *** 410,417 **** in a character: @dfn{hyper}, @dfn{super} and @dfn{alt}. The syntaxes for these bits are @samp{\H-}, @samp{\s-} and @samp{\A-}. (Case is significant in these prefixes.) Thus, @samp{?\H-\M-\A-x} represents ! @kbd{Alt-Hyper-Meta-x}. Note that @samp{\s} (without the @samp{-}) ! represents the space character. @tex Numerically, the bit values are @math{2^{22}} for alt, @math{2^{23}} for super and @math{2^{24}} for hyper. --- 413,420 ---- in a character: @dfn{hyper}, @dfn{super} and @dfn{alt}. The syntaxes for these bits are @samp{\H-}, @samp{\s-} and @samp{\A-}. (Case is significant in these prefixes.) Thus, @samp{?\H-\M-\A-x} represents ! @kbd{Alt-Hyper-Meta-x}. (Note that @samp{\s} with no following @samp{-} ! represents the space character.) @tex Numerically, the bit values are @math{2^{22}} for alt, @math{2^{23}} for super and @math{2^{24}} for hyper. *************** *** 457,466 **** There is no reason to add a backslash before most characters. However, you should add a backslash before any of the characters @samp{()\|;'`"#.,} to avoid confusing the Emacs commands for editing ! Lisp code. Also add a backslash before whitespace characters such as space, tab, newline and formfeed. However, it is cleaner to use one of the easily readable escape sequences, such as @samp{\t} or @samp{\s}, instead of an actual whitespace character such as a tab or a space. @node Symbol Type @subsection Symbol Type --- 460,472 ---- There is no reason to add a backslash before most characters. However, you should add a backslash before any of the characters @samp{()\|;'`"#.,} to avoid confusing the Emacs commands for editing ! Lisp code. You can also add a backslash before whitespace characters such as space, tab, newline and formfeed. However, it is cleaner to use one of the easily readable escape sequences, such as @samp{\t} or @samp{\s}, instead of an actual whitespace character such as a tab or a space. + (If you do write backslash followed by a space, you should write + an extra space after the character constant to separate it from the + following text.) @node Symbol Type @subsection Symbol Type From MAILER-DAEMON Tue Jul 22 11:33:29 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ez8W-0003uD-M2 for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:33:08 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ez0C-0001g0-NX for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:32 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyvS-00086Z-7x for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:19:38 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyun-0007zr-UY for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:18:57 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyto-0003uP-07 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:17:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:17:56 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/os.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:33:07 -0000 Index: emacs/lispref/os.texi diff -c emacs/lispref/os.texi:1.54 emacs/lispref/os.texi:1.55 *** emacs/lispref/os.texi:1.54 Mon Jul 14 11:59:52 2003 --- emacs/lispref/os.texi Tue Jul 22 11:17:55 2003 *************** *** 1163,1171 **** the inverse conversion, use @code{float-time}. @end defun ! @defun decode-time time ! This function converts a time value into calendrical information. The ! return value is a list of nine elements, as follows: @example (@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{zone}) --- 1163,1172 ---- the inverse conversion, use @code{float-time}. @end defun ! @defun decode-time &optional time ! This function converts a time value into calendrical information. If ! you don't specify @var{time}, it decodes the current time. The return ! value is a list of nine elements, as follows: @example (@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{zone}) From MAILER-DAEMON Tue Jul 22 11:35:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ez8v-0004BD-KU for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:33:33 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ez8W-0003u6-Gp for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:33:08 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ez0C-0001fn-A6 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:32 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyzz-0001Zy-7F for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:19 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyyz-0005yV-0z for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:23:17 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:23:17 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/internals.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:33:31 -0000 Index: emacs/lispref/internals.texi diff -c emacs/lispref/internals.texi:1.29 emacs/lispref/internals.texi:1.30 *** emacs/lispref/internals.texi:1.29 Mon Jul 14 12:03:48 2003 --- emacs/lispref/internals.texi Tue Jul 22 11:23:16 2003 *************** *** 382,387 **** --- 382,398 ---- memory usage. @end defun + @defvar gcs-done + This variable contains the total number of garbage collections + done so far in this Emacs session. + @end defun + + @defvar gc-elapsed + This variable contains the total number of seconds of elapsed time + during garbage collection so far in this Emacs session, as a floating + point number. + @end defun + @node Memory Usage @section Memory Usage From MAILER-DAEMON Tue Jul 22 11:36:36 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ezBs-0004pB-NX for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:36:36 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ezAL-0004Ug-32 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:35:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ez7z-0003at-8r for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:32:35 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ez0W-0001p9-9o for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:52 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyzW-00064k-4o for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:23:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:23:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/lists.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:36:35 -0000 Index: emacs/lispref/lists.texi diff -c emacs/lispref/lists.texi:1.34 emacs/lispref/lists.texi:1.35 *** emacs/lispref/lists.texi:1.34 Mon Jun 30 06:40:48 2003 --- emacs/lispref/lists.texi Tue Jul 22 11:23:50 2003 *************** *** 733,738 **** --- 733,752 ---- destructively. See @ref{Sets And Lists}. @end defun + @defun number-sequence from to &optional separation + This returns a list of numbers starting with @var{from} + and incrementing by @var{separation} (or by 1 if @var{separation} + is @code{nil} or omitted), and ending at or just before @var{to}. + For example, + + @example + (number-sequence 4 9) + @result{} (4 5 6 7 8 9) + (number-sequence 1.5 6 2) + @result{} (1.5 3.5 5.5) + @end example + @end defun + @node Modifying Lists @section Modifying Existing List Structure @cindex destructive list operations From MAILER-DAEMON Tue Jul 22 11:37:02 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ezCH-0004z9-Gh for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:37:01 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ezCG-0004ye-BK for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:37:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ezCE-0004xn-4F for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:36:58 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ez1V-0002NK-Kd for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:25:53 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ez0K-0006F6-1V for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:24:40 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:24:40 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/modes.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:37:01 -0000 Index: emacs/lispref/modes.texi diff -c emacs/lispref/modes.texi:1.57 emacs/lispref/modes.texi:1.58 *** emacs/lispref/modes.texi:1.57 Mon Jul 14 11:59:12 2003 --- emacs/lispref/modes.texi Tue Jul 22 11:24:39 2003 *************** *** 1616,1626 **** @cindex Imenu @dfn{Imenu} is a feature that lets users select a definition or section in the buffer, from a menu which lists all of them, to go ! directly to that location in the buffer. Imenu works by constructing a ! buffer index which lists the names and buffer positions of the definitions, or other named portions of the buffer; then the user can ! choose one of them and move point to it. This section explains how to ! customize how Imenu finds the definitions or buffer portions for a particular major mode. The usual and simplest way is to set the variable --- 1616,1628 ---- @cindex Imenu @dfn{Imenu} is a feature that lets users select a definition or section in the buffer, from a menu which lists all of them, to go ! directly to that location in the buffer. Imenu works by constructing ! a buffer index which lists the names and buffer positions of the definitions, or other named portions of the buffer; then the user can ! choose one of them and move point to it. The user-level commands for ! using Imenu are described in the Emacs Manual (@pxref{Imenu,, Imenu, ! emacs, the Emacs Manual}). This section explains how to customize ! Imenu's method of finding definitions or buffer portions for a particular major mode. The usual and simplest way is to set the variable *************** *** 1708,1714 **** For example, Fortran mode uses it this way: @example ! (setq imenu-syntax-alist '(("_$" . "w"))) @end example The @code{imenu-generic-expression} patterns can then use @samp{\\sw+} --- 1710,1716 ---- For example, Fortran mode uses it this way: @example ! (setq imenu-syntax-alist '(("_$" . "w"))) @end example The @code{imenu-generic-expression} patterns can then use @samp{\\sw+} From MAILER-DAEMON Tue Jul 22 11:38:42 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ez9B-0004L1-71 for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:33:49 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ez7y-0003ah-DL for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:32:34 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ez5w-0003Ap-R8 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:30:29 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyvO-00084N-PQ for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:19:34 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyuO-0004HK-LU for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:18:32 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:18:32 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/processes.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:33:48 -0000 Index: emacs/lispref/processes.texi diff -c emacs/lispref/processes.texi:1.29 emacs/lispref/processes.texi:1.30 *** emacs/lispref/processes.texi:1.29 Mon Jul 14 12:03:25 2003 --- emacs/lispref/processes.texi Tue Jul 22 11:18:32 2003 *************** *** 898,926 **** redirect one of them to a file--for example, by using an appropriate shell command. - Subprocess output is normally decoded using a coding system before the - buffer or filter function receives it, much like text read from a file. - You can use @code{set-process-coding-system} to specify which coding - system to use (@pxref{Process Information}). Otherwise, the coding - system comes from @code{coding-system-for-read}, if that is - non-@code{nil}; or else from the defaulting mechanism (@pxref{Default - Coding Systems}). - - @strong{Warning:} Coding systems such as @code{undecided} which - determine the coding system from the data do not work entirely reliably - with asynchronous subprocess output. This is because Emacs has to - process asynchronous subprocess output in batches, as it arrives. Emacs - must try to detect the proper coding system from one batch at a time, - and this does not always work. Therefore, if at all possible, use a - coding system which determines both the character code conversion and - the end of line conversion---that is, one like @code{latin-1-unix}, - rather than @code{undecided} or @code{latin-1}. - @menu ! * Process Buffers:: If no filter, output is put in a buffer. ! * Filter Functions:: Filter functions accept output from the process. ! * Accepting Output:: Explicitly permitting subprocess output. ! Waiting for subprocess output. @end menu @node Process Buffers --- 898,908 ---- redirect one of them to a file--for example, by using an appropriate shell command. @menu ! * Process Buffers:: If no filter, output is put in a buffer. ! * Filter Functions:: Filter functions accept output from the process. ! * Decoding Ouptut:: Filters can get unibyte or multibyte strings. ! * Accepting Output:: How to wait until process output arrives. @end menu @node Process Buffers *************** *** 1161,1166 **** --- 1143,1197 ---- @end group @end smallexample @end ignore + + @node Decoding Output + @subsection Decoding Process Output + + When Emacs writes process output directly into a multibyte buffer, + it decodes the output according to the process output coding system. + If the coding system is @code{raw-text} or @code{no-conversion}, Emacs + converts the unibyte output to multibyte using + @code{string-to-multibyte}, inserts the resulting multibyte text. + + You can use @code{set-process-coding-system} to specify which coding + system to use (@pxref{Process Information}). Otherwise, the coding + system comes from @code{coding-system-for-read}, if that is + non-@code{nil}; or else from the defaulting mechanism (@pxref{Default + Coding Systems}). + + @strong{Warning:} Coding systems such as @code{undecided} which + determine the coding system from the data do not work entirely + reliably with asynchronous subprocess output. This is because Emacs + has to process asynchronous subprocess output in batches, as it + arrives. Emacs must try to detect the proper coding system from one + batch at a time, and this does not always work. Therefore, if at all + possible, specify a coding system that determines both the character + code conversion and the end of line conversion---that is, one like + @code{latin-1-unix}, rather than @code{undecided} or @code{latin-1}. + + @cindex filter multibyte flag, of process + @cindex process filter multibyte flag + When Emacs calls a process filter function, it provides the process + output as a multibyte string or as a unibyte string according to the + process's filter multibyte flag. If the flag is non-@code{nil}, Emacs + decodes the output according to the process output coding system to + produce a multibyte string, and passes that to the process. If the + flag is @code{nil}, Emacs puts the output into a unibyte string, with + no decoding, and passes that. + + When you create a process, the filter multibyte flag takes its + initial value from @code{default-enable-multibyte-characters}. If you + want to change the flag later on, use + @code{set-process-filter-multibyte}. + + @defun set-process-filter-multibyte process multibyte + This function sets the filter multibyte flag of @var{process} + to @var{multibyte}. + @end defun + + @defun process-filter-multibyte-p process + This function returns the filter multibyte flag of @var{process}. + @end defun @node Accepting Output @subsection Accepting Output from Processes From MAILER-DAEMON Tue Jul 22 11:39:51 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ezBD-0004ha-WC for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:35:55 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ez8k-00045Z-PL for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:33:22 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ez4s-0002qD-2B for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:29:22 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyzY-0001Pc-QK for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:23:52 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyyY-0005se-PM for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:22:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:22:50 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/functions.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:35:54 -0000 Index: emacs/lispref/functions.texi diff -c emacs/lispref/functions.texi:1.22 emacs/lispref/functions.texi:1.23 *** emacs/lispref/functions.texi:1.22 Mon Jun 30 06:40:27 2003 --- emacs/lispref/functions.texi Tue Jul 22 11:22:50 2003 *************** *** 411,417 **** but since these spaces come before the starting double-quote, they are not part of the string. Some people make a practice of indenting any additional lines of the string so that the text lines up in the program source. ! @emph{This is a mistake.} The indentation of the following lines is inside the string; what looks nice in the source code will look ugly when displayed by the help commands. --- 411,417 ---- but since these spaces come before the starting double-quote, they are not part of the string. Some people make a practice of indenting any additional lines of the string so that the text lines up in the program source. ! @emph{That is a mistake.} The indentation of the following lines is inside the string; what looks nice in the source code will look ugly when displayed by the help commands. *************** *** 422,427 **** --- 422,440 ---- practice, there is no confusion between the first form of the body and the documentation string; if the only body form is a string then it serves both as the return value and as the documentation. + + The last line of the documentation string can specify calling + conventions different from the actual function arguments. Write + text like this: + + @example + (fn @var{arglist}) + @end example + + @noindent + following a blank line, with no newline following it inside the + documentation string. This feature is particularly useful for + macro definitions. @node Function Names @section Naming a Function From MAILER-DAEMON Tue Jul 22 11:39:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ez7R-0003R7-Ni for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:32:01 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19eyyW-0001Lo-QW for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:22:48 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyxm-0000od-4t for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:22:02 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyxJ-0000YO-IW for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:21:33 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eywJ-0005FT-MT for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:20:31 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:20:31 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/streams.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:32:00 -0000 Index: emacs/lispref/streams.texi diff -c emacs/lispref/streams.texi:1.17 emacs/lispref/streams.texi:1.18 *** emacs/lispref/streams.texi:1.17 Tue Feb 4 09:47:54 2003 --- emacs/lispref/streams.texi Tue Jul 22 11:20:31 2003 *************** *** 787,789 **** --- 787,805 ---- uninterned symbols print with the prefix @samp{#:}, which tells the Lisp reader to produce an uninterned symbol. @end defvar + + @defvar print-continuous-numbering + If non-@code{nil}, that means number continuously across print calls. + This affects the numbers printed for @samp{#@var{n}=} labels and + @samp{#@var{m}#} references. + + Don't set this variable with @code{setq}; you should only bind it + temporarily to @code{t} with @code{let}. When you do that, you should + also bind @code{print-number-table} to @code{nil}. + @end defvar + + @defvar print-number-table + This variable holds a vector used internally by printing to implement + the @code{print-circle} feature. You should not use it except + to bind it to @code{nil} when you bind @code{print-continuous-numbering}. + @end defvar From MAILER-DAEMON Tue Jul 22 11:43:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ez8b-0003yc-Dt for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:33:13 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ez8L-0003mQ-Pv for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:32:57 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ez69-0003Fc-2D for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:30:41 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ez20-0002PO-RI for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:26:24 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ez10-0006Qe-VA for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:25:22 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:25:22 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/display.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:33:13 -0000 Index: emacs/lispref/display.texi diff -c emacs/lispref/display.texi:1.94 emacs/lispref/display.texi:1.95 *** emacs/lispref/display.texi:1.94 Tue Jun 24 14:14:50 2003 --- emacs/lispref/display.texi Tue Jul 22 11:25:22 2003 *************** *** 1166,1172 **** @example (truncate-string-to-width "\tab\t" 12 4) @result{} "ab" ! (truncate-string-to-width "\tab\t" 12 4 ?\ ) @result{} " ab " @end example @end defun --- 1166,1172 ---- @example (truncate-string-to-width "\tab\t" 12 4) @result{} "ab" ! (truncate-string-to-width "\tab\t" 12 4 ?\s) @result{} " ab " @end example @end defun *************** *** 2006,2011 **** --- 2006,2026 ---- If @var{unload-p} is non-@code{nil}, that means to unload all unused fonts as well. @end defun + + @defvar face-font-rescale-alist + This variable specifies scaling for certain faces. Its value should + be a list of elements of the form + + @example + (@var{fontname-regexp} . @var{scale-factor}) + @end example + + If @var{fontname-regexp} matches the font name that is about to be + used, this says to choose a larger similar font according to the + factor @var{scale-factor}. You would use this feature to normalize + the font size if certain fonts are bigger or smaller than their + nominal heights and widths would suggest. + @end defvar @node Face Functions @subsection Functions for Working with Faces From MAILER-DAEMON Tue Jul 22 11:43:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ezIa-0007AC-3k for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:43:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ez8J-0003ka-OA for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:32:55 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19eyzP-0001Nz-NQ for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:23:44 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eyyw-0001Mf-HN for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:23:14 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19eyxw-0005kj-Ep for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:22:12 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:22:12 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/windows.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:43:30 -0000 Index: emacs/lispref/windows.texi diff -c emacs/lispref/windows.texi:1.63 emacs/lispref/windows.texi:1.64 *** emacs/lispref/windows.texi:1.63 Mon Jul 14 12:04:44 2003 --- emacs/lispref/windows.texi Tue Jul 22 11:22:12 2003 *************** *** 422,439 **** @end defun @defmac save-selected-window forms@dots{} ! This macro records the selected window, executes @var{forms} ! in sequence, then restores the earlier selected window (unless that ! window is no longer alive). ! ! This macro does not save or restore anything about the sizes, arrangement ! or contents of windows; therefore, if the @var{forms} change them, ! the change persists. ! ! Each frame, at any time, has a window selected within the frame. This ! macro saves only @emph{the} selected window; it does not save anything ! about other frames. If the @var{forms} select some other frame and ! alter the window selected within it, the change persists. @end defmac @defmac with-selected-window window forms@dots{} --- 422,435 ---- @end defun @defmac save-selected-window forms@dots{} ! This macro records the selected window of eac frame, executes ! @var{forms} in sequence, then restores the earlier selected windows. ! ! This macro does not save or restore anything about the sizes, ! arrangement or contents of windows; therefore, if the @var{forms} ! change them, the change persists. If the previously selected window ! of some frame is no longer live at the time of exit from this form, ! that frame's selected window is left alone. @end defmac @defmac with-selected-window window forms@dots{} *************** *** 2083,2089 **** However, it does not include the value of point in the current buffer; use @code{save-excursion} also, if you wish to preserve that. ! Don't use this construct when @code{save-selected-window} is all you need. Exit from @code{save-window-excursion} always triggers execution of the @code{window-size-change-functions}. (It doesn't know how to tell --- 2079,2085 ---- However, it does not include the value of point in the current buffer; use @code{save-excursion} also, if you wish to preserve that. ! Don't use this construct when @code{save-selected-window} is sufficient. Exit from @code{save-window-excursion} always triggers execution of the @code{window-size-change-functions}. (It doesn't know how to tell From MAILER-DAEMON Tue Jul 22 12:05:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ezdC-0004Kc-07 for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:04:50 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ezSS-0001Ns-3n for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:53:44 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ezJY-0007hK-LK for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:44:33 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ez2d-0002Qe-Lr for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:27:03 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ez1d-0006Yr-Dt for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:26:01 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:26:01 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 16:04:48 -0000 Index: emacs/lispref/ChangeLog diff -c emacs/lispref/ChangeLog:1.79 emacs/lispref/ChangeLog:1.80 *** emacs/lispref/ChangeLog:1.79 Mon Jul 14 12:05:17 2003 --- emacs/lispref/ChangeLog Tue Jul 22 11:26:01 2003 *************** *** 1,3 **** --- 1,50 ---- + 2003-07-22 Richard M. Stallman + + * files.texi (Truenames): Add LIMIT arg to file-chase-links. + + * display.texi (Width): Use \s syntax in example. + (Font Selection): Add face-font-rescale-alist. + + * modes.texi (Imenu): Add xref to Emacs Manual node on Imenu. + Remove spurious indent in example. + + * lists.texi (Building Lists): Add number-sequence. + + * internals.texi (Garbage Collection): Add gcs-done, gc-elapsed. + + * functions.texi (Function Documentation): Explain how to + show calling convention explicitly in the doc string. + + * windows.texi (Selecting Windows): save-selected-window saves + selected window of each frame. + (Window Configurations): Minor change. + + * syntax.texi (Syntax Table Functions): Use \s syntax in examples. + + * streams.texi (Output Variables): Add print-continuous-numbering + and print-number-table. + + * processes.texi (Decoding Output): New node. + + * os.texi (Time Conversion): decode-time arg is optional. + + * objects.texi (Character Type): Don't use space as example for \. + Make list of char names and \-sequences correspond. + Explain that \s is not used in strings. `\ ' needs space after. + + * nonascii.texi (Converting Representations): Add string-to-multibyte. + (Translation of Characters): Add translation-table-for-input. + (Default Coding Systems): Add auto-coding-functions. + (Explicit Encoding): Add decode-coding-inserted-region. + (Locales): Add locale-info. + + * minibuf.texi (Basic Completion): Describe test-completion. + Collections can be lists of strings. + Clean up lazy-completion-table. + (Programmed Completion): Mention test-completion. + Clarify why lambda expressions are not accepted. + (Minibuffer Misc): Describe minibufferp. + 2003-07-14 Richard M. Stallman * buffers.texi (Killing Buffers): kill-buffer-hook is perm local. From MAILER-DAEMON Tue Jul 22 12:17:10 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ezov-0008Vm-EO for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:16:57 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ezoj-0008Pp-5c for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:16:45 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ezof-0008L2-8Y for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:16:41 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ezls-0007K6-9a for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:13:48 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19ezks-0008S0-23 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:12:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 12:12:46 -0400 Subject: [Emacs-diffs] Changes to emacs/src/minibuf.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 16:16:47 -0000 Index: emacs/src/minibuf.c diff -c emacs/src/minibuf.c:1.259 emacs/src/minibuf.c:1.260 *** emacs/src/minibuf.c:1.259 Sun Jul 6 19:26:09 2003 --- emacs/src/minibuf.c Tue Jul 22 12:12:45 2003 *************** *** 777,784 **** else { int count = SPECPDL_INDEX (); ! reset_buffer (XBUFFER (buf)); record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); Fset_buffer (buf); Fkill_all_local_variables (); --- 777,803 ---- else { int count = SPECPDL_INDEX (); + Lisp_Object overlay; + struct buffer *b = XBUFFER (buf); ! /* `reset_buffer' blindly sets the list of overlays to NULL, so we ! have to empty the list, otherwise we end up with overlays that ! think they belong to this buffer while the buffer doesn't know about ! them any more. */ ! while (b->overlays_before) ! { ! XSETMISC (overlay, b->overlays_before); ! Fdelete_overlay (overlay); ! } ! while (b->overlays_after) ! { ! XSETMISC (overlay, b->overlays_after); ! Fdelete_overlay (overlay); ! } ! eassert (b->overlays_before == NULL); ! eassert (b->overlays_after == NULL); ! ! reset_buffer (b); record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); Fset_buffer (buf); Fkill_all_local_variables (); From MAILER-DAEMON Tue Jul 22 12:23:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ez54-0002ud-8a for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:29:34 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ez4Y-0002lw-J1 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:29:02 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ez4V-0002kv-5N for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:29:00 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ez2X-0002QI-4n for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:26:57 -0400 Received: from rms by subversions.gnu.org with local (Exim 4.20) id 19ez1V-0006X8-Vl for emacs-diffs@gnu.org; Tue, 22 Jul 2003 11:25:53 -0400 To: emacs-diffs@gnu.org Message-Id: From: "Richard M. Stallman" Date: Tue, 22 Jul 2003 11:25:53 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/files.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rms@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 15:29:33 -0000 Index: emacs/lispref/files.texi diff -c emacs/lispref/files.texi:1.53 emacs/lispref/files.texi:1.54 *** emacs/lispref/files.texi:1.53 Mon Jul 14 11:53:56 2003 --- emacs/lispref/files.texi Tue Jul 22 11:25:53 2003 *************** *** 948,957 **** @var{filename}. The argument must be an absolute file name. @end defun ! @defun file-chase-links filename This function follows symbolic links, starting with @var{filename}, until it finds a file name which is not the name of a symbolic link. ! Then it returns that file name. @end defun To illustrate the difference between @code{file-chase-links} and --- 948,959 ---- @var{filename}. The argument must be an absolute file name. @end defun ! @defun file-chase-links filename &optional limit This function follows symbolic links, starting with @var{filename}, until it finds a file name which is not the name of a symbolic link. ! Then it returns that file name. If you specify a number for ! @var{limit}, then after chasing through that many links, the function ! just returns what it as even if that is still a symbolic link. @end defun To illustrate the difference between @code{file-chase-links} and From MAILER-DAEMON Tue Jul 22 12:25:11 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19eztY-0001rh-Fd for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:21:44 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ezrm-0001OK-6y for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:19:54 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ezp8-0000D3-2e for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:17:10 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19ezoQ-00088i-WB for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:16:27 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19eznR-00008x-5e for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:15:25 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Tue, 22 Jul 2003 12:15:25 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 16:21:43 -0000 Index: emacs/lispref/ChangeLog diff -c emacs/lispref/ChangeLog:1.80 emacs/lispref/ChangeLog:1.81 *** emacs/lispref/ChangeLog:1.80 Tue Jul 22 11:26:01 2003 --- emacs/lispref/ChangeLog Tue Jul 22 12:15:25 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-22 Markus Rost + + * internals.texi (Garbage Collection): Fix previous change. + 2003-07-22 Richard M. Stallman * files.texi (Truenames): Add LIMIT arg to file-chase-links. From MAILER-DAEMON Tue Jul 22 12:27:20 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19ezyx-0004Vs-Ry for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:27:19 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19ezrs-0001Wi-KO for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:20:00 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19ezp2-00008C-9u for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:17:04 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19eznq-0007rl-Ja for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:15:50 -0400 Received: from rost by subversions.gnu.org with local (Exim 4.20) id 19ezmq-00005Y-Hw for emacs-diffs@gnu.org; Tue, 22 Jul 2003 12:14:48 -0400 To: emacs-diffs@gnu.org Message-Id: From: Markus Rost Date: Tue, 22 Jul 2003 12:14:48 -0400 Subject: [Emacs-diffs] Changes to emacs/lispref/internals.texi X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: rost@math.ohio-state.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 16:27:18 -0000 Index: emacs/lispref/internals.texi diff -c emacs/lispref/internals.texi:1.30 emacs/lispref/internals.texi:1.31 *** emacs/lispref/internals.texi:1.30 Tue Jul 22 11:23:16 2003 --- emacs/lispref/internals.texi Tue Jul 22 12:14:48 2003 *************** *** 385,397 **** @defvar gcs-done This variable contains the total number of garbage collections done so far in this Emacs session. ! @end defun @defvar gc-elapsed This variable contains the total number of seconds of elapsed time during garbage collection so far in this Emacs session, as a floating point number. ! @end defun @node Memory Usage @section Memory Usage --- 385,397 ---- @defvar gcs-done This variable contains the total number of garbage collections done so far in this Emacs session. ! @end defvar @defvar gc-elapsed This variable contains the total number of seconds of elapsed time during garbage collection so far in this Emacs session, as a floating point number. ! @end defvar @node Memory Usage @section Memory Usage From MAILER-DAEMON Tue Jul 22 13:34:43 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f11y-0008Lx-Qv for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:34:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f10L-0007g7-Rv for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:32:49 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f10C-0007c0-PW for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:32:41 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f107-0007Zf-FB for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:32:35 -0400 Received: from fx by subversions.gnu.org with local (Exim 4.20) id 19f0z7-0008SC-Kw for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:31:33 -0400 To: emacs-diffs@gnu.org Message-Id: From: Dave Love Date: Tue, 22 Jul 2003 13:31:33 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xfns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: fx@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:34:28 -0000 Index: emacs/src/xfns.c diff -c emacs/src/xfns.c:1.585 emacs/src/xfns.c:1.586 *** emacs/src/xfns.c:1.585 Sun Jul 13 13:29:24 2003 --- emacs/src/xfns.c Tue Jul 22 13:31:33 2003 *************** *** 1935,1945 **** managers which don't support that encoding. So, if NAME contains only ASCII and 8859-1 characters, encode it by iso-latin-1, and use "STRING" in text.encoding hoping that ! such window manager at least analize this format correctly, i.e. treat 8-bit bytes as 8859-1 characters. We may also be able to use "UTF8_STRING" in text.encoding ! in the feature which can encode all Unicode characters. But, for the moment, there's no way to know that the current window manager supports it or not. */ coding_system = Qcompound_text; --- 1935,1945 ---- managers which don't support that encoding. So, if NAME contains only ASCII and 8859-1 characters, encode it by iso-latin-1, and use "STRING" in text.encoding hoping that ! such window managers at least analyze this format correctly, i.e. treat 8-bit bytes as 8859-1 characters. We may also be able to use "UTF8_STRING" in text.encoding ! in the future which can encode all Unicode characters. But, for the moment, there's no way to know that the current window manager supports it or not. */ coding_system = Qcompound_text; *************** *** 7565,7571 **** #if HAVE_PNG ! #include /* Function prototypes. */ --- 7565,7577 ---- #if HAVE_PNG ! #ifdef HAVE_PNG_H ! # include ! #else ! # ifdef HAVE_LIBPNG_PNG_H ! # include ! # endif ! #endif /* Function prototypes. */ From MAILER-DAEMON Tue Jul 22 13:35:22 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f10r-0007zK-QL for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:33:21 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f10m-0007tw-Td for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:33:16 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f10T-0007ih-KZ for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:32:57 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f10K-0007eu-Js for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:32:48 -0400 Received: from fx by subversions.gnu.org with local (Exim 4.20) id 19f0zK-0008Sn-PB for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:31:46 -0400 To: emacs-diffs@gnu.org Message-Id: From: Dave Love Date: Tue, 22 Jul 2003 13:31:46 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: fx@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:33:20 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3321 emacs/src/ChangeLog:1.3322 *** emacs/src/ChangeLog:1.3321 Mon Jul 21 16:03:35 2003 --- emacs/src/ChangeLog Tue Jul 22 13:31:46 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-22 Dave Love + + * xfns.c [HAVE_PNG]: Consider both png.h and libpng/png.h. + 2003-07-21 Stefan Monnier * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P) From MAILER-DAEMON Tue Jul 22 13:35:26 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f12h-0000Nb-AU for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:35:15 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f11w-0008JT-7K for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:34:28 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f10v-00083X-9E for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:33:25 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f0yh-0006yO-QF for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:31:07 -0400 Received: from fx by subversions.gnu.org with local (Exim 4.20) id 19f0xh-0008Ps-4c for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:30:05 -0400 To: emacs-diffs@gnu.org Message-Id: From: Dave Love Date: Tue, 22 Jul 2003 13:30:05 -0400 Subject: [Emacs-diffs] Changes to emacs/configure X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: fx@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:35:10 -0000 Index: emacs/configure diff -c emacs/configure:1.116 emacs/configure:1.117 *** emacs/configure:1.116 Tue Jul 15 04:10:17 2003 --- emacs/configure Tue Jul 22 13:30:03 2003 *************** *** 1,8 **** #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.57a. # ! # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## --- 1,9 ---- #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.54. # ! # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## *************** *** 21,27 **** fi # Support unset when possible. ! if (as_foo=foo; unset as_foo) >/dev/null 2>&1; then as_unset=unset else as_unset=false --- 22,28 ---- fi # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false *************** *** 35,46 **** PS4='+ ' # NLS nuisances. ! for as_var in \ ! LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ ! LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ ! LC_TELEPHONE LC_TIME do ! if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var --- 36,44 ---- PS4='+ ' # NLS nuisances. ! for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME do ! if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var *************** *** 84,98 **** # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then ! echo "#! /bin/sh" >conf$$.sh ! echo "exit 0" >>conf$$.sh ! chmod +x conf$$.sh ! if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi ! rm -f conf$$.sh fi --- 82,96 ---- # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then ! echo "#! /bin/sh" >conftest.sh ! echo "exit 0" >>conftest.sh ! chmod +x conftest.sh ! if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi ! rm -f conftest.sh fi *************** *** 667,673 **** # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ! localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in --- 665,671 ---- # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ! localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in *************** *** 707,716 **** # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$0" : 'X\(//\)[^/]' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 705,714 ---- # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$0" : 'X\(//\)[^/]' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 802,810 **** cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX ! [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ! [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify --- 800,808 ---- cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX ! [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ! [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify *************** *** 941,947 **** echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || ! test -f $ac_srcdir/configure.in; then echo $ac_configure --help else --- 939,945 ---- echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || ! test -f $ac_srcdir/configure.in; then echo $ac_configure --help else *************** *** 955,961 **** if $ac_init_version; then cat <<\_ACEOF ! Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF --- 953,960 ---- if $ac_init_version; then cat <<\_ACEOF ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF *************** *** 967,973 **** running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was ! generated by GNU Autoconf 2.57a. Invocation command line was $ $0 $@ --- 966,972 ---- running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was ! generated by GNU Autoconf 2.54. Invocation command line was $ $0 $@ *************** *** 1019,1072 **** # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. - # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. - # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= - ac_configure_args0= - ac_configure_args1= ac_sep= ! ac_must_keep_next=false ! for ac_pass in 1 2 do ! for ac_arg ! do ! case $ac_arg in ! -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; ! -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ! | -silent | --silent | --silen | --sile | --sil) ! continue ;; ! *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ! ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ! esac ! case $ac_pass in ! 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; ! 2) ! ac_configure_args1="$ac_configure_args1 '$ac_arg'" ! if test $ac_must_keep_next = true; then ! ac_must_keep_next=false # Got value, back to normal. ! else ! case $ac_arg in ! *=* | --config-cache | -C | -disable-* | --disable-* \ ! | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ! | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ! | -with-* | --with-* | -without-* | --without-* | --x) ! case "$ac_configure_args0 " in ! "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ! esac ! ;; ! -* ) ac_must_keep_next=true ;; ! esac ! fi ! ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ! # Get rid of the leading space. ! ac_sep=" " ! ;; ! esac ! done done - $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } - $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there --- 1018,1041 ---- # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Also quote any args containing shell meta-characters. ac_configure_args= ac_sep= ! for ac_arg do ! case $ac_arg in ! -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ! | --no-cr | --no-c | -n ) continue ;; ! -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ! | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ! continue ;; ! *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ! ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ! esac ! ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ! # Get rid of the leading space. ! ac_sep=" " done # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there *************** *** 1090,1101 **** case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ ! "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } --- 1059,1070 ---- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ ! "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } *************** *** 1124,1130 **** for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi --- 1093,1099 ---- for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi *************** *** 1223,1229 **** # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | ! sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" --- 1192,1198 ---- # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | ! sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" *************** *** 1240,1252 **** ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ! ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. --- 1209,1221 ---- ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ! ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. *************** *** 1661,1668 **** *-*-netbsd* ) opsys=netbsd if test -f /usr/lib/crti.o; then ! cat >>confdefs.h <<\_ACEOF ! #define HAVE_CRTIN 1 _ACEOF fi --- 1630,1638 ---- *-*-netbsd* ) opsys=netbsd if test -f /usr/lib/crti.o; then ! ! cat >>confdefs.h <<\_ACEOF ! #define HAVE_CRTIN _ACEOF fi *************** *** 2942,2951 **** fi ! test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH ! See \`config.log' for more details." >&5 ! echo "$as_me: error: no acceptable C compiler found in \$PATH ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. --- 2912,2919 ---- fi ! test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5 ! echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. *************** *** 2969,2979 **** (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 2937,2944 ---- (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 2984,2995 **** } _ACEOF ac_clean_files_save=$ac_clean_files ! ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ! echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 --- 2949,2960 ---- } _ACEOF ac_clean_files_save=$ac_clean_files ! ac_clean_files="$ac_clean_files a.out a.exe" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:$LINENO: checking for C compiler default output" >&5 ! echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 *************** *** 3003,3041 **** # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= ! # b.out is created by i960 compilers. ! for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out ! do test -f "$ac_file" || continue case $ac_file in ! *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ! ;; ! conftest.$ac_ext ) ! # This is the source file. ! ;; ! [ab].out ) ! # We found the default executable, but exeext='' is most ! # certainly right. ! break;; ! *.* ) ! ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool, ! # but it would be cool to find out if it's true. Does anybody ! # maintain Libtool? --akim. ! export ac_cv_exeext ! break;; ! * ) ! break;; esac done else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! { { echo "$as_me:$LINENO: error: C compiler cannot create executables ! See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables ! See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi --- 2968,2994 ---- # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= ! for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.*; do test -f "$ac_file" || continue case $ac_file in ! *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; ! a.out ) # We found the default executable, but exeext='' is most ! # certainly right. ! break;; ! *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool --akim. ! export ac_cv_exeext ! break;; ! * ) break;; esac done else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables ! check \`config.log' for details." >&5 echo "$as_me: error: C compiler cannot create executables ! check \`config.log' for details." >&2;} { (exit 77); exit 77; }; } fi *************** *** 3062,3072 **** cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'. ! See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'. ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi --- 3015,3023 ---- cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'." >&5 echo "$as_me: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'." >&2;} { (exit 1); exit 1; }; } fi fi *************** *** 3074,3080 **** echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 ! rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. --- 3025,3031 ---- echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 ! rm -f a.out a.exe conftest$ac_cv_exeext ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. *************** *** 3099,3114 **** case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! export ac_cv_exeext ! break;; * ) break;; esac done else ! { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link ! See \`config.log' for more details." >&5 ! echo "$as_me: error: cannot compute suffix of executables: cannot compile and link ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi --- 3050,3063 ---- case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! export ac_cv_exeext ! break;; * ) break;; esac done else ! { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5 ! echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;} { (exit 1); exit 1; }; } fi *************** *** 3125,3135 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 3074,3081 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 3154,3165 **** done else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile ! See \`config.log' for more details." >&5 ! echo "$as_me: error: cannot compute suffix of object files: cannot compile ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi --- 3100,3108 ---- done else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5 ! echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;} { (exit 1); exit 1; }; } fi *************** *** 3175,3185 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 3118,3125 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 3198,3204 **** 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=$? --- 3138,3144 ---- 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=$? *************** *** 3207,3214 **** ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 3147,3153 ---- ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 3227,3237 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 3166,3173 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 3247,3253 **** 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=$? --- 3183,3189 ---- 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=$? *************** *** 3256,3263 **** ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 3192,3198 ---- ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 3287,3297 **** ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include #include --- 3222,3229 ---- ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include #include *************** *** 3344,3350 **** 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=$? --- 3276,3282 ---- 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=$? *************** *** 3354,3361 **** break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext done --- 3286,3292 ---- break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext done *************** *** 3389,3402 **** 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 for ac_declaration in \ ! '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ --- 3320,3334 ---- 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 for ac_declaration in \ ! ''\ ! '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ *************** *** 3404,3416 **** 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! $ac_declaration #include int main () { --- 3336,3345 ---- 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include + $ac_declaration int main () { *************** *** 3425,3431 **** 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=$? --- 3354,3360 ---- 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=$? *************** *** 3434,3450 **** : else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ $ac_declaration int main () --- 3363,3375 ---- : else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_declaration int main () *************** *** 3460,3466 **** 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=$? --- 3385,3391 ---- 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=$? *************** *** 3469,3476 **** break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext done --- 3394,3400 ---- break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext done *************** *** 3483,3490 **** else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext ac_ext=c --- 3407,3413 ---- else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext ac_ext=c *************** *** 3562,3583 **** do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 --- 3485,3497 ---- do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" ! #include ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 *************** *** 3599,3606 **** : else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Broken: fails on valid input. continue fi --- 3513,3519 ---- : else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi *************** *** 3609,3619 **** # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. 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 --- 3522,3529 ---- # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 3637,3644 **** continue else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Passes both tests. ac_preproc_ok=: break --- 3547,3553 ---- continue else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break *************** *** 3667,3688 **** do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 --- 3576,3588 ---- do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" ! #include ! Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 *************** *** 3704,3711 **** : else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Broken: fails on valid input. continue fi --- 3604,3610 ---- : else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi *************** *** 3714,3724 **** # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. 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 --- 3613,3620 ---- # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 3742,3749 **** continue else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Passes both tests. ac_preproc_ok=: break --- 3638,3644 ---- continue else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break *************** *** 3756,3765 **** if $ac_preproc_ok; then : else ! { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details." >&5 ! echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi --- 3651,3658 ---- if $ac_preproc_ok; then : else ! { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5 ! echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } fi *************** *** 3780,3786 **** # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" - # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 --- 3673,3678 ---- *************** *** 3797,3803 **** case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. --- 3689,3694 ---- *************** *** 3805,3824 **** # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done ;; --- 3696,3715 ---- # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi done done ;; *************** *** 4081,4091 **** echo "$as_me:$LINENO: checking for AIX" >&5 echo $ECHO_N "checking for AIX... $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. */ #ifdef _AIX yes #endif --- 3972,3979 ---- echo "$as_me:$LINENO: checking for AIX" >&5 echo $ECHO_N "checking for AIX... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #ifdef _AIX yes #endif *************** *** 4279,4290 **** while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, --- 4167,4175 ---- while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, *************** *** 4308,4314 **** 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=$? --- 4193,4199 ---- 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=$? *************** *** 4317,4324 **** break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext CC="$CC -n32" --- 4202,4208 ---- break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext CC="$CC -n32" *************** *** 4328,4334 **** 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=$? --- 4212,4218 ---- 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=$? *************** *** 4337,4347 **** ac_cv_sys_largefile_CC=' -n32'; break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext ! break done CC=$ac_save_CC rm -f conftest.$ac_ext --- 4221,4230 ---- ac_cv_sys_largefile_CC=' -n32'; break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext ! break done CC=$ac_save_CC rm -f conftest.$ac_ext *************** *** 4361,4371 **** while :; do ac_cv_sys_file_offset_bits=no cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, --- 4244,4251 ---- while :; do ac_cv_sys_file_offset_bits=no cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, *************** *** 4389,4395 **** 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=$? --- 4269,4275 ---- 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=$? *************** *** 4398,4413 **** break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. --- 4278,4289 ---- break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. *************** *** 4432,4438 **** 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=$? --- 4308,4314 ---- 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=$? *************** *** 4441,4448 **** ac_cv_sys_file_offset_bits=64; break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext break --- 4317,4323 ---- ac_cv_sys_file_offset_bits=64; break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext break *************** *** 4466,4476 **** while :; do ac_cv_sys_large_files=no cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, --- 4341,4348 ---- while :; do ac_cv_sys_large_files=no cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, *************** *** 4494,4500 **** 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=$? --- 4366,4372 ---- 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=$? *************** *** 4503,4518 **** break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. --- 4375,4386 ---- break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. *************** *** 4537,4543 **** 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=$? --- 4405,4411 ---- 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=$? *************** *** 4546,4553 **** ac_cv_sys_large_files=1; break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext break --- 4414,4420 ---- ac_cv_sys_large_files=1; break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext break *************** *** 4574,4626 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include #include #include - int - main () - { - - ; - return 0; - } _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 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_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_header_stdc=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include _ACEOF --- 4441,4484 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include #include #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 ! else ! ac_cpp_err= ! fi ! else ! ac_cpp_err=yes ! fi ! if test -z "$ac_cpp_err"; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_header_stdc=no fi ! rm -f conftest.err conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF *************** *** 4637,4647 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include _ACEOF --- 4495,4502 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF *************** *** 4661,4680 **** : else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else ! # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif --- 4516,4531 ---- : else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else ! # define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif *************** *** 4685,4691 **** int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } --- 4536,4542 ---- int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } *************** *** 4705,4712 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) ac_cv_header_stdc=no fi --- 4556,4562 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi *************** *** 4735,4741 **** for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 --- 4585,4591 ---- for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 *************** *** 4744,4754 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 <$ac_header> --- 4594,4601 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> *************** *** 4759,4765 **** 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=$? --- 4606,4612 ---- 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=$? *************** *** 4768,4775 **** eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi rm -f conftest.$ac_objext conftest.$ac_ext --- 4615,4621 ---- eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 4805,4815 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 4651,4658 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 4819,4825 **** 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=$? --- 4662,4668 ---- 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=$? *************** *** 4828,4835 **** 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.$ac_objext conftest.$ac_ext --- 4671,4677 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 4840,4850 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 4682,4689 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 4867,4874 **** 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 --- 4706,4712 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 4880,4918 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 4718,4739 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 4936,4946 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lossaudio $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 4757,4764 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lossaudio $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 4963,4969 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 4781,4787 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 4972,4979 **** ac_cv_lib_ossaudio__oss_ioctl=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_ossaudio__oss_ioctl=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 4790,4796 ---- ac_cv_lib_ossaudio__oss_ioctl=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_ossaudio__oss_ioctl=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 5032,5042 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 4849,4856 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 5046,5052 **** 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=$? --- 4860,4866 ---- 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=$? *************** *** 5055,5062 **** 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.$ac_objext conftest.$ac_ext --- 4869,4875 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5067,5077 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 4880,4887 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 5094,5101 **** 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 --- 4904,4910 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 5107,5145 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 4916,4937 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 5164,5174 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 4956,4963 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 5191,5198 **** eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext --- 4980,4986 ---- eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext *************** *** 5214,5266 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include #include #include - int - main () - { - - ; - return 0; - } _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 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_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_header_stdc=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include _ACEOF --- 5002,5045 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include #include #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 ! else ! ac_cpp_err= ! fi ! else ! ac_cpp_err=yes ! fi ! if test -z "$ac_cpp_err"; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_header_stdc=no fi ! rm -f conftest.err conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF *************** *** 5277,5287 **** if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include _ACEOF --- 5056,5063 ---- if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF *************** *** 5301,5320 **** : else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else ! # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif --- 5077,5092 ---- : else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else ! # define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif *************** *** 5325,5331 **** int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } --- 5097,5103 ---- int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) exit(2); exit (0); } *************** *** 5345,5352 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) ac_cv_header_stdc=no fi --- 5117,5123 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi *************** *** 5370,5380 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include #include --- 5141,5148 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include #include *************** *** 5394,5400 **** 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=$? --- 5162,5168 ---- 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=$? *************** *** 5403,5410 **** ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_header_time=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5171,5177 ---- ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_header_time=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5425,5435 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 int main () --- 5192,5199 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default int main () *************** *** 5448,5454 **** 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=$? --- 5212,5218 ---- 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=$? *************** *** 5457,5464 **** ac_cv_have_decl_sys_siglist=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_have_decl_sys_siglist=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5221,5227 ---- ac_cv_have_decl_sys_siglist=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_have_decl_sys_siglist=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5489,5499 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 int main () --- 5252,5259 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default int main () *************** *** 5512,5518 **** 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=$? --- 5272,5278 ---- 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=$? *************** *** 5521,5528 **** ac_cv_have_decl___sys_siglist=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_have_decl___sys_siglist=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5281,5287 ---- ac_cv_have_decl___sys_siglist=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_have_decl___sys_siglist=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5559,5569 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS --- 5318,5325 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include #ifndef WEXITSTATUS *************** *** 5589,5595 **** 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=$? --- 5345,5351 ---- 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=$? *************** *** 5598,5605 **** ac_cv_header_sys_wait_h=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_header_sys_wait_h=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5354,5360 ---- ac_cv_header_sys_wait_h=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_header_sys_wait_h=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5621,5631 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #ifdef TIME_WITH_SYS_TIME #include #include --- 5376,5383 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME #include #include *************** *** 5653,5659 **** 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=$? --- 5405,5411 ---- 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=$? *************** *** 5662,5669 **** emacs_cv_struct_utimbuf=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_struct_utimbuf=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5414,5420 ---- emacs_cv_struct_utimbuf=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_struct_utimbuf=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5684,5694 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include #ifdef signal --- 5435,5442 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include #ifdef signal *************** *** 5714,5720 **** 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=$? --- 5462,5468 ---- 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=$? *************** *** 5723,5730 **** ac_cv_type_signal=void else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_type_signal=int fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5471,5477 ---- ac_cv_type_signal=void else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_type_signal=int fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5744,5754 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 5491,5498 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 5764,5770 **** 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=$? --- 5508,5514 ---- 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=$? *************** *** 5773,5780 **** emacs_cv_speed_t=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_speed_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5517,5523 ---- emacs_cv_speed_t=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_speed_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5795,5805 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #ifdef TIME_WITH_SYS_TIME #include #include --- 5538,5545 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME #include #include *************** *** 5824,5830 **** 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=$? --- 5564,5570 ---- 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=$? *************** *** 5833,5840 **** emacs_cv_struct_timeval=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_struct_timeval=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5573,5579 ---- emacs_cv_struct_timeval=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_struct_timeval=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5856,5866 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 5595,5602 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 5876,5882 **** 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=$? --- 5612,5618 ---- 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=$? *************** *** 5885,5892 **** emacs_cv_struct_exception=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_struct_exception=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5621,5627 ---- emacs_cv_struct_exception=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_struct_exception=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5908,5918 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include --- 5643,5650 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include *************** *** 5930,5936 **** 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=$? --- 5662,5668 ---- 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=$? *************** *** 5939,5946 **** ac_cv_struct_tm=time.h else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_struct_tm=sys/time.h fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5671,5677 ---- ac_cv_struct_tm=time.h else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_struct_tm=sys/time.h fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 5961,5971 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include <$ac_cv_struct_tm> --- 5692,5699 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include <$ac_cv_struct_tm> *************** *** 5986,5992 **** 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=$? --- 5714,5720 ---- 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=$? *************** *** 5995,6008 **** ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include <$ac_cv_struct_tm> --- 5723,5732 ---- ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include <$ac_cv_struct_tm> *************** *** 6023,6029 **** 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=$? --- 5747,5753 ---- 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=$? *************** *** 6032,6039 **** ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_member_struct_tm_tm_zone=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5756,5762 ---- ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_member_struct_tm_tm_zone=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 6064,6074 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #ifndef tzname /* For SGI. */ extern char *tzname[]; /* RS6000 and others reject char **tzname. */ --- 5787,5794 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #ifndef tzname /* For SGI. */ extern char *tzname[]; /* RS6000 and others reject char **tzname. */ *************** *** 6088,6094 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 5808,5814 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 6097,6104 **** ac_cv_var_tzname=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_var_tzname=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 5817,5823 ---- ac_cv_var_tzname=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_var_tzname=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 6120,6130 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int --- 5839,5846 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int *************** *** 6143,6149 **** 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=$? --- 5859,5865 ---- 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=$? *************** *** 6152,6165 **** ac_cv_member_struct_tm_tm_gmtoff=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int --- 5868,5877 ---- ac_cv_member_struct_tm_tm_gmtoff=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int *************** *** 6178,6184 **** 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=$? --- 5890,5896 ---- 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=$? *************** *** 6187,6194 **** ac_cv_member_struct_tm_tm_gmtoff=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_member_struct_tm_tm_gmtoff=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5899,5905 ---- ac_cv_member_struct_tm_tm_gmtoff=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_member_struct_tm_tm_gmtoff=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 6233,6243 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 5944,5951 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 6255,6261 **** 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=$? --- 5963,5969 ---- 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=$? *************** *** 6264,6271 **** ac_cv_c_volatile=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_c_volatile=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 5972,5978 ---- ac_cv_c_volatile=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_c_volatile=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 6286,6296 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 5993,6000 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 6352,6358 **** 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=$? --- 6056,6062 ---- 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=$? *************** *** 6361,6368 **** ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_c_const=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 6065,6071 ---- ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 6383,6393 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 6086,6093 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 6403,6409 **** 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=$? --- 6103,6109 ---- 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=$? *************** *** 6412,6419 **** emacs_cv_void_star=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_void_star=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 6112,6118 ---- emacs_cv_void_star=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_void_star=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 6434,6448 **** ! echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 ! echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: ! @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` --- 6133,6147 ---- ! echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5 ! echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 ! set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: ! @echo 'ac_maketemp="${MAKE}"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` *************** *** 6553,6560 **** # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && ! test -f $ac_im_libdir/libX11.$ac_extension; then ! ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are --- 6252,6259 ---- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl; do if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && ! test -f $ac_im_libdir/libX11.$ac_extension; then ! ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are *************** *** 6614,6624 **** # Guess where to find include files, by looking for Intrinsic.h. # First, try using that file with no special directory specified. 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 --- 6313,6320 ---- # Guess where to find include files, by looking for Intrinsic.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 6642,6649 **** ac_x_includes= else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Intrinsic.h"; then ac_x_includes=$ac_dir --- 6338,6344 ---- ac_x_includes= else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Intrinsic.h"; then ac_x_includes=$ac_dir *************** *** 6661,6671 **** ac_save_LIBS=$LIBS LIBS="-lXt $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 6356,6363 ---- ac_save_LIBS=$LIBS LIBS="-lXt $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 6681,6687 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6373,6379 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 6692,6699 **** ac_x_libraries= else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! LIBS=$ac_save_LIBS for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do --- 6384,6390 ---- ac_x_libraries= else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 LIBS=$ac_save_LIBS for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do *************** *** 6715,6721 **** else # Record where we found X for the cache. ac_cv_have_x="have_x=yes \ ! ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi --- 6406,6412 ---- else # Record where we found X for the cache. ac_cv_have_x="have_x=yes \ ! ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" fi fi *************** *** 6840,6891 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define malloc_get_state to an innocuous variant, in case declares malloc_get_state. ! For example, HP-UX 11i declares gettimeofday. */ ! #define malloc_get_state innocuous_malloc_get_state ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char malloc_get_state (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef malloc_get_state ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char malloc_get_state (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_malloc_get_state) || defined (__stub___malloc_get_state) choke me #else ! char (*f) () = malloc_get_state; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != malloc_get_state; ; return 0; } --- 6531,6562 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char malloc_get_state (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char malloc_get_state (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_malloc_get_state) || defined (__stub___malloc_get_state) choke me #else ! f = malloc_get_state; #endif ; return 0; } *************** *** 6896,6902 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6567,6573 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 6905,6912 **** ac_cv_func_malloc_get_state=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_malloc_get_state=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 6576,6582 ---- ac_cv_func_malloc_get_state=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_malloc_get_state=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 6925,6976 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define malloc_set_state to an innocuous variant, in case declares malloc_set_state. ! For example, HP-UX 11i declares gettimeofday. */ ! #define malloc_set_state innocuous_malloc_set_state ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char malloc_set_state (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef malloc_set_state ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char malloc_set_state (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_malloc_set_state) || defined (__stub___malloc_set_state) choke me #else ! char (*f) () = malloc_set_state; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != malloc_set_state; ; return 0; } --- 6595,6626 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char malloc_set_state (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char malloc_set_state (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_malloc_set_state) || defined (__stub___malloc_set_state) choke me #else ! f = malloc_set_state; #endif ; return 0; } *************** *** 6981,6987 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6631,6637 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 6990,6997 **** ac_cv_func_malloc_set_state=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_malloc_set_state=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 6640,6646 ---- ac_cv_func_malloc_set_state=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_malloc_set_state=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7010,7020 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ extern void (* __after_morecore_hook)(); int main () --- 6659,6666 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" extern void (* __after_morecore_hook)(); int main () *************** *** 7030,7036 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6676,6682 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7039,7046 **** emacs_cv_var___after_morecore_hook=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_var___after_morecore_hook=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 6685,6691 ---- emacs_cv_var___after_morecore_hook=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_var___after_morecore_hook=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7090,7100 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 6735,6742 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 7104,7110 **** 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=$? --- 6746,6752 ---- 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=$? *************** *** 7113,7120 **** 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.$ac_objext conftest.$ac_ext --- 6755,6761 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 7125,7135 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 6766,6773 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 7152,7159 **** 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 --- 6790,6796 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 7165,7203 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 6802,6823 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 7222,7273 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 6842,6873 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 7278,7284 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 6878,6884 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7287,7294 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 6887,6893 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7312,7322 **** ac_cv_func_mmap_fixed_mapped=no else 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 /* malloc might have been renamed as rpl_malloc. */ #undef malloc --- 6911,6918 ---- ac_cv_func_mmap_fixed_mapped=no else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ #undef malloc *************** *** 7421,7427 **** exit (1); data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, ! MAP_PRIVATE | MAP_FIXED, fd, 0L)) exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) --- 7017,7023 ---- exit (1); data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1); if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, ! MAP_PRIVATE | MAP_FIXED, fd, 0L)) exit (1); for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) *************** *** 7459,7466 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) ac_cv_func_mmap_fixed_mapped=no fi --- 7055,7061 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_mmap_fixed_mapped=no fi *************** *** 7493,7503 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 7088,7095 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 7520,7526 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7112,7118 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7529,7536 **** ac_cv_lib_dnet_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_dnet_dnet_ntoa=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7121,7127 ---- ac_cv_lib_dnet_dnet_ntoa=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_dnet_dnet_ntoa=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7556,7566 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int --- 7147,7154 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lXbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int *************** *** 7577,7583 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7165,7171 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7586,7593 **** ac_cv_lib_Xbsd_main=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_Xbsd_main=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7174,7180 ---- ac_cv_lib_Xbsd_main=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_Xbsd_main=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7609,7619 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 7196,7203 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 7636,7642 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7220,7226 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7645,7652 **** ac_cv_lib_pthreads_cma_open=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_pthreads_cma_open=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7229,7235 ---- ac_cv_lib_pthreads_cma_open=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_pthreads_cma_open=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7691,7701 **** LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 7274,7281 ---- LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 7711,7717 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7291,7297 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7720,7727 **** : else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! gdb_cv_bigtoc= fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7300,7306 ---- : else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 gdb_cv_bigtoc= fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7758,7768 **** echo "$as_me:$LINENO: checking whether X on GNU/Linux needs -b to link" >&5 echo $ECHO_N "checking whether X on GNU/Linux needs -b to link... $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. */ int main () --- 7337,7344 ---- echo "$as_me:$LINENO: checking whether X on GNU/Linux needs -b to link" >&5 echo $ECHO_N "checking whether X on GNU/Linux needs -b to link... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 7778,7784 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7354,7360 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7787,7794 **** xlinux_first_failure=no else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! xlinux_first_failure=yes fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7363,7369 ---- xlinux_first_failure=no else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 xlinux_first_failure=yes fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7802,7812 **** CPPFLAGS="$CPPFLAGS -b i486-linuxaout" LIBS="$LIBS -b i486-linuxaout" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int main () --- 7377,7384 ---- CPPFLAGS="$CPPFLAGS -b i486-linuxaout" LIBS="$LIBS -b i486-linuxaout" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int main () *************** *** 7822,7828 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7394,7400 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7831,7838 **** xlinux_second_failure=no else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! xlinux_second_failure=yes fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7403,7409 ---- xlinux_second_failure=no else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 xlinux_second_failure=yes fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7860,7870 **** echo "$as_me:$LINENO: checking for Xkb" >&5 echo $ECHO_N "checking for Xkb... $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 #include int --- 7431,7438 ---- echo "$as_me:$LINENO: checking for Xkb" >&5 echo $ECHO_N "checking for Xkb... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include int *************** *** 7881,7887 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7449,7455 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7890,7897 **** emacs_xkb=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_xkb=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7458,7464 ---- emacs_xkb=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_xkb=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 7919,7970 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 7486,7517 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 7975,7981 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7522,7528 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 7984,7991 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7531,7537 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8009,8019 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 7555,7562 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 8032,8038 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7575,7581 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8041,8048 **** emacs_cv_x11_version_6=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_x11_version_6=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7584,7590 ---- emacs_cv_x11_version_6=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_x11_version_6=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8069,8079 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 7611,7618 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 8092,8098 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7631,7637 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8101,8108 **** emacs_cv_x11_version_5=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_x11_version_5=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7640,7646 ---- emacs_cv_x11_version_5=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_x11_version_5=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8260,8270 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include --- 7798,7805 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include *************** *** 8282,8288 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7817,7823 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8291,8298 **** emacs_cv_x11_version_5_with_xaw=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_x11_version_5_with_xaw=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7826,7832 ---- emacs_cv_x11_version_5_with_xaw=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_x11_version_5_with_xaw=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8321,8331 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 7855,7862 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 8344,8350 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7875,7881 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8353,8360 **** emacs_cv_x11_toolkit_version_6=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_x11_toolkit_version_6=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7884,7890 ---- emacs_cv_x11_toolkit_version_6=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_x11_toolkit_version_6=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8389,8399 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXmu $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 7919,7926 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lXmu $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 8416,8422 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 7943,7949 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8425,8432 **** ac_cv_lib_Xmu_XmuConvertStandardSelection=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_Xmu_XmuConvertStandardSelection=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 7952,7958 ---- ac_cv_lib_Xmu_XmuConvertStandardSelection=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_Xmu_XmuConvertStandardSelection=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8458,8468 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 7984,7991 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lXext $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 8485,8491 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8008,8014 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8494,8501 **** ac_cv_lib_Xext_XShapeQueryExtension=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_Xext_XShapeQueryExtension=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 8017,8023 ---- ac_cv_lib_Xext_XShapeQueryExtension=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_Xext_XShapeQueryExtension=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8529,8539 **** CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 8051,8058 ---- CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 8549,8555 **** 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=$? --- 8068,8074 ---- 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=$? *************** *** 8558,8565 **** emacs_cv_lesstif=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_lesstif=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 8077,8083 ---- emacs_cv_lesstif=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_lesstif=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 8584,8594 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 8102,8109 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 8608,8614 **** 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=$? --- 8123,8129 ---- 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=$? *************** *** 8617,8624 **** emacs_cv_motif_version_2_1=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_motif_version_2_1=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 8132,8138 ---- emacs_cv_motif_version_2_1=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_motif_version_2_1=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 8641,8651 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXp $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 8155,8162 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lXp $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 8668,8674 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8179,8185 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8677,8684 **** ac_cv_lib_Xp_XpCreateContext=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_Xp_XpCreateContext=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 8188,8194 ---- ac_cv_lib_Xp_XpCreateContext=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_Xp_XpCreateContext=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8710,8720 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 --- 8220,8227 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 8737,8744 **** ac_cv_header_X11_Xaw3d_Scrollbar_h=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_header_X11_Xaw3d_Scrollbar_h=no fi rm -f conftest.err conftest.$ac_ext --- 8244,8250 ---- ac_cv_header_X11_Xaw3d_Scrollbar_h=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_header_X11_Xaw3d_Scrollbar_h=no fi rm -f conftest.err conftest.$ac_ext *************** *** 8754,8764 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXaw3d $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 8260,8267 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lXaw3d $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 8781,8787 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8284,8290 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 8790,8797 **** ac_cv_lib_Xaw3d_XawScrollbarSetThumb=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_Xaw3d_XawScrollbarSetThumb=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 8293,8299 ---- ac_cv_lib_Xaw3d_XawScrollbarSetThumb=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_Xaw3d_XawScrollbarSetThumb=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 8855,8866 **** if test "$GCC" = yes; then CFLAGS="$CFLAGS --pedantic-errors" fi cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include --- 8357,8367 ---- if test "$GCC" = yes; then CFLAGS="$CFLAGS --pedantic-errors" fi + fi + if test "${HAVE_X11}" = "yes"; then cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include *************** *** 8891,8897 **** 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=$? --- 8392,8398 ---- 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=$? *************** *** 8900,8917 **** emacs_cv_arg6_star=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext if test "$emacs_cv_arg6_star" = yes; then ! cat >>confdefs.h <<\_ACEOF #define XRegisterIMInstantiateCallback_arg6 XPointer* _ACEOF else ! cat >>confdefs.h <<\_ACEOF #define XRegisterIMInstantiateCallback_arg6 XPointer _ACEOF --- 8401,8417 ---- emacs_cv_arg6_star=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext if test "$emacs_cv_arg6_star" = yes; then ! cat >>confdefs.h <<\_ACEOF #define XRegisterIMInstantiateCallback_arg6 XPointer* _ACEOF else ! cat >>confdefs.h <<\_ACEOF #define XRegisterIMInstantiateCallback_arg6 XPointer _ACEOF *************** *** 8936,8946 **** echo "$as_me:$LINENO: checking X11/xpm.h usability" >&5 echo $ECHO_N "checking X11/xpm.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 --- 8436,8443 ---- echo "$as_me:$LINENO: checking X11/xpm.h usability" >&5 echo $ECHO_N "checking X11/xpm.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 8950,8956 **** 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=$? --- 8447,8453 ---- 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=$? *************** *** 8959,8966 **** 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.$ac_objext conftest.$ac_ext --- 8456,8462 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 8971,8981 **** echo "$as_me:$LINENO: checking X11/xpm.h presence" >&5 echo $ECHO_N "checking X11/xpm.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 --- 8467,8474 ---- echo "$as_me:$LINENO: checking X11/xpm.h presence" >&5 echo $ECHO_N "checking X11/xpm.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 8998,9005 **** 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 --- 8491,8497 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 9011,9042 **** yes:no ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: X11/xpm.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/xpm.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: X11/xpm.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: X11/xpm.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: X11/xpm.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 X11/xpm.h" >&5 echo $ECHO_N "checking for X11/xpm.h... $ECHO_C" >&6 --- 8503,8517 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/xpm.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/xpm.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/xpm.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/xpm.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/xpm.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for X11/xpm.h" >&5 echo $ECHO_N "checking for X11/xpm.h... $ECHO_C" >&6 *************** *** 9058,9068 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lXpm -lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 8533,8540 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lXpm -lX11 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 9085,9091 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8557,8563 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9094,9101 **** ac_cv_lib_Xpm_XpmReadFileToPixmap=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_Xpm_XpmReadFileToPixmap=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 8566,8572 ---- ac_cv_lib_Xpm_XpmReadFileToPixmap=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_Xpm_XpmReadFileToPixmap=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 9114,9124 **** echo "$as_me:$LINENO: checking for XpmReturnAllocPixels preprocessor define" >&5 echo $ECHO_N "checking for XpmReturnAllocPixels preprocessor define... $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 "X11/xpm.h" #ifndef XpmReturnAllocPixels no_return_alloc_pixels --- 8585,8592 ---- echo "$as_me:$LINENO: checking for XpmReturnAllocPixels preprocessor define" >&5 echo $ECHO_N "checking for XpmReturnAllocPixels preprocessor define... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include "X11/xpm.h" #ifndef XpmReturnAllocPixels no_return_alloc_pixels *************** *** 9170,9180 **** echo "$as_me:$LINENO: checking jerror.h usability" >&5 echo $ECHO_N "checking jerror.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 --- 8638,8645 ---- echo "$as_me:$LINENO: checking jerror.h usability" >&5 echo $ECHO_N "checking jerror.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 9184,9190 **** 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=$? --- 8649,8655 ---- 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=$? *************** *** 9193,9200 **** 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.$ac_objext conftest.$ac_ext --- 8658,8664 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 9205,9215 **** echo "$as_me:$LINENO: checking jerror.h presence" >&5 echo $ECHO_N "checking jerror.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 --- 8669,8676 ---- echo "$as_me:$LINENO: checking jerror.h presence" >&5 echo $ECHO_N "checking jerror.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 9232,9239 **** 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 --- 8693,8699 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 9245,9276 **** yes:no ) { echo "$as_me:$LINENO: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: jerror.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: jerror.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jerror.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: jerror.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: jerror.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: jerror.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: jerror.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 jerror.h" >&5 echo $ECHO_N "checking for jerror.h... $ECHO_C" >&6 --- 8705,8719 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: jerror.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: jerror.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: jerror.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: jerror.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: jerror.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: jerror.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: jerror.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for jerror.h" >&5 echo $ECHO_N "checking for jerror.h... $ECHO_C" >&6 *************** *** 9292,9302 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 8735,8742 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 9319,9325 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8759,8765 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9328,9335 **** ac_cv_lib_jpeg_jpeg_destroy_compress=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_jpeg_jpeg_destroy_compress=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 8768,8774 ---- ac_cv_lib_jpeg_jpeg_destroy_compress=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_jpeg_jpeg_destroy_compress=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 9353,9363 **** _ACEOF cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include version=JPEG_LIB_VERSION --- 8792,8799 ---- _ACEOF cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include version=JPEG_LIB_VERSION *************** *** 9382,9407 **** HAVE_PNG=no if test "${HAVE_X11}" = "yes"; then if test "${with_png}" != "no"; then ! if test "${ac_cv_header_png_h+set}" = set; then ! echo "$as_me:$LINENO: checking for png.h" >&5 ! echo $ECHO_N "checking for png.h... $ECHO_C" >&6 ! if test "${ac_cv_header_png_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ! echo "$as_me:$LINENO: result: $ac_cv_header_png_h" >&5 ! echo "${ECHO_T}$ac_cv_header_png_h" >&6 else # Is the header compilable? ! echo "$as_me:$LINENO: checking png.h usability" >&5 ! echo $ECHO_N "checking png.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 --- 8818,8847 ---- HAVE_PNG=no if test "${HAVE_X11}" = "yes"; then if test "${with_png}" != "no"; then ! # Debian unstable as of July 2003 has multiple libpngs, and puts png.h ! # in /usr/include/libpng. ! ! ! for ac_header in png.h libpng/png.h ! do ! as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo "$as_me:$LINENO: checking for $ac_header" >&5 ! echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ! if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ! echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? ! echo "$as_me:$LINENO: checking $ac_header usability" >&5 ! echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default ! #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 *************** *** 9409,9415 **** 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=$? --- 8849,8855 ---- 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=$? *************** *** 9418,9425 **** 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.$ac_objext conftest.$ac_ext --- 8858,8864 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 9427,9441 **** echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? ! echo "$as_me:$LINENO: checking png.h presence" >&5 ! echo $ECHO_N "checking png.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 --- 8866,8877 ---- echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? ! echo "$as_me:$LINENO: checking $ac_header presence" >&5 ! echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" ! #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 *************** *** 9457,9464 **** 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 --- 8893,8899 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 9468,9515 **** # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) ! { echo "$as_me:$LINENO: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&5 ! echo "$as_me: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: png.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) ! { echo "$as_me:$LINENO: WARNING: png.h: present but cannot be compiled" >&5 ! echo "$as_me: WARNING: png.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: png.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: png.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: png.h: section \"Present But Cannot Be Compiled\"" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: png.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: png.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: png.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 png.h" >&5 ! echo $ECHO_N "checking for png.h... $ECHO_C" >&6 ! if test "${ac_cv_header_png_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! ac_cv_header_png_h=$ac_header_preproc fi ! echo "$as_me:$LINENO: result: $ac_cv_header_png_h" >&5 ! echo "${ECHO_T}$ac_cv_header_png_h" >&6 fi ! if test $ac_cv_header_png_h = yes; then ! echo "$as_me:$LINENO: checking for png_get_channels in -lpng" >&5 echo $ECHO_N "checking for png_get_channels in -lpng... $ECHO_C" >&6 if test "${ac_cv_lib_png_png_get_channels+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 --- 8903,8942 ---- # So? What about this header? case $ac_header_compiler:$ac_header_preproc in yes:no ) ! { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ! echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) ! { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ! echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac ! echo "$as_me:$LINENO: checking for $ac_header" >&5 ! echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ! if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" ! fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ! echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ! fi ! if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <<_ACEOF ! #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ! _ACEOF fi ! ! done ! ! if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then ! echo "$as_me:$LINENO: checking for png_get_channels in -lpng" >&5 echo $ECHO_N "checking for png_get_channels in -lpng... $ECHO_C" >&6 if test "${ac_cv_lib_png_png_get_channels+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 *************** *** 9517,9527 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lpng -lz -lm $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 8944,8951 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lpng -lz -lm $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 9544,9550 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 8968,8974 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9553,9560 **** ac_cv_lib_png_png_get_channels=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_png_png_get_channels=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 8977,8983 ---- ac_cv_lib_png_png_get_channels=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_png_png_get_channels=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 9566,9574 **** HAVE_PNG=yes fi ! fi ! ! fi if test "${HAVE_PNG}" = "yes"; then --- 8989,8995 ---- HAVE_PNG=yes fi ! fi fi if test "${HAVE_PNG}" = "yes"; then *************** *** 9597,9607 **** echo "$as_me:$LINENO: checking tiffio.h usability" >&5 echo $ECHO_N "checking tiffio.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 --- 9018,9025 ---- echo "$as_me:$LINENO: checking tiffio.h usability" >&5 echo $ECHO_N "checking tiffio.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 9611,9617 **** 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=$? --- 9029,9035 ---- 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=$? *************** *** 9620,9627 **** 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.$ac_objext conftest.$ac_ext --- 9038,9044 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 9632,9642 **** echo "$as_me:$LINENO: checking tiffio.h presence" >&5 echo $ECHO_N "checking tiffio.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 --- 9049,9056 ---- echo "$as_me:$LINENO: checking tiffio.h presence" >&5 echo $ECHO_N "checking tiffio.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 9659,9666 **** 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 --- 9073,9079 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 9672,9703 **** yes:no ) { echo "$as_me:$LINENO: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: tiffio.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: tiffio.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: tiffio.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: tiffio.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: tiffio.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: tiffio.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: tiffio.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 tiffio.h" >&5 echo $ECHO_N "checking for tiffio.h... $ECHO_C" >&6 --- 9085,9099 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: tiffio.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: tiffio.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: tiffio.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: tiffio.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: tiffio.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: tiffio.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: tiffio.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for tiffio.h" >&5 echo $ECHO_N "checking for tiffio.h... $ECHO_C" >&6 *************** *** 9722,9732 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $tifflibs $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 9118,9125 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $tifflibs $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 9749,9755 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9142,9148 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9758,9765 **** ac_cv_lib_tiff_TIFFGetVersion=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_tiff_TIFFGetVersion=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 9151,9157 ---- ac_cv_lib_tiff_TIFFGetVersion=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_tiff_TIFFGetVersion=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 9802,9812 **** echo "$as_me:$LINENO: checking gif_lib.h usability" >&5 echo $ECHO_N "checking gif_lib.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 --- 9194,9201 ---- echo "$as_me:$LINENO: checking gif_lib.h usability" >&5 echo $ECHO_N "checking gif_lib.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 9816,9822 **** 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=$? --- 9205,9211 ---- 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=$? *************** *** 9825,9832 **** 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.$ac_objext conftest.$ac_ext --- 9214,9220 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 9837,9847 **** echo "$as_me:$LINENO: checking gif_lib.h presence" >&5 echo $ECHO_N "checking gif_lib.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 --- 9225,9232 ---- echo "$as_me:$LINENO: checking gif_lib.h presence" >&5 echo $ECHO_N "checking gif_lib.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 9864,9871 **** 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 --- 9249,9255 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 9877,9908 **** yes:no ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: gif_lib.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: gif_lib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: gif_lib.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: gif_lib.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: gif_lib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: gif_lib.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 gif_lib.h" >&5 echo $ECHO_N "checking for gif_lib.h... $ECHO_C" >&6 --- 9261,9275 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: gif_lib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: gif_lib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: gif_lib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: gif_lib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: gif_lib.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: gif_lib.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for gif_lib.h" >&5 echo $ECHO_N "checking for gif_lib.h... $ECHO_C" >&6 *************** *** 9926,9936 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lungif $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 9293,9300 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lungif $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 9953,9959 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9317,9323 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 9962,9969 **** ac_cv_lib_ungif_EGifPutExtensionLast=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_ungif_EGifPutExtensionLast=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 9326,9332 ---- ac_cv_lib_ungif_EGifPutExtensionLast=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_ungif_EGifPutExtensionLast=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10005,10015 **** 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 --- 9368,9375 ---- 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 ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 10019,10025 **** 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=$? --- 9379,9385 ---- 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=$? *************** *** 10028,10035 **** 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.$ac_objext conftest.$ac_ext --- 9388,9394 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 10040,10050 **** 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 --- 9399,9406 ---- 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 ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 10067,10074 **** 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 --- 9423,9429 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 10080,10111 **** 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 --- 9435,9449 ---- 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 preprocessor's result" >&5 ! echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;};; 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: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5 echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6 *************** *** 10160,10170 **** echo "$as_me:$LINENO: checking X11/SM/SMlib.h usability" >&5 echo $ECHO_N "checking X11/SM/SMlib.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 --- 9498,9505 ---- echo "$as_me:$LINENO: checking X11/SM/SMlib.h usability" >&5 echo $ECHO_N "checking X11/SM/SMlib.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 10174,10180 **** 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=$? --- 9509,9515 ---- 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=$? *************** *** 10183,10190 **** 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.$ac_objext conftest.$ac_ext --- 9518,9524 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 10195,10205 **** echo "$as_me:$LINENO: checking X11/SM/SMlib.h presence" >&5 echo $ECHO_N "checking X11/SM/SMlib.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 --- 9529,9536 ---- echo "$as_me:$LINENO: checking X11/SM/SMlib.h presence" >&5 echo $ECHO_N "checking X11/SM/SMlib.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 10222,10229 **** 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 --- 9553,9559 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 10235,10266 **** yes:no ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.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 X11/SM/SMlib.h" >&5 echo $ECHO_N "checking for X11/SM/SMlib.h... $ECHO_C" >&6 --- 9565,9579 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: X11/SM/SMlib.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: X11/SM/SMlib.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for X11/SM/SMlib.h" >&5 echo $ECHO_N "checking for X11/SM/SMlib.h... $ECHO_C" >&6 *************** *** 10282,10292 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lSM $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 9595,9602 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lSM $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 10309,10315 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9619,9625 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10318,10325 **** ac_cv_lib_SM_SmcOpenConnection=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_SM_SmcOpenConnection=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 9628,9634 ---- ac_cv_lib_SM_SmcOpenConnection=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_SM_SmcOpenConnection=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10357,10367 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 9666,9673 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 10377,10383 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9683,9689 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10386,10393 **** emacs_cv_netdb_declares_h_errno=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_netdb_declares_h_errno=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 9692,9698 ---- emacs_cv_netdb_declares_h_errno=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_netdb_declares_h_errno=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10410,10420 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 9715,9722 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 10430,10436 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9732,9738 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10439,10446 **** ac_cv_working_alloca_h=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_working_alloca_h=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 9741,9747 ---- ac_cv_working_alloca_h=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_working_alloca_h=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10461,10471 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else --- 9762,9769 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #ifdef __GNUC__ # define alloca __builtin_alloca #else *************** *** 10501,10507 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9799,9805 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10510,10517 **** ac_cv_func_alloca_works=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_alloca_works=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 9808,9814 ---- ac_cv_func_alloca_works=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_alloca_works=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10544,10554 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #if defined(CRAY) && ! defined(CRAY2) webecray #else --- 9841,9848 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray #else *************** *** 10576,10627 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 9870,9901 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 10632,10638 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 9906,9912 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10641,10648 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 9915,9921 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10670,10680 **** ac_cv_c_stack_direction=0 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int find_stack_direction () { --- 9943,9950 ---- ac_cv_c_stack_direction=0 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" int find_stack_direction () { *************** *** 10710,10717 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) ac_cv_c_stack_direction=-1 fi --- 9980,9986 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_stack_direction=-1 fi *************** *** 10740,10750 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 10009,10016 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 10767,10773 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10033,10039 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10776,10783 **** ac_cv_lib_m_sqrt=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_m_sqrt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 10042,10048 ---- ac_cv_lib_m_sqrt=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_m_sqrt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10806,10816 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lmail $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 10071,10078 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lmail $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 10833,10839 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10095,10101 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10842,10849 **** ac_cv_lib_mail_maillock=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_mail_maillock=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 10104,10110 ---- ac_cv_lib_mail_maillock=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_mail_maillock=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10869,10879 **** ac_check_lib_save_LIBS=$LIBS LIBS="-llockfile $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 10130,10137 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-llockfile $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 10896,10902 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10154,10160 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 10905,10912 **** ac_cv_lib_lockfile_maillock=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_lockfile_maillock=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 10163,10169 ---- ac_cv_lib_lockfile_maillock=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_lockfile_maillock=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 10985,11036 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 10242,10273 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 11041,11047 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10278,10284 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 11050,11057 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 10287,10293 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 11083,11093 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 10319,10326 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 11097,11103 **** 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=$? --- 10330,10336 ---- 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=$? *************** *** 11106,11113 **** 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.$ac_objext conftest.$ac_ext --- 10339,10345 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 11118,11128 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 10350,10357 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 11145,11152 **** 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 --- 10374,10380 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 11158,11196 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 10386,10407 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 11290,11341 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 10501,10532 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 11346,11352 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10537,10543 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 11355,11362 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 10546,10552 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 11389,11399 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 10579,10586 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 11403,11409 **** 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=$? --- 10590,10596 ---- 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=$? *************** *** 11412,11419 **** 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.$ac_objext conftest.$ac_ext --- 10599,10605 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 11424,11434 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 10610,10617 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 11451,11458 **** 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 --- 10634,10640 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 11464,11502 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 10646,10667 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 11514,11521 **** ! ! for ac_header in stdlib.h sys/time.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then --- 10679,10685 ---- ! for ac_header in sys/time.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then *************** *** 11531,11541 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 10695,10702 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 11545,11551 **** 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=$? --- 10706,10712 ---- 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=$? *************** *** 11554,11561 **** 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.$ac_objext conftest.$ac_ext --- 10715,10721 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 11566,11576 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 10726,10733 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 11593,11600 **** 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 --- 10750,10756 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 11606,11644 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 10762,10783 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 11663,11714 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 10802,10833 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 11719,11725 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 10838,10844 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 11728,11735 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 10847,10853 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 11753,11763 **** ac_cv_func_working_mktime=no else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Test program from Paul Eggert and Tony Leneis. */ #if TIME_WITH_SYS_TIME # include --- 10871,10878 ---- ac_cv_func_working_mktime=no else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Test program from Paul Eggert and Tony Leneis. */ #if TIME_WITH_SYS_TIME # include *************** *** 11770,11779 **** # endif #endif - #if HAVE_STDLIB_H - # include - #endif - #if HAVE_UNISTD_H # include #endif --- 10885,10890 ---- *************** *** 11786,11796 **** #undef putenv static time_t time_t_max; - static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ ! static char *tz_strings[] = { ! (char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) --- 10897,10906 ---- #undef putenv static time_t time_t_max; /* Values we'll use to set the TZ environment variable. */ ! static const char *const tz_strings[] = { ! (const char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) *************** *** 11821,11841 **** } static void ! mktime_test1 (now) time_t now; { struct tm *lt; if ((lt = localtime (&now)) && mktime (lt) != now) exit (1); ! } ! ! static void ! mktime_test (now) ! time_t now; ! { ! mktime_test1 (now); ! mktime_test1 ((time_t) (time_t_max - now)); ! mktime_test1 ((time_t) (time_t_min + now)); } static void --- 10931,10945 ---- } static void ! mktime_test (now) time_t now; { struct tm *lt; if ((lt = localtime (&now)) && mktime (lt) != now) exit (1); ! now = time_t_max - now; ! if ((lt = localtime (&now)) && mktime (lt) != now) ! exit (1); } static void *************** *** 11895,11903 **** for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) continue; time_t_max--; - if ((time_t) -1 < 0) - for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) - continue; delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { --- 10999,11004 ---- *************** *** 11906,11917 **** for (t = 0; t <= time_t_max - delta; t += delta) mktime_test (t); ! mktime_test ((time_t) 1); ! mktime_test ((time_t) (60 * 60)); ! mktime_test ((time_t) (60 * 60 * 24)); for (j = 1; 0 < j; j *= 2) ! bigtime_test (j); bigtime_test (j - 1); } irix_6_4_bug (); --- 11007,11017 ---- for (t = 0; t <= time_t_max - delta; t += delta) mktime_test (t); ! mktime_test ((time_t) 60 * 60); ! mktime_test ((time_t) 60 * 60 * 24); for (j = 1; 0 < j; j *= 2) ! bigtime_test (j); bigtime_test (j - 1); } irix_6_4_bug (); *************** *** 11934,11941 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) ac_cv_func_working_mktime=no fi --- 11034,11040 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_working_mktime=no fi *************** *** 11973,12024 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define getloadavg to an innocuous variant, in case declares getloadavg. ! For example, HP-UX 11i declares gettimeofday. */ ! #define getloadavg innocuous_getloadavg ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char getloadavg (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef getloadavg ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char getloadavg (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_getloadavg) || defined (__stub___getloadavg) choke me #else ! char (*f) () = getloadavg; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != getloadavg; ; return 0; } --- 11072,11103 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char getloadavg (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char getloadavg (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_getloadavg) || defined (__stub___getloadavg) choke me #else ! f = getloadavg; #endif ; return 0; } *************** *** 12029,12035 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11108,11114 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12038,12045 **** ac_cv_func_getloadavg=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_getloadavg=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11117,11123 ---- ac_cv_func_getloadavg=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_getloadavg=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12064,12115 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 11142,11173 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 12120,12126 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11178,11184 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12129,12136 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11187,11193 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12156,12166 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkstat $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 11213,11220 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lkstat $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 12183,12189 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11237,11243 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12192,12199 **** ac_cv_lib_kstat_kstat_open=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_kstat_kstat_open=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11246,11252 ---- ac_cv_lib_kstat_kstat_open=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_kstat_kstat_open=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12225,12235 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lelf $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 11278,11285 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lelf $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 12252,12258 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11302,11308 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12261,12268 **** ac_cv_lib_elf_elf_begin=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_elf_elf_begin=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11311,11317 ---- ac_cv_lib_elf_elf_begin=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_elf_elf_begin=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12284,12294 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkvm $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 11333,11340 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lkvm $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 12311,12317 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11357,11363 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12320,12327 **** ac_cv_lib_kvm_kvm_open=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_kvm_kvm_open=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11366,11372 ---- ac_cv_lib_kvm_kvm_open=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_kvm_kvm_open=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12342,12352 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 11387,11394 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 12369,12375 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11411,11417 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12378,12385 **** ac_cv_lib_util_getloadavg=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_util_getloadavg=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11420,11426 ---- ac_cv_lib_util_getloadavg=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_util_getloadavg=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12406,12416 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lgetloadavg $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 11447,11454 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lgetloadavg $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 12433,12439 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11471,11477 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12442,12449 **** ac_cv_lib_getloadavg_getloadavg=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_getloadavg_getloadavg=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11480,11486 ---- ac_cv_lib_getloadavg_getloadavg=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_getloadavg_getloadavg=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12471,12522 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 11508,11539 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 12527,12533 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11544,11550 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12536,12543 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11553,11559 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12571,12581 **** echo "$as_me:$LINENO: checking sys/dg_sys_info.h usability" >&5 echo $ECHO_N "checking sys/dg_sys_info.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 --- 11587,11594 ---- echo "$as_me:$LINENO: checking sys/dg_sys_info.h usability" >&5 echo $ECHO_N "checking sys/dg_sys_info.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 12585,12591 **** 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=$? --- 11598,11604 ---- 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=$? *************** *** 12594,12601 **** 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.$ac_objext conftest.$ac_ext --- 11607,11613 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 12606,12616 **** echo "$as_me:$LINENO: checking sys/dg_sys_info.h presence" >&5 echo $ECHO_N "checking sys/dg_sys_info.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 --- 11618,11625 ---- echo "$as_me:$LINENO: checking sys/dg_sys_info.h presence" >&5 echo $ECHO_N "checking sys/dg_sys_info.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 12633,12640 **** 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 --- 11642,11648 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 12646,12677 **** yes:no ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.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 sys/dg_sys_info.h" >&5 echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 --- 11654,11668 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5 echo $ECHO_N "checking for sys/dg_sys_info.h... $ECHO_C" >&6 *************** *** 12700,12710 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldgc $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 11691,11698 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-ldgc $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 12727,12733 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11715,11721 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12736,12743 **** ac_cv_lib_dgc_dg_sys_info=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_dgc_dg_sys_info=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11724,11730 ---- ac_cv_lib_dgc_dg_sys_info=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_dgc_dg_sys_info=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 12771,12781 **** echo "$as_me:$LINENO: checking locale.h usability" >&5 echo $ECHO_N "checking locale.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 --- 11758,11765 ---- echo "$as_me:$LINENO: checking locale.h usability" >&5 echo $ECHO_N "checking locale.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 12785,12791 **** 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=$? --- 11769,11775 ---- 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=$? *************** *** 12794,12801 **** 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.$ac_objext conftest.$ac_ext --- 11778,11784 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 12806,12816 **** echo "$as_me:$LINENO: checking locale.h presence" >&5 echo $ECHO_N "checking locale.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 --- 11789,11796 ---- echo "$as_me:$LINENO: checking locale.h presence" >&5 echo $ECHO_N "checking locale.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 12833,12840 **** 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 --- 11813,11819 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 12846,12877 **** yes:no ) { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: locale.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: locale.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: locale.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: locale.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 locale.h" >&5 echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 --- 11825,11839 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: locale.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: locale.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: locale.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: locale.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: locale.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: locale.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: locale.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for locale.h" >&5 echo $ECHO_N "checking for locale.h... $ECHO_C" >&6 *************** *** 12896,12947 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 11858,11889 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 12952,12958 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 11894,11900 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 12961,12968 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 11903,11909 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 13004,13014 **** echo "$as_me:$LINENO: checking inq_stats/cpustats.h usability" >&5 echo $ECHO_N "checking inq_stats/cpustats.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 --- 11945,11952 ---- echo "$as_me:$LINENO: checking inq_stats/cpustats.h usability" >&5 echo $ECHO_N "checking inq_stats/cpustats.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 13018,13024 **** 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=$? --- 11956,11962 ---- 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=$? *************** *** 13027,13034 **** 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.$ac_objext conftest.$ac_ext --- 11965,11971 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 13039,13049 **** echo "$as_me:$LINENO: checking inq_stats/cpustats.h presence" >&5 echo $ECHO_N "checking inq_stats/cpustats.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 --- 11976,11983 ---- echo "$as_me:$LINENO: checking inq_stats/cpustats.h presence" >&5 echo $ECHO_N "checking inq_stats/cpustats.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 13066,13073 **** 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 --- 12000,12006 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 13079,13110 **** yes:no ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.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 inq_stats/cpustats.h" >&5 echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 --- 12012,12026 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: inq_stats/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: inq_stats/cpustats.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for inq_stats/cpustats.h" >&5 echo $ECHO_N "checking for inq_stats/cpustats.h... $ECHO_C" >&6 *************** *** 13148,13158 **** echo "$as_me:$LINENO: checking sys/cpustats.h usability" >&5 echo $ECHO_N "checking sys/cpustats.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 --- 12064,12071 ---- echo "$as_me:$LINENO: checking sys/cpustats.h usability" >&5 echo $ECHO_N "checking sys/cpustats.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 13162,13168 **** 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=$? --- 12075,12081 ---- 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=$? *************** *** 13171,13178 **** 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.$ac_objext conftest.$ac_ext --- 12084,12090 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 13183,13193 **** echo "$as_me:$LINENO: checking sys/cpustats.h presence" >&5 echo $ECHO_N "checking sys/cpustats.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 --- 12095,12102 ---- echo "$as_me:$LINENO: checking sys/cpustats.h presence" >&5 echo $ECHO_N "checking sys/cpustats.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 13210,13217 **** 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 --- 12119,12125 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 13223,13254 **** yes:no ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: sys/cpustats.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 sys/cpustats.h" >&5 echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 --- 12131,12145 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: sys/cpustats.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: sys/cpustats.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: sys/cpustats.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for sys/cpustats.h" >&5 echo $ECHO_N "checking for sys/cpustats.h... $ECHO_C" >&6 *************** *** 13289,13299 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 12180,12187 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 13303,13309 **** 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=$? --- 12191,12197 ---- 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=$? *************** *** 13312,13319 **** 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.$ac_objext conftest.$ac_ext --- 12200,12206 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 13324,13334 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 12211,12218 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 13351,13358 **** 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 --- 12235,12241 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 13364,13402 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 12247,12268 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 13430,13440 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 12296,12303 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 13444,13450 **** 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=$? --- 12307,12313 ---- 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=$? *************** *** 13453,13460 **** 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.$ac_objext conftest.$ac_ext --- 12316,12322 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 13465,13475 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 12327,12334 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 13492,13499 **** 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 --- 12351,12357 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 13505,13543 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 12363,12384 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 13553,13563 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int --- 12394,12401 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int *************** *** 13576,13582 **** 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=$? --- 12414,12420 ---- 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=$? *************** *** 13585,13598 **** ac_cv_member_struct_nlist_n_un_n_name=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int --- 12423,12432 ---- ac_cv_member_struct_nlist_n_un_n_name=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int *************** *** 13611,13617 **** 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=$? --- 12445,12451 ---- 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=$? *************** *** 13620,13627 **** ac_cv_member_struct_nlist_n_un_n_name=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_member_struct_nlist_n_un_n_name=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 12454,12460 ---- ac_cv_member_struct_nlist_n_un_n_name=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_member_struct_nlist_n_un_n_name=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 13659,13669 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include "$srcdir/$ac_config_libobj_dir/getloadavg.c" #ifdef LDAV_PRIVILEGED Yowza Am I SETGID yet --- 12492,12499 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include "$srcdir/$ac_config_libobj_dir/getloadavg.c" #ifdef LDAV_PRIVILEGED Yowza Am I SETGID yet *************** *** 13702,13708 **** # If we got an error (system does not support symlinks), try without -L. test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` ac_cv_group_kmem=`echo $ac_ls_output \ ! | sed -ne 's/[ ][ ]*/ /g; s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/; / /s/.* //;p;'` --- 12532,12538 ---- # If we got an error (system does not support symlinks), try without -L. test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem` ac_cv_group_kmem=`echo $ac_ls_output \ ! | sed -ne 's/[ ][ ]*/ /g; s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\) *.*/\1/; / /s/.* //;p;'` *************** *** 13728,13738 **** while :; do ac_cv_sys_largefile_source=no cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 12558,12565 ---- while :; do ac_cv_sys_largefile_source=no cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 13748,13754 **** 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=$? --- 12575,12581 ---- 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=$? *************** *** 13757,13772 **** break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include int --- 12584,12595 ---- break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #define _LARGEFILE_SOURCE 1 #include int *************** *** 13783,13789 **** 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=$? --- 12606,12612 ---- 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=$? *************** *** 13792,13799 **** ac_cv_sys_largefile_source=1; break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext break --- 12615,12621 ---- ac_cv_sys_largefile_source=1; break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext break *************** *** 13819,13829 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 12641,12648 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 13839,13845 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12658,12664 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 13848,13855 **** ac_cv_func_fseeko=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_fseeko=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 12667,12673 ---- ac_cv_func_fseeko=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_fseeko=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 13872,13882 **** else # Use it with a single arg. 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 int main () --- 12690,12697 ---- else # Use it with a single arg. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default int main () *************** *** 13892,13898 **** 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=$? --- 12707,12713 ---- 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=$? *************** *** 13901,13908 **** ac_cv_func_getpgrp_void=no else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_getpgrp_void=yes fi rm -f conftest.$ac_objext conftest.$ac_ext --- 12716,12722 ---- ac_cv_func_getpgrp_void=no else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_getpgrp_void=yes fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 13929,13980 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 12743,12774 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 13985,13991 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12779,12785 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 13994,14001 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 12788,12794 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14017,14027 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 12810,12817 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14044,14050 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12834,12840 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14053,14060 **** ac_cv_lib_intl_strftime=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_intl_strftime=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 12843,12849 ---- ac_cv_lib_intl_strftime=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_intl_strftime=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14085,14136 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 12874,12905 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 14141,14147 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12910,12916 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14150,14157 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 12919,12925 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14178,14229 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 12946,12977 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 14234,14240 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 12982,12988 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14243,14250 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 12991,12997 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14273,14283 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13020,13027 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14300,14306 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13044,13050 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14309,14316 **** ac_cv_lib_ncurses_tparm=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_ncurses_tparm=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13053,13059 ---- ac_cv_lib_ncurses_tparm=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_ncurses_tparm=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14338,14389 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define res_send to an innocuous variant, in case declares res_send. ! For example, HP-UX 11i declares gettimeofday. */ ! #define res_send innocuous_res_send ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char res_send (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef res_send ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char res_send (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_res_send) || defined (__stub___res_send) choke me #else ! char (*f) () = res_send; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != res_send; ; return 0; } --- 13081,13112 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char res_send (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char res_send (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_res_send) || defined (__stub___res_send) choke me #else ! f = res_send; #endif ; return 0; } *************** *** 14394,14400 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13117,13123 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14403,14410 **** ac_cv_func_res_send=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13126,13132 ---- ac_cv_func_res_send=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14420,14471 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define __res_send to an innocuous variant, in case declares __res_send. ! For example, HP-UX 11i declares gettimeofday. */ ! #define __res_send innocuous___res_send ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char __res_send (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef __res_send ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char __res_send (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub___res_send) || defined (__stub_____res_send) choke me #else ! char (*f) () = __res_send; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != __res_send; ; return 0; } --- 13142,13173 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char __res_send (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char __res_send (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub___res_send) || defined (__stub_____res_send) choke me #else ! f = __res_send; #endif ; return 0; } *************** *** 14476,14482 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13178,13184 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14485,14492 **** ac_cv_func___res_send=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func___res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13187,13193 ---- ac_cv_func___res_send=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func___res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14504,14514 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13205,13212 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14531,14537 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13229,13235 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14540,14547 **** ac_cv_lib_resolv_res_send=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_resolv_res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13238,13244 ---- ac_cv_lib_resolv_res_send=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_resolv_res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14560,14570 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13257,13264 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14587,14593 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13281,13287 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14596,14603 **** ac_cv_lib_resolv___res_send=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_resolv___res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13290,13296 ---- ac_cv_lib_resolv___res_send=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_resolv___res_send=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14631,14682 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define hes_getmailhost to an innocuous variant, in case declares hes_getmailhost. ! For example, HP-UX 11i declares gettimeofday. */ ! #define hes_getmailhost innocuous_hes_getmailhost ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char hes_getmailhost (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef hes_getmailhost ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char hes_getmailhost (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_hes_getmailhost) || defined (__stub___hes_getmailhost) choke me #else ! char (*f) () = hes_getmailhost; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != hes_getmailhost; ; return 0; } --- 13324,13355 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char hes_getmailhost (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char hes_getmailhost (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_hes_getmailhost) || defined (__stub___hes_getmailhost) choke me #else ! f = hes_getmailhost; #endif ; return 0; } *************** *** 14687,14693 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13360,13366 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14696,14703 **** ac_cv_func_hes_getmailhost=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_hes_getmailhost=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13369,13375 ---- ac_cv_func_hes_getmailhost=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_hes_getmailhost=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14715,14725 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lhesiod $RESOLVLIB $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13387,13394 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lhesiod $RESOLVLIB $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14742,14748 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13411,13417 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14751,14758 **** ac_cv_lib_hesiod_hes_getmailhost=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_hesiod_hes_getmailhost=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13420,13426 ---- ac_cv_lib_hesiod_hes_getmailhost=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_hesiod_hes_getmailhost=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14785,14795 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lcom_err $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13453,13460 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lcom_err $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14812,14818 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13477,13483 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14821,14828 **** ac_cv_lib_com_err_com_err=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_com_err_com_err=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13486,13492 ---- ac_cv_lib_com_err_com_err=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_com_err_com_err=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14848,14858 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lk5crypto $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13512,13519 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lk5crypto $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14875,14881 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13536,13542 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14884,14891 **** ac_cv_lib_k5crypto_mit_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_k5crypto_mit_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13545,13551 ---- ac_cv_lib_k5crypto_mit_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_k5crypto_mit_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14911,14921 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13571,13578 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 14938,14944 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13595,13601 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 14947,14954 **** ac_cv_lib_crypto_mit_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_crypto_mit_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13604,13610 ---- ac_cv_lib_crypto_mit_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_crypto_mit_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 14974,14984 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb5 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13630,13637 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb5 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 15001,15007 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13654,13660 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15010,15017 **** ac_cv_lib_krb5_krb5_init_context=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_krb5_krb5_init_context=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13663,13669 ---- ac_cv_lib_krb5_krb5_init_context=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_krb5_krb5_init_context=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 15038,15048 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldes425 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13690,13697 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-ldes425 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 15065,15071 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13714,13720 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15074,15081 **** ac_cv_lib_des425_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_des425_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13723,13729 ---- ac_cv_lib_des425_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_des425_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 15100,15110 **** ac_check_lib_save_LIBS=$LIBS LIBS="-ldes $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13748,13755 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-ldes $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 15127,15133 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13772,13778 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15136,15143 **** ac_cv_lib_des_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_des_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13781,13787 ---- ac_cv_lib_des_des_cbc_encrypt=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_des_des_cbc_encrypt=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 15165,15175 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb4 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13809,13816 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb4 $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 15192,15198 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13833,13839 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15201,15208 **** ac_cv_lib_krb4_krb_get_cred=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_krb4_krb_get_cred=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13842,13848 ---- ac_cv_lib_krb4_krb_get_cred=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_krb4_krb_get_cred=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 15227,15237 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 13867,13874 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 15254,15260 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 13891,13897 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 15263,15270 **** ac_cv_lib_krb_krb_get_cred=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_krb_krb_get_cred=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 13900,13906 ---- ac_cv_lib_krb_krb_get_cred=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_krb_krb_get_cred=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 15303,15313 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 13939,13946 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 15317,15323 **** 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=$? --- 13950,13956 ---- 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=$? *************** *** 15326,15333 **** 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.$ac_objext conftest.$ac_ext --- 13959,13965 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 15338,15348 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 13970,13977 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 15365,15372 **** 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 --- 13994,14000 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 15378,15416 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14006,14027 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15443,15453 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 14054,14061 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 15457,15463 **** 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=$? --- 14065,14071 ---- 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=$? *************** *** 15466,15473 **** 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.$ac_objext conftest.$ac_ext --- 14074,14080 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 15478,15488 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 14085,14092 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 15505,15512 **** 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 --- 14109,14115 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 15518,15556 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14121,14142 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15579,15589 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 14165,14172 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 15593,15599 **** 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=$? --- 14176,14182 ---- 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=$? *************** *** 15602,15609 **** 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.$ac_objext conftest.$ac_ext --- 14185,14191 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 15614,15624 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 14196,14203 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 15641,15648 **** 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 --- 14220,14226 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 15654,15692 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14232,14253 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15715,15725 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 14276,14283 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 15729,15735 **** 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=$? --- 14287,14293 ---- 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=$? *************** *** 15738,15745 **** 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.$ac_objext conftest.$ac_ext --- 14296,14302 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 15750,15760 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 14307,14314 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 15777,15784 **** 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 --- 14331,14337 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 15790,15828 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14343,14364 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15862,15872 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 14398,14405 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 15876,15882 **** 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=$? --- 14409,14415 ---- 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=$? *************** *** 15885,15892 **** 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.$ac_objext conftest.$ac_ext --- 14418,14424 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 15897,15907 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 14429,14436 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 15924,15931 **** 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 --- 14453,14459 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 15937,15975 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14465,14486 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 15998,16008 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 14509,14516 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 16012,16018 **** 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=$? --- 14520,14526 ---- 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=$? *************** *** 16021,16028 **** 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.$ac_objext conftest.$ac_ext --- 14529,14535 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 16033,16043 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 14540,14547 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 16060,16067 **** 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 --- 14564,14570 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 16073,16111 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14576,14597 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 16134,16144 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 14620,14627 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 16148,16154 **** 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=$? --- 14631,14637 ---- 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=$? *************** *** 16157,16164 **** 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.$ac_objext conftest.$ac_ext --- 14640,14646 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 16169,16179 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 14651,14658 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 16196,16203 **** 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 --- 14675,14681 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 16209,16247 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14687,14708 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 16282,16292 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 14743,14750 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 16296,16302 **** 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=$? --- 14754,14760 ---- 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=$? *************** *** 16305,16312 **** 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.$ac_objext conftest.$ac_ext --- 14763,14769 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 16317,16327 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 14774,14781 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 16344,16351 **** 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 --- 14798,14804 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 16357,16395 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 14810,14831 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 16417,16427 **** ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus --- 14853,14860 ---- ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus *************** *** 16444,16450 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 14877,14883 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 16453,16460 **** ac_cv_lib_intl_dgettext=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_intl_dgettext=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 14886,14892 ---- ac_cv_lib_intl_dgettext=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_intl_dgettext=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 16483,16493 **** emacs_cv_localtime_cache=yes else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include extern char **environ; unset_TZ () --- 14915,14922 ---- emacs_cv_localtime_cache=yes else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include extern char **environ; unset_TZ () *************** *** 16533,16540 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) emacs_cv_localtime_cache=yes fi --- 14962,14968 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) emacs_cv_localtime_cache=yes fi *************** *** 16567,16618 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 14995,15026 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 16623,16629 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15031,15037 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 16632,16639 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 15040,15046 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 16655,16665 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #ifdef TIME_WITH_SYS_TIME #include --- 15062,15069 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME #include *************** *** 16686,16692 **** 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=$? --- 15090,15096 ---- 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=$? *************** *** 16695,16702 **** emacs_cv_gettimeofday_two_arguments=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_gettimeofday_two_arguments=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 15099,15105 ---- emacs_cv_gettimeofday_two_arguments=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_gettimeofday_two_arguments=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 16720,16730 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include <$ac_cv_struct_tm> --- 15123,15130 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include <$ac_cv_struct_tm> *************** *** 16745,16751 **** 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=$? --- 15145,15151 ---- 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=$? *************** *** 16754,16767 **** ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include <$ac_cv_struct_tm> --- 15154,15163 ---- ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #include <$ac_cv_struct_tm> *************** *** 16782,16788 **** 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=$? --- 15178,15184 ---- 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=$? *************** *** 16791,16798 **** ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_member_struct_tm_tm_zone=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 15187,15193 ---- ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_member_struct_tm_tm_zone=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 16823,16833 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #ifndef tzname /* For SGI. */ extern char *tzname[]; /* RS6000 and others reject char **tzname. */ --- 15218,15225 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include #ifndef tzname /* For SGI. */ extern char *tzname[]; /* RS6000 and others reject char **tzname. */ *************** *** 16847,16853 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15239,15245 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 16856,16863 **** ac_cv_var_tzname=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_var_tzname=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 15248,15254 ---- ac_cv_var_tzname=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_var_tzname=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 16881,16891 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 15272,15279 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 16901,16907 **** 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=$? --- 15289,15295 ---- 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=$? *************** *** 16911,16921 **** emacs_cv_struct_timezone=yes else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #ifdef TIME_WITH_SYS_TIME #include --- 15299,15306 ---- emacs_cv_struct_timezone=yes else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #ifdef TIME_WITH_SYS_TIME #include *************** *** 16948,16955 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) emacs_cv_struct_timezone=no fi --- 15333,15339 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) emacs_cv_struct_timezone=no fi *************** *** 16957,16964 **** fi else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_struct_timezone=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 15341,15347 ---- fi else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_struct_timezone=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 16974,17025 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define socket to an innocuous variant, in case declares socket. ! For example, HP-UX 11i declares gettimeofday. */ ! #define socket innocuous_socket ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char socket (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef socket ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char socket (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_socket) || defined (__stub___socket) choke me #else ! char (*f) () = socket; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != socket; ; return 0; } --- 15357,15388 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char socket (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char socket (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_socket) || defined (__stub___socket) choke me #else ! f = socket; #endif ; return 0; } *************** *** 17030,17036 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15393,15399 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 17039,17046 **** ac_cv_func_socket=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_socket=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 15402,15408 ---- ac_cv_func_socket=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_socket=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 17067,17077 **** echo "$as_me:$LINENO: checking netinet/in.h usability" >&5 echo $ECHO_N "checking netinet/in.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 --- 15429,15436 ---- echo "$as_me:$LINENO: checking netinet/in.h usability" >&5 echo $ECHO_N "checking netinet/in.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 17081,17087 **** 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=$? --- 15440,15446 ---- 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=$? *************** *** 17090,17097 **** 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.$ac_objext conftest.$ac_ext --- 15449,15455 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 17102,17112 **** echo "$as_me:$LINENO: checking netinet/in.h presence" >&5 echo $ECHO_N "checking netinet/in.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 --- 15460,15467 ---- echo "$as_me:$LINENO: checking netinet/in.h presence" >&5 echo $ECHO_N "checking netinet/in.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 17129,17136 **** 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 --- 15484,15490 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 17142,17173 **** yes:no ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: netinet/in.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: netinet/in.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: netinet/in.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: netinet/in.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: netinet/in.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: netinet/in.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 netinet/in.h" >&5 echo $ECHO_N "checking for netinet/in.h... $ECHO_C" >&6 --- 15496,15510 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: netinet/in.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: netinet/in.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: netinet/in.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: netinet/in.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: netinet/in.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: netinet/in.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for netinet/in.h" >&5 echo $ECHO_N "checking for netinet/in.h... $ECHO_C" >&6 *************** *** 17202,17212 **** echo "$as_me:$LINENO: checking arpa/inet.h usability" >&5 echo $ECHO_N "checking arpa/inet.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 --- 15539,15546 ---- echo "$as_me:$LINENO: checking arpa/inet.h usability" >&5 echo $ECHO_N "checking arpa/inet.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include _ACEOF *************** *** 17216,17222 **** 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=$? --- 15550,15556 ---- 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=$? *************** *** 17225,17232 **** 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.$ac_objext conftest.$ac_ext --- 15559,15565 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 17237,17247 **** echo "$as_me:$LINENO: checking arpa/inet.h presence" >&5 echo $ECHO_N "checking arpa/inet.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 --- 15570,15577 ---- echo "$as_me:$LINENO: checking arpa/inet.h presence" >&5 echo $ECHO_N "checking arpa/inet.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 17264,17271 **** 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 --- 15594,15600 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 17277,17308 **** yes:no ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: arpa/inet.h: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: arpa/inet.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: arpa/inet.h: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: arpa/inet.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: arpa/inet.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 arpa/inet.h" >&5 echo $ECHO_N "checking for arpa/inet.h... $ECHO_C" >&6 --- 15606,15620 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: arpa/inet.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: arpa/inet.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: arpa/inet.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: arpa/inet.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: arpa/inet.h: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for arpa/inet.h" >&5 echo $ECHO_N "checking for arpa/inet.h... $ECHO_C" >&6 *************** *** 17360,17370 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 int main () --- 15672,15679 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default int main () *************** *** 17383,17389 **** 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=$? --- 15692,15698 ---- 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=$? *************** *** 17392,17399 **** ac_cv_type_pid_t=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_type_pid_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 15701,15707 ---- ac_cv_type_pid_t=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_type_pid_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 17428,17438 **** echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF --- 15736,15743 ---- echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default #include <$ac_header> _ACEOF *************** *** 17442,17448 **** 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=$? --- 15747,15753 ---- 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=$? *************** *** 17451,17458 **** 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.$ac_objext conftest.$ac_ext --- 15756,15762 ---- ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 17463,17473 **** echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header 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 <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 --- 15767,15774 ---- echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 *************** *** 17490,17497 **** 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 --- 15791,15797 ---- ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext *************** *** 17503,17541 **** yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ! ac_header_preproc=yes ! ;; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ! echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ! echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ! echo "$as_me: WARNING: $ac_header: 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 $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --- 15803,15824 ---- yes:no ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; no:yes ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; esac echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! eval "$as_ac_Header=$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 *************** *** 17561,17612 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* Define $ac_func to an innocuous variant, in case declares $ac_func. ! For example, HP-UX 11i declares gettimeofday. */ ! #define $ac_func innocuous_$ac_func ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! ! #undef $ac_func ! /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" - { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif - int - main () - { - return f != $ac_func; ; return 0; } --- 15844,15875 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); + char (*f) (); + + int + main () + { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else ! f = $ac_func; #endif ; return 0; } *************** *** 17617,17623 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 15880,15886 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 17626,17633 **** eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 15889,15895 ---- eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 17660,17668 **** /* Some systems only have a dummy stub for fork() */ int main () { ! if (fork() < 0) ! exit (1); ! exit (0); } _ACEOF rm -f conftest$ac_exeext --- 15922,15930 ---- /* Some systems only have a dummy stub for fork() */ int main () { ! if (fork() < 0) ! exit (1); ! exit (0); } _ACEOF rm -f conftest$ac_exeext *************** *** 17680,17687 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) ac_cv_func_fork_works=no fi --- 15942,15948 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_fork_works=no fi *************** *** 17718,17734 **** ac_cv_func_vfork_works=cross else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ #include - #include #include #include - #include #if HAVE_UNISTD_H # include #endif --- 15979,15990 ---- ac_cv_func_vfork_works=cross else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" /* Thanks to Paul Eggert for this test. */ #include #include #include #if HAVE_UNISTD_H # include #endif *************** *** 17741,17747 **** (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ ! static void #ifdef __cplusplus sparc_address_test (int arg) # else --- 15997,16003 ---- (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ ! static #ifdef __cplusplus sparc_address_test (int arg) # else *************** *** 17769,17775 **** pid_t parent = getpid (); pid_t child; ! sparc_address_test (0); child = vfork (); --- 16025,16031 ---- pid_t parent = getpid (); pid_t child; ! sparc_address_test (); child = vfork (); *************** *** 17834,17841 **** else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ( exit $ac_status ) ac_cv_func_vfork_works=no fi --- 16090,16096 ---- else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_vfork_works=no fi *************** *** 17880,17890 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int main () --- 16135,16142 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" #include int main () *************** *** 17900,17906 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? --- 16152,16158 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? *************** *** 17909,17916 **** emacs_cv_langinfo_codeset=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_langinfo_codeset=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext --- 16161,16167 ---- emacs_cv_langinfo_codeset=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_langinfo_codeset=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext *************** *** 17932,17942 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 int main () --- 16183,16190 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default int main () *************** *** 17955,17961 **** 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=$? --- 16203,16209 ---- 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=$? *************** *** 17964,17971 **** ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_type_size_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 16212,16218 ---- ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 17988,17998 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 int --- 16235,16242 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" $ac_includes_default # include int *************** *** 18009,18015 **** 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=$? --- 16253,16259 ---- 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=$? *************** *** 18018,18025 **** ac_cv_type_mbstate_t=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_type_mbstate_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 16262,16268 ---- ac_cv_type_mbstate_t=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_type_mbstate_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 18046,18056 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ void fred (int *restrict x); int main () --- 16289,16296 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" void fred (int *restrict x); int main () *************** *** 18066,18072 **** 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=$? --- 16306,16312 ---- 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=$? *************** *** 18075,18088 **** emacs_cv_c_restrict=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ void fred (int *__restrict x); int main () --- 16315,16324 ---- emacs_cv_c_restrict=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" void fred (int *__restrict x); int main () *************** *** 18098,18104 **** 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=$? --- 16334,16340 ---- 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=$? *************** *** 18107,18114 **** emacs_cv_c_restrict=__restrict else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_c_restrict=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 16343,16349 ---- emacs_cv_c_restrict=__restrict else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_c_restrict=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 18136,18146 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ void fred (int x[__restrict]); int main () --- 16371,16378 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" void fred (int x[__restrict]); int main () *************** *** 18156,18162 **** 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=$? --- 16388,16394 ---- 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=$? *************** *** 18165,18172 **** emacs_cv_c_restrict_arr=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! emacs_cv_c_restrict_arr=no fi rm -f conftest.$ac_objext conftest.$ac_ext --- 16397,16403 ---- emacs_cv_c_restrict_arr=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 emacs_cv_c_restrict_arr=no fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 18380,18390 **** ## C preprocessor. cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ yes..yes _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | --- 16611,16618 ---- ## C preprocessor. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! #include "confdefs.h" yes..yes _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | *************** *** 18426,18438 **** # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ ! "s/'/'\\\\''/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | --- 16654,16666 ---- # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ ! "s/'/'\\\\''/g; ! s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ ! "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | *************** *** 18443,18449 **** t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache ! if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file --- 16671,16677 ---- t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache ! if cmp -s $cache_file confcache; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file *************** *** 18462,18474 **** # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ! ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; ! s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; ! s/^[^=]*=[ ]*$//; }' fi --- 16690,16702 ---- # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ! ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; ! s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; ! s/^[^=]*=[ ]*$//; }' fi *************** *** 18479,18485 **** for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | ! sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' --- 16707,16713 ---- for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | ! sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' *************** *** 18503,18510 **** # configure, is in config.log if it exists. debug=false - ac_cs_recheck=false - ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF --- 16731,16736 ---- *************** *** 18525,18531 **** fi # Support unset when possible. ! if (as_foo=foo; unset as_foo) >/dev/null 2>&1; then as_unset=unset else as_unset=false --- 16751,16757 ---- fi # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then as_unset=unset else as_unset=false *************** *** 18539,18550 **** PS4='+ ' # NLS nuisances. ! for as_var in \ ! LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ ! LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ ! LC_TELEPHONE LC_TIME do ! if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var --- 16765,16773 ---- PS4='+ ' # NLS nuisances. ! for as_var in LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE LC_NUMERIC LC_MESSAGES LC_TIME do ! if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var *************** *** 18588,18602 **** # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then ! echo "#! /bin/sh" >conf$$.sh ! echo "exit 0" >>conf$$.sh ! chmod +x conf$$.sh ! if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi ! rm -f conf$$.sh fi --- 16811,16825 ---- # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then ! echo "#! /bin/sh" >conftest.sh ! echo "exit 0" >>conftest.sh ! chmod +x conftest.sh ! if (PATH="/nonexistent;."; conftest.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi ! rm -f conftest.sh fi *************** *** 18759,18765 **** cat >&5 <<_CSEOF This file was extended by $as_me, which was ! generated by GNU Autoconf 2.57a. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS --- 16982,16988 ---- cat >&5 <<_CSEOF This file was extended by $as_me, which was ! generated by GNU Autoconf 2.54. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS *************** *** 18799,18811 **** -h, --help print this help, then exit -V, --version print version number, then exit - -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] ! instantiate the configuration file FILE --header=FILE[:TEMPLATE] ! instantiate the configuration header FILE Configuration files: $config_files --- 17022,17033 ---- -h, --help print this help, then exit -V, --version print version number, then exit -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] ! instantiate the configuration file FILE --header=FILE[:TEMPLATE] ! instantiate the configuration header FILE Configuration files: $config_files *************** *** 18822,18831 **** cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status ! configured by $0, generated by GNU Autoconf 2.57a, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ! Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir --- 17044,17054 ---- cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status ! configured by $0, generated by GNU Autoconf 2.54, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 ! Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir *************** *** 18858,18866 **** case $ac_option in # Handling of the options. _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ! ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) --- 17081,17092 ---- case $ac_option in # Handling of the options. _ACEOF ! cat >>$CONFIG_STATUS <<_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ! echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion" ! exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;; ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) *************** *** 18882,18890 **** $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 --- 17108,17113 ---- *************** *** 18899,18918 **** shift done - ac_configure_extra_args= - - if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" - fi - - _ACEOF - cat >>$CONFIG_STATUS <<_ACEOF - if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - fi - _ACEOF cat >>$CONFIG_STATUS <<_ACEOF --- 17122,17127 ---- *************** *** 18959,18967 **** test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi - # Have a temporary directory for convenience. Make it in the build tree - # simply because there is no reason to put it here, and in addition, - # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { --- 17168,17173 ---- *************** *** 18970,18986 **** } # Create a (secure) tmp directory for tmp files. ! { ! tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { ! tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { ! echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } --- 17176,17192 ---- } # Create a (secure) tmp directory for tmp files. ! : ${TMPDIR=/tmp} { ! tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { ! tmp=$TMPDIR/cs$$-$RANDOM (umask 077 && mkdir $tmp) } || { ! echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } *************** *** 19116,19124 **** (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ! ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ! ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end --- 17322,17330 ---- (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ! ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ! ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end *************** *** 19136,19156 **** # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 17342,17362 ---- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19166,19175 **** as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 17372,17381 ---- as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19234,19240 **** configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. --- 17440,17446 ---- configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. *************** *** 19243,19266 **** case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo "$f";; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo "$f" ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo "$srcdir/$f" ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } _ACEOF --- 17449,17472 ---- case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo $f;; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo $f ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo $srcdir/$f ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } _ACEOF *************** *** 19302,19313 **** # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' --- 17508,17519 ---- # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ! ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ! ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ! ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' *************** *** 19316,19326 **** # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac --- 17522,17532 ---- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin ! cat >$tmp/stdin ! ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ! ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac *************** *** 19334,19362 **** case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! # Do quote $f, to prevent DOS paths from being IFS'd. ! echo "$f";; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo "$f" ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo "$srcdir/$f" ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. ! sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF --- 17540,17567 ---- case $f in -) echo $tmp/stdin ;; [\\/$]*) ! # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! echo $f;; *) # Relative ! if test -f "$f"; then ! # Build tree ! echo $f ! elif test -f "$srcdir/$f"; then ! # Source tree ! echo $srcdir/$f ! else ! # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } ! fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. ! sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF *************** *** 19379,19387 **** s,[\\$`],\\&,g t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end ! s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times --- 17584,17592 ---- s,[\\$`],\\&,g t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end ! s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times *************** *** 19395,19407 **** # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF ! s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail --- 17600,17612 ---- # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF ! s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail *************** *** 19410,19416 **** # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. ! echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS --- 17615,17621 ---- # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. ! echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS *************** *** 19437,19443 **** # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' ! echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS --- 17642,17648 ---- # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' ! echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS *************** *** 19465,19480 **** cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then ! if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 17670,17685 ---- cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then ! if cmp -s $ac_file $tmp/config.h 2>/dev/null; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_file" : 'X\(//\)[^/]' \| \ ! X"$ac_file" : 'X\(//\)$' \| \ ! X"$ac_file" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19490,19499 **** as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 17695,17704 ---- as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19525,19534 **** ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_dest" : 'X\(//\)[^/]' \| \ ! X"$ac_dest" : 'X\(//\)$' \| \ ! X"$ac_dest" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } --- 17730,17739 ---- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$ac_dest" : 'X\(//\)[^/]' \| \ ! X"$ac_dest" : 'X\(//\)$' \| \ ! X"$ac_dest" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } *************** *** 19666,19676 **** # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null ! $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. --- 17871,17878 ---- # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: exec 5>/dev/null ! $SHELL $CONFIG_STATUS || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. From MAILER-DAEMON Tue Jul 22 13:37:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f12Q-0000EH-6E for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:34:58 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f0zZ-0007FS-RQ for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:32:01 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f0zD-00077G-I3 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:31:39 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f0z0-0006zr-VA for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:31:26 -0400 Received: from fx by subversions.gnu.org with local (Exim 4.20) id 19f0y0-0008R3-UM for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:30:24 -0400 To: emacs-diffs@gnu.org Message-Id: From: Dave Love Date: Tue, 22 Jul 2003 13:30:24 -0400 Subject: [Emacs-diffs] Changes to emacs/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: fx@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:34:56 -0000 Index: emacs/ChangeLog diff -c emacs/ChangeLog:1.336 emacs/ChangeLog:1.337 *** emacs/ChangeLog:1.336 Tue Jul 15 04:07:27 2003 --- emacs/ChangeLog Tue Jul 22 13:30:24 2003 *************** *** 1,3 **** --- 1,10 ---- + 2003-07-22 Dave Love + + * configure.in: Make XRegisterIMInstantiateCallback test depend on + HAVE_X11, not with_xim. + (HAVE_CRTIN): Provide template. + : Test for png.h and libpng/png.h. + 2003-07-15 Andreas Schwab * configure.in: Temporarily leave quoting for AC_DEFINE. From MAILER-DAEMON Tue Jul 22 13:38:56 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f12L-000089-FG for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:34:53 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f11x-0008K2-K6 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:34:29 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f0zL-00078i-FA for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:31:47 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f0yY-0006xp-JW for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:30:58 -0400 Received: from fx by subversions.gnu.org with local (Exim 4.20) id 19f0xY-0008Nl-96 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:29:56 -0400 To: emacs-diffs@gnu.org Message-Id: From: Dave Love Date: Tue, 22 Jul 2003 13:29:56 -0400 Subject: [Emacs-diffs] Changes to emacs/configure.in X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: fx@gnu.org List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:34:46 -0000 Index: emacs/configure.in diff -c emacs/configure.in:1.345 emacs/configure.in:1.346 *** emacs/configure.in:1.345 Sun Jul 20 19:38:20 2003 --- emacs/configure.in Tue Jul 22 13:29:56 2003 *************** *** 227,234 **** *-*-netbsd* ) opsys=netbsd if test -f /usr/lib/crti.o; then] ! dnl Leave quotation here temporarily ! AC_DEFINE(HAVE_CRTIN) [ fi case "${canonical}" in --- 227,235 ---- *-*-netbsd* ) opsys=netbsd if test -f /usr/lib/crti.o; then] ! dnl The close and open brackets here are because this section is quoted -- ! dnl see the `changequote' comment above. ! AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.]) [ fi case "${canonical}" in *************** *** 2063,2068 **** --- 2064,2071 ---- if test "$GCC" = yes; then CFLAGS="$CFLAGS --pedantic-errors" fi + fi + if test "${HAVE_X11}" = "yes"; then AC_TRY_COMPILE([ #include #include ], *************** *** 2085,2093 **** [Define to the type of the 6th arg of XRegisterIMInstantiateCallback, either XPointer or XPointer*.])dnl if test "$emacs_cv_arg6_star" = yes; then ! AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*]) else ! AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer]) fi CFLAGS=$late_CFLAGS fi --- 2088,2096 ---- [Define to the type of the 6th arg of XRegisterIMInstantiateCallback, either XPointer or XPointer*.])dnl if test "$emacs_cv_arg6_star" = yes; then ! AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer*]) else ! AC_DEFINE(XRegisterIMInstantiateCallback_arg6, [XPointer]) fi CFLAGS=$late_CFLAGS fi *************** *** 2147,2154 **** HAVE_PNG=no if test "${HAVE_X11}" = "yes"; then if test "${with_png}" != "no"; then ! AC_CHECK_HEADER(png.h, ! AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm)) fi if test "${HAVE_PNG}" = "yes"; then --- 2150,2161 ---- HAVE_PNG=no if test "${HAVE_X11}" = "yes"; then if test "${with_png}" != "no"; then ! # Debian unstable as of July 2003 has multiple libpngs, and puts png.h ! # in /usr/include/libpng. ! AC_CHECK_HEADERS(png.h libpng/png.h) ! if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then ! AC_CHECK_LIB(png, png_get_channels, HAVE_PNG=yes, , -lz -lm) ! fi fi if test "${HAVE_PNG}" = "yes"; then From MAILER-DAEMON Tue Jul 22 13:54:37 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f1LK-0007dt-Tg for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:54:30 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f1LH-0007a7-L9 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:54:27 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f1LE-0007VY-MI for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:54:25 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f1Jt-0006ut-Rd for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:53:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19f1Jt-0000h2-IH for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:53:01 -0400 Received: from akochoi by subversions.gnu.org with local (Exim 4.20) id 19f1Is-0000kZ-9z for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:51:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andrew Choi Date: Tue, 22 Jul 2003 13:51:58 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/PROBLEMS X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: akochoi@shaw.ca List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:54:29 -0000 Index: emacs/etc/PROBLEMS diff -c emacs/etc/PROBLEMS:1.155 emacs/etc/PROBLEMS:1.156 *** emacs/etc/PROBLEMS:1.155 Sun Jun 29 16:22:07 2003 --- emacs/etc/PROBLEMS Tue Jul 22 13:51:57 2003 *************** *** 1,6 **** --- 1,12 ---- This file describes various problems that have been encountered in compiling, installing and running GNU Emacs. + * Process output truncated on Mac OS X (Carbon) when using pty's. + + There appears to be a problem with the implementation of pty's on the + Mac OS X that causes process output to be truncated. To avoid this, + leave process-connection-type set to its default value of nil. + * Emacs crashes on Mac OS X (Carbon) after system software upgrade. This problem seems to be now solved by Steven Tamm's patch to From MAILER-DAEMON Tue Jul 22 13:57:18 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f1Nu-0001V0-KM for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:57:10 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f1N9-0000lc-Od for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:56:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f1Mw-0000Wa-M8 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:56:11 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f1Mf-0000G8-5f for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:55:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19f1Me-0001JA-KR for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:55:52 -0400 Received: from akochoi by subversions.gnu.org with local (Exim 4.20) id 19f1Le-0000pP-Ry for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:54:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andrew Choi Date: Tue, 22 Jul 2003 13:54:50 -0400 Subject: [Emacs-diffs] Changes to emacs/src/unexmacosx.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: akochoi@shaw.ca List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:57:09 -0000 Index: emacs/src/unexmacosx.c diff -c emacs/src/unexmacosx.c:1.5 emacs/src/unexmacosx.c:1.6 *** emacs/src/unexmacosx.c:1.5 Tue Feb 18 10:58:00 2003 --- emacs/src/unexmacosx.c Tue Jul 22 13:54:50 2003 *************** *** 364,370 **** } ! #define MAX_UNEXEC_REGIONS 30 int num_unexec_regions; vm_range_t unexec_regions[MAX_UNEXEC_REGIONS]; --- 364,370 ---- } ! #define MAX_UNEXEC_REGIONS 200 int num_unexec_regions; vm_range_t unexec_regions[MAX_UNEXEC_REGIONS]; *************** *** 403,408 **** --- 403,448 ---- unexec_regions_recorder); } + static int + unexec_regions_sort_compare (const void *a, const void *b) + { + vm_address_t aa = ((vm_range_t *) a)->address; + vm_address_t bb = ((vm_range_t *) b)->address; + + if (aa < bb) + return -1; + else if (aa > bb) + return 1; + else + return 0; + } + + static void + unexec_regions_merge () + { + int i, n; + vm_range_t r; + + qsort (unexec_regions, num_unexec_regions, sizeof (unexec_regions[0]), + &unexec_regions_sort_compare); + n = 0; + r = unexec_regions[0]; + for (i = 1; i < num_unexec_regions; i++) + { + if (r.address + r.size == unexec_regions[i].address) + { + r.size += unexec_regions[i].size; + } + else + { + unexec_regions[n++] = r; + r = unexec_regions[i]; + } + } + unexec_regions[n++] = r; + num_unexec_regions = n; + } + /* More informational messages routines. */ *************** *** 863,868 **** --- 903,909 ---- read_load_commands (); find_emacs_zone_regions (); + unexec_regions_merge (); in_dumped_exec = 1; From MAILER-DAEMON Tue Jul 22 13:57:45 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f1O2-0001hY-Vv for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:57:18 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f1Nx-0001Xg-78 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:57:13 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f1Mu-0000Ue-VN for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:56:09 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f1Mf-0000G4-3x for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:55:53 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19f1Me-0001J9-JP for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:55:52 -0400 Received: from akochoi by subversions.gnu.org with local (Exim 4.20) id 19f1Le-0000pM-QT for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:54:50 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andrew Choi Date: Tue, 22 Jul 2003 13:54:50 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: akochoi@shaw.ca List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:57:17 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3322 emacs/src/ChangeLog:1.3323 *** emacs/src/ChangeLog:1.3322 Tue Jul 22 13:31:46 2003 --- emacs/src/ChangeLog Tue Jul 22 13:54:50 2003 *************** *** 1,3 **** --- 1,9 ---- + 2003-07-22 Andrew Choi + + * unexmacosx.c (unexec_regions_sort_compare): + (unexec_regions_merge): New functions. Sort and merge unexec + regions before dumping them. + 2003-07-22 Dave Love * xfns.c [HAVE_PNG]: Consider both png.h and libpng/png.h. From MAILER-DAEMON Tue Jul 22 13:58:04 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f1NB-0000qd-To for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:56:25 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f1Ml-0000M5-81 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:55:59 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f1LH-0007aX-Vh for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:54:29 -0400 Received: from gnuftp.gnu.org ([199.232.41.6]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f1Jt-0006us-QC for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:53:01 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by gnuftp.gnu.org with esmtp (Exim 4.20) id 19f1Jt-0000gz-HV for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:53:01 -0400 Received: from akochoi by subversions.gnu.org with local (Exim 4.20) id 19f1Is-0000kV-2r for emacs-diffs@gnu.org; Tue, 22 Jul 2003 13:51:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: Andrew Choi Date: Tue, 22 Jul 2003 13:51:58 -0400 Subject: [Emacs-diffs] Changes to emacs/etc/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: akochoi@shaw.ca List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 17:56:24 -0000 Index: emacs/etc/ChangeLog diff -c emacs/etc/ChangeLog:1.143 emacs/etc/ChangeLog:1.144 *** emacs/etc/ChangeLog:1.143 Mon Jul 14 16:33:01 2003 --- emacs/etc/ChangeLog Tue Jul 22 13:51:57 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-07-22 Andrew Choi + + * PROBLEMS: Truncated process output with pty's on Mac OS X. + 2003-07-14 Nick Roberts * NEWS: Merge in the changes for versions 21.2 and 21.3 as *************** *** 68,77 **** * TUTORIAL.pl: Updated. ! 2003-01-11 Pavel Jan,Bm(Bk * TUTORIAL.sk: Updated to reflect changes in English version. ! From Miroslav Va,B9(Bko . 2003-01-09 Francesco Potort,Al(B --- 72,81 ---- * TUTORIAL.pl: Updated. ! 2003-01-11 Pavel Jan,Am(Bk * TUTORIAL.sk: Updated to reflect changes in English version. ! From Miroslav Va$,1!!(Bko . 2003-01-09 Francesco Potort,Al(B *************** *** 141,147 **** * termcap.src: New version from ftp://invisible-island.net. ! 2002-03-24 Pavel Jan,Bm(Bk * TUTORIAL.translators: New file, list of tutorial translators. --- 145,151 ---- * termcap.src: New version from ftp://invisible-island.net. ! 2002-03-24 Pavel Jan,Am(Bk * TUTORIAL.translators: New file, list of tutorial translators. *************** *** 149,163 **** * gnus.xpm: Remove garbages. ! 2002-01-27 Pavel Jan,Bm(Bk * letter.xpm: New file, XPM variant of letter.xbm. ! 2001-12-03 Pavel Jan,Bm(Bk * COPYING: Move back. ! 2001-11-29 Pavel Jan,Bm(Bk * COPYING: Removed. --- 153,167 ---- * gnus.xpm: Remove garbages. ! 2002-01-27 Pavel Jan,Am(Bk * letter.xpm: New file, XPM variant of letter.xbm. ! 2001-12-03 Pavel Jan,Am(Bk * COPYING: Move back. ! 2001-11-29 Pavel Jan,Am(Bk * COPYING: Removed. *************** *** 212,218 **** * HELLO: Fix the Italian and Maltese entries. From Trevor Spiteri . ! 2001-08-25 Pavel Jan,Bm(Bk * HELLO: Slovak language name added to be compatible with other languages. --- 216,222 ---- * HELLO: Fix the Italian and Maltese entries. From Trevor Spiteri . ! 2001-08-25 Pavel Jan,Am(Bk * HELLO: Slovak language name added to be compatible with other languages. *************** *** 220,226 **** 2001-08-23 Eli Zaretskii * TUTORIAL.pl: Updated in accordance with the English version. ! From Beata Wierzcho,B3(Bowska and Janusz S. Bien . 2001-08-14 Eli Zaretskii --- 224,230 ---- 2001-08-23 Eli Zaretskii * TUTORIAL.pl: Updated in accordance with the English version. ! From Beata Wierzcho$,1 b(Bowska and Janusz S. Bien . 2001-08-14 Eli Zaretskii *************** *** 229,254 **** per config.sub and config.guess. Reported by Ryo Furue . ! 2001-08-10 Pavel Jan,Bm(Bk * TUTORIAL.sk: Updated in accordance with the English version. ! From Miroslav Va,B9(Bko . 2001-08-08 Eli Zaretskii * TUTORIAL.ko: Updated in accordance with the English version. From Koaunghi Un . ! 2001-08-06 Pavel Jan,Bm(Bk * TUTORIAL.cs: Update from Milan Zamazal. ! 2001-08-05 Pavel Jan,Bm(Bk * TUTORIAL.cs, TUTORIAL.sk, cs-refcard.tex, sk-refcard.tex: e-mail address of Milan Zamazal changed. ! 2001-08-04 Pavel Jan,Bm(Bk * TUTORIAL, TUTORIAL.cs: Be consistent when naming CONTROL and META keys. --- 233,258 ---- per config.sub and config.guess. Reported by Ryo Furue . ! 2001-08-10 Pavel Jan,Am(Bk * TUTORIAL.sk: Updated in accordance with the English version. ! From Miroslav Va$,1!!(Bko . 2001-08-08 Eli Zaretskii * TUTORIAL.ko: Updated in accordance with the English version. From Koaunghi Un . ! 2001-08-06 Pavel Jan,Am(Bk * TUTORIAL.cs: Update from Milan Zamazal. ! 2001-08-05 Pavel Jan,Am(Bk * TUTORIAL.cs, TUTORIAL.sk, cs-refcard.tex, sk-refcard.tex: e-mail address of Milan Zamazal changed. ! 2001-08-04 Pavel Jan,Am(Bk * TUTORIAL, TUTORIAL.cs: Be consistent when naming CONTROL and META keys. *************** *** 280,286 **** * sk-dired-ref.tex: New files. * cs-survival.tex, cs-dired-ref.ps, cs-dired-ref.tex: New files. ! From Pavel@Janik.cz (Pavel Jan,Bm(Bk). 2001-04-10 Vinicius Jose Latorre --- 284,290 ---- * sk-dired-ref.tex: New files. * cs-survival.tex, cs-dired-ref.ps, cs-dired-ref.tex: New files. ! From Pavel@Janik.cz (Pavel Jan,Am(Bk). 2001-04-10 Vinicius Jose Latorre From MAILER-DAEMON Tue Jul 22 15:07:39 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f2U6-0002bk-Q2 for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:38 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f2U4-0002ap-UG for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:36 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f2U3-0002ad-NH for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:36 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f2Qa-00023Z-B3 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:04:00 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19f2Pa-0005gW-E5 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:02:58 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 15:02:58 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.h X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:07:37 -0000 Index: emacs/src/buffer.h diff -c emacs/src/buffer.h:1.93 emacs/src/buffer.h:1.94 *** emacs/src/buffer.h:1.93 Wed Jul 9 15:44:14 2003 --- emacs/src/buffer.h Tue Jul 22 15:02:58 2003 *************** *** 804,809 **** --- 804,810 ---- extern struct buffer buffer_local_types; + extern void delete_all_overlays P_ ((struct buffer *)); extern void reset_buffer P_ ((struct buffer *)); extern void evaporate_overlays P_ ((EMACS_INT)); extern int overlays_at P_ ((EMACS_INT, int, Lisp_Object **, int *, int *, int *, int)); From MAILER-DAEMON Tue Jul 22 15:07:53 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f2UL-0002iQ-Bs for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:53 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f2UK-0002i8-4c for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:52 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f2UI-0002ge-DL for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:50 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f2UI-0002gW-4x for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:50 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19f2TI-0005qt-AI for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:06:48 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 15:06:48 -0400 Subject: [Emacs-diffs] Changes to emacs/src/print.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:07:52 -0000 Index: emacs/src/print.c diff -c emacs/src/print.c:1.188 emacs/src/print.c:1.189 *** emacs/src/print.c:1.188 Wed Jul 9 10:48:41 2003 --- emacs/src/print.c Tue Jul 22 15:06:48 2003 *************** *** 592,603 **** Fset_buffer (Fget_buffer_create (build_string (bufname))); Fkill_all_local_variables (); current_buffer->directory = old->directory; current_buffer->read_only = Qnil; current_buffer->filename = Qnil; current_buffer->undo_list = Qt; ! current_buffer->overlays_before = NULL; ! current_buffer->overlays_after = NULL; current_buffer->enable_multibyte_characters = buffer_defaults.enable_multibyte_characters; Ferase_buffer (); --- 592,604 ---- Fset_buffer (Fget_buffer_create (build_string (bufname))); Fkill_all_local_variables (); + delete_all_overlays (current_buffer); current_buffer->directory = old->directory; current_buffer->read_only = Qnil; current_buffer->filename = Qnil; current_buffer->undo_list = Qt; ! eassert (current_buffer->overlays_before = NULL); ! eassert (current_buffer->overlays_after = NULL); current_buffer->enable_multibyte_characters = buffer_defaults.enable_multibyte_characters; Ferase_buffer (); From MAILER-DAEMON Tue Jul 22 15:08:28 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f2Ut-0002wF-MY for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:27 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f2Up-0002uB-VW for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:23 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f2Uo-0002tD-Gq for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:22 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f2Uo-0002t9-AT for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:22 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19f2To-0005sG-DP for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:20 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 15:07:20 -0400 Subject: [Emacs-diffs] Changes to emacs/src/fileio.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:08:25 -0000 Index: emacs/src/fileio.c diff -c emacs/src/fileio.c:1.491 emacs/src/fileio.c:1.492 *** emacs/src/fileio.c:1.491 Wed Jul 9 10:50:51 2003 --- emacs/src/fileio.c Tue Jul 22 15:07:20 2003 *************** *** 3840,3851 **** buffer = Fget_buffer_create (build_string (" *code-converting-work*")); buf = XBUFFER (buffer); buf->directory = current_buffer->directory; buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! buf->overlays_before = NULL; ! buf->overlays_after = NULL; set_buffer_internal (buf); Ferase_buffer (); --- 3840,3852 ---- buffer = Fget_buffer_create (build_string (" *code-converting-work*")); buf = XBUFFER (buffer); + delete_all_overlays (buf); buf->directory = current_buffer->directory; buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! eassert (buf->overlays_before == NULL); ! eassert (buf->overlays_after == NULL); set_buffer_internal (buf); Ferase_buffer (); From MAILER-DAEMON Tue Jul 22 15:08:58 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f2VO-0003CV-JL for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:58 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f2SB-0002LG-Lg for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:05:39 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f2QF-0001Rf-Lv for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:03:40 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f2Ps-0000la-Ix for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:03:16 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19f2Op-0005f0-F6 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:02:11 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 15:02:11 -0400 Subject: [Emacs-diffs] Changes to emacs/src/buffer.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:08:57 -0000 Index: emacs/src/buffer.c diff -c emacs/src/buffer.c:1.434 emacs/src/buffer.c:1.435 *** emacs/src/buffer.c:1.434 Tue Jul 15 15:32:05 2003 --- emacs/src/buffer.c Tue Jul 22 15:02:11 2003 *************** *** 630,637 **** return buf; } /* Reinitialize everything about a buffer except its name and contents ! and local variables. */ void reset_buffer (b) --- 630,665 ---- return buf; } + void + delete_all_overlays (b) + struct buffer *b; + { + Lisp_Object overlay; + + /* `reset_buffer' blindly sets the list of overlays to NULL, so we + have to empty the list, otherwise we end up with overlays that + think they belong to this buffer while the buffer doesn't know about + them any more. */ + while (b->overlays_before) + { + XSETMISC (overlay, b->overlays_before); + Fdelete_overlay (overlay); + } + while (b->overlays_after) + { + XSETMISC (overlay, b->overlays_after); + Fdelete_overlay (overlay); + } + eassert (b->overlays_before == NULL); + eassert (b->overlays_after == NULL); + } + /* Reinitialize everything about a buffer except its name and contents ! and local variables. ! If called on an already-initialized buffer, the list of overlays ! should be deleted before calling this function, otherwise we end up ! with overlays that claim to belong to the buffer but the buffer ! claims it doesn't belong to it. */ void reset_buffer (b) From MAILER-DAEMON Tue Jul 22 15:09:57 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f2W3-0003l8-DO for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:09:39 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f2Vy-0003fZ-Jn for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:09:34 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f2VY-0003Lx-WA for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:09:09 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f2Tj-0002XM-4f for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:15 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19f2Sj-0005pZ-5T for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:06:13 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 15:06:13 -0400 Subject: [Emacs-diffs] Changes to emacs/src/coding.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:09:37 -0000 Index: emacs/src/coding.c diff -c emacs/src/coding.c:1.288 emacs/src/coding.c:1.289 *** emacs/src/coding.c:1.288 Wed Jul 9 16:25:02 2003 --- emacs/src/coding.c Tue Jul 22 15:06:12 2003 *************** *** 5998,6009 **** buffer = Fget_buffer_create (build_string (" *code-converting-work*")); buf = XBUFFER (buffer); buf->directory = current_buffer->directory; buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! buf->overlays_before = NULL; ! buf->overlays_after = NULL; set_buffer_internal (buf); /* We must insert the contents of STR as is without --- 5998,6010 ---- buffer = Fget_buffer_create (build_string (" *code-converting-work*")); buf = XBUFFER (buffer); + delete_all_overlays (buf); buf->directory = current_buffer->directory; buf->read_only = Qnil; buf->filename = Qnil; buf->undo_list = Qt; ! eassert (buf->overlays_before == NULL); ! eassert (buf->overlays_after == NULL); set_buffer_internal (buf); /* We must insert the contents of STR as is without From MAILER-DAEMON Tue Jul 22 15:10:34 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f2Uu-0002y2-Vd for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:28 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f2Us-0002v9-2S for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:26 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f2Uq-0002uG-BP for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:24 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f2Sq-0002QX-Es for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:06:20 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19f2Rq-0005nX-MT for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:05:18 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 15:05:18 -0400 Subject: [Emacs-diffs] Changes to emacs/src/xfns.c X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:08:26 -0000 Index: emacs/src/xfns.c diff -c emacs/src/xfns.c:1.586 emacs/src/xfns.c:1.587 *** emacs/src/xfns.c:1.586 Tue Jul 22 13:31:33 2003 --- emacs/src/xfns.c Tue Jul 22 15:05:18 2003 *************** *** 7565,7576 **** #if HAVE_PNG ! #ifdef HAVE_PNG_H ! # include #else ! # ifdef HAVE_LIBPNG_PNG_H ! # include ! # endif #endif /* Function prototypes. */ --- 7565,7574 ---- #if HAVE_PNG ! #if defined HAVE_LIBPNG_PNG_H ! # include #else ! # include #endif /* Function prototypes. */ From MAILER-DAEMON Tue Jul 22 15:12:44 2003 Received: from list by monty-python.gnu.org with archive (Exim 4.20) id 19f2Wu-0004jH-3F for mharc-emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:10:32 -0400 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19f2WX-0004JD-EL for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:10:09 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19f2WK-00040E-60 for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:09:56 -0400 Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19f2VH-00038l-Ph for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:08:51 -0400 Received: from monnier by subversions.gnu.org with local (Exim 4.20) id 19f2UH-0005u3-SN for emacs-diffs@gnu.org; Tue, 22 Jul 2003 15:07:49 -0400 To: emacs-diffs@gnu.org Message-Id: From: Stefan Monnier Date: Tue, 22 Jul 2003 15:07:49 -0400 Subject: [Emacs-diffs] Changes to emacs/src/ChangeLog X-BeenThere: emacs-diffs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list Reply-To: monnier+gnu/emacs@flint.cs.yale.edu List-Id: Mailing list for Emacs changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 19:10:28 -0000 Index: emacs/src/ChangeLog diff -c emacs/src/ChangeLog:1.3323 emacs/src/ChangeLog:1.3324 *** emacs/src/ChangeLog:1.3323 Tue Jul 22 13:54:50 2003 --- emacs/src/ChangeLog Tue Jul 22 15:07:49 2003 *************** *** 1,3 **** --- 1,14 ---- + 2003-07-22 Stefan Monnier + + * xfns.c: Don't check HAVE_PNG_H: autoconf doesn't seem to find it. + + * buffer.c (delete_all_overlays): New function. + * buffer.h (delete_all_overlays): Declare. + * coding.c (run_pre_post_conversion_on_str): + * print.c (temp_output_buffer_setup): + * fileio.c (Finsert_file_contents)