Browse Source

+ latest version of listings. package (1.0)

michael 22 years ago
parent
commit
c061b43fe2
8 changed files with 2739 additions and 1201 deletions
  1. 7 10
      docs/styles/listings.cfg
  2. 665 251
      docs/styles/listings.sty
  3. 221 23
      docs/styles/lstdoc.sty
  4. 331 44
      docs/styles/lstlang1.sty
  5. 665 26
      docs/styles/lstlang2.sty
  6. 93 62
      docs/styles/lstlang3.sty
  7. 293 406
      docs/styles/lstmisc.sty
  8. 464 379
      docs/styles/lstpatch.sty

+ 7 - 10
docs/styles/listings.cfg

@@ -6,8 +6,8 @@
 %%
 %% lstdrvrs.dtx  (with options: `config')
 %% 
-%% (w)(c) 1996/1997/1998/1999/2000 Carsten Heinz and/or any other author
-%% listed elsewhere in this file.
+%% (w)(c) 1996/1997/1998/1999/2000/2001/2002 Carsten Heinz and/or any
+%% other author listed elsewhere in this file.
 %%
 %% This file is distributed under the terms of the LaTeX Project Public
 %% License from CTAN archives in directory  macros/latex/base/lppl.txt.
@@ -15,29 +15,26 @@
 %%
 %% This file is completely free and comes without any warranty.
 %%
-%% Permission is granted to change this file. You are not allowed to
-%% distribute any changed version of this file, neither under the same
-%% name nor under a different one.
-%%
 %% Send comments and ideas on the package, error reports and additional
 %% programming languages to <[email protected]>.
 %%
+\ProvidesFile{listings.cfg}[2002/04/01 v1.0 listings configuration]
 \def\lstlanguagefiles
     {lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
-\lstset{defaultdialect=[R/3 4.6C]ABAP,
+\lstset{defaultdialect=[R/3 6.10]ABAP,
         defaultdialect=[95]Ada,
         defaultdialect=[68]Algol,
-        defaultdialect=[Visual]Basic,
         defaultdialect=[ANSI]C,
         defaultdialect=[light]Caml,
         defaultdialect=[1985]Cobol,
-        defaultdialect=[ANSI]C++,
+        defaultdialect=[ISO]C++,
         defaultdialect=[95]Fortran,
         defaultdialect=[3.0]Mathematica,
         defaultdialect=[OMG]OCL,
         defaultdialect=[Standard]Pascal,
         defaultdialect=[67]Simula,
-        defaultdialect=[plain]TeX}
+        defaultdialect=[plain]TeX,
+        defaultdialect=[97]VRML}
 \lstalias[]{TclTk}[tk]{tcl}
 \endinput
 %%

File diff suppressed because it is too large
+ 665 - 251
docs/styles/listings.sty


+ 221 - 23
docs/styles/lstdoc.sty

@@ -8,33 +8,57 @@
 %% 
 %% Please read the software license in listings.dtx or listings.dvi.
 %%
-%% (w)(c) 1996/1997/1998/1999/2000 Carsten Heinz and/or any other author
+%% (w)(c) 1996 -- 2002 Carsten Heinz and/or any other author
 %% listed elsewhere in this file.
 %%
 %% This file is distributed under the terms of the LaTeX Project Public
 %% License from CTAN archives in directory  macros/latex/base/lppl.txt.
 %% Either version 1.0 or, at your option, any later version.
 %%
+%% Permission is granted to modify the listings package as well as
+%% lstdrvrs.dtx. You are not allowed to distribute a modified version
+%% of the package or lstdrvrs.dtx unless you change the file names and
+%% provide the original files. In any case it is better to contact the
+%% address below; other users will welcome removed bugs, new features,
+%% and additional programming languages.
+%%
 %% The listings package is free software.
 %%
 %% However, if you distribute the package as part of a commercial
-%% product or if you use the package to prepare a document and sell the
-%% document (books, journals, and so on), I'd like to encourage you to
-%% make a donation to the LaTeX3 fund. The size of this `license fee'
-%% should depend on the value of the package for your product.
-%%
-%% If you use the package to typeset a non-commercial document, please
-%% send me a copy of the document (.dvi, .ps, .pdf, hardcopy, etc.) to
-%% support further development.
+%% product or if you use the package to prepare a commercial document
+%% (books, journals, and so on), I'd like to encourage you to make a
+%% donation to the LaTeX3 fund. The size of this `license fee' should
+%% depend on the value of the package for your product. For more
+%% information about LaTeX see http://www.latex-project.org
 %%
-%% Permission is granted to change this file. You are not allowed to
-%% distribute any changed version of this file, neither under the same
-%% name nor under a different one.
+%% No matter whether you use the package for a commercial or
+%% non-commercial document, please send me a copy of the document (.dvi,
+%% .ps, .pdf, hardcopy, etc.) to support further development---it is
+%% easier to introduce new features or simplify things if I see how the
+%% package is used by other people.
 %%
 %% Send comments and ideas on the package, error reports and additional
 %% programming languages to <[email protected]>.
 %%
-\lst@AddToAtTop{\try@load@fontshape}{\def\space{ }}
+\def\filedate{2002/04/01}
+\def\fileversion{1.0}
+\ProvidesPackage{lstdoc}
+             [\filedate\space\fileversion\space(Carsten Heinz)]
+\let\lstdoc@currversion\fileversion
+\RequirePackage[writefile]{listings}[2002/04/01]
+\newif\iffancyvrb \IfFileExists{fancyvrb.sty}{\fancyvrbtrue}{}
+\newif\ifcolor \IfFileExists{color.sty}{\colortrue}{}
+\newif\ifhyper \@ifundefined{pdfoutput}{}
+    {\IfFileExists{hyperref.sty}{\hypertrue}{}}
+\newif\ifalgorithmic \IfFileExists{algorithmic.sty}{\algorithmictrue}{}
+\iffancyvrb \RequirePackage{fancyvrb}\fi
+\ifhyper \RequirePackage[colorlinks]{hyperref}\else
+    \def\href#1{\texttt}\fi
+\ifcolor \RequirePackage{color}\fi
+\ifalgorithmic \RequirePackage{algorithmic}\fi
+\RequirePackage{nameref}
+\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}}
@@ -46,6 +70,47 @@
     {\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}}%
@@ -98,7 +163,7 @@
 \def\PrintKeyName#1{\strut\keyname{#1}\ }
 \def\SpecialMainKeyIndex#1{%
     \@bsphack
-    \index{keys:\levelchar\protect\keyname{#1}\encapchar main}%
+    \index{keys\levelchar\protect\keyname{#1}\encapchar main}%
     \@esphack}
 \newcounter{argcount}
 \def\labelargcount{\texttt{\#\arabic{argcount}}\hskip\labelsep$=$}
@@ -111,20 +176,18 @@
 \def\endmacroargs{\endlist\@endparenv}
 \lst@RequireAspects{writefile}
 \newbox\lst@samplebox
-\lstnewenvironment{lstsample}[2]
-    {\lst@TestEOLChar{#1}\global\let\lst@intname\@empty
-     \gdef\lst@sample{#1}%
+\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}
-         #2%
+             basicstyle=\small\ttfamily,basewidth=0.51em,point={#1}}
+         #3%
          \lst@BeginAlsoWriteFile{\jobname.tmp}}
     {\lst@EndWriteFile\egroup
      \ifdim \wd\lst@samplebox>.5\linewidth
          \begin{center}%
-         \begin{minipage}{0.9\linewidth}%
              \hbox to\linewidth{\box\lst@samplebox\hss}%
-         \end{minipage}%
          \end{center}%
          \lst@sampleInput
      \else
@@ -136,12 +199,147 @@
          \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}}%
+\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.6,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{%
@@ -202,12 +400,12 @@
     \lst@PrintDialects@}
 \def\lst@PrintDialects@(#1),{%
     \ifx\relax#1\else
-        ,\lst@PrintDialect{#1}%
+        , \lst@PrintDialect{#1}%
         \expandafter\lst@PrintDialects@
     \fi}
 \def\lst@PrintDialect#1{%
     \lst@NormedDef\lst@temp{#1}%
-    \expandafter\ifx\csname lstdd@\lst@language\endcsname\lst@temp
+    \expandafter\ifx\csname\@lst dd@\lst@language\endcsname\lst@temp
         \texttt{\underbar{#1}}%
     \else
         \texttt{#1}%

+ 331 - 44
docs/styles/lstlang1.sty

@@ -6,8 +6,8 @@
 %%
 %% lstdrvrs.dtx  (with options: `lang1')
 %% 
-%% (w)(c) 1996/1997/1998/1999/2000 Carsten Heinz and/or any other author
-%% listed elsewhere in this file.
+%% (w)(c) 1996/1997/1998/1999/2000/2001/2002 Carsten Heinz and/or any
+%% other author listed elsewhere in this file.
 %%
 %% This file is distributed under the terms of the LaTeX Project Public
 %% License from CTAN archives in directory  macros/latex/base/lppl.txt.
@@ -15,13 +15,22 @@
 %%
 %% This file is completely free and comes without any warranty.
 %%
-%% Permission is granted to change this file. You are not allowed to
-%% distribute any changed version of this file, neither under the same
-%% name nor under a different one.
-%%
 %% Send comments and ideas on the package, error reports and additional
 %% programming languages to <[email protected]>.
 %%
+\ProvidesFile{lstlang1}
+    [2002/07/31 v1.0d listings language file]
+%%
+%% ACSL definition (c) 2000 by Andreas Matthias <[email protected]>
+%%
+\lst@definelanguage{ACSL}[90]{Fortran}%
+   {morekeywords={algorithm,cinterval,constant,derivative,discrete,%
+         dynamic,errtag,initial,interval,maxterval,minterval,%
+         merror,xerror,nsteps,procedural,save,schedule,sort,%
+         table,terminal,termt,variable},%
+    sensitive=false,%
+    morecomment=[l]!%
+   }[keywords, comments]%
 %%
 %% Ada 95 definition (c) Torsten Neuer <[email protected]>
 %%
@@ -40,19 +49,154 @@
    morestring=[m]",% percent not defined as stringizer so far
    morestring=[m]'%
   }[keywords,comments,strings]%
-\lst@definelanguage[Visual]{C++}[ANSI]{C++}%
+%%
+%% Visual Basic definition (c) 2002 Robert Frank <[email protected]>
+%%
+\lst@definelanguage[Visual]{Basic}
+  {morekeywords={Abs,Array,Asc,AscB,AscW,Atn,Avg,CBool,CByte,CCur,%
+      CDate,CDbl,Cdec,Choose,Chr,ChrB,ChrW,CInt,CLng,Command,Cos,%
+      Count,CreateObject,CSng,CStr,CurDir,CVar,CVDate,CVErr,Date,%
+      DateAdd,DateDiff,DatePart,DateSerial,DateValue,Day,DDB,Dir,%
+      DoEvents,Environ,EOF,Error,Exp,FileAttr,FileDateTime,FileLen,%
+      Fix,Format,FreeFile,FV,GetAllStrings,GetAttr,%
+      GetAutoServerSettings,GetObject,GetSetting,Hex,Hour,IIf,%
+      IMEStatus,Input,InputB,InputBox,InStr,InstB,Int,Integer,IPmt,%
+      IsArray,IsDate,IsEmpty,IsError,IsMissing,IsNull,IsNumeric,%
+      IsObject,LBound,LCase,Left,LeftB,Len,LenB,LoadPicture,Loc,LOF,%
+      Log,Ltrim,Max,Mid,MidB,Min,Minute,MIRR,Month,MsgBox,Now,NPer,%
+      NPV,Oct,Partition,Pmt,PPmt,PV,QBColor,Rate,RGB,Right,RightB,Rnd,%
+      Rtrim,Second,Seek,Sgn,Shell,Sin,SLN,Space,Spc,Sqr,StDev,StDevP,%
+      Str,StrComp,StrConv,String,Switch,Sum,SYD,Tab,Tan,Time,Timer,%
+      TimeSerial,TimeValue,Trim,TypeName,UBound,Ucase,Val,Var,VarP,%
+      VarType,Weekday,Year},% functions
+   morekeywords=[2]{Accept,Activate,Add,AddCustom,AddFile,AddFromFile,%
+      AddFromTemplate,AddItem,AddNew,AddToAddInToolbar,%
+      AddToolboxProgID,Append,AppendChunk,Arrange,Assert,AsyncRead,%
+      BatchUpdate,BeginTrans,Bind,Cancel,CancelAsyncRead,CancelBatch,%
+      CancelUpdate,CanPropertyChange,CaptureImage,CellText,CellValue,%
+      Circle,Clear,ClearFields,ClearSel,ClearSelCols,Clone,Close,Cls,%
+      ColContaining,ColumnSize,CommitTrans,CompactDatabase,Compose,%
+      Connect,Copy,CopyQueryDef,CreateDatabase,CreateDragImage,%
+      CreateEmbed,CreateField,CreateGroup,CreateIndex,CreateLink,%
+      CreatePreparedStatement,CreatePropery,CreateQuery,%
+      CreateQueryDef,CreateRelation,CreateTableDef,CreateUser,%
+      CreateWorkspace,Customize,Delete,DeleteColumnLabels,%
+      DeleteColumns,DeleteRowLabels,DeleteRows,DoVerb,Drag,Draw,Edit,%
+      EditCopy,EditPaste,EndDoc,EnsureVisible,EstablishConnection,%
+      Execute,ExtractIcon,Fetch,FetchVerbs,Files,FillCache,Find,%
+      FindFirst,FindItem,FindLast,FindNext,FindPrevious,Forward,%
+      GetBookmark,GetChunk,GetClipString,GetData,GetFirstVisible,%
+      GetFormat,GetHeader,GetLineFromChar,GetNumTicks,GetRows,%
+      GetSelectedPart,GetText,GetVisibleCount,GoBack,GoForward,Hide,%
+      HitTest,HoldFields,Idle,InitializeLabels,InsertColumnLabels,%
+      InsertColumns,InsertObjDlg,InsertRowLabels,InsertRows,Item,%
+      KillDoc,Layout,Line,LinkExecute,LinkPoke,LinkRequest,LinkSend,%
+      Listen,LoadFile,LoadResData,LoadResPicture,LoadResString,%
+      LogEvent,MakeCompileFile,MakeReplica,MoreResults,Move,MoveData,%
+      MoveFirst,MoveLast,MoveNext,MovePrevious,NavigateTo,NewPage,%
+      NewPassword,NextRecordset,OLEDrag,OnAddinsUpdate,OnConnection,%
+      OnDisconnection,OnStartupComplete,Open,OpenConnection,%
+      OpenDatabase,OpenQueryDef,OpenRecordset,OpenResultset,OpenURL,%
+      Overlay,PaintPicture,Paste,PastSpecialDlg,PeekData,Play,Point,%
+      PopulatePartial,PopupMenu,Print,PrintForm,PropertyChanged,Pset,%
+      Quit,Raise,RandomDataFill,RandomFillColumns,RandomFillRows,%
+      rdoCreateEnvironment,rdoRegisterDataSource,ReadFromFile,%
+      ReadProperty,Rebind,ReFill,Refresh,RefreshLink,RegisterDatabase,%
+      Reload,Remove,RemoveAddInFromToolbar,RemoveItem,Render,%
+      RepairDatabase,Reply,ReplyAll,Requery,ResetCustom,%
+      ResetCustomLabel,ResolveName,RestoreToolbar,Resync,Rollback,%
+      RollbackTrans,RowBookmark,RowContaining,RowTop,Save,SaveAs,%
+      SaveFile,SaveToFile,SaveToolbar,SaveToOle1File,Scale,ScaleX,%
+      ScaleY,Scroll,Select,SelectAll,SelectPart,SelPrint,Send,%
+      SendData,Set,SetAutoServerSettings,SetData,SetFocus,SetOption,%
+      SetSize,SetText,SetViewport,Show,ShowColor,ShowFont,ShowHelp,%
+      ShowOpen,ShowPrinter,ShowSave,ShowWhatsThis,SignOff,SignOn,Size,%
+      Span,SplitContaining,StartLabelEdit,StartLogging,Stop,%
+      Synchronize,TextHeight,TextWidth,ToDefaults,TwipsToChartPart,%
+      TypeByChartType,Update,UpdateControls,UpdateRecord,UpdateRow,%
+      Upto,WhatsThisMode,WriteProperty,ZOrder},% methods
+   morekeywords=[3]{AccessKeyPress,AfterAddFile,AfterChangeFileName,%
+      AfterCloseFile,AfterColEdit,AfterColUpdate,AfterDelete,%
+      AfterInsert,AfterLabelEdit,AfterRemoveFile,AfterUpdate,%
+      AfterWriteFile,AmbienChanged,ApplyChanges,Associate,%
+      AsyncReadComplete,AxisActivated,AxisLabelActivated,%
+      AxisLabelSelected,AxisLabelUpdated,AxisSelected,%
+      AxisTitleActivated,AxisTitleSelected,AxisTitleUpdated,%
+      AxisUpdated,BeforeClick,BeforeColEdit,BeforeColUpdate,%
+      BeforeConnect,BeforeDelete,BeforeInsert,BeforeLabelEdit,%
+      BeforeLoadFile,BeforeUpdate,ButtonClick,ButtonCompleted,%
+      ButtonGotFocus,ButtonLostFocus,Change,ChartActivated,%
+      ChartSelected,ChartUpdated,Click,ColEdit,Collapse,ColResize,%
+      ColumnClick,Compare,ConfigChageCancelled,ConfigChanged,%
+      ConnectionRequest,DataArrival,DataChanged,DataUpdated,DblClick,%
+      Deactivate,DeviceArrival,DeviceOtherEvent,DeviceQueryRemove,%
+      DeviceQueryRemoveFailed,DeviceRemoveComplete,DeviceRemovePending,%
+      DevModeChange,Disconnect,DisplayChanged,Dissociate,%
+      DoGetNewFileName,Done,DonePainting,DownClick,DragDrop,DragOver,%
+      DropDown,EditProperty,EnterCell,EnterFocus,Event,ExitFocus,%
+      Expand,FootnoteActivated,FootnoteSelected,FootnoteUpdated,%
+      GotFocus,HeadClick,InfoMessage,Initialize,IniProperties,%
+      ItemActivated,ItemAdded,ItemCheck,ItemClick,ItemReloaded,%
+      ItemRemoved,ItemRenamed,ItemSeletected,KeyDown,KeyPress,KeyUp,%
+      LeaveCell,LegendActivated,LegendSelected,LegendUpdated,%
+      LinkClose,LinkError,LinkNotify,LinkOpen,Load,LostFocus,%
+      MouseDown,MouseMove,MouseUp,NodeClick,ObjectMove,%
+      OLECompleteDrag,OLEDragDrop,OLEDragOver,OLEGiveFeedback,%
+      OLESetData,OLEStartDrag,OnAddNew,OnComm,Paint,PanelClick,%
+      PanelDblClick,PathChange,PatternChange,PlotActivated,%
+      PlotSelected,PlotUpdated,PointActivated,PointLabelActivated,%
+      PointLabelSelected,PointLabelUpdated,PointSelected,%
+      PointUpdated,PowerQuerySuspend,PowerResume,PowerStatusChanged,%
+      PowerSuspend,QueryChangeConfig,QueryComplete,QueryCompleted,%
+      QueryTimeout,QueryUnload,ReadProperties,Reposition,%
+      RequestChangeFileName,RequestWriteFile,Resize,ResultsChanged,%
+      RowColChange,RowCurrencyChange,RowResize,RowStatusChanged,%
+      SelChange,SelectionChanged,SendComplete,SendProgress,%
+      SeriesActivated,SeriesSelected,SeriesUpdated,SettingChanged,%
+      SplitChange,StateChanged,StatusUpdate,SysColorsChanged,%
+      Terminate,TimeChanged,TitleActivated,TitleSelected,%
+      TitleActivated,UnboundAddData,UnboundDeleteRow,%
+      UnboundGetRelativeBookmark,UnboundReadData,UnboundWriteData,%
+      Unload,UpClick,Updated,Validate,ValidationError,WillAssociate,%
+      WillChangeData,WillDissociate,WillExecute,WillUpdateRows,%
+      WithEvents,WriteProperties},% VB-events
+   morekeywords=[4]{AppActivate,Base,Beep,Call,Case,ChDir,ChDrive,%
+      Const,Declare,DefBool,DefByte,DefCur,DefDate,DefDbl,DefDec,%
+      DefInt,DefLng,DefObj,DefSng,DefStr,Deftype,DefVar,DeleteSetting,%
+      Dim,Do,Else,ElseIf,End,Enum,Erase,Event,Exit,Explicit,FileCopy,%
+      For,ForEach,Friend,Function,Get,GoSub,GoTo,If,Implements,Kill,%
+      Let,LineInput,Lock,Lset,MkDir,Name,Next,OnError,On,Option,%
+      Private,Property,Public,Put,RaiseEvent,Randomize,ReDim,Rem,%
+      Reset,Resume,Return,RmDir,Rset,SavePicture,SaveSetting,%
+      SendKeys,SetAttr,Static,Sub,Then,Type,Unlock,Wend,While,Width,%
+      With,Write},% statements
+   sensitive=false,
+   keywordcomment=rem,%
+   MoreSelectCharTable=\def\lst@BeginKC@{% chmod
+      \lst@ResetToken
+      \lst@BeginComment\lst@GPmode{{\lst@commentstyle}%
+                       \lst@Lmodetrue\lst@modetrue}\@empty}%
+   morecomment=[l]{'},
+   morecomment=[s]{/*}{*/},
+   morestring=[b]",
+   }[keywords,comments,strings,keywordcomments]
+\lst@definelanguage[ANSI]{C++}[ISO]{C++}{}%
+\lst@definelanguage[GNU]{C++}[ISO]{C++}%
+  {morekeywords={__attribute__,__extension__,__restrict,__restrict__,%
+      typeof,__typeof__},%
+  }%
+\lst@definelanguage[Visual]{C++}[ISO]{C++}%
   {morekeywords={__asm,__based,__cdecl,__declspec,dllexport,%
       dllimport,__except,__fastcall,__finally,__inline,__int8,__int16,%
       __int32,__int64,naked,__stdcall,thread,__try,__leave},%
   }%
-\lst@definelanguage[ANSI]{C++}[ANSI]{C}%
-  {morekeywords={asm,bad_cast,bad_typeid,bool,catch,class,const_cast,%
-      delete,dynamic_cast,false,friend,inline,namespace,new,operator,%
-      private,protected,public,reinterpret_cast,static_cast,template,%
-      this,throw,true,try,type_info,typeid,using,virtual,xalloc,%
-      __multiple_inheritance,__single_inheritance,%
-      __virtual_inheritance},%
-   morecomment=[l]//%
+\lst@definelanguage[ISO]{C++}[ANSI]{C}%
+  {morekeywords={and,and_eq,asm,bad_cast,bad_typeid,bitand,bitor,bool,%
+      catch,class,compl,const_cast,delete,dynamic_cast,explicit,export,%
+      false,friend,inline,mutable,namespace,new,not,not_eq,operator,or,%
+      or_eq,private,protected,public,reinterpret_cast,static_cast,%
+      template,this,throw,true,try,typeid,type_info,typename,using,%
+      virtual,wchar_t,xor,xor_eq},%
   }%
 %%
 %% Objective-C definition (c) 1997 Detlev Droege
@@ -62,7 +206,6 @@
   {morekeywords={bycopy,id,in,inout,oneway,out,self,super,%
       @class,@defs,@encode,@end,@implementation,@interface,@private,%
       @protected,@protocol,@public,@selector},%
-   morecomment=[l]//,%
    moredirectives={import}%
   }%
 \lst@definelanguage[ANSI]{C}%
@@ -72,12 +215,30 @@
       void,volatile,while},%
    sensitive,%
    morecomment=[s]{/*}{*/},%
+   morecomment=[l]//,% nonstandard
    morestring=[b]",%
    morestring=[b]',%
    moredirectives={define,elif,else,endif,error,if,ifdef,ifndef,line,%
       include,pragma,undef,warning}%
   }[keywords,comments,strings,directives]%
 %%
