From e25615ef467a9a1aa75b5141bb676a4354262b2a Mon Sep 17 00:00:00 2001 From: guido Date: Thu, 26 Aug 2004 07:58:43 +0000 Subject: [PATCH] kdoc removed git-svn-id: https://svn.dealii.org/trunk@9583 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/auto/.cvsignore | 1 - deal.II/doc/auto/Makefile.in | 143 -- deal.II/doc/auto/cvs-backlog/.cvsignore | 1 - deal.II/doc/auto/kdoc/.cvsignore | 1 - deal.II/doc/auto/kdoc/Makefile.in | 109 -- deal.II/doc/auto/kdoc/base/.cvsignore | 1 - deal.II/doc/auto/kdoc/basic/.cvsignore | 1 - deal.II/doc/auto/kdoc/dof/.cvsignore | 1 - deal.II/doc/auto/kdoc/grid/.cvsignore | 1 - deal.II/doc/auto/kdoc/lac/.cvsignore | 1 - deal.II/doc/auto/kdoc/multigrid/.cvsignore | 1 - deal.II/doc/auto/kdoc/numerics/.cvsignore | 1 - deal.II/doc/auto/kdoc/transport/.cvsignore | 1 - deal.II/doc/auto/latex/.cvsignore | 1 - deal.II/doc/auto/latex/docxx.sty | 1042 ------------ deal.II/doc/auto/latex/footer.tex | 6 - deal.II/doc/auto/latex/header.tex | 41 - deal.II/doc/auto/scripts/addclasses_db.pl | 42 - deal.II/doc/auto/scripts/cvs2html | 1785 -------------------- deal.II/doc/auto/scripts/index.pl | 51 - deal.II/doc/auto/scripts/kdoc/Ast.pm | 93 - deal.II/doc/auto/scripts/kdoc/kdoc | 1308 -------------- deal.II/doc/auto/scripts/kdoc/kdocHTML.pm | 939 ---------- deal.II/doc/auto/scripts/kdoc/kdocMan.pm | 379 ----- deal.II/doc/auto/scripts/kdoc/kdocTeX.pm | 291 ---- deal.II/doc/auto/scripts/process-tex | 10 - deal.II/doc/auto/scripts/validate-xrefs.pl | 104 -- 27 files changed, 6355 deletions(-) delete mode 100644 deal.II/doc/auto/.cvsignore delete mode 100644 deal.II/doc/auto/Makefile.in delete mode 100644 deal.II/doc/auto/cvs-backlog/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/Makefile.in delete mode 100644 deal.II/doc/auto/kdoc/base/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/basic/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/dof/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/grid/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/lac/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/multigrid/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/numerics/.cvsignore delete mode 100644 deal.II/doc/auto/kdoc/transport/.cvsignore delete mode 100644 deal.II/doc/auto/latex/.cvsignore delete mode 100644 deal.II/doc/auto/latex/docxx.sty delete mode 100644 deal.II/doc/auto/latex/footer.tex delete mode 100644 deal.II/doc/auto/latex/header.tex delete mode 100644 deal.II/doc/auto/scripts/addclasses_db.pl delete mode 100644 deal.II/doc/auto/scripts/cvs2html delete mode 100644 deal.II/doc/auto/scripts/index.pl delete mode 100644 deal.II/doc/auto/scripts/kdoc/Ast.pm delete mode 100644 deal.II/doc/auto/scripts/kdoc/kdoc delete mode 100644 deal.II/doc/auto/scripts/kdoc/kdocHTML.pm delete mode 100644 deal.II/doc/auto/scripts/kdoc/kdocMan.pm delete mode 100644 deal.II/doc/auto/scripts/kdoc/kdocTeX.pm delete mode 100644 deal.II/doc/auto/scripts/process-tex delete mode 100644 deal.II/doc/auto/scripts/validate-xrefs.pl diff --git a/deal.II/doc/auto/.cvsignore b/deal.II/doc/auto/.cvsignore deleted file mode 100644 index f3c7a7c5da..0000000000 --- a/deal.II/doc/auto/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/deal.II/doc/auto/Makefile.in b/deal.II/doc/auto/Makefile.in deleted file mode 100644 index 486dca0fe1..0000000000 --- a/deal.II/doc/auto/Makefile.in +++ /dev/null @@ -1,143 +0,0 @@ -# Makefile,v 1.8 1999/04/15 17:36:14 wolf Exp - - -# Let ./configure insert whether MG shall be documented -DOCXX = @docxx@ - - -# specify which are the include files that a specific documentation libary -# depends upon -kdoc.base = $(shell echo ../../base/include/base/*.h) -kdoc.lac = $(shell echo ../../lac/include/lac/*.h) -kdoc.grid = $(shell echo ../../deal.II/include/grid/*.h) -kdoc.dof = $(shell echo ../../deal.II/include/dofs/*.h) \ - $(shell echo ../../deal.II/include/fe/*.h) -kdoc.numerics = $(shell echo ../../deal.II/include/numerics/*.h) -kdoc.multigrid= $(shell echo ../../deal.II/include/multigrid/*.h) - -# for latex-output, we join the different libraries of the -# deal.II library into just one file -kdoc.dealII = $(kdoc.grid) $(kdoc.dof) $(kdoc.numerics) - -# include global paths and variables -include ../../common/Make.global_options - - - -# by default: make library doc and generate an index of all names -default: kdoc kdoc/names.html - -# alternatively: do the above and also generate a backlog of CVS -# changes in the last 100 days -all: default cvslog - - -################################################################################# -## targets for cvslog generated HTML output -################################################################################# - -cvslog: - cd ../.. ; $(PERL) doc/auto/scripts/cvs2html -o doc/auto/cvs-backlog/newdeal -a -k -D 100 - - - -################################################################################# -## targets for kdoc generated HTML output -################################################################################# - -# Make in kdoc subdirectory - -kdoc: - @cd kdoc ; $(MAKE) - -# Will not work for kdoc2 - -kdoc/names.html: kdoc - @cd kdoc ; $(PERL) ../scripts/index.pl *.kdoc > names.html - - - - -################################################################################# -## targets for DOC++ generated latex output -################################################################################# - -# generate the input file for doc++ -%.doc++: Makefile - @echo $(kdoc.$(subst .doc++,,$(subst latex/,,$@))) | \ - $(PERL) -pi -e 's# #\n#g; s#\.\./\.\./#//\@Include: ../../../#g;' > \ - $@ - - -# generate one of the latex-output files; this needs the respective -# include file for DOC++ -# -# delete the .doc++ files immediately again, since they are no more -# used and since this forces make to re-make the .tex-file each time -# we ask for it; the right way to do so would be to use dependencies, -# but it is hard to compute them from the '%'-sign used in the rule -ifeq ($(DOCXX),) -%.tex: - @echo --------------------------------------------- - @echo "Doc++ was not found at ./configure time!" - @echo "Can't generate printable documentation." - @echo --------------------------------------------- - false -else -%.tex: %.doc++ - $(DOCXX) -p -t -u -o $@ -ep a4wide $< - rm $^ -endif - - -# generate temporary files from the doc++-latex-output which have -# headers and footers stripped and label names replaced by something -# file dependent -%.tex1: %.tex - cat $< | \ - $(PERL) scripts/process-tex | \ - $(PERL) -pi -e 's/cxx\./$(basename $(notdir $@)).cxx./g;' > $@ - -latex/deal_II_technical_reference.tex: latex/base.tex1 latex/lac.tex1 latex/dealII.tex1 - @cat latex/header.tex > $@ - @echo "\\\\chapter{Base library}" >> $@ - @echo "\\\\def\\\\presentlib{base}" >> $@ - @cat latex/base.tex1 >> $@ - @echo "\\\\chapter{Linear algebra library}" >> $@ - @echo "\\\\def\\\\presentlib{lac}" >> $@ - @cat latex/lac.tex1 >> $@ - @echo "\\\\chapter{deal.II library}" >> $@ - @echo "\\\\def\\\\presentlib{dealII}" >> $@ - @cat latex/dealII.tex1 >> $@ - @cat latex/footer.tex >> $@ - rm $^ - - - -# generate the latex-processed files from these -%.dvi: %.tex - cd latex ; latex $(notdir $<) - cd latex ; latex $(notdir $<) - -rm $(subst .tex,.log,$<) - -rm $(subst .tex,.aux,$<) - -rm $(subst .tex,.toc,$<) - - -# generate postscript files from a latex output file -%.ps: %.dvi - cd latex ; dvips $(notdir $<) -o $(notdir $@) - - - - -################################################################################# -## administrativa -################################################################################# -clean: - -rm -f kdoc/names.html kdoc/*.kdoc kdoc/*/*.html cvs-backlog/*.html \ - latex/base.* latex/lac.* latex/dealII.* \ - latex/deal_II_technical_reference.* \ - *.doc++ - - -.PHONY: default all kdoc $(kdoc.library-files) $(kdoc.library-files.rerun) doc++ clean diff --git a/deal.II/doc/auto/cvs-backlog/.cvsignore b/deal.II/doc/auto/cvs-backlog/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/cvs-backlog/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/.cvsignore b/deal.II/doc/auto/kdoc/.cvsignore deleted file mode 100644 index 13c297cb1e..0000000000 --- a/deal.II/doc/auto/kdoc/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.kdoc names.html multigrid Makefile diff --git a/deal.II/doc/auto/kdoc/Makefile.in b/deal.II/doc/auto/kdoc/Makefile.in deleted file mode 100644 index 93d866239f..0000000000 --- a/deal.II/doc/auto/kdoc/Makefile.in +++ /dev/null @@ -1,109 +0,0 @@ -############################################################ -# $Id$ -############################################################ - -D = @DEAL2_DIR@ -multigrid = @enablemultigrid@ -kdocdir = @kdocdir@ -kdocversion = @kdocversion@ - - -include $D/common/Make.global_options - -ifeq ($(kdocversion),1) -KDOCFLAGS=-I$(kdocdir) $(kdocdir)/kdoc -a -p -L $D/doc/auto/kdoc -else -KDOCFLAGS=-I$(kdocdir) $(kdocdir)/kdoc -a -q --private \ - --html-logo ../../../pictures/deal.II_3.0_1.150.jpg \ - --libdir $D/doc/auto/kdoc --name -endif - -kdoc.base = $(shell echo $D/base/include/base/*.h) -kdoc.lac = $(shell echo $D/lac/include/lac/*.h) -kdoc.grid = $(shell echo $D/deal.II/include/grid/*.h) -kdoc.dof = $(shell echo $D/deal.II/include/dofs/*.h) \ - $(shell echo $D/deal.II/include/fe/*.h) -kdoc.numerics = $(shell echo $D/deal.II/include/numerics/*.h) -kdoc.multigrid= $(shell echo $D/deal.II/include/multigrid/*.h) - - -# specify the names of the resulting doc libraries -kdoc.library-files = base.kdoc \ - lac.kdoc \ - grid.kdoc \ - dof.kdoc \ - numerics.kdoc \ - multigrid.kdoc - -kdoc: kdoc-installed $(kdoc.library-files) - - -# check whether kdoc is already installed. if not, then try to do -# so. also install afresh if not up-to-date with the sources -kdoc-installed: - cd $(kdocdir:kdoc/bin=kdoc) ; $(MAKE) - - - -# now for the generation of the documentation of the sublibraries. -# first let kdoc generate the whole thing, then loop over all output -# files and cut some paths in the output to a reasonable -# length. before everything else, make sure that kdoc is installed - -base.kdoc: kdoc-installed base-html-files base-fix-files -lac.kdoc: kdoc-installed lac-html-files lac-fix-files -grid.kdoc: kdoc-installed grid-html-files grid-fix-files -dof.kdoc: kdoc-installed dof-html-files dof-fix-files -numerics.kdoc: kdoc-installed numerics-html-files numerics-fix-files -multigrid.kdoc: kdoc-installed multigrid-html-files multigrid-fix-files - - -# description of how to make the output of kdoc: first list which -# files each output dir depends upon, then state the general rule of -# how to make the output. let everything depend on kdoc being already -# installed (we need to re-state this dependency here as we could -# otherwise get problems when using parallel builds) -# -# note that when running kdoc, we discard the forward-declarations -# file as this brings kdoc into trouble -base-html-files: kdoc-installed $(kdoc.base) -lac-html-files: kdoc-installed $(kdoc.lac) -grid-html-files: kdoc-installed $(kdoc.grid) -dof-html-files: kdoc-installed $(kdoc.dof) -numerics-html-files: kdoc-installed $(kdoc.numerics) -multigrid-html-files: kdoc-installed $(kdoc.multigrid) -%-html-files: - @$(PERL) $(KDOCFLAGS) $(subst -html-files,,$@) \ - --outputdir $(subst -html-files,,$@) \ - $(filter-out %forward_declarations.h, $(^:kdoc-installed=)) - - -# now how to fix the files: -# fix the #include<...> directives to only contain the -# paths that are needed inside the programs instead of the global -# paths -# -# also fix include paths in the files header-list.htmlbase-fix-files: base-html-files -%-fix-files: - @echo Fixing include paths - @for htmlfile in $(subst -fix-files,,$@)/*html ; do \ - $(PERL) -pi -e 's,(#include <)$D/?[^/]+/include/,$$1,g; \ - s,

Source: $D/?(.*)

,

Source: $$1

