--- info-look.el.orig 2015-02-15 09:09:49.433538275 +1100 +++ info-look.el 2015-02-19 16:33:54.393204587 +1100 @@ -704,6 +704,11 @@ ;;; Initialize some common modes. +;; Past makeinfo generated backquote `foo' for @item, where now circa +;; version 5.2 it generates 'foo'. Doc specs with patterns to match items +;; like that (and sometimes within text from @code) have [`'] to work any +;; .info files. + (info-lookup-maybe-add-help :mode 'c-mode :topic 'symbol :regexp "\\(struct \\|union \\|enum \\)?[_a-zA-Z][_a-zA-Z0-9]*" @@ -716,12 +721,12 @@ ;; suffix "\\>" is not used because that sends DBL_MAX to ;; DBL_MAX_EXP ("_" is a non-word char) ("(libc)Variable Index" nil - "^\\([ \t]+-+ \\(Variable\\|Macro\\): .*\\<\\|`\\)" + "^\\([ \t]+-+ \\(Variable\\|Macro\\): .*\\<\\|[`']\\)" "\\( \\|'?$\\)") ("(libc)Type Index" nil "^[ \t]+-+ Data Type: \\<" "\\>") ("(termcap)Var Index" nil - "^[ \t]*`" "'")) + "^[ \t]*[`']" "'")) :parse-rule 'info-lookup-guess-c-symbol) (info-lookup-maybe-add-help @@ -733,7 +738,7 @@ :mode 'bison-mode :regexp "[:;|]\\|%\\([%{}]\\|[_a-z]+\\)\\|YY[_A-Z]+\\|yy[_a-z]+" :doc-spec '(("(bison)Index" nil - "`" "'")) + "[`']" "'")) :parse-rule "[:;|]\\|%\\([%{}]\\|[_a-zA-Z][_a-zA-Z0-9]*\\)" :other-modes '(c-mode)) @@ -741,7 +746,7 @@ :mode 'makefile-mode :regexp "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z][_a-zA-Z0-9-]*" :doc-spec '(("(make)Name Index" nil - "^[ \t]*`" "'")) + "^[ \t]*[`']" "'")) :parse-rule "\\$[^({]\\|\\.[_A-Z]*\\|[_a-zA-Z0-9-]+") (info-lookup-maybe-add-help @@ -756,15 +761,15 @@ :doc-spec '( ;; "(automake)Macro Index" is autoconf macros used in ;; configure.ac, not Makefile.am, so don't have that here. - ("(automake)Variable Index" nil "^[ \t]*`" "'") + ("(automake)Variable Index" nil "^[ \t]*[`']" "'") ;; In automake 1.4 macros and variables were a combined node. - ("(automake)Macro and Variable Index" nil "^[ \t]*`" "'") + ("(automake)Macro and Variable Index" nil "^[ \t]*[`']" "'") ;; Directives like "if" are in the "General Index". ;; Prefix "`" since the text for say `+=' isn't always an ;; @item etc and so not always at the start of a line. - ("(automake)General Index" nil "`" "'") + ("(automake)General Index" nil "[`']" "'") ;; In automake 1.3 there was just a single "Index" node. - ("(automake)Index" nil "`" "'")) + ("(automake)Index" nil "[`']" "'")) :other-modes '(makefile-mode)) (info-lookup-maybe-add-help @@ -775,7 +780,7 @@ (lambda (item) (if (string-match "^\\([a-zA-Z]+\\|[^a-zA-Z]\\)\\( .*\\)?$" item) (concat "@" (match-string 1 item)))) - "`" "[' ]"))) + "[`']" "[' ]"))) (info-lookup-maybe-add-help :mode 'm4-mode @@ -821,7 +826,7 @@ ;; macros (eg. AC_PROG_CC). Ensure this is after the autoconf ;; index, so as to prefer the autoconf docs. ("(automake)Macro and Variable Index" nil - "^[ \t]*`" "'")) + "^[ \t]*[`']" "'")) ;; Autoconf symbols are M4 macros. Thus use M4's parser. :parse-rule 'ignore :other-modes '(m4-mode)) @@ -846,7 +851,7 @@ ;; Built-in functions (matches to many entries). ((string-match "^[a-z]+$" item) item)))) - "`" "\\([ \t]*([^)]*)\\)?'"))) + "[`']" "\\([ \t]*([^)]*)\\)?'"))) (info-lookup-maybe-add-help :mode 'perl-mode @@ -885,16 +890,18 @@ ;; From http://home.gna.org/latexrefman "(latex2e)Command Index" "(latex)Command Index") - nil "`" "\\({[^}]*}\\)?'"))) + ;; \frac{NUM}{DEN} etc can have more than one {xx} argument. + ;; \sqrt[ROOT]{num} and others can have square brackets. + nil "[`']" "\\({[^}]*}|\\[[^]]*\\]\\)*'"))) (info-lookup-maybe-add-help :mode 'emacs-lisp-mode :regexp "[^][()`',\" \t\n]+" :doc-spec '(;; Commands with key sequences appear in nodes as `foo' and ;; those without as `M-x foo'. - ("(emacs)Command Index" nil "`\\(M-x[ \t\n]+\\)?" "'") + ("(emacs)Command Index" nil "[`'\u2018]\\(M-x[ \t\n]+\\)?" "['\u2019]") ;; Variables normally appear in nodes as just `foo'. - ("(emacs)Variable Index" nil "`" "'") + ("(emacs)Variable Index" nil "[`'\u2018]" "['\u2019]") ;; Almost all functions, variables, etc appear in nodes as ;; " -- Function: foo" etc. A small number of aliases and ;; symbols appear only as `foo', and will miss out on exact @@ -976,9 +983,9 @@ ;; bash has "." and ":" in its index, but those chars will probably never ;; work in info, so don't bother matching them in the regexp. :regexp "\\([a-zA-Z0-9_-]+\\|address@hidden|\\[\\[?\\|]]?\\)" - :doc-spec '(("(bash)Builtin Index" nil "^`" "[ .']") - ("(bash)Reserved Word Index" nil "^`" "[ .']") - ("(bash)Variable Index" nil "^`" "[ .']") + :doc-spec '(("(bash)Builtin Index" nil "^[`']" "[ .']") + ("(bash)Reserved Word Index" nil "^[`']" "[ .']") + ("(bash)Variable Index" nil "^[`']" "[ .']") ;; coreutils (version 4.5.10) doesn't have a separate program ;; index, so exclude extraneous stuff (most of it) by demanding @@ -1026,7 +1033,7 @@ item)) ;; This gets functions in evaluated classes. Other ;; possible patterns don't seem to work too well. - "`" "("))) + "[`']" "("))) (info-lookup-maybe-add-help :mode 'Custom-mode