*** info.el.~1.350.~ Thu Jun 5 02:58:08 2003 --- info.el Thu Jun 5 08:33:52 2003 *************** (defun Info-extract-pointer (name &optio *** 1403,1415 **** (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 " ") --- 1403,1433 ---- (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. ! ! If \".\" is not among the allowed chars, it will still be accepted if it (or ! a sequence of dots) is followed by a non-whitespace, non-\")\", allowed ! char. A cross reference normally ends at a \".\", but this rule lets ! filenames like foo.h appear in the node name. Note that it still correctly ! stops at the \".\" for things like the following which can arise from ! @pxref. ! ! *note something: node name., etc ! (go to *note something: node name.) etc ! " ! ! ;; For reference, the standalone info reader applies a similar rule for ! ;; ".", see texinfo info/search.c skip_node_characters(). ! (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 (and (looking-at "\\.+[^) \t\n]") + (looking-at (concat "\\.+[" (or allowedchars "^,\t\n") "]"))) + (goto-char (match-end 0))) (if (looking-at "(") (skip-chars-forward "^)"))) (skip-chars-backward " ")