,g;' "$$htmlfile" ;\ - done - @for htmlfile in $(subst -fix-files,,$@)/header-list.html $(subst -fix-files,,$@)/all-globals.html ; do \ - case "$$htmlfile" in \ - *header-list*) \ - $(PERL) -pi -e 's,$D/?[^/]+/include/(.*?) - $D/?[^/]+/include/(.*?),$$1 - $$2,g; \ - s,(
)$D/?[^/]+/include/,$$1,g;' \ - "$$htmlfile" ;\ - ;; \ - *all-globals*) \ - $(PERL) -pi -e 's,()$D/?[^/]+/include/,$$1,g;' \ - "$$htmlfile" ;\ - ;; \ - *) \ - echo "*******Unknown file $$htmlfile? Something must have gone wrong!*********" ; \ - ;; \ - esac ; \ - done - diff --git a/deal.II/doc/auto/kdoc/base/.cvsignore b/deal.II/doc/auto/kdoc/base/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/base/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/basic/.cvsignore b/deal.II/doc/auto/kdoc/basic/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/basic/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/dof/.cvsignore b/deal.II/doc/auto/kdoc/dof/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/dof/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/grid/.cvsignore b/deal.II/doc/auto/kdoc/grid/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/grid/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/lac/.cvsignore b/deal.II/doc/auto/kdoc/lac/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/lac/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/multigrid/.cvsignore b/deal.II/doc/auto/kdoc/multigrid/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/multigrid/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/numerics/.cvsignore b/deal.II/doc/auto/kdoc/numerics/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/numerics/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/kdoc/transport/.cvsignore b/deal.II/doc/auto/kdoc/transport/.cvsignore deleted file mode 100644 index 2d19fc766d..0000000000 --- a/deal.II/doc/auto/kdoc/transport/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -*.html diff --git a/deal.II/doc/auto/latex/.cvsignore b/deal.II/doc/auto/latex/.cvsignore deleted file mode 100644 index 73d843709d..0000000000 --- a/deal.II/doc/auto/latex/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -deal_II_technical_reference.* \ No newline at end of file diff --git a/deal.II/doc/auto/latex/docxx.sty b/deal.II/doc/auto/latex/docxx.sty deleted file mode 100644 index dedf958258..0000000000 --- a/deal.II/doc/auto/latex/docxx.sty +++ /dev/null @@ -1,1042 +0,0 @@ -% docxx.sty -% -% Copyright (c) 1996, 2000 Roland Wunderling, Malte Zoeckler -% Copyright (c) 1999 Dragos Acostachioaie -% -% This file is part of DOC++. -% -% DOC++ is free software; you can redistribute it and/or -% modify it under the terms of the GNU General Public -% License as published by the Free Software Foundation; either -% version 2 of the license, or (at your option) any later version. -% -% This program is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -% General Public License for more details. -% -% You should have received a copy of the GNU General Public -% License along with this program; if not, write to the Free -% Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -% -% -% Switch off special characters except {}\ for the rest of the text. -% -\def\cxxtilde{{\tt\~\relax}} -\addtolength{\parskip}{6pt} - -\catcode`\,=\active% -\def,{\char`\,\penalty-8\ } -%\def,{++ } -\catcode`\,=12 - -\def\<{{\tt <}} -\def\>{{\tt >}} -\def\TEX{} -\def\cxxExceptionsStr{} -\def\cxxParameterStr{} -\def\cxxReturnStr{} -\def\cxxSeeStr{} -\def\cxxAuthorStr{} -\def\cxxVersionStr{} -\def\cxxFileStr{} -\def\cxxExceptions#1{\def\cxxExceptionsStr{#1}} -\def\cxxParameter#1{\def\cxxParameterStr{#1}} -\def\cxxReturn#1{\def\cxxReturnStr{#1}} -\def\cxxSee#1{\def\cxxSeeStr{#1}} -\def\cxxAuthor#1{\def\cxxAuthorStr{#1}} -\def\cxxVersion#1{\def\cxxVersionStr{#1}} -\def\cxxFile#1{\def\cxxFileStr{#1}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Define ... to do verbatim listing -% -\catcode`\=\active -\catcode`\=\active -{\obeyspaces\gdef {\ }} - -\def\ccverbatim{\strut\begingroup - \catcode`\\=12 \catcode`\{=12 - \catcode`\}=12 \catcode`\$=12 - \catcode`\&=12 \catcode`\#=12 - \catcode`\%=12 \catcode`\~=12 - \catcode`\_=12 \catcode`\^=12 - \catcode`\|=12 \catcode`\/=12 - \obeyspaces\tt} -\def{\let\par=\endgraf \ccverbatim \parskip=0pt \ccfinish} -{\catcode`\=0 catcode`\=12 -gdefccfinish#1{#1endgroup}} - -% -% Definition of structuring comands. -% -\newcommand{\Section}[1]{\section{#1}} -\newcommand{\SubSection}[1]{\subsection{#1}} -\newcommand{\SubSubSection}[1]{\subsubsection{#1}} -\newcommand{\Paragraph}[1]{\paragraph{#1}} - -\newcommand{\Ref}[1]{{\bf #1} ($\rightarrow$ \ref{#1})} -\newcommand{\URL}[2][]{% - \def\name{#1}% - \def\empty{}% - \ifx\name\empty% - {\tt #2}% - \else% - #1 ({\tt #2})% - \fi% -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% printing line #1 of code #2 -% -\newdimen\cxxcodewidth -\cxxcodewidth=\textwidth -\advance\cxxcodewidth by -21pt - -\def\cxxCodeLine#1#2{% -{\hbox to 20pt{\tiny\hss#1}\parbox[t]{\cxxcodewidth}{\small#2}}% -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for listing manual entries -% -\newdimen\cxxIdWidth -\newdimen\cxxTypeWidth -\newdimen\cxxProtoWidth -\newdimen\cxxMemoWidth -\newdimen\cxxPageWidth - -\cxxIdWidth=0.1\textwidth -\cxxTypeWidth=0.15\textwidth -\cxxProtoWidth=0.25\textwidth -\cxxMemoWidth=0.43\textwidth - -\cxxPageWidth=\textwidth -\advance\cxxPageWidth by-\cxxIdWidth -\advance\cxxPageWidth by-\cxxTypeWidth -\advance\cxxPageWidth by-\cxxProtoWidth -\advance\cxxPageWidth by-\cxxMemoWidth - -\newdimen\cxxProtoMemoWidth -\cxxProtoMemoWidth=\cxxProtoWidth -\advance\cxxProtoMemoWidth by\cxxMemoWidth - -\def\cxxStrut{\vrule width0pt height0pt depth9pt} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% 1: type -% 2: name -% 3: args -% 4: memo -% 5: id -\def\cxxitem#1#2#3#4#5{\noindent{% - \setbox5\hbox{#5 }% - \ifdim\wd5>\cxxIdWidth% - \setbox5\hbox{\hbox to \cxxIdWidth{\hss#5}}% - \else - \setbox5\hbox{\hbox to \cxxIdWidth{#5\hss}}% - \fi% - \setbox1\hbox{{% - \catcode`\&=4% - \catcode`\_=8% - \def{\ccverbatim \ccfinish}#1% - }}% - \setbox2\hbox{{% - \catcode`\&=4% - \catcode`\_=8% - \def{\ccverbatim \ccfinish}\textbf{#2} #3% - }}% - \setbox4\hbox{\parbox[t]{\cxxMemoWidth}{{% - \raggedright\sloppy% - \catcode`\&=4% - \catcode`\_=8% - \def{\ccverbatim \ccfinish}{\em #4} - \cxxStrut% - \def\page{#5}% - \ifx\page\empty% - \hss% - \else% - \ \dotfill% - \hbox to 0pt{\hbox to \cxxPageWidth{\hss% - \pageref{\presentlib.cxx.#5}% - }\hss}% - \fi% - }}}% - % - \ifdim\wd1>\cxxTypeWidth% - \hbox to \hsize{\unhbox5\hbox to \cxxTypeWidth{\unhbox1\hss}\hss}\\\nopagebreak% - \setbox5\hbox{\hskip\cxxIdWidth}% - \setbox1\hbox{\hskip\cxxTypeWidth}% - \else% - \setbox1\hbox{\hbox to \cxxTypeWidth{\unhbox1\hss}}% - \fi% - \ifdim\wd2>\cxxProtoWidth% - \ifdim\wd2<\cxxProtoMemoWidth% - \def\tmp{#4}% - \ifx\tmp\empty% - \def\tmp{#5}% - \ifx\tmp\empty% - \hbox to \hsize{\unhbox5\unhbox1\unhbox2\hss\cxxStrut}\\% - \else% - \hbox to \hsize{\unhbox5\unhbox1\unhbox2 - \dotfill\hbox to \cxxPageWidth{\hss\pageref{\presentlib.cxx.#5}}% - \cxxStrut}\\% - \fi% - \else% - \hbox to \hsize{\unhbox5\unhbox1\unhbox2\hss}\\\nopagebreak% - \hbox to \hsize{% - \hskip\cxxIdWidth% - \hskip\cxxTypeWidth% - \hskip\cxxProtoWidth% - \unhbox4\hss% - }\\% - \fi% - \else% - \hbox to \hsize{% - \unhbox5% - \unhbox1% - \parbox[t]{\cxxProtoMemoWidth}{% - \setbox255\hbox{\textbf{#2} (}% - \hangindent=\wd255\hangafter=1% - \raggedright\sloppy% - {\catcode`\&=4\catcode`\_=8% - \def{\ccverbatim \ccfinish}\textbf{#2} #3\strut}% - }\hss% - }\\\nopagebreak% - \hbox to \hsize{% - \hskip\cxxIdWidth% - \hskip\cxxTypeWidth% - \hskip\cxxProtoWidth% - \unhbox4\hss% - }\\% - \fi% - \else% - \hbox to \hsize{% - \unhbox5% - \unhbox1% - \hbox to \cxxProtoWidth{\unhbox2\hss}% - \unhbox4\hss% - }\\% - \fi% -}} - - -\newdimen\cxxtypestart -\cxxtypestart=0.05\textwidth -%\advance\cxxtypestart by \labelsep - -\newdimen\cxxnamestart -\cxxnamestart=\cxxtypestart -\advance\cxxnamestart by 0.25\textwidth - -\newdimen\cxxargsstart -\cxxargsstart=\cxxnamestart -\advance\cxxargsstart by 0.2\textwidth -\newdimen\cxxargswidth -\cxxargswidth=\textwidth -\advance\cxxargswidth by -\cxxargsstart -\advance\cxxargswidth by -\spaceskip - -\newdimen\cxxmemostart -\cxxmemostart=\cxxargsstart -\advance\cxxmemostart by 0.12\textwidth - -\newenvironment{cxxlist}[1]{ -\begingroup -\catcode`\,=\active% -\paragraph{#1}\strut\smallskip\\ -}{ -\endgroup -} - -\newenvironment{cxxnames}{\begin{cxxlist}{Names}}{\end{cxxlist}} -\newenvironment{cxxpublic}{\begin{cxxlist}{Public Members}}{\end{cxxlist}} -\newenvironment{cxxprivate}{\begin{cxxlist}{Private Members}}{\end{cxxlist}} -\newenvironment{cxxprotected}{\begin{cxxlist}{Protected Members}}{\end{cxxlist}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Numbered Frame box -% -\newlength{\cxxBoxLen}% -\newlength{\cxxBoxHt}% -\newlength{\cxxBoxDp}% -\newlength{\cxxSideHt}% -\newlength{\cxxSideLen}% -\newlength{\cxxTitleLen}% -\def\empty{} -\def\idPos{1cm} - -% -% box with id and name [optional width] -% -\newcommand{\aBox}[3][1pt]{{% -\small% -\def\width{#1}% -\def\num{#2}% -\def\name{#3}% -\setbox0\hbox{\hskip\width{ \strut\name\strut} \hskip\width}% -% -\setlength{\cxxBoxLen}{\wd0}% -\addtolength{\cxxBoxLen}{\width}% -\addtolength{\cxxBoxLen}{\width}% -\setbox2\hbox{\normalsize\strut\rule{\cxxBoxLen}{\width}}% -% -\ifx\num\empty% - \setbox1\hbox{\strut}% -\else% - \setbox1\hbox{\rule{\idPos}{\width} { \sf\bf\strut #2 } }% -\fi% -\addtolength{\cxxBoxLen}{-\wd1}% -\setbox1\hbox{\unhbox1\rule{\cxxBoxLen}{\width}}% -% -\setlength{\cxxSideHt}{\dp0}% -\addtolength{\cxxSideHt}{\width}% -\setlength{\cxxSideLen}{\dp0}% -\addtolength{\cxxSideLen}{\ht0}% -\addtolength{\cxxSideLen}{\dp1}% -\addtolength{\cxxSideLen}{\width}% -\addtolength{\cxxSideLen}{\width}% -\setbox3\hbox{\hbox to 0pt{\hss\rule[-\cxxSideHt]{\width}{\cxxSideLen}}}% -\setbox4\hbox{\hbox to 0pt{\rule[-\cxxSideHt]{\width}{\cxxSideLen}\hss}}% -% -\setlength{\cxxBoxHt}{\dp1}% -\addtolength{\cxxBoxHt}{1pt}% -\setlength{\cxxBoxDp}{\ht2}% -\addtolength{\cxxBoxDp}{-\width}% -\addtolength{\cxxBoxDp}{1pt}% -% -\setlength{\cxxBoxLen}{\ht3}% -\addtolength{\cxxBoxLen}{\ht1}% -% -\vbox to \cxxBoxLen{% -\hbox{\unhbox1}% -\vskip-\cxxBoxHt% -\hbox{\hskip\width\unhbox3\unhbox0\unhbox4}% -%\vskip-\ht2% -\vskip-\cxxBoxDp% -\hbox{\unhbox2}% -\vss% -}% -}} - -% -% box with id and name [optional width] of size #4 -% -\newcommand{\sizeBox}[4][3pt]{{% - \setbox0\hbox{ }% - \setlength{\cxxSideLen}{#4}% - \addtolength{\cxxSideLen}{-\wd0}% - \addtolength{\cxxSideLen}{-\wd0}% - \addtolength{\cxxSideLen}{-#1}% - \addtolength{\cxxSideLen}{-#1}% - \addtolength{\cxxSideLen}{-#1}% - \addtolength{\cxxSideLen}{-#1}% - \aBox[#1]{#2}{\hbox to \cxxSideLen{#3}}% -}} - -% -% centered box with id and name [optional width] of size #4 -% -\newcommand{\cBox}[4][3pt]{{% -\setbox0\hbox{\aBox[#1]{#2}{#3}}% -\ifdim\wd0<#4% - \sizeBox[#1]{#2}{\hss#3\hss}{#4}% -\else% - \setlength{\cxxSideLen}{\wd0}% - \advance\cxxSideLen by -#4% - \hskip -0.5\cxxSideLen% - \unhbox0% -\fi% -}} - -% -% right expanding box with id and name [optional width] of size at least #4 -% -\newcommand{\rBox}[4][3pt]{{% -\setbox0\hbox{\aBox[#1]{#2}{#3}\hss}% -\ifdim\wd0>#4% - \unhbox0% -\else% - \sizeBox[#1]{#2}{\hss#3\hss}{#4}% -\fi% -}} - -% -% left expanding box with id and name [optional width] of size at least #4 -% -\newcommand{\lBox}[4][3pt]{{% -\setbox0\hbox{\aBox[#1]{#2}{#3}\hss}% -\ifdim\wd0>#4% - \setlength{\cxxSideLen}{\wd0}% - \advance\cxxSideLen by -#4% - \hskip -\cxxSideLen% - \unhbox0% -\else% - \sizeBox[#1]{#2}{\hss#3\hss}{#4}% -\fi% -}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Pagestyle for documentation. -% -\newsavebox{\cxxHeadName} -\newcommand{\ps@docxx}{% - \renewcommand{\@oddhead}{\headlinetext}% - \renewcommand{\@evenhead}{\headlinetext}% - \renewcommand{\@oddfoot}{\footlinetext}% - \renewcommand{\@evenfoot}{\footlinetext}% -} -\newcommand{\makeHeadLine}[2]{ - \global\sbox{\cxxHeadName}{\vbox to 0pt{\vss% - \hbox to \textwidth{% - \hbox to 0pt{\strut\hbox to 1cm{\hss}\quad#1\hss}% - \hfil#2\hfil% - }% - \vskip 1pt% - \hbox to \textwidth{\hrulefill}% - }}% -} -\newcommand{\headlinetext}{\usebox{\cxxHeadName}} -\providecommand{\cxxCopyright}{% - \vtop{% - \hbox to \textwidth{{ - \tiny\sf This page was generated with the help of DOC++ - \hss}}% - \vskip -20pt - \hbox to \textwidth{ - \hbox{{\tiny\sf http://www.linuxsupportline.com/~doc++ }} - \hss}% - }% -} -\def\footlinetext{\hbox to \textwidth{ - \vtop{% - \hbox to \textwidth{\hrulefill}% - \vskip -20pt% - \cxxCopyright% - }% - \hss\vtop{\vskip 10pt\hbox{\today\hspace*{3cm}\textrm{\thepage} }} -}} -\pagestyle{docxx} - -\def\cxxTitle#1#2#3#4#5{\noindent{% - \thispagestyle{empty} - \vfill - \begin{center} - \Huge\bf - \catcode`\&=4% - \catcode`\_=8% - \def{\ccverbatim \ccfinish}#1% - \strut\\ - \def{\ccverbatim \ccfinish}#2% - \strut\\ - \def{\ccverbatim \ccfinish}#3% - \strut\\ - \end{center} - \if\cxxVersionStr\empty% - \else% - \begin{center} - \small\sf - --- Version \cxxVersionStr\ --- - \end{center} - \global\def\cxxVersionStr{} - \fi - \vfill - \large - \begin{center} - \Large\em - \def{\ccverbatim \ccfinish}#4% - \end{center} - \vfill - \if\cxxAuthorStr\empty% - \else% - \begin{center} - \sf\cxxAuthorStr - \end{center} - \global\def\cxxAuthorStr{} - \vfill - \fi - \pagebreak - \makeHeadLine{}{#2} -}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for contents -% -\newcounter{cxxContentsDepth} -\setcounter{cxxContentsDepth}{0} -\newdimen\cxxContentsLengthIncr -\cxxContentsLengthIncr=18pt -\newdimen\cxxContentsLength -\cxxContentsLength=\textwidth -\advance\cxxContentsLength by -\cxxContentsLengthIncr - -\makeHeadLine{}{Contents} - -\newenvironment{cxxContents}{ - \ifcase \value{cxxContentsDepth} - \vskip 40pt - \hbox to \hsize{\hskip 8pt\hskip\cxxContentsLengthIncr\Huge\bf Contents\hss} - \vskip 40pt - \bf - \else % >1 - \rm - \fi - \begingroup - \addtocounter{cxxContentsDepth}{1} - \advance\cxxContentsLengthIncr by 8pt - \advance\cxxContentsLength by -\cxxContentsLengthIncr -}{ - \addtocounter{cxxContentsDepth}{-1} - \advance\cxxContentsLength by \cxxContentsLengthIncr - \advance\cxxContentsLengthIncr by -8pt - \ifcase \value{cxxContentsDepth} - \vskip 12pt - \or - \vskip 9pt - \else - \vskip 3pt - \fi - \endgroup -} - -\newcommand{\cxxContentsEntry}[3]{{ - \def\emtpty{} - \def\memo{#3} - \ifx\memo\empty - \setbox0\hbox{\parbox[t]{\cxxContentsLength}{\strut#2 \dotfill }} - \else - \setbox0\hbox{\parbox[t]{\cxxContentsLength}{\strut#2 --- {\em #3} \dotfill }} - \fi - \setbox1\hbox{\vtop{\vskip\dp0\vskip-\ht0\vskip-1.5pt\hbox to 20pt{\hss\rm \pageref{\presentlib.cxx.#1}}}} - \hbox to \textwidth{% - \hss\hbox to \cxxContentsLengthIncr{#1\hss}% - \unhbox0\unhbox1% - } -}} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for class graph -% -\newdimen\cxxClassGraphShift -\newdimen\cxxClassGraphLength -\newdimen\cxxClassGraphHeight -\newdimen\cxxClassGraphDepth -\newdimen\cxxClassGraphTotV -\setlength{\cxxClassGraphLength}{0.23\hsize} -\setlength{\cxxClassGraphShift}{30pt} -\setbox0\vbox{\aBox[5pt]{\strut}{\strut}} -\setlength{\cxxClassGraphHeight}{\ht0} -\setlength{\cxxClassGraphDepth}{\dp0} -\addtolength{\cxxClassGraphDepth}{10pt} -\setlength{\cxxClassGraphTotV}{\dp0} -\addtolength{\cxxClassGraphTotV}{\ht0} - -\newenvironment{cxxInheritance}{ - \par\medskip - \begingroup - \newcommand{\cxxCGSpace}[1]{% - \vtop to \cxxClassGraphTotV{\hbox to \cxxClassGraphShift{% - \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth% - ##1}}% - } - \newcommand{\cxxSlashHline}{% - \vrule width 0.1\cxxClassGraphShift height 3.5pt depth -3pt% - \vrule width 0.1\cxxClassGraphShift height 0pt depth 0pt% - \vrule width 0.1\cxxClassGraphShift height 3.5pt depth -3pt% - \vrule width 0.1\cxxClassGraphShift height 0pt depth 0pt% - \vrule width 0.1\cxxClassGraphShift height 3.5pt depth -3pt% - } - \newcommand{\cxxDotHline}{% - \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt% - \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt% - \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt% - \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt% - \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt% - \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt% - \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt% - \vrule width 0.05\cxxClassGraphShift height 0pt depth 0pt% - \vrule width 0.06\cxxClassGraphShift height 3.5pt depth -3pt% - } - \newcommand{\cxxHline}{% - \vrule width 0.5\cxxClassGraphShift height 3.5pt depth -3pt% - } - \newcommand{\cxxVup}{\hbox to 0pt{\hss% - \vrule width 0.5pt height \cxxClassGraphHeight depth -3pt% - \hss}} - \newcommand{\cxxVlow}{\hbox to 0pt{\hss% - \vtop to 0pt{\vskip-3pt% - \hbox{\vrule width 0.5pt height 13pt depth \cxxClassGraphDepth}% - \vss}% - \hss}} - \newcommand{\cxxLinkUp}{\hbox to 0pt{\hss\hskip 0.5\cxxClassGraphShift% - \raise0.7\cxxClassGraphHeight\hbox to 0pt{\hss\textbf{\symbol{94}}\hss}}}% - \newcommand{\cxxLinkDown}{\hbox to 0pt{\hss\hskip 0.5\cxxClassGraphShift% - \raise-0.6\cxxClassGraphHeight\vbox to 0pt{% - \hbox to 0pt{\hss\textbf{$\lor$}\hss}\vss}}}% - \newcommand{\cxxLinkLeft}{\hbox to 0pt{\hss\hskip 0.0\cxxClassGraphShift% - \raise0.0\cxxClassGraphHeight\hbox to 0pt{\textbf{\tt\<}\hss}}}% - \newcommand{\cxxLinkRight}{\hbox to 0pt{\hss\hskip 1.0\cxxClassGraphShift% - \raise0.0\cxxClassGraphHeight\hbox to 0pt{\hss\textbf{\tt\>}}}}% - \newcommand{\cxxInheritanceEntry}[5][]{ - \hbox to \hsize{\hss% - \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth% - ##2% - \def\tmp{##1}% - \ifx\tmp\empty% - \def\tmp{##5}% - \ifx\tmp\empty% - \rBox[1pt]{##3}{##4}{0.24\hsize}% - \else% - \lBox[1pt]{##3}{##4}{0.24\hsize}% - \fi% - \else% - \cBox[2pt]{##3}{##4}{0.24\hsize}% - \fi% - ##5\hfill% - }\vskip-1pt - } - \newcommand{\cxxNone}{\cxxCGSpace{\hss}} - \newcommand{\cxxLong}{\cxxCGSpace{\hss\cxxVup\cxxVlow\hss}} -% - \newcommand{\cxxPubLeft}{\cxxCGSpace{\cxxHline\cxxVup\cxxVlow\hss}} - \newcommand{\cxxProLeft}{\cxxCGSpace{\cxxSlashHline\cxxVup\cxxVlow\hss}} - \newcommand{\cxxPriLeft}{\cxxCGSpace{\cxxDotHline\cxxVup\cxxVlow\hss}} - \newcommand{\cxxPubleft}{\cxxCGSpace{\cxxHline\cxxVlow\hss}} - \newcommand{\cxxProleft}{\cxxCGSpace{\cxxSlashHline\cxxVlow\hss}} - \newcommand{\cxxPrileft}{\cxxCGSpace{\cxxDotHline\cxxVlow\hss}} - \newcommand{\cxxLastPubLeft}{\cxxCGSpace{\cxxHline% - \cxxVup\cxxLinkDown\cxxVlow\hss}} - \newcommand{\cxxLastProLeft}{\cxxCGSpace{\cxxSlashHline% - \cxxVup\cxxLinkDown\cxxVlow\hss}} - \newcommand{\cxxLastPriLeft}{\cxxCGSpace{\cxxDotHline% - \cxxVup\cxxLinkDown\cxxVlow\hss}} - \newcommand{\cxxLastPubleft}{\cxxCGSpace{\cxxHline% - \cxxVlow\cxxLinkDown\hss}} - \newcommand{\cxxLastProleft}{\cxxCGSpace{\cxxSlashHline% - \cxxVlow\cxxLinkDown\hss}} - \newcommand{\cxxLastPrileft}{\cxxCGSpace{\cxxDotHline% - \cxxVlow\cxxLinkDown\hss}} - \newcommand{\cxxLinkPubLeft}{\cxxCGSpace{\cxxLinkLeft\cxxHline\cxxVup\cxxVlow\hss}} - \newcommand{\cxxLinkProLeft}{\cxxCGSpace{\cxxLinkLeft\cxxSlashHline% - \cxxVup\cxxVlow\hss}} - \newcommand{\cxxLinkPriLeft}{\cxxCGSpace{\cxxLinkLeft\cxxDotHline% - \cxxVup\cxxVlow\hss}} - \newcommand{\cxxLinkPubleft}{\cxxCGSpace{\cxxLinkLeft\cxxHline\cxxVlow\hss}} - \newcommand{\cxxLinkProleft}{\cxxCGSpace{\cxxLinkLeft\cxxSlashHline\cxxVlow\hss}} - \newcommand{\cxxLinkPrileft}{\cxxCGSpace{\cxxLinkLeft\cxxDotHline\cxxVlow\hss}} -% - \newcommand{\cxxPubRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxHline}} - \newcommand{\cxxProRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxSlashHline}} - \newcommand{\cxxPriRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxDotHline}} - \newcommand{\cxxPubright}{\cxxCGSpace{\hss\cxxVup\cxxHline}} - \newcommand{\cxxProright}{\cxxCGSpace{\hss\cxxVup\cxxSlashHline}} - \newcommand{\cxxPriright}{\cxxCGSpace{\hss\cxxVup\cxxDotHline}} - - \newcommand{\cxxLinkPubRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow\cxxHline\cxxLinkRight}} - \newcommand{\cxxLinkProRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow% - \cxxSlashHline\cxxLinkRight}} - \newcommand{\cxxLinkPriRight}{\cxxCGSpace{\hss\cxxVup\cxxVlow% - \cxxDotHline\cxxLinkRight}} - \newcommand{\cxxLinkPubright}{\cxxCGSpace{\hss\cxxVup\cxxHline\cxxLinkRight}} - \newcommand{\cxxLinkProright}{\cxxCGSpace{\hss\cxxVup\cxxSlashHline\cxxLinkRight}} - \newcommand{\cxxLinkPriright}{\cxxCGSpace{\hss\cxxVup\cxxDotHline\cxxLinkRight}} - - \newcommand{\cxxFirstPubRight}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxVlow\cxxHline}} - \newcommand{\cxxFirstProRight}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxVlow% - \cxxSlashHline}} - \newcommand{\cxxFirstPriRight}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxVlow\cxxDotHline}} - \newcommand{\cxxFirstPubright}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxHline}} - \newcommand{\cxxFirstProright}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxSlashHline}} - \newcommand{\cxxFirstPriright}{\cxxCGSpace{\hss\cxxVup\cxxLinkUp\cxxDotHline}} -}{ - \endgroup -} - -\newenvironment{cxxClassGraph}{ - \begin{cxxInheritance} - \newcommand{\cxxClassGraphEntry}[4]{ - \hbox to \hsize{\hss% - \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth% - ##1% - \def\tmp{##4}% - \rBox[1pt]{##2}{##3}{0.24\hsize}% - ##4% - \hskip\cxxClassGraphShift\dotfill% - \hbox to \cxxClassGraphShift{\hss\pageref{\presentlib.cxx.##2}}% - }\vskip-1pt - } - \newcommand{\cxxClassGraphEntryUnknownPackage}[3]{ - \hbox to \hsize{\hss% - \vrule width0pt height \cxxClassGraphHeight depth \cxxClassGraphDepth% - ##1% - \def\tmp{##3}% - \rBox[1pt]{}{##2}{0.24\hsize}% - ##3% - \hskip\cxxClassGraphShift\hfill% - }\vskip-1pt - } - \clearpage - \pagebreak\strut - \makeHeadLine{}{Class Graph} - \vskip 20pt - \hbox to \hsize{\Huge\bf \quad Class Graph\hss} - \vskip 40pt -} -{ - \end{cxxInheritance} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for generic manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newdimen\cxxgenericstart -\cxxgenericstart=\labelwidth -\advance\cxxgenericstart by \labelsep -\newdimen\cxxgenericwidth -\cxxgenericwidth=\textwidth -\advance\cxxgenericwidth by -\cxxgenericstart - -\newcounter{cxxDepth} -\setcounter{cxxDepth}{0} - -\newlength{\cxxSize} -\newenvironment{cxxgeneric}[5]{ -% -% some local definitions -% - \def\empty{} - \def\type{#1} - \def\args{#3} - \def\memo{#4} - \def\id {#5} -% -% pagebreak ? -% -\ifcase \value{cxxDepth} - \clearpage % 0 - \pagebreak - \makeHeadLine{#5}{#2} - \setlength{\cxxSize}{2pt} -\or % 1 - \strut\bigskip\bigskip\goodbreak% - \setlength{\cxxSize}{1pt} -\else % >2 - \strut\bigskip\bigskip\goodbreak% - \setlength{\cxxSize}{0.5pt} -\fi -\addtocounter{cxxDepth}{1} -% -% write synopsis -% -\setbox0\hbox{ }% -\setbox1\hbox{\strut\large #1 {\bf#2} }% -\setbox3\hbox{\strut\large #1 {\bf#2} #3}% -% -% box with id and name [optional width] over entire page width -% -\setlength{\cxxSideLen}{\hsize}% -\addtolength{\cxxSideLen}{-4\cxxSize}% -\addtolength{\cxxSideLen}{-2\wd0}% -\setlength{\cxxTitleLen}{\cxxSideLen}% -\addtolength{\cxxTitleLen}{-8\wd0}% -\hbox{\aBox[\cxxSize]{\id}{\vbox{\vskip 1.5\parskip% - \hbox to \cxxSideLen{\strut% - \hbox to 4\wd0{}% - \ifdim\wd3<\cxxTitleLen% - \parbox[b]{\cxxTitleLen}{% - \begin{raggedright} - \noindent\large #1 {\bf#2} #3 - \end{raggedright} - } - \else% - \ifdim\wd1>0.7\cxxTitleLen% - \parbox[b]{\cxxTitleLen}{% - \begin{raggedright} - \noindent\large #1 {\bf#2} #3 - \end{raggedright} - } - \else% - \addtolength{\cxxTitleLen}{-\wd1}% - \unhbox1% - \parbox[t]{\cxxTitleLen}{% - \advance\lineskip 7pt% - \begin{raggedright} - \noindent\large\strut #3 - \end{raggedright} - } - \fi% - \fi% - \hss\strut% - }\vskip\parskip}% -}} -% \parbox[b]{\cxxSideLen}{\begingroup -% \catcode`\&=12% -% \catcode`\_=12% -% \begin{flushleft} -% \quad\large% -% \ifx\type\empty -% \ifx\args\empty -% \strut{\bf #2}\\ -% \else -% \strut{\bf #2}\ \args -% \fi -% \else -% \strut\type\ {\bf #2}\ \args -% \fi -% \end{flushleft} -% \endgroup}}}% -\ifx\memo\empty\else - \vskip 10pt - \begin{flushright} - \it\memo - \end{flushright} -\fi -\label{\presentlib.cxx.\id} -\begingroup -\def\cxxExceptionsStr{} -\def\cxxParameterStr{} -\def\cxxReturnStr{} -\def\cxxSeeStr{} -\def\cxxAuthorStr{} -\def\cxxVersionStr{} -\def\cxxFileStr{} -\def\cxxExceptions##1{\def\cxxExceptionsStr{##1}} -\def\cxxParameter##1{\def\cxxParameterStr{##1}} -\def\cxxReturn##1{\def\cxxReturnStr{##1}} -\def\cxxSee##1{\def\cxxSeeStr{##1}} -\def\cxxAuthor##1{\def\cxxAuthorStr{##1}} -\def\cxxVersion##1{\def\cxxVersionStr{##1}} -\def\cxxFile##1{\def\cxxFileStr{##1}} -}{ -\endgroup -\addtocounter{cxxDepth}{-1} -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for function manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxfunction}[5]{ -\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5} -\renewenvironment{cxxnames}{\begin{cxxlist}{Arguments}}{\end{cxxlist}} -}{ -\end{cxxgeneric} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxentry}[5]{ -\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for union manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxunion}[5]{ -\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5} -\renewenvironment{cxxnames}{\begin{cxxlist}{Members}}{\end{cxxlist}} -}{ -\end{cxxgeneric} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for typedef manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxtypedef}[5]{ -\begin{cxxgeneric}{#1}{#2}{}{#4}{#5} -\renewenvironment{cxxnames}{\begin{cxxlist}{Members}}{\end{cxxlist}} -}{ -\end{cxxgeneric} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for macro manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxmacro}[5]{ -\begin{cxxgeneric}{\#define}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for class manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxclass}[5]{ -\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for namespace manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxnamespace}[5]{ -\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for interface manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxinterface}[5]{ -\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5}}{\end{cxxgeneric}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for variable manual entries -% arguments are: -% #1 type -% #2 name -% #3 args -% #4 memo -% #5 number -% -\newenvironment{cxxvariable}[5]{ -\begin{cxxgeneric}{#1}{#2}{#3}{#4}{#5} -\renewenvironment{cxxnames}{\begin{cxxlist}{Names}}{\end{cxxlist}} -}{ -\end{cxxgeneric} -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for documentation -% -\newenvironment{cxxdocumentation}{ -% -% switch on special characters for documentation section -% -\begingroup -\catcode`\&=4 -\catcode`\_=8 -}{ -\endgroup -} - -\newenvironment{cxxdoc}{ -% -% switch on special characters for documentation section -% -\begin{cxxdocumentation} -\strut\\\noindent% -}{ -\smallskip -\def\empty{}% -\ifx\cxxReturnStr\empty\else - \noindent\hbox to 0.3\textwidth{{\bf Return Value:}\hss}% - \parbox[t]{0.7\textwidth}{\cxxReturnStr}\\ -\fi -\ifx\cxxParameterStr\empty\else - \noindent\hbox to 0.3\textwidth{{\bf Parameters:}\hss}% - \parbox[t]{0.7\textwidth}{\cxxParameterStr}\\ -\fi -\ifx\cxxExceptionsStr\empty\else - \noindent\hbox to 0.3\textwidth{{\bf Exceptions:}\hss}% - \parbox[t]{0.7\textwidth}{\cxxExceptionsStr}\\ -\fi -\ifx\cxxSeeStr\empty\else - \noindent\hbox to 0.3\textwidth{{\bf See Also:}\hss}% - \parbox[t]{0.7\textwidth}{\cxxSeeStr}\\ -\fi -\ifx\cxxAuthorStr\empty\else - \noindent\hbox to 0.3\textwidth{{\bf Author:}\hss}% - \parbox[t]{0.7\textwidth}{\cxxAuthorStr}\\ -\fi -\ifx\cxxVersionStr\empty\else - \noindent\hbox to 0.3\textwidth{{\bf Version:}\hss}% - \parbox[t]{0.7\textwidth}{\cxxVersionStr}\\ -\fi -\ifx\cxxFileStr\empty\else - \noindent\hbox to 0.3\textwidth{{\bf File:}\hss}% - \parbox[t]{0.7\textwidth}{\cxxFileStr}\\ -\fi -\end{cxxdocumentation} -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% environment for commented listing -% arguments are: -% #1 Section title -% -\newenvironment{cxximplementation}[1]{ -\goodbreak -\begin{cxxdocumentation} -}{ -\end{cxxdocumentation} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\cxxCodeLine#1{ -\strut\hbox to 20pt{\tiny\hss #1}\small -%\advance\leftmargin by 20pt -%\advance\textwidth by -20pt -\ccverbatim \parskip=0pt \cxxCodeFinish} -{\catcode`\=0 catcode`\=12 -gdefcxxCodeFinish#1{hbox{#1}endgroup}} diff --git a/deal.II/doc/auto/latex/footer.tex b/deal.II/doc/auto/latex/footer.tex deleted file mode 100644 index 0c436713c8..0000000000 --- a/deal.II/doc/auto/latex/footer.tex +++ /dev/null @@ -1,6 +0,0 @@ -\end{document} - -%%% Local Variables: -%%% mode: latex -%%% TeX-master: t -%%% End: diff --git a/deal.II/doc/auto/latex/header.tex b/deal.II/doc/auto/latex/header.tex deleted file mode 100644 index 99fa074f39..0000000000 --- a/deal.II/doc/auto/latex/header.tex +++ /dev/null @@ -1,41 +0,0 @@ -\documentclass{report} -\usepackage{a4wide} -\usepackage{graphicx} -\usepackage{times} -%\def\presentlib{} -\usepackage{docxx} -\setcounter{tocdepth}{0} -\begin{document} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%titlepage - -% this is what docxx.sty uses for headlines. disable -% it for the titlepage -\sbox{\cxxHeadName}{} - -\vspace*{3cm} - -\begin{center} - \textbf{\texttt{\Huge deal.II}} - - -\vspace*{1cm} - -\textbf{\huge Differential Equations Analysis Library} - -\vspace*{1cm} - -\textbf{\LARGE Technical Reference} - -\vspace*{1cm} - - {\Large \textsf{base}, \textsf{lac} and \texttt{deal.II} libraries} - -\vspace*{1.5cm} - -\includegraphics[width=.8\textwidth]{../../pictures/deal.eps} -\end{center} - - -\tableofcontents diff --git a/deal.II/doc/auto/scripts/addclasses_db.pl b/deal.II/doc/auto/scripts/addclasses_db.pl deleted file mode 100644 index c691322f46..0000000000 --- a/deal.II/doc/auto/scripts/addclasses_db.pl +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/local/bin/perl - -# Update Postgres database entries from kdoc sources - -use DBI; - -$db = DBI->connect("DBI:Pg:dbname=deal",undef,undef); - -die $DBI::errstr if (!$db); - -print "Connected\n"; - -$db->do("UPDATE classes SET persistent=FALSE;") - || die $db->errstr; - -while(<>) -{ - next unless(/=/); - next if (/\#/); - s/=.*//g; - chop; - print $_, " "; - - # Try to find class name - - $sth = $db->prepare("UPDATE classes set persistent=TRUE where name = '$_';") - || die $db->errstr; - $sth->execute || die $sth->errstr; - - $rows = $sth->rows; - $sth->finish; - - # Insert name if it did not exist. - - if ($rows == 0) - { - print "insert"; - - $db->do("INSERT INTO classes ( name, display, persistent, manually ) values ( '$_', TRUE, TRUE, FALSE);")|| die $db->errstr;; - } - print "\n"; -} diff --git a/deal.II/doc/auto/scripts/cvs2html b/deal.II/doc/auto/scripts/cvs2html deleted file mode 100644 index 2b20b2036e..0000000000 --- a/deal.II/doc/auto/scripts/cvs2html +++ /dev/null @@ -1,1785 +0,0 @@ -#!/usr/bin/perl -# -# Perl program to transform the 'cvs log' output to HTML -# -# Perl program to transform the 'cvs log' output to HTML. -# The HTML output will show the revision log history, -# differences between versions and enable a flexible -# configuration of the amount of information the user -# like to see from the CVS repository. -# cvs2html can be used for any type of cvs archive. - -# -# ** Note that the first line might be wrong depending ** -# ** on the location of your perl program. ** -# ** The program requires: ** -# ** perl version 5.003 or newer ** -# -# cvs2html should run on any Unix compatible machine -# with the above programs. -# Test machine: Linux RedHat 7.2 with Perl 5.6.0 -# -# Usage : -# -# type cvs2html with no arguments to display basic help -# or type cvs2html -h to get more help - -# Changelog -# Ver Date Who did it What happened -# ------------------------------------------------------------------------- -# 1.94 2002-06-25 Magnus Ahlman Added a option argument -R CVS Reposity -# specified in the cvsweb.conf -# so you can integrate with cvsweb -# -# 1.93 2002-05-25 John Hardin Patch against freezing problem -# with cvs log would report "nothing -# known about" -# -# 1.92 2002-03-25 Anna Jonna Typos removed -# Armannsdottir -# -# 1.91 2002-01-13 Jacob Sparre Andersen Major overhaul of the code -# and Peter Toft in order to generate HTML 4.0 -# compliant code. Many bugs corrected. -# -# 1.90 2001-09-07 Stefan Kost A few "cosmetical" corrections. -# -# 1.89 2001-09-06 Stefan Kost * "back to main" links in chronofile -# only if frames==1 -# * subs html_header/html_footer -# * $cvs2html_diff is now called $diffdirname -# (in preparation for more subdirs) -# and defaults to just "diff" -# * sub cvsrootinfo (with extended infos) -# * the ususal cosmetical fixes here and there -# * both halfs of diff output are now -# delimited by a small gap -# * entries in __rf-files are now sorted -# -# 1.88 2001-09-04 Peter Toft Kim Schulz means that that -# text in line 748 (previously 744) -# was adequite. Updated. -# -# 1.87 2001-08-30 Laurent Besson Bagged two bugs!! -# Stefan Kost * fixed empty output -# * copyright footer looks the same -# for all pages -# * chrono-file back-links go to -# "top" frame -# -# 1.86 2001-08-26 Stefan Kost Handling of verbosity level update -# -# 1.85 2001-08-24 Stefan Kost * handles "cvs connection refused" -# * find_alldirs, find_subdirs do not -# follow symlinks -# * new option -V -# * cleaned up code indentation -# * more comments -# -# 1.84 2001-07-14 Peter Toft Added links in the cronological file -# to the main page and removed a -# debug-printout statement. -# -# 1.83 2001-06-28 Grzegorz Pawelczak Patch to handle branches (fix) -# -# 1.82 2001-06-22 Grzegorz Pawelczak Patch to handle branches -# -# 1.81 2001-06-18 David Carson Minor update - added support -# for underscore in author-field -# -# 1.80 2001-05-31 Peter V. Pretsch Fixed the problem with missing -# right frames -# -# 1.79 2000-12-27 Peter Toft Peter made error in the Changelog :-) -# -# 1.78 2000-12-27 Peter Toft Error in making diff-directories -# corrected. Example included in help- -# description. -# Changed mkdir to perl-command. -# -# 1.77 2000-12-15 Peter Toft Hack to avoid generating the -# same diff-files over and over again. -# Renaming of the diff-files. -# Dumping the diff-files in a -# separate subdir. -# -# 1.76 2000-11-30 Jody Lewis Typo; The parent links in the -# lower left frame were incorrect -# -# 1.75 2000-11-04 Kirby Vandivort URL of cvs2html changed -# -# 1.73 2000-11-02 Peter Toft Clean up - deleted an old status line -# -# 1.72 2000-10-28 Peter Toft If basename() or dirname() adds -# a \n code, then cvs2html malfunctions -# This should solve the problem. -# -# 1.71 2000-10-26 Peter Toft Minor clean-up -# -# 1.70 2000-10-26 Jon Berndt Documentation problem -L option -# Peter Toft -L/-E option was not working -# Redefined -L and dumped the -E option -# -# 1.69 2000-09-29 Robert Merkle Support for users with 0-9 -# in name -# -# 1.68 2000-09-20 Wolfgang Bangerth Patch to avoid HTML syntax -# problems and link error. -# -# 1.67 2000-08-21 Kirby Vandivort Update to cvs2html to fix html -# markup display in cvs comments -# -# 1.66 2000-08-11 Kirby Vandivort Added support for an -# parameter -P controlled location -# of cvs -# -# 1.65 2000-06-24 Peter Toft Added support for filenames -# containing whitespaces - -# requested by John Stone -# -# 1.64 2000-06-11 Peter Toft Better documentation in the start -# of the program -# -# ---- ---------- -------------------- ------------------------------- -# -# This program is protected by the GPL, and all modifications of -# general interest can be emailed to Peter Toft -# -# The GPL can be found at http://www.gnu.org/copyleft/gpl.html -# -# Other people that have contributed directly or indirectly to cvs2html -# Henner Zeller -# Henning Niss -# Henrik Carlquist -# Tim Bradshaw -# David Miller -# David Carson -# Finn Aarup Nielsen -# Michael Krause -# Jim Phillips -# Jon S. Berndt -# Edward S. Marshall -# Curtis L. Olson -# Aubrey Jaffer -# Mark Cooke -# Carlo Wood -# Kirby Vandivort -# Dag Brück -# Wolfgang Bangerth -# Robert Merkle -# Jody Lewis -# Peter V. Pretsch -# Grzegorz Pawelczak -# Stefan Kost -# Anna Jonna Armannsdottir -# John Hardin -# Magnus Ahlman - -# -# Copyright under GPL 1997 - 2002 by -# Peter Toft (pto@sslug.dk) + the persons above -# -# Join the cvs2html mailing list -# by sending an email to , -# the contents of this mails is of no matter. -# You will receive an email than you need to reply to. -# -# If you want to unsubscribe from the list - write a mail to -# , and reply to the mail you get. -# In case of problems contact -# -# The URL of cvs2html is: - -$URL = "http://cvs.sslug.dk/cvs2html"; - -$cvs2html_version='$Id$'; - -require 'getopts.pl'; -require 'ctime.pl'; - -use File::Basename; -use File::Find; - -if($cvs2html_version =~ /^\$Id\: (\w+?),v (\d+?\.\d+?) /i) { - $version=$2; -} -else { - $version="?.?"; -} - -# get options from cfgfile - -# now get the options. The ones with a colon means the an extra argument follows. -# all options given will override the ones specified in cfgfile -&Getopts('R:r:abc:C:d:efhkl:n:N:s:vo:D:E:L:O:w:i:pP:V:'); - -############################################################### -# graphic related default variables that you can change -############################################################### - -# Default width of the left frame in pixels. Also changed by -w option -$leftframewidth = 150; - -# Default splitratio of the left frame in percent. Also changed by -s option -$leftsplitratio = "70%"; - -# Default cell color -$cellcolor = "#c7c7c7"; - -# Default filename cell color -$filenamecellcolor = "#7777FF"; - -# Default background color gray -$backcolor = "#AAAAAA"; - -# Default background for the difference cells -$differencebackground = "#BBBBBB"; - -# Colors and font to show the diff type of code changes when using -a -$diffcolorHeading ='#999999'; # color of 'Line'-heading of each diffed file -$diffcolorEmpty ='#999999'; # color of 'empty' lines -$diffcolorNormal ='#BBBBBB'; # color of 'unchanged' ('equal') lines -$diffcolorRemove ='#FF9999'; # Removed line(s) (left) (empty) -$diffcolorChange ='#99FF99'; # Added line(s) (empty) (right) -$diffcolorDarkChange ='#77AA77'; # lines, which are empty on the left/right -$diffcolorAdd ='#AAAAFF'; # Changed line(s) ( both ) -# just uncomment if you don't want any font-changes -#$difffontface ="Arial,Helvetica"; -$difffontface ="Courier,Courier New"; -$difffontsize ="-1"; - -############################################################### -# other default variables that you can change -############################################################### - -# Set $kkon ="-kk" if you permanently want to hide keyword substitutions -# when making diff-files. -$kkon = ""; - -# Set $whitespace = "-w" if you want to ignore white space changes -# in diff -$whitespace="-w"; - -# The timedifference in seconds which we consider as the same -# commit time -$commit_smalltimedifference = 10; - -# default CVS location (default assumes in path) -$cvsLocation="cvs"; - -# warnings if omitting generating of diff-files -$diffwarning = 0; - -# sub dir name for diff-files -$diffdirname = "diff"; - -############################################################### -# Subfunctions -############################################################### - -#html helper -sub html_footer { - my ($stradd)=@_; - - if(!defined($stradd)){ $stradd=""; } - (undef,$min,$hour,$mday,$mon,$year,undef,undef,undef) = localtime(time); - $struser=getlogin; - $strdate=sprintf "%4d-%02d-%02d %2d:%02d",$year+1900, $mon+1, $mday,$hour,$min; - - $ret="
\n"; - $ret.="
\n"; - $ret.="File made using version $version of "; - $ret.="cvs2html by "; - $ret.="$struser at $strdate $revisionlimitertext $stradd"; - $ret.="
\n"; - return($ret); -} - -sub html_header { - my ($title)=@_; - - $ret="<\!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n -\n\n"; - if(defined($title) && length($title)>0) { - $ret.="$title"; - } - else { - $ret.="cvs2html"; - } - $ret.="\n\n"; - if ($opt_i) { - $ret.="\n"; - } else { - $ret.="\n"; - } - if(defined($title) && length($title)>0) { - $ret.="

