summaryrefslogtreecommitdiff
path: root/lisp/textmodes/texinfo.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2000-12-02 15:33:30 +0000
committerEli Zaretskii <eliz@gnu.org>2000-12-02 15:33:30 +0000
commit9768eaa75d86f08bcea5aaf477693d58f8471cb0 (patch)
tree781b39274261b4adaad38ba5f49ac63e6385b4fa /lisp/textmodes/texinfo.el
parentd3e7e7cf2c868daaf915c9c10a8f57675d02dc56 (diff)
downloademacs-9768eaa75d86f08bcea5aaf477693d58f8471cb0.tar.gz
(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.
Diffstat (limited to 'lisp/textmodes/texinfo.el')
-rw-r--r--lisp/textmodes/texinfo.el28
1 files changed, 23 insertions, 5 deletions
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el
index 7f5ff90484b..0564fe766a5 100644
--- a/lisp/textmodes/texinfo.el
+++ b/lisp/textmodes/texinfo.el
@@ -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 @@ chapter."
;;; 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 @@ Puts point on a blank line between them."
(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