branch: externals/auctex
commit d7e6fa0d418b66dbaaef56d723bc22b1a9862b8e
Author: Ikumi Keita <ik...@ikumi.que.jp>
Commit: Ikumi Keita <ik...@ikumi.que.jp>

    Cleanup `TeX-insert-dollar'
    
    * tex.el (TeX-insert-dollar): Don't insert "\)\(" when we have empty
    active region and `TeX-electric-math' is ("\(" . "\)").
    Use `insert-char' instead of `insert'+`make-string' to insert multiple
    "$"s.
    Supply FIXEDCASE argument for `replace-match'.
    Use `save-excursion' for robustness to blink matching paren.
    Add "*" at the beginning of interactive spec to declare explicitly
    it's invalid in read-only buffer.
    Fix line break of doc string and comment.
    (TeX-symbol-marker,TeX-symbol-marker-pos,TeX-dollar-sign)
    (TeX-dollar-string,TeX-dollar-regexp): Declare as obsolete explicitly.
    * doc/auctex.texi (Quotes): Write cons value in "(A . B)" form instead
    of "(cons A B)".
---
 doc/auctex.texi |  8 ++++----
 tex.el          | 56 ++++++++++++++++++++++++++++++--------------------------
 2 files changed, 34 insertions(+), 30 deletions(-)

diff --git a/doc/auctex.texi b/doc/auctex.texi
index fb34568b44..d323e6f272 100644
--- a/doc/auctex.texi
+++ b/doc/auctex.texi
@@ -433,14 +433,14 @@ will blink when @code{blink-matching-paren} is non-nil.  
If
 @code{TeX-electric-math} is nil, typing @kbd{$} simply inserts @samp{$}
 at point, this is the default.
 
-Besides @code{nil}, possible values for this variable are @code{(cons
-"$" "$")} for @TeX{} inline equations @samp{$...$}, and @code{(cons
-"\\(" "\\)")} for @LaTeX{} inline equations @samp{\(...\)}.
+Besides @code{nil}, possible values for this variable are @code{("$"
+. "$")} for @TeX{} inline equations @samp{$...$}, and @code{("\(" . "\)")}
+for @LaTeX{} inline equations @samp{\(...\)}.
 
 If the variable is non-nil and point is inside math mode right between a
 couple of single dollars, pressing @kbd{$} will insert another pair of
 dollar signs and leave the point between them.  Thus, if