$title

\n
\n"; - } - return($ret); -} - -sub cvsrootinfo { - # the two tables are needed for proper layout - $ret="\n"; - $ret.="\n"; - $ret.="\n"; - $ret.="\n"; - $ret.="\n\n"; - $ret.="\n"; - $ret.="\n"; - $ret.="\n"; - $ret.="
Protocol:$protocol User:$cvsuser
Machine:$machine CVSROOT:$cvsroot

\n"; - return($ret); -} - -#function to help sort -sub sorter{ - $chronotimesince0[$a] <=> $chronotimesince0[$b]; -} - -#Function to close the main file -sub closemainfile { - # Print date & copyright info in the last part of the HTML document - $stradd=""; - if ($cutdate>"00000000") { - $stradd.=" leaving out any log message prior to $cutyearformat2"; - } - if (($opt_n>0) && ($opt_a)) { - $stradd.=" and only showing the $opt_n latest version differences"; - } - print OUTFILE html_footer($stradd); - - # Lets wrap up OUTFILE - print OUTFILE "\n"; - print OUTFILE "\n"; - - close(OUTFILE); -} - -# Function to show how the function is used. Called if no options are given. -sub shorthelp { - print "*** CVS2HTML ***\nA Perl program to transform the 'cvs log' output to HTML.\n"; - - print "Usage of cvs2html\n\n"; - print "cvs2html [-a [-b][-k]] [-n NUMDIF] [-l/-L FTPHOME]\n"; - print " [-e] [-f] [-d \"MMM DD [YYYY]\"] [-D DD] [-i IMAGE] [-h]\n"; - print " [-v] [-w FRAMEWIDTH] [-s PERCENTAGE] [-N MAXCHRONO]\n"; - print " [-rREV1:REV2] [-c/-C CFILENAME] -O/o HTMLNAME\n"; - print " [-P CVSPATH] [-V VERBOSITY]\n [-R CVSWEB ROOT "; - - print "\n\nTry: cvs2html -help\n"; -} - -sub showhelp { - print "\n"; - - print " cvs2html -O foo\n"; - print " outputs html files foo.html and alike for each subdirectory\n"; - print " Note that if foo is a directory the files are stored there\n"; - print " using the name of the repository as the base filename.\n"; - print "\n"; - - print " cvs2html -O foo -v\n"; - print " which outputs a html file to the file foo.html including\n"; - print " information about the CVSROOT setting.\n"; - print "\n"; - - print " Using -o instead of -O, frames will be made for easy control.\n"; - print "\n"; - - print " If -e is specified the log messages are printed\n"; - print " in courier (non-proportional) font.\n"; - print "\n"; - - print " If -c CFILENAME is specified a chronological sorted list of all log\n"; - print " entries will be saved in CFILENAME (CFILENAME is a full html filename)\n"; - print " Use -C CFILENAME instead of -c to do reverse sort of the log file.\n"; - print " Add -p to include cvs log information into the CFILENAME.\n\n"; - - print " If -a is specified additional fields and files are generated\n"; - print " containing differences betweeen versions\n"; - print " in a xdiff-like side by side manner.\n"; - print " The -n NUMDIF will only output the lastest NUMDIF diff files.\n"; - print " The -N MAXCHRONO will only show the last MAXCHRONO file changes\n"; - print " in the chronological list of changes.\n"; - print "\n"; - - print " if -b is specified in addition to diff-mode\n"; - print " spcaces are used as breakpoint to wrap the text\n"; - print " so the two columns don't exceed the total width\n"; - print " If -k is specified in addition to diff-mode\n"; - print " changes in lines caused by CVS-keyword substition\n"; - print " are ignored.\n"; - - print " If an option -l ftphome is given links to the files relative\n"; - print " to the URL ftphome is made. Use -L ftphtmlhome to do the same as\n"; - print " -l, but substitutes file extension with .html\n"; - print "\n"; - - print " If an option -d \"month day year\" is given (year optional) any\n"; - print " log message prior to that date is omitted. The three first \n"; - print " letters of the name of the month is used, e.g., Jun 5.\n"; - print " A -D DD option will drop any log DD days ago or earlier\n"; - print "\n"; - - print " If an option -rREVISIONTAG1:REVISIONTAG2 is given, then\n"; - print " the log messages are only shown between those revision\n"; - print " REVISIONTAG1 and REVISIONTAG2. If a file was not tagged\n"; - print " then the whole revision story of the file will be shown.\n"; - print "\n"; - - print " If -o and -w FRAMEWIDTH is used the left frame will have\n"; - print " FRAMEWIDTH pixels. Add -f when using the -o option to \n"; - print " generate individual log files for each file.\n"; - print " Use -s PERCENTAGE to set width of the fraction of the left\n"; - print " bar in percentage.\n"; - print "\n"; - - print " Use -i IMAGE to replace the background with file specified as IMAGE\n"; - print "\n"; - - print " Use -P CVSPATH to specify an explicit location cvs. The\n"; - print " default value is simply 'cvs', which means that cvs is in your\n"; - print " path.\n"; - print "\n"; - - print " Use -V VERBOSITY to make cvs2html report what it is doing. A\n"; - print " value of 0 means be quiet and bigger numbers means more output.\n"; - print " This is especially useful, when something went wrong.\n"; - print "\n"; - - print " Use -R CVSWEBROOT to make reports intergrated with cvsweb.\n"; - print " The argument should be the symbolic_name in cvsweb.conf.\n"; - - print " The html file also contains anchors, if a file foo.html\n"; - print " containing a file e.g., foofoo.m is generated then it is\n"; - print " possible to search http://CORRECT_URL/foo.html#foofoo.m\n"; - print "\n"; - - print " Example :\n"; - print " cvs2html -l http://cvs.sslug.dk/linuxbog -f -p \\\\ \n"; - print " -o cvs2html/index.html -v -a -b -n 6 -C crono.html\n"; - print " makes cvs2html/ with individual log data for each file \n"; - print " with links relative to \"http://cvs.sslug.dk/linuxbog\"\n"; - print " and creates a chronological log file \"crono.html\".\n"; - print "\n"; - - print " cvs2html with no arguments displays this help\n"; - print " Peter Toft et al, Technical University of Denmark, 1997\n"; - exit(0); -} - -# This function will set the date after which the log info is shown. -# Any log info before the date is NOT shown. -sub date_control { - %months= ( - 'Jan','01', - 'Feb','02', - 'Mar','03', - 'Apr','04', - 'May','05', - 'Jun','06', - 'Jul','07', - 'Aug','08', - 'Sep','09', - 'Oct','10', - 'Nov','11', - 'Dec','12', - ); - - - &ctime(time) =~/^(\w+) (\w+) (\d+) (\d+):(\d+):(\d+) (\d+)$/; - - $currentyear=$7; - - if (($opt_d)||($opt_D)) { - if ($opt_d) { - ($cutmonthtxt,$cutdatetxt,$cutyeartxt)= $opt_d =~ /^(\w+) (\d+) (\d+)$/; - } - if ($opt_D) { - $cd = localtime(time-3600*24*$opt_D); - $cd =~ /^(\w+) (\w+)[ ]*(\d+)[ ]*(\d+):(\d+):(\d+) (\d+)$/; - $cutyeartxt = $7; - $cutmonthtxt = $2; - $cutdatetxt = $3; - } - - if (length($cutyeartxt)==0) { - ($cutmonthtxt,$cutdatetxt)= $opt_d =~ /^(\w+) (\d+)$/; - $cutyeartxt=$currentyear; - } - $cutyearformat2="$cutmonthtxt $cutdatetxt $cutyeartxt"; - - if (length($cutdatetxt)==1) { - $cutdatetxt="0".$cutdatetxt; - } - $m=$months{$cutmonthtxt}; - if (length($m)==0) { - print "The option -d \"month day [year]\" was used with a wrong month ($cutmonthtxt).\n"; - print "First three letters is used\n"; - exit(0); - } - $cutdate = $cutyeartxt.$m.$cutdatetxt; - } - else { - $cutdate = "00000000"; - } - # Anything before year 0000 - I dont think so........... -} - -# Function to read the next line from cvslogarray -sub getnextline { - $lineno++; - if($lineno<=scalar(@cvslogarray)) { - # DEBUG - #print STDOUT " cvslogarray[$lineno]=$cvslogarray[$lineno]"; - # DEBUG - return($cvslogarray[$lineno]); - } - else { - return(undef); - } -} - -sub flush_diff_rows ($$$$) { - local $j; - my ($leftColRef,$rightColRef,$leftRow,$rightRow) = @_; - if ($state eq "PreChangeRemove") { # we just got remove-lines before - for ($j = 0 ; $j < $leftRow; $j++) { - print DIFFFILE "@$leftColRef[$j]"; - print DIFFFILE " "; - print DIFFFILE " \n"; - } - } - elsif ($state eq "PreChange") { # state eq "PreChange" - # we got removes with subsequent adds - for ($j = 0; $j < $leftRow || $j < $rightRow ; $j++) { # dump out both cols - print DIFFFILE ""; - if ($j < $leftRow) { print DIFFFILE "@$leftColRef[$j]"; } - else { print DIFFFILE " "; } - print DIFFFILE " "; - if ($j < $rightRow) { print DIFFFILE "@$rightColRef[$j]"; } - else { print DIFFFILE " "; } - print DIFFFILE "\n"; - } - } -} -# Function to generate diff-files -sub generate_diff_file { - local ( $ii,$difftxt,@diffar ); - $diffname = $outdirname.'/'.$diffdirname.'/'."diff$convdir\_$filename\_$oldrevnumber\_$revnumber.html"; - - stat($diffname); - if (-e _) { - if ($diffwarning == 1) { - print "WARNING; cvs2html does not generate $diffname\n"; - } - } - else { - @listhtmlnames = (@listhtmlnames,$diffname); - open(DIFFFILE,">$diffname") or die "Error: Could not open ; $diffname"; - print DIFFFILE html_header("Difference for $currentdir/$filename from version $revnumber to $oldrevnumber"); - if ($opt_k) { - $kkon = "-kk"; - } - @diffar = `$cvsLocation diff $kkon $whitespace -u -r $revnumber -r $oldrevnumber $currentdir/$filename\n`; - - print DIFFFILE "\n"; - print DIFFFILE ""; - - $fs="0) { - $fs.=" face=\"$difffontface\""; - } - if(defined($difffontsize) && length($difffontsize)>0) { - $fs.=" size=\"$difffontsize\""; - } - $fs.=">"; - $fe=""; - - $leftRow = 0; - $rightRow = 0; - - # the first 8 lines are garbage for us - for ($ii=8;$ii<=$#diffar;$ii++) { - chop($difftxt = $diffar[$ii]); - if ($difftxt =~ /^@@/) { - ($oldline,$newline) = $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@/; - print DIFFFILE "\n"; - $state = "dump"; - $leftRow = 0; - $rightRow = 0; - } - else { - ($diffcode,$rest) = $difftxt =~ /^([-+ ])(.*)/; - $_= $rest; -######## -# quote special characters -# according to RFC 1866,Hypertext Markup Language 2.0, -# 9.7.1. Numeric and Special Graphic Entity Set -# (Hen) -####### - s/&/&/g; - s/\"/"/g; - s//>/g; - - # replace and - if ($opt_b) { - # make every other space 'breakable' - s/ /        /g; # - s/ /   /g; # 3 * - s/ /  /g; # 2 * - # leave single space as it is - } - else { - s/ /        /g; - s/ / /g; - } - - # Add fontface, size - $_ = "$fs $_$fe"; - - ######### - # little state machine to parse unified-diff output (Hen, zeller@think.de) - # in order to get some nice 'ediff'-mode output - # states: - # "dump" - just dump the value - # "PreChangeRemove" - we began with '-' .. so this could be the start of a 'change' area or just remove - # "PreChange" - okey, we got several '-' lines and moved to '+' lines -> this is a change block - ########## - - if ($diffcode eq '+') { - if ($state eq "dump") { # 'change' never begins with '+': just dump out value - print DIFFFILE "\n"; - } - else { # we got minus before - $state = "PreChange"; - $rightCol[$rightRow++] = $_; - } - } - elsif ($diffcode eq '-') { - $state = "PreChangeRemove"; - $leftCol[$leftRow++] = $_; - } - else { # empty diffcode - flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow; - print DIFFFILE "\n"; - $state = "dump"; - $leftRow = 0; - $rightRow = 0; - } - } - } - flush_diff_rows \@leftCol, \@rightCol, $leftRow, $rightRow; - print DIFFFILE "
version $revnumber version $oldrevnumber
"; - print DIFFFILE "
Line $oldline
"; - print DIFFFILE "
 "; - print DIFFFILE "