+%% C-Sharp definition (c) 2002 Martin Brodbeck <[email protected]>
+%%
+\lst@definelanguage[Sharp]{C}%
+  {morekeywords={abstract,base,bool,break,byte,case,catch,char,checked,%
+      class,const,continue,decimal,default,delegate,do,double,else,%
+      enum,event,explicit,extern,false,finally,fixed,float,for,foreach,%
+      goto,if,implicit,in,int,interface,internal,is,lock,long,%
+      namespace,new,null,object,operator,out,override,params,private,%
+      protected,public,readonly,ref,return,sbyte,sealed,short,sizeof,%
+      static,string,struct,switch,this,throw,true,try,typeof,uint,%
+      ulong,unchecked,unsafe,ushort,using,virtual,void,while},%
+   sensitive,%
+   morecomment=[s]{/*}{*/},%
+   morecomment=[l]//,%
+   morestring=[b]"
+  }[keywords,comments,strings]%
+%%
 %% csh definition (c) 1998 Kai Below <[email protected]>
 %%
 \lst@definelanguage{csh}
@@ -92,7 +253,7 @@
   }[keywords,comments,strings]%
 \lst@definelanguage[90]{Fortran}[95]{Fortran}{}
 \lst@definelanguage[95]{Fortran}[77]{Fortran}%
-  {deletekeywords=SAVE,
+  {deletekeywords=SAVE,%
    morekeywords={ACTION,ADVANCE,ALLOCATE,ALLOCATABLE,ASSIGNMENT,CASE,%
       CONTAINS,CYCLE,DEALLOCATE,DEFAULT,DELIM,EXIT,INCLUDE,IN,NONE,IN,%
       OUT,INTENT,INTERFACE,IOLENGTH,KIND,LEN,MODULE,NAME,NAMELIST,NMT,%
@@ -102,8 +263,8 @@
       ENDBLOCKDATA,ENDDO,ENDFILE,ENDFUNCTION,ENDIF,ENDINTERFACE,%
       ENDMODULE,ENDPROGRAM,ENDSELECT,ENDSUBROUTINE,ENDTYPE,ENDWHERE,%
       GOTO,INOUT,SELECTCASE},%
-   morecomment=[l]!,%
-   deletecomment=[f]% no fixed comment line: 1998 Magne Rudshaug
+   deletecomment=[f],% no fixed comment line: 1998 Magne Rudshaug
+   morecomment=[l]!%
   }%
 \lst@definelanguage[77]{Fortran}%
   {morekeywords={ACCESS,ASSIGN,BACKSPACE,BLANK,BLOCK,CALL,CHARACTER,%
@@ -115,7 +276,9 @@
       RETURN,REWIND,SEQUENTIAL,STATUS,STOP,SUBROUTINE,THEN,TYPE,%
       UNFORMATTED,UNIT,WRITE,SAVE},%
    sensitive=f,%% not Fortran standard %%
-   morecomment=[f]*Cc,%
+   morecomment=[f]*,%
+   morecomment=[f]C,%
+   morecomment=[f]c,%
    morestring=[d]"%
   }[keywords,comments,strings]%
 \lst@definelanguage{HTML}%
@@ -133,19 +296,21 @@
    sensitive=f,%
    morestring=[d]",% ??? doubled
    MoreSelectCharTable=%
-      \lst@CArgX--\relax\lst@CommentB\lst@GPmode{}{}%
+      \lst@CArgX--\relax\lst@DefDelimB{}{}%
           {\ifnum\lst@mode=\lst@insidemode\else
                \expandafter\@gobblethree
-           \fi}\lst@commentstyle
-      \lst@CArgX--\relax\lst@CommentE\lst@GPmode{}{}{}%
+           \fi}%
+          \lst@BeginComment\lst@commentmode{{\lst@commentstyle}}%
+      \lst@CArgX--\relax\lst@DefDelimE{}{}{}%
+          \lst@EndComment\lst@commentmode
   }[keywords,comments,strings,html]%
 \lst@definelanguage{Java}%
   {morekeywords={abstract,boolean,break,byte,case,catch,char,class,%
-      const,continue,default,do,double,else,extends,final,finally,%
-      float,for,goto,if,implements,import,instanceof,int,interface,%
-      long,native,new,null,package,private,protected,public,return,%
-      short,static,super,switch,synchronized,this,throw,throws,%
-      transient,try,void,volatile,while,true,false},%
+      const,continue,default,do,double,else,extends,false,final,%
+      finally,float,for,goto,if,implements,import,instanceof,int,%
+      interface,label,long,native,new,null,package,private,protected,%
+      public,return,short,static,super,switch,synchronized,this,throw,%
+      throws,transient,true,try,void,volatile,while},%
    sensitive,%
    morecomment=[l]//,%
    morecomment=[s]{/*}{*/},%
@@ -378,6 +543,84 @@
    morecomment=[s]{(*}{*)},%
    morestring=[d]"%
   }[keywords,comments,strings]%
+%%
+%% Octave definition (c) 2001,2002 Ulrich G. Wortmann
+%%                                 <[email protected]>
+%%
+\lst@definelanguage{Octave}%
+  {morekeywords={gt,lt,gt,lt,amp,abs,acos,acosh,acot,acoth,acsc,acsch,%
+      all,angle,ans,any,asec,asech,asin,asinh,atan,atan2,atanh,auread,%
+      auwrite,axes,axis,balance,bar,bessel,besselk,bessely,beta,%
+      betainc,betaln,blanks,bone,break,brighten,capture,cart2pol,%
+      cart2sph,caxis,cd,cdf2rdf,cedit,ceil,chol,cla,clabel,clc,clear,%
+      clf,clock,close,colmmd,Colon,colorbar,colormap,ColorSpec,colperm,%
+      comet,comet3,compan,compass,computer,cond,condest,conj,contour,%
+      contour3,contourc,contrast,conv,conv2,cool,copper,corrcoef,cos,%
+      cosh,cot,coth,cov,cplxpair,cputime,cross,csc,csch,csvread,%
+      csvwrite,cumprod,cumsum,cylinder,date,dbclear,dbcont,dbdown,%
+      dbquit,dbstack,dbstatus,dbstep,dbstop,dbtype,dbup,ddeadv,ddeexec,%
+      ddeinit,ddepoke,ddereq,ddeterm,ddeunadv,deblank,dec2hex,deconv,%
+      del2,delete,demo,det,diag,diary,diff,diffuse,dir,disp,dlmread,%
+      dlmwrite,dmperm,dot,drawnow,echo,eig,ellipj,ellipke,else,elseif,%
+      end,engClose,engEvalString,engGetFull,engGetMatrix,engOpen,%
+      engOutputBuffer,engPutFull,engPutMatrix,engSetEvalCallback,%
+      engSetEvalTimeout,engWinInit,eps,erf,erfc,erfcx,erfinv,%
+      errorbar,etime,etree,eval,exist,exp,expint,expm,expo,eye,fclose,%
+      feather,feof,ferror,feval,fft,fft2,fftshift,fgetl,fgets,figure,%
+      fill,fill3,filter,filter2,find,findstr,finite,fix,flag,fliplr,%
+      flipud,floor,flops,fmin,fmins,fopen,for,format,fplot,fprintf,%
+      fread,frewind,fscanf,fseek,ftell,full,function,funm,fwrite,fzero,%
+      gallery,gamma,gammainc,gammaln,gca,gcd,gcf,gco,get,getenv,%
+      getframe,ginput,global,gplot,gradient,gray,graymon,grid,griddata,%
+      gtext,hadamard,hankel,help,hess,hex2dec,hex2num,hidden,hilb,hist,%
+      hold,home,hostid,hot,hsv,hsv2rgb,if,ifft,ifft2,imag,image,%
+      imagesc,Inf,info,input,int2str,interp1,interp2,interpft,inv,%
+      invhilb,isempty,isglobal,ishold,isieee,isinf,isletter,isnan,%
+      isreal,isspace,issparse,isstr,jet,keyboard,kron,lasterr,lcm,%
+      legend,legendre,length,lin2mu,line,linspace,load,log,log10,log2,%
+      loglog,logm,logspace,lookfor,lower,ls,lscov,lu,magic,matClose,%
+      matDeleteMatrix,matGetDir,matGetFp,matGetFull,matGetMatrix,%
+      matGetNextMatrix,matGetString,matlabrc,matlabroot,matOpen,%
+      matPutFull,matPutMatrix,matPutString,max,mean,median,menu,mesh,%
+      meshc,meshgrid,meshz,mexAtExit,mexCallMATLAB,mexdebug,%
+      mexErrMsgTxt,mexEvalString,mexFunction,mexGetFull,mexGetMatrix,%
+      mexGetMatrixPtr,mexPrintf,mexPutFull,mexPutMatrix,mexSetTrapFlag,%
+      min,more,movie,moviein,mu2lin,mxCalloc,mxCopyCharacterToPtr,%
+      mxCopyComplex16ToPtr,mxCopyInteger4ToPtr,mxCopyPtrToCharacter,%
+      mxCopyPtrToComplex16,mxCopyPtrToInteger4,mxCopyPtrToReal8,%
+      mxCopyReal8ToPtr,mxCreateFull,mxCreateSparse,mxCreateString,%
+      mxFree,mxFreeMatrix,mxGetIr,mxGetJc,mxGetM,mxGetN,mxGetName,%
+      mxGetNzmax,mxGetPi,mxGetPr,mxGetScalar,mxGetString,mxIsComplex,%
+      mxIsFull,mxIsNumeric,mxIsSparse,mxIsString,mxIsTypeDouble,%
+      mxSetIr,mxSetJc,mxSetM,mxSetN,mxSetName,mxSetNzmax,mxSetPi,%
+      mxSetPr,NaN,nargchk,nargin,nargout,newplot,nextpow2,nnls,nnz,%
+      nonzeros,norm,normest,null,num2str,nzmax,ode23,ode45,orient,orth,%
+      pack,pascal,patch,path,pause,pcolor,pi,pink,pinv,plot,plot3,%
+      pol2cart,polar,poly,polyder,polyeig,polyfit,polyval,polyvalm,%
+      pow2,print,printopt,prism,prod,pwd,qr,qrdelete,qrinsert,quad,%
+      quad8,quit,quiver,qz,rand,randn,randperm,rank,rat,rats,rbbox,%
+      rcond,real,realmax,realmin,refresh,rem,reset,reshape,residue,%
+      return,rgb2hsv,rgbplot,rootobject,roots,rose,rosser,rot90,rotate,%
+      round,rref,rrefmovie,rsf2csf,save,saxis,schur,sec,sech,semilogx,%
+      semilogy,set,setstr,shading,sign,sin,sinh,size,slice,sort,sound,%
+      spalloc,sparse,spaugment,spconvert,spdiags,specular,speye,spfun,%
+      sph2cart,sphere,spinmap,spline,spones,spparms,sprandn,sprandsym,%
+      sprank,sprintf,spy,sqrt,sqrtm,sscanf,stairs,startup,std,stem,%
+      str2mat,str2num,strcmp,strings,strrep,strtok,subplot,subscribe,%
+      subspace,sum,surf,surface,surfc,surfl,surfnorm,svd,symbfact,%
+      symmmd,symrcm,tan,tanh,tempdir,tempname,terminal,text,tic,title,%
+      toc,toeplitz,trace,trapz,tril,triu,type,uicontrol,uigetfile,%
+      uimenu,uiputfile,unix,unwrap,upper,vander,ver,version,view,%
+      viewmtx,waitforbuttonpress,waterfall,wavread,wavwrite,what,%
+      whatsnew,which,while,white,whitebg,who,whos,wilkinson,wk1read,%
+      stderr,stdout,plot,set,endif,wk1write,xlabel,xor,ylabel,zeros,%
+      zlabel,zoom,endwhile,endfunction},%
+   sensitive=f,%
+   morecomment=[l]\#,%
+   morecomment=[l]\#\#,%
+   morestring=[m]',%
+   morestring=[m]"%
+  }[keywords,comments,strings]%
 \lst@definelanguage[XSC]{Pascal}[Standard]{Pascal}
   {deletekeywords={alfa,byte,pack,unpack},% 1998 Andreas Stephan
    morekeywords={dynamic,external,forward,global,module,nil,operator,%
@@ -431,7 +674,8 @@
       text,then,to,true,type,unpack,until,var,while,with,write,%
       writeln},%
    sensitive=f,%
-   morecomment=[d]{(*}{*)}{\{}{\}},%
+   morecomment=[s]{(*}{*)},%
+   morecomment=[s]{\{}{\}},%
    morestring=[d]'%
   }[keywords,comments,strings]%
 \lst@definelanguage{Perl}%
@@ -468,7 +712,8 @@
       \lst@ReplaceInput{\$\#}{\lst@ProcessOther\$\lst@ProcessOther\#}%
   }[keywords,comments,strings]%
 %%
