changeset 34119:fb272ca0c0b1

(texinfo-open-quote, texinfo-close-quote): New defcustoms. (texinfo-insert-quote): Don't call tex-insert-quote, to avoid autoloading tex-mode; instead, do the same manually. Use texinfo-open-quote and texinfo-close-quote. Insert literal quote with numeric argument. Docstring fix. (toplevel): Require cl when compiling.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 02 Dec 2000 15:31:23 +0000
parents b9afad6c9fb8
children 1fce381f3bda
files lisp/textmodes/texinfo.el
diffstat 1 files changed, 23 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/texinfo.el	Sat Dec 02 15:30:10 2000 +0000
+++ b/lisp/textmodes/texinfo.el	Sat Dec 02 15:31:23 2000 +0000
@@ -37,6 +37,18 @@
   "Texinfo Mode"
   :group 'docs)
 
+;;;###autoload
+(defcustom texinfo-open-quote "``"
+  "*String inserted by typing \\[texinfo-insert-quote] to open a quotation."
+  :type 'string
+  :group 'texinfo)
+
+;;;###autoload
+(defcustom texinfo-close-quote "''"
+  "*String inserted by typing \\[texinfo-insert-quote] to close a quotation."
+  :type 'string
+  :group 'texinfo)
+
 
 ;;; Autoloads:
 
@@ -241,6 +253,7 @@
 ;;; Code:
 
 ;;; Don't you dare insert any `require' calls at top level in this file--rms.
+(eval-when-compile (require 'cl)) ;; for ignore-errors
 
 (defvar texinfo-section-list
   '(("top" 1)
@@ -655,18 +668,23 @@
     (and (re-search-backward (concat "@\\(end\\s +\\)?" env) bound t)
 	 (looking-at (concat "@" env)))))
 
-(autoload 'tex-insert-quote "tex-mode" nil t)
 (defun texinfo-insert-quote (&optional arg)
   "Insert the appropriate quote mark for TeXinfo.
-Inserts a plain \" if inside @code or @example, else inserts `` or ''
-by calling `tex-insert-quote'."
+Usually inserts the value of `texinfo-open-quote' (normally ``) or
+`texinfo-close-quote' (normally ''), depending on the context.
+With prefix argument or inside @code or @example, inserts a plain \"."
   (interactive "*P")
   (let ((top (or (save-excursion (re-search-backward "@node\\>" nil t))
 		 (point-min))))
-    (if (or (texinfo-inside-env-p "example\\>" top)
+    (if (or arg
+	    (texinfo-inside-env-p "example\\>" top)
 	    (texinfo-inside-macro-p "@code\\>" top))
 	(self-insert-command (prefix-numeric-value arg))
-      (tex-insert-quote arg))))
+      (insert
+       (cond ((= (preceding-char) ?\\) ?\")
+	     ((memq (char-syntax (preceding-char)) '(?\( ?> ?\ ))
+	      texinfo-open-quote)
+	     (t texinfo-close-quote))))))
 	
 ;; The following texinfo-insert-@end command not only inserts a SPC
 ;; after the @end, but tries to find out what belongs there.  It is