summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/listings/lstdoc.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:58:08 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:58:08 +0000
commit6a8abbc4994582595d64361f7e1542800ded4a7b (patch)
treefdce9de1ebf0a9450d79c6e91c41fce7227cbbf1 /Master/texmf-dist/tex/latex/listings/lstdoc.sty
parent5fa88075750e366e6d6353b7e3d55c9434dfd5ee (diff)
listings
git-svn-id: svn://tug.org/texlive/trunk@1045 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/listings/lstdoc.sty')
-rw-r--r--Master/texmf-dist/tex/latex/listings/lstdoc.sty451
1 files changed, 451 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/listings/lstdoc.sty b/Master/texmf-dist/tex/latex/listings/lstdoc.sty
new file mode 100644
index 00000000000..3b9806fbe59
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/listings/lstdoc.sty
@@ -0,0 +1,451 @@
+%%
+%% This is file `lstdoc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% listings-1.3.dtx (with options: `doc')
+%%
+%% Please read the software license in listings-1.3.dtx or listings-1.3.pdf.
+%%
+%% (w)(c) 1996--2004 Carsten Heinz and/or any other author listed
+%% elsewhere in this file.
+%%
+%% Send comments and ideas on the package, error reports and additional
+%% programming languages to <cheinz@gmx.de>.
+%%
+\def\filedate{2004/09/07}
+\def\fileversion{1.3}
+\ProvidesPackage{lstdoc}
+ [\filedate\space\fileversion\space(Carsten Heinz)]
+\let\lstdoc@currversion\fileversion
+\RequirePackage[writefile]{listings}[2004/09/07]
+\newif\iffancyvrb \IfFileExists{fancyvrb.sty}{\fancyvrbtrue}{}
+\newif\ifcolor \IfFileExists{color.sty}{\colortrue}{}
+\lst@false
+\newif\ifhyper
+\@ifundefined{pdfoutput}
+ {}
+ {\ifnum\pdfoutput>\z@ \lst@true \fi}
+\@ifundefined{VTeXversion}
+ {}
+ {\ifnum\OpMode>\z@ \lst@true \fi}
+\lst@if \IfFileExists{hyperref.sty}{\hypertrue}{}\fi
+\newif\ifalgorithmic \IfFileExists{algorithmic.sty}{\algorithmictrue}{}
+\newif\iflgrind \IfFileExists{lgrind.sty}{\lgrindtrue}{}
+\iffancyvrb \RequirePackage{fancyvrb}\fi
+\ifhyper \RequirePackage[colorlinks]{hyperref}\else
+ \def\href#1{\texttt}\fi
+\ifcolor \RequirePackage{color}\fi
+\ifalgorithmic \RequirePackage{algorithmic}\fi
+\iflgrind \RequirePackage{lgrind}\fi
+\RequirePackage{nameref}
+\RequirePackage{url}
+\renewcommand\ref{\protect\T@ref}
+\renewcommand\pageref{\protect\T@pageref}
+\def\lst@BeginRemark#1{%
+ \begin{quote}\topsep0pt\let\small\footnotesize\small#1:}
+\def\lst@EndRemark{\end{quote}}
+\newenvironment{TODO}
+ {\lst@BeginRemark{To do}}{\lst@EndRemark}
+\newenvironment{ALTERNATIVE}
+ {\lst@BeginRemark{Alternative}}{\lst@EndRemark}
+\newenvironment{REMOVED}
+ {\lst@BeginRemark{Removed}}{\lst@EndRemark}
+\newenvironment{OLDDEF}
+ {\lst@BeginRemark{Old definition}}{\lst@EndRemark}
+\def\advise{\par\list\labeladvise
+ {\advance\linewidth\@totalleftmargin
+ \@totalleftmargin\z@
+ \@listi
+ \let\small\footnotesize \small\sffamily
+ \parsep \z@ \@plus\z@ \@minus\z@
+ \topsep6\p@ \@plus1\p@\@minus2\p@
+ \def\makelabel##1{\hss\llap{##1}}}}
+\let\endadvise\endlist
+\def\advisespace{\hbox{}\qquad}
+\def\labeladvise{$\to$}
+\newenvironment{syntax}
+ {\list{}{\itemindent-\leftmargin
+ \def\makelabel##1{\hss\lst@syntaxlabel##1,,,,\relax}}}
+ {\endlist}
+\def\lst@syntaxlabel#1,#2,#3,#4\relax{%
+ \llap{\scriptsize\itshape#3}%
+ \def\lst@temp{#2}%
+ \expandafter\lst@syntaxlabel@\meaning\lst@temp\relax
+ \rlap{\hskip-\itemindent\hskip\itemsep\hskip\linewidth
+ \llap{\ttfamily\lst@temp}\hskip\labelwidth
+ \def\lst@temp{#1}%
+ \ifx\lst@temp\lstdoc@currversion#1\fi}}
+\def\lst@syntaxlabel@#1>#2\relax
+ {\edef\lst@temp{\zap@space#2 \@empty}}
+\newcommand*\syntaxnewline{\newline\hbox{}\kern\labelwidth}
+\newcommand*\syntaxor{\qquad or\qquad}
+\newcommand*\syntaxbreak
+ {\hfill\kern0pt\discretionary{}{\kern\labelwidth}{}}
+\let\syntaxfill\hfill
+\def\alternative#1{\lst@true \alternative@#1,\relax,}
+\def\alternative@#1,{%
+ \ifx\relax#1\@empty
+ \expandafter\@gobble
+ \else
+ \ifx\@empty#1\@empty\else
+ \lst@if \lst@false \else $\vert$\fi
+ \textup{\texttt{#1}}%
+ \fi
+ \fi
+ \alternative@}
+\long\def\m@cro@#1#2#3{\endgroup \topsep\MacroTopsep \trivlist
+ \edef\saved@macroname{\string#3}%
+ \def\makelabel##1{\llap{##1}}%
+ \if@inlabel
+ \let\@tempa\@empty \count@\macro@cnt
+ \loop \ifnum\count@>\z@
+ \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
+ \edef\makelabel##1{\llap{\vtop to\baselineskip
+ {\@tempa\hbox{##1}\vss}}}%
+ \advance \macro@cnt \@ne
+ \else \macro@cnt\@ne \fi
+ \edef\@tempa{\noexpand\item[%
+ #1%
+ \noexpand\PrintMacroName
+ \else
+ \expandafter\noexpand\csname Print#2Name\endcsname % MODIFIED
+ \fi
+ {\string#3}]}%
+ \@tempa
+ \global\advance\c@CodelineNo\@ne
+ #1%
+ \SpecialMainIndex{#3}\nobreak
+ \DoNotIndex{#3}%
+ \else
+ \csname SpecialMain#2Index\endcsname{#3}\nobreak % MODIFIED
+ \fi
+ \global\advance\c@CodelineNo\m@ne
+ \ignorespaces}
+\def\macro{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@ \iftrue {Macro}}% MODIFIED
+\def\environment{\begingroup
+ \catcode`\\12
+ \MakePrivateLetters \m@cro@ \iffalse {Env}}% MODIFIED
+\def\newdocenvironment#1#2#3#4{%
+ \@namedef{#1}{#3\begingroup \catcode`\\12\relax
+ \MakePrivateLetters \m@cro@ \iffalse {#2}}%
+ \@namedef{end#1}{#4\endmacro}%
+ \@ifundefined{Print#2Name}{\expandafter
+ \let\csname Print#2Name\endcsname\PrintMacroName}{}%
+ \@ifundefined{SpecialMain#2Index}{\expandafter
+ \let\csname SpecialMain#2Index\endcsname\SpecialMainIndex}{}}
+\newdocenvironment{aspect}{Aspect}{}{}
+\def\PrintAspectName#1{}
+\def\SpecialMainAspectIndex#1{%
+ \@bsphack
+ \index{aspects:\levelchar\protect\aspectname{#1}\encapchar main}%
+ \@esphack}
+\newdocenvironment{lstkey}{Key}{}{}
+\def\PrintKeyName#1{\strut\keyname{#1}\ }
+\def\SpecialMainKeyIndex#1{%
+ \@bsphack
+ \index{keys\levelchar\protect\keyname{#1}\encapchar main}%
+ \@esphack}
+\newcounter{argcount}
+\def\labelargcount{\texttt{\#\arabic{argcount}}\hskip\labelsep$=$}
+\def\macroargs{\list\labelargcount
+ {\usecounter{argcount}\leftmargin=2\leftmargin
+ \parsep \z@ \@plus\z@ \@minus\z@
+ \topsep4\p@ \@plus\p@ \@minus2\p@
+ \itemsep\z@ \@plus\z@ \@minus\z@
+ \def\makelabel##1{\hss\llap{##1}}}}
+\def\endmacroargs{\endlist\@endparenv}
+\lst@RequireAspects{writefile}
+\newbox\lst@samplebox
+\lstnewenvironment{lstsample}[3][]
+ {\global\let\lst@intname\@empty
+ \gdef\lst@sample{#2}%
+ \setbox\lst@samplebox=\hbox\bgroup
+ \setkeys{lst}{language={},style={},tabsize=4,gobble=5,%
+ basicstyle=\small\ttfamily,basewidth=0.51em,point={#1}}
+ #3%
+ \lst@BeginAlsoWriteFile{\jobname.tmp}}
+ {\lst@EndWriteFile\egroup
+ \ifdim \wd\lst@samplebox>.5\linewidth
+ \begin{center}%
+ \hbox to\linewidth{\box\lst@samplebox\hss}%
+ \end{center}%
+ \lst@sampleInput
+ \else
+ \begin{center}%
+ \begin{minipage}{0.45\linewidth}\lst@sampleInput\end{minipage}%
+ \qquad
+ \begin{minipage}{0.45\linewidth}%
+ \hbox to\linewidth{\box\lst@samplebox\hss}%
+ \end{minipage}%
+ \end{center}%
+ \fi}
+\lst@InstallKeywords{p}{point}{pointstyle}\relax{keywordstyle}{}ld
+\lstnewenvironment{lstxsample}[1][]
+ {\begingroup
+ \setkeys{lst}{belowskip=-\medskipamount,language={},style={},%
+ tabsize=4,gobble=5,basicstyle=\small\ttfamily,%
+ basewidth=0.51em,point={#1}}
+ \lst@BeginAlsoWriteFile{\jobname.tmp}}
+ {\endgroup
+ \endgroup}
+\def\lst@sampleInput{%
+ \MakePercentComment\catcode`\^^M=10\relax
+ \small\lst@sample
+ {\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}%
+ {\lst@ProcessTabulator}}%
+ \leavevmode \input{\jobname.tmp}}\MakePercentIgnore}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {1.25ex \@plus1ex \@minus.2ex}%
+ {-1em}%
+ {\normalfont\normalsize\bfseries}}
+\def\lstref#1{\emph{\ref{#1} \nameref{#1}}}
+\def\@part[#1]#2{\addcontentsline{toc}{part}{#1}%
+ {\parindent\z@ \raggedright \interlinepenalty\@M
+ \normalfont \huge \bfseries #2\markboth{}{}\par}%
+ \nobreak\vskip 3ex\@afterheading}
+\renewcommand*\l@section[2]{%
+ \addpenalty\@secpenalty
+ \addvspace{.25em \@plus\p@}%
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \endgroup}
+\renewcommand*\l@subsection{\@dottedtocline{2}{0pt}{2.3em}}
+\renewcommand*\l@subsubsection{\@dottedtocline{3}{0pt}{3.2em}}
+\newcommand\ikeyname[1]{%
+ \lstkeyindex{#1}{}%
+ \lstaspectindex{#1}{}%
+ \keyname{#1}}
+\newcommand\ekeyname[1]{%
+ \@bsphack
+ \lstkeyindex{#1}{\encapchar usage}%
+ \lstaspectindex{#1}{\encapchar usage}%
+ \@esphack}
+\newcommand\rkeyname[1]{%
+ \@bsphack
+ \lstkeyindex{#1}{\encapchar main}%
+ \lstaspectindex{#1}{\encapchar main}%
+ \@esphack{\rstyle\keyname{#1}}}
+\newcommand\icmdname[1]{%
+ \@bsphack
+ \lstaspectindex{#1}{}%
+ \@esphack\texttt{\string#1}}
+\newcommand\rcmdname[1]{%
+ \@bsphack
+ \lstaspectindex{#1}{\encapchar main}%
+ \@esphack\texttt{\rstyle\string#1}}
+\def\lstaspectindex#1#2{%
+ \global\@namedef{lstkandc@\string#1}{}%
+ \@ifundefined{lstisaspect@\string#1}
+ {\index{unknown\levelchar
+ \protect\texttt{\protect\string\string#1}#2}}%
+ {\index{\@nameuse{lstisaspect@\string#1}\levelchar
+ \protect\texttt{\protect\string\string#1}#2}}%
+}
+\def\lstkeyindex#1#2{%
+}
+\def\lstisaspect[#1]#2{%
+ \global\@namedef{lstaspect@#1}{#2}%
+ \lst@AddTo\lst@allkeysandcmds{,#2}%
+ \@for\lst@temp:=#2\do
+ {\ifx\@empty\lst@temp\else
+ \global\@namedef{lstisaspect@\lst@temp}{#1}%
+ \fi}}
+\gdef\lst@allkeysandcmds{}
+\def\lstprintaspectkeysandcmds#1{%
+ \lst@true
+ \expandafter\@for\expandafter\lst@temp
+ \expandafter:\expandafter=\csname lstaspect@#1\endcsname\do
+ {\lst@if\lst@false\else, \fi \texttt{\lst@temp}}}
+\def\lstcheckreference{%
+ \@for\lst@temp:=\lst@allkeysandcmds\do
+ {\ifx\lst@temp\@empty\else
+ \@ifundefined{lstkandc@\lst@temp}
+ {\typeout{\lst@temp\space not in reference guide?}}{}%
+ \fi}}
+\newcommand*\lst{\texttt{lst}}
+\newcommand*\Cpp{C\texttt{++}}
+\let\keyname\texttt
+\let\keyvalue\texttt
+\let\hookname\texttt
+\newcommand*\aspectname[1]{{\normalfont\sffamily#1}}
+\DeclareRobustCommand\packagename[1]{%
+ {\leavevmode\text@command{#1}%
+ \switchfontfamily\sfdefault\rmdefault
+ \check@icl #1\check@icr
+ \expandafter}}%
+\renewcommand\packagename[1]{{\normalfont\sffamily#1}}
+\def\switchfontfamily#1#2{%
+ \begingroup\xdef\@gtempa{#1}\endgroup
+ \ifx\f@family\@gtempa\fontfamily#2%
+ \else\fontfamily#1\fi
+ \selectfont}
+\ifcolor
+ \definecolor{darkgreen}{rgb}{0,0.5,0}
+ \def\rstyle{\color{darkgreen}}
+\else
+ \let\rstyle\empty
+\fi
+\gdef\lst@emails{}
+\newcommand*\lstthanks[2]
+ {#1\lst@AddTo\lst@emails{,#1,<#2>}%
+ \ifx\@empty#2\@empty\typeout{Missing email for #1}\fi}
+\newcommand*\lsthelper[3]
+ {{\let~\ #1}%
+ \lst@IfOneOf#1\relax\lst@emails
+ {}{\typeout{^^JWarning: Unknown helper #1.^^J}}}
+\lstdefinelanguage[doc]{Pascal}{%
+ morekeywords={alfa,and,array,begin,boolean,byte,case,char,const,div,%
+ do,downto,else,end,false,file,for,function,get,goto,if,in,%
+ integer,label,maxint,mod,new,not,of,or,pack,packed,page,program,%
+ procedure,put,read,readln,real,record,repeat,reset,rewrite,set,%
+ text,then,to,true,type,unpack,until,var,while,with,write,writeln},%
+ sensitive=false,%
+ morecomment=[s]{(*}{*)},%
+ morecomment=[s]{\{}{\}},%
+ morestring=[d]{'}}
+\lstdefinestyle{}
+ {basicstyle={},%
+ keywordstyle=\bfseries,identifierstyle={},%
+ commentstyle=\itshape,stringstyle={},%
+ numberstyle={},stepnumber=1,%
+ pointstyle=\pointstyle}
+\def\pointstyle{%
+ {\let\lst@um\@empty \xdef\@gtempa{\the\lst@token}}%
+ \expandafter\lstkeyindex\expandafter{\@gtempa}{}%
+ \expandafter\lstaspectindex\expandafter{\@gtempa}{}%
+ \rstyle}
+\lstset{defaultdialect=[doc]Pascal,language=Pascal,style={}}
+\def\lstscanlanguages#1#2#3{%
+ \begingroup
+ \def\lst@DefDriver@##1##2##3##4[##5]##6{%
+ \lst@false
+ \lst@lAddTo\lst@scan{##6(##5),}%
+ \begingroup
+ \@ifnextchar[{\lst@XDefDriver{##1}##3}{\lst@DefDriver@@##3}}%
+ \def\lst@XXDefDriver[##1]{}%
+ \lst@InputCatcodes
+ \def\lst@dontinput{#3}%
+ \let\lst@scan\@empty
+ \lst@for{#2}\do{%
+ \lst@IfOneOf##1\relax\lst@dontinput
+ {}%
+ {\InputIfFileExists{##1}{}{}}}%
+ \global\let\@gtempa\lst@scan
+ \endgroup
+ \let#1\@gtempa}
+\def\lstprintlanguages#1{%
+ \def\do##1{\setbox\@tempboxa\hbox{##1\space\space}%
+ \ifdim\wd\@tempboxa<.5\linewidth \wd\@tempboxa.5\linewidth
+ \else \wd\@tempboxa\linewidth \fi
+ \box\@tempboxa\allowbreak}%
+ \begin{quote}
+ \par\noindent
+ \hyphenpenalty=\@M \rightskip=\z@\@plus\linewidth\relax
+ \lst@BubbleSort#1%
+ \expandafter\lst@NextLanguage#1\relax(\relax),%
+ \end{quote}}
+\def\lst@NextLanguage#1(#2),{%
+ \ifx\relax#1\else
+ \def\lst@language{#1}\def\lst@dialects{(#2),}%
+ \expandafter\lst@NextLanguage@
+ \fi}
+\def\lst@NextLanguage@#1(#2),{%
+ \def\lst@temp{#1}%
+ \ifx\lst@temp\lst@language
+ \lst@lAddTo\lst@dialects{(#2),}%
+ \expandafter\lst@NextLanguage@
+ \else
+ \do{\lst@language
+ \ifx\lst@dialects\lst@emptydialect\else
+ \expandafter\lst@NormedDef\expandafter\lst@language
+ \expandafter{\lst@language}%
+ \space(%
+ \lst@BubbleSort\lst@dialects
+ \expandafter\lst@PrintDialects\lst@dialects(\relax),%
+ )%
+ \fi}%
+ \def\lst@next{\lst@NextLanguage#1(#2),}%
+ \expandafter\lst@next
+ \fi}
+\def\lst@emptydialect{(),}
+\def\lst@PrintDialects(#1),{%
+ \ifx\@empty#1\@empty empty\else
+ \lst@PrintDialect{#1}%
+ \fi
+ \lst@PrintDialects@}
+\def\lst@PrintDialects@(#1),{%
+ \ifx\relax#1\else
+ , \lst@PrintDialect{#1}%
+ \expandafter\lst@PrintDialects@
+ \fi}
+\def\lst@PrintDialect#1{%
+ \lst@NormedDef\lst@temp{#1}%
+ \expandafter\ifx\csname\@lst dd@\lst@language\endcsname\lst@temp
+ \texttt{\underbar{#1}}%
+ \else
+ \texttt{#1}%
+ \fi}
+\def\lst@IfLE#1#2\@empty#3#4\@empty{%
+ \ifx #1\relax
+ \let\lst@next\@firstoftwo
+ \else \ifx #3\relax
+ \let\lst@next\@secondoftwo
+ \else
+ \lowercase{\ifx#1#3}%
+ \def\lst@next{\lst@IfLE#2\@empty#4\@empty}%
+ \else
+ \lowercase{\ifnum`#1<`#3}\relax
+ \let\lst@next\@firstoftwo
+ \else
+ \let\lst@next\@secondoftwo
+ \fi
+ \fi
+ \fi \fi
+ \lst@next}
+\def\lst@BubbleSort#1{%
+ \ifx\@empty#1\else
+ \lst@false
+ \expandafter\lst@BubbleSort@#1\relax,\relax,%
+ \expandafter\lst@BubbleSort@\expandafter,\lst@sorted
+ \relax,\relax,%
+ \let#1\lst@sorted
+ \lst@if
+ \def\lst@next{\lst@BubbleSort#1}%
+ \expandafter\expandafter\expandafter\lst@next
+ \fi
+ \fi}
+\def\lst@BubbleSort@#1,#2,{%
+ \ifx\@empty#1\@empty
+ \def\lst@sorted{#2,}%
+ \def\lst@next{\lst@BubbleSort@@}%
+ \else
+ \let\lst@sorted\@empty
+ \def\lst@next{\lst@BubbleSort@@#1,#2,}%
+ \fi
+ \lst@next}
+\def\lst@BubbleSort@@#1,#2,{%
+ \ifx\relax#1\else
+ \ifx\relax#2%
+ \lst@lAddTo\lst@sorted{#1,}%
+ \expandafter\expandafter\expandafter\lst@BubbleSort@@@
+ \else
+ \lst@IfLE #1\relax\@empty #2\relax\@empty
+ {\lst@lAddTo\lst@sorted{#1,#2,}}%
+ {\lst@true \lst@lAddTo\lst@sorted{#2,#1,}}%
+ \expandafter\expandafter\expandafter\lst@BubbleSort@@
+ \fi
+ \fi}
+\def\lst@BubbleSort@@@#1\relax,{}
+\endinput
+%%
+%% End of file `lstdoc.sty'.