X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/6c96b8933b2c5b5c85d8fa0c3f77431f5dae2e27..ea0857a126fbd38e96fd499c7173341a3e8614b6:/lisp/textmodes/texinfo.el
diff --git a/lisp/textmodes/texinfo.el b/lisp/textmodes/texinfo.el
index a06ac1bfd5..52b9ab092a 100644
--- a/lisp/textmodes/texinfo.el
+++ b/lisp/textmodes/texinfo.el
@@ -1,7 +1,7 @@
-;;; texinfo.el --- major mode for editing Texinfo files -*- coding: iso-2022-7bit -*-
+;;; texinfo.el --- major mode for editing Texinfo files -*- coding: utf-8 -*-
-;; Copyright (C) 1985, 1988, 1989, 1990, 1991, 1992, 1993, 1996, 1997,
-;; 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1988-1993, 1996-1997, 2000-2012
+;; Free Software Foundation, Inc.
;; Author: Robert J. Chassell
;; Date: [See date below for texinfo-version]
@@ -10,10 +10,10 @@
;; 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 2, 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
@@ -21,9 +21,7 @@
;; 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 .
;;; Todo:
@@ -34,14 +32,7 @@
;;; Code:
-(or (fboundp 'defgroup)
- (defmacro defgroup (&rest ignore) nil))
-
-(or (fboundp 'defcustom)
- (defmacro defcustom (var value doc &rest ignore)
- `(defvar ,var ,value ,doc)))
-
-(eval-when-compile (require 'tex-mode) (require 'cl))
+(eval-when-compile (require 'tex-mode))
(defvar outline-heading-alist)
(defgroup texinfo nil
@@ -50,14 +41,14 @@
:group 'docs)
;;;###autoload
-(defcustom texinfo-open-quote "``"
- "*String inserted by typing \\[texinfo-insert-quote] to open a quotation."
+(defcustom texinfo-open-quote (purecopy "``")
+ "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."
+(defcustom texinfo-close-quote (purecopy "''")
+ "String inserted by typing \\[texinfo-insert-quote] to close a quotation."
:type 'string
:group 'texinfo)
@@ -296,21 +287,19 @@ chapter."
;;; Syntax table
-(defvar texinfo-mode-syntax-table nil)
-
-(if texinfo-mode-syntax-table
- nil
- (setq texinfo-mode-syntax-table (make-syntax-table))
- (modify-syntax-entry ?\" "." texinfo-mode-syntax-table)
- (modify-syntax-entry ?\\ "." texinfo-mode-syntax-table)
- (modify-syntax-entry ?@ "\\" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\^q "\\" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\[ "(]" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\] ")[" texinfo-mode-syntax-table)
- (modify-syntax-entry ?{ "(}" texinfo-mode-syntax-table)
- (modify-syntax-entry ?} "){" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\n ">" texinfo-mode-syntax-table)
- (modify-syntax-entry ?\' "w" texinfo-mode-syntax-table))
+(defvar texinfo-mode-syntax-table
+ (let ((st (make-syntax-table)))
+ (modify-syntax-entry ?\" "." st)
+ (modify-syntax-entry ?\\ "." st)
+ (modify-syntax-entry ?@ "\\" st)
+ (modify-syntax-entry ?\^q "\\" st)
+ (modify-syntax-entry ?\[ "(]" st)
+ (modify-syntax-entry ?\] ")[" st)
+ (modify-syntax-entry ?{ "(}" st)
+ (modify-syntax-entry ?} "){" st)
+ (modify-syntax-entry ?\n ">" st)
+ (modify-syntax-entry ?\' "w" st)
+ st))
;; Written by Wolfgang Bangerth
;; To override this example, set either `imenu-generic-expression'
@@ -320,19 +309,21 @@ chapter."
("Chapters" "^@chapter[ \t]+\\(.*\\)$" 1))
"Imenu generic expression for Texinfo mode. See `imenu-generic-expression'.")
-(defvar texinfo-font-lock-syntactic-keywords
- '(("\\(@\\)c\\(omment\\)?\\>" (1 "<"))
- ("^\\(@\\)ignore\\>" (1 "< b"))
- ("^@end ignore\\(\n\\)" (1 "> b")))
+(defconst texinfo-syntax-propertize-function
+ (syntax-propertize-rules
+ ("\\(@\\)c\\(omment\\)?\\>" (1 "<"))
+ ("^\\(@\\)ignore\\>" (1 "< b"))
+ ("^@end ignore\\(\n\\)" (1 "> b")))
"Syntactic keywords to catch comment delimiters in `texinfo-mode'.")
(defconst texinfo-environments
'("cartouche" "copying" "defcv" "deffn" "defivar" "defmac"
- "defmethod" "defop" "defopt" "defspec" "deftp" "deftypefn"
- "deftypefun" "deftypevar" "deftypevr" "defun" "defvar"
+ "defmethod" "defop" "defopt" "defspec" "deftp" "deftypecv"
+ "deftypefn" "deftypefun" "deftypeivar" "deftypemethod"
+ "deftypeop" "deftypevar" "deftypevr" "defun" "defvar"
"defvr" "description" "detailmenu" "direntry" "display"
"documentdescription" "enumerate" "example" "flushleft"
- "flushright" "format" "ftable" "group" "ifclear" "ifset"
+ "flushright" "format" "ftable" "group" "html" "ifclear" "ifset"
"ifhtml" "ifinfo" "ifnothtml" "ifnotinfo" "ifnotplaintext"
"ifnottex" "ifplaintext" "iftex" "ignore" "itemize" "lisp"
"macro" "menu" "multitable" "quotation" "smalldisplay"
@@ -349,8 +340,7 @@ Subexpression 1 is what goes into the corresponding `@end' statement.")
'((t (:inherit font-lock-function-name-face)))
"Face used for section headings in `texinfo-mode'."
:group 'texinfo)
-;; backward-compatibility alias
-(put 'texinfo-heading-face 'face-alias 'texinfo-heading)
+(define-obsolete-face-alias 'texinfo-heading-face 'texinfo-heading "22.1")
(defvar texinfo-heading-face 'texinfo-heading)
(defvar texinfo-font-lock-keywords
@@ -399,7 +389,6 @@ Subexpression 1 is what goes into the corresponding `@end' statement.")
;;; Keybindings
-(defvar texinfo-mode-map nil)
;;; Keys common both to Texinfo mode and to TeX shell.
@@ -420,65 +409,67 @@ Subexpression 1 is what goes into the corresponding `@end' statement.")
;; Mode documentation displays commands in reverse order
;; from how they are listed in the texinfo-mode-map.
-(if texinfo-mode-map
- nil
- (setq texinfo-mode-map (make-sparse-keymap))
-
- ;; bindings for `texnfo-tex.el'
- (texinfo-define-common-keys texinfo-mode-map)
-
- (define-key texinfo-mode-map "\"" 'texinfo-insert-quote)
-
- ;; bindings for `makeinfo.el'
- (define-key texinfo-mode-map "\C-c\C-m\C-k" 'kill-compilation)
- (define-key texinfo-mode-map "\C-c\C-m\C-l"
- 'makeinfo-recenter-compilation-buffer)
- (define-key texinfo-mode-map "\C-c\C-m\C-r" 'makeinfo-region)
- (define-key texinfo-mode-map "\C-c\C-m\C-b" 'makeinfo-buffer)
-
- ;; bindings for `texinfmt.el'
- (define-key texinfo-mode-map "\C-c\C-e\C-r" 'texinfo-format-region)
- (define-key texinfo-mode-map "\C-c\C-e\C-b" 'texinfo-format-buffer)
-
- ;; AUCTeX-like bindings
- (define-key texinfo-mode-map "\e\r" 'texinfo-insert-@item)
-
- ;; bindings for updating nodes and menus
-
- (define-key texinfo-mode-map "\C-c\C-um" 'texinfo-master-menu)
-
- (define-key texinfo-mode-map "\C-c\C-u\C-m" 'texinfo-make-menu)
- (define-key texinfo-mode-map "\C-c\C-u\C-n" 'texinfo-update-node)
- (define-key texinfo-mode-map "\C-c\C-u\C-e" 'texinfo-every-node-update)
- (define-key texinfo-mode-map "\C-c\C-u\C-a" 'texinfo-all-menus-update)
-
- (define-key texinfo-mode-map "\C-c\C-s" 'texinfo-show-structure)
-
- (define-key texinfo-mode-map "\C-c}" 'up-list)
- (define-key texinfo-mode-map "\C-c]" 'up-list)
- (define-key texinfo-mode-map "\C-c{" 'texinfo-insert-braces)
-
- ;; bindings for inserting strings
- (define-key texinfo-mode-map "\C-c\C-o" 'texinfo-insert-block)
- (define-key texinfo-mode-map "\C-c\C-c\C-d" 'texinfo-start-menu-description)
- (define-key texinfo-mode-map "\C-c\C-c\C-s" 'texinfo-insert-@strong)
- (define-key texinfo-mode-map "\C-c\C-c\C-e" 'texinfo-insert-@emph)
-
- (define-key texinfo-mode-map "\C-c\C-cv" 'texinfo-insert-@var)
- (define-key texinfo-mode-map "\C-c\C-cu" 'texinfo-insert-@uref)
- (define-key texinfo-mode-map "\C-c\C-ct" 'texinfo-insert-@table)
- (define-key texinfo-mode-map "\C-c\C-cs" 'texinfo-insert-@samp)
- (define-key texinfo-mode-map "\C-c\C-cq" 'texinfo-insert-@quotation)
- (define-key texinfo-mode-map "\C-c\C-co" 'texinfo-insert-@noindent)
- (define-key texinfo-mode-map "\C-c\C-cn" 'texinfo-insert-@node)
- (define-key texinfo-mode-map "\C-c\C-cm" 'texinfo-insert-@email)
- (define-key texinfo-mode-map "\C-c\C-ck" 'texinfo-insert-@kbd)
- (define-key texinfo-mode-map "\C-c\C-ci" 'texinfo-insert-@item)
- (define-key texinfo-mode-map "\C-c\C-cf" 'texinfo-insert-@file)
- (define-key texinfo-mode-map "\C-c\C-cx" 'texinfo-insert-@example)
- (define-key texinfo-mode-map "\C-c\C-ce" 'texinfo-insert-@end)
- (define-key texinfo-mode-map "\C-c\C-cd" 'texinfo-insert-@dfn)
- (define-key texinfo-mode-map "\C-c\C-cc" 'texinfo-insert-@code))
+(defvar texinfo-mode-map
+ (let ((map (make-sparse-keymap)))
+
+ ;; bindings for `texnfo-tex.el'
+ (texinfo-define-common-keys map)
+
+ (define-key map "\"" 'texinfo-insert-quote)
+
+ ;; bindings for `makeinfo.el'
+ (define-key map "\C-c\C-m\C-k" 'kill-compilation)
+ (define-key map "\C-c\C-m\C-l"
+ 'makeinfo-recenter-compilation-buffer)
+ (define-key map "\C-c\C-m\C-r" 'makeinfo-region)
+ (define-key map "\C-c\C-m\C-b" 'makeinfo-buffer)
+
+ ;; bindings for `texinfmt.el'
+ (define-key map "\C-c\C-e\C-r" 'texinfo-format-region)
+ (define-key map "\C-c\C-e\C-b" 'texinfo-format-buffer)
+
+ ;; AUCTeX-like bindings
+ (define-key map "\e\r" 'texinfo-insert-@item)
+
+ ;; bindings for updating nodes and menus
+
+ (define-key map "\C-c\C-um" 'texinfo-master-menu)
+
+ (define-key map "\C-c\C-u\C-m" 'texinfo-make-menu)
+ (define-key map "\C-c\C-u\C-n" 'texinfo-update-node)
+ (define-key map "\C-c\C-u\C-e" 'texinfo-every-node-update)
+ (define-key map "\C-c\C-u\C-a" 'texinfo-all-menus-update)
+
+ (define-key map "\C-c\C-s" 'texinfo-show-structure)
+
+ (define-key map "\C-c}" 'up-list)
+ ;; FIXME: This is often used for "close block" aka texinfo-insert-@end.
+ (define-key map "\C-c]" 'up-list)
+ (define-key map "\C-c/" 'texinfo-insert-@end)
+ (define-key map "\C-c{" 'texinfo-insert-braces)
+
+ ;; bindings for inserting strings
+ (define-key map "\C-c\C-o" 'texinfo-insert-block)
+ (define-key map "\C-c\C-c\C-d" 'texinfo-start-menu-description)
+ (define-key map "\C-c\C-c\C-s" 'texinfo-insert-@strong)
+ (define-key map "\C-c\C-c\C-e" 'texinfo-insert-@emph)
+
+ (define-key map "\C-c\C-cv" 'texinfo-insert-@var)
+ (define-key map "\C-c\C-cu" 'texinfo-insert-@uref)
+ (define-key map "\C-c\C-ct" 'texinfo-insert-@table)
+ (define-key map "\C-c\C-cs" 'texinfo-insert-@samp)
+ (define-key map "\C-c\C-cq" 'texinfo-insert-@quotation)
+ (define-key map "\C-c\C-co" 'texinfo-insert-@noindent)
+ (define-key map "\C-c\C-cn" 'texinfo-insert-@node)
+ (define-key map "\C-c\C-cm" 'texinfo-insert-@email)
+ (define-key map "\C-c\C-ck" 'texinfo-insert-@kbd)
+ (define-key map "\C-c\C-ci" 'texinfo-insert-@item)
+ (define-key map "\C-c\C-cf" 'texinfo-insert-@file)
+ (define-key map "\C-c\C-cx" 'texinfo-insert-@example)
+ (define-key map "\C-c\C-ce" 'texinfo-insert-@end)
+ (define-key map "\C-c\C-cd" 'texinfo-insert-@dfn)
+ (define-key map "\C-c\C-cc" 'texinfo-insert-@code)
+ map))
(easy-menu-define texinfo-mode-menu
texinfo-mode-map
@@ -594,11 +585,8 @@ value of `texinfo-mode-hook'."
(concat "\b\\|@[a-zA-Z]*[ \n]\\|" paragraph-separate))
(make-local-variable 'paragraph-start)
(setq paragraph-start (concat "\b\\|@[a-zA-Z]*[ \n]\\|" paragraph-start))
- (make-local-variable 'sentence-end-base)
- (setq sentence-end-base
- "\\(@\\(end\\)?dots{}\\|[.?!]\\)[]\"'$B!I$,1r}(B)}]*")
- (make-local-variable 'adaptive-fill-mode)
- (setq adaptive-fill-mode nil)
+ (set (make-local-variable 'sentence-end-base)
+ "\\(@\\(end\\)?dots{}\\|[.?!]\\)[]\"'â)}]*")
(make-local-variable 'fill-column)
(setq fill-column 70)
(make-local-variable 'comment-start)
@@ -612,9 +600,9 @@ value of `texinfo-mode-hook'."
(setq imenu-case-fold-search nil)
(make-local-variable 'font-lock-defaults)
(setq font-lock-defaults
- '(texinfo-font-lock-keywords nil nil nil backward-paragraph
- (font-lock-syntactic-keywords
- . texinfo-font-lock-syntactic-keywords)))
+ '(texinfo-font-lock-keywords nil nil nil backward-paragraph))
+ (set (make-local-variable 'syntax-propertize-function)
+ texinfo-syntax-propertize-function)
(set (make-local-variable 'parse-sexp-lookup-properties) t)
;; Outline settings.
@@ -657,7 +645,13 @@ Puts point on a blank line between them."
(completing-read (format "Block name [%s]: " texinfo-block-default)
texinfo-environments
nil nil nil nil texinfo-block-default))
- \n "@" str \n _ \n "@end " str \n)
+ \n "@" str
+ ;; Blocks that take parameters: all the def* blocks take parameters,
+ ;; plus a few others.
+ (if (or (string-match "\\`def" str)
+ (member str '("table" "ftable" "vtable")))
+ '(nil " " -))
+ \n _ \n "@end " str \n)
(defun texinfo-inside-macro-p (macro &optional bound)
"Non-nil if inside a macro matching the regexp MACRO."
@@ -682,7 +676,8 @@ Puts point on a blank line between them."
(not (match-end 1)))))
(defvar texinfo-enable-quote-macros "@\\(code\\|samp\\|kbd\\)\\>")
-(defvar texinfo-enable-quote-envs '("example\\>" "lisp\\>"))
+(defvar texinfo-enable-quote-envs
+ '("example\\>" "smallexample\\>" "lisp\\>"))
(defun texinfo-insert-quote (&optional arg)
"Insert the appropriate quote mark for Texinfo.
Usually inserts the value of `texinfo-open-quote' (normally ``) or
@@ -694,7 +689,8 @@ With prefix argument or inside @code or @example, inserts a plain \"."
(if (or arg
(= (preceding-char) ?\\)
(save-excursion
- (backward-char (length texinfo-open-quote))
+ ;; Might be near the start of a (narrowed) buffer.
+ (ignore-errors (backward-char (length texinfo-open-quote)))
(when (or (looking-at texinfo-open-quote)
(looking-at texinfo-close-quote))
(delete-char (length texinfo-open-quote))
@@ -706,7 +702,8 @@ With prefix argument or inside @code or @example, inserts a plain \"."
(setq in-env t)))))
(self-insert-command (prefix-numeric-value arg))
(insert
- (if (memq (char-syntax (preceding-char)) '(?\( ?> ?\s))
+ (if (or (bobp)
+ (memq (char-syntax (preceding-char)) '(?\( ?> ?\s)))
texinfo-open-quote
texinfo-close-quote)))))
@@ -726,163 +723,131 @@ With prefix argument or inside @code or @example, inserts a plain \"."
(not (looking-at "@end"))))
(texinfo-next-unmatched-end)))
-(defun texinfo-insert-@end ()
+(define-skeleton texinfo-insert-@end
"Insert the matching `@end' for the last Texinfo command that needs one."
- (interactive)
- (let ((string
(ignore-errors
(save-excursion
+ (backward-word 1)
(texinfo-last-unended-begin)
- (match-string 1)))))
- (insert "@end ")
- (if string (insert string "\n"))))
-
-;; The following insert commands accept a prefix arg N, which is the
-;; number of words (actually s-exprs) that should be surrounded by
-;; braces. Thus you can first paste a variable name into a .texinfo
-;; buffer, then say C-u 1 C-c C-c v at the beginning of the just
-;; pasted variable name to put @var{...} *around* the variable name.
-;; Operate on previous word or words with negative arg.
-
-;; These commands use texinfo-insert-@-with-arg
-(defun texinfo-insert-@-with-arg (string &optional arg)
- (if arg
- (progn
- (setq arg (prefix-numeric-value arg))
- (if (< arg 0)
- (progn
- (skip-chars-backward " \t\n\r\f")
- (save-excursion
- (forward-sexp arg)
- (insert "@" string "{"))
- (insert "}"))
- (skip-chars-forward " \t\n\r\f")
- (insert "@" string "{")
- (forward-sexp arg)
- (insert "}")))
- (insert "@" string "{}")
- (backward-char)))
-
-(defun texinfo-insert-braces ()
+ (or (match-string 1) '-)))
+ \n "@end " str \n)
+
+(define-skeleton texinfo-insert-braces
"Make a pair of braces and be poised to type inside of them.
Use \\[up-list] to move forward out of the braces."
- (interactive)
- (insert "{}")
- (backward-char))
+ nil
+ "{" _ "}")
-(defun texinfo-insert-@code (&optional arg)
+(define-skeleton texinfo-insert-@code
"Insert a `@code{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "code" arg))
+ nil
+ "@code{" _ "}")
-(defun texinfo-insert-@dfn (&optional arg)
+(define-skeleton texinfo-insert-@dfn
"Insert a `@dfn{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "dfn" arg))
+ nil
+ "@dfn{" _ "}")
-(defun texinfo-insert-@email (&optional arg)
+(define-skeleton texinfo-insert-@email
"Insert a `@email{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "email" arg))
+ nil
+ "@email{" _ "}")
-(defun texinfo-insert-@emph (&optional arg)
+(define-skeleton texinfo-insert-@emph
"Insert a `@emph{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "emph" arg))
+ nil
+ "@emph{" _ "}")
-(defun texinfo-insert-@example ()
+(define-skeleton texinfo-insert-@example
"Insert the string `@example' in a Texinfo buffer."
- (interactive)
- (insert "@example\n"))
+ nil
+ \n "@example" \n)
-(defun texinfo-insert-@file (&optional arg)
+(define-skeleton texinfo-insert-@file
"Insert a `@file{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "file" arg))
+ nil
+ "@file{" _ "}")
-(defun texinfo-insert-@item ()
+(define-skeleton texinfo-insert-@item
"Insert the string `@item' in a Texinfo buffer.
If in a table defined by @table, follow said string with a space.
Otherwise, follow with a newline."
- (interactive)
- (insert "@item"
+ nil
+ \n "@item"
(if (equal (ignore-errors
(save-excursion
(texinfo-last-unended-begin)
(match-string 1)))
"table")
- ?\s
- ?\n)))
+ " " '\n)
+ _ \n)
-(defun texinfo-insert-@kbd (&optional arg)
+(define-skeleton texinfo-insert-@kbd
"Insert a `@kbd{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "kbd" arg))
+ nil
+ "@kbd{" _ "}")
-(defun texinfo-insert-@node ()
+(define-skeleton texinfo-insert-@node
"Insert the string `@node' in a Texinfo buffer.
Insert a comment on the following line indicating the order of
arguments to @node. Insert a carriage return after the comment line.
Leave point after `@node'."
- (interactive)
- (insert "@node \n@comment node-name, next, previous, up\n")
- (forward-line -2)
- (forward-char 6))
+ nil
+ \n "@node " _ \n)
-(defun texinfo-insert-@noindent ()
+(define-skeleton texinfo-insert-@noindent
"Insert the string `@noindent' in a Texinfo buffer."
- (interactive)
- (insert "@noindent\n"))
+ nil
+ \n "@noindent" \n)
-(defun texinfo-insert-@quotation ()
+(define-skeleton texinfo-insert-@quotation
"Insert the string `@quotation' in a Texinfo buffer."
- (interactive)
- (insert "@quotation\n"))
+ \n "@quotation" \n)
-(defun texinfo-insert-@samp (&optional arg)
+(define-skeleton texinfo-insert-@samp
"Insert a `@samp{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "samp" arg))
+ nil
+ "@samp{" _ "}")
-(defun texinfo-insert-@strong (&optional arg)
+(define-skeleton texinfo-insert-@strong
"Insert a `@strong{...}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "strong" arg))
+ nil
+ "@strong{" _ "}")
-(defun texinfo-insert-@table ()
+(define-skeleton texinfo-insert-@table
"Insert the string `@table' in a Texinfo buffer."
- (interactive)
- (insert "@table "))
+ nil
+ \n "@table " _ \n)
-(defun texinfo-insert-@var (&optional arg)
+(define-skeleton texinfo-insert-@var
"Insert a `@var{}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "var" arg))
+ nil
+ "@var{" _ "}")
-(defun texinfo-insert-@uref (&optional arg)
+(define-skeleton texinfo-insert-@uref
"Insert a `@uref{}' command in a Texinfo buffer.
A numeric argument says how many words the braces should surround.
The default is not to surround any existing words with the braces."
- (interactive "P")
- (texinfo-insert-@-with-arg "uref" arg))
+ nil
+ "@uref{" _ "}")
(defalias 'texinfo-insert-@url 'texinfo-insert-@uref)
;;; Texinfo file structure
@@ -947,22 +912,22 @@ to jump to the corresponding spot in the Texinfo source file."
;;; The tex and print function definitions:
(defcustom texinfo-texi2dvi-command "texi2dvi"
- "*Command used by `texinfo-tex-buffer' to run TeX and texindex on a buffer."
+ "Command used by `texinfo-tex-buffer' to run TeX and texindex on a buffer."
:type 'string
:group 'texinfo)
(defcustom texinfo-tex-command "tex"
- "*Command used by `texinfo-tex-region' to run TeX on a region."
+ "Command used by `texinfo-tex-region' to run TeX on a region."
:type 'string
:group 'texinfo)
(defcustom texinfo-texindex-command "texindex"
- "*Command used by `texinfo-texindex' to sort unsorted index files."
+ "Command used by `texinfo-texindex' to sort unsorted index files."
:type 'string
:group 'texinfo)
(defcustom texinfo-delete-from-print-queue-command "lprm"
- "*Command string used to delete a job from the line printer queue.
+ "Command string used to delete a job from the line printer queue.
Command is used by \\[texinfo-delete-from-print-queue] based on
number provided by a previous \\[tex-show-print-queue]
command."
@@ -1060,5 +1025,4 @@ You are prompted for the job number (use a number shown by a previous
(provide 'texinfo)
-;; arch-tag: 005d7c38-43b9-4b7d-aa1d-aea69bae73e1
;;; texinfo.el ends here