summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/doc/preview-dtxdoc.pl
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/doc/preview-dtxdoc.pl')
-rwxr-xr-xelpa/auctex-13.1.3/doc/preview-dtxdoc.pl156
1 files changed, 156 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/doc/preview-dtxdoc.pl b/elpa/auctex-13.1.3/doc/preview-dtxdoc.pl
new file mode 100755
index 0000000..8eaa33d
--- /dev/null
+++ b/elpa/auctex-13.1.3/doc/preview-dtxdoc.pl
@@ -0,0 +1,156 @@
+#!/usr/bin/perl
+# -*- coding: iso-latin-1; -*-
+
+# Autoconverter from preview.dtx to preview-dtxdoc.texi
+
+# Author: Jan-Åke Larsson <jalar@mai.liu.se>
+# Maintainer: auctex-devel@gnu.org
+
+# Copyright (C) 2002, 2005, 2020, 2021 Free Software Foundation, Inc.
+
+# This file is part of AUCTeX.
+
+# AUCTeX 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 3, or (at your option)
+# any later version.
+
+# AUCTeX is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with AUCTeX; see the file COPYING. If not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+# Commentary:
+
+# Simpleminded autoconverter from preview.dtx to preview-dtxdoc.texi
+# run as 'perl preview-dtxdoc.pl ../latex/preview.dtx preview-dtxdoc.texi'
+
+die "Usage: perl preview-dtxdoc.pl infile outfile" unless ($#ARGV == 1);
+open(STDIN, $ARGV[0]) || die "Can't open $ARGV[0] for reading";
+open(STDOUT, "> $ARGV[1]") || die "Can't open $ARGV[1] for writing";
+
+
+# Eat header
+MUNGE: while (<STDIN>) {
+ last MUNGE if /^% *.section/;
+}
+
+# Fish out possible CR characters.
+/(\r*)$/;
+$cr = $1;
+
+
+# Noindent is used sometimes after \end{quote} (see below)
+$noindent="";
+# Quote environments is translated into @example _without_
+# @code{..} inside (see below)
+$quote="";
+MAIN: while (<STDIN>) {
+ s/^%//;
+ s/\\%/%/g;
+
+ # Comment
+ s/\^\^A.*\n//;
+
+ # Text-substitution macros
+ s/\@/\@\@/g;
+ s/\\#/#/g;
+ s/AUC~?\\TeX[\\ ]?/\@AUCTeX{}/g;
+ s/\\LaTeX[\\ ]?/\@LaTeX{}/g;
+ s/\\TeX[\\ ]?/\@TeX{}/g;
+ s/\\previewlatex[\\ ]?/\@previewlatex{}/g;
+ s/EPS/\@acronym{EPS}/g;
+ s/DVI/\@acronym{DVI}/g;
+ s/~/\@w{ }/g;
+ s/^ *//;
+ # Environments
+ if (s/\\begin\{quote\}/$cr\n\@example/) {
+ $quote="yes" }
+ if (/^\w/) {
+ print $noindent }
+ $noindent = "";
+ if (s/\\end\{quote\}/\@end example$cr\n/) {
+ $quote="";
+ $noindent="\@noindent$cr\n" }
+ s/\\begin\{description\}/$cr\n\@table \@w/;
+ # Convoluted pattern: handle
+ # \item[|...|], \item[\meta{..}] and \item[{|[]|}]
+ s/\\item\[\{?(.+?[\|\}])\}?\] ?/\@item $1$cr\n/;
+ s/\\end\{description\}/\@end table$cr\n/;
+ s/\\begin\{enumerate\}/$cr\n\@enumerate/;
+ s/\\item /\@item /;
+ s/\\end\{enumerate\}/\@end enumerate$cr\n/;
+
+ # Formatting (\cmd is special within {quote})
+ s/\\texttt/\@option/g;
+ s/\\marg\{([^}]+)\}/\@{\@var{$1}\@}/g;
+ s/\\meta/\@var/g;
+ s/\\emph/\@emph/g;
+ s/\\cmd(\\[\(\)\w]+)/|$1|/g;
+ s/\\cmd\{(.*?)\}/|$1|/g;
+ s/\\oarg\{([^}]+?)\}/\[\@var{$1}\]/g;
+ s/\\char.//g;
+ s/\\raggedright$cr\n//g;
+ s/\\DescribeEnv\{(.*?)\} /\@item \\begin\@{$1\@}\@dots{}\\end\@{$1\@}$cr\n/;
+ if (s/\\DescribeMacro\{(.*?)\}( |$cr\n)/\@item $1$cr\n/) {
+ # Index entries for two important macros
+ if (/(\\Preview(Macro|Environment))( |$cr\n)/) {
+ $_ .= "\@findex $1$cr\n";
+ }
+ }
+
+ # ||||||| Hell... I hate bars
+ # Braces WITHIN bars should be escaped like so: @{ @}
+ # and |..| translates to @code{..} or @file{..} depending on content
+ # and to .. if in {quote}
+ @chunks = split /\|/;
+ $odd=0;
+ COMMAND: foreach (@chunks) {
+ if ($odd==0) {
+ $odd=1;
+ } else {
+ s/\{/\@\{/g;
+ s/\}/\@\}/g;
+ if (! $quote) {
+ if (/[.\/]/) {
+ $_="\@file\{".$_."\}";
+ } else {
+ $_="\@code\{".$_."\}";
+ }
+ }
+ $odd=0;
+ }
+ }
+ $_=join("",@chunks);
+ # Argh! mixed types occurs in @code{...}@var{..}@file{..}
+ # Should be @file{...@var{..}..}
+ s/\@code(\S*?)\}(\S*)\@file\{/\@file$1$2/g;
+
+ # Texinfo @node-ification
+ if (s/\\section\{(.*)\}/\@subsection $1/) {
+ if (s/[Oo]ptions/options/) {
+ $_="\@menu$cr\n" .
+"* Package options::$cr\n" .
+"* Provided commands::$cr\n" .
+"\@end menu$cr\n$cr\n" .
+"\@node Package options, Provided commands, The LaTeX style file, The LaTeX style file$cr\n" . $_;
+ } elsif (s/[Cc]ommands/commands/) {
+ # \Describe... needs @table
+ $_= "\@node Provided commands, ,Package options, The LaTeX style file$cr\n" .
+ $_ . "$cr\n\@table \@code$cr\n";
+ }
+ }
+
+ # Stop here
+ # \Describe.... needs @end table
+ if (/^.StopEventually/) {
+ print "\@end table$cr\n";
+ last MAIN;
+ }
+ print $_;
+}