In current ltx-help.el, latex-help-get-cmd-alist doesn't seem to
recognise the index of recent latex2e.info (in debian
texlive-lang-english) but returns an empty list so M-x latex-help has
nothing to go to.

    M-x latex-help
    \begin Tab
    =>
    [no match]

I think latex-help-get-cmd-alist is tricked by the index entry for math
mode \: appearing as \::, and then the regexp is a little too tight for
the recent makeinfo "(line 123)" bits (fontified to invisible by
info-mode, but they're there).  I get some joy from a little tightening
and loosening below.

--- ltx-help.el.orig	2015-12-03 17:13:25.137365950 +1100
+++ ltx-help.el	2015-12-03 17:38:14.805329570 +1100
@@ -128,16 +128,20 @@
 ;; Thu Apr 25 2013  Mandar Mitra (mandar.mi...@gmail.com)
 ;;    Using with (for example) "array" goes to the top node
 ;;    of latex2e.info instead of the intended node.
+;;
+;; Thu Dec 3 2015  Kevin Ryde (user42_ke...@yahoo.com.au)
+;;    * latex-help-get-cmd-alist don't take \:: as double-colon style index,
+;;      and allow "(line 123)" at the end of recent makeinfo output.
+;;    * Use buffer-substring-no-properties when exists (does in XEmacs 21.4).
 
 ;;; Code:
 
 (require 'info)
 
-(if (string-match "XEmacs\\|Lucid" emacs-version)
- ; XEmacs
- (fset 'ltxh-buffer-substring (symbol-function 'buffer-substring))
- ; FSFmacs
- (fset 'ltxh-buffer-substring (symbol-function 'buffer-substring-no-properties)))
+(defalias 'ltxh-buffer-substring
+  (if (fboundp 'buffer-substring-no-properties)  ;; when available
+      'buffer-substring-no-properties
+    'buffer-substring))
 
 (defvar latex-help-file "(latex2e)")
 
@@ -259,7 +263,7 @@
       (save-window-excursion
         (setq latex-help-cmd-alist nil)
         (Info-goto-node (concat latex-help-file "Command Index"))
-        (if (search-forward "::" nil t)
+        (if (re-search-forward "::$" nil t)
             (progn
               (end-of-buffer)
               (while (re-search-backward "^\\* \\(.+\\)::$" nil t)
@@ -267,7 +271,7 @@
                 (setq latex-help-cmd-alist 
                       (cons (cons key key) latex-help-cmd-alist))))
           (end-of-buffer)
-          (while (re-search-backward "^\\* \\(.+\\): *\\(.+\\)\\.$" nil t)
+          (while (re-search-backward "^\\* \\(.+\\): *\\(.+\\)\\." nil t)
             (setq key (ltxh-buffer-substring (match-beginning 1) (match-end 1)))
             (setq value (ltxh-buffer-substring (match-beginning 2) (match-end 2)))
             (setq latex-help-cmd-alist 

Reply via email to