Line $newline
"; - print DIFFFILE "
  $_
$_ $_
"; - - # print legend - print DIFFFILE "

"; - print DIFFFILE "Legend:
\n"; - print DIFFFILE ""; - print DIFFFILE ""; - print DIFFFILE ""; - print DIFFFILE "
$fs"."line(s) removed in v.$revnumber"."$fe$fs"." "."$fe
$fs"."line(s) changed"."$fe
$fs"." "."$fe$fs"."line(s) added in v.$oldrevnumber"."$fe
\n"; - - print DIFFFILE html_footer(""); - print DIFFFILE "\n\n"; - close(DIFFFILE); - } -} - -sub find_alldirs { - my @dirs = (); - find( - sub { - if (-d && ! -l && ! /CVS$/) { - if ($File::Find::dir eq "." && $_ eq ".") { - push @dirs, "./"; - } - else { - push @dirs, "$File::Find::dir/$_"; - } - } - }, '.' - ); - - @dirs = map { $_ . "\n" } @dirs; - - return @dirs; -} - -sub find_subdirs { - my $currentdir = shift; - - my @dirs = (); - finddepth( - sub { - if (-d && ! -l && ! /CVS$/ && $File::Find::dir eq $currentdir) { - if ( ! ($File::Find::dir eq $currentdir && $_ eq ".") ) { - push @dirs, "$File::Find::dir/$_"; - } - } - }, $currentdir - ); - - @dirs = map { $_ . "\n" } @dirs; - - return @dirs; -} - -sub kill_log_header { - @llcvslog = (); - $headerstill = -1; - foreach $ii (0 .. ($#lcvslog-1)) { - if ($headerstill == 0) { - @llcvslog = (@llcvslog,$lcvslog[$ii]); - } - else { - $headerstill = $headerstill - 1; - if ($lcvslog[$ii] =~ '----------------------------') { - $headerstill = 2; - } - } - } -} - -############################################################# -# Lets set up the basics -############################################################# - -# Always enforce restrictions on dates. If no date is given -# a very early one is used. -date_control; - -# Set the width of the left frame. -# Default value has been set above. -if ($opt_w) { - $leftframewidth = $opt_w; -} - -# Set the splitratio of the left frame. -# Default value has been set above. -if ($opt_s) { - $leftsplitratio = $opt_s; -} - -# I want help! -if ($opt_h) { - shorthelp; - showhelp; - exit(0); -} - -# The user must give a filename for the HTML-file(s) -if ((!(($opt_O) || ($opt_o))) || (($opt_O) && ($opt_o))) { - shorthelp; - print "\nMade by Peter Toft (pto\@sslug.dk).\ncvs2html is protected by the GPL.\n"; - exit(0); -} - -$dochrono=""; -if($opt_c) { - $dochrono=$opt_c; -} -if($opt_C) { - $dochrono=$opt_C; -} - - -# Is -c followed by a "valid" filename ? -if (length($dochrono)>5) { - $chronooutname = $dochrono; -} -else { - $chronooutname = "cvs2html_chrono_log.html"; -} - -# Want to write to a file with frames? -if ($opt_o) { - $frames = 1; - $outname = $opt_o; -} - -# Do you want to limit to certain revisions -$revisionlimiter=""; -$revisionlimitertext=""; -$starttag=""; -if ($opt_r) { - $revisionlimiter = "-r".$opt_r; - $revisionlimitertext=" and only showing data between revisions $opt_r"; - if ($opt_r =~ /^(\S*):(\S*)/) { - $starttag=$1; - $endtag=$2; - } - $revisionlimiter_end = "-r:".$endtag; - $revisionlimiter_startonly = "-r".$starttag; -} - -# Want to write to a file without frames? -if ($opt_O) { - $frames = 0; - $outname = $opt_O; -} - -$linkrel = ""; -# Want to link to external file -if ($opt_l) { - $linkrel = $opt_l; -} - -# Explicit path to cvs -if ($opt_P) { - $cvsLocation = $opt_P; -} - -# Get the environment variable CVSROOT for this CVS repository -open(INFILE,"<./CVS/Root") or die "Error: The file ./CVS/Root is missing - this directory does not seem to be under CVS-control."; -($fullcvsroot) = =~/^(.*)$/; -close INFILE; - -# Split CVSROOT in machine and dir if possible. -@spl = split(':',$fullcvsroot); -if ($#spl == 3) { -# @spl[0] is empty because client/server root starts with ':' -> ":pserver" or ":ext" - $protocol =$spl[1]; # client/server - ($cvsuser,$machine) = split('@',$spl[2]); - $cvsroot = $spl[3]; -} -elsif ($#spl == 1) { - $protocol = "rsh/ssh"; - ($cvsuser,$machine) = split('@',$spl[0]); - $cvsroot = $spl[1]; -} -else { - $protocol = "local"; - $cvsuser = ""; - $machine = "localhost"; - $cvsroot = $spl[0]; -} - -# Get the name of the repository -open(INFILE,"<./CVS/Repository") or die "Error: The file ./CVS/Repository is missing."; - -#($rootdir) = =~/^\Q$fullcvsroot\E(.*)$/; -($rootdir) = ; -$rootdir = basename($rootdir); -($rootdir) = $rootdir =~ /^(.*)$/; - -close INFILE; - -# Strip a .html from the outname if any (pasted on later) -($outnamem) = $outname =~ /^(.*)\.html$/; -if (length($outnamem)>0) { - $outname = $outnamem; -} - -# If an outputname is a directory a file named after the repository -# is generated (and others if using frames). -if (-d $outname) { - $outname = $outname."/".$rootdir; -} - -# Split the outname from a possible directory full path -$outfilename = basename($outname); -$outdirname = dirname($outname); - -($outfilename) = $outfilename =~ /^(.*)$/; -($outdirname) = $outdirname =~ /^(.*)$/; -$fulldiffdirname = $outdirname."/".$diffdirname; - -mkdir($outdirname,0775); -mkdir($fulldiffdirname,0775); - -if(defined($opt_V) && $opt_V>0) { print STDOUT "Processing \#1 $currentdir\n"; } - -# Get all dirs to search -@entirealldirs = find_alldirs(); - -# Only pass along subdirectories that are under version control -@alldirs = (); -foreach $dir (@entirealldirs) { - chop($dir); - if ( -d "$dir/CVS" ) { - if(defined($opt_V) && $opt_V>1) { print STDOUT " $dir\n"; } - push(@alldirs, "$dir\n"); - } -} - -if ($frames == 1) { - # Write the start of the left lower frame if more than one dir - if (($#alldirs > 0) || ($dochrono)) { - $llname = $outdirname.'/'.$outfilename."__lfl.html"; - open(OUTFILE3,">$llname") or die "Error: The file $llname could not be opened."; - @listhtmlnames = (@listhtmlnames,$llname); - print OUTFILE3 html_header(""); - - if ($dochrono) { - print OUTFILE3 "\n"; - $coutref = $outdirname."/".$chronooutname; - print OUTFILE3 '\n"; - print OUTFILE3 "
Chronological Log'."

\n"; - } - - print OUTFILE3 "

Dirs

\n"; - print OUTFILE3 ""; - - for ($ii=0;$ii<=$#alldirs;$ii++) { - $alldirs[$ii] =~ /^\.(.*)$/; - $dir = $1; - $showdir = "[$rootdir]$dir"; - $refname = $dir; - - $refname =~ tr/\//_/; - - if (length($refname) == 1) { - $refname = $outfilename; - } - else { - $refname = $outfilename.$refname; - } - print OUTFILE3 '\n"; - } - print OUTFILE3 "
'.$showdir."
\n"; - print OUTFILE3 "\n"; - print OUTFILE3 "\n"; - - close(OUTFILE3); - } -} - -if ($dochrono) { - $chronocounter = -1; - @chronoindex=(); - @chronoauthor=(); - @chrononame=(); - @chronotimesince0=(); - @chronoversion=(); - @chronoshowtime=(); - @chronolinknames=(); -} - -############################################################# -# Lets go for each of the directories -############################################################# -for ($dd=0;$dd<=$#alldirs;$dd++) { - # Initialization - @otherdnames = (); - $lineno = -1; - $foundbadone = 0; - $fnumber = 1; - - # Where are we ? - # $convdir is the current dir where all / are converted to _ - ($currentdir) = $alldirs[$dd] =~ /^\.\/(.*)$/; - $convdir = $currentdir; - $convdir =~ tr/\//_/; - if (length($currentdir)==0) { - $currentdirformat2 =""; - $currentdir='.'; - $convdir = ""; - } - else { - $currentdirformat2 = $currentdir."/"; - $convdir = '_'.$convdir; - } - if(defined($opt_V) && $opt_V>0) { print STDOUT "Processing \#2 $currentdir\n"; } - - @entiresubdirs = find_subdirs($currentdir); - @subdirs = (); - foreach $dir (@entiresubdirs) { - chop($dir); - if ( -d "$dir/CVS" ) { - if(defined($opt_V) && $opt_V>1) { print STDOUT " $dir\n"; } - push(@subdirs, "$dir\n"); - } - } - - if ($frames == 1) { - $llname = $outdirname.'/'.$outfilename.$convdir."__lfl.html"; - open(OUTFILE3,">$llname") or die "Error: The file $llname could not be opened."; - @listhtmlnames = (@listhtmlnames,$llname); - print OUTFILE3 html_header(""); - - if ($dochrono) { - print OUTFILE3 ""; - $coutref = $outdirname."/".$chronooutname; - print OUTFILE3 '\n"; - print OUTFILE3 "
Chronological Log'."

\n"; - } - - if ($#subdirs>=0 || $currentdir ne '.') { - print OUTFILE3 "

Sub Dirs

