Add 2010 to copyright years.
[bpt/emacs.git] / lisp / textmodes / reftex-index.el
index 15f7089..35cae5a 100644 (file)
@@ -1,17 +1,18 @@
 ;;; reftex-index.el --- index support with RefTeX
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-;;   2006 Free Software Foundation, Inc.
+;;   2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <dominik@science.uva.nl>
+;; Maintainer: auctex-devel@gnu.org
 ;; Version: 4.31
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; 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.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,9 +20,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 
 ;; START remove for XEmacs release
 (defvar mark-active)
-(defvar zmacs-regions)
 (defvar transient-mark-mode)
 (defvar TeX-master)
 ;; END remove for XEmacs release
+
+(declare-function texmathp "ext:texmathp" ())
+
 (defun reftex-index-selection-or-word (&optional arg phrase)
   "Put selection or the word near point into the default index macro.
 This uses the information in `reftex-index-default-macro' to make an index
@@ -51,16 +52,16 @@ which is part of AUCTeX, the string is first processed with the
   (interactive "P")
   (let* ((use-default (not (equal arg '(16))))  ; check for double prefix
          ;; check if we have an active selection
-         (active (if (boundp 'zmacs-regions)
+         (active (if (featurep 'xemacs)
                      (and zmacs-regions (region-exists-p))  ; XEmacs
                    (and transient-mark-mode mark-active)))  ; Emacs
-         (beg (if active 
+         (beg (if active
                   (region-beginning)
-                (save-excursion 
+                (save-excursion
                   (skip-syntax-backward "w\\") (point))))
          (end (if active
                   (region-end)
-                (save-excursion 
+                (save-excursion
                   (skip-syntax-forward "w\\") (point))))
          (sel (buffer-substring beg end))
          (mathp (condition-case nil (texmathp) (error nil)))
@@ -91,9 +92,9 @@ which is part of AUCTeX, the string is first processed with the
         ;; Delete what is in the buffer and make the index entry
         (delete-region beg end)
         (reftex-index def-char full-entry def-tag sel)))))
-  
+
 (defun reftex-index (&optional char key tag sel no-insert)
-  "Query for an index macro and insert it along with its argments.
+  "Query for an index macro and insert it along with its arguments.
 The index macros available are those defined in `reftex-index-macro' or
 by a call to `reftex-add-index-macros', typically from an AUCTeX style file.
 RefteX provides completion for the index tag and the index key, and
@@ -188,17 +189,17 @@ will prompt for other arguments."
 (defun reftex-index-select-tag ()
   ;; Have the user select an index tag.
   ;; FIXME: should we cache tag-alist, prompt and help?
-  (let* ((index-tags (cdr (assoc 'index-tags 
+  (let* ((index-tags (cdr (assoc 'index-tags
                                  (symbol-value reftex-docstruct-symbol))))
          (default (reftex-default-index)))
-    (cond 
+    (cond
      ((null index-tags)
       (error "No index tags available"))
 
      ((= (length index-tags) 1)
       ;; Just one index, use it
       (car index-tags))
-          
+
      ((> (length index-tags) 1)
       ;; Several indices, ask.
       (let* ((tags (copy-sequence index-tags))
@@ -219,12 +220,12 @@ will prompt for other arguments."
               (unless (assq (aref tag i) tag-alist)
                 (push (list (aref tag i)
                             tag
-                            (concat (substring tag 0 i) 
+                            (concat (substring tag 0 i)
                                     "[" (substring tag i (incf i)) "]"
                                     (substring tag i)))
                       tag-alist)
                 (throw 'exit t)))
-            (push (list (+ ?0 (incf cnt)) tag 
+            (push (list (+ ?0 (incf cnt)) tag
                         (concat "[" (int-to-string cnt) "]:" tag))
                   tag-alist)))
         (setq tag-alist (nreverse tag-alist))
@@ -239,7 +240,7 @@ will prompt for other arguments."
                       (if default
                           (format "[^M]  %s (the default)\n" default)
                         "")
-                      (mapconcat (lambda(x) 
+                      (mapconcat (lambda(x)
                                    (apply 'format "[%c]   %s" x))
                                  tag-alist "\n")))
         ;; Query the user for an index-tag
@@ -268,7 +269,7 @@ will prompt for other arguments."
     key))
 
 (defun reftex-index-update-taglist (newtag)
-  ;; add NEWTAG to the list of available index tags. 
+  ;; add NEWTAG to the list of available index tags.
   (let ((cell (assoc 'index-tags (symbol-value reftex-docstruct-symbol))))
     (and newtag (cdr cell) (not (member newtag (cdr cell)))
          (push newtag (cdr cell)))))
@@ -349,7 +350,7 @@ _ ^        Add/Remove parent key (to make this item a subitem).
   ;; Note:  This function just looks for the nearest match of the
   ;; context string and may fail if the entry moved and an identical
   ;; entry is close to the old position.  Frequent rescans make this
-  ;; safer. 
+  ;; safer.
   (let* ((file (nth 3 data))
          (literal (nth 2 data))
          (pos (nth 4 data))
@@ -363,7 +364,7 @@ _ ^        Add/Remove parent key (to make this item a subitem).
             (goto-char (or pos (point-min)))
             (or (looking-at re)
                 (reftex-nearest-match re (length literal))))
-           (t (message reftex-no-follow-message) nil))))
+           (t (message "%s" reftex-no-follow-message) nil))))
     (when match
       (goto-char (match-beginning 0))
       (recenter '(4))
@@ -397,7 +398,7 @@ With prefix 3, restrict index to region."
          (calling-file (buffer-file-name))
          (restriction
           (or overriding-restriction
-              (and (not redo) 
+              (and (not redo)
                    (reftex-get-restriction current-prefix-arg docstruct))))
          (locations
           ;; See if we are on an index macro as initial position
@@ -406,7 +407,7 @@ With prefix 3, restrict index to region."
                      (macro (car what-macro))
                      (here-I-am (when (member macro reftex-macros-with-index)
                                   (save-excursion
-                                    (goto-char (+ (cdr what-macro) 
+                                    (goto-char (+ (cdr what-macro)
                                                   (length macro)))
                                     (reftex-move-over-touching-args)
                                     (reftex-where-am-I)))))
@@ -417,14 +418,13 @@ With prefix 3, restrict index to region."
     (setq buffer-name (reftex-make-index-buffer-name index-tag))
 
     ;; Goto the buffer and put it into the correct mode
-                      
+
     (when (or restriction current-prefix-arg)
          (reftex-kill-buffer buffer-name))
 
     (if (get-buffer-window buffer-name)
         (select-window (get-buffer-window buffer-name))
-      (let ((default-major-mode 'reftex-index-mode))
-        (switch-to-buffer buffer-name)))
+      (switch-to-buffer buffer-name))
 
     (or (eq major-mode 'reftex-index-mode) (reftex-index-mode))
 
@@ -510,7 +510,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
       ;; Delete the entry at place
       (and (bolp) (forward-char 1))
       (delete-region (previous-single-property-change (1+ (point)) :data)
-                     (or (next-single-property-change (point) :data) 
+                     (or (next-single-property-change (point) :data)
                          (point-max))))
 
     ;; Walk through the list and insert all entries
@@ -531,7 +531,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
       (insert indent (nth 7 cell))
       (when font
         (setq to (point))
-        (put-text-property 
+        (put-text-property
          (- (point) (length (nth 7 cell))) to
          'face index-face)
         (goto-char to))
@@ -559,7 +559,7 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
 (defun reftex-index-insert-new-letter (letter &optional font)
   ;; Start a new section in the index
   (let ((from (point)))
-    (insert "\n" letter letter letter 
+    (insert "\n" letter letter letter
             "-----------------------------------------------------------------")
     (when font
       (put-text-property from (point) 'face reftex-index-section-face))
@@ -636,10 +636,10 @@ SPC=view TAB=goto RET=goto+hide [e]dit [q]uit [r]escan [f]ollow [?]Help
   (interactive "p")
   (setq reftex-callback-fwd t)
   (or (eobp) (forward-char 1))
-  (goto-char (or (next-single-property-change (point) :data) 
+  (goto-char (or (next-single-property-change (point) :data)
                  (point)))
   (unless (get-text-property (point) :data)
-    (goto-char (or (next-single-property-change (point) :data) 
+    (goto-char (or (next-single-property-change (point) :data)
                    (point)))))
 (defun reftex-index-previous (&optional arg)
   "Move to previous selectable item."
@@ -782,7 +782,7 @@ When index is restricted, select the next section as restriction criterion."
         (reftex-index-restrict-to-section t)
       (setq reftex-index-restriction-indicator (nth 6 bor)
             reftex-index-restriction-data
-            (list bor 
+            (list bor
                   (car (memq (assq 'toc (cdr (memq bor docstruct)))
                              docstruct))))
       (reftex-index-revert))))
@@ -814,7 +814,7 @@ When index is restricted, select the previous section as restriction criterion."
          show-window show-buffer match)
 
     (unless data (error "Don't know which index entry to visit"))
-    
+
     (if (eq (car data) 'index)
         (setq match (reftex-index-show-entry data no-revisit)))
 
@@ -885,7 +885,7 @@ When index is restricted, select the previous section as restriction criterion."
           attr (nth 2 analyze))
     (setf (nth 2 analyze) (if (string= attr bor) "" bor))
     (setq new (apply 'concat analyze))
-    (reftex-index-change-entry 
+    (reftex-index-change-entry
      new (if (string= (nth 2 analyze) bor)
              "Entry is now START-OF-PAGE-RANGE"
            "START-OF-PAGE-RANGE canceled"))))
@@ -943,7 +943,7 @@ When index is restricted, select the previous section as restriction criterion."
           (t (setf (nth n analyze) (concat initial npart))))
     (setq new (apply 'concat analyze))
     ;; Change the entry and insert the changed version into the index.
-    (reftex-index-change-entry 
+    (reftex-index-change-entry
      new (if (string= npart "")
              (format "Deleted: %s" opart)
            (format "New value is: %s" npart)))))
@@ -957,14 +957,14 @@ When index is restricted, select the previous section as restriction criterion."
     (unless data (error "Don't know which index entry to change"))
     (setq old (nth 2 data)
           key (nth 6 data)
-          prefix (completing-read 
-                  "Prefix: " 
-                  (reftex-sublist-nth 
+          prefix (completing-read
+                  "Prefix: "
+                  (reftex-sublist-nth
                    docstruct 6
                    (lambda (x)
                      (and (eq (car x) 'index)
                           (string= (nth 1 x) reftex-index-tag))) t)))
-    (unless (string-match 
+    (unless (string-match
              (concat (regexp-quote (car reftex-index-special-chars)) "\\'")
              prefix)
       (setq prefix (concat prefix (car reftex-index-special-chars))))
@@ -1004,7 +1004,7 @@ When index is restricted, select the previous section as restriction criterion."
 (defun reftex-index-change-entry (new &optional message)
   ;; Change the full context string of the index entry at point to
   ;; NEW.  This actually edits the buffer where the entry is defined.
-  
+
   (let* ((data (get-text-property (point) :data))
          old beg end info)
     (unless data (error "Cannot change entry"))
@@ -1012,8 +1012,7 @@ When index is restricted, select the previous section as restriction criterion."
     (setq beg (match-beginning 0) end (match-end 0))
     (setq old (nth 2 data))
     (and (equal old new) (error "Entry unchanged"))
-    (save-excursion
-      (set-buffer (get-file-buffer (nth 3 data)))
+    (with-current-buffer (get-file-buffer (nth 3 data))
       (goto-char beg)
       (unless (looking-at (regexp-quote old))
         (error "This should not happen (reftex-index-change-entry)"))
@@ -1087,7 +1086,8 @@ When index is restricted, select the previous section as restriction criterion."
   "Go to the CHAR section in the index."
   (let ((pos (point))
         (case-fold-search nil))
-    (goto-line 3)
+    (goto-char (point-min))
+    (forward-line 2)
     (if (re-search-forward (concat "^" (char-to-string char)) nil t)
         (progn
           (beginning-of-line)
@@ -1097,14 +1097,14 @@ When index is restricted, select the previous section as restriction criterion."
       (if (eq char ?!)
           (error "This <%s> index does not contain entries sorted before the letters"
                  reftex-index-tag)
-        (error "This <%s> index does not contain entries starting with `%c'" 
+        (error "This <%s> index does not contain entries starting with `%c'"
                reftex-index-tag char)))))
 
