Release the version for No Gnus v0.11.
[elisp/gnus-doc-ja.git] / ptexinfmt.el
index a7eb873..528f252 100644 (file)
 ;; Modified by Yamaoka not to use APEL functions.
 
 ;; Unimplemented command:
-;;  @abbr
-;;  @float, @caption, @shortcaption, @listoffloats
+;;  @abbr{ABBREVIATION}
+;;  @float ... @end float, @caption{TEXT}, @shortcaption{TEXT}, @listoffloats
 ;;  @deftypecv[x]
 ;;  @headitem
 ;;  @comma{}
 ;;  @quotation (optional arguments)
-;;  @acronym (optional argument)
+;;  @acronym{ACRONYM[, MEANING]} (optional argument)
 ;;  @dofirstparagraphindent
 ;;  @indent
-;;  @verbatiminclude
+;;  @verbatiminclude FILENAME
 ;;  @\
-;;  @definfoenclose
-;;  @deftypeivar
-;;  @deftypeop
-;;  @allowcodebreaks
+;;  @definfoenclose phoo,//,\\
+;;  @deftypeivar CLASS DATA-TYPE VARIABLE-NAME
+;;  @deftypeop CATEGORY CLASS DATA-TYPE NAME ARGUMENTS...
+;;  @allowcodebreaks false
+;;  @thischapternum
+;;  @quotedblleft @quotedblright
+;;  @quoteleft @quoteright  @quotedblbase @quotesinglbase
+;;  @guillemetleft @guillemetright @guilsinglleft @guilsinglright.
+;;  @clicksequence, @click, @clickstyle, @arrow
 
 ;;; Code:
 
-(require 'backquote)
 (require 'texinfmt)
 
 ;;; Broken
@@ -119,7 +123,7 @@ DOCSTRING will be printed if ASSERTION is nil and
   "Can't sort on Mule for Windows."
   t)
 
-;; @var
+;; @var{METASYNTACTIC-VARIABLE}
 (ptexinfmt-broken-facility texinfo-format-var
   "Don't perse @var argument."
   (condition-case nil
@@ -131,7 +135,8 @@ DOCSTRING will be printed if ASSERTION is nil and
          t))
     (error nil)))
 
-;; @xref
+;; @xref{NODE-NAME[, CROSS-REFERENCE-NAME, TITLE-OR-TOPIC,
+;;     INFO-FILE-NAME, PRINTED-MANUAL-TITLE]}.
 (ptexinfmt-broken-facility texinfo-format-xref
   "Can't format @xref, 1st argument is empty."
   (condition-case nil
@@ -143,7 +148,7 @@ DOCSTRING will be printed if ASSERTION is nil and
          t))
     (error nil)))
 
