From: CSBVAX::MRGATE!info-gnu-emacs-request@prep.ai.mit.edu@SMTP 25-AUG-1988 06:04 To: ARISIA::EVERHART Subj: Re: Changes to info.el for GNU Emacs Received: from ai.ai.mit.edu by prep.ai.mit.edu; Wed, 24 Aug 88 21:52:15 EST Received: from tut.cis.ohio-state.edu (TCP 20044404074) by AI.AI.MIT.EDU 24 Aug 88 23:13:47 EDT Received: by tut.cis.ohio-state.edu (5.54/2.880803) id AA05844; Wed, 24 Aug 88 23:04:00 EDT Received: from USENET by tut.cis.ohio-state.edu with netnews for info-gnu-emacs@prep.ai.mit.edu (info-gnu-emacs@prep.ai.mit.edu) (contact usenet@tut.cis.ohio-state.edu if you have questions) Date: 25 Aug 88 02:42:48 GMT From: bbn.com!wbe@bbn.com (Winston B Edmond) Organization: BBN Systems and Technologies Corporation, Cambridge, MA Subject: Re: Changes to info.el for GNU Emacs Message-Id: <28955@bbn.COM> References: <28954@bbn.COM> Sender: info-gnu-emacs-request@prep.ai.mit.edu To: info-gnu-emacs@prep.ai.mit.edu Please disregard the previous article (<28954@bbn.COM>) and use this article instead. The previous fix to make menu items work still did not quite fix footnotes, and this article contains the additional fix. -WBE Below are diffs to the info.el library distributed with GNU Emacs 18.51.5. There are two changes. Item 1. BUG FIX: A menu item like * item name: (./filename)Nodename would fail, because Info-extract-menu-node-name considered the "." a node name terminator, and "(" isn't valid. The problem arose partly because the same routine was used both to pick up node names for menu items and for footnotes. I fixed this by passing another argument and having only the footnote call specify period as a terminator. In addition, since period is a common file name characters on Unix systems, Info-following-node-name was changed to skip to the matching ")" if the node name begins with "(". The matching paren must occur before the next newline, tab, or comma (in case the node name is broken and doesn't have a close paren). < indicates new version > indicates old version 346d343 < (if (looking-at "(") (skip-chars-forward "^),\t\n")) 418,419c415 < (setq target (Info-extract-menu-node-name "^.,\t\n" < "Bad format cross reference"))) --- > (setq target (Info-extract-menu-node-name "Bad format cross reference"))) 422c418 < (defun Info-extract-menu-node-name (&optional allowedchars errmessage) --- > (defun Info-extract-menu-node-name (&optional errmessage) 431c427 < (Info-following-node-name allowedchars))) --- > (Info-following-node-name "^.,\t\n"))) 2) Optional frill: I don't like having to cram everything into one line in the node header, so I permit a one line extension. If the first header line ends with backslash ( '\' ), the second line will also be examined for Next:, Previous:, and Up: entries. [In the routine Info-extract-pointer, after (forward-line 1)] 333,334d332 < (backward-char 1) < (if (= (preceding-char) ?\\) (forward-line 2)) ;allow a continuation line -WBE