aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/textmodes/texinfmt.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/textmodes/texinfmt.el')
-rw-r--r--lisp/textmodes/texinfmt.el18
1 files changed, 17 insertions, 1 deletions
diff --git a/lisp/textmodes/texinfmt.el b/lisp/textmodes/texinfmt.el
index 822631e039..0441602b3a 100644
--- a/lisp/textmodes/texinfmt.el
+++ b/lisp/textmodes/texinfmt.el
@@ -868,7 +868,23 @@ lower types.")
;; Otherwise: the other characters are simply quoted. Delete the @.
(t
(delete-char -1)
- (forward-char 1)))
+ ;; Be compatible with makeinfo: if @' and its ild are
+ ;; followed by a @ without a brace, barf.
+ (if (looking-at "[\"'^`~=]")
+ (progn
+ (if (= (char-after (1+ (point))) ?@)
+ (error "Use braces to give a command as an argument to @%c"
+ (following-char)))
+ (forward-char 1)
+ ;; @' etc. can optionally accept their argument in
+ ;; braces (makeinfo supports that).
+ (when (looking-at "{")
+ (let ((start (point)))
+ (forward-list 1)
+ (delete-char -1)
+ (goto-char start)
+ (delete-char 1))))
+ (forward-char 1))))
;; @ is followed by a command-word; find the end of the word.
(setq texinfo-command-start (1- (point)))
(if (= (char-syntax (following-char)) ?w)