-%% POV definition (c) 1999 Berthold Höllmann <[email protected]>
+%% POV definition (c) 1999 Berthold H\"ollmann
+%%                         <[email protected]>
 %%
 \lst@definelanguage{POV}%
   {morekeywords={abs,absorption,acos,acosh,adaptive,adc_bailout,agate,%
@@ -538,16 +783,18 @@
    sensitive=true,%
    morecomment=[l]\#,%
    morecomment=[s]{'''}{'''},% used for documentation text
-   morestring=',%
-   morestring="%
+   morecomment=[s]{"""}{"""},% added by Philipp Matthias Hahn
+   morestring=[b]',%
+   morestring=[b]"%
   }%
 %%
 %% SQL definition (c) 1998 Christian Haul
 %%                         <[email protected]>
+%%            and (c) 2002 Neil Conway <[email protected]>
 %%
 \lst@definelanguage{SQL}%
-  {morekeywords={ABSOLUTE,ACTION,ADD,ALLOCATE,ALTER,ARE,ASSERTION,AT,%
-      BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,%
+  {morekeywords={ABSOLUTE,ACTION,ADD,ALLOCATE,ALTER,ARE,AS,ASSERTION,%
+      AT,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,%
       CATALOG,CHAR,CHAR_LENGTH,CHARACTER_LENGTH,CLUSTER,COALESCE,%
       COLLATE,COLLATION,COLUMN,CONNECT,CONNECTION,CONSTRAINT,%
       CONSTRAINTS,CONVERT,CORRESPONDING,CREATE,CROSS,CURRENT_DATE,%
@@ -556,16 +803,17 @@
       DISCONNECT,DOMAIN,DROP,ELSE,END,EXEC,EXCEPT,EXCEPTION,EXECUTE,%
       EXTERNAL,EXTRACT,FALSE,FIRST,FLOAT,FOREIGN,FROM,FULL,GET,GLOBAL,%
       GRAPHIC,HAVING,HOUR,IDENTITY,IMMEDIATE,INDEX,INITIALLY,INNER,%
-      INPUT,INSENSITIVE,INT,INTEGER,INTERSECT,INTERVAL,ISOLATION,JOIN,%
-      KEY,LAST,LEADING,LEFT,LEVEL,LOCAL,LOWER,MATCH,MINUTE,MONTH,NAMES,%
-      NATIONAL,NATURAL,NCHAR,NEXT,NO,NOT,NULL,NULLIF,OCTET_LENGTH,ON,%
-      ONLY,ORDERED,OUTER,OUTPUT,OVERLAPS,PAD,PARTIAL,POSITION,PREPARE,%
-      PRESERVE,PRIMARY,PRIOR,READ,RELATIVE,RESTRICT,REVOKE,RIGHT,ROWS,%
-      SCROLL,SECOND,SELECT,SESSION,SESSION_USER,SIZE,SMALLINT,SPACE,%
-      SQLSTATE,SUBSTRING,SYSTEM_USER,TABLE,TEMPORARY,THEN,TIME,%
-      TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,TRAILING,TRANSACTION,%
-      TRANSLATE,TRANSLATION,TRIM,TRUE,UNIQUE,UNKNOWN,UPPER,USAGE,USING,%
-      VALUE,VARCHAR,VARGRAPHIC,VARYING,WHEN,WHERE,WRITE,YEAR,ZONE},%
+      INPUT,INSENSITIVE,INSERT,INT,INTO,INTEGER,INTERSECT,INTERVAL,%
+      ISOLATION,JOIN,KEY,LAST,LEADING,LEFT,LEVEL,LIMIT,LOCAL,LOWER,%
+      MATCH,MINUTE,MONTH,NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NOT,NULL,%
+      NULLIF,OCTET_LENGTH,ON,ONLY,ORDER,ORDERED,OUTER,OUTPUT,OVERLAPS,%
+      PAD,PARTIAL,POSITION,PREPARE,PRESERVE,PRIMARY,PRIOR,READ,%
+      RELATIVE,RESTRICT,REVOKE,RIGHT,ROWS,SCROLL,SECOND,SELECT,SESSION,%
+      SESSION_USER,SIZE,SMALLINT,SPACE,SQLSTATE,SUBSTRING,SYSTEM_USER,%
+      TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,%
+      TIMEZONE_MINUTE,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,%
+      TRUE,UNIQUE,UNKNOWN,UPPER,USAGE,USING,VALUE,VALUES,VARCHAR,%
+      VARGRAPHIC,VARYING,WHEN,WHERE,WRITE,YEAR,ZONE},%
    sensitive,%
    morecomment=[l]--,%
    morecomment=[s]{/*}{*/},%
@@ -590,6 +838,45 @@
    morecomment=[l]--,%
    morestring=[d]{"}%
   }[keywords,comments,strings]%
+%%
+%% VHDL-AMS definition (c) Steffen Klupsch
+%%
+\lst@definelanguage[AMS]{VHDL}[]{VHDL}%
+  {morekeywords={ACROSS,ARRAY,BREAK,DISCONNECT,NATURE,NOISE,PORT,%
+      PROCEDURAL,QUANTITY,SHARED,SPECTRUM,SUBNATURE,TERMINAL,THROUGH,%
+      TOLERANCE,UNAFFACTED,UNITS}}
+\lst@definelanguage{XML}%
+  {keywords={,CDATA,DOCTYPE,ATTLIST,termdef,ELEMENT,EMPTY,ANY,ID,%
+      IDREF,IDREFS,ENTITY,ENTITIES,NMTOKEN,NMTOKENS,NOTATION,%
+      INCLUDE,IGNORE,SYSTEM,PUBLIC,NDATA,PUBLIC,%
+      PCDATA,REQUIRED,IMPLIED,FIXED,%%% preceded by #
+      xml,xml:space,xml:lang,version,standalone,default,preserve},%
+   alsoother=$,%
+   alsoletter=:,%
+   keywordsinside=<>,%
+   morestring=[d]",% ??? doubled
+   morestring=[d]',% ??? doubled
+   MoreSelectCharTable=%
+      \lst@CArgX--\relax\lst@DefDelimB{}{}%
+          {\ifnum\lst@mode=\lst@insidemode\else
+               \expandafter\@gobblethree
+           \fi}%
+          \lst@BeginComment\lst@commentmode{{\lst@commentstyle}}%
+      \lst@CArgX--\relax\lst@DefDelimE{}{}{}%
+          \lst@EndComment\lst@commentmode
+      \lst@CArgX[CDATA[\relax\lst@CDef{}%
+          {\ifnum\lst@mode=\lst@insidemode
+               \expandafter\lst@BeginCDATA
+           \else \expandafter\lst@CArgEmpty
+           \fi}%
+          \@empty
+      \lst@CArgX]]\relax\lst@CDef{}%
+          {\ifnum\lst@mode=\lst@GPmode
+               \expandafter\lst@EndComment
+           \else \expandafter\lst@CArgEmpty
+           \fi}%
+          \@empty
+  }[keywords,comments,strings,html]%
 \endinput
 %%
 %% End of file `lstlang1.sty'.

+ 665 - 26
docs/styles/lstlang2.sty

@@ -6,8 +6,8 @@
 %%
 %% lstdrvrs.dtx  (with options: `lang2')
 %% 
-%% (w)(c) 1996/1997/1998/1999/2000 Carsten Heinz and/or any other author
-%% listed elsewhere in this file.
+%% (w)(c) 1996/1997/1998/1999/2000/2001/2002 Carsten Heinz and/or any
+%% other author listed elsewhere in this file.
 %%
 %% This file is distributed under the terms of the LaTeX Project Public
 %% License from CTAN archives in directory  macros/latex/base/lppl.txt.
@@ -15,23 +15,29 @@
 %%
 %% This file is completely free and comes without any warranty.
 %%
-%% Permission is granted to change this file. You are not allowed to
-%% distribute any changed version of this file, neither under the same
-%% name nor under a different one.
-%%
 %% Send comments and ideas on the package, error reports and additional
 %% programming languages to <[email protected]>.
 %%
+\ProvidesFile{lstlang2}
+    [2002/07/31 v1.0d listings language file]
 %%
 %% Abap definition by Knut Lickert <[email protected]>
 %%
+%%%%knut>>>>>new
+\lst@definelanguage[R/3 6.10]{ABAP}[R/3 4.6C]{ABAP}%
+  {morekeywords={try,endtry},%
+  }[keywords,comments,strings]
+%%%%knut<<<<<new -end-
 \lst@definelanguage[R/3 4.6C]{ABAP}[R/3 3.1]{ABAP}%
-  {morekeywords={method,ref,class,create,object},%
-   literate={->}{{$\to$}}1,%
+  {morekeywords={method,ref,class,create,object,%
+        catch,system-exceptions,endcatch,%knut
+        },%
+   literate={->}{{$\rightarrow$}}1{=>}{{$\Rightarrow$}}1,%knut
   }[keywords,comments,strings]
 \lst@definelanguage[R/3 3.1]{ABAP}[R/2 5.0]{ABAP}{}%
 \lst@definelanguage[R/2 5.0]{ABAP}%
   {sensitive=f,%
+   procnamekeys={report,program,form,function},%
    morekeywords={*,add,after,alias,analyzer,and,append,area,assign,at,%
         authority-check,before,binary,blank,break-point,calendar,call,%
         case,change,changing,check,clear,cnt,co,collect,commit,common,%
@@ -58,9 +64,10 @@
         text,time,to,top-of-page,trace,transaction,transfer,%
         transfer-dynpro,translate,type,unpack,update,user-command,%
         using,value,when,where,while,window,with,workfile,write,},%
-  morecomment=[l]",%
-  morecomment=[f][0]*,%
-  }[keywords,comments,strings]
+   morecomment=[l]",%
+   morecomment=[f][0]*,%
+   morestring=[d]'%
+  }[keywords,comments,strings,procnames]
 \lst@definelanguage[R/2 4.3]{ABAP}[R/2 5.0]{ABAP}%
   {deletekeywords={function,importing,exporting,changing,exceptions,%
         raise,raising}%
@@ -161,8 +168,9 @@
       TERMINATE,TEXT,THAN,THROUGH,THRU,TIME,TIMES,TO,TOP,TRAILING,TYPE,%
       UNIT,UNSTRING,UNTIL,UP,UPON,USAGE,USE,USING,VALUE,VALUES,VARYING,%
       WHEN,WITH,WORDS,WORKING-STORAGE,WRITE,ZERO,ZEROES,ZEROS},%
+   alsodigit=-%,
    sensitive=f,% ???
-   morecomment=[f][6]*,%
+   morecomment=[f][commentstyle][6]*,%
    morestring=[d]"% ??? doubled
   }[keywords,comments,strings]%
 \lst@definelanguage{Delphi}%
@@ -207,7 +215,9 @@
       TrackCursor,Trunc,Truncate,TypeOf,UpCase,UpperCase,Val,WhereX,%
       WhereY,Write,WriteBuf,WriteChar,Writeln},%
    sensitive=f,%
-   morecomment=[d]{(*}{*)}{\{}{\}},%
+   morecomment=[s]{(*}{*)},%
+   morecomment=[s]{\{}{\}},%
+   morecomment=[l]{//},% 2001 Christian Gudrian
    morestring=[d]'%
   }[keywords,comments,strings]%
 \lst@definelanguage{Eiffel}%
@@ -222,7 +232,6 @@
    sensitive,%
    morecomment=[l]--,%
    morestring=[d]",%
-   stringtest=false%
   }[keywords,comments,strings]%
 %%
 %% Euphoria definition (c) 1998 Detlef Reimers <[email protected]>