-(easy-menu-define 
+(easy-menu-define
  reftex-index-menu reftex-index-map
  "Menu for Index buffer"
  `("Index"
-   ["Goto section A-Z" 
+   ["Goto section A-Z"
     (message "To go to a section, just press any of: !%s"
              reftex-index-section-letters) t]
    ["Show Entry" reftex-index-view-entry t]
@@ -1144,7 +1144,7 @@ When index is restricted, select the previous section as restriction criterion."
     ["Context" reftex-index-toggle-context :style toggle
      :selected reftex-index-include-context]
     "--"
-    ["Follow Mode" reftex-index-toggle-follow :style toggle 
+    ["Follow Mode" reftex-index-toggle-follow :style toggle
      :selected reftex-index-follow-mode])
    "--"
    ["Help" reftex-index-show-help t]))
@@ -1196,7 +1196,7 @@ You get a chance to edit the entry in the phrases buffer - finish with
   (set-marker reftex-index-return-marker (point))
   (reftex-index-selection-or-word arg 'phrase)
   (if (eq major-mode 'reftex-index-phrases-mode)
-      (message "%s" 
+      (message "%s"
        (substitute-command-keys
         "Return to LaTeX with \\[reftex-index-phrases-save-and-return]"))))
 
@@ -1225,7 +1225,7 @@ If the buffer is non-empty, delete the old header first."
           (sort (copy-sequence reftex-index-macro-alist)
                 (lambda (a b) (equal (car a) default-macro))))
          macro entry key repeat)
-    
+
     (if master (set (make-local-variable 'TeX-master)
                     (file-name-nondirectory master)))
 
@@ -1238,9 +1238,10 @@ If the buffer is non-empty, delete the old header first."
       (if (looking-at reftex-index-phrases-comment-regexp)
           (beginning-of-line 2))
       (while (looking-at "^[ \t]*$")
-          (beginning-of-line 2))          
-      (cond ((fboundp 'zmacs-activate-region) (zmacs-activate-region))
-            ((boundp 'make-active) (setq mark-active t)))
+          (beginning-of-line 2))
+      (if (featurep 'xemacs)
+         (zmacs-activate-region)
+       (setq mark-active t))
       (if (yes-or-no-p "Delete and rebuild header? ")
           (delete-region (point-min) (point))))
 
@@ -1315,7 +1316,7 @@ Here are all local bindings.
   (setq major-mode 'reftex-index-phrases-mode
         mode-name "Phrases")
   (use-local-map reftex-index-phrases-map)
-  (set (make-local-variable 'font-lock-defaults) 
+  (set (make-local-variable 'font-lock-defaults)
        reftex-index-phrases-font-lock-defaults)
   (easy-menu-add reftex-index-phrases-menu reftex-index-phrases-map)
   (set (make-local-variable 'reftex-index-phrases-marker) (make-marker))
@@ -1325,7 +1326,7 @@ Here are all local bindings.
 ;; Font Locking stuff
 (let ((ss (if (featurep 'xemacs) 'secondary-selection ''secondary-selection)))
   (setq reftex-index-phrases-font-lock-keywords
-        (list 
+        (list
          (cons reftex-index-phrases-comment-regexp 'font-lock-comment-face)
          (list reftex-index-phrases-macrodef-regexp
                '(1 font-lock-type-face)
@@ -1349,7 +1350,7 @@ Here are all local bindings.
   (setq reftex-index-phrases-font-lock-defaults
         '((reftex-index-phrases-font-lock-keywords)
           nil t nil beginning-of-line))
-  (put 'reftex-index-phrases-mode 'font-lock-defaults 
+  (put 'reftex-index-phrases-mode 'font-lock-defaults
        reftex-index-phrases-font-lock-defaults) ; XEmacs
   )
 
@@ -1411,10 +1412,10 @@ match, the user will be asked to confirm the replacement."
                    (move-marker reftex-index-phrases-marker
                                 (match-beginning 0) (current-buffer))
                    ;; Start the query-replace
-                   (reftex-query-index-phrase-globally 
-                    files phrase macro-fmt 
+                   (reftex-query-index-phrase-globally
+                    files phrase macro-fmt
                     index-key repeat as-words)
-                   (message "%s replaced" 
+                   (message "%s replaced"
                             (reftex-number replace-count "occurrence"))))))
           (t (error "Cannot parse this line")))))
 
@@ -1457,7 +1458,7 @@ the document and stores the list in `reftex-index-phrases-files'."
           (unless buf (error "Master file %s not found" master))
           (set-buffer buf)
           (reftex-access-scan-info)
-          (setq reftex-index-phrases-files 
+          (setq reftex-index-phrases-files
                 (reftex-all-document-files))))
     ;; Parse the files header for macro definitions
     (setq reftex-index-phrases-macro-data nil)
@@ -1472,7 +1473,7 @@ the document and stores the list in `reftex-index-phrases-files'."
       ;; Reverse the list, so that the first macro is first
       (if (null reftex-index-phrases-macro-data)
           (error "No valid MACRO DEFINITION line in %s file (make sure to use TAB separators)" reftex-index-phrase-file-extension))
-      (setq reftex-index-phrases-macro-data 
+      (setq reftex-index-phrases-macro-data
             (nreverse reftex-index-phrases-macro-data))
       (goto-char (point-min)))))
 
@@ -1484,15 +1485,16 @@ you need to add/change text in an already indexed document and want to
 index the new part without having to go over the unchanged parts again."
   (interactive "r")
   (let ((win-conf (current-window-configuration))
-        (reftex-index-phrases-restrict-file (buffer-file-name)))        
+        (reftex-index-phrases-restrict-file (buffer-file-name)))
   (save-excursion
     (save-restriction
       (narrow-to-region beg end)
       (unwind-protect
           (progn
             ;; Hide the region highlighting
-            (cond ((fboundp 'zmacs-deactivate-region) (zmacs-deactivate-region))
-                  ((fboundp 'deactivate-mark) (deactivate-mark)))
+            (if (featurep 'xemacs)
+               (zmacs-deactivate-region)
+             (deactivate-mark))
             (delete-other-windows)
             (reftex-index-visit-phrases-buffer)
             (reftex-index-all-phrases))
@@ -1507,7 +1509,7 @@ index the new part without having to go over the unchanged parts again."
         (setq text (reftex-index-simplify-phrase text))
         (goto-char (point-min))
         (if (re-search-forward
-             (concat "^\\(\\S-*\\)\t\\(" (regexp-quote text) 
+             (concat "^\\(\\S-*\\)\t\\(" (regexp-quote text)
                      "\\) *[\t\n]") nil t)
             (progn
               (goto-char (match-end 2))
@@ -1537,7 +1539,7 @@ this function repeatedly."
           (let* ((phrase (match-string 3))
                  (case-fold-search reftex-index-phrases-case-fold-search)
                  (re (reftex-index-phrases-find-dup-re phrase t)))
-            (if (save-excursion 
+            (if (save-excursion
                   (goto-char (point-min))
                   (and (re-search-forward re nil t)
                        (re-search-forward re nil t)))
@@ -1591,7 +1593,7 @@ this function repeatedly."
           (while (re-search-forward re2 nil t)
             (push (cons (count-lines 1 (point)) (match-string 1)) superphrases)
             (incf ntimes2))))
-      (save-excursion
+      (save-current-buffer
         (while (setq file (pop files))
           (setq buf (reftex-get-file-buffer-force file))
           (when buf
@@ -1630,7 +1632,7 @@ this function repeatedly."
             (progn
               (princ (format " Superphrases:  Phrase matches the following %s in the phrase buffer:\n"
                              (reftex-number ntimes2 "line")))
-              (mapcar (lambda(x) 
+              (mapcar (lambda(x)
                         (princ (format "                Line %4d:  %s\n" (car x) (cdr x))))
                       (nreverse superphrases))))))))
 
@@ -1683,7 +1685,7 @@ it first compares the macro identifying chars and then the phrases."
         beg end)
     (goto-char (point-min))
     ;; Find first and last phrase line in buffer
-    (setq beg 
+    (setq beg
           (and (re-search-forward reftex-index-phrases-phrase-regexp12 nil t)
                (match-beginning 0)))
     (goto-char (point-max))
@@ -1710,15 +1712,15 @@ it first compares the macro identifying chars and then the phrases."
     (if (string-match reftex-index-phrases-phrase-regexp12 a)
         (progn
           ;; Extract macro char and phrase-or-key for a
-          (setq ca (match-string 1 a) 
-                pa (downcase 
+          (setq ca (match-string 1 a)
+                pa (downcase
                     (or (and reftex-index-phrases-sort-prefers-entry
                              (match-string 6 a))
                         (match-string 3 a))))
           (if (string-match reftex-index-phrases-phrase-regexp12 b)
               (progn
                 ;; Extract macro char and phrase-or-key for b
-                (setq cb (match-string 1 b) 
+                (setq cb (match-string 1 b)
                       pb (downcase
                           (or (and reftex-index-phrases-sort-prefers-entry
                                    (match-string 6 b))
@@ -1726,7 +1728,7 @@ it first compares the macro identifying chars and then the phrases."
                 (setq c-p (string< ca cb)
                       p-p (string< pa pb))
                 ;; Do the right comparison, based on the value of `chars-first'
-                ;; `chars-first' is bound locally in the calling function               
+                ;; `chars-first' is bound locally in the calling function
                 (if chars-first
                     (if (string= ca cb) p-p c-p)
                   (if (string= pa pb) c-p p-p)))))