\n"; - print OUTFILE3 ""; - - if($currentdir eq '.') { - # No parent directory to top - } - else { - $showdir = ".. Parent Dir"; - $up = dirname ($currentdir); - ($up) = $up =~ /^(.*)$/; - - if ($up eq ".") { - $refname = "/"; - } - else { - $refname = "/$up"; - } - $refname =~ tr/\//_/; - if (length($refname) == 1) { - $refname = $outfilename; - } - else { - $refname = $outfilename.$refname; - } - print OUTFILE3 '\n"; - } - for ($ii=0;$ii<=$#subdirs;$ii++) { - $subdirs[$ii] =~ /^\.(.*)$/; - $dir = $1; - $up = dirname ($subdirs[$ii]); - ($up) = $up =~ /^(.*)$/; - $up = basename ($up); - ($up) = $up =~ /^(.*)$/; - $down = basename ($subdirs[$ii]); - ($down) = $down =~ /^(.*)$/; - $dir = "/$down"; - if ($up eq ".\n") { - $showdir = "[$rootdir]$dir"; - } - else { - $showdir = "[$up]$dir"; - } - - if($currentdir eq '.') { - $refname = $dir; - } - else { - $refname = "/$currentdir$dir"; - } - $refname =~ tr/\//_/; - if (length($refname) == 1) { - $refname = $outfilename; - } - else { - $refname = $outfilename.$refname; - } - - print OUTFILE3 '\n"; - } - print OUTFILE3 "
'.$showdir."
'.$showdir."

\n"; - } - print OUTFILE3 "\n"; - print OUTFILE3 "\n"; - - close(OUTFILE3); - } - - # Should the output have frames then make left lower frame. - if ($frames == 1) { - # Write the start of the left upper frame - $luname = $outdirname.'/'.$outfilename.$convdir."__lfu.html"; - open(OUTFILE2,">$luname") or die "Error: The file $luname could not be opened."; - @listhtmlnames = (@listhtmlnames,$luname); - print OUTFILE2 html_header(""); - print OUTFILE2 "

Log History

\n"; - print OUTFILE2 ""; - %outfile2lines=(); - } - - # Should the output have frames ? - if ($frames == 1) { - $mainname = $outdirname.'/'.$outfilename.$convdir.".html"; - - # Write the start of the main html file - open(OUTFILE4,">$mainname") or die "Error: The file $mainname could not be opened."; - @listhtmlnames = (@listhtmlnames,$mainname); - print OUTFILE4 "<\!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\" \"http://www.w3.org/TR/html4/frameset.dtd\">\n\n"; - print OUTFILE4 "CVS2HTML\n"; - print OUTFILE4 "\n"; - # only do the left lower frame if subdirs found - - if (($#alldirs > 0) || ($dochrono)) { - print OUTFILE4 "\n"; - print OUTFILE4 "\n"; - print OUTFILE4 "\n"; -# print OUTFILE4 "\n"; - print OUTFILE4 "\n"; - } - else { - print OUTFILE4 "\n"; - } - # Do right frame link - print OUTFILE4 "\n"; - print OUTFILE4 "\n"; - print OUTFILE4 "<h2 align=center>CVS Directories</h2>\n<hr>\n<br>\n"; - } - - if(defined($opt_V) && $opt_V>0) { print STDOUT "Getting cvs-entries\n"; } - - $cvsnames = ""; - @cvsnameslist = (); - $Entryfilename = $currentdir."/CVS/Entries"; - - open(NAMEFILE,"<$Entryfilename"); - $contin = 1; - $nooffiles = 0; - while ($contin ==1) { - $namlin = <NAMEFILE>; - ($readnameline) = $namlin =~ /^\/([ a-zA-Z0-9-+_\.(...)]*)\/.*$/; - $_ = $readnameline; - s/ /~/g; - $readnameline = $_; - if (length($namlin)>0) { - if (length($readnameline)>0) { - $nooffiles++; - $cvsnames = $cvsnames." ".$currentdir.'/'.$readnameline; - push @cvsnameslist, $currentdir.'/'.$readnameline; - } - } - else { - $contin=0; - } - } - close(NAMEFILE); - - # Check for an empty Log (if, e.g., the directory does not contain files - # registered with CVS). - if (length ($cvsnames) <= 0) { - print STDERR "Error 4 : Doing $currentdir: Log is empty.\n"; - # We really should make a file here I think - if ($frames == 1) { - $rfoutname = $outdirname.'/'.$outfilename.$convdir."__rf.html"; - open(OUTFILE,">$rfoutname") or die "Error: Could not open $rfoutname\n."; - @listhtmlnames = (@listhtmlnames,$rfoutname); - } - $fnumber=2; - if (length($currentdir)==1) { - print OUTFILE html_header("--- $rootdir ---"); - } - else { - print OUTFILE html_header("--- $rootdir/$currentdir ---"); - } - - if ($opt_v) { print OUTFILE cvsrootinfo(); } - print OUTFILE html_footer(""); - print OUTFILE "</body></html>\n"; - - # Lets open the main file and process - if ($frames == 1) { - $rfoutname = $outdirname.'/'.$outfilename.$convdir.$fname."__rf.html"; - open(OUTFILE,">$rfoutname") or die "Error: Could not open $rfoutname\n."; - @listhtmlnames = (@listhtmlnames,$rfoutname); - } - else { - $mainoutname = $outdirname.'/'.$outfilename.$convdir.$fname.".html"; - open(OUTFILE,">$mainoutname") or die "Error: Could not open $mainoutname\n."; - @listhtmlnames = (@listhtmlnames,$mainoutname); - } - $fnumber=2; - if (length($currentdir)==1) { - print OUTFILE html_header("--- $rootdir ---"); - } - else { - print OUTFILE html_header("--- $rootdir/$currentdir ---"); - } - print OUTFILE "<center>This directory is empty</center>\n"; - closemainfile; - } - next if (length ($cvsnames) <= 0); # Log is empty so proceed to next directory - - if(defined($opt_V) && $opt_V>0) { print STDOUT "Retrieving logdata\n"; } - - $_ = join ('" "', sort (split ' ', $cvsnames)); - s/~/ /g; - $cvsnames = '"'.$_.'"'; - @cvslogarray = (); - -# it would be nice to have just one cvs log <file_1> <file_2> ... <file_n> -# the filter out invalid branch blocs and re-request them -# for this I would need to know how this message looks like - - foreach $cvsnamesentry (@cvsnameslist) { - if(defined($opt_V) && $opt_V>1) { print STDOUT " $cvsnamesentry\n"; } - @cvslogarray_sub = `$cvsLocation log $revisionlimiter $cvsnamesentry 2>&1 `; - if ($cvslogarray_sub[0] =~ /connection refused/i) { - print STDERR "Error 3 : connection to cvs refused for \"$cvsnamesentry\"\n"; - @cvslogarray_sub = (); - last; - } - if ($cvslogarray_sub[0] =~ /invalid branch or revision pair/i) { - # the end tag was probably the first rev in a branch and "cvs log" - # does not tolerate such combination, it needs special handling - # retry with '-r:endtag' - print "retrying with $revisionlimiter_end\n"; - @cvslogarray_sub_branch = `$cvsLocation log $revisionlimiter_end $cvsnamesentry`; - @cvslogarray_sub_trunk = `$cvsLocation log $revisionlimiter_startonly $cvsnamesentry`; - # find index of log entry separator line in @cvslogarray_sub_trunk - $trunk_log_line = 0; - while ( $trunk_log_line <= $#cvslogarray_sub_trunk and - ! ($cvslogarray_sub_trunk[$trunk_log_line] =~ /^--------*$/) ){ - $trunk_log_line++; - } - # combine both logs - @cvslogarray_sub = (@cvslogarray_sub_branch[0 .. $#cvslogarray_sub_branch-1], - @cvslogarray_sub_trunk[$trunk_log_line .. $#cvslogarray_sub_trunk]); - } - push @cvslogarray, @cvslogarray_sub; - } - - if(defined($opt_V) && $opt_V>0) { print STDOUT "Processing logdata\n"; } - - $line = getnextline; - - # skip lines starting with "?" - while ($line =~ /^\? (.*)$/) { - $foundbadone = 1 ; - $line = getnextline; - } - - while ($line) { - if ($opt_n>0) { - $nodiff = $opt_n; - } - else { - $nodiff = -1; - } - $oldrevnumber=0; - if ($line =~ /^\? (.*)/) { - print STDERR "The file \"$1\" is not part of cvs\n"; - $line = getnextline; - } - $line = getnextline; - - # skip lines starting with "?" - while ($line =~ /^\? (.*)$/) { - $foundbadone = 1 ; - $line = getnextline; - } - - # found a filename (ends on ",v") - if ($line =~ /^.*: (.*),v$/) { - $line = getnextline; - ($lfilename) = $line =~ /^.*: (.*)$/; - - ($filename) = $lfilename =~ (/^.*\/([ a-zA-Z0-9-+_\.(...)]*)$/); - if (length($filename) == 0) { - $filename = $lfilename; - } - - if (length($filename) == 0) { - print STDERR "Error 2 in processing the output of cvs log in $currentdir\n"; - print STDERR $line; - } - else { - if(defined($opt_V) && $opt_V>1) { print STDOUT " $filename\n"; } - } - $printfilename = 0; - $onlist = 0; - } - else { - print STDERR "Error 1 in processing the output of cvs log in $currentdir\n"; - print STDERR $line; - print STDERR "\n"; - if ($line =~ /nothing known about/) { - print STDERR "No log info for file.\n"; - last; - } - } - - # Find the next separator... - while ($line and !($line =~ /^symbolic names:/) and !($line =~ /^--------*$/) and !($line =~ /^========*$/)) { - $line = getnextline; - } - - # Find the revision of the startrevision if any: - $startrevision=""; - if ($line =~ /^symbolic names:/) { - $line = getnextline; - while (!($line =~ /^[a-z]/)) { - if ($line =~ /[ ]*(\S*): (\S*)$/) { - if ($1 eq $starttag) { - $startrevision=$2; - } - } - $line = getnextline; - } - # Find the next separator... - while (!($line =~ /^--------*$/) and !($line =~ /^========*$/)) { - $line = getnextline; - } - } - - $newfile=0; - - # If the separator is a new file separator, flag it. - if ($line =~ /^========*$/) { - $newfile = 1; - # FIXME: We still need to create a index~<filename>__rf.html - if ($frames == 1) { - $rfoutname = $outdirname.'/'.$outfilename.$convdir."__rf.html"; - open(OUTFILE,">$rfoutname") or die "Error: Could not open $rfoutname\n."; - @listhtmlnames = (@listhtmlnames,$rfoutname); - } - $fnumber=2; - if (length($currentdir)==1) { - print OUTFILE html_header("--- $rootdir ---"); - } - else { - print OUTFILE html_header("--- $rootdir/$currentdir ---"); - } - if ($opt_v) { print OUTFILE cvsrootinfo(); } - print OUTFILE html_footer(""); - print OUTFILE "</body></html>\n"; - - # This just skips over this file. - } - - if(defined($opt_V) && $opt_V>2) { print STDOUT " Getting metadata\n"; } - - $leftfill = 0; - $line = getnextline; - - while ($newfile==0) { - if ($line =~ /revision (\S*)/) { - $revnumber=$1; - } - else { - $revnumber = "[Error_in_revnumber]"; - } - - $line = getnextline; - - if ($line =~ /date: (...................)/) { - $revdate = $1; - } - else { - $revdate = "[Error_in_revdate]"; - } - - if ($line =~ /author: ([a-zA-Z0-9_]*);/) { - $author = $1; - } - else { - $author = "[Error_in_author]"; - } - - if ($line =~ /lines: ([+\-0-9 ]*)$/) { - $changelines = $1; - } - else { - $changelines = "None"; - } - - $line = getnextline; - - if ($line =~ /branches: (.*)/) { - $line = getnextline; - } - - ($rd1,$rd2,$rd3,$rdrest) = $revdate =~ /^(\d+)\/(\d+)\/(\d+) (.*)$/; - $revdateformat2 = $rd1.$rd2.$rd3; - ($rt1,$rt2,$rt3) = $rdrest =~/(\d+)\:(\d+)\:(\d+)/; - - $revdateformat3 = 3600*$rt1+60*$rt2+$rt3+86400*$revdateformat2; - $printfilename = $printfilename + 1; - - $fname=""; - if ($opt_f) { - $fname = '~'.$filename; - } - if ((($fnumber == 1) || ($opt_f)) && ($printfilename==1)) { - if (($opt_f) && ($fnumber==1)){ - $rfoutname = $outdirname.'/'.$outfilename.$convdir."__rf.html"; - open(OUTFILE,">$rfoutname") or die "Error: Could not open $rfoutname\n."; - @listhtmlnames = (@listhtmlnames,$rfoutname); - if (length($currentdir)==1) { - print OUTFILE html_header("--- $rootdir ---"); - } - else { - print OUTFILE html_header("--- $rootdir/$currentdir ---"); - } - print OUTFILE "<h3>Select entries from the left panel to get to the cvs log information for the files</h3>\n"; - print OUTFILE html_footer(""); - print OUTFILE "</body>\n</html>\n"; - close(OUTFILE); - } - - # Lets open the main file and process - if ($frames == 1) { - $rfoutname = $outdirname.'/'.$outfilename.$convdir.$fname."__rf.html"; - open(OUTFILE,">$rfoutname") or die "Error: Could not open $rfoutname\n."; - @listhtmlnames = (@listhtmlnames,$rfoutname); - } - else { - $mainoutname = $outdirname.'/'.$outfilename.$convdir.$fname.".html"; - open(OUTFILE,">$mainoutname") or die "Error: Could not open $mainoutname\n."; - @listhtmlnames = (@listhtmlnames,$mainoutname); - } - $fnumber=2; - if (length($currentdir)==1) { - print OUTFILE html_header("--- $rootdir ---"); - } - else { - print OUTFILE html_header("--- $rootdir/$currentdir ---"); - } - if ($opt_v) { print OUTFILE cvsrootinfo(); } - } - - $needthisrevision = 0; - if (($revdateformat2 >= $cutdate) and ($revnumber ne $startrevision)) { - $needthisrevision = 1; - } - - if ( $needthisrevision or $needthisdiffonly ) { - if (($onlist == 0) && ($printfilename == 1)) { - print OUTFILE "<a name=\"$filename\">\n</a>\n"; - print OUTFILE "<table border=0 cellspacing=1 cellpadding=3 bgcolor=\"$cellcolor\" width=\"100%\">\n"; - print OUTFILE "<tr>\n"; - print OUTFILE "<td colspan=4 bgcolor=\"$filenamecellcolor\"><b><font size=\"+1\">\n"; - - $cdir = ""; - if (length($currentdir)>1) { - $cdir = '/'.$currentdir; - } - - $Ls = ""; - $Le = ""; - if ($opt_L) { - ($flname,$ext) = $filename =~ /^([a-zA-Z0-9+-_]*)\.([a-zA-Z0-9]*)$/; - if (length($ext)==0) { - $flname = $filename; - } - $Ls = "<a href=\"$opt_L$cdir/$flname".".html\" target=\"_top\">"; - $Le = "</a>\n"; - } - print OUTFILE $Ls."Filename".$Le.": "; - - $Ls = ""; - $Le = ""; - if (($opt_l) && ($opt_R)) { - $Ls = "<a href=\"$opt_l$cdir/$filename/\?cvsroot\=$opt_R\">"; - $Le = "</a>\n"; - } elsif (($opt_l) && (! opt_R)) { - $Ls = "<a href=\"$opt_l$cdir/$filename\">"; - $Le = "</a>\n"; - } - - print OUTFILE $Ls.$filename.$Le; - print OUTFILE "</font></B><br></td></tr>\n"; - } - $onlist = 1; - if (($opt_o) && ($leftfill == 0)) { - if ($opt_f) { - $chronolinker = $outfilename.$convdir.'~'.$filename.'__rf.html'; - } - else { - $chronolinker = $outfilename.$convdir.'__rf.html#'.$filename; - } - # justcollect, we'll output them sorted on filename - $outfile2lines{$filename}="<tr><td><a href=\"$chronolinker\" target=\"rf\"><font size=\"-1\">$filename</font></a></td></tr>\n"; - $leftfill=2; - } - if (($opt_a) && ($oldrevnumber!=0) && ($nodiff!=0)) { - print OUTFILE "<tr><td colspan=4 bgcolor=\"$differencebackground\"><i>Show difference between <a href=\"$diffdirname/diff$convdir\_$filename\_$oldrevnumber\_$revnumber.html\">Revision $revnumber and $oldrevnumber </a></i>\n"; - generate_diff_file; - $nodiff--; - } - $oldrevnumber=$revnumber; - if ( $needthisrevision==0 ) { - $needthisdiffonly = 0; - } - if ( $needthisrevision!=0 ) { - if (($opt_a) && ($nodiff!=0)) { - $needthisdiffonly = 1; - } - print OUTFILE "<tr><td><b>Revision $revnumber</b><td>$author\n"; - print OUTFILE "<td>$revdate"; - if (length($changelines)<2) { - print OUTFILE "<td>None\n"; - } - else { - print OUTFILE "<td>$changelines\n"; - } - print OUTFILE "<tr><td colspan=4>\n"; - if ($dochrono) { - $chronocounter++; - $nams = $currentdirformat2.$filename; - @chronoindex = (@chronoindex,$chronocounter); - @chrononame = (@chrononame,$nams); - @chronoauthor = (@chronoauthor,$author); - @chronoversion = (@chronoversion,$revnumber); - @chronoshowtime = (@chronoshowtime,$revdate); - @chronotimesince0 = (@chronotimesince0,$revdateformat3); - @chronolinknames = (@chronolinknames,$chronolinker); - } - } - } - - # While more log read and process - $morelog=1; - while ($morelog==1) { - if ($line =~ /^----------*$/) { - $morelog=0; - } - else { - if ($line =~ /^========*$/) { - $newfile=1; - $morelog=0; - } - else { - $_=$line; - s/&/&amp;/g; - s/\"/&quot;/g; - s/</&lt;/g; - s/>/&gt;/g; - $line=$_; - if ($line =~ /^(.*)$/) { - if (($revdateformat2 >= $cutdate) and ($revnumber ne $startrevision)) { - if ($opt_e) { - print OUTFILE "<code>$1</code><br>\n"; - } - else { - print OUTFILE "$1<br>\n"; - } - } - } - } - } - $line = getnextline; - } - print OUTFILE "\n"; - } - - if ($onlist==1) { - print OUTFILE "</table><br>\n"; - } - if ($onlist==0) { - @otherdnames = (@otherdnames,$filename); - } - if ($opt_f) { - closemainfile; - } - } - - if (!$opt_f) { - closemainfile; - } - - if ($opt_o) { - # output all filenames sorted - foreach $key (sort { lc($a) cmp lc($b) } keys %outfile2lines) { - print OUTFILE2 $outfile2lines{$key} - } - print OUTFILE2 "</table><br>\n"; - } - if (($opt_o) && ($nooffiles == $#otherdnames+1)) { - print OUTFILE2 "No file revisions.<br>\n"; - } - if (($#otherdnames>=0) && ($opt_o)) { - print OUTFILE2 "<br><hr><h3 align=center>Unchanged</h3>\n"; - if ($#otherdnames>=0) { - print OUTFILE2 "<table border=0 cellspacing=1 cellpadding=3 bgcolor=\"$cellcolor\" width=\"100%\">\n"; - for ($ii=0;$ii<=$#otherdnames;$ii++) { - print OUTFILE2 "<tr><td><font size=\"-1\">$otherdnames[$ii]</font></td></tr>\n"; - } - print OUTFILE2 "</table><br>\n"; - } - else { - print OUTFILE2 "All files have revisions.<br>\n"; - } - } - - # Lets wrap up OUTFILE2 - if ($opt_o) { - print OUTFILE2 "</body>\n"; - print OUTFILE2 "</html>\n"; - close(OUTFILE2); - } - - # Found a bad one....... This should NOT happen - if ($foundbadone == 1) { - print STDERR "\ncvs2html found some files that was no part of CVS\n\n"; - } - - if ($frames == 1) { - print OUTFILE4 "<table border=0 cellspacing=1 cellpadding=3 bgcolor=\"$cellcolor\" width=\"100%\">\n"; - - for ($ddd=0;$ddd<=$#alldirs;$ddd++) { - ($currentdir) = $alldirs[$ddd] =~ /^\.\/(.*)$/; - $convdir = $currentdir; - $convdir =~ tr/\//_/; - if (length($currentdir)==0) { - $currentdir='.'; - $convdir = ""; - } - else { - $convdir = '_'.$convdir; - } - - chop($ldir = $alldirs[$ddd]); - if (length($ldir) == 2) { - $ldir =""; - } - print OUTFILE4 "<tr><td><a href=\"".$outfilename.$convdir."__lfu.html\">[$rootdir]$ldir</a></td></tr>\n"; - } - print OUTFILE4 "</table><br>\n"; - } - - print OUTFILE4 html_footer(""); - print OUTFILE4 "\n"; - print OUTFILE4 "\n"; - print OUTFILE4 "\n"; - close(OUTFILE4); -} - -if ($dochrono) { - $coutref = $outdirname."/".$chronooutname; - open(CHRONOFILE,">$coutref"); - - if(defined($opt_V) && $opt_V>0) { print STDOUT "Generate chrono file\n"; } - - print CHRONOFILE html_header("CVS time sorted logs"); - if ($frames == 0) { - print CHRONOFILE 'Back to main page

'; - } - - - #print "Sorting the logfiles\r"; - @cindex = sort sorter @chronoindex; - #print "Done sorting the logfiles\n"; - - if ($frames == 1) { - print CHRONOFILE "

"; - printf(CHRONOFILE "\n","Time ","Revision","Author","Filename"); - } - else { - printf(CHRONOFILE "

\n%20s %8s %10s %s

\n","Time ","Revision","Author","Filename"); - } - - $cclim = $chronocounter; - $cindexlow=0; - if ($opt_N>0) { - if ($opt_N-1<$chronocounter) { - $cclim = $opt_N-1; - $cindexlow = $chronocounter+1-$opt_N; - $cctxt = " and only the last $opt_N changes are shown."; - } - } - - if ($cindexlow<0) { - $cindexlow=0; - } - - if ($opt_p) { - for ($ii=$cindexlow;$ii<=$chronocounter;$ii++) { - if ($opt_c) { - $cind = $ii; - } - else { - $cind = $chronocounter-$ii+$cindexlow; - } - $index = $cindex[$cind]; - - if(defined($opt_V) && $opt_V>1) { print STDOUT " $chrononame[$index]\n"; } - - @lcvslog = `$cvsLocation log -N -r$chronoversion[$index] "$chrononame[$index]"`; - @llcvslog = (); - $headerstill = -1; - foreach $jj (0 .. ($#lcvslog-1)) { - if ($headerstill == 0) { - $_=$lcvslog[$jj]; - s/&/&/g; - s/\"/"/g; - s//>/g; - @llcvslog = (@llcvslog,$_); - } - else { - $headerstill = $headerstill - 1; - if ($lcvslog[$jj] =~ '----------------------------') { - $headerstill = 2; - } - } - } - $lcvslogar[$index] = join('
',@llcvslog); - if (length($lcvslogar[$index])<2) { - $lcvslogar[$index] = "(Empty log)"; - } - } - } - for ($ii=$cindexlow;$ii<=$chronocounter;$ii++) { - if ($opt_c) { - $cind = $ii; - $cind2 = $ii+1; - } - else { - $cind = $chronocounter-$ii+$cindexlow; - $cind2 = $cind-1; - } - $index = $cindex[$cind]; - $index2 = $cindex[$cind2]; - $ccc = ''.$chrononame[$index].""; - if ($frames==0) { - printf(CHRONOFILE "%20s %8s %10s %s
\n",$chronoshowtime[$index],$chronoversion[$index],$chronoauthor[$index],$ccc); - } - else { - printf(CHRONOFILE "\n",$chronoshowtime[$index],$chronoversion[$index],$chronoauthor[$index],$ccc); - if ($opt_p) { - if ($ii == $chronocounter){ - printf(CHRONOFILE "\n"); - } - elsif (($lcvslogar[$index] ne $lcvslogar[$index2]) || (abs($chronotimesince0[$index]-$chronotimesince0[$index2]))>$commit_smalltimedifference) { - printf(CHRONOFILE "\n"); - } - } - } - } - - if ($frames == 1) { - print CHRONOFILE "
%s %s %s %s
%s %s %s %s
\n"); - print CHRONOFILE $lcvslogar[$index]; - printf(CHRONOFILE "
\n"); - print CHRONOFILE $lcvslogar[$index]; - printf(CHRONOFILE "
\n"; - } - else { - print CHRONOFILE "
\n"; - } - - if ($frames == 0) { - print CHRONOFILE '

Back to main page

'; - } - - - $stradd=""; - if ($cutdate>"00000000") { - $stradd.=" leaving out any log message prior to $cutyearformat2 $revisionlimitertext"; - } - print CHRONOFILE html_footer($stradd.$cctxt); - #Wrap up the file - print CHRONOFILE "\n\n\n"; - - close(CHRONOFILE); -# We must report that a new file has been made - @listhtmlnames = (@listhtmlnames,$coutref); -} - -# Print status about which files have been generated -# all diffs are under *_diff/ directory -# files ending on "__rf" are those displayed in the right frame (the ones showing the revision history) -# files ending on "__lfu" are those displayed in the upper part of the left frame -# files ending on "__lfl" are those displayed in the lower part of the left frame -# -if(defined($opt_V) && $opt_V>0) { - print STDOUT "cvs2html has generated the following files :\n"; - @ll=sort(@listhtmlnames); - for ($ff=0;$ff<=$#listhtmlnames;$ff++) { - print " $ll[$ff]\n"; - } - print "\n"; -} diff --git a/deal.II/doc/auto/scripts/index.pl b/deal.II/doc/auto/scripts/index.pl deleted file mode 100644 index c2cddbfea0..0000000000 --- a/deal.II/doc/auto/scripts/index.pl +++ /dev/null @@ -1,51 +0,0 @@ -@entries = (); - -while(<>) -{ - next if (m/DeclException/); - chop; - s/\/\>\;/g; - if (m/(.+)=([^=]+)=?$/) - { - @n = split "::", $1; - - $entry = pop @n; - while ($#n>=0) - { - $entry .= "+" . pop @n; - } - $entry .= ',' . $2 . ',' . $library; - push @entries, $entry; - } - else - { - $library = $_; - } -} - -print << 'EOT' -DEAL Name Index -

Name Index of DEAL


-Remark: Lowercase is sorted behind uppercase and destructors are isolated at -the end. -
- - -
function/classin class
-EOT - ; -foreach $entry (sort @entries) -{ - @l = split ",", $entry; - @c = split '\+', @l[0]; - @f = split "#", @l[1]; - - print ''; - print "\n
@c[0]@c[1]
\n"; -} -print << 'EOT' - - -EOT - ; diff --git a/deal.II/doc/auto/scripts/kdoc/Ast.pm b/deal.II/doc/auto/scripts/kdoc/Ast.pm deleted file mode 100644 index 74d4a15119..0000000000 --- a/deal.II/doc/auto/scripts/kdoc/Ast.pm +++ /dev/null @@ -1,93 +0,0 @@ -package Ast; - -#----------------------------------------------------------------------------- -# This package is used to create a simple Abstract Syntax tree. Each node -# in the AST is an associative array and supports two kinds of properties - -# scalars and lists of scalars. -# See SchemParser.pm for an example of usage. -# ... Sriram -#----------------------------------------------------------------------------- - -sub BEGIN { - $currLevel = 0; - $indent = " " x 2; -} - -# Constructor -# e.g AST::New ("personnel") -# Stores the argument in a property called astNodeName whose sole purpose -# is to support Print() - -sub New { - my ($this) = {"astNodeName" => $_[0]}; - bless ($this); - return $this; -} - -# Add a property to this object -# $astNode->AddProp("className", "Employee"); - -sub AddProp { - my ($this) = $_[0]; - $this->{$_[1]} = $_[2]; -} - -# Equivalent to AddProp, except the property name is associated -# with a list of values -# $classAstNode->AddProp("attrList", $attrAstNode); - -sub AddPropList { - my ($this) = $_[0]; - if (! exists $this->{$_[1]}) { - $this->{$_[1]} = []; - } - push (@{$this->{$_[1]}}, $_[2]); -} - -# Returns a list of all the property names of this object -sub GetProps { - my ($this) = $_[0]; - return keys %{$this}; -} - -sub Visit { - # Converts each of this AstNode's properties into global variables. - # The global variables are introduced into package "main" - # At the same time, a piece of code is formed to undo this work above - - # $endCode essentially contains the values of these global variables - # before they are mangled. endCode gets pushed into a stack (endCodes), - # which is unwound by UnVisit(). - - local ($this, $pack) = @_; - - - $code = ""; $endCode = ""; - - - - foreach $k (keys %{$this}) { - - $glob = $pack."::".$k; - - if ( defined $$glob ) { - - if ( ${$glob} ne "" ) { - $$glob =~ s/\'/\\\'/g; - } - - $endCode .= '$'.$pack.'::'.$k. " = '".$$glob."';"; - } else { - $endCode .= '$'.$pack . "::". $k . ' = "";'; - } - $code .= '$'.$pack . "::" . $k . "= \$this->{\"$k\"};"; - } - push (@endCodes, $endCode); - eval($code) if $code; -} - -sub UnVisit { - $code = pop(@endCodes); - eval($code) if ($code); -} - -1; diff --git a/deal.II/doc/auto/scripts/kdoc/kdoc b/deal.II/doc/auto/scripts/kdoc/kdoc deleted file mode 100644 index 66750533b7..0000000000 --- a/deal.II/doc/auto/scripts/kdoc/kdoc +++ /dev/null @@ -1,1308 +0,0 @@ -#!/usr/local/bin/perl - -# Documentation generator. -# Torben Weis (weis@kde.org) and Sirtaj Kang (taj@kde.org) -# $Id$ - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -########################################################### -# -# Global Variables -# -########################################################### - -# system options -require 5.000; - -$PREFIX="/usr/local"; -push( @INC, $PREFIX."/share/kdoc"); - -require Ast; - -# User options - -$dontDoPrivate = 1; -$strictParser = 0; -$documentAll = 1; -$docDeprecated = 1; -$docInternal = 1; -$debug = 0; -$docPath = "."; -$urlBase = ""; -$libPath = "."; -$lib = ""; -$genHTML = 0; -$genTeX = 0; -$genMan = 0; -$quiet = 0; - -# running environment -($version = '$Version$') =~ s/:\s*//g; - -$version =~ s/Version//g; - -$thisHost = `uname -n`; chop $thisHost; -$user = `whoami`; chop $user; - -$generatedByText= 'Documentation generated by '.$user. '@'. - $thisHost.' on '.`date`; - -$libPath = $ENV{'KDOCLIBS'} if $ENV{'KDOCLIBS'} ne ""; - -# globals - for method - -$exceptions = ""; -%paramDesc = (); -$paramName = ""; -$paramText = ""; -$retText = ""; -$see = ""; -$text = ""; -$methInternal = 0; -$methDeprecated = 0; - -# for class -$class = ""; -$classAuthor = ""; -$classDeprecated = 0; -$classInternal = 0; -$classSee = ""; -$classShortText = ""; -$classShortTextSet = 0; -$classText = ""; -$classVersion = ""; -$classInherits = ""; -$classAbstract = 0; -$classTmplArgs = ""; - -%classRef = (); # KDOC reference file -%classSource = (); # tracks headers given a class name -%classNode = (); # tracks nodes given a class name -@headerList = (); # list of processed header files - -$filename = ""; # Current file being processed - -# index of stuff that shouldn't flag referencing errors -# (not currently used) - -%noErr = (); -$noErr{ "void" } = 1; -$noErr{ "int" } = 1; -$noErr{ "uint" } = 1; -$noErr{ "uchar" } = 1; -$noErr{ "short" } = 1; -$noErr{ "ushort" } = 1; -$noErr{ "unsignedint" } = 1; -$noErr{ "unsignedchar" } = 1; -$noErr{ "unsignedshort" } = 1; -$noErr{ "float" } = 1; -$noErr{ "double" } = 1; -$noErr{ "short" } = 1; -$noErr{ "char" } = 1; -$noErr{ "unsigned" } = 1; -$noErr{ "bool" } = 1; -$noErr{ "long" } = 1; -$noErr{ "string" } = 1; - -# for main - -$i = 0; -@myargs = @ARGV; - -%children = (); -%parents = (); - -# "<>" is the root of all classes. -$children{"<>"} = ""; -$parents{"<>"} = "<>"; - -$rootNode = Ast::New("ROOT"); - -#### -# -# Function addClass -# Inserts a class into the hierarchy -#### - -sub addClass -{ - my($parent, $child) = @_; - - $parents{ $child } = $parent; - - $children{ $parent } = $child.";".$children{ $parent }; - - $children{ $child } = "" if !defined $children{ $child }; -} - -########################################################### -# -# Function -# readLibrary -# -########################################################### - -sub readLibrary -{ - my( $libname ) = @_; - my( $prefix ); - my( $libFull ); - - $libFull = $libPath."/".$libname.".kdoc"; - - open( IMP, "$libFull" ) - || die "Could not open ".$libFull." for reading\n"; - - # the first line of a library contains the base url under - # which is was stored (using the -u flag at invokation of - # kdoc) - $prefix = ; - chop $prefix; - - # However, there is one problem: kdoc references other symbols - # relative to the files of the library it is working on and that - # will not be in the present directory but somewhere else. - # Therefore $prefix is relative to the present directory, while - # the files of the present library will go to $docPath; we - # therefore need to modify $prefix for the number of subdirectories - # in $docPath. That scheme will fail, however, if $docPath is an - # absolute path, if $prefix is an absolute path or if $docPath - # contains "../". I (WB) am not proficient enough to invent a - # workaround - - foreach ( split "/", $prefix) - { - $prefix = "../" . $prefix; - } - if ( ! ( $prefix =~ /\/$/) ) - { - $prefix .= "/"; - } - - while ( ) - { - chop; - if ( /^(.*)=(.*)$/ ) - { - $classRef{ $1 } = $prefix . "$2"; - } - if( /^(\w+)=/ ) { - # add classes to external list - $classSource{ $1 } = $libname; - } - } - - close( IMP ); -} - -########################################################### -# -# Function -# processClass -# -########################################################### - -sub processClass -{ - my( $end ); - -# New Ast Node for class - - $classNode = Ast::New( $class ); - -# use first line of text as short text if we have none yet. - if( $classShortText eq "" && $classText ne "" ) { - $_ = $classText; - /((\s|\w|[^.\n])*)\.*/; - $classShortText = $1." "; - $classShortTextSet = 1; - } - - - -# work out ancestors - $_ = $classInherits; - tr/\:\{//d; - s/protected//g; - s/private//g; - s/public//g; - s/virtual//g; - - if ( !( /^\s*$/ ) ) - { - foreach $c ( split /,/, $_ ) - { - $c =~ s/\s//g; - addClass( $c, $class ); - - $inheritNode = Ast::New($c); - $classNode->AddPropList( "Ancestors", $inheritNode ); - } - - } - else { - addClass( "<>", $class ); - } - -# process the rest of the class declaration - - while ( ) - { - next if /^\s*$/g; - -# parse out // comments, except where in a string or - s#//.*$##g unless m#"[^"]+".*//# || m#^\s*///#; - - - # if we find a "template " on a single line, - # concatenate it with the next line - if ( /^\s*(template\s*<(([-\w,_\s]|<([-\w,+\s])+>)+)>\s*)\n/ ) { - $_ = $1 . " " . ; - } - - $line = $_; - - if ( /^\s*\}\s*;\s*(\/\/.*)?$/ ) - { -# end of class declaration -# dump all stored stuff to file - - print "CLASS END: $class\n" if $debug; - - if( ($classInternal == 0 || $docInternal ) - && ( $classDeprecated == 0 || $docDeprecated ) ) { - - # add class to list only if it is expected to be - # documented - - addReference( $classNode->{"astNodeName"}, - $classNode->{"astNodeName"}.".html" ); - - print "Added $class to tree\n" if $debug; - - $rootNode->AddPropList( "classes", $classNode ); - - $filename =~ s/^\s+$//g; - $classAuthor =~ s/^\s+$//g; - $classVersion =~ s/^\s+$//g; - $classText =~ s/^\s+$//g; - $classSee =~ s/^\s+$//g; - - $classNode->AddProp( "Author", $classAuthor ); - $classNode->AddProp( "ClassSee", $classSee ); - $classNode->AddProp( "ClassShort", $classShortText ); - $classNode->AddProp( "Deprecated", $classDeprecated ); - $classNode->AddProp( "Description", $classText ); - $classNode->AddProp( "Header", $filename ); - $classNode->AddProp( "Internal", $classInternal ); - $classNode->AddProp( "TmplArgs", $classTmplArgs ); - $classNode->AddProp( "Version", $classVersion ); - - } - - resetClassDoc(); - - return; - } - elsif ( /^\s*public\s*:\s*$/ && $access ne "public" ) - { - $access = "public"; - } - elsif ( /^\s*protected\s*:\s*$/ && $access ne "protected" ) - { - $access = "protected"; - } - elsif ( /^\s*private\s*:\s*$/ && $access ne "private" ) - { - $access = "private"; - } - elsif ( /^\s*signals\s*:\s*$/ && $access ne "signals" ) - { - $access = "signals"; - } - elsif ( /^\s*protected\s+slots\s*:\s*$/ && $access ne "protected_slots" ) - { - $access = "protected_slots"; - } - elsif ( /^\s*public\s+slots\s*:\s*$/ && $access ne "public_slots" ) - { - $access = "public_slots"; - } - elsif ( /^\s*private\s+slots\s*:\s*$/ && $access ne "private_slots" ) - { - $access = "private_slots"; - } - - #### Preprocessor directive - - elsif( /^\s*#[\w\.-_]+/ ) { - - print "CPP: $_\n" if $debug; - - # skip lines carried on with \ - while( /\\\s*$/ ) { - if( !($_ = ) ) { - die "Bad Finish"; - } - print "CPP: Skipped: $_" if $debug; - } - } - - #### Typedef - - elsif( /^\s*typedef\s+(.*[&\*\s])\s*([\w-:_]+)\s*(\[[^\]]*\])*;\s*$/ ) { - # 1 2 3 4 - # 1: type name, possibly more than one - # 2: name of new type - # 3: possible array declaration(s) - # 4: anything else - print "TYPED: $2: $1\n" if $debug; - - if( ( $methInternal == 0 || $docInternal) - && ($methDeprecated == 0 || $docDeprecated) ) { - - addReference( $class."::".$2, $class.".html#".$2 ); - - $newNode = Ast::New( $2 ); - - $classNode->AddPropList( $access, $newNode ); - - $newNode->AddProp( "Keyword", "typedef" ); - $newNode->AddProp( "Description", $text ); - $newNode->AddProp( "See", $see ); - $newNode->AddProp( "MethInternal", $methInternal ); - $newNode->AddProp( "MethDeprecated", $methDeprecated ); - - $newNode->AddProp( "Type", $1 ); - $newNode->AddProp( "Array", $3 ); - } - - resetMemberDoc(); - } - - #### Enum - - elsif ( /^\s*enum\s+([\w_]*)\s*\{(.*)(\/\/.*)?/ ) - { - $enum = $1; - $tmp = $2; - $args = ""; - - # collect constants till } is found - - while ( !($tmp =~ /\}/) ) - { - $args = $args . $tmp; - $tmp = ; - } - - $_ = $tmp; - /^(.*)\}/; - $args = $args . $1; - - - # update Ast node - - if( ( !$methInternal || $docInternal) - && (!$methDeprecated || $docDeprecated) ) { - - addReference( $class."::".$enum, $class.".html#".$enum ); - - $see =~ s/^\s*$//g; - $text =~ s/^\s*$//g; - $args =~ s/^\s*$//g; - - $newNode = Ast::New( $enum ); - $classNode->AddPropList( $access, $newNode ); - $newNode->AddProp( "Keyword", "enum" ); - $newNode->AddProp( "Description", $text ); - $newNode->AddProp( "See", $see ); - $newNode->AddProp( "Constants", $args ); - $newNode->AddProp( "MethInternal", $methInternal ); - $newNode->AddProp( "MethDeprecated", $methDeprecated ); - } - - resetMemberDoc(); - } - - #### parse out Q_OBJECT macro - elsif ( /^\s*Q_OBJECT[^\w]+(\/\/.*)?/ ) { - # dont do anything - } - - - #### Variables - elsif ( /^[^\(]*$/ && /^(?:[\w_\:\s]+(?:<(?:(?:[-\w,_\s]|<(?:[-\w,+\s])+>)+)>)?(?:::)?)[\&\s*]+[\w_]+\s*(\[[^\]]*\])*\s*;\s*(\/\/.*)?$/ ) - # 1 2 3 4 5 6 - # 1: variable declarations have no () - # 2: data type, possibly several words as in 'unsigned int' and - # maybe containing templates <...> and :: - # 3: reference pointer or at least a space before variable name - # 4: variable name - # 5: array declaration - # 6: spaces and or comments - { - $str = $_; - - # split variable declaration: - # $1 = data type - # $2 = reference or pointer (why are there two \s's?) - # $3 = variable name - # $4 = array declaration - $str =~ /^(.+)([\s&\s\*])([\w_]+)\s*((\[[^\]]*\])*)\s*;\s*$/; - $var = $3; - $rest = $1.$2; - $array_declaration = $4; - - - if( ( !$methInternal || $docInternal) - && (!$methDeprecated || $docDeprecated) ) { - - addReference( $class."::".$var, $class.".html#".$var ); - - $rest =~ s/^\s*$//g; - $see =~ s/^\s*$//g; - $text =~ s/^\s*$//g; - - $newNode = Ast::New( $var ); - $classNode->AddPropList( $access, $newNode ); - $newNode->AddProp( "Keyword", "property" ); - $newNode->AddProp( "Type", $rest ); - $newNode->AddProp( "Array", $array_declaration); - $newNode->AddProp( "Description", $text ); - $newNode->AddProp( "See", $see ); - $newNode->AddProp( "MethInternal", $methInternal ); - $newNode->AddProp( "MethDeprecated", $methDeprecated ); - } - - resetMemberDoc(); - } - - - #### Nested class - - elsif ( /^\s*(class|struct)/ ) { - # TODO: Implement nested classes - # Till then, find end of declaration - print "NESTED $_\n" if $debug; - - if( !/;/ ) - { -# probably unterminated as yet - print "\nNESTED begin (for $methodName): $_\n" - if $debug == 1; - $foundMemberEnd = 0; - $lookingFor = ";"; - $depth = 0; - - while( $foundMemberEnd == 0 ) { - - if( /\{/ ) { - $depth += countReg( $_, "\{" ); - $lookingFor = "\}"; - } - - print "NESTED '$lookingFor': $_\n" if $debug == 1; - - if ( /$lookingFor/ ) - { - $depth -= countReg( $_, $lookingFor ); - - $foundMemberEnd = 1 if $depth <= 0; - } - - if ($foundMemberEnd == 0 ) { - $_ = ; - s#//.*$##g; - } - } - } - } - elsif ( m#^\s*///\s*(.*)# && $strictParser == 0 ) { - # DOC++ style "///" single-line member doccer - # will be used only if no other documentation exists. - - resetMemberDoc(); - - $text = $1; - - print "DOCXX-STYLE: $text\n" if $debug != 0; - } - - elsif ( /^\s*\/\// ) - { - # parse out comment - print "C++ comment: $_" if $debug != 0; - } - - elsif ( /^\s*\/\*\*+\s*(.*)\*+\/\s*/ && $strictParser == 0 ) { - # single-line "/**..*/" type doc line - # not allowed by the spec but we'll let it pass - # if we're being lenient. - - resetMemberDoc(); - - $text = $1; - print "ONELINE: $text\n" if $debug == 1; - } - - elsif( /^\s*\/\*[^*]/ ) { - # (multiline) comment - while( !/\*\// ) { - # skip lines till we find its end - $_ = ; - } - } - - elsif ( /^\s*\/\*\*+\s*(.*)/ ) { - # member documentation begins - processMemberDoc(); - } - - #### Member Function - - elsif ( /^\s*([^\(]*)\s+([^\s\(]+)\s*\((.*)(\/\/.*)?$/ ) - { - # note that the return type may contain - # template ! - processMethod( $1, $2, $3 ); - } - - } - -} # processClass - -sub processMethod { - - my( $returnType, $methodName, $rest ) = @_; - - - - -# ensure that everything after the operator keyword goes into the -# member name and not the return type - - if( $returnType =~ /operator/ ) { - $returnType =~ s/(operator.*)//g; - $methodName = $1." ".$methodName; - } - -# special case: if we have operator(), then the operator keyword got -# matched into methodName, the first "(" was thrown away and $rest -# contains ") (argumentlist)..." - if( ($methodName =~ /^operator$/) && ($rest =~ /^\)/) ) { - $methodName .= " ()"; - $rest =~ s/^\)\s*\(//; - } - -# ensure that "*" is part of return type - - if( $methodName =~ /^\s*([\*|\&]+)(.*)$/ ) { - $returnType = $returnType.$1; - $methodName = $2; - } - -## Read the parameters ($3 onward) - - $params = ""; - - # Find end of params - while ( !($rest =~ /^[^)]*\)(.*)(\/\/.*)?$/) ) - { - print "SEARCHING: $rest\n" if $debug == 1; - $params = $params . $rest; - ($rest = ) =~ s#//.*$##g; - } - - $rest =~ s#//.*$##g; - $_ = $rest; - /^([^\)]*)\)(.*)/; - - # include all parameters before ) - $params .= $1; - my($restOfLine) = $2; - - my($constness) = ""; - - if( $restOfLine =~ /^\s*const/ ) { - $constness = "const"; - } - -# need to skip inline function if it is there, or if the -# end of declaration is staggered for some other reason. - - if( ! /\)[\s\w=]*;/ ) - { -# probably unterminated as yet - print "\nINLINE begin (for $methodName): $_\n" if $debug == 1; - - $_ = $rest; - $foundMemberEnd = 0; - $lookingFor = ";"; - $depth = 0; - - while( $foundMemberEnd == 0 ) { - - if( /\{/ ) { - $depth += countReg( $_, "\{" ); - $lookingFor = "\}"; - } - - print "INLINE '$lookingFor': $_\n" if $debug == 1; - - if ( /$lookingFor/ ) - { - $depth -= countReg( $_, $lookingFor ); - - $foundMemberEnd = 1 if $depth <= 0; - } - - if ($foundMemberEnd == 0 ) { - $_ = ; - s#//.*$##g; - } - } - } - - # Register if not internal or deprecated - - if( ( !$methInternal || $docInternal) - && (!$methDeprecated || $docDeprecated) ) { - - $returnType =~ s/^\s*$//g; - $see =~ s/^\s*$//g; - $text =~ s/^\s*$//g; - $retText =~ s/^\s*$//g; - $params =~ s/^\s*$//g; - $constness =~ s/^\s*$//g; - - addReference( $class."::".$methodName, $class.".html#".$methodName ); - - $newNode = Ast::New( $methodName ); - $classNode->AddPropList( $access, $newNode ); - - $newNode->AddProp( "ReturnType", $returnType ); - $newNode->AddProp( "Const", $constness ); - $newNode->AddProp( "Parameters", $params ); - $newNode->AddProp( "Keyword", "method" ); - $newNode->AddProp( "Description", $text ); - $newNode->AddProp( "Returns", $retText ); - $newNode->AddProp( "See", $see ); - $newNode->AddProp( "Exceptions", $exceptions ); - $newNode->AddProp( "MethInternal", $methInternal ); - $newNode->AddProp( "MethDeprecated", $methDeprecated ); - - foreach $param ( keys %paramDesc ) { - $paramNode = Ast::New( $param ); - ($desc = $paramDesc{$param}) =~ s/^\s*$//g; - $paramNode->AddProp("Description", $desc ); - - $newNode->AddPropList( "ParamDoc", $paramNode ); - } - } - - resetMemberDoc(); -} # processMethod - -# -# Processes a doc comment -# - -sub processMemberDoc -{ - my( $endDocBlock ) = 0; - my( $paramFlag ) = 0; - my( $retFlag ) = 0; - - resetMemberDoc(); - - $lastLineBlank = 0; - -# allow documentation on first line only if -# we're being lenient. - - if( $strictParser == 0 ) { - $text = $1; - } - else { - $text = ""; - } - - $endDocBlock = 0; - - while ( $endDocBlock == 0 ) { - $_ = ; - $line = $_; - - if ( $paramFlag == 1 ) { - - if ( /^\s*\**\s*\@/ || /^\s*\**\s*\*\// ) { -#parameter ends. - $paramDesc{ $paramName } = $paramText; - $paramFlag = 0; - } - else { - /^\s*\**(.*)$/; - $paramText .= $1."\n"; - $_ = ""; - } - } - elsif ( $retFlag == 1 ) { - if ( /^\s*\**\s*\@/ || /^\s*\**\s*\*\// ) { - $retFlag = 0; - } - else { - /^\s*\*+(.*)$/; - $retText .= "\n$1"; - $_ = ""; - } - } - - if ( /^\s*(.*)\*+\// ) { -# end of member documentation - $endDocBlock = 1; - } - elsif ( /^(.*)\*+\/\s*$/ && ($strictParser == 0) ) { -# end of member documentation, with extraneous -# space before end tag -# only used if we're being lenient. - - $text = $text . $_ . '\n'; - - $endDocBlock = 1; - - print "BAD MEMBER END: $_\n" if $debug == 1; - } - elsif ( /^\s*\**\s*\@param\s+([^\s]+)\s(.*)$/ ) { -# "@param" - $paramName = $1; - $paramText = $2; - - $paramFlag = 1; - } - elsif ( /^\s*\**\s*\@return\s+(.*)/ ) { -# "@return" - - $retText = $1; - $retFlag = 1; - } - elsif( /^\s*\**\s*\@internal/ ) { -# "@internal" - $methInternal = 1; - } - elsif( /^\s*\**\s*\@deprecated/ ) { -# "@deprecated" - $methDeprecated = 1; - } - elsif ( /^\s*\**\s*\@exception\s+([:#\w_~]+)/ ) { -# "@exception" - $exceptions .= $1; - } - elsif ( /^\s*\**\s*\@see\s+([:#\w_~]+)/ ) { -# "@see" - $see .= ", " if $see ne ""; - - $c = $1; - $see .= $c; - } - elsif( /^\s*\**\s*\@(short|author|version)/ ) { -# ignore tags that cannot exist in -# member doc - } - elsif ( /^\s*\**\s*(.*)$/ ) { -# normal member documentation text, -# " * blah blah" - $text = $text. $1 . "\n"; - } # if - } # while still in doc block -} # processMemberDoc - -########################################################### -# -# Function -# processFile # -########################################################### - -sub processFile -{ - while ( ) - { - $line = $_; - - next if /^\s*$/; - - if( m#^\s*/\*[^*]# ) { -# skip multiline comment started with /* (but only one asterisk!) - while( !/\*\// ) { - $_ = ; - } - } - elsif ( m#^\s*/\*\*+\s*(.*)\*/\s*# && ($strictParser == 0) ) { - # single-line "/**..*/" type doc line - # not allowed by the spec but we'll let it pass - # if we're being lenient. - resetMemberDoc(); - $classText = $1; - $classShortText = $1; - print "ONELINE classdoc: $text\n" if $debug == 1; - } - elsif( /^\s*#[\w\.-_]+/ ) { - #### Preprocessor directive - print "CPP: $_\n" if $debug; - - # skip lines carried on with \ - while( /\\\s*$/ ) { - if( !($_ = ) ) { - die "Bad Finish"; - } - print "CPP: Skipped: $_" if $debug; - } - } - elsif ( /^\s*\/\*\*+\s*(.*)$/ ) - { - # start of class doc comment - $classSee = ""; - $classText = ""; - $classShortText = ""; - $lastLineBlank = 0; - - $classText = $1 if( $strictParser == 0 ); - - $end = 0; - while ( $end == 0 ) - { - $_ = ; - $line = $_; - - if ( /^\s*\*\// ) - { - # end of documentation, assume class - # declaration is next. - $end = 1; - } - elsif ( /^(.*)\*+\/\s*$/ && ($strictParser == 0) ) - { - # end of class documentation, with extraneous - # space before end tag - # only used if we are being lenient. - - $text = $text . $1 . '\n'; - - $end = 1; - - print "BAD CLASSDOC END: $_\n" if $debug == 1; - } - elsif ( /^\s*\**\s*\@see\s+([#\w_~]+)/ ) - { - # @see - if ( $classSee ne "" ) - { - $classSee .= ", "; - } - $c = $1; - $classSee .= $c; - } - elsif ( /^\s*\*?\s*\@author\s+(.*)/ ) - { - # @author - $classAuthor .= $1 . " "; - } - elsif ( /^\s*\**\s*\@version\s+(.*)/ ) - { - # @version - $classVersion .= $1 . " "; - } - elsif ( /^\s*\**\s*\@short\s+(.*)/ ) - { - # @short - $classShortText .= $1 . " "; - } - elsif ( /^\s*\**\s*\@deprecated/ ) - { - # @deprecated - $classDeprecated = 1; - } - elsif ( /^\s*\**\s*\@internal/ ) - { - # @internal - $classInternal = 1; - } - elsif ( /^\s*\**(.*)$/ ) - { - # normal documentation text - $lead = $1; - - # check for asterisk - if ( /^\s*\*+/ ) { - $classText .= $lead. "\n"; - } - else { - # preserve leading space. - $classText .= $_. "\n"; - } - } - } - $_ = ; - $line = $_; - - } # documentation if - - if ( /^(\s*template\s*<(([-\w,_\s]|<([-\w,+\s])+>)+)>)/ ) { - $classTmplArgs = $2; - - ($resetme = $1); - $resetme =~ s/([\W])/\\$1/g; - - s/$resetme//g; - } - - if ( !(/;/) && /^\s*(class|struct)\s+([-\w_]+)(.*)$/ ) - { - -# class declaration begins. - - #TODO: skip class if it doesn't have documentation - #and we aren't documenting NULL classes. - - $class = $2; - ($classInherits = $3) =~ s#//.*##g; - - # handle template-instantiation class - if($classInherits =~ - /^\s*(<([-\w,_\s]|<([-\w,+\s])+>)+>)/) { - $class .= $1; - $class =~ s/\s+//g; - } - - $classInherits =~ s/<([-\w,_\s]|<([-\w,+\s])+>)+>//g; - - print "\n $class " unless $quiet; - -# set default visibility - if( $1 eq "class" ) { - $access = "private"; - } else { - $access = "public"; - } - -# process everything in the class - processClass(); - } - - } # outer file while - - close( IN ); -} - -# -# -# - -sub addReference -{ - my( $target, $pointer) = @_; - - print KDOC $target."=".$pointer."\n"; - $classRef{ $target } = $pointer; -} - -# Reset the documentation variables for a class member. - -sub resetMemberDoc -{ - $exceptions = ""; - %paramDesc = (); - $paramName = ""; - $paramText = ""; - $retText = ""; - $see = ""; - $text = ""; - $methInternal = 0; - $methDeprecated=0; -} - -# -# Reset the documentation variables for a class. -# -sub resetClassDoc -{ - $classAuthor = ""; - $classDeprecated= 0; - $classInternal = 0; - $classSee = ""; - $classShortText = ""; - $classShortTextSet = 0; - $classTmplArgs = ""; - $classAbstract = 0; - $classText = ""; - $classVersion = ""; -} - -# Counts the number of times a regular expression occurs in a string - -sub countReg -{ - my( $str, $regexp ) = @_; - my( $count ) = 0; - - while( $str =~ /$regexp/ ) { - $count++; - - $str =~ s/$regexp//; - } - - return $count; -} - -# -# Display usage and quit with an error code. -# - -sub usage -{ -die<, Sirtaj Kang - -Usage: - kdoc [-a] [-M][-H][-T] [-a][-e][-i][-p][-q] [-L] - [-d] [-u ]
... - [-l ... ] - - -T Generate LaTeX documentation. - -M Generate man pages. - - -H Generate HTML documentation (default). - -d Directory for HTML and LaTeX output. - -u Base path/url by which this library will be accessed. - - -a Document methods/classes without explicit doc comment. - -e Skip deprecated methods and classes (\@deprecated tag) - -i Skip classes marked internal (\@internal tag) - -p Document private members. - -q Proceed quietly (display errors only) - - -L Path to kdoc libraries. Default is current dir, or - \$KDOCLIBS if it is set. - - The name of the kdoc library to create. - C++ headers to process. - - -l Cross reference these libraries. -EOF -} - -sub bumpArg -{ - return $1 if $1 ne ""; - my($real); - - $i = $i + 1; - - $real = $myargs[ $i ]; - $myargs[ $i ] = "-".$myargs[ $i ]; - - - return $real; -} - - -# -# Calls dumpDoc for each format for which output was requested. -# - -sub generateDocs -{ - - if( $genHTML == 0 && $genTeX == 0 && $genMan == 0) - { - $genHTML = 1; - require kdocHTML; - } - - if( $genHTML != 0 ) { - kdocHTML::dumpDoc( $name, $rootNode, $docPath ); - } - - if( $genTeX != 0 ) { - kdocTeX::dumpDoc( $name, $rootNode, $docPath ); - } - - if( $genMan != 0 ) { - kdocMan::dumpDoc( $name, $rootNode, $docPath ); - } - - print "Done.\n" unless $quiet; -} - -########################################################### -# -# Main -# -########################################################### - -if ( $#ARGV == -1 ) -{ - die "kdoc: No arguments. Type 'kdoc -h' for help.\n"; -} - -# -# process switches and args # -# - -$libFoundAt = -1; - -$i = 0; - -while( $i <=$#myargs ) -{ - $filename = $myargs[ $i ]; - if ( $filename =~ /^-d(.*)$/ ) { - - $docPath = bumpArg(); - } - elsif ( $filename =~ /^-u(.*)$/ ) { - $urlBase= bumpArg(); - } - elsif ( $filename =~ /^-L(.*)$/ ) { - $libPath = bumpArg(); - } - elsif ( $filename =~ /^-l(.*)$/ ) { - readLibrary( bumpArg() ); - } - elsif ( $filename =~ /^-a/ ) { - $documentAll = 1; - } - elsif ( $filename =~ /^-M/ ) { - $genMan = 1; - require kdocMan; - } - elsif ( $filename =~ /^-T/ ) { - $genTeX = 1; - require kdocTeX; - } - elsif ( $filename =~ /^-H/ ) { - $genHTML = 1; - require kdocHTML; - } - elsif ( $filename =~ /^-e/ ) { - $docDeprecated = 0; - } - elsif ( $filename =~ /^-D/ ) { - $debug = 1; - } - elsif ( $filename =~ /^-i/ ) { - $docInternal = 0; - } - elsif ( $filename =~ /^-p/ ) { - $dontDoPrivate = 0; - } - elsif ( $filename =~ /^-q/ ) { - $quiet = 1; - } - elsif( $filename =~ /^-v(.*)/ ) { - die "kdoc: $version (c) Torben Weis, Sirtaj S. Kang\n"; - } - elsif( $filename =~ /^-h/ || $filename =~ /^--help/ ) - { - usage(); - } - elsif( $filename =~ /^-(.*)/ ) { - die "kdoc: -$1 is an unsupported option. Type kdoc -h for help.\n"; - } - elsif( $lib eq "" ) { - $lib = $filename; - $libFoundAt = $i; - } - - $i = $i + 1; -} - -$urlBase = $docPath if $urlBase eq ""; - -usage() if $lib eq ""; - -#parse out path name for printed libName -( $name = $lib ) =~ s#.*/##g; - -$lib = $libPath."/".$lib.".kdoc"; - -open( KDOC, ">$lib" ) || die "Could not open $lib for writing\n"; -print KDOC "$urlBase\n"; - - -# check document output path - -if( !(-d $docPath)) -{ - if( system("mkdir $docPath") ) { - close ( KDOC ); - unlink( $lib ); - die "Document path '$docPath' doesn't exist and it couldn't\n". - "be created.\n"; - } -} - -# -# process each file -# - -foreach $i (0..$#myargs) -{ - $filename = $myargs[ $i ]; - if ( $filename =~ /^-(.*)$/ ) - { -#option... don't process - } - elsif( $i != $libFoundAt ) - { - print "Processing $filename:" unless $quiet; - push( @headerList, $filename ); - open( IN, $filename ) || die "Could not open $filename for input\n"; - - processFile(); - - print "\n" unless $quiet; - - close( IN ); - } -} - - -close( KDOC ); - -# reparent all parentless classes to root. - -$rootNode->Visit("main"); - -if( defined $classes ) { - - foreach $class ( @{$classes} ) - { - $className = $class->{"astNodeName"}; - - if ( !defined $parents{ $parents{$className} }) { - addClass( "<>", $parents{$className} ); - } - } -} - -Ast::UnVisit(); - -generateDocs(); - -# file ends diff --git a/deal.II/doc/auto/scripts/kdoc/kdocHTML.pm b/deal.II/doc/auto/scripts/kdoc/kdocHTML.pm deleted file mode 100644 index 4e866d5fb5..0000000000 --- a/deal.II/doc/auto/scripts/kdoc/kdocHTML.pm +++ /dev/null @@ -1,939 +0,0 @@ -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -package kdocHTML; - -## KDOC HTML output -# -# From main: -# children classRef classSource dontDoPrivate -# generatedByText headerList quiet - -require Ast; - -BEGIN -{ - $lib = ""; - $outputdir = "."; - $linkRef = 0; - $modname = "kdocHTML"; - %classList = (); -} - - -sub dumpDoc -{ - $genText = $main::generatedByText; - - ($lib, $root, $outputdir) = @_; - - print "Generating HTML documentation.\n" unless $main::quiet; - writeList(); - writeHier(); - writeHeaderList(); - - print "Generating HTMLized headers.\n" unless $main::quiet; - foreach $header ( @main::headerList ) { - markupCxxHeader( $header ); - } -} - -sub writeHeaderList -{ - - open(HDRIDX, ">$outputdir/header-list.html") - || die "Couldn't create $outputdir/header-list.html\n"; - - print HDRIDX<$lib Header Index -