-;; @uref
+;; @uref{URL[, TEXT][, REPLACEMENT]}
 (ptexinfmt-broken-facility texinfo-format-uref
   "Parse twice @uref argument."
   (condition-case nil
@@ -160,7 +165,10 @@ DOCSTRING will be printed if ASSERTION is nil and
   "`texinfo-multitable-widths' unsupport wide-char."
   (if (fboundp 'texinfo-multitable-widths)
       (with-temp-buffer
-       (let ((str "\e$BI}9-J8;z\e(B"))
+       (let ((str (string (make-char 'japanese-jisx0208 73 125)
+                          (make-char 'japanese-jisx0208 57 45)
+                          (make-char 'japanese-jisx0208 74 56)
+                          (make-char 'japanese-jisx0208 59 122))))
          (texinfo-mode)
          (insert (format " {%s}\n" str))
          (goto-char (point-min))
@@ -189,6 +197,7 @@ DOCSTRING will be printed if ASSERTION is nil and
 (put 'afourwide 'texinfo-format 'texinfo-discard-line)
 (put 'afivepaper 'texinfo-format 'texinfo-discard-line)
 (put 'pagesizes 'texinfo-format 'texinfo-discard-line-with-args)
+(put 'fonttextsize 'texinfo-format 'texinfo-discard-line-with-args)
 
 ;; style
 (put 'setchapternewpage 'texinfo-format 'texinfo-discard-line-with-args)
@@ -213,10 +222,10 @@ DOCSTRING will be printed if ASSERTION is nil and
 (put 'page 'texinfo-format 'texinfo-discard-line)
 (put 'hyphenation 'texinfo-format 'texinfo-discard-command-and-arg)
 
-;; @slanted{} (makeinfo 4.8 or later)
+;; @slanted{TEXT} (makeinfo 4.8 or later)
 (put 'slanted 'texinfo-format 'texinfo-format-noop)
 
-;; @sansserif{} (makeinfo 4.8 or later)
+;; @sansserif{TEXT} (makeinfo 4.8 or later)
 (put 'sansserif 'texinfo-format 'texinfo-format-noop)
 
 ;; @tie{} (makeinfo 4.3 or later)
@@ -227,7 +236,7 @@ DOCSTRING will be printed if ASSERTION is nil and
 
 \f
 ;;; Directory File
-;; @direcategory
+;; @direcategory DIRPART
 (put 'dircategory 'texinfo-format 'texinfo-format-dircategory)
 (ptexinfmt-defun-if-void texinfo-format-dircategory ()
   (let ((str (texinfo-parse-arg-discard)))
@@ -237,7 +246,7 @@ DOCSTRING will be printed if ASSERTION is nil and
                     (point)))
     (insert "INFO-DIR-SECTION " str "\n")))
 
-;; @direntry
+;; @direntry ... @end direntry
 (put 'direntry 'texinfo-format 'texinfo-format-direntry)
 (ptexinfmt-defun-if-void texinfo-format-direntry ()
   (texinfo-push-stack 'direntry nil)
@@ -330,22 +339,28 @@ DOCSTRING will be printed if ASSERTION is nil and
 
 \f
 ;;; Marking
-;; @indicateurl, @url, @env, @command, 
+;; @env{ENVIRONMENT-VARIABLE}
 (put 'env 'texinfo-format 'texinfo-format-code)
+
+;; @command{COMMAND-NAME}
 (put 'command 'texinfo-format 'texinfo-format-code)
 
+;; @indicateurl{INDICATEURL}
 (put 'indicateurl 'texinfo-format 'texinfo-format-code)
+
+;; @url{URL[, DISPLAYED-TEXT][, REPLACEMENT}
 (put 'url 'texinfo-format 'texinfo-format-uref)        ; Texinfo 4.7
 
-;; @acronym
+;; @acronym{ACRONYM}
 (put 'acronym 'texinfo-format 'texinfo-format-var)
 
+;; @var{METASYNTACTIC-VARIABLE}
 (ptexinfmt-defun-if-broken texinfo-format-var ()
   (let ((arg (texinfo-parse-expanded-arg)))
     (texinfo-discard-command)
     (insert (upcase arg))))
 
-;; @key
+;; @key{KEY-NAME}
 (put 'key 'texinfo-format 'texinfo-format-key)
 (ptexinfmt-defun-if-void texinfo-format-key ()
   (insert (texinfo-parse-arg-discard))
@@ -363,7 +378,7 @@ Insert < ... > around EMAIL-ADDRESS."
        (insert (nth 1 args) " <" (nth 0 args) ">")
       (insert "<" (nth 0 args) ">"))))
 
-;; @option
+;; @option{OPTION-NAME}
 (put 'option 'texinfo-format 'texinfo-format-option)
 (ptexinfmt-defun-if-void texinfo-format-option ()
   "Insert ` ... ' around arg unless inside a table; in that case, no quotes."
@@ -392,18 +407,19 @@ For example, @verb\{|@|\} results in @ and
       (error "Not found: @verb start brace"))
     (delete-region texinfo-command-start (+ 2 texinfo-command-end))
     (search-forward  delimiter))
-  (delete-backward-char 1)
+  (delete-char -1)
   (unless (looking-at "}")
     (error "Not found: @verb end brace"))
   (delete-char 1))
 
 \f
-;;; @LaTeX, @registeredsymbol{}
+;; @LaTeX{}
 (put 'LaTeX 'texinfo-format 'texinfo-format-LaTeX)
 (ptexinfmt-defun-if-void texinfo-format-LaTeX ()
   (texinfo-parse-arg-discard)
   (insert "LaTeX"))
 
+;; @registeredsymbol{}
 (put 'registeredsymbol 'texinfo-format 'texinfo-format-registeredsymbol)
 (ptexinfmt-defun-if-void texinfo-format-registeredsymbol ()
   (texinfo-parse-arg-discard)
@@ -594,9 +610,28 @@ For example, @verb\{|@|\} results in @ and
 (ptexinfmt-defun-if-void texinfo-format-\/ ()
   (texinfo-discard-command))
 
+;; @textdegree{}
+(put 'textdegree 'texinfo-format 'texinfo-format-textdegree)
+(ptexinfmt-defun-if-void texinfo-format-textdegree ()
+  (insert "o" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @geq{}
+(put 'geq 'texinfo-format 'texinfo-format-geq)
+(ptexinfmt-defun-if-void texinfo-format-geq ()
+  (insert ">=" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
+;; @leq{}
+(put 'leq 'texinfo-format 'texinfo-format-leq)
+(ptexinfmt-defun-if-void texinfo-format-leq ()
+  (insert "<=" (texinfo-parse-arg-discard))
+  (goto-char texinfo-command-start))
+
 \f
 ;;; Cross References
-;; @ref, @xref
+;; @ref{NODE-NAME, ...}
+;; @xref{NODE-NAME, ...}
 (put 'ref 'texinfo-format 'texinfo-format-xref)
 
 (ptexinfmt-defun-if-broken texinfo-format-xref ()
@@ -625,7 +660,7 @@ otherwise, insert URL-TITLE followed by URL in parentheses."
        (insert  (nth 1 args) " (" (nth 0 args) ")")
       (insert "`" (nth 0 args) "'"))))
 
-;; @inforef
+;; @inforef{NODE-NAME, CROSS-REFERENCE-NAME, INFO-FILE-NAME}
 (put 'inforef 'texinfo-format 'texinfo-format-inforef)
 (ptexinfmt-defun-if-void texinfo-format-inforef ()
   (let ((args (texinfo-format-parse-args)))
@@ -635,7 +670,7 @@ otherwise, insert URL-TITLE followed by URL in parentheses."
       (insert "*Note " "(" (nth 2 args) ")" (car args) "::"))))
 
 
-;; @anchor
+;; @anchor{NAME}
 ;; don't emulation
 ;; If support @anchor for Mule 2.3, We must fix informat.el and info.el:
 ;;  - Info-tagify suport @anthor-*-refill.
@@ -953,6 +988,40 @@ This command is executed when texinfmt sees @item inside @multitable."
        (texinfo-sort-region opoint (point))
       (shell-command-on-region opoint (point) "sort -fd" 1))))
 
+\f
+;; @copying ... @end copying
+;; that Emacs 21.4 and lesser and XEmacs don't support.
+(if (fboundp 'texinfo-copying)
+    nil
+  (defvar texinfo-copying-text ""
+    "Text of the copyright notice and copying permissions.")
+
+  (defun texinfo-copying ()
+    "Copy the copyright notice and copying permissions from the Texinfo file,
+as indicated by the @copying ... @end copying command;
+insert the text with the @insertcopying command."
+    (let ((beg (progn (beginning-of-line) (point)))
+         (end  (progn (re-search-forward "^@end copying[ \t]*\n") (point))))
+      (setq texinfo-copying-text
+           (buffer-substring-no-properties
+            (save-excursion (goto-char beg) (forward-line 1) (point))
+            (save-excursion (goto-char end) (forward-line -1) (point))))
+      (delete-region beg end)))
+
+  (defun texinfo-insertcopying ()
+    "Insert the copyright notice and copying permissions from the Texinfo file,
+which are indicated by the @copying ... @end copying command."
+    (insert (concat "\n" texinfo-copying-text)))
+
+  (defadvice texinfo-format-scan (before expand-@copying-section activate)
+    "Extract @copying and replace @insertcopying with it."
+    (goto-char (point-min))
+    (when (search-forward "@copying" nil t)
+      (texinfo-copying))
+    (while (search-forward "@insertcopying" nil t)
+      (delete-region (match-beginning 0) (match-end 0))
+      (texinfo-insertcopying))))
+
 (provide 'ptexinfmt)
 
 ;;; ptexinfmt.el ends here