@@ -250,7 +259,7 @@
 %%
 \lst@definelanguage{Haskell}%
   {otherkeywords={=>},%
-   keywords={abstype,if,then,else,case,class,data,default,deriving,%
+   morekeywords={abstype,if,then,else,case,class,data,default,deriving,%
       hiding,if,in,infix,infixl,infixr,import,instance,let,module,%
       newtype,of,qualified,type,where,do,AbsoluteSeek,AppendMode,%
       Array,BlockBuffering,Bool,BufferMode,Char,Complex,Double,Either,%
@@ -318,7 +327,7 @@
    sensitive,%
    morecomment=[l]--,%
    morecomment=[n]{\{-}{-\}},%
-   morestrings=[b]"%
+   morestring=[b]"%
   }[keywords,comments,strings]%
 %%
 %% IDL definition (c) 1998 Juergen Heim <[email protected]>
@@ -378,10 +387,106 @@
    morestring=[b]"%
   }[keywords,comments,strings]%
 %%
+%% AutoLISP/VisualLISP - Stefan Lagotzki, [email protected]
+%%
+\lst@definelanguage[Auto]{Lisp}%
+  {morekeywords={abs,acad_colordlg,acad_helpdlg,acad_strlsort,%
+      action_tile,add_list,alert,alloc,and,angle,angtof,angtos,append,%
+      apply,arx,arxload,arxunload,ascii,assoc,atan,atof,atoi,atom,%
+      atoms-family,autoarxload,autoload,Boole,boundp,caddr,cadr,car,%
+      cdr,chr,client_data_tile,close,command,cond,cons,cos,cvunit,%
+      defun,defun-q,defun-q-list-ref,defun-q-list-set,dictadd,dictnext,%
+      dictremove,dictrename,dictsearch,dimx_tile,dimy_tile,distance,%
+      distof,done_dialog,end_image,end_list,entdel,entget,entlast,%
+      entmake,entmakex,entmod,entnext,entsel,entupd,eq,equal,*error*,%
+      eval,exit,exp,expand,expt,fill_image,findfile,fix,float,foreach,%
+      function,gc,gcd,get_attr,get_tile,getangle,getcfg,getcname,%
+      getcorner,getdist,getenv,getfiled,getint,getkword,getorient,%
+      getpoint,getreal,getstring,getvar,graphscr,grclear,grdraw,grread,%
+      grtext,grvecs,handent,help,if,initdia,initget,inters,itoa,lambda,%
+      last,layoutlist,length,list,listp,load,load_dialog,log,logand,%
+      logior,lsh,mapcar,max,mem,member,menucmd,menugroup,min,minusp,%
+      mode_tile,namedobjdict,nentsel,nentselp,new_dialog,not,nth,%
+      null,numberp,open,or,osnap,polar,prin1,princ,print,progn,prompt,%
+      quit,quote,read,read-char,read-line,redraw,regapp,rem,repeat,%
+      reverse,rtos,set,set_tile,setcfg,setenv,setfunhelp,setq,%
+      setvar,setview,sin,slide_image,snvalid,sqrt,ssadd,ssdel,ssget,%
+      ssgetfirst,sslength,ssmemb,ssname,ssnamex,sssetfirst,startapp,%
+      start_dialog,start_image,start_list,strcase,strcat,strlen,subst,%
+      substr,tablet,tblnext,tblobjname,tblsearch,term_dialog,terpri,%
+      textbox,textpage,textscr,trace,trans,type,unload_dialog,untrace,%
+      vector_image,ver,vl-acad-defun,vl-acad-undefun,vl-arx-import,%
+      vl-bb-ref,vl-bb-set,vl-catch-all-apply,%
+      vl-catch-all-error-message,vl-catch-all-error-p,vl-cmdf,vl-consp,%
+      vl-directory-files,vl-doc-export,vl-doc-import,vl-doc-ref,%
+      vl-doc-set,vl-every,vl-exit-with-error,vl-exit-with-value,%
+      vl-file-copy,vl-file-delete,vl-file-directory-p,vl-file-rename,%
+      vl-file-size,vl-file-systime,vl-filename-base,%
+      vl-filename-directory,vl-filename-extension,vl-filename-mktemp,%
+      vl-get-resource,vl-list*,vl-list->string,%
+      vl-list-exported-functions,vl-list-length,vl-list-loaded-vlx,%
+      vl-load-all,vl-load-com,vl-load-reactors,vl-member-if,%
+      vl-member-if-not,vl-position,vl-prin1-to-string,%
+      vl-princ-to-string,vl-propagate,vl-registry-delete,%
+      vl-registry-descendents,vl-registry-read,vl-registry-write,%
+      vl-remove,vl-remove-if,vl-remove-if-not,vl-some,vl-sort,%
+      vl-sort-i,vl-string->list,vl-string-elt,vl-string-left-trim,%
+      vl-string-mismatch,vl-string-position,vl-string-right-trim,%
+      vl-string-search,vl-string-subst,vl-string-translate,%
+      vl-string-trim,vl-symbol-name,vl-symbol-value,vl-symbolp,%
+      vl-unload-vlx,vl-vbaload,vl-vbarun,vl-vlx-loaded-p,vlax-3D-point,%
+      vlax-add-cmd,vlax-create-object,vlax-curve-getArea,%
+      vlax-curve-getDistAtParam,vlax-curve-getDistAtPoint,%
+      vlax-curve-getEndParam,vlax-curve-getEndPoint,%
+      vlax-curve-getParamAtDist,vlax-curve-getParamAtPoint,%
+      vlax-curve-getPointAtDist,vlax-curve-getPointAtParam,%
+      vlax-curve-getStartParam,vlax-curve-getStartPoint,%
+      vlax-curve-isClosed,vlax-curve-isPeriodic,vlax-curve-isPlanar,%
+      vlax-curve-getClosestPointTo,%
+      vlax-curve-getClosestPointToProjection,vlax-curve-getFirstDeriv,%
+      vlax-curve-getSecondDeriv,vlax-dump-object,%
+      vlax-ename->vla-object,vlax-erased-p,vlax-for,%
+      vlax-get-acad-object,vlax-get-object,vlax-get-or-create-object,%
+      vlax-get-property,vlax-import-type-library,vlax-invoke-method,%
+      vlax-ldata-delete,vlax-ldata-get,vlax-ldata-list,vlax-ldata-put,%
+      vlax-ldata-test,vlax-make-safearray,vlax-make-variant,%
+      vlax-map-collection,vlax-method-applicable-p,%
+      vlax-object-released-p,vlax-product-key,%
+      vlax-property-available-p,vlax-put-property,vlax-read-enabled-p,%
+      vlax-release-object,vlax-remove-cmd,vlax-safearray-fill,%
+      vlax-safearray-get-dim,vlax-safearray-get-element,%
+      vlax-safearray-get-l-bound,vlax-safearray-get-u-bound,%
+      vlax-safearray-put-element,vlax-safearray-type,%
+      vlax-safearray->list,vlax-tmatrix,vlax-typeinfo-available-p,%
+      vlax-variant-change-type,vlax-variant-type,vlax-variant-value,%
+      vlax-vla-object->ename,vlax-write-enabled-p,vlisp-compile,%
+      vlr-acdb-reactor,vlr-add,vlr-added-p,vlr-beep-reaction,%
+      vlr-command-reactor,vlr-current-reaction-name,vlr-data,%
+      vlr-data-set,vlr-deepclone-reactor,vlr-docmanager-reactor,%
+      vlr-dwg-reactor,vlr-dxf-reactor,vlr-editor-reactor,%
+      vlr-insert-reactor,vlr-linker-reactor,vlr-lisp-reactor,%
+      vlr-miscellaneous-reactor,vlr-mouse-reactor,vlr-notification,%
+      vlr-object-reactor,vlr-owner-add,vlr-owner-remove,vlr-owners,%
+      vlr-pers,vlr-pers-list,vlr-pers-p,vlr-pers-release,%
+      vlr-reaction-names,vlr-reaction-set,vlr-reactions,vlr-reactors,%
+      vlr-remove,vlr-remove-all,vlr-set-notification,%
+      vlr-sysvar-reactor,vlr-toolbar-reactor,vlr-trace-reaction,%
+      vlr-type,vlr-types,vlr-undo-reactor,vlr-wblock-reactor,%
+      vlr-window-reactor,vlr-xref-reactor,vports,wcmatch,while,%
+      write-char,write-line,xdroom,xdsize,zerop},%
+   alsodigit=->,%
+   otherkeywords={1+,1-},%
+   sensitive=false,%
+   morecomment=[l];,%
+   morecomment=[l];;,%
+   morestring=[b]"%
+  }[keywords,comments,strings]%
+%%
 %% Make definitions (c) 2000 Rolf Niepraschk <[email protected]>
 %%
 \lst@definelanguage[gnu]{make}%
   {morekeywords={SHELL,MAKE,MAKEFLAGS,$@,$\%,$<,$?,$^,$+,$*,%
+      @,^,<,\%,+,?,*,% Markus Pahlow
       export,unexport,include,override,define,ifdef,ifneq,ifeq,else,%
       endif,vpath,subst,patsubst,strip,findstring,filter,filter-out,%
       sort,dir,notdir,suffix,basename,addsuffix,addprefix,join,word,%
@@ -393,29 +498,37 @@
       ARFLAGS,ASFLAGS,CFLAGS,CXXFLAGS,COFLAGS,CPPFLAGS,FFLAGS,GFLAGS,%
       LDFLAGS,LOADLIBES,LFLAGS,PFLAGS,RFLAGS,YFLAGS,M2FLAGS,MODFLAGS,%
       LINTFLAGS,MAKEINFO_FLAGS,TEXI2DVI_FLAGS,COFLAGS,GFLAGS,%
-      OUTPUT_OPTION,SCCS_OUTPUT_OPTION%
+      OUTPUT_OPTION,SCCS_OUTPUT_OPTION,% missing comma: Markus Pahlow
       .PHONY,.SUFFIXES,.DEFAULT,.PRECIOUS,.INTERMEDIATE,.SECONDARY,%
       .IGNORE,.SILENT,.EXPORT_ALL_VARIABLES,MAKEFILES,VPATH,MAKESHELL,%
       MAKELEVEL,MAKECMDGOALS,SUFFIXES},%
    sensitive=true,
    morecomment=[l]\#,%
-   morestring="%
+   morestring=[b]"%
   }[keywords,comments,strings,make]%
 \lst@definelanguage{make}
   {morekeywords={SHELL,MAKE,MAKEFLAGS,$@,$\%,$<,$?,$^,$+,$*},%
    sensitive=true,%
    morecomment=[l]\#,%
-   morestring="%
+   morestring=[b]"%
   }[keywords,comments,strings,make]%
 %%
 %% Mercury definition (c) 1997 Dominique de Waleffe <[email protected]>
+%% Extended (c) 2001 Ralph Becket <[email protected]>
 %%
 \lst@definelanguage{Mercury}%
-  {otherkeywords={::,->,-->,--->,:-},%
-   morekeywords={pred,type,module,end_module,import_module,mode,%
-      pragma,func,lambda,det,semidet,erroneous,multi,true,fail,is,in,%
-      out,di,uo,ui,interface,implementation},%
-   sensitive=f,%
+  {otherkeywords={::,->,-->,--->,:-,==,=>,<=,<=>},%
+   morekeywords={module,include_module,import_module,interface,%
+      end_module,implementation,mode,is,failure,semidet,nondet,det,%
+      multi,erroneous,inst,in,out,di,uo,ui,type,typeclass,instance,%
+      where,with_type,pred,func,lambda,impure,semipure,if,then,else,%
+      some,all,not,true,fail,pragma,memo,no_inline,inline,loop_check,%
+      minimal_model,fact_table,type_spec,terminates,does_not_terminate,%
+      check_termination,promise_only_solution,unsafe_promise_unique,%
+      source_file,obsolete,import,export,c_header_code,c_code,%
+      foreign_code,foreign_proc,may_call_mercury,will_not_call_mercury,%
+      thread_safe,not_thread_safe},%
+   sensitive=t,%
    morecomment=[l]\%,%
    morecomment=[s]{/*}{*/},%
    morestring=[bd]",%
@@ -457,6 +570,510 @@
    morestring=[d]"%
   }[keywords,comments,strings]%
 %%
+%% PHP definition by Luca Balzerani, <[email protected]>
+%%
+\lst@definelanguage{PHP}%
+  {morekeywords={%
+    abs,acos,acosh,addcslashes,addslashes,apache_child_terminate,%
+    apache_note,apache_setenv,array_change_key_case,array_chunk,%
+    array_diff,array_fill,array_filter,array_flip,array_intersect,%
+    array_keys,array_map,array_merge_recursive,array_merge,%
+    array_pad,array_pop,array_push,array_rand,array_reduce,%
+    array_search,array_shift,array_slice,array_splice,array_sum,%
+    array_unshift,array_values,array_walk,array,arsort,ascii2ebcdic,%
+    asinh,asort,aspell_check_raw,aspell_check,aspell_new,%
+    assert_options,assert,atan,atan2,atanh,base_convert,%
+    base64_encode,basename,bcadd,bccomp,bcdiv,bcmod,bcmul,bcpow,%
+    bcsqrt,bcsub,bin2hex,bind_textdomain_codeset,bindec,%
+    bzclose,bzcompress,bzdecompress,bzerrno,bzerror,bzerrstr,%
+    bzopen,bzread,bzwrite,cal_days_in_month,cal_from_jd,cal_info,%
+    call_user_func_array,call_user_func,call_user_method_array,%
+    ccvs_add,ccvs_auth,ccvs_command,ccvs_count,ccvs_delete,%
+    ccvs_init,ccvs_lookup,ccvs_new,ccvs_report,ccvs_return,%
+    ccvs_sale,ccvs_status,ccvs_textvalue,ccvs_void,ceil,chdir,%
+    checkdnsrr,chgrp,chmod,chop,chown,chr,chroot,chunk_split,%
+    clearstatcache,closedir,closelog,com_addref,com_get,com_invoke,%
+    com_load_typelib,com_load,com_propget,com_propput,com_propset,%
+    com_set,compact,connection_aborted,connection_status,%
+    constant,convert_cyr_string,copy,cos,cosh,count_chars,count,%
+    cpdf_add_outline,cpdf_arc,cpdf_begin_text,cpdf_circle,cpdf_clip,%
+    cpdf_closepath_fill_stroke,cpdf_closepath_stroke,cpdf_closepath,%
+    cpdf_curveto,cpdf_end_text,cpdf_fill_stroke,cpdf_fill,%
+    cpdf_finalize,cpdf_global_set_document_limits,cpdf_import_jpeg,%
+    cpdf_moveto,cpdf_newpath,cpdf_open,cpdf_output_buffer,%
+    cpdf_place_inline_image,cpdf_rect,cpdf_restore,cpdf_rlineto,%
+    cpdf_rotate_text,cpdf_rotate,cpdf_save_to_file,cpdf_save,%
+    cpdf_set_action_url,cpdf_set_char_spacing,cpdf_set_creator,%
+    cpdf_set_font_directories,cpdf_set_font_map_file,cpdf_set_font,%
+    cpdf_set_keywords,cpdf_set_leading,cpdf_set_page_animation,%
+    cpdf_set_text_matrix,cpdf_set_text_pos,cpdf_set_text_rendering,%
+    cpdf_set_title,cpdf_set_viewer_preferences,%
+    cpdf_setdash,cpdf_setflat,cpdf_setgray_fill,cpdf_setgray_stroke,%
+    cpdf_setlinecap,cpdf_setlinejoin,cpdf_setlinewidth,%
+    cpdf_setrgbcolor_fill,cpdf_setrgbcolor_stroke,cpdf_setrgbcolor,%
+    cpdf_show,cpdf_stringwidth,cpdf_stroke,cpdf_text,cpdf_translate,%
+    crack_closedict,crack_getlastmessage,crack_opendict,crc32,%
+    crypt,ctype_alnum,ctype_alpha,ctype_cntrl,ctype_digit,%
+    ctype_lower,ctype_print,ctype_punct,ctype_space,ctype_upper,%
+    curl_close,curl_errno,curl_error,curl_exec,curl_getinfo,%
+    curl_setopt,curl_version,current,cybercash_base64_decode,%
+    cybercash_decr,cybercash_encr,cybermut_creerformulairecm,%
+    cybermut_testmac,cyrus_authenticate,cyrus_bind,cyrus_close,%
+    cyrus_query,cyrus_unbind,date,dba_close,dba_delete,dba_exists,%
+    dba_firstkey,dba_insert,dba_nextkey,dba_open,dba_optimize,%
+    dba_replace,dba_sync,dbase_add_record,dbase_close,dbase_create,%
+    dbase_get_record_with_names,dbase_get_record,dbase_numfields,%
+    dbase_open,dbase_pack,dbase_replace_record,dblist,dbmclose,%
+    dbmexists,dbmfetch,dbmfirstkey,dbminsert,dbmnextkey,dbmopen,%
+    dbplus_add,dbplus_aql,dbplus_chdir,dbplus_close,dbplus_curr,%
+    dbplus_errno,dbplus_find,dbplus_first,dbplus_flush,%
+    dbplus_freelock,dbplus_freerlocks,dbplus_getlock,%
+    dbplus_info,dbplus_last,dbplus_lockrel,dbplus_next,dbplus_open,%
+    dbplus_rchperm,dbplus_rcreate,dbplus_rcrtexact,dbplus_rcrtlike,%
+    dbplus_restorepos,dbplus_rkeys,dbplus_ropen,dbplus_rquery,%
+    dbplus_rsecindex,dbplus_runlink,dbplus_rzap,dbplus_savepos,%
+    dbplus_setindexbynumber,dbplus_sql,dbplus_tcl,dbplus_tremove,%
+    dbplus_undoprepare,dbplus_unlockrel,dbplus_unselect,%
+    dbplus_xlockrel,dbplus_xunlockrel,dbx_close,dbx_compare,%
+    dbx_error,dbx_query,dbx_sort,dcgettext,dcngettext,debugger_off,%
+    decbin,dechex,decoct,define_syslog_variables,define,defined,%
+    delete,dgettext,die,dio_close,dio_fcntl,dio_open,dio_read,%
+    dio_stat,dio_truncate,dio_write,dirname,disk_free_space,%
+    diskfreespace,dl,dngettext,domxml_add_root,domxml_attributes,%
+    domxml_dumpmem,domxml_get_attribute,domxml_new_child,%
+    domxml_node_set_content,domxml_node_unlink_node,domxml_node,%
+    domxml_set_attribute,domxml_version,dotnet_load,doubleval,each,%
+    easter_days,ebcdic2ascii,echo,empty,end,ereg_replace,ereg,%
+    eregi,error_log,error_reporting,escapeshellarg,escapeshellcmd,%
+    exec,exit,exp,explode,expm1,extension_loaded,extract,ezmlm_hash,%
+    fbsql_autocommit,fbsql_change_user,fbsql_close,fbsql_commit,%
+    fbsql_create_blob,fbsql_create_clob,fbsql_create_db,%
+    fbsql_database_password,fbsql_database,fbsql_db_query,%
+    fbsql_drop_db,fbsql_errno,fbsql_error,fbsql_fetch_array,%
+    fbsql_fetch_field,fbsql_fetch_lengths,fbsql_fetch_object,%
+    fbsql_field_flags,fbsql_field_len,fbsql_field_name,%
+    fbsql_field_table,fbsql_field_type,fbsql_free_result,%
+    fbsql_hostname,fbsql_insert_id,fbsql_list_dbs,fbsql_list_fields,%
+    fbsql_next_result,fbsql_num_fields,fbsql_num_rows,%
+    fbsql_pconnect,fbsql_query,fbsql_read_blob,fbsql_read_clob,%
+    fbsql_rollback,fbsql_select_db,fbsql_set_lob_mode,%
+    fbsql_start_db,fbsql_stop_db,fbsql_tablename,fbsql_username,%
+    fclose,fdf_add_template,fdf_close,fdf_create,fdf_get_file,%
+    fdf_get_value,fdf_next_field_name,fdf_open,fdf_save,fdf_set_ap,%
+    fdf_set_file,fdf_set_flags,fdf_set_javascript_action,%
+    fdf_set_status,fdf_set_submit_form_action,fdf_set_value,feof,%
+    fgetc,fgetcsv,fgets,fgetss,file_exists,file,fileatime,filectime,%
+    fileinode,filemtime,fileowner,fileperms,filepro_fieldcount,%
+    filepro_fieldtype,filepro_fieldwidth,filepro_retrieve,%
+    filepro,filesize,filetype,floatval,flock,floor,flush,fopen,%
+    fputs,fread,frenchtojd,fribidi_log2vis,fscanf,fseek,fsockopen,%
+    ftell,ftok,ftp_cdup,ftp_chdir,ftp_connect,ftp_delete,ftp_exec,%
+    ftp_fput,ftp_get,ftp_login,ftp_mdtm,ftp_mkdir,ftp_nlist,%
+    ftp_put,ftp_pwd,ftp_quit,ftp_rawlist,ftp_rename,ftp_rmdir,%
+    ftp_size,ftp_systype,ftruncate,func_get_arg,func_get_args,%
+    function_exists,fwrite,get_browser,get_cfg_var,%
+    get_class_vars,get_class,get_current_user,get_declared_classes,%
+    get_defined_functions,get_defined_vars,get_extension_funcs,%
+    get_included_files,get_loaded_extensions,get_magic_quotes_gpc,%
+    get_meta_tags,get_object_vars,get_parent_class,%
+    get_resource_type,getallheaders,getcwd,getdate,getenv,%
+    gethostbyname,gethostbynamel,getimagesize,getlastmod,getmxrr,%
+    getmyinode,getmypid,getmyuid,getprotobyname,getprotobynumber,%
+    getrusage,getservbyname,getservbyport,gettext,gettimeofday,%
+    gmdate,gmmktime,gmp_abs,gmp_add,gmp_and,gmp_clrbit,gmp_cmp,%
+    gmp_div_q,gmp_div_qr,gmp_div_r,gmp_div,gmp_divexact,gmp_fact,%
+    gmp_gcdext,gmp_hamdist,gmp_init,gmp_intval,gmp_invert,%
+    gmp_legendre,gmp_mod,gmp_mul,gmp_neg,gmp_or,gmp_perfect_square,%
+    gmp_pow,gmp_powm,gmp_prob_prime,gmp_random,gmp_scan0,gmp_scan1,%
+    gmp_sign,gmp_sqrt,gmp_sqrtrem,gmp_strval,gmp_sub,gmp_xor,%
+    gregoriantojd,gzclose,gzcompress,gzdeflate,gzencode,gzeof,%
+    gzgetc,gzgets,gzgetss,gzinflate,gzopen,gzpassthru,gzputs,gzread,%
+    gzseek,gztell,gzuncompress,gzwrite,header,headers_sent,hebrev,%
+    hexdec,highlight_file,highlight_string,htmlentities,%
+    hw_array2objrec,hw_changeobject,hw_children,hw_childrenobj,%
+    hw_connect,hw_connection_info,hw_cp,hw_deleteobject,%
+    hw_docbyanchorobj,hw_document_attributes,hw_document_bodytag,%
+    hw_document_setcontent,hw_document_size,hw_dummy,hw_edittext,%
+    hw_errormsg,hw_free_document,hw_getanchors,hw_getanchorsobj,%
+    hw_getchildcoll,hw_getchildcollobj,hw_getchilddoccoll,%
+    hw_getobject,hw_getobjectbyquery,hw_getobjectbyquerycoll,%
+    hw_getobjectbyqueryobj,hw_getparents,hw_getparentsobj,%
+    hw_getremote,hw_getremotechildren,hw_getsrcbydestobj,hw_gettext,%
+    hw_identify,hw_incollections,hw_info,hw_inscoll,hw_insdoc,%
+    hw_insertdocument,hw_insertobject,hw_mapid,hw_modifyobject,%
+    hw_new_document,hw_objrec2array,hw_output_document,hw_pconnect,%
+    hw_root,hw_setlinkroot,hw_stat,hw_unlock,hw_who,hypot,%
+    ibase_blob_cancel,ibase_blob_close,ibase_blob_create,%
+    ibase_blob_get,ibase_blob_import,ibase_blob_info,%
+    ibase_close,ibase_commit,ibase_connect,ibase_errmsg,%
+    ibase_fetch_object,ibase_fetch_row,ibase_field_info,%
+    ibase_free_result,ibase_num_fields,ibase_pconnect,ibase_prepare,%
+    ibase_rollback,ibase_timefmt,ibase_trans,icap_close,%
+    icap_delete_calendar,icap_delete_event,icap_fetch_event,%
+    icap_list_events,icap_open,icap_rename_calendar,icap_reopen,%
+    icap_store_event,iconv_get_encoding,iconv_set_encoding,iconv,%
+    ifx_blobinfile_mode,ifx_byteasvarchar,ifx_close,ifx_connect,%
+    ifx_create_blob,ifx_create_char,ifx_do,ifx_error,ifx_errormsg,%
+    ifx_fieldproperties,ifx_fieldtypes,ifx_free_blob,ifx_free_char,%
+    ifx_get_blob,ifx_get_char,ifx_getsqlca,ifx_htmltbl_result,%
+    ifx_num_fields,ifx_num_rows,ifx_pconnect,ifx_prepare,ifx_query,%
+    ifx_update_blob,ifx_update_char,ifxus_close_slob,%
+    ifxus_free_slob,ifxus_open_slob,ifxus_read_slob,ifxus_seek_slob,%
+    ifxus_write_slob,ignore_user_abort,image2wbmp,%
+    imagearc,imagechar,imagecharup,imagecolorallocate,imagecolorat,%
+    imagecolorclosestalpha,imagecolorclosesthwb,%
+    imagecolorexact,imagecolorexactalpha,imagecolorresolve,%
+    imagecolorset,imagecolorsforindex,imagecolorstotal,%
+    imagecopy,imagecopymerge,imagecopymergegray,imagecopyresampled,%
+    imagecreate,imagecreatefromgd,imagecreatefromgd2,%
+    imagecreatefromgif,imagecreatefromjpeg,imagecreatefrompng,%
+    imagecreatefromwbmp,imagecreatefromxbm,imagecreatefromxpm,%
+    imagedashedline,imagedestroy,imageellipse,imagefill,%
+    imagefilledellipse,imagefilledpolygon,imagefilledrectangle,%
+    imagefontheight,imagefontwidth,imageftbbox,imagefttext,%
+    imagegd,imagegd2,imagegif,imageinterlace,imagejpeg,imageline,%
+    imagepalettecopy,imagepng,imagepolygon,imagepsbbox,%
+    imagepsextendfont,imagepsfreefont,imagepsloadfont,%
+    imagepstext,imagerectangle,imagesetbrush,imagesetpixel,%
+    imagesetthickness,imagesettile,imagestring,imagestringup,%
+    imagesy,imagetruecolortopalette,imagettfbbox,imagettftext,%
+    imagewbmp,imap_8bit,imap_alerts,imap_append,imap_base64,%
+    imap_body,imap_bodystruct,imap_check,imap_clearflag_full,%
+    imap_createmailbox,imap_delete,imap_deletemailbox,imap_errors,%
+    imap_fetch_overview,imap_fetchbody,imap_fetchheader,%
+    imap_get_quota,imap_getmailboxes,imap_getsubscribed,imap_header,%
+    imap_headers,imap_last_error,imap_listmailbox,%
+    imap_mail_compose,imap_mail_copy,imap_mail_move,imap_mail,%
+    imap_mime_header_decode,imap_msgno,imap_num_msg,imap_num_recent,%
+    imap_ping,imap_popen,imap_qprint,imap_renamemailbox,imap_reopen,%
+    imap_rfc822_parse_headers,imap_rfc822_write_address,%
+    imap_search,imap_set_quota,imap_setacl,imap_setflag_full,%
+    imap_status,imap_subscribe,imap_thread,imap_uid,imap_undelete,%
+    imap_utf7_decode,imap_utf7_encode,imap_utf8,implode,%
+    in_array,include_once,include,ingres_autocommit,ingres_close,%
+    ingres_connect,ingres_fetch_array,ingres_fetch_object,%
+    ingres_field_length,ingres_field_name,ingres_field_nullable,%
+    ingres_field_scale,ingres_field_type,ingres_num_fields,%
+    ingres_pconnect,ingres_query,ingres_rollback,ini_alter,%
+    ini_get,ini_restore,ini_set,intval,ip2long,iptcembed,iptcparse,%
+    ircg_disconnect,ircg_fetch_error_msg,ircg_get_username,%
+    ircg_ignore_add,ircg_ignore_del,ircg_is_conn_alive,ircg_join,%
+    ircg_lookup_format_messages,ircg_msg,ircg_nick,%
+    ircg_nickname_unescape,ircg_notice,ircg_part,ircg_pconnect,%
+    ircg_set_current,ircg_set_file,ircg_set_on_die,ircg_topic,%
+    is_array,is_bool,is_dir,is_double,is_executable,is_file,%
+    is_int,is_integer,is_link,is_long,is_null,is_numeric,is_object,%
+    is_real,is_resource,is_scalar,is_string,is_subclass_of,%
+    is_writable,is_writeable,isset,java_last_exception_clear,%
+    jddayofweek,jdmonthname,jdtofrench,jdtogregorian,jdtojewish,%
+    jdtounix,jewishtojd,join,jpeg2wbmp,juliantojd,key,krsort,ksort,%
+    ldap_8859_to_t61,ldap_add,ldap_bind,ldap_close,ldap_compare,%
+    ldap_count_entries,ldap_delete,ldap_dn2ufn,ldap_err2str,%
+    ldap_error,ldap_explode_dn,ldap_first_attribute,%
+    ldap_first_reference,ldap_free_result,ldap_get_attributes,%
+    ldap_get_entries,ldap_get_option,ldap_get_values_len,%
+    ldap_list,ldap_mod_add,ldap_mod_del,ldap_mod_replace,%
+    ldap_next_attribute,ldap_next_entry,ldap_next_reference,%
+    ldap_parse_result,ldap_read,ldap_rename,ldap_search,%
+    ldap_set_rebind_proc,ldap_sort,ldap_start_tls,ldap_t61_to_8859,%
+    leak,levenshtein,link,linkinfo,list,localeconv,localtime,log,%
+    log1p,long2ip,lstat,ltrim,mail,%
+    mailparse_msg_create,mailparse_msg_extract_part_file,%
+    mailparse_msg_free,mailparse_msg_get_part_data,%
+    mailparse_msg_get_structure,mailparse_msg_parse_file,%
+    mailparse_rfc822_parse_addresses,mailparse_stream_encode,%
+    max,mb_convert_encoding,mb_convert_kana,mb_convert_variables,%
+    mb_decode_numericentity,mb_detect_encoding,mb_detect_order,%
+    mb_encode_numericentity,mb_http_input,mb_http_output,%
+    mb_language,mb_output_handler,mb_parse_str,%
+    mb_send_mail,mb_strcut,mb_strimwidth,mb_strlen,mb_strpos,%
+    mb_strwidth,mb_substitute_character,mb_substr,mcal_append_event,%
+    mcal_create_calendar,mcal_date_compare,mcal_date_valid,%
+    mcal_day_of_year,mcal_days_in_month,mcal_delete_calendar,%
+    mcal_event_add_attribute,mcal_event_init,mcal_event_set_alarm,%
+    mcal_event_set_class,mcal_event_set_description,%
+    mcal_event_set_recur_daily,mcal_event_set_recur_monthly_mday,%
+    mcal_event_set_recur_none,mcal_event_set_recur_weekly,%
+    mcal_event_set_start,mcal_event_set_title,mcal_expunge,%
+    mcal_fetch_event,mcal_is_leap_year,mcal_list_alarms,%
+    mcal_next_recurrence,mcal_open,mcal_popen,mcal_rename_calendar,%
+    mcal_snooze,mcal_store_event,mcal_time_valid,mcal_week_of_year,%
+    mcrypt_cfb,mcrypt_create_iv,mcrypt_decrypt,mcrypt_ecb,%
+    mcrypt_enc_get_block_size,mcrypt_enc_get_iv_size,%
+    mcrypt_enc_get_modes_name,mcrypt_enc_get_supported_key_sizes,%
+    mcrypt_enc_is_block_algorithm,mcrypt_enc_is_block_mode,%
+    mcrypt_encrypt,mcrypt_generic_deinit,mcrypt_generic_end,%
+    mcrypt_generic,mcrypt_get_block_size,mcrypt_get_cipher_name,%
+    mcrypt_get_key_size,mcrypt_list_algorithms,mcrypt_list_modes,%
+    mcrypt_module_get_algo_block_size,%
+    mcrypt_module_get_supported_key_sizes,%
+    mcrypt_module_is_block_algorithm,mcrypt_module_is_block_mode,%
+    mcrypt_module_self_test,mcrypt_ofb,md5_file,md5,%
+    metaphone,method_exists,mhash_count,mhash_get_block_size,%
+    mhash_keygen_s2k,mhash,microtime,min,ming_setcubicthreshold,%
+    ming_useswfversion,mkdir,mktime,move_uploaded_file,%
+    msession_count,msession_create,msession_destroy,%
+    msession_find,msession_get_array,msession_get,msession_getdata,%
+    msession_list,msession_listvar,msession_lock,msession_plugin,%
+    msession_set_array,msession_set,msession_setdata,%
+    msession_uniq,msession_unlock,msql_affected_rows,msql_close,%
+    msql_create_db,msql_createdb,msql_data_seek,msql_dbname,%
+    msql_dropdb,msql_error,msql_fetch_array,msql_fetch_field,%
+    msql_fetch_row,msql_field_seek,msql_fieldflags,msql_fieldlen,%
+    msql_fieldtable,msql_fieldtype,msql_free_result,msql_freeresult,%
+    msql_list_fields,msql_list_tables,msql_listdbs,msql_listfields,%
+    msql_num_fields,msql_num_rows,msql_numfields,msql_numrows,%
+    msql_query,msql_regcase,msql_result,msql_select_db,%
+    msql_tablename,msql,mssql_bind,mssql_close,mssql_connect,%
+    mssql_execute,mssql_fetch_array,mssql_fetch_assoc,%
+    mssql_fetch_field,mssql_fetch_object,mssql_fetch_row,%
+    mssql_field_name,mssql_field_seek,mssql_field_type,%
+    mssql_get_last_message,mssql_guid_string,mssql_init,%
+    mssql_min_message_severity,mssql_next_result,mssql_num_fields,%
+    mssql_pconnect,mssql_query,mssql_result,mssql_rows_affected,%
+    mt_getrandmax,mt_rand,mt_srand,muscat_close,muscat_get,%
+    muscat_setup_net,muscat_setup,mysql_affected_rows,%
+    mysql_close,mysql_connect,mysql_create_db,mysql_data_seek,%
+    mysql_db_query,mysql_drop_db,mysql_errno,mysql_error,%
+    mysql_fetch_array,mysql_fetch_assoc,mysql_fetch_field,%
+    mysql_fetch_object,mysql_fetch_row,mysql_field_flags,%
+    mysql_field_name,mysql_field_seek,mysql_field_table,%
+    mysql_free_result,mysql_get_client_info,mysql_get_host_info,%
+    mysql_get_server_info,mysql_insert_id,mysql_list_dbs,%
+    mysql_list_tables,mysql_num_fields,mysql_num_rows,%
+    mysql_query,mysql_result,mysql_select_db,mysql_tablename,%
+    natcasesort,natsort,ncurses_addch,ncurses_addchnstr,%
+    ncurses_addnstr,ncurses_addstr,ncurses_assume_default_colors,%
+    ncurses_attron,ncurses_attrset,ncurses_baudrate,ncurses_beep,%
+    ncurses_bkgdset,ncurses_border,ncurses_can_change_color,%
+    ncurses_clear,ncurses_clrtobot,ncurses_clrtoeol,%
+    ncurses_curs_set,ncurses_def_prog_mode,ncurses_def_shell_mode,%
+    ncurses_delay_output,ncurses_delch,ncurses_deleteln,%
+    ncurses_doupdate,ncurses_echo,ncurses_echochar,ncurses_end,%
+    ncurses_erasechar,ncurses_filter,ncurses_flash,ncurses_flushinp,%
+    ncurses_halfdelay,ncurses_has_colors,ncurses_has_ic,%
+    ncurses_has_key,ncurses_hline,ncurses_inch,ncurses_init_color,%
+    ncurses_init,ncurses_insch,ncurses_insdelln,ncurses_insertln,%
+    ncurses_instr,ncurses_isendwin,ncurses_keyok,ncurses_killchar,%
+    ncurses_move,ncurses_mvaddch,ncurses_mvaddchnstr,%
+    ncurses_mvaddnstr,ncurses_mvaddstr,ncurses_mvcur,%
+    ncurses_mvgetch,ncurses_mvhline,ncurses_mvinch,ncurses_mvvline,%
+    ncurses_napms,ncurses_newwin,ncurses_nl,ncurses_nocbreak,%
+    ncurses_nonl,ncurses_noqiflush,ncurses_noraw,ncurses_putp,%
+    ncurses_raw,ncurses_refresh,ncurses_resetty,ncurses_savetty,%
+    ncurses_scr_init,ncurses_scr_restore,ncurses_scr_set,%
+    ncurses_slk_attr,ncurses_slk_attroff,ncurses_slk_attron,%
+    ncurses_slk_clear,ncurses_slk_color,ncurses_slk_init,%
+    ncurses_slk_refresh,ncurses_slk_restore,ncurses_slk_touch,%
+    ncurses_standout,ncurses_start_color,ncurses_termattrs,%
+    ncurses_typeahead,ncurses_ungetch,ncurses_use_default_colors,%
+    ncurses_use_extended_names,ncurses_vidattr,ncurses_vline,%
+    next,ngettext,nl_langinfo,nl2br,notes_body,notes_copy_db,%
+    notes_create_note,notes_drop_db,notes_find_note,%
+    notes_list_msgs,notes_mark_read,notes_mark_unread,%
+    notes_search,notes_unread,notes_version,number_format,ob_clean,%
+    ob_end_flush,ob_flush,ob_get_contents,ob_get_length,%
+    ob_gzhandler,ob_iconv_handler,ob_implicit_flush,ob_start,%
+    ocicancel,ocicollappend,ocicollassign,ocicollassignelem,%
+    ocicollmax,ocicollsize,ocicolltrim,ocicolumnisnull,%
+    ocicolumnprecision,ocicolumnscale,ocicolumnsize,ocicolumntype,%
+    ocicommit,ocidefinebyname,ocierror,ociexecute,ocifetch,%
+    ocifetchstatement,ocifreecollection,ocifreecursor,ocifreedesc,%
+    ociinternaldebug,ociloadlob,ocilogoff,ocilogon,ocinewcollection,%
+    ocinewdescriptor,ocinlogon,ocinumcols,ociparse,ociplogon,%
+    ocirollback,ocirowcount,ocisavelob,ocisavelobfile,%
+    ocisetprefetch,ocistatementtype,ociwritelobtofile,octdec,%
+    odbc_binmode,odbc_close_all,odbc_close,odbc_columnprivileges,%
+    odbc_commit,odbc_connect,odbc_cursor,odbc_do,odbc_error,%
+    odbc_exec,odbc_execute,odbc_fetch_array,odbc_fetch_into,%
+    odbc_fetch_row,odbc_field_len,odbc_field_name,odbc_field_num,%
+    odbc_field_scale,odbc_field_type,odbc_foreignkeys,%
+    odbc_gettypeinfo,odbc_longreadlen,odbc_next_result,%
+    odbc_num_rows,odbc_pconnect,odbc_prepare,odbc_primarykeys,%
+    odbc_procedures,odbc_result_all,odbc_result,odbc_rollback,%
+    odbc_specialcolumns,odbc_statistics,odbc_tableprivileges,%
+    opendir,openlog,openssl_csr_export_to_file,openssl_csr_export,%
+    openssl_csr_sign,openssl_error_string,openssl_free_key,%
+    openssl_get_publickey,openssl_open,openssl_pkcs7_decrypt,%
+    openssl_pkcs7_sign,openssl_pkcs7_verify,%
+    openssl_pkey_export,openssl_pkey_new,openssl_private_decrypt,%
+    openssl_public_decrypt,openssl_public_encrypt,openssl_seal,%
+    openssl_verify,openssl_x509_check_private_key,%
+    openssl_x509_export_to_file,openssl_x509_export,%
+    openssl_x509_parse,openssl_x509_read,ora_bind,ora_close,%
+    ora_columnsize,ora_columntype,ora_commit,ora_commitoff,%
+    ora_do,ora_error,ora_errorcode,ora_exec,ora_fetch_into,%
+    ora_getcolumn,ora_logoff,ora_logon,ora_numcols,ora_numrows,%
+    ora_parse,ora_plogon,ora_rollback,ord,overload,ovrimos_close,%
+    ovrimos_connect,ovrimos_cursor,ovrimos_exec,ovrimos_execute,%
+    ovrimos_fetch_row,ovrimos_field_len,ovrimos_field_name,%
+    ovrimos_field_type,ovrimos_free_result,ovrimos_longreadlen,%
+    ovrimos_num_rows,ovrimos_prepare,ovrimos_result_all,%
+    ovrimos_rollback,pack,parse_ini_file,parse_str,parse_url,%
+    pathinfo,pclose,pdf_add_annotation,pdf_add_bookmark,%
+    pdf_add_locallink,pdf_add_note,pdf_add_outline,pdf_add_pdflink,%
+    pdf_add_weblink,pdf_arc,pdf_arcn,pdf_attach_file,pdf_begin_page,%
+    pdf_begin_template,pdf_circle,pdf_clip,pdf_close_image,%
+    pdf_close_pdi,pdf_close,pdf_closepath_fill_stroke,%
+    pdf_closepath,pdf_concat,pdf_continue_text,pdf_curveto,%
+    pdf_end_page,pdf_end_pattern,pdf_end_template,pdf_endpath,%
+    pdf_fill,pdf_findfont,pdf_get_buffer,pdf_get_font,%
+    pdf_get_fontsize,pdf_get_image_height,pdf_get_image_width,%
+    pdf_get_minorversion,pdf_get_parameter,pdf_get_pdi_parameter,%
+    pdf_get_value,pdf_initgraphics,pdf_lineto,pdf_makespotcolor,%
+    pdf_new,pdf_open_ccitt,pdf_open_file,pdf_open_gif,%
+    pdf_open_image,pdf_open_jpeg,pdf_open_memory_image,%
+    pdf_open_pdi,pdf_open_png,pdf_open_tiff,pdf_open,%
+    pdf_place_pdi_page,pdf_rect,pdf_restore,pdf_rotate,pdf_save,%
+    pdf_set_border_color,pdf_set_border_dash,pdf_set_border_style,%
+    pdf_set_duration,pdf_set_font,pdf_set_horiz_scaling,%
+    pdf_set_info_creator,pdf_set_info_keywords,pdf_set_info_subject,%
+    pdf_set_info,pdf_set_leading,pdf_set_parameter,pdf_set_text_pos,%
+    pdf_set_text_rise,pdf_set_transition,pdf_set_value,%
+    pdf_setcolor,pdf_setdash,pdf_setflat,pdf_setfont,%
+    pdf_setgray_stroke,pdf_setgray,pdf_setlinecap,pdf_setlinejoin,%
+    pdf_setmatrix,pdf_setmiterlimit,pdf_setpolydash,%
+    pdf_setrgbcolor_stroke,pdf_setrgbcolor,pdf_show_boxed,%
+    pdf_show,pdf_skew,pdf_stringwidth,pdf_stroke,pdf_translate,%
+    pfpro_init,pfpro_process_raw,pfpro_process,pfpro_version,%
+    pg_cancel_query,pg_client_encoding,pg_close,pg_cmdtuples,%
+    pg_connection_busy,pg_connection_reset,pg_connection_status,%
+    pg_copy_to,pg_dbname,pg_end_copy,pg_errormessage,%
+    pg_escape_string,pg_exec,pg_fetch_array,pg_fetch_object,%
+    pg_fieldisnull,pg_fieldname,pg_fieldnum,pg_fieldprtlen,%
+    pg_fieldtype,pg_freeresult,pg_get_result,pg_getlastoid,pg_host,%
+    pg_last_notice,pg_lo_close,pg_lo_seek,pg_lo_tell,pg_loclose,%
+    pg_loexport,pg_loimport,pg_loopen,pg_loread,pg_loreadall,%
+    pg_lowrite,pg_numfields,pg_numrows,pg_options,pg_pconnect,%
+    pg_put_line,pg_request_cancel,pg_result_error,pg_result_status,%
+    pg_send_query,pg_set_client_encoding,pg_trace,pg_tty,pg_untrace,%
+    php_sapi_name,php_uname,phpcredits,phpinfo,<version,pi,%
+    popen,pos,posix_ctermid,posix_getcwd,posix_getegid,%
+    posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,%
+    posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,%
+    posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,%
+    posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,%
+    posix_setpgid,posix_setsid,posix_setuid,posix_times,%
+    posix_uname,pow,preg_grep,preg_match_all,preg_match,preg_quote,%
+    preg_replace,preg_split,prev,print_r,print,printer_abort,%
+    printer_create_brush,printer_create_dc,printer_create_font,%
+    printer_delete_brush,printer_delete_dc,printer_delete_font,%
+    printer_draw_bmp,printer_draw_chord,printer_draw_elipse,%
+    printer_draw_pie,printer_draw_rectangle,printer_draw_roundrect,%
+    printer_end_doc,printer_end_page,printer_get_option,%
+    printer_logical_fontheight,printer_open,printer_select_brush,%
+    printer_select_pen,printer_set_option,printer_start_doc,%
+    printer_write,printf,pspell_add_to_personal,%
+    pspell_check,pspell_clear_session,pspell_config_create,%
+    pspell_config_mode,pspell_config_personal,pspell_config_repl,%
+    pspell_config_save_repl,pspell_new_config,pspell_new_personal,%
+    pspell_save_wordlist,pspell_store_replacement,pspell_suggest,%
+    qdom_error,qdom_tree,quoted_printable_decode,quotemeta,rad2deg,%
+    range,rawurldecode,rawurlencode,read_exif_data,readdir,readfile,%
+    readline_add_history,readline_clear_history,%
+    readline_info,readline_list_history,readline_read_history,%
+    readline,readlink,realpath,recode_file,recode_string,recode,%
+    register_tick_function,rename,require_once,require,reset,%
+    rewind,rewinddir,rmdir,round,rsort,rtrim,%
+    satellite_exception_id,satellite_exception_value,%
+    satellite_load_idl,satellite_object_to_string,sem_acquire,%
+    sem_release,sem_remove,serialize,sesam_affected_rows,%
+    sesam_connect,sesam_diagnostic,sesam_disconnect,sesam_errormsg,%
+    sesam_fetch_array,sesam_fetch_result,sesam_fetch_row,%
+    sesam_field_name,sesam_free_result,sesam_num_fields,sesam_query,%
+    sesam_seek_row,sesam_settransaction,session_cache_expire,%
+    session_decode,session_destroy,session_encode,%
+    session_id,session_is_registered,session_module_name,%
+    session_register,session_save_path,session_set_cookie_params,%
+    session_start,session_unregister,session_unset,%
+    set_error_handler,set_file_buffer,set_magic_quotes_runtime,%
+    setcookie,setlocale,settype,shell_exec,shm_attach,shm_detach,%
+    shm_put_var,shm_remove_var,shm_remove,shmop_close,shmop_delete,%
+    shmop_read,shmop_size,shmop_write,show_source,shuffle,%
+    sin,sinh,sizeof,sleep,snmp_get_quick_print,snmp_set_quick_print,%
+    snmprealwalk,snmpset,snmpwalk,snmpwalkoid,socket_accept,%
+    socket_close,socket_connect,socket_create_listen,%
+    socket_create,socket_fd_alloc,socket_fd_clear,socket_fd_free,%
+    socket_fd_set,socket_fd_zero,socket_get_status,socket_getopt,%
+    socket_getsockname,socket_iovec_add,socket_iovec_alloc,%
+    socket_iovec_fetch,socket_iovec_free,socket_iovec_set,%
+    socket_listen,socket_read,socket_readv,socket_recv,%
+    socket_recvmsg,socket_select,socket_send,socket_sendmsg,%
+    socket_set_blocking,socket_set_nonblock,socket_set_timeout,%
+    socket_shutdown,socket_strerror,socket_write,socket_writev,sort,%
+    split,spliti,sprintf,sql_regcase,sqrt,srand,sscanf,stat,str_pad,%
+    str_replace,str_rot13,strcasecmp,strchr,strcmp,strcoll,strcspn,%
+    strip_tags,stripcslashes,stripslashes,stristr,strlen,%
+    strnatcmp,strncasecmp,strncmp,strpos,strrchr,strrev,strrpos,%
+    strstr,strtok,strtolower,strtotime,strtoupper,strtr,strval,%
+    substr_replace,substr,swf_actiongeturl,swf_actiongotoframe,%
+    swf_actionnextframe,swf_actionplay,swf_actionprevframe,%
+    swf_actionstop,swf_actiontogglequality,swf_actionwaitforframe,%
+    swf_addcolor,swf_closefile,swf_definebitmap,swf_definefont,%
+    swf_definepoly,swf_definerect,swf_definetext,swf_endbutton,%
+    swf_endshape,swf_endsymbol,swf_fontsize,swf_fontslant,%
+    swf_getbitmapinfo,swf_getfontinfo,swf_getframe,swf_labelframe,%
+    swf_modifyobject,swf_mulcolor,swf_nextid,swf_oncondition,%
+    swf_ortho,swf_ortho2,swf_perspective,swf_placeobject,%
+    swf_popmatrix,swf_posround,swf_pushmatrix,swf_removeobject,%
+    swf_scale,swf_setfont,swf_setframe,swf_shapearc,%
+    swf_shapecurveto3,swf_shapefillbitmapclip,%
+    swf_shapefilloff,swf_shapefillsolid,swf_shapelinesolid,%
+    swf_shapemoveto,swf_showframe,swf_startbutton,swf_startdoaction,%
+    swf_startsymbol,swf_textwidth,swf_translate,swf_viewport,%
+    sybase_close,sybase_connect,sybase_data_seek,sybase_fetch_array,%
+    sybase_fetch_object,sybase_fetch_row,sybase_field_seek,%
+    sybase_get_last_message,sybase_min_client_severity,%
+    sybase_min_message_severity,sybase_min_server_severity,%
+    sybase_num_rows,sybase_pconnect,sybase_query,sybase_result,%
+    symlink,syslog,system,tan,tanh,tempnam,textdomain,time,tmpfile,%
+    trigger_error,trim,uasort,ucfirst,ucwords,udm_add_search_limit,%
+    udm_api_version,udm_cat_list,udm_cat_path,udm_check_charset,%
+    udm_clear_search_limits,udm_close_stored,udm_crc32,udm_errno,%
+    udm_find,udm_free_agent,udm_free_ispell_data,udm_free_res,%
+    udm_get_res_field,udm_get_res_param,udm_load_ispell_data,%
+    udm_set_agent_param,uksort,umask,uniqid,unixtojd,unlink,unpack,%
+    unserialize,unset,urldecode,urlencode,user_error,usleep,usort,%
+    utf8_encode,var_dump,var_export,version_compare,virtual,%
+    vpopmail_add_alias_domain,vpopmail_add_domain_ex,%
+    vpopmail_add_user,vpopmail_alias_add,vpopmail_alias_del_domain,%
+    vpopmail_alias_get_all,vpopmail_alias_get,vpopmail_auth_user,%
+    vpopmail_del_domain,vpopmail_del_user,vpopmail_error,%
+    vpopmail_set_user_quota,vprintf,vsprintf,w32api_deftype,%
+    w32api_invoke_function,w32api_register_function,%
+    wddx_add_vars,wddx_deserialize,wddx_packet_end,%
+    wddx_serialize_value,wddx_serialize_vars,wordwrap,%
+    xml_get_current_byte_index,xml_get_current_column_number,%
+    xml_get_error_code,xml_parse_into_struct,xml_parse,%
+    xml_parser_create,xml_parser_free,xml_parser_get_option,%
+    xml_set_character_data_handler,xml_set_default_handler,%
+    xml_set_end_namespace_decl_handler,%
+    xml_set_notation_decl_handler,xml_set_object,%
+    xml_set_start_namespace_decl_handler,%
+    xmldoc,xmldocfile,xmlrpc_decode_request,xmlrpc_decode,%
+    xmlrpc_encode,xmlrpc_get_type,xmlrpc_parse_method_descriptions,%
+    xmlrpc_server_call_method,xmlrpc_server_create,%
+    xmlrpc_server_register_introspection_callback,%
+    xmlrpc_set_type,xmltree,xpath_eval_expression,xpath_eval,%
+    xptr_eval,xptr_new_context,xslt_create,xslt_errno,xslt_error,%
+    xslt_process,xslt_set_base,xslt_set_encoding,%
+    xslt_set_log,xslt_set_sax_handler,xslt_set_sax_handlers,%
+    xslt_set_scheme_handlers,yaz_addinfo,yaz_ccl_conf,yaz_ccl_parse,%
+    yaz_connect,yaz_database,yaz_element,yaz_errno,yaz_error,%
+    yaz_itemorder,yaz_present,yaz_range,yaz_record,yaz_scan_result,%
+    yaz_search,yaz_sort,yaz_syntax,yaz_wait,yp_all,yp_cat,%
+    yp_errno,yp_first,yp_get_default_domain,yp_master,yp_match,%
+    yp_order,zend_logo_guid,zend_version,zip_close,zip_entry_close,%
+    zip_entry_compressionmethod,zip_entry_filesize,zip_entry_name,%
+    zip_entry_read,zip_open,zip_read},%
+   sensitive,%
+   morecomment=[l]\#,%
+   morecomment=[l]//,%
+   morecomment=[s]{/*}{*/},%
+   morestring=[b]",%
+   morestring=[b]'%
+  }[keywords,comments,strings]%
+%%
 %% Prolog definition (c) 1997 Dominique de Waleffe <[email protected]>
 %%
 \lst@definelanguage{Prolog}%
@@ -575,10 +1192,12 @@
       },%
    morestring=[d]",%
    MoreSelectCharTable=%
-      \lst@CArgX\#\relax\lst@CommentB\lst@CLmode{}{}%
+      \lst@CArgX\#\relax\lst@DefDelimB{}{}%
           {\ifx\lst@lastother\lstum@backslash
                \expandafter\@gobblethree
-           \fi}\lst@commentstyle
+           \fi}%
+          \lst@BeginComment\lst@commentmode
+          {{\lst@commentstyle}\lst@Lmodetrue}%
   }[keywords,comments,strings]%
 %%
 %% VBScript definition (c) 2000 Sonja Weidmann <[email protected]>