$lib Header Index

-

-[Index] [Hierarchy] [Headers] -

-
-
    -EOF - - foreach $header ( sort @main::headerList ) { - $_ = $header; -# convert dashes to double dash, convert path to dash - s/-/--g/g; - s/\/|\./-/g; - - # never let a file name start with a '-' sign, since this makes - # some programs think the file name really was a parameter to the - # program. Filenames starting with '-' usually happen if you let - # kdoc work on files like '../../include/foo/bar.h', given the - # above substitution rules. Therefore: if a filename starts with - # '-', prepend a '_' - s/^-/_-/; - - print HDRIDX "\t
  • $header
  • \n"; - } -print HDRIDX "
\n
\n
$genText", - "
\n\n\n"; -} - -sub escape -{ - my( $str ) = @_; - - $str =~ s/&/\&/g; - $str =~ s//\>/g; - $str =~ s/"/\"/g; - - return $str; -} - -# In file names, we don't want to have the special characters be -# replaced by the rules '>' -> '>' etc., so we revert the -# replacement. The reason is that when giving Netscape the tag -# xyz , it looks for the file -# "abc<2>.html". Strange, eh? We'd like to replace filenames -# back to the original names, which is not a good idea also, since -# filenames containing <>&" are no good. Therefore, we stay with -# the HTML tags, but replace the '&' and ';' by ',' which should -# not be a character which appears in class and file names, but -# which has no special meaning for the shell either. -sub filenameUnescape -{ - my( $str ) = @_; - - $str =~ s/\&/,amp,/g; - $str =~ s/\</,lt,/g; - $str =~ s/\>/,gt,/g; - $str =~ s/\"/,quot,/g; - - return $str; -} - -sub writeList() -{ - - $root->Visit( $modname ); - - foreach $class ( @{$classes} ) - { - $classList{ $class->{'astNodeName'} } = $class; - } - - open ( LIBIDX, ">".$outputdir."/index.html" ) - || die "Couldn't write to ".$outputdir."/index.html" ; - - print LIBIDX<$lib Class Index -

$lib Class Index

-

-[Index] [Hierarchy] [Headers] -

-
- -EOF - - foreach $className ( sort keys %classList ) { - $class = $classList { $className }; - - $class->Visit( $modname ); - - $className = $astNodeName; - - # escape special characters in class names (e.g. <>&) - # however, we need to unescape them when using the - # class name as a file name - $astNodeName = escape( $astNodeName ); - - print LIBIDX "\n", "\t\n"; - - writeClass(); - - Ast::UnVisit(); - - } - - Ast::UnVisit(); - -print LIBIDX< -
-
", - "", - $astNodeName, "", - makeReferencedText( $ClassShort ), "
- - - - -
$genText
-Kdoc -
- -EOF - -} - -########################################################### -# -# Function -# makeReferencedText( text ) -# -########################################################### - -sub makeReferencedText -{ - local( $t ) = @_; - - while ( $t =~ /(\@ref\s+)([\w_\#~\d\:]+\W)/ ) - {## - $pat = $1.$2; - $ref = $2; - chop $ref; - $repl = findClassReference( $ref ) . " "; - $pat =~ s/\(/\\(/g; - $pat =~ s/\)/\\)/g; - $t =~ s/$pat/$repl/; - } - - $t =~ s//>/g; - $t =~ s/<\/p><p>/<\/p>

/g; - $t =~ s/\#([^\#]*)\#/$1<\/CODE>/g; - $t =~ s/\\begin\{verbatim\}/

/g;
-    $t =~ s/\\end\{verbatim\}/<\/pre>/g;
-    $t =~ s/\\begin\{itemize\}/
    /g; - $t =~ s/\\end\{itemize\}/<\/UL>/g; - $t =~ s/\\item/
  • /g; - $t =~ s/\{\\bf([^}]*)}/$1<\/b>/g; - $t =~ s/\\section\{([^}]*)\}/

    $1<\/H3>/g; - $t =~ s/\\subsection\{([^}]*)\}/

    $1<\/H4>/g; - $t =~ s/\\subsubsection\{([^}]*)\}/

    $1<\/H5>/g; - -#while($t =~ m/(\#([^\#]*)\#)/) -#{ -# $full = $1; -# $text = $2; -# $text =~ s//>/g; -# $text =~ s/\&/&/g; -# $t =~ s/$full/$text<\/CODE>/; -#} - return $t; -} - -########################################################### -# -# Function -# findClassReference( class ) -# -########################################################### - -sub findClassReference -{ - my( $c ) = @_; - my( $old ); - - - if ( $c eq "" ) { return ""; } - if ( $c eq "#" ) { return "#"; } - - $c =~ s/\#/::/g; - - $old = $c; - - if ( $c =~ /^\s*(\#|::)(.*)$/ ) - { - $c = "$className\:\:$2"; - $pref = $1; - $old =~ s/$pref//; - } - - if ( !defined $main::classRef{ $c } ) - { - if ( !defined $main::noErr{ $c } ) - { -# print main::ERROUT "$filename: '$c' undefined Reference\n\n"; - } - return $c; - } - else - { - if ( $c =~ /\:\:/ ) - { - return "". - escape($old).""; - } - else - { - return "". - escape($c).""; - } - } -} - -############# -# -# writeHier -- Write HTML Class Hierarchy -# -############# - -sub writeHier -{ - -open( HIER, ">".$outputdir."/hier.html" ) - ||die "Cannot write to $outputdir/hier.html"; - -print HIER <$lib Class Hierarchy - -

    $lib Class Hierarchy

    -

    -[Index] [Hierarchy] [Headers] -

    -
    -EOF - -printHierarchy( "<>" ); - -print HIER< - - - - - -
    $genText
    -Kdoc -
    - -EOF - -### here we are!! - # build a list of parents and children for each class - # use it to generate a tree of classes suitable for - # a tree view of the inheritance lattice - - # we may not use the %classList for the children information - # since some classes are parents but not in %classList (those - # classes that are found as base classes but are not documented - # within this module -# my (%kids); -# my (%parents); -# my (%classLevel); -# my ($classNames); -# -# foreach $className (keys %main::children) -# { -# $kids{$className} = $main::children{$className}; -# } -# -# foreach $className (keys %kids) -# { -# foreach $c (split /;/, $main::children{$className}) -# { -# $parents{$c} = $parents{$c} . $className . ";" -# if !($className eq "<>"); -# } -# } -# -# # build a list of all class names, irrespective of whether -# # they are documented or not. -# foreach $class (keys %kids, keys %parents, keys %classList) -# { -# $classNames = $classNames . $class . ";" -# if (! ($classNames =~ /$class;/) && -# ! ($class eq "<>")); -# } -# -# -# # now evaluate the list to get the proper hierarchy level -# # for each class. Loop until all classes are processed, -# # which may take some iterations since a class can only -# # be processed if all of its parents have been processed -# my ($unprocessedClasses); -# my ($classLevel); -# my ($maxParentLevel); -# $unprocessedClasses = 1; -# while ($unprocessedClasses == 1) -# { -# $unprocessedClasses = 0; -# foreach $class (split /;/, $classNames) -# { -# if (! defined $classLevel{$class}) -# { -# # if class has no children or no parents: assign -# # level zero. for classes with no parents, this -# # decision may later be revised -# if ((! $parents{$class}) || -# (! defined $parents{$class})) -# { -# $classLevel{$class} = 0; -# } -# else -# { -# foreach $parent (split /;/, $parents{$class}) -# { -# # find the maximum level any of the -# # children has -# $maxParentLevel = 0; -# -# # if the parent has not been processed, -# # then don't do so for this class also -# if (! defined $classLevel{$parent}) -# { -# $unprocessedClasses = 1; -# last; -# } -# else -# { -# if ($classLevel{$parent} > $maxParentLevel) -# { -# $maxParentLevel = $classLevel{$parent}; -# } -# } -# $classLevel{$class} = $maxParentLevel+1; -# } -# } -# } -# } -# } -# -# -# foreach $class (sort split /;/, $classNames ) -# { -# print "--> ", $class, ": $classLevel{$class} \n"; -# -# } -} - - -###### -# -# Dump the hierarchy for a particular class -# -###### - -sub printHierarchy -{ - my( $className ) = @_; - - print HIER "\t
  • ", findClassReference($className),"\n" - if $className ne "<>"; - - if( defined $main::classSource{ $className } ) { - print HIER " (",$main::classSource{$className},")\n"; - } - - if ( defined $main::children{$className} ) { - - print HIER "\t
      \n"; - - foreach $kid ( sort split /;/, $main::children{$className} ) - { - printHierarchy( $kid ); - } - print HIER "\t
    \n"; - } - - print HIER "\t
  • " if $className ne "<>"; -} - -# ############# -# -# Write out the documentation for a single class. -# -# ############# - -sub writeClass() -{ - open( CLASS, ">" . - $outputdir."/".filenameUnescape($astNodeName) . - ".html" - ) || die "Couldn't write to file " . - $outputdir."/".filenameUnescape($astNodeName).".html"; - - print CLASS<$astNodeName Class -\n -

    $astNodeName Class Reference

    -

    -[$lib Index] [$lib Hierarchy] -[Headers] -

    -
    -EOF - - print CLASS "

    This class is Deprecated.

    \n" if $Deprecated; - print CLASS "

    Internal class - general use not recommended.

    \n" - if $Internal; - - print CLASS "

    ", makeReferencedText( $ClassShort ), - " More...

    \n" - if $ClassShort ne ""; - - $_ = $Header; - s/-/--/g; - s/\/|\./-/g; - - # never let a file name start with a '-' sign, since this makes - # some programs think the file name really was a parameter to the - # program. Filenames starting with '-' usually happen if you let - # kdoc work on files like '../../include/foo/bar.h', given the - # above substitution rules. Therefore: if a filename starts with - # '-', prepend a '_' - s/^-/_-/; - - $escapedpath = $_; - -# include file - - print CLASS< - - #include <$Header> -\n -

    -EOF - - -# Template - - if( $class->{ "TmplArgs" } ne "" ) { - - print CLASS "\n

    Template Form: ", - "template < ", escape( $class->{ "TmplArgs" }), - " > $astNodeName

    \n"; - } - -# Inheritance - my ( $pcount ) = 0; - - if( defined $class->{ "Ancestors" } ) { - print CLASS "\n

    \nInherits: "; - - foreach $foreparent ( @{$Ancestors} ) { - print CLASS ", " if $pcount != 0; - $pcount = 1; - - print CLASS findClassReference( - $foreparent->{"astNodeName"} ); - - if( defined $main::classSource{$foreparent->{ - "astNodeName"}} ) { - print CLASS " (",$main::classSource{ - $foreparent->{"astNodeName"}},")"; - } - } - - print CLASS "\n<\P>"; - } - -# Now list members. - - $linkRef = 0; - - listMethods( "Public Members", $public ); - listMethods( "Public Slots", $public_slots ); - listMethods( "Protected Members", $protected ); - listMethods( "Protected Slots", $protected_slots ); - listMethods( "Signals", $signals ); - - if( $main::dontDoPrivate == 0 ) { - listMethods( "Private Members", $private ); - listMethods( "Private Slots", $private_slots ); - } -print CLASS< -EOF - -# Dump Description. - Ast::UnVisit(); - $class->Visit($modname); - writeClassDescription(); - -# Document members. - - $linkRef = 0; - - writeMemberDoc( "public", $public ); - writeMemberDoc( "public slot", $public_slots ); - writeMemberDoc( "protected", $protected ); - writeMemberDoc( "protected slot", $protected_slots ); - writeMemberDoc( "signal", $signals ); - - if( $main::dontDoPrivate == 0 ) { - writeMemberDoc( "private", $private ); - writeMemberDoc( "private slot", $private_slots ); - } - -# File Generation info - print CLASS "


    \n", - " -
    \n"; - - if( $Author ne "" || $Version ne "" ) { - print CLASS "\n
      "; - - print CLASS "
    • Author: ", escape($Author), "
    • \n" - if $Author ne ""; - - print CLASS "
    • Version: ", escape($Version), "
    • \n" - if $Version ne ""; - print CLASS "
    • $genText
    • \n"; - - print CLASS "
    "; - } else { - print CLASS "
    $genText
    \n"; - } - - print CLASS<
    -Kdoc -
    \n -EOF - -} - -###### -# Lists all methods of a particular visibility. -##### - -sub listMethods() -{ - my( $desc, $members ) = @_; - - return if !defined $members || $#{$members} == -1; - -print CLASS<$desc
    -
      -EOF - - foreach $member ( @{$members} ) { - $member->Visit($modname); - - print CLASS "
    • "; - - if( $Description eq "" && $See eq "" ) { - $link = "name=\""; - } else { - $link = "href=\"\#"; - } - - if( $Keyword eq "property" ) { - print CLASS escape($Type), - "", - escape($astNodeName), "", - escape($Array), - "\n"; - } - elsif( $Keyword eq "method" ) { - print CLASS escape($ReturnType), - " ", - escape($astNodeName), " (", - escape($Parameters), - ") ",$Const,"\n"; - } - elsif( $Keyword eq "enum" ) { - print CLASS "enum ", - escape($astNodeName)," {", - escape($Constants),"}\n"; - } - elsif( $Keyword eq "typedef" ) { - print CLASS "typedef ", escape($Type), " ", escape($astNodeName), - "", escape($Array), ""; - } - - print CLASS "
    • \n"; - - $linkRef += 1; - - Ast::UnVisit(); - } - -print CLASS< -EOF - -} - -sub writeClassDescription -{ - my( $term ) = ""; - my( $once ) = 0; - - if( $Description ne "" ) { - print CLASS "

      Detailed Description", - "

      \n

      \n"; - - $term = "


      \n"; - - $Description =~ s/\n(\s*\n)+/\n<\/p>

      \n/g; - - print CLASS "\n", makeReferencedText($Description) ,"\n

      "; - } - - if( $ClassSee ne "" ) { - print CLASS "

      See Also: "; - - $once = 0; - $term = "


      " if $term eq ""; - - foreach $item ( split /[\s,]+/, $ClassSee ) { - - if( $once ) { print CLASS ", "; } - else { $once = 1; } - - print CLASS findClassReference( $item ); - } - - print CLASS "

      \n"; - } - - print CLASS $term if $term ne ""; -} - -sub writeMemberDoc -{ - my( $visibility, $node ) = @_; - my( $once ) = 0; - my( $myvis ) = ""; - - return if !defined $node || $#{$node} == -1 ; - - foreach $member ( @{$node} ) { - $member->Visit($modname); - - if( $Description eq "" && $See eq "" ) { - $linkRef++; - Ast::UnVisit(); - next; - } - - if( $Keyword eq "property" ) { - print CLASS "

      ",refString(escape($Type)), - "", - "", - escape($astNodeName), "", - refString(escape($Array)), - " [", $visibility, "]", - "

      \n"; - } - elsif( $Keyword eq "method" ) { - $myvis = $visibility; - - if ( $ReturnType =~ /virtual/ ) { - $myvis .= " virtual"; - $ReturnType =~ s/\s*virtual\s*//g; - } - - if ( $ReturnType =~ /static/ ) { - $myvis .= " static"; - $ReturnType =~ s/\s*static\s*//g; - } - - print CLASS "

      ", - refString(escape($ReturnType)), - " ", - "", - escape($astNodeName), "(", - refString(escape($Parameters)), - ") $Const ", - "[", $myvis, "]

      \n"; - } - elsif( $Keyword eq "enum" ) { - print CLASS "

      enum ", - "", - escape($astNodeName), " (", - $Constants,") ", - "[", $visibility, "]

      \n"; - } - elsif( $Keyword eq "typedef" ) { - print CLASS "

      typedef ",refString(escape($Type)), - " ", - escape($astNodeName), - refString(escape($Array)), - " ", - "[", $visibility, "]

      "; - } - - print CLASS "

      Deprecated member.

      \n" - if $MethDeprecated; - print CLASS "

      For internal use only.

      \n" - if $MethInternal; - - $Description =~ s/\n(\s*\n)+/\n<\/p>

      \n/g; - - print CLASS "

      ",makeReferencedText($Description),"

      \n"; - - - if( $Keyword eq "method" ) { - - if( $#{$ParamDoc} != -1 ) { - print CLASS "
      Parameters:
      \n", - "\n"; - - foreach $parameter ( @{$ParamDoc} ) { - print CLASS - "\n"; - } - - print CLASS "
      \n", - $parameter->{"astNodeName"}; - - print CLASS - "\n", - makeReferencedText( - $parameter->{"Description"}), - "
      \n
      \n"; - - } - - print CLASS "
      Returns:
      \n", - makeReferencedText( $Returns ), - "
      \n" if $Returns ne ""; - - print CLASS "
      Throws:
      \n", - makeReferencedText( $Exceptions ), - "
      \n" if $Exceptions ne ""; - } - - if( $See ne "" ) { - print CLASS "
      See Also:
      "; - - $once = 0; - - foreach $item ( split /[\s,]+/, $See ) { - - if( $once ) { print CLASS ", "; } - else { $once = 1; } - - print CLASS findClassReference( $item ); - } - - print CLASS "
      \n"; - } - - print CLASS $term if $term ne ""; - - Ast::UnVisit(); - - $linkRef++; - } -} - -# -# Check and markup words that are in the symbol table. -# Use sparingly, since EVERY WORD is looked up in the table. -# - -sub refString -{ - my( $source ) = @_; - - foreach $werd ( split /[^\w><]+/, $source ) { - - $ref = findClassReference( $werd ); - if( $ref ne $werd ) { - $source =~ s/$werd/$ref/g; - } - } - - return $source; -} - -###################################################################### -# markupCxxHeader -- Converts the header into a semi-fancy HTML doc -###################################################################### - -$outputFilename = ""; - -# tokens -#$nonIdentifier="[^\w]+"; -#$keywords="if|union|class|struct|operator|for|while|do|goto|new|delete|friend|typedef|return|switch|const|inline|asm|sizeof|virtual|static"; -#$types="void|int|long|float|double|unsigned|char|bool|short"; - -# styles -#$keywordStyle="strong"; -#$typeStyle="u"; -#$stringStyle="i"; - -# Takes the path to a C++ source file, -# spits out a marked-up and cross-referenced HTML file. - -sub markupCxxHeader -{ - my( $filename ) = @_; - $className = ""; - my( $reference ); - my( @inheritance ); - my( $word ); - - open( HFILE, $filename ) || die "Couldn't open $filename to read.\n"; - - $_ = $filename; - # convert dashes to double dash, convert path to dash - s/-/--g/g; - s/\/|\./-/g; - - # never let a file name start with a '-' sign, since this makes - # some programs think the file name really was a parameter to the - # program. Filenames starting with '-' usually happen if you let - # kdoc work on files like '../../include/foo/bar.h', given the - # above substitution rules. Therefore: if a filename starts with - # '-', prepend a '_' - s/^-/_-/; - - $outputFilename = $_; - $outputFilename = $outputdir."/".$outputFilename; - - open( HTMLFILE, ">$outputFilename.html" ) - || die "Couldn't open $outputFilename to read.\n"; - - print HTMLFILE "\n$outputFilename\n". - "\n
      ";
      -
      -	while(  )
      -	{
      -
      -		s//\>/g;
      -		s/"/\"/g;
      -
      -		if( /^\s*(template.*\s+)?(class|struct)/ ) {
      -			$_ = refString($_);
      -		}
      -
      -		print HTMLFILE;
      -	}
      -
      -	print HTMLFILE "
      \n
      \n
      $genText", - "
      \n\n\n"; -} - -#sub Linkize -#{ -# my( $str ) = @_; -# -# $str =~ s/ /%20/g; -# $str =~ s//%3E/g; -# -# return $str; -#} - -1; - diff --git a/deal.II/doc/auto/scripts/kdoc/kdocMan.pm b/deal.II/doc/auto/scripts/kdoc/kdocMan.pm deleted file mode 100644 index 0a82f75df0..0000000000 --- a/deal.II/doc/auto/scripts/kdoc/kdocMan.pm +++ /dev/null @@ -1,379 +0,0 @@ -# kdocMan -- man page output for kdoc. -# Copyright(c) 1998, Sirtaj Singh Kang (taj@kde.org). - -# $Id$ - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -package kdocMan; - -require Ast; - -BEGIN { - $modname = "kdocMan"; - $outputdir = "."; - $genText = ""; - $className = ""; -} - -sub dumpDoc -{ - ( $lib, $root, $outputdir ) = @_; - - print "Generating man pages.\n" unless $main::quiet; - $genText = $main::generatedByText; - $datestamp = `date +%D`; - chop $datestamp; - - writeIndex(); - writeClasses(); -} - -sub writeIndex() -{ - @classNames = (); - %classNodes = (); - - foreach $class ( @{$root->{'classes'}} ) { - push( @classNames, $class->{'astNodeName'} ); - $classNodes{ $class->{'astNodeName'} } = $class; - } - - @classNames = sort @classNames; - - open( MANPAGE, ">$outputdir/$lib.1$lib" ) - || die "Couldn't write to $outputdir/$lib.1$lib\n"; - -print MANPAGE<"); - -print MANPAGE<{ "ClassShort" }; - - print MANPAGE "\n.TP 4\n.BI \"$class\"\n$short\n.PP\n"; - } - - -print MANPAGE<{'classes'}} ) { - $classNode->Visit( $modname ); - $className=$astNodeName; - writeClass(); - Ast::UnVisit(); - } -} - -sub writeClass -{ - ($fname = $astNodeName) =~ tr/[A-Z]/[a-z]/; - $fname .= ".3$lib"; - - $className = $astNodeName; - $Description = makeReferencedText( $Description ); - $Description =~ s/\n\s+/\n/g; - - open ( CLASSMAN, ">$outputdir/$fname" ) - || die "couldn't open $outputdir/$fname for writing.\n"; - - open( REDIR, ">$outputdir/$astNodeName.3$lib" ) - ||die "couldn't open $outputdir/$astNodeName.3$lib ". - " for writing.\n"; - - print REDIR ".so $fname\n"; - close REDIR; - - -print CLASSMAN< - -EOF - -# Internal or Deprecated - -print ".ti +1c\n.b \"Deprecated Class\"\n" if $Deprecated; -print ".ti +1c\n.b \"Internal use only\"\n" if $Internal; - - -print CLASSMAN<{"astNodeName"}; - - if( defined $main::classSource{ - $foreparent->{"astNodeName"}} ) { - print CLASSMAN " (", - $main::classSource{$foreparent->{"astNodeName"}},")"; - } - } - } - else { - print CLASSMAN "nothing"; - } - -print CLASSMAN<" ) { - print MANPAGE "$node"; - if( defined $main::classSource{ $node } ) { - print MANPAGE " (from ",$main::classSource{$node},")"; - } - print MANPAGE "\n"; - } - -# Recurse for each child class - if ( defined $main::children{$node} ) { - print MANPAGE ".in +1c\n"; - foreach $kid ( sort split /;/, $main::children{$node} ) - { - print MANPAGE ".br\n"; - writeHierarchy( $kid ); - } - - print MANPAGE ".in -1c\n"; - } -} - -sub makeReferencedText -{ - my( $str ) = @_; - - $str =~ s/\@ref(\s+[-:#\w\._]+)/\n.BI "$1"\n/g; - - return $str; -} - -sub listMembers -{ - my( $access, $nodelist ) = @_; - my( $node ); - - return if !defined $nodelist || $#{$nodelist} == -1; - -print CLASSMAN<Visit( $modname ); - - print CLASSMAN ".ti -1c\n"; - - if( $Keyword eq "property" ) { - $Type =~ s/^\s+//g; - $Type =~ s/\s+$//g; - print CLASSMAN ".BI \"$Type $astNodeName\"\n.br\n"; - } - elsif( $Keyword eq "method" ) { - $ReturnType =~ s/^\s+//g; - $ReturnType =~ s/\s+$//g; - $ReturnType .= " " if $ReturnType ne ""; - - print CLASSMAN ".BI \"$ReturnType$astNodeName ", - "($Parameters) $Const\"\n.br\n"; - } - elsif( $Keyword eq "enum" ) { - print CLASSMAN ".BI \"", - "enum $astNodeName {$Constants}\"\n.br\n"; - } - elsif( $Keyword eq "typedef" ) { - print CLASSMAN ".BI \"", - "typedef $astNodeName\"\n.br\n"; - } - Ast::UnVisit(); - } - -print CLASSMAN<Visit( $modname ); - - if( $Description eq "" && $See eq "" ) { - Ast::UnVisit(); - next; - } - - if( $Keyword eq "property" ) { - $Type =~ s/^\s+//g; - print CLASSMAN ".SH \"$Type $className","::", - "$astNodeName\"\n"; - } - elsif( $Keyword eq "method" ) { - $ReturnType =~ s/^\s+//g; - $ReturnType =~ s/\s+$//g; - $ReturnType .= " " if $ReturnType ne ""; - - print CLASSMAN ".SH \"$ReturnType$className", - "::","$astNodeName ","($Parameters) $Const\"\n"; - } - elsif( $Keyword eq "enum" ) { - print CLASSMAN ".SH \"", - "enum $className","::", - "$astNodeName {$Constants}\"\n"; - } - elsif( $Keyword eq "typedef" ) { - print CLASSMAN ".SH \"", "typedef $className", - "::","$astNodeName\"\n"; - } - -# Internal or Deprecated - - print ".ti +1c\n.b \"Deprecated member\"\n" if $MethDeprecated; - print ".ti +1c\n.b \"Internal use only\"\n" if $MethInternal; - -# Description - print CLASSMAN makeReferencedText($Description), - "\n.br\n" if $Description ne ""; - -# Parameters - if( $Keyword eq "method" ) { - if( $#{$ParamDoc} != -1 ) { - print CLASSMAN "\n.br\n.in +1c\n", - "Parameters\n.in +1c\n."; - - foreach $parameter ( @{$ParamDoc} ) { -print CLASSMAN ".br\n.BI \"", $parameter->{"astNodeName"}, - "\"\n.in +1c\n", - $parameter->{"Description"}, "\n.in -1c\n"; - } -print CLASSMAN< $outputdir/$name.tex") - || die "Couldn't create $outputdir/".$name.".tex.\n"; - - print TEX<Visit($modname); - - foreach $class ( @{$classes} ) { - - $class->Visit($modname); - - $inPre = 0; - $doc = ""; - - foreach $line ( split /\n/, $Description ) { - if( $line =~ /<(pre|PRE)>/ ) { - $inPre = 1; - $doc .= "\\begin{verbatim}\n"; - next; - } - if( $line =~ m## ) { - $inPre = 0; - $doc .= "\\end{verbatim}\n"; - next; - } - if( !$inPre ) { - $line =~ s/\@ref(\s*(#|::))?//g; - $line =~ s/([~#\$\\\&%#_\{\}])/\\$1/g; - $line =~ s/<(code|pre)>/\\texttt\{/g; - $line =~ s/<\/(code|pre)>/}/g; - $line =~ s/([<>])/\\texttt\{$1\} /g; - $line =~ s/~/\\texttt{~}\\relax /g; - } - - $doc .= $line."\n"; - } - - $ClassName = escape( $astNodeName ); - $Header = escape( $Header ); - $ClassSee = escape( $ClassSee ); - - print TEX<{ "TmplArgs" } ne "" ) { - print TEX "\\begin{description}\n", - "\\item{template form:}", - "\\texttt{template <", escape( $class->{ "TmplArgs" } ), - "> ", - $ClassName, "}\n"; - - print TEX "\\end{description}\n"; - } - - if( defined $class->{ "Ancestors" } ){ - print TEX "\\begin{description}\n", - "\\item{inherits:}"; - - foreach $ancestor ( @{$Ancestors} ) { - $ancName = $ancestor->{"astNodeName"}; - - $str = " ".$ancName; - - if( defined $main::classSource{ $ancName } ) { - $str .="(".$main::classSource{$ancName}. - ")"; - } - - print TEX escape( $str ),"\n"; - } - - print TEX "\\end{description}\n"; - } - - - if( $Author ne "" || $Version ne "" || $ClassShort ne "" - || $ClassSee ne "" ) { - print TEX "\\begin{description}\n"; - - print TEX "\\item[Description:] ", escape( $ClassShort ),"\n" - if $ClassShort ne ""; - print TEX "\\item[Version:] ", escape( $Version ),"\n" - if $Version ne ""; - - print TEX "\\item[Author:] ", escape( $Author ),"\n" - if $Author ne ""; - - print TEX "\\item[See Also:] ", escape( $ClassSee ),"\n" - if $ClassSee ne ""; - - print TEX "\\end{description}\n"; - } - - print TEX "$doc\n\n" if $Description ne ""; - - dumpMembers( "public members", $public ) - if defined $class->{"public"}; - dumpMembers( "public slots", $public_slots ) - if defined $class->{"public_slots"}; - dumpMembers( "protected members", $protected ) - if defined $class->{"protected"}; - dumpMembers( "protected slots", $protected_slots ) - if defined $class->{"protected_slots"}; - dumpMembers( "signals", $signals ) - if defined $class->{"signals"}; - - if( $main::dontDoPrivate == 0 ) { - dumpMembers( "private members", $private ) - if defined $class->{"private"}; - dumpMembers( "private slots", $private_slots ) - if defined $class->{"private_slots"}; - } - - Ast::UnVisit(); - } - - Ast::UnVisit(); - - print TEX "\\printindex\n\\end{document}\n"; - -} - -sub dumpMembers -{ - my( $access, $nodes ) = @_; - - print TEX "\\subsection{$access}\n"; - - foreach $member ( @{$nodes} ) { - - $member->Visit($modname); - - $inPre = 0; - $doc = ""; - - foreach $line ( split /\n/, $Description ) { - if( $line =~ /<(pre|PRE)>/ ) { - $inPre = 1; - $doc .= "\\begin{verbatim}\n"; - next; - } - if( $line =~ /<\/(pre|PRE)>/ ) { - $inPre = 0; - $doc .= "\\end{verbatim}\n"; - next; - } - if( !$inPre ) { - $line =~ s/\@ref(\s*(#|::))?//g; - $line =~ s/([~#\$\\\&%#_\{\}])/\\$1/g; - $line =~ s/<(code|pre)>/\\texttt\{/g; - $line =~ s/<\/(code|pre)>/}/g; - $line =~ s/([<>])/\\texttt\{$1\} /g; - $line =~ s/~/\\texttt{~}\\relax /g; - } - - $doc .= $line."\n"; - } - - $astNodeName = escape( $astNodeName ); - - - print TEX<]+)/\\texttt\{$1\}/g; - $str =~ s/~/\\mtl /g; - - return $str; -} - -1; diff --git a/deal.II/doc/auto/scripts/process-tex b/deal.II/doc/auto/scripts/process-tex deleted file mode 100644 index 0555338d5f..0000000000 --- a/deal.II/doc/auto/scripts/process-tex +++ /dev/null @@ -1,10 +0,0 @@ -while (<>) { - goto END_HEADER if /begin.document./; -} - - -END_HEADER: - -while (<>) { - print unless (/end\{document\}/); -} diff --git a/deal.II/doc/auto/scripts/validate-xrefs.pl b/deal.II/doc/auto/scripts/validate-xrefs.pl deleted file mode 100644 index 30b7bf9e67..0000000000 --- a/deal.II/doc/auto/scripts/validate-xrefs.pl +++ /dev/null @@ -1,104 +0,0 @@ -# $Id$ -# Check whether references in HTML files are valid or -# point to non-existing files/links/etc -# -# Author: Wolfgang Bangerth, 2000 - - -# set this to 1 if you want verbose output -$debug = 0; - -foreach $filename (@ARGV) { - open IN, $filename - or die "---Can't open file `$filename'\n"; - - print "File: $filename\n" if $debug; - while () { - # first find all hrefs - while ( /<\s*a\s+href=\"?(.*?)[\s\"]/gi ) { - # then decide whether they are relevant for - # our purpose - $link = $1; - - if ( $link =~ /^mailto|http:\/\//i ) { - # link is external. don't check it - print "external link: $link\n" if $debug; - next; - } - elsif ( $link =~ /^#(.*)/ ) - { - # this is a reference within this file. try to - # find its anchor - $internal_ref = $1; - print "internal reference: $link\n" if $debug; - - open IN2, $filename; - $found = 0; - while ( ) { - while ( / ) { - while ( /