-@code{TeX-electric-math} is set to @code{(cons "$" "$")} you can easily
+@code{TeX-electric-math} is set to @code{("$" . "$")} you can easily
 obtain a @TeX{} display equation @samp{$$...$$} by pressing @kbd{$}
 twice in a row.  (Note that you should not use double dollar signs in
 @LaTeX{} because this practice can lead to wrong spacing in typeset
diff --git a/tex.el b/tex.el
index 0494f7daaa..a52bf3cbf3 100644
--- a/tex.el
+++ b/tex.el
@@ -5891,18 +5891,20 @@ See also `TeX-font-replace' and 
`TeX-font-replace-function'."
 ;; Rewritten from scratch with use of `texmathp' by
 ;; Carsten Dominik <domi...@strw.leidenuniv.nl>
 
+;; The following variables are no longer used, but kept in case some
+;; foreign code uses any of them.
 (defvar TeX-symbol-marker nil)
-
 (defvar TeX-symbol-marker-pos 0)
-
-;; The following constants are no longer used, but kept in case some
-;; foreign code uses any of them.
-(defvar TeX-dollar-sign ?$
-  "Character used to enter and leave math mode in TeX.")
+(defvar TeX-dollar-sign ?$)
 (defconst TeX-dollar-string (char-to-string TeX-dollar-sign))
 (defconst TeX-dollar-regexp
   (concat "^" (regexp-quote TeX-dollar-string) "\\|[^" TeX-esc "]"
           (regexp-quote TeX-dollar-string)))
+(make-obsolete-variable 'TeX-symbol-marker nil "AUCTeX 9.9d++")
+(make-obsolete-variable 'TeX-symbol-marker-pos nil "AUCTeX 9.9d++")
+(make-obsolete-variable 'TeX-dollar-sign nil "AUCTeX 9.9d++")
+(make-obsolete-variable 'TeX-dollar-string nil "AUCTeX 9.9d++")
+(make-obsolete-variable 'TeX-dollar-regexp nil "AUCTeX 9.9d++")
 
 (defcustom TeX-math-toggle-off-input-method t
   "If non-nil, auto turn off some input methods when entering math mode.
@@ -5947,19 +5949,19 @@ the TeX math mode and `blink-matching-paren' is non-nil.
 When outside math mode, the behavior is controlled by the variable
 `TeX-electric-math'.
 
-With raw \\[universal-argument] prefix, insert exactly one dollar
-sign.  With optional ARG, insert that many dollar signs."
-  (interactive "P")
+With raw \\[universal-argument] prefix, insert exactly one dollar sign.
+With optional ARG, insert that many dollar signs."
+  (interactive "*P")
   (cond
    ((and arg (listp arg))
     ;; C-u always inserts one
     (insert "$"))
    (arg
     ;; Numerical arg inserts that many
-    (insert (make-string (prefix-numeric-value arg) ?\$)))
+    (insert-char ?\$ (prefix-numeric-value arg)))
    ((or (TeX-escaped-p) (TeX-verbatim-p))
-    ;; Point is escaped with `\' or is in a verbatim-like construct, so just
-    ;; insert one $.
+    ;; Point is escaped with `\' or is in a verbatim-like construct,
+    ;; so just insert one $.
     (insert "$"))
    ((texmathp)
     ;; We are inside math mode
@@ -5967,16 +5969,17 @@ sign.  With optional ARG, insert that many dollar 
signs."
      ((and TeX-electric-math
            (eq (preceding-char) ?\$)
            (eq (following-char) ?\$))
-      ;; Point is between "$$" and `TeX-electric-math' is non-nil - insert
-      ;; another pair of dollar signs and leave point between them.
+      ;; Point is between "$$" and `TeX-electric-math' is non-nil -
+      ;; insert another pair of dollar signs and leave point between
+      ;; them.
       (insert "$$")
       (backward-char))
      ((and (stringp (car texmathp-why))
            (string-equal (substring (car texmathp-why) 0 1) "\$"))
       ;; Math mode was turned on with $ or $$ - insert a single $.
       (insert "$")
-      ;; Compatibility, `TeX-math-close-double-dollar' has been removed
-      ;; after AUCTeX 11.87.
+      ;; Compatibility, `TeX-math-close-double-dollar' has been
+      ;; removed after AUCTeX 11.87.
       (if (boundp 'TeX-math-close-double-dollar)
           (message
            (concat "`TeX-math-close-double-dollar' has been removed,"
@@ -5993,35 +5996,37 @@ sign.  With optional ARG, insert that many dollar 
signs."
                      (buffer-substring
                       (point) (progn (end-of-line) (point))))))))
      (t
-      ;; Math mode was not entered with dollar - we cannot finish it with one.
+      ;; Math mode was not entered with dollar - we cannot finish it
+      ;; with one.
       (message "Math mode started with `%s' cannot be closed with dollar"
                (car texmathp-why)))))
    (t
     ;; Just somewhere in the text.
     (cond
-     ((and TeX-electric-math (TeX-active-mark))
+     ((and TeX-electric-math (TeX-active-mark)
+           (/= (point) (mark)))
       (if (> (point) (mark))
           (exchange-point-and-mark))
       (cond
        ;; $...$ to $$...$$
        ((and (eq last-command #'TeX-insert-dollar)
              (re-search-forward "\\=\\$\\([^$][^z-a]*[^$]\\)\\$" (mark) t))
-        (replace-match "$$\\1$$")
+        (replace-match "$$\\1$$" t)
         (set-mark (match-beginning 0)))
        ;; \(...\) to \[...\]
        ((and (eq last-command #'TeX-insert-dollar)
              (re-search-forward "\\=\\\\(\\([^z-a]*\\)\\\\)" (mark) t))
-        (replace-match "\\\\[\\1\\\\]")
+        (replace-match "\\\\[\\1\\\\]" t)
         (set-mark (match-beginning 0)))
        ;; Strip \[...\] or $$...$$
        ((and (eq last-command #'TeX-insert-dollar)
              (or (re-search-forward "\\=\\\\\\[\\([^z-a]*\\)\\\\\\]" (mark) t)
                  (re-search-forward "\\=\\$\\$\\([^z-a]*\\)\\$\\$" (mark) t)))
-        (replace-match "\\1")
+        (replace-match "\\1" t)
         (set-mark (match-beginning 0)))
        (t
-        ;; We use `save-excursion' because point must be situated before 
opening
-        ;; symbol.
+        ;; We use `save-excursion' because point must be situated
+        ;; before opening symbol.
         (save-excursion (insert (car TeX-electric-math)))
         (exchange-point-and-mark)
         (insert (cdr TeX-electric-math))))
@@ -6031,10 +6036,9 @@ sign.  With optional ARG, insert that many dollar signs."
       (insert (car TeX-electric-math))
       (save-excursion (insert (cdr TeX-electric-math)))
       (if blink-matching-paren
-          (progn
+          (save-excursion
             (backward-char)
-            (sit-for blink-matching-delay)
-            (forward-char))))
+            (sit-for blink-matching-delay))))
      ;; In any other case just insert a single $.
      ((insert "$")))))
   (TeX-math-input-method-off))


Reply via email to