emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/textmodes/reftex-global.el [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/reftex-global.el [lexbind]
Date: Tue, 14 Oct 2003 19:30:36 -0400

Index: emacs/lisp/textmodes/reftex-global.el
diff -c emacs/lisp/textmodes/reftex-global.el:1.11.4.1 
emacs/lisp/textmodes/reftex-global.el:1.11.4.2
*** emacs/lisp/textmodes/reftex-global.el:1.11.4.1      Fri Apr  4 01:20:39 2003
--- emacs/lisp/textmodes/reftex-global.el       Tue Oct 14 19:30:22 2003
***************
*** 1,8 ****
  ;;; reftex-global.el --- operations on entire documents with RefTeX
! ;; Copyright (c) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  
  ;; Author: Carsten Dominik <address@hidden>
! ;; Version: 4.18
  
  ;; This file is part of GNU Emacs.
  
--- 1,8 ----
  ;;; reftex-global.el --- operations on entire documents with RefTeX
! ;; Copyright (c) 1997, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
  
  ;; Author: Carsten Dominik <address@hidden>
! ;; Version: 4.21
  
  ;; This file is part of GNU Emacs.
  
***************
*** 107,132 ****
    (reftex-access-scan-info t)
  
    (let ((master (reftex-TeX-master-file))
!       (cnt 0)
          (dlist
           (mapcar
!         (lambda (x)
!           (let (x1)
!             (cond
!              ((memq (car x)
!                     '(toc bof eof bib thebib label-numbers xr xr-doc
!                           master-dir file-error bibview-cache appendix
!                           is-multi index))
!               nil)
!              (t
!               (setq x1 (reftex-all-assoc-string
!                         (car x) (symbol-value reftex-docstruct-symbol)))
!               (if (< 1 (length x1))
!                   (append (list (car x))
!                           (mapcar (lambda(x)
!                                     (abbreviate-file-name (nth 3 x)))
!                                   x1))
!                 (list nil))))))
            (reftex-uniquify-by-car (symbol-value reftex-docstruct-symbol)))))
  
      (setq dlist (reftex-uniquify-by-car dlist))
--- 107,132 ----
    (reftex-access-scan-info t)
  
    (let ((master (reftex-TeX-master-file))
!         (cnt 0)
          (dlist
           (mapcar
!           (lambda (x)
!             (let (x1)
!               (cond
!                ((memq (car x)
!                       '(toc bof eof bib thebib label-numbers xr xr-doc
!                             master-dir file-error bibview-cache appendix
!                             is-multi index))
!                 nil)
!                (t
!                 (setq x1 (reftex-all-assoc-string
!                           (car x) (symbol-value reftex-docstruct-symbol)))
!                 (if (< 1 (length x1))
!                     (append (list (car x))
!                             (mapcar (lambda(x)
!                                       (abbreviate-file-name (nth 3 x)))
!                                     x1))
!                   (list nil))))))
            (reftex-uniquify-by-car (symbol-value reftex-docstruct-symbol)))))
  
      (setq dlist (reftex-uniquify-by-car dlist))
***************
*** 135,153 ****
      (set (make-local-variable 'TeX-master) master)
      (erase-buffer)
      (insert "                MULTIPLE LABELS IN CURRENT DOCUMENT:\n")
!     (insert
       " Move point to label and type `r' to run a query-replace on the label\n"
       " and its references.  Type `q' to exit this buffer.\n\n")
      (insert " LABEL               FILE\n")
      (insert " 
-------------------------------------------------------------\n")
      (use-local-map (make-sparse-keymap))
      (local-set-key [?q] (lambda () "Kill this buffer." (interactive)
!                         (kill-buffer (current-buffer)) (delete-window)))
      (local-set-key [?r] 'reftex-change-label)
      (while dlist
        (when (and (car (car dlist))
                   (cdr (car dlist)))
!       (incf cnt)
          (insert (mapconcat 'identity (car dlist) "\n    ") "\n"))
        (pop dlist))
      (goto-char (point-min))
--- 135,153 ----
      (set (make-local-variable 'TeX-master) master)
      (erase-buffer)
      (insert "                MULTIPLE LABELS IN CURRENT DOCUMENT:\n")
!     (insert 
       " Move point to label and type `r' to run a query-replace on the label\n"
       " and its references.  Type `q' to exit this buffer.\n\n")
      (insert " LABEL               FILE\n")
      (insert " 
-------------------------------------------------------------\n")
      (use-local-map (make-sparse-keymap))
      (local-set-key [?q] (lambda () "Kill this buffer." (interactive)
!                           (kill-buffer (current-buffer)) (delete-window)))
      (local-set-key [?r] 'reftex-change-label)
      (while dlist
        (when (and (car (car dlist))
                   (cdr (car dlist)))
!         (incf cnt)
          (insert (mapconcat 'identity (car dlist) "\n    ") "\n"))
        (pop dlist))
      (goto-char (point-min))
***************
*** 157,163 ****
        (message "Document does not contain duplicate labels."))))
  
  (defun reftex-change-label (&optional from to)
!   "Run `query-replace-regexp' of FROM with TO in all \\label and \\ref 
commands.
  Works on the entire multifile document.
  If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
  with the command \\[tags-loop-continue].
--- 157,163 ----
        (message "Document does not contain duplicate labels."))))
  
  (defun reftex-change-label (&optional from to)
!   "Run `query-replace-regexp' of FROM with TO in all macro arguments.
  Works on the entire multifile document.
  If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
  with the command \\[tags-loop-continue].
***************
*** 172,179 ****
        (setq to (read-string (format "Replace label %s with: "
                                      from))))
      (reftex-query-replace-document
!      (concat "\\\\\\(label\\|[a-zA-Z]*ref\\){" (regexp-quote from) "}")
!      (format "\\\\\\1{%s}" to))))
  
  (defun reftex-renumber-simple-labels ()
    "Renumber all simple labels in the document to make them sequentially.
--- 172,179 ----
        (setq to (read-string (format "Replace label %s with: "
                                      from))))
      (reftex-query-replace-document
!      (concat "{" (regexp-quote from) "}")
!      (format "{%s}" to))))
  
  (defun reftex-renumber-simple-labels ()
    "Renumber all simple labels in the document to make them sequentially.
***************
*** 190,222 ****
    (reftex-access-scan-info 1)
    ;; Get some insurance
    (if (and (reftex-is-multi)
!          (not (yes-or-no-p "Replacing all simple labels in multiple files is 
risky.  Continue? ")))
        (error "Abort"))
    ;; Make the translation list
!   (let* ((re-core (concat "\\("
!                         (mapconcat 'cdr reftex-typekey-to-prefix-alist "\\|")
!                         "\\)"))
!        (label-re (concat "\\`" re-core "\\([0-9]+\\)\\'"))
!        (search-re (concat "[{,]\\(" re-core "\\([0-9]+\\)\\)[,}]"))
!        (error-fmt "Undefined label or reference %s. Ignore and continue? ")
!        (label-numbers-alist (mapcar (lambda (x) (cons (cdr x) 0))
!                                     reftex-typekey-to-prefix-alist))
!        (files (reftex-all-document-files))
!        (list (symbol-value reftex-docstruct-symbol))
!        translate-alist n entry label new-label nr-cell changed-sequence)
  
      (while (setq entry (pop list))
        (when (and (stringp (car entry))
!                (string-match label-re (car entry)))
!       (setq label (car entry)
!             nr-cell (assoc (match-string 1 (car entry))
!                            label-numbers-alist))
!       (if (assoc label translate-alist)
!           (error "Duplicate label %s" label))
!       (setq new-label (concat (match-string 1 (car entry))
!                               (int-to-string (incf (cdr nr-cell)))))
!       (push (cons label new-label) translate-alist)
!       (or (string= label new-label) (setq changed-sequence t))))
  
      (unless changed-sequence
        (error "Simple labels are already in correct sequence"))
--- 190,222 ----
    (reftex-access-scan-info 1)
    ;; Get some insurance
    (if (and (reftex-is-multi)
!            (not (yes-or-no-p "Replacing all simple labels in multiple files 
is risky.  Continue? ")))
        (error "Abort"))
    ;; Make the translation list
!   (let* ((re-core (concat "\\(" 
!                           (mapconcat 'cdr reftex-typekey-to-prefix-alist 
"\\|") 
!                           "\\)"))
!          (label-re (concat "\\`" re-core "\\([0-9]+\\)\\'"))
!          (search-re (concat "[{,]\\(" re-core "\\([0-9]+\\)\\)[,}]"))
!          (error-fmt "Undefined label or reference %s. Ignore and continue? ")
!          (label-numbers-alist (mapcar (lambda (x) (cons (cdr x) 0))
!                                       reftex-typekey-to-prefix-alist))
!          (files (reftex-all-document-files))
!          (list (symbol-value reftex-docstruct-symbol))
!          translate-alist n entry label new-label nr-cell changed-sequence)
  
      (while (setq entry (pop list))
        (when (and (stringp (car entry))
!                  (string-match label-re (car entry)))
!         (setq label (car entry)
!               nr-cell (assoc (match-string 1 (car entry))
!                              label-numbers-alist))
!         (if (assoc label translate-alist)
!             (error "Duplicate label %s" label))
!         (setq new-label (concat (match-string 1 (car entry))
!                                 (int-to-string (incf (cdr nr-cell)))))
!         (push (cons label new-label) translate-alist)
!         (or (string= label new-label) (setq changed-sequence t))))
  
      (unless changed-sequence
        (error "Simple labels are already in correct sequence"))
***************
*** 227,305 ****
      (reftex-save-all-document-buffers)
  
      ;; First test to check for erros
!     (setq n (reftex-translate
!            files search-re translate-alist error-fmt 'test))
  
      ;; Now the real thing.
!     (if (yes-or-no-p
!        (format "Replace %d items at %d places in %d files? "
!                (length translate-alist) n (length files)))
!       (progn
!         (let ((inhibit-quit t))  ;; Do not disturb...
!           (reftex-translate
!            files search-re translate-alist error-fmt nil)
!           (setq quit-flag nil))
!         (if (and (reftex-is-multi)
!                  (yes-or-no-p "Save entire document? "))
!             (reftex-save-all-document-buffers))
!         ;; Rescan again...
!         (reftex-access-scan-info 1)
!         (message "Done replacing simple labels."))
        (message "No replacements done"))))
  
  (defun reftex-translate (files search-re translate-alist error-fmt test)
    ;; In FILES, look for SEARCH-RE and replace match 1 of it with
!   ;; its association in TRANSLATE-ALSIT.
    ;; If we do not find an association and TEST is non-nil, query
!   ;; to ignore the problematic string.
    ;; If TEST is nil, it is ignored without query.
    ;; Return the number of replacements.
    (let ((n 0) file label match-data buf macro pos cell)
      (while (setq file (pop files))
        (setq buf (reftex-get-file-buffer-force file))
        (unless buf
!       (error "No such file %s" file))
        (set-buffer buf)
        (save-excursion
!       (save-restriction
!         (widen)
!         (goto-char (point-min))
!         (while (re-search-forward search-re nil t)
!           (backward-char)
!           (save-excursion
!             (setq label (reftex-match-string 1)
!                   cell (assoc label translate-alist)
!                   match-data (match-data)
!                   macro (reftex-what-macro 1)
!                   pos (cdr macro))
!             (goto-char (or pos (point)))
!             (when (and macro
!                        (or (looking-at "\\\\ref")
!                            (looking-at 
"\\\\[a-zA-Z]*ref\\(range\\)?[^a-zA-Z]")
!                            (looking-at "\\\\ref[a-zA-Z]*[^a-zA-Z]")
!                            (looking-at (format
!                                         reftex-find-label-regexp-format
!                                         (regexp-quote label)))))
!               ;; OK, we should replace it.
!               (set-match-data match-data)
!               (cond
!                ((and test (not cell))
!                 ;; We've got a problem
!                 (unwind-protect
!                     (progn
!                       (reftex-highlight 1 (match-beginning 0) (match-end 0))
!                       (ding)
!                       (or (y-or-n-p (format error-fmt label))
!                           (error "Abort")))
!                   (reftex-unhighlight 1)))
!                ((and test cell)
!                 (incf n))
!                ((and (not test) cell)
!                 ;; Replace
!                 (goto-char (match-beginning 1))
!                 (delete-region (match-beginning 1) (match-end 1))
!                 (insert (cdr cell)))
!                (t nil))))))))
      n))
  
  (defun reftex-save-all-document-buffers ()
--- 227,305 ----
      (reftex-save-all-document-buffers)
  
      ;; First test to check for erros
!     (setq n (reftex-translate 
!              files search-re translate-alist error-fmt 'test))
  
      ;; Now the real thing.
!     (if (yes-or-no-p 
!          (format "Replace %d items at %d places in %d files? "
!                  (length translate-alist) n (length files)))
!         (progn
!           (let ((inhibit-quit t))  ;; Do not disturb...
!             (reftex-translate
!              files search-re translate-alist error-fmt nil)
!             (setq quit-flag nil))
!           (if (and (reftex-is-multi)
!                    (yes-or-no-p "Save entire document? "))
!               (reftex-save-all-document-buffers))
!           ;; Rescan again...
!           (reftex-access-scan-info 1)
!           (message "Done replacing simple labels."))
        (message "No replacements done"))))
  
  (defun reftex-translate (files search-re translate-alist error-fmt test)
    ;; In FILES, look for SEARCH-RE and replace match 1 of it with
!   ;; its association in TRANSLATE-ALSIT.  
    ;; If we do not find an association and TEST is non-nil, query
!   ;; to ignore the problematic string.  
    ;; If TEST is nil, it is ignored without query.
    ;; Return the number of replacements.
    (let ((n 0) file label match-data buf macro pos cell)
      (while (setq file (pop files))
        (setq buf (reftex-get-file-buffer-force file))
        (unless buf
!         (error "No such file %s" file))
        (set-buffer buf)
        (save-excursion
!         (save-restriction
!           (widen)
!           (goto-char (point-min))
!           (while (re-search-forward search-re nil t)
!             (backward-char)
!             (save-excursion
!               (setq label (reftex-match-string 1)
!                     cell (assoc label translate-alist)
!                     match-data (match-data)
!                     macro (reftex-what-macro 1)
!                     pos (cdr macro))
!               (goto-char (or pos (point)))
!               (when (and macro
!                          (or (looking-at "\\\\ref")
!                              (looking-at 
"\\\\[a-zA-Z]*ref\\(range\\)?[^a-zA-Z]")
!                              (looking-at "\\\\ref[a-zA-Z]*[^a-zA-Z]")
!                              (looking-at (format 
!                                           reftex-find-label-regexp-format
!                                           (regexp-quote label)))))
!                 ;; OK, we should replace it.
!                 (set-match-data match-data)
!                 (cond
!                  ((and test (not cell))
!                   ;; We've got a problem
!                   (unwind-protect
!                       (progn
!                         (reftex-highlight 1 (match-beginning 0) (match-end 0))
!                         (ding)
!                         (or (y-or-n-p (format error-fmt label))
!                             (error "Abort")))
!                     (reftex-unhighlight 1)))
!                  ((and test cell)
!                   (incf n))
!                  ((and (not test) cell)
!                   ;; Replace
!                   (goto-char (match-beginning 1))
!                   (delete-region (match-beginning 1) (match-end 1))
!                   (insert (cdr cell)))
!                  (t nil))))))))
      n))
  
  (defun reftex-save-all-document-buffers ()
***************
*** 308,320 ****
  labels."
    (interactive)
    (let ((files (reftex-all-document-files))
!       file buffer)
      (save-excursion
        (while (setq file (pop files))
!       (setq buffer (reftex-get-buffer-visiting file))
!       (when buffer
!         (set-buffer buffer)
!         (save-buffer))))))
  
  (defun reftex-ensure-write-access (files)
    "Make sure we have write access to all files in FILES.
--- 308,320 ----
  labels."
    (interactive)
    (let ((files (reftex-all-document-files))
!         file buffer)
      (save-excursion
        (while (setq file (pop files))
!         (setq buffer (reftex-get-buffer-visiting file))
!         (when buffer
!           (set-buffer buffer)
!           (save-buffer))))))
  
  (defun reftex-ensure-write-access (files)
    "Make sure we have write access to all files in FILES.
***************
*** 322,341 ****
    (let (file buf)
      (while (setq file (pop files))
        (unless (file-exists-p file)
!       (ding)
!       (or (y-or-n-p (format "No such file %s. Continue? " file))
!           (error "Abort")))
        (unless (file-writable-p file)
!       (ding)
!       (or (y-or-n-p (format "No write access to %s. Continue? " file))
!           (error "Abort")))
        (when (and (setq buf (reftex-get-buffer-visiting file))
!                (save-excursion
!                  (set-buffer buf)
!                  buffer-read-only))
!       (ding)
!       (or (y-or-n-p (format "Buffer %s is read-only. Continue? "
!                             (buffer-name buf)))
!           (error "Abort"))))))
  
  ;;; reftex-global.el ends here
--- 322,342 ----
    (let (file buf)
      (while (setq file (pop files))
        (unless (file-exists-p file)
!         (ding)
!         (or (y-or-n-p (format "No such file %s. Continue? " file))
!             (error "Abort")))
        (unless (file-writable-p file)
!         (ding)
!         (or (y-or-n-p (format "No write access to %s. Continue? " file))
!             (error "Abort")))
        (when (and (setq buf (reftex-get-buffer-visiting file))
!                  (save-excursion
!                    (set-buffer buf)
!                    buffer-read-only))
!         (ding)
!         (or (y-or-n-p (format "Buffer %s is read-only. Continue? "
!                               (buffer-name buf)))
!             (error "Abort"))))))
  
+ ;;; arch-tag: 2dbf7633-92c8-4340-8656-7aa019d0f80d
  ;;; reftex-global.el ends here




reply via email to

[Prev in Thread] Current Thread [Next in Thread]