@@ -629,6 +1248,26 @@
    morecomment=[l]',%
    morestring=[d]"%
   }[keywords,comments,strings]%
+%%
+%% VRML definition (c) 2001 Oliver Baum <[email protected]>
+%%
+\lst@definelanguage[97]{VRML}
+  {morekeywords={DEF,EXTERNPROTO,FALSE,IS,NULL,PROTO,ROUTE,TO,TRUE,USE,%
+      eventIn,eventOut,exposedField,field,Introduction,Anchor,%
+      Appearance,AudioClip,Background,Billboard,Box,Collision,Color,%
+      ColorInterpolator,Cone,Coordinate,CoordinateInterpolator,%
+      Cylinder,CylinderSensor,DirectionalLight,ElevationGrid,Extrusion,%
+      Fog,FontStyle,Group,ImageTexture,IndexedFaceSet,IndexedLineSet,%
+      Inline,LOD,Material,MovieTexture,NavigationInfo,Normal,%
+      NormalInterpolator,OrientationInterpolator,PixelTexture,%
+      PlaneSensor,PointLight,PointSet,PositionInterpolator,%
+      ProximitySensor,ScalarInterpolator,Script,Shape,Sound,Sphere,%
+      SphereSensor,SpotLight,Switch,Text,TextureCoordinate,%
+      TextureTransform,TimeSensor,TouchSensor,Transform,Viewpoint,%
+      VisibilitySensor,WorldInfo},%
+   morecomment=[l]\#,% bug: starts comment in the first column
+   morestring=[b]"%
+  }[keywords,comments,strings]
 \endinput
 %%
 %% End of file `lstlang2.sty'.

+ 93 - 62
docs/styles/lstlang3.sty

@@ -6,8 +6,8 @@
 %%
 %% lstdrvrs.dtx  (with options: `lang3')
 %% 