@@ -1737,7 +1739,7 @@ it first compares the macro identifying chars and then the phrases."
       (not reftex-index-phrases-sort-in-blocks))))
 
 (defvar reftex-index-phrases-menu)
-(defun reftex-index-make-phrase-regexp (phrase &optional 
+(defun reftex-index-make-phrase-regexp (phrase &optional
                                                as-words allow-newline)
   "Return a regexp matching PHRASE, even if distributed over lines.
 With optional arg AS-WORDS, require word boundary at beginning and end.
@@ -1748,12 +1750,12 @@ With optional arg ALLOW-NEWLINE, allow single newline between words."
                      "\\([ \t]+\\)")))
     (concat (if (and as-words (string-match "\\`\\w" (car words)))
                 "\\(\\<\\|[`']\\)" "")
-            (mapconcat (lambda (w) (regexp-quote 
+            (mapconcat (lambda (w) (regexp-quote
                                     (if reftex-index-phrases-case-fold-search
                                         (downcase w)
                                       w)))
                        words space-re)
-            (if (and as-words 
+            (if (and as-words
                      (string-match "\\w\\'" (nth (1- (length words)) words)))
                 "\\(\\>\\|'\\)" ""))))
 
@@ -1776,8 +1778,8 @@ Treats the logical `and' for index phrases."
   (let ((index-keys (split-string (or index-key match)
                                   reftex-index-phrases-logical-and-regexp)))
     (concat
-     (mapconcat (lambda (x) 
-                  (format macro-fmt 
+     (mapconcat (lambda (x)
+                  (format macro-fmt
                           (format (if mathp reftex-index-math-format "%s") x)))
                 index-keys "")
    (if repeat (reftex-index-simplify-phrase match) ""))))
@@ -1789,7 +1791,7 @@ Treats the logical `and' for index phrases."
     (unless files (error "No files"))
     (unwind-protect
         (progn
-          (switch-to-buffer-other-window (reftex-get-file-buffer-force 
+          (switch-to-buffer-other-window (reftex-get-file-buffer-force
                                           (car files)))
           (catch 'no-more-files
             (while (setq file (pop files))
@@ -1829,12 +1831,12 @@ AS-WORDS means, the search for PHRASE should require word boundaries at
 both ends."
   (let* ((re (reftex-index-make-phrase-regexp phrase as-words 'allow-newline))
          (case-fold-search reftex-index-phrases-case-fold-search)
-         (index-keys (split-string 
+         (index-keys (split-string
                       (or index-key phrase)
                       reftex-index-phrases-logical-or-regexp))
          (nkeys (length index-keys))
          (ckey (nth 0 index-keys))
-         (all-yes nil) 
+         (all-yes nil)
          match rpl char (beg (make-marker)) (end (make-marker)) mathp)
     (move-marker beg 1)
     (move-marker end 1)
@@ -1858,16 +1860,16 @@ both ends."
                                                              end)))
                 (throw 'next-match nil))
             (reftex-highlight 0 (match-beginning 0) (match-end 0))
-            (setq rpl 
+            (setq rpl
                   (save-match-data
                     (reftex-index-make-replace-string
                      macro-fmt (match-string 0) ckey repeat mathp)))
-            (while 
+            (while
                 (not
                  (catch 'loop
                    (message "REPLACE: %s?   (yn!qoe%s?)"
                             rpl
-                            (if (> nkeys 1) 
+                            (if (> nkeys 1)
                                 (concat "1-" (int-to-string nkeys))
                               ""))
                    (setq char (if all-yes ?y (read-char-exclusive)))
@@ -1901,7 +1903,7 @@ both ends."
                          ((member char '(?o ?O))
                           ;; Select a differnt macro
                           (let* ((nc (reftex-index-select-phrases-macro 2))
-                                 (macro-data 
+                                 (macro-data
                                   (cdr (assoc nc reftex-index-phrases-macro-data)))
                                  (macro-fmt (car macro-data))
                                  (repeat (nth 1 macro-data)))
@@ -1919,7 +1921,7 @@ both ends."
                           ;; Recursive edit
                           (save-match-data
                             (save-excursion
-                              (message "%s" 
+                              (message "%s"
                                (substitute-command-keys
                                 "Recursive edit.  Resume with \\[exit-recursive-edit]"))
                               (recursive-edit))))
@@ -2054,7 +2056,7 @@ Does not do a save-excursion."
         ("\C-i"     . self-insert-command))
       do (define-key reftex-index-phrases-map (car x) (cdr x)))
 
-(easy-menu-define 
+(easy-menu-define
  reftex-index-phrases-menu reftex-index-phrases-map
  "Menu for Phrases buffer"
  '("Phrases"
@@ -2101,5 +2103,5 @@ Does not do a save-excursion."
    ["Save and Return" reftex-index-phrases-save-and-return t]))
 
 
-;;; arch-tag: 4b2362af-c156-42c1-8932-ea2823e205c1
+;; arch-tag: 4b2362af-c156-42c1-8932-ea2823e205c1
 ;;; reftex-index.el ends here