;;; reftex.el --- minor mode for doing \label, \ref, \cite, \index in LaTeX
;; Copyright (C) 1997, 1998, 1999, 2000, 2003, 2004, 2005,
-;; 2006, 2007, 2008 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
;; 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 3, 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
;; 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/>.
;;---------------------------------------------------------------------------
;;
;;; Index support
(autoload 'reftex-index "reftex-index"
- "Query for an index macro and insert it along with its argments." t)
+ "Query for an index macro and insert it along with its arguments." t)
(autoload 'reftex-index-selection-or-word "reftex-index"
"Put selection or the word near point into the default index macro." t)
(autoload 'reftex-index-phrase-selection-or-word "reftex-index"
(let ((buffer-read-only nil)) (erase-buffer)))
((setq buffer (get-buffer buffer))
;; buffer exists
- (save-excursion
- (set-buffer buffer)
- (let ((buffer-read-only nil)) (erase-buffer))))))
+ (with-current-buffer buffer
+ (let ((inhibit-read-only t)) (erase-buffer))))))
(defun reftex-this-word (&optional class)
;; Grab the word around point.
;; with limited Magic
;; The magic goes away
- (let ((format-alist nil)
- (auto-mode-alist (reftex-auto-mode-alist))
- (default-major-mode 'fundamental-mode)
- (enable-local-variables nil)
- (after-insert-file-functions nil))
+ (letf ((format-alist nil)
+ (auto-mode-alist (reftex-auto-mode-alist))
+ ((default-value 'major-mode) 'fundamental-mode)
+ (enable-local-variables nil)
+ (after-insert-file-functions nil))
(setq buf (find-file-noselect file)))
;; Is there a hook to run?
(when (listp reftex-initialize-temporary-buffers)
- (save-excursion
- (set-buffer buf)
+ (with-current-buffer buf
(run-hooks 'reftex-initialize-temporary-buffers))))
;; Lets see if we got a license to kill :-|
(and (buffer-modified-p buffer)
(y-or-n-p (format "Save file %s? "
(buffer-file-name buffer)))
- (save-excursion
- (set-buffer buffer)
+ (with-current-buffer buffer
(save-buffer)))
(kill-buffer buffer))
(pop reftex-buffers-to-kill)))))
'(define-key bibtex-mode-map "\C-c&" 'reftex-view-crossref-from-bibtex))
;; If the user requests so, she can have a few more bindings:
+;; For most of these commands there are already bindings in place.
+;; Setting `reftex-extra-bindings' really is only there to spare users
+;; the hassle of defining bindings in the user space themselves. This
+;; is why they violate the key binding recommendations.
+(defvar reftex-extra-bindings-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map "t" 'reftex-toc)
+ (define-key map "l" 'reftex-label)
+ (define-key map "r" 'reftex-reference)
+ (define-key map "c" 'reftex-citation)
+ (define-key map "v" 'reftex-view-crossref)
+ (define-key map "g" 'reftex-grep-document)
+ (define-key map "s" 'reftex-search-document)
+ map)
+ "Reftex extra bindings map")
+
(when reftex-extra-bindings
- (loop for x in
- '(("\C-ct" . reftex-toc)
- ("\C-cl" . reftex-label)
- ("\C-cr" . reftex-reference)
- ("\C-cc" . reftex-citation)
- ("\C-cv" . reftex-view-crossref)
- ("\C-cg" . reftex-grep-document)
- ("\C-cs" . reftex-search-document))
- do (define-key reftex-mode-map (car x) (cdr x))))
+ (define-key reftex-mode-map
+ reftex-extra-bindings-prefix
+ reftex-extra-bindings-map))
+
;;; =========================================================================
;;;