-%% (w)(c) 1996/1997/1998/1999/2000 Carsten Heinz and/or any other author
-%% listed elsewhere in this file.
+%% (w)(c) 1996/1997/1998/1999/2000/2001/2002 Carsten Heinz and/or any
+%% other author listed elsewhere in this file.
 %%
 %% This file is distributed under the terms of the LaTeX Project Public
 %% License from CTAN archives in directory  macros/latex/base/lppl.txt.
@@ -15,13 +15,11 @@
 %%
 %% This file is completely free and comes without any warranty.
 %%
-%% Permission is granted to change this file. You are not allowed to
-%% distribute any changed version of this file, neither under the same
-%% name nor under a different one.
-%%
 %% Send comments and ideas on the package, error reports and additional
 %% programming languages to <[email protected]>.
 %%
+\ProvidesFile{lstlang3}
+    [2002/07/31 v1.0d listings language file]
 \lst@definelanguage[68]{Algol}%
   {morekeywords={abs,and,arg,begin,bin,bits,bool,by,bytes,case,channel,%
       char,co,comment,compl,conj,divab,do,down,elem,elif,else,empty,%
@@ -43,54 +41,68 @@
    keywordcommentsemicolon={end}{else,end}{comment}%
   }[keywords,keywordcomments]%
 %%
-%% Visual Basic definition (c) 2001 Frédéric Jacquet
-%%                             <[email protected]>
+%% x86masm definition (c) 2002 Andrew Zabolotny <[email protected]>
 %%
-\lstdefinelanguage[Visual]{Basic}
-  {morekeywords={AddressOf,Abs,And,AppActivate,Array,As,Asc,Atn,Base,%
-      Beep,Binary,ByRef,ByVal,CVErr,Call,CallByName,Case,ChDir,ChDrive,%
-      Choose,Chr,Close,Command,Compare,Comparison,Const,Cos,%
-      CreateObject,CurDir,DDB,Date,DateAdd,DateDiff,DatePart,%
-      DateSerial,DateValue,Day,Declare,Deftype,DeleteSetting,Dim,Dir,%
-      Do,DoEvents,EOF,Each,Else,Empty,End,Enum,Environ,Eqv,Erase,Error,%
-      Event,Exit,Exp,Explicit,FV,False,FileAttr,FileCopy,FileDateTime,%
-      FileLen,Filter,Fix,For,Format,FormatCurrency,FormatDateRime,%
-      FormatNumber,FormatPercent,Friend,Function,Get,GetAllSettings,%
-      GetAttr,GetAutoServerSettings,GetObject,GetSetting,GoSub,GoTo,%
-      Hex,Hour,IIf,IMEStatus,IPmt,IRR,If,Imp,Implements,InStr,InStrRev,%
-      Input,InputBox,Int,Is,IsArray,IsDate,IsEmpty,IsError,IsMissing,%
-      IsNull,IsNumeric,IsObject,Join,Kill,LBound,LCase,LOF,LSet,LTrim,%
-      Left,Len,Let,Like,Line,Load,LoadPicture,LoadResData,%
-      LoadResPicture,LoadResString,Loc,Lock,Lock,Log,Loop,MIRR,Math,Me,%
-      Mid,Minute,MkDir,Mod,Month,MonthName,MsgBox,NPV,NPer,Name,New,%
-      Next,Not,Nothing,Now,Null,Oct,On,Open,Option,Optional,Or,PPmt,PV,%
-      Paramarray,Partition,Pmt,Print,Private,Property,Public,Put,%
-      QBColor,RGB,RSet,RTrim,RaiseEvent,Randomize,Rate,ReDim,Rem,%
-      Replace,Resume,Return,Right,RmDir,Rnd,Round,SLN,SYD,SavePicture,%
-      SaveSetting,Second,Seek,Select,SendKeys,Set,SetAttr,Sgn,Shell,%
-      Sin,Space,Spc,Split,Sqr,Static,Step,Stop,Str,StrComp,StrConv,%
-      StrReverse,String,Sub,Switch,Tab,Tan,Then,Time,TimeSerial,%
-      TimeValue,Timer,Trim,True,Type,TypeName,UBound,UCase,Unload,%
-      Unlock,Val,VarType,Weekday,WeekdayName,Wend,While,Width,With,%
-      Withevents,Write,Xor,Year},%
-   sensitive=false,%
-   morecomment=[l]\',%
-   morestring=[b]"%
-  }%
+\lst@definelanguage[x86masm]{Assembler}%
+  {morekeywords={al,ah,ax,eax,bl,bh,bx,ebx,cl,ch,cx,ecx,dl,dh,dx,edx,%
+      si,esi,di,edi,bp,ebp,sp,esp,cs,ds,es,ss,fs,gs,cr0,cr1,cr2,cr3,%
+      db0,db1,db2,db3,db4,db5,db6,db7,tr0,tr1,tr2,tr3,tr4,tr5,tr6,tr7,%
+      st,aaa,aad,aam,aas,adc,add,and,arpl,bound,bsf,bsr,bswap,bt,btc,%
+      btr,bts,call,cbw,cdq,clc,cld,cli,clts,cmc,cmp,cmps,cmpsb,cmpsw,%
+      cmpsd,cmpxchg,cwd,cwde,daa,das,dec,div,enter,hlt,idiv,imul,in,%
+      inc,ins,int,into,invd,invlpg,iret,ja,jae,jb,jbe,jc,jcxz,jecxz,%
+      je,jg,jge,jl,jle,jna,jnae,jnb,jnbe,jnc,jne,jng,jnge,jnl,jnle,%
+      jno,jnp,jns,jnz,jo,jp,jpe,jpo,js,jz,jmp,lahf,lar,lea,leave,lgdt,%
+      lidt,lldt,lmsw,lock,lods,lodsb,lodsw,lodsd,loop,loopz,loopnz,%
+      loope,loopne,lds,les,lfs,lgs,lss,lsl,ltr,mov,movs,movsb,movsw,%
+      movsd,movsx,movzx,mul,neg,nop,not,or,out,outs,pop,popa,popad,%
+      popf,popfd,push,pusha,pushad,pushf,pushfd,rcl,rcr,rep,repe,%
+      repne,repz,repnz,ret,retf,rol,ror,sahf,sal,sar,sbb,scas,seta,%
+      setae,setb,setbe,setc,sete,setg,setge,setl,setle,setna,setnae,%
+      setnb,setnbe,setnc,setne,setng,setnge,setnl,setnle,setno,setnp,%
+      setns,setnz,seto,setp,setpe,setpo,sets,setz,sgdt,shl,shld,shr,%
+      shrd,sidt,sldt,smsw,stc,std,sti,stos,stosb,stosw,stosd,str,sub,%
+      test,verr,verw,wait,wbinvd,xadd,xchg,xlatb,xor,fabs,fadd,fbld,%
+      fbstp,fchs,fclex,fcom,fcos,fdecstp,fdiv,fdivr,ffree,fiadd,ficom,%
+      fidiv,fidivr,fild,fimul,fincstp,finit,fist,fisub,fisubr,fld,fld1,%
+      fldl2e,fldl2t,fldlg2,fldln2,fldpi,fldz,fldcw,fldenv,fmul,fnop,%
+      fpatan,fprem,fprem1,fptan,frndint,frstor,fsave,fscale,fsetpm,%
+      fsin,fsincos,fsqrt,fst,fstcw,fstenv,fstsw,fsub,fsubr,ftst,fucom,%
+      fwait,fxam,fxch,fxtract,fyl2x,fyl2xp1,f2xm1},%
+   morekeywords=[2]{.align,.alpha,assume,byte,code,comm,comment,.const,%
+      .cref,.data,.data?,db,dd,df,dosseg,dq,dt,dw,dword,else,end,endif,%
+      endm,endp,ends,eq,equ,.err,.err1,.err2,.errb,.errdef,.errdif,%
+      .erre,.erridn,.errnb,.errndef,.errnz,event,exitm,extrn,far,%
+      .fardata,.fardata?,fword,ge,group,gt,high,if,if1,if2,ifb,ifdef,%
+      ifdif,ife,ifidn,ifnb,ifndef,include,includelib,irp,irpc,label,%
+      .lall,le,length,.lfcond,.list,local,low,lt,macro,mask,mod,.model,%
+      name,ne,near,offset,org,out,page,proc,ptr,public,purge,qword,.%
+      radix,record,rept,.sall,seg,segment,.seq,.sfcond,short,size,%
+      .stack,struc,subttl,tbyte,.tfcond,this,title,type,.type,width,%
+      word,.xall,.xcref,.xlist},%
+   alsoletter=.,alsodigit=?,%
+   sensitive=f,%
+   morestring=[b]",%
+   morestring=[b]',%
+   morecomment=[l];%
+   }[directives,keywords,comments,strings]
 %%
-%% Clean definition (c) 1999 José Romildo Malaquias <[email protected]>
+%% Clean definition (c) 1999 Jos\'e Romildo Malaquias
+%%                           <[email protected]>
 %%
 %% Clean 1.3 :  some standard functional language: pure, lazy,
 %%              polymorphic type system, modules, type classes,
 %%              garbage collection, functions as first class citizens
 %%
 \lst@definelanguage{Clean}%
-  {otherkeywords={:,::,=,:==,=:,=>,->,<-,<-:,\{,\},\{|,|\},\#,\#!,|,\&,[,],!,.,\\\\,;,_},%
-   keywords={from,definition,implementation,import,module,system,case,code,%
-             if,in,let,let!,of,where,with,infix,infixl,infixr},%
-   ndkeywords={True,False,Start,Int,Real,Char,Bool,String,World,File,ProcId},%
+  {otherkeywords={:,::,=,:==,=:,=>,->,<-,<-:,\{,\},\{|,|\},\#,\#!,|,\&,%
+      [,],!,.,\\\\,;,_},%
+   morekeywords={from,definition,implementation,import,module,system,%
+      case,code,if,in,let,let!,of,where,with,infix,infixl,infixr},%
+   morendkeywords={True,False,Start,Int,Real,Char,Bool,String,World,%
+      File,ProcId},%
    sensitive,%
-   morecomment=[l]//%
+   morecomment=[l]//,% missing comma: Markus Pahlow
    morecomment=[n]{/*}{*/},%
    morestring=[b]"%
   }[keywords,comments,strings]%
@@ -121,6 +133,19 @@
    sensitive,%
    morestring=[d]"%
   }[keywords,strings]%
+\lst@definelanguage{ksh}
+  {morekeywords={alias,awk,cat,echo,else,elif,fi,exec,exit,%
+      for,in,do,done,select,case,esac,while,until,function,%
+      time,export,cd,eval,fc,fg,kill,let,pwd,read,return,rm,%
+      glob,goto,history,if,logout,nice,nohup,onintr,repeat,sed,%
+      set,setenv,shift,source,switch,then,umask,unalias,%
+      unset,wait,@,env,argv,child,home,ignoreeof,noclobber,%
+      noglob,nomatch,path,prompt,shell,status,verbose,print,printf,%
+      sqrt,BEGIN,END},%
+   morecomment=[l]\#,%
+   morestring=[d]",%
+   morestring=[d]'%
+  }[keywords,comments,strings]%
 \lst@definelanguage{Logo}%
   {morekeywords={and,atan,arctan,both,break,bf,bl,butfirst,butlast,%
       cbreak, close,co,continue,cos,count,clearscreen,cs,debquit,%
@@ -158,6 +183,19 @@
    morestring=[d]',%
    morestring=[d]"%
   }[keywords,comments,strings]%
+\lst@definelanguage{NASTRAN}
+  {morekeywords={ENDDATA},%
+   morecomment=[l]$,%
+   MoreSelectCharTable=%
+        \lst@CArgX BEGIN\ BULK\relax\lst@CDef{}%
+        {\lst@ifmode\else \ifnum\lst@length=\z@
+             \lst@EnterMode{\lst@GPmode}{\lst@modetrue
+                  \let\lst@currstyle\lst@gkeywords@sty}%
+         \fi \fi}%
+        {\ifnum\lst@mode=\lst@GPmode
+             \lst@XPrintToken \lst@LeaveMode
+         \fi}%
+  }[keywords,comments]%
 \lst@definelanguage{Oberon-2}%
   {morekeywords={ARRAY,BEGIN,BOOLEAN,BY,CASE,CHAR,CONST,DIV,DO,ELSE,%
       ELSIF,END,EXIT,FALSE,FOR,IF,IMPORT,IN,INTEGER,IS,LONGINT,%
@@ -171,14 +209,12 @@
    morestring=[d]"%
   }[keywords,comments,strings]%
 %%
-%% OCL definition (c) 2000 Achim D. Brucker <[email protected]>
-%% You are allowed to use, modify and distribute this code either under
-%% the terms of the LPPL (version 1.0 or later) or the GPL (version 2.0 or later).
+%% OCL definition (c) 2000 Achim D. Brucker
+%%                         <[email protected]>
 %%
-%% First we define are very decorative style. In the OMG standard only the boolean (infix (?))
-%% operations are highlighted, but I think all OCL-defined operations should be
-%% highlighted, because they are \emph{guaranteed} to be side-effect-free (in OCL only side effect
-%% free evaluations or path expressions are allowed).
+%% You are allowed to use, modify and distribute this code either under
+%% the terms of the LPPL (version 1.0 or later) or the GPL (version 2.0
+%% or later).
 %%
 \lst@definelanguage[decorative]{OCL}[OMG]{OCL}
   {otherkeywords={@pre},%
@@ -192,14 +228,8 @@
       asSequence,asBag,asSequence,asSet,append,prepend,subSequence,at,%
       first,last,true,false,isQuery}%
   }%
-%% Remark: "isQuery" is not real OCL, but a important Attribute of the
-%%         underlying UML model.
-%%
-%% The dialect called \texttt{OMG} is a very spare version. If you use
-%% this variant with bold style for first and second order keywords you
-%% get the look and feel of the OMG standard.
 \lst@definelanguage[OMG]{OCL}%
-    {morekeywords={context,pre,inv,post},
+    {morekeywords={context,pre,inv,post},%
     ndkeywords={or,xor,and,not,implies,if,then,else,endif},%
     morerdkeywords={Boolean,Integer,Real,String,Set,Sequence,Bag,%
        OclType,OclAny,OclExpression,Enumeration,Collection,},%
@@ -322,10 +352,11 @@
    alsoother={._$},%
    sensitive,%
    morecomment=[l]\#,%
-   morestring=[d]"%
+   morestring=[d]",%
+   morestring=[d]'% 2001 Robert Denham
   }%
 \lst@definelanguage{SAS}%
-  {prockeywords={proc},%
+  {procnamekeys={proc},%
    morekeywords={DATA,AND,OR,NOT,EQ,GT,LT,GE,LE,NE,INFILE,INPUT,DO,BY,%
       TO,SIN,COS,OUTPUT,END,PLOT,RUN,LIBNAME,VAR,TITLE,FIRSTOBS,OBS,%
       DELIMITER,DLM,EOF,ABS,DIM,HBOUND,LBOUND,MAX,MIN,MOD,SIGN,SQRT,%
@@ -342,7 +373,7 @@
       SHOW},%
    otherkeywords={!,!=,~,$,*,\&,_,/,<,>=,=<,>},%
    morestring=[d]'%
-   }%
+   }[keywords,comments,strings,procnames]%
 \lst@definelanguage[AlLaTeX]{TeX}[LaTeX]{TeX}%
   {moretexcs={AtBeginDocument,AtBeginDvi,AtEndDocument,AtEndOfClass,%
       AtEndOfPackage,ClassError,ClassInfo,ClassWarning,%

File diff suppressed because it is too large
+ 293 - 406
docs/styles/lstmisc.sty


+ 464 - 379
docs/styles/lstpatch.sty

@@ -1,379 +1,464 @@
-%%
-%% This is file `lstpatch.sty', generated manually :-)
-%%
-%% Please read the software license in listings.dtx or listings.dvi.
-%%
-%% (w)(c) 2000,2001 Carsten Heinz
-%%
-%% This file is distributed under the terms of the LaTeX Project Public
-%% License from CTAN archives in directory  macros/latex/base/lppl.txt.
-%% Either version 1.0 or, at your option, any later version.
-%%
-%% Permission is granted to change this file. You are not allowed to
-%% distribute any changed version of this file, neither under the same
-%% name nor under a different one.
-%%
-%% Send comments and ideas on the package, error reports and additional
-%% programming languages to <[email protected]>.
-%%
-%%
-%% This patch file does *not* include any experimental material I sent to
-%% various people. These people will have to copy and paste the definitions.
-%%
-%% This patch file will remove the following bugs from the listings package.
-%% Each item contains the bug finder with date of report and first bug fix
-%% version, a short description of the problem, and the reason for the bug
-%% in parenthesis.
-%%
-%%  1) Andreas Deininger, 2000/08/25, 0.21a
-%%
-%%     `breaklines,first>1' leads to ``undefined control sequence'' error
-%%     (\lst@breakshape undefined in this case)
-%%
-%%  2) Vespe Savikko, 2000/09/27, 0.21a (2000/11/02)
-%%
-%%     stringstyle used also on previous other characters
-%%     (missing \lst@PrintToken in \lst@BeginString)
-%%
-%%  3) Richard Hoefter, 2000/11/03, 0.21b (2000/11/04)
-%%
-%%     no keyword detection in case of language=HTML,language=Java
-%%     (missing deactivation of `keywordsinside' in hook `SetLanguage')
-%%
-%%  4) Vespe Savikko, 2000/11/06, 0.21c (2000/11/06)
-%%
-%%     bad output of doc-strings if HTML and Python are loaded
-%%     (missing group braces around mode argument in \lst@CommentB causes
-%%      a number `0' appearing in the output)
-%%
-%%  5) Christian Gudrian, 2000/11/13, 0.21d (2000/11/16)
-%%
-%%     \ref{lst:line} jumps to top of listing and not to the line
-%%     (\refstepcounter not used on \c@lstlabel)
-%%
-%%  6) Dr. Jobst Hoffmann, 2000/11/17, 0.21e (2000/11/20)
-%%
-%%     incompatibility with typehtml package
-%%     (bad lccode of /)
-%%
-%%  7) Kalle Tuulos, 2001/01/14, 0.21f (2001/01/17)
-%%
-%%     formfeed characters gobbles next output unit
-%%     (\lst@newlines contains \lst@EOLUpdate, which calls \lst@ResetToken)
-%%
-%%  8) Adam Prugel-Bennett, 2001/02/19, 0.21g
-%%
-%%     \abovecaptionskip undefined in slides.cls
-%%
-%%  9) Gabriel Tauro, 2001/04/18, 0.21g
-%%
-%%     unexpected `)' if the character appears before first printed line
-%%     (\lst@breakProcessOther is active)
-%%
-%% 10) Jens Schwarzer, 2001/05/29, 0.21g
-%%
-%%     wrong line numbering of lstlisting with first>1
-%%     (\lst@firstline not taken into accout in this case)
-%%
-%% 11) Jens Schwarzer, 2001/05/29, 0.21g (2001/06/21)
-%%
-%%     caption and title font are not equal
-%%     (\lst@maketitle not suitable for koma script)
-%%
-%% 12) Thorsten Vitt, 2001/06/25, 0.21h
-%%
-%%     fancyhdr + listings crossing pages ==> ~ in header, not space
-%%     (old problem with \output: explicitly redefine ~)
-%%
-%% 13) Martin Steffen, 2001/04/07, 0.21h
-%%
-%%     mathescape drops following space
-%%     (bad \lst@ifwhitespace)
-%%
-%% 14) Walter E. Brown, 2001/05/22, 0.21h (2001/06/27)
-%%
-%%     pdftex 3.14159-14f warning: destination with the same identifier
-%%     (bad default of \theHlstlabel)
-%%
-%% 15) Bradford Chamberlain, 2001/07/07, 0.21i
-%%
-%%     otherkeywords={@,@^} does not work
-%%     (argument treated as one long keyword)
-%%
-%% 16) GP Gores, 2001/07/11, 0.21i (2001/07/11)
-%%
-%%     a) inserts \par after each \lstinline
-%%     (\lst@Init has been modified, but I missed \lst@DeInit)
-%%
-%% 17) Carsten Heinz, 2001/07/16, 0.21j (2001/07/22)
-%%
-%%     16) makes first line of lstlisting textstyle
-%%     (bad modification of \lst@DeInit)
-%%
-%%
-%% Moreover the following functionality is added.
-%%
-%%  a) allow line breaks in \lstinline (experimental)
-%%
-%%  b) everydisplay=<token string>
-%%
-%%  c) nolol=<true|false> is mainly equivalent to the continue key, but
-%%     it will also drop lol-entries for lstlisting in the next version
-%%
-%%
-\ProvidesFile{lstpatch}[2001/07/22 v0.21j (Carsten Heinz)]
-\def\lst@topatch{0.21}
-\ifx\lst@version\lst@topatch\else
-    \typeout{^^J%
-    ***^^J%
-    *** Patch file `lstpatch.sty' for version \lst@topatch^^J%
-    *** is not suitable for `listings.sty' version \lst@version.^^J%
-    ***^^J
-    *** Patch file not loaded.^^J%
-    ***^^J}%
-    \let\lst@topatch\lst@version
-    \expandafter\endinput
-\fi
-%%
-%%  1) Just define \lst@breakshape.
-\gdef\lst@breakshape{%
-    \ifodd \c@page -\lst@innerspread \else -\lst@outerspread \fi
-    \linewidth}
-%%
-%%  2) Add \lst@PrintToken after \lst@TrackNewLines.
-\def\lstpatch@strings{%
-\gdef\lst@BeginString##1##2{%
-    \lst@TrackNewLines \lst@PrintToken
-    \lst@ifexstrings ##2\lst@PrintToken \fi
-    \lst@EnterMode{##1}%
-        {\lst@modetrue \let\lst@currstyle\lst@stringstyle}%
-    \lst@ifexstrings\else ##2\lst@PrintToken \fi
-    \lst@ifstringspaces
-        \lst@keepspacestrue
-        \let\lst@outputspace\lst@visiblespace
-    \fi}
-}
-%%
-%%  3) Insert deactivation.
-\def\lstpatch@html{%
-   \lst@AddToHook{SetLanguage}{\let\lst@DefInside\@empty}%
-}
-%%
-%%  4) Insert argument braces around ##5.
-\def\lstpatch@comments{%
-\gdef\lst@CommentB##1##2##3##4##5##6##7##8##9{%
-    \lst@CDef##1##2{##3}##4%
-        {##6}%
-        {\let\lst@bnext\lst@CArgEmpty
-         \lst@ifmode ##7\else
-             ##8%
-             \def\lst@bnext{\lst@BeginComment{##5}##9}%
-         \fi
-         \lst@bnext}%
-        \@empty}%
-}
-%%
-%%  5) Use `lstlabel' with \refstepcounter.
-\def\lstpatch@labels{%
-\lst@AddToHook{EveryPar}
-    {\global\advance\c@lstlabel\m@ne \refstepcounter{lstlabel}}%
-%%
-%% 14) Define appropriate \theHlstlabel.
-\AtBeginDocument{\def\theHlstlabel{\thelstlisting.\thelstlabel}}%
-}
-%%
-%%  6) Restore lccode.
-\lccode`\/=`\/
-%%
-%%  7) Don't add \lst@EOLUpdate to \lst@newlines. Since I don't know the
-%%     reason for adding it a long time ago :-(, it's probably better to
-%%     remove \lst@ResetToken (v0.22) from `InitVarsBOL' hook. Well, I'll
-%%     just wait for other bug reports ...
-\def\lst@ProcessFormFeed{%
-    \lst@PrintToken
-    \ifx\lst@newlines\@empty
-        \lst@EOLUpdate \lst@formfeed
-    \else
-%        \lst@lAddTo\lst@newlines{\lst@EOLUpdate \lst@formfeed}%
-        \lst@lAddTo\lst@newlines{\lst@formfeed}%
-    \fi
-    \lst@whitespacetrue}
-%%
-%%  8) Allocate \abovecaptionskip and \belowcaptionskip if necessary.
-%%     Additionally define \@makecaption (exact copy from report.cls).
-\@ifundefined{abovecaptionskip}
-{\newskip\abovecaptionskip
- \newskip\belowcaptionskip
- \long\def\@makecaption#1#2{%
-   \vskip\abovecaptionskip
-   \sbox\@tempboxa{#1: #2}%
-   \ifdim \wd\@tempboxa >\hsize
-     #1: #2\par
-   \else
-     \global \@minipagefalse
-     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
-   \fi
-   \vskip\belowcaptionskip}%
-}{}
-%%
-%%  9) Also deactivate \lst@breakProcessOther.
-\def\lst@BeginDropInput#1{%
-    \lst@EnterMode{#1}%
-    {\lst@modetrue
-     \let\lst@ProcessLetter\@gobble
-     \let\lst@ProcessDigit\@gobble
-     \let\lst@ProcessOther\@gobble
-     \let\lst@breakProcessOther\@gobble
-     \let\lst@ProcessSpace\@empty
-     \let\lst@ProcessTabulator\@empty
-     \let\lst@ProcessFormFeed\@empty}}
-%%
-%% 10) Replace \@tempcnta\@ne by \@tempcnta\lst@firstline.
-\def\lstpatch@labels{%
-\gdef\lst@SetFirstLabel{%
-    \ifx\lst@firstlabel\@undefined
-        \@tempcnta 0\csname lstno@\lst@intname\endcsname\relax
-        \ifnum\@tempcnta=\z@ \@tempcnta\lst@firstline
-                       \else \lst@continuetrue \fi
-        \advance\@tempcnta\lst@advancelabel
-        \edef\lst@firstlabel{\the\@tempcnta\relax}%
-    \fi}%
-}
-%%
-%% 11) Define \lst@maketitle in terms of \@makecaption. Note
-%%     thet this need not to work for all packages and classes.
-%%     The \let command here is especially for koma script.
-\def\lst@maketitle#1#2{%
-    {\let\captionformat\@empty
-     \@makecaption{}\lst@title}}
-%%
-%% 12) Redefine ~ in output routine.
-\lst@AddToHook{Init}
-    {\let\lsts@OldOutput\lst@OldOutput
-     \def\lst@OldOutput{\def~{\nobreakspace{}}%
-                        \lsts@OldOutput}%
-    }
-%%
-%% 13) Use \lst@whitespacefalse at end of escape.
-\def\lstpatch@escape{%
-    \lst@Key{escapeend}{}{\def\lst@escapeend{##1\lst@whitespacefalse}}%
-}
-%%
-%% 15) Make `other keywords' active iteratively.
-\def\lstpatch@keywords{%
-\gdef\lst@AddOtherKey##1,{%
-    \ifx\relax##1\@empty\else
-        \ifx\@empty##1\@empty\else
-            \lst@MakeActive{##1}%
-            \lst@lExtend\lst@otherkeywords{\expandafter,\lst@temp}%
-        \fi
-        \expandafter\lst@AddOtherKey
-    \fi}%
-\lst@Key{otherkeywords}{}%
-    {\let\lst@otherkeywords\@empty
-     \lst@AddOtherKey##1,\relax,}
-}
-%%
-%% a) Remove \hbox in front of \bgroup and ...
-\renewcommand\lstinline[1][]{%
-    \leavevmode\bgroup
-        \def\lst@boxpos{b}\let\lst@ifflexible\iftrue
-        \lsthk@PreSet\lstset{#1}%
-        \lsthk@TextStyle \lst@Init\relax
-        \everypar{}\let\lsthk@Endgroup\@empty
-        \let\lst@newlines\@empty \let\lst@breakcurrindent\z@
-        \lstinline@}
-%% 17) Add switch to distinguish text and display style listings.
-\lst@AddToHook{TextStyle}{\let\lst@iftextstyle\iftrue}
-\lst@AddToHook{DisplayStyle}{\let\lst@iftextstyle\iffalse}
-\let\lst@iftextstyle\iffalse
-% ... back to a):
-\def\lst@InputListing#1{%
-    \begingroup
-    \lsthk@PreSet \gdef\lst@intname{#1}%
-    \expandafter\lstset\expandafter{\lst@set}%
-    \lst@ifprint
-        \par % inserted to switch to vmode
-        \lst@Init\relax \let\lst@gobble\z@
-        \lst@SkipToFirst \input{#1}\lst@DeInit
-    \else
-        \begin{center}%
-        \footnotesize --- Listing of #1 has been skipped. ---
-        \end{center}%
-    \fi
-    \endgroup}
-\def\lst@Init#1{%
-    \begingroup
-    \ifx\lst@float\relax\else
-        \edef\@tempa{\noexpand\@float{lstlisting}[\lst@float]}%
-        \expandafter\@tempa
-    \fi
-    \ifhmode\ifinner \lst@boxtrue \fi\fi
-    \lst@ifbox
-        \lsthk@BoxUnsafe
-        \hbox to\z@\bgroup
-             $\if t\lst@boxpos \vtop
-        \else \if b\lst@boxpos \vbox
-        \else \vcenter \fi\fi
-        \bgroup
-    \else
-%% 17) Don't check for vertical mode, use \lst@iftextstyle.
-        \lst@iftextstyle\else
-\lst@EveryDisplay
-            \par\penalty-50\relax
-            \vspace\lst@aboveskip
-        \fi
-    \fi
-    \normalbaselines
-    \abovecaptionskip\lst@abovecaption\relax
-    \belowcaptionskip\lst@belowcaption\relax
-    \lst@MakeCaption t%
-    \lsthk@PreInit \lsthk@Init
-    \everypar{\lsthk@EveryLine\lsthk@EveryPar}%
-    \lsthk@InitVars
-    \lsthk@InitVarsBOL
-    \lst@Let{13}\lst@MProcessListing
-    \let\lst@Backslash#1%
-    \lst@EnterMode{\lst@Pmode}{\lst@SelectCharTable}}
-%%
-%% 16) Adjust \lst@DeInit accordingly.
-\def\lst@DeInit{%
-    \lst@PrintToken \lst@EOLUpdate
-    \lst@RemoveNewLine\@empty
-    \lst@RemoveNewLine{%
-        \lst@ifshowlines
-            \lst@TrackNewLines
-        \else
-            \setbox\@tempboxa\vbox{\lst@TrackNewLines}%
-        \fi}%
-%% 17) Don't check for vertical mode, use \lst@iftextstyle.
-    \lst@iftextstyle\else
-        \par\removelastskip
-    \fi
-    \everypar{}\lsthk@ExitVars \lsthk@DeInit
-    \lst@MakeCaption b%
-    \lst@ifbox
-        \egroup $\hss \egroup
-        \vrule\@width\lst@maxwidth\@height\z@\@depth\z@
-    \else
-%% check for vertical mode.
-        \ifvmode
-            \par\penalty-50\vspace\lst@belowskip
-        \fi
-    \fi
-    \ifx\lst@float\relax\else
-        \expandafter\end@float
-    \fi
-    \endgroup}
-%%
-%% b) Define key, the material is inserted above.
-\lst@Key{everydisplay}{}{\def\lst@EveryDisplay{#1}}
-%%
-%% c) New key sets value of continue key.
-\lst@Key{nolol}{false}[t]{\lstKV@SetIf{#1}\lst@ifnolol}
-\lst@AddToHook{PreInit}{\lst@ifcontinue\else \lst@SetIfContinue \fi}
-\def\lst@SetIfContinue{\let\lst@ifcontinue\lst@ifnolol}
-%%
-\endinput
-%%
-%% End of file `lstpatch.sty'.
+%%
+%% This is file `lstpatch.sty', generated manually.
+%%
+%% Please read the software license in listings.dtx or listings.dvi.
+%%
+%% (w)(c) 2002 Carsten Heinz
+%%
+%% This file is distributed under the terms of the LaTeX Project Public
+%% License from CTAN archives in directory  macros/latex/base/lppl.txt.
+%% Either version 1.0 or, at your option, any later version.
+%%
+%% Send comments and ideas on the package, error reports and additional
+%% programming languages to <[email protected]>.
+%%
+%% This patch file will remove the following bugs from the listings package.
+%% Each item contains the bug finder with date of report and first bug fix
+%% version, a short description of the problem, and the reason for the bug
+%% in parenthesis.
+%%
+%%  1) Jochen Schneider, 2002/04/03, 1.0a (2002/04/05)
+%%
+%%     undefined control sequence \lst@CommentB with HTML, XML, tcl
+%%     (I didn't renamed them to \lst@DefDelimB|E)
+%%
+%%  2) Michael Niedermair, 2002/04/07, 1.0b
+%%
+%%     undefined control sequence \lst@commentmode with XML
+%%     (mode not defined any more)
+%%
+%%  3) Carsten Heinz, 2002/04/08, 1.0b
+%%
+%%     bad PODs (investigating bugs 1 and 2)
+%%     (definition doesn't use 1.0 style)
+%%
+%%  4) Peter Bartke, 2002/04/10, 1.0b
+%%
+%%     various problems with fancyvrb interface: string ".5" at beginning
+%%     of first line when using lineskip; ditto "perhaps a missing \item
+%%     error"; wrong placed characters , and - when using fancyvrb
+%%     (bad use of \strip@pt; TeX is not in vertical mode when leaving
+%%     Verbatim; bad `noligs' handling)
+%%
+%%  5) Rolf Niepraschk, 2002/04/12, 1.0b
+%%
+%%     \RequirePackage is missing keywordstyle when near the top of a page
+%%     (\lst@lastother not saved away across page breaks)
+%%
+%%  6) Peter Ruckdeschel, 2002/04/12, 1.0b
+%%     Timothy Van Zandt analyzed and fixed the bug
+%%
+%%     incompatibility with seminar class
+%%     (bad assignment of \lst@do@noligs in \lst@SelectCharTable)
+%%
+%%  7) Rene H. Larsen, 2002/04/12, 1.0b
+%%
+%%     \lstinputlistings and texcl conflict
+%%     (^^M not active to reenter modes)
+%%
+%%  8) Carsten Heinz, 2002/04/15, 1.0b (2002/04/15)
+%%
+%%     gobble doesn't always work (investigating problem with VTeX)
+%%     (\lst@BOLGobble@ must test against \lst@Process{FormFeed|Tabulator}X)
+%%
+%%  9) Peter Bartke, 2002/04/17, 1.0c
+%%
+%%     TeX capacity exceeded with fancyvrb
+%%     (\let\lst@entermodes\@empty must stay in \lstFV@VerbatimBegin)
+%%
+%% 10) Svend Tollak Munkejord, 2002/04/17, 1.0c
+%%     Heiko Oberdiek analyzed and fixed the bug
+%%
+%%     package incompatible with Lucida .fd files
+%%     (parentheses have active catcodes when reading the file)
+%%
+%% 11) Carsten Hamm, 2002/04/19, 1.0c (2002/04/24)
+%%
+%%     wrong frame rules with breaklines and xleftmargin>0pt
+%%     (missing \kern-\lst@xleftmargin in \lst@discretionary)
+%%
+%% 12) Michael Niedermair, 2002/05/14, 1.0d
+%%
+%%     backgroundcolor take effect on bottom captions
+%%     (wrong order of \everypar{} and \lsthk@ExitVars in \lst@DeInit)
+%%
+%% 13) Georg Rehm, 2002/05/14, 1.0d
+%%
+%%     bad baselineskip with captionpos=b
+%%     (missing \normalbaselines)
+%%
+%% 14) Herfried Karl Wagner, 2002/05/11, 1.0d
+%%
+%%     undefined control sequence \lst@entermodes
+%%     (\output called before first \lst@EnterMode)
+%%
+%% 15) Peter K\"oller, 2002/05/24, 1.0d
+%%
+%%     XML keywords don't have keywordstyle
+%%     (missing \ifx... in implementation of contentsstyle)
+%%
+%% 16) Stephen Reindl, 2002/05/28, 1.0d
+%%
+%%     \inaccessible using Cobol
+%%     (\lst@Delim@option didn't enclose option in [])
+%%
+%% 17) Stephen Reindl, 2002/06/04, 1.0d (2002/06/12)
+%%
+%%     frames not deactivated for text style listings
+%%
+%% 18) Carsten Heinz, 2002/07/27, 1.0e (2002/07/31)
+%%
+%%     broken keywordcomments
+%%     (\lst@KCpost inside group level 2; bad \lst@BeginComment call)
+%%
+%% 19) Kris Luyten, 2002/07/30, 1.0f (2002/08/03)
+%%
+%%     Undefined control sequence \lst@thestyle
+%%     (undefined \lst@directives after _loading_ C)
+%%
+%% 20) Kris Luyten, 2002/08/03, 1.0g (2002/08/06)
+%%
+%%     Undefined control sequence \lst@thestyle
+%%     (side effect of 19-bugfix on \lst@ProvideFamily)
+%%
+%% 21) Venkatesh Prasad Ranganath, 2002/08/31, 1.0h
+%%
+%%     Undefined control sequence \thelstnumber with 0.21-option
+%%     (\let must be changed to a \def inition)
+%%
+%% 22) Fermin Reig, 2002/09/04, 1.0h (2002/09/09)
+%%
+%%     Bad top frame inside figure+centering
+%%     (reset of leftskip, rightskip and parfillskip comes too late)
+%%
+%% 23) Hermann H\"uttler, 2002/10/05, 1.0i (2002/10/13)
+%%
+%%     C++-string "... \\" does not end with second double quote
+%%     (missing \let\lst@lastother\@empty in old fix)
+%%
+%%
+%% Moreover the following functionality is added.
+%%
+%%  a) option "final" (Rolf Niepraschk, Enrico Straube)
+%%
+%%  b) keys "fvcmdparams" and "morefvcmdparams" (Denis Girou)
+%%
+%%  c) key "contentstyle" (Peter K\"oller)
+%%
+%%  d) key "numberfirstline" (Georg Rehm)
+%%
+%%
+\ProvidesFile{lstpatch.sty}[2002/10/13 1.0i (Carsten Heinz)]
+\lst@CheckVersion{1.0}
+{\typeout{^^J%
+    ***^^J%
+    *** This is a patch for `listings.sty' version 1.0, but^^J%
+    *** you're using version \lst@version.^^J%
+    ***^^J
+    *** Patch file not loaded.^^J%
+    ***^^J}%
+    \endinput
+}
+%
+% 1) Define the missing control sequences. (Not needed any more.)
+\def\lstpatch@comments{%
+    \global\let\lst@CommentB\lst@DefDelimB
+    \global\let\lst@CommentE\lst@DefDelimE}
+%
+% 2) Define  \lst@commentmode.
+\lst@NewMode\lst@commentmode
+%
+% 3) Introduce \lst@ifxpodcomment as master-clause and define 1.0 style
+%    contents for SelectCharTable.
+\def\lstpatch@pod{%
+\lst@Key{podcomment}{false}[t]{\lstKV@SetIf{##1}\lst@ifxpodcomment}%
+\lst@AddToHookExe{SetLanguage}{\let\lst@ifxpodcomment\iffalse}%
+\lst@AddToHook{SelectCharTable}%
+    {\lst@ifxpodcomment
+         \lst@CArgX =\relax\lst@DefDelimB{}{}%
+           {\ifnum\@tempcnta=\z@
+                \lst@ifprintpod\else
+                    \def\lst@bnext{\lst@BeginDropOutput\lst@PODmode}%
+                    \expandafter\expandafter\expandafter\@gobblethree
+                \fi
+            \else
+               \expandafter\@gobblethree
+            \fi}%
+           \lst@BeginComment\lst@PODmode{{\lst@commentstyle}}% modified
+         \lst@CArgX =cut\^^M\relax\lst@DefDelimE
+           {\lst@CalcColumn}%
+           {\ifnum\@tempcnta=\z@\else
+                \expandafter\@gobblethree
+            \fi}%
+           {}%
+           \lst@EndComment\lst@PODmode
+	 \fi}%
+}
+%
+% 4) Redefine lineskip like podcomment above and don't use \strip@pt
+%    together with \divide.
+\def\lstpatch@lineshape{%
+\lst@Key{lineskip}{\z@}{\def\lst@xlineskip{##1\relax}}
+\lst@AddToHook{Init}
+    {\ifdim\z@=\lst@xlineskip\else
+         \@tempdima\baselineskip
+         \advance\@tempdima\lst@xlineskip
+         \multiply\@tempdima\@cclvi
+         \divide\@tempdima\baselineskip\relax
+         \multiply\@tempdima\@cclvi
+         \edef\baselinestretch{\strip@pt\@tempdima}%
+         \selectfont
+     \fi}%
+% 11) Add \kern-\lst@xleftmargin.
+\gdef\lst@discretionary{%
+    \discretionary{\let\space\lst@spacekern\lst@prebreak}%
+                  {\llap{\lsthk@EveryLine
+                   \kern\lst@breakcurrindent\kern-\lst@xleftmargin}%
+                   \let\space\lst@spacekern\lst@postbreak}{}}%
+}
+% Back to 4): Insert \par for vertical mode.
+\def\lstpatch@fancyvrb{%
+\gdef\lstFV@VerbatimEnd{%
+    \ifx\FancyVerbFormatLine\lstFV@FancyVerbFormatLine
+        \global\setbox\lstFV@gtempboxa\box\@tempboxa
+        \global\let\@gtempa\FV@ProcessLine
+        \lst@mode\lst@Pmode
+        \lst@DeInit
+        \let\FV@ProcessLine\@gtempa
+        \setbox\@tempboxa\box\lstFV@gtempboxa
+        \par % modified
+    \fi}%
+% 9) Redefined \lstFV@VerbatimBegin removed.
+% b) Refine conversion definitions to either work as usual or to ...
+\gdef\lst@FVConvert{\@tempcnta\z@ \lst@FVConvertO@}%
+\gdef\lst@FVConvertO@{%
+    \ifcase\@tempcnta \expandafter
+        \futurelet\expandafter\@let@token\expandafter\lst@FVConvert@@
+    \else
+% append arguments as they are.
+        \expandafter\lst@FVConvertO@a
+    \fi}%
+\gdef\lst@FVConvertO@a##1{%
+    \lst@lAddTo\lst@arg{{##1}}\advance\@tempcnta\m@ne
+    \lst@FVConvertO@}%
+% Here, ...
+\gdef\lst@FVConvert@##1{%
+    \ifx \@nil##1\else
+       \if\relax\noexpand##1%
+          \lst@lAddTo\lst@arg{\lst@OutputLostSpace\lst@PrintToken##1}%
+% ... actually here, we check for commands with arguments and set the
+% value of \@tempcnta as required.
+          \def\lst@temp####1,##1####2,####3####4\relax{%
+              \ifx####3\@empty \else \@tempcnta####2\relax \fi}%
+          \expandafter\lst@temp\lst@FVcmdparams,##1\z@,\@empty\relax
+       \else
+          \lccode`\~=`##1\lowercase{\lst@lAddTo\lst@arg~}%
+       \fi
+       \expandafter\lst@FVConvertO@
+    \fi}
+% Eventually we define user keys to adjust \lst@FVcmdparams. The base
+% set of commands and parameter numbers was provided by Denis Girou.
+\lst@Key{fvcmdparams}%
+% D.G. suggestion begin - 2002/05/31
+    {\overlay\@ne}%
+% D.G. suggestion end
+    {\def\lst@FVcmdparams{,##1}}%
+\lst@Key{morefvcmdparams}\relax{\lst@lAddTo\lst@FVcmdparams{,##1}}%
+}
+%
+% 5) Extend \lst@SaveToken to save \lst@lastother.
+\def\lst@SaveToken{%
+    \global\let\lst@gthestyle\lst@thestyle
+    \global\let\lst@glastother\lst@lastother
+    \xdef\lst@RestoreToken{\noexpand\lst@token{\the\lst@token}%
+                           \noexpand\lst@length\the\lst@length\relax
+                           \noexpand\let\noexpand\lst@thestyle
+                                        \noexpand\lst@gthestyle
+                           \noexpand\let\noexpand\lst@lastother
+                                        \noexpand\lst@glastother}%
+}
+%
+% 6) Assign \lst@do@noligs to \do.
+\def\lst@SelectCharTable{%
+    \lst@SelectStdCharTable
+    \lst@ifactivechars
+        \catcode9\active \catcode12\active \catcode13\active
+        \@tempcnta=32\relax
+        \@whilenum\@tempcnta<128\do
+            {\catcode\@tempcnta\active\advance\@tempcnta\@ne}%
+    \fi
+    \lst@ifec \lst@DefEC \fi
+    \let\do\lst@do@noligs \verbatim@nolig@list % modified
+    \lsthk@SelectCharTable
+    \lst@DeveloperSCT
+    \ifx\lst@Backslash\relax\else
+        \lst@LetSaveDef{"5C}\lsts@backslash\lst@Backslash
+    \fi}
+% 4)+6) And we need correct versions of \lst@do@noligs[@].
+\def\lst@do@noligs#1{%
+    \begingroup \lccode`\~=`#1\lowercase{\endgroup
+    \lst@do@noligs@~}}
+\def\lst@do@noligs@#1{%
+    \expandafter\expandafter\expandafter\def
+    \expandafter\expandafter\expandafter#1%
+    \expandafter\expandafter\expandafter{\expandafter\lst@NoLig#1}}
+%
+% 7) Make ^^M active.
+\def\lst@InputListing#1{%
+    \begingroup
+      \lsthk@PreSet \gdef\lst@intname{#1}%
+      \expandafter\lstset\expandafter{\lst@set}%
+      \lsthk@DisplayStyle
+      \catcode\active=\active % added
+      \lst@Init\relax \let\lst@gobble\z@
+      \lst@SkipToFirst
+      \lst@ifprint \def\lst@next{\input{#1}}%
+             \else \let\lst@next\@empty \fi
+      \lst@next
+      \lst@DeInit
+    \endgroup}
+%
+% 8) Replace \lst@Process{FormFeed|Tabulator}.
+\def\lst@ProcessFormFeedX{\lst@ProcessFormFeed}
+\def\lst@ProcessTabulatorX{\lst@ProcessTabulator}
+\def\lst@BOLGobble@#1{%
+    \let\lst@next#1%
+    \ifx \lst@next\relax\else
+    \ifx \lst@next\lst@MProcessListing\else
+    \ifx \lst@next\lst@ProcessFormFeedX\else
+    \ifx \lst@next\lstenv@backslash
+        \let\lst@next\lstenv@BOLGobble@@
+    \else
+        \let\lst@next\lst@BOLGobble@@
+        \ifx #1\lst@ProcessTabulatorX
+            \advance\@tempcnta-\lst@tabsize\relax
+            \ifnum\@tempcnta<\z@
+                \lst@length-\@tempcnta \lst@PreGotoTabStop
+            \fi
+        \else
+            \advance\@tempcnta\m@ne
+        \fi
+    \fi \fi \fi \fi
+    \lst@next}
+%
+% 10) Add some \@makeother to \lst@nfss@catcodes.
+\def\lst@nfss@catcodes{%
+    \lst@makeletter
+        ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\relax
+    \@makeother (\@makeother )\@makeother ,\@makeother :\@makeother &%
+    \@makeother 0\@makeother 1\@makeother 2\@makeother 3\@makeother 4%
+    \@makeother 5\@makeother 6\@makeother 7\@makeother 8\@makeother 9%
+    \@makeother =\lsts@nfss@catcodes}
+%
+% 12) and 13) Deactivate \everypar and use normal baseline parameters.
+\lst@AddToHook{DeInit}{\everypar{}\normalbaselines}
+%
+% 14) Define \lst@entermodes.
+\let\lst@entermodes\@empty
+%
+% 16) Insert [ and ] in replacement text.
+\def\lst@Delim@option[#1]{\def\lst@arg{[#1]}\lst@Delim@delim}
+%
+% 17) Just empty `frame' and top, right, bottom, and left shape.
+\lst@AddToHook{TextStyle}
+   {\let\lst@frame\@empty
+    \let\lst@frametshape\@empty
+    \let\lst@framershape\@empty
+    \let\lst@framebshape\@empty
+    \let\lst@framelshape\@empty}
+%
+% 18) Execute \lst@BeginKC and \lst@BeginKCS outside the two groups.
+%     Modify third argument to \lst@BeginComment to work properly.
+\def\lstpatch@keywordcomments{%
+\gdef\lst@BeginKC{\aftergroup\aftergroup\aftergroup\lst@BeginKC@}%
+\gdef\lst@BeginKC@{%
+    \lst@ResetToken
+    \lst@BeginComment\lst@KCmode{{\lst@commentstyle}\lst@modetrue}\@empty}%
+\gdef\lst@BeginKCS{\aftergroup\aftergroup\aftergroup\lst@BeginKCS@}%
+\gdef\lst@BeginKCS@{%
+    \lst@ResetToken
+    \lst@BeginComment\lst@KCSmode{{\lst@commentstyle}\lst@modetrue}\@empty}%
+\gdef\lst@EndKC{\lst@SaveToken \lst@LeaveMode \lst@RestoreToken
+    \let\lst@thestyle\lst@identifierstyle \lsthk@Output}% renew style selection
+}
+%
+% 19) Init \lst@directives.
+\def\lstpatch@directives{%
+    \global\let\lst@directives\@empty}
+%
+% 20) Use new prefix for a family -- the now initialized \lst@directives
+%     clashes with the default.
+\def\lstpatch@keywords{%
+\gdef\lst@ProvideFamily##1{%
+    \@ifundefined{lstfam@##1\ifnum\@tempcnta=\@ne\else \the\@tempcnta \fi}%
+    {\@namedef{lstfam@##1\ifnum\@tempcnta=\@ne\else \the\@tempcnta \fi}{}%
+     \expandafter\expandafter\expandafter\lst@ProvideFamily@
+         \csname\@lst @##1@data\endcsname
+         {\ifnum\@tempcnta=\@ne\else \the\@tempcnta \fi}}%
+    {}}%
+}
+% 21) Define \thelstnumber every listing via \def.
+\@namedef{lstpatch@021}{%
+    \lst@AddToHook{Init}{\def\thelstnumber{\thelstlabel}}%
+}
+% 22) Reset the registers in PreInit hook
+\lst@AddToHook{PreInit}
+  {\rightskip\z@ \leftskip\z@ \parfillskip\z@ plus 1fil}
+%
+% 23) Add \let\lst@lastother\@empty
+\lst@AddToHook{SelectCharTable}{%
+    \lst@ifbstring
+        \lst@CArgX \\\\\relax \lst@CDefX{}%
+           {\lst@ProcessOther\lstum@backslash
+            \lst@ProcessOther\lstum@backslash
+            \let\lst@lastother\@empty}%
+           {}%
+    \fi}
+%
+% a) Just declare the option.
+\DeclareOption{final}{\let\lst@ifdraft\iffalse}
+%
+% c) Define contentstyle and use it.
+\def\lstpatch@html{%
+\lst@Key{contentstyle}{}{\def\lst@contentstyle{##1}}%
+\lst@AddToHook{Init}%
+    {\ifx\lst@DefInside\@empty\else
+         \let\lst@tagstyle\lst@identifierstyle
+         \let\lst@identifierstyle\lst@contentstyle
+     \fi}%
+\lst@AddToHook{Output}%
+    {\ifnum\lst@mode=\lst@insidemode
+% 15) Check for keywordstyle.
+     \ifx\lst@thestyle\lst@gkeywords@sty\else
+         \lst@ifusekeysinside \let\lst@thestyle\lst@tagstyle
+                   \else \let\lst@thestyle\lst@gkeywords@sty \fi
+     \fi\fi}%
+\lst@AddToHook{OutputOther}%
+    {\lst@ifmode\else \ifnum\lst@mode=\lst@insidemode\else
+     \ifx\lst@DefInside\@empty\else
+         \let\lst@thestyle\lst@contentstyle
+     \fi
+     \fi\fi}%
+}
+%
+% d) Define key and adjust \lst@SkipOrPrintLabel.
+\def\lstpatch@labels{%
+\lst@Key{numberfirstline}{f}[t]{\lstKV@SetIf{##1}\lst@ifnumberfirstline}%
+\gdef\lst@numberfirstlinefalse{\let\lst@ifnumberfirstline\iffalse}
+\gdef\lst@SkipOrPrintLabel{%
+    \ifnum\lst@skipnumbers=\z@
+        \global\advance\lst@skipnumbers-\lst@stepnumber\relax
+        \lst@PlaceNumber
+        \lst@numberfirstlinefalse
+    \else
+        \lst@ifnumberfirstline
+            \lst@PlaceNumber
+            \lst@numberfirstlinefalse
+        \fi
+    \fi
+    \global\advance\lst@skipnumbers\@ne}%
+}
+%%
+\endinput
+%%
+%% End of file `lstpatch.sty'.

Some files were not shown because too many files changed in this diff