home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.rsa.com
/
2014.05.ftp.rsa.com.tar
/
ftp.rsa.com
/
pub
/
dsg
/
public
/
doxygen
/
doxygen-1_2_13_20020203-RSA_EXTENSIONS-patch
< prev
next >
Wrap
Text File
|
2014-05-02
|
376KB
|
12,882 lines
Index: VERSION
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/VERSION,v
retrieving revision 1.1.1.7
retrieving revision 1.2
diff -b -c -b -c -r1.1.1.7 -r1.2
*** VERSION 7 Feb 2002 23:10:02 -0000 1.1.1.7
--- VERSION 9 Feb 2002 13:33:21 -0000 1.2
***************
*** 1 ****
! 1.2.13-20020203
--- 1 ----
! 1.2.13-20020203 (RSA_EXTENSIONS)
Index: build.bigbird
===================================================================
RCS file: build.bigbird
diff -N build.bigbird
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- build.bigbird 12 Mar 2002 10:52:47 -0000 1.2
***************
*** 0 ****
--- 1,7 ----
+ #!/bin/sh
+ #
+ # build doxygen on bigbird
+ #
+ PATH=/opt/gnu/bin:$PATH; export PATH
+ ./configure --install ginstall $@
+ make
Index: doxygen.dsp
===================================================================
RCS file: doxygen.dsp
diff -N doxygen.dsp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- doxygen.dsp 5 Mar 2002 00:08:57 -0000 1.1
***************
*** 0 ****
--- 1,709 ----
+ # Microsoft Developer Studio Project File - Name="doxygen" - Package Owner=<4>
+ # Microsoft Developer Studio Generated Build File, Format Version 6.00
+ # ** DO NOT EDIT **
+
+ # TARGTYPE "Win32 (x86) External Target" 0x0106
+
+ CFG=doxygen - Win32 Debug
+ !MESSAGE This is not a valid makefile. To build this project using NMAKE,
+ !MESSAGE use the Export Makefile command and run
+ !MESSAGE
+ !MESSAGE NMAKE /f "doxygen.mak".
+ !MESSAGE
+ !MESSAGE You can specify a configuration when running NMAKE
+ !MESSAGE by defining the macro CFG on the command line. For example:
+ !MESSAGE
+ !MESSAGE NMAKE /f "doxygen.mak" CFG="doxygen - Win32 Debug"
+ !MESSAGE
+ !MESSAGE Possible choices for configuration are:
+ !MESSAGE
+ !MESSAGE "doxygen - Win32 Release" (based on "Win32 (x86) External Target")
+ !MESSAGE "doxygen - Win32 Debug" (based on "Win32 (x86) External Target")
+ !MESSAGE
+
+ # Begin Project
+ # PROP AllowPerConfigDependencies 0
+ # PROP Scc_ProjName ""
+ # PROP Scc_LocalPath ""
+
+ !IF "$(CFG)" == "doxygen - Win32 Release"
+
+ # PROP BASE Use_MFC
+ # PROP BASE Use_Debug_Libraries 0
+ # PROP BASE Output_Dir "Release"
+ # PROP BASE Intermediate_Dir "Release"
+ # PROP BASE Cmd_Line "NMAKE /f doxygen.mak"
+ # PROP BASE Rebuild_Opt "/a"
+ # PROP BASE Target_File "doxygen.exe"
+ # PROP BASE Bsc_Name "doxygen.bsc"
+ # PROP BASE Target_Dir ""
+ # PROP Use_MFC
+ # PROP Use_Debug_Libraries 0
+ # PROP Output_Dir "Release"
+ # PROP Intermediate_Dir "Release"
+ # PROP Cmd_Line "make msvc"
+ # PROP Rebuild_Opt ""
+ # PROP Target_File "bin\doxygen.exe"
+ # PROP Bsc_Name ""
+ # PROP Target_Dir ""
+
+ !ELSEIF "$(CFG)" == "doxygen - Win32 Debug"
+
+ # PROP BASE Use_MFC
+ # PROP BASE Use_Debug_Libraries 1
+ # PROP BASE Output_Dir "Debug"
+ # PROP BASE Intermediate_Dir "Debug"
+ # PROP BASE Cmd_Line "NMAKE /f doxygen.mak"
+ # PROP BASE Rebuild_Opt "/a"
+ # PROP BASE Target_File "doxygen.exe"
+ # PROP BASE Bsc_Name "doxygen.bsc"
+ # PROP BASE Target_Dir ""
+ # PROP Use_MFC
+ # PROP Use_Debug_Libraries 1
+ # PROP Output_Dir "Debug"
+ # PROP Intermediate_Dir "Debug"
+ # PROP Cmd_Line "make msvc debug"
+ # PROP Rebuild_Opt ""
+ # PROP Target_File "bin\doxygen.exe"
+ # PROP Bsc_Name ""
+ # PROP Target_Dir ""
+
+ !ENDIF
+
+ # Begin Target
+
+ # Name "doxygen - Win32 Release"
+ # Name "doxygen - Win32 Debug"
+
+ !IF "$(CFG)" == "doxygen - Win32 Release"
+
+ !ELSEIF "$(CFG)" == "doxygen - Win32 Debug"
+
+ !ENDIF
+
+ # Begin Group "Source Files"
+
+ # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ # Begin Source File
+
+ SOURCE=.\src\ce_lex.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\ce_parse.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\classdef.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\classlist.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\code.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\config.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\cppvalue.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\debug.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\declinfo.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\defargs.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\defgen.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\define.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\definition.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\diagram.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doc.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\dot.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doxygen.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doxysearch.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doxytag.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\entry.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\filedef.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\filename.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\formula.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\ftvhelp.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\gifenc.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\groupdef.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\htmlgen.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\htmlhelp.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\image.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\index.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\instdox.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\language.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\latexgen.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\logos.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\main.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\mangen.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\memberdef.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\membergroup.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\memberlist.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\membername.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\message.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\namespacedef.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\outputgen.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\outputlist.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\packagedef.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\pre.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\reflist.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\rtfgen.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\scanner.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\searchindex.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\suffixtree.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\tagreader.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\util.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\version.cpp
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\xmlgen.cpp
+ # End Source File
+ # End Group
+ # Begin Group "Header Files"
+
+ # PROP Default_Filter "h;hpp;hxx;hm;inl"
+ # Begin Source File
+
+ SOURCE=.\src\bufstr.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\ce_parse.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\classdef.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\classlist.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\code.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\config.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\constexp.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\cppvalue.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\debug.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\declinfo.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\defargs.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\defgen.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\define.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\definition.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\diagram.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doc.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\dot.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doxygen.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\entry.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\example.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\filedef.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\filename.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\formula.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\ftvhelp.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\gifenc.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\groupdef.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\htmlgen.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\htmlhelp.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\image.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\index.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\instdox.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\lang_cfg.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\language.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\latexgen.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\logos.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\mangen.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\memberdef.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\membergroup.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\memberlist.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\membername.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\message.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\namespacedef.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\outputgen.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\outputlist.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\packagedef.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\page.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\pre.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\qtbc.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\reflist.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\rtfgen.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\scanner.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\searchindex.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\section.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\sortdict.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\suffixtree.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\tagreader.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_adapter.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_br.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_cn.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_cz.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_de.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_dk.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_en.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_es.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_fi.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_fr.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_gr.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_hr.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_hu.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_it.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_jp.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_kr.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_nl.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_no.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_pl.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_pt.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_ro.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_ru.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_se.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_si.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_sk.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\translator_ua.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\treeview.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\unistd.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\util.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\version.h
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\xmlgen.h
+ # End Source File
+ # End Group
+ # Begin Group "Resource Files"
+
+ # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ # End Group
+ # Begin Source File
+
+ SOURCE=.\src\code.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\config.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\constexp.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\declinfo.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\defargs.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doc.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\doxytag.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\pre.l
+ # End Source File
+ # Begin Source File
+
+ SOURCE=.\src\scanner.l
+ # End Source File
+ # End Target
+ # End Project
Index: doxygen.dsw
===================================================================
RCS file: doxygen.dsw
diff -N doxygen.dsw
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- doxygen.dsw 5 Mar 2002 00:08:57 -0000 1.1
***************
*** 0 ****
--- 1,29 ----
+ Microsoft Developer Studio Workspace File, Format Version 6.00
+ # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+ ###############################################################################
+
+ Project: "doxygen"=.\doxygen.dsp - Package Owner=<4>
+
+ Package=<5>
+ {{{
+ }}}
+
+ Package=<4>
+ {{{
+ }}}
+
+ ###############################################################################
+
+ Global:
+
+ Package=<5>
+ {{{
+ }}}
+
+ Package=<3>
+ {{{
+ }}}
+
+ ###############################################################################
+
Index: addon/doxywizard/Makefile.doxywizard
===================================================================
RCS file: addon/doxywizard/Makefile.doxywizard
diff -N addon/doxywizard/Makefile.doxywizard
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/doxywizard/Makefile.doxywizard 20 Nov 2001 05:17:17 -0000 1.1.1.2
***************
*** 0 ****
--- 1,202 ----
+ #############################################################################
+ # Makefile for building ../../bin/doxywizard
+ # Generated by tmake at 18:58, 2001/11/18
+ # Project: doxywizard
+ # Template: app.t
+ #############################################################################
+
+ ####### Compiler, tools and options
+
+ CC = gcc
+ CXX = g++
+ CFLAGS = -pipe -Wall -W -fno-exceptions -O2 -DNO_DEBUG
+ CXXFLAGS= -pipe -Wall -W -fno-exceptions -O2 -DNO_DEBUG
+ INCPATH = -I../../src -I$(QTDIR)/include
+ LINK = g++
+ LFLAGS =
+ LIBS = -L../../lib -ldoxycfg -L$(QTDIR)/lib -lqt -L/usr/X11R6/lib -lXext -lX11 -lm
+ MOC = moc
+
+ TAR = tar -cf
+ GZIP = gzip -9f
+
+ ####### Files
+
+ HEADERS = doxywizard.h \
+ version.h \
+ pagewidget.h \
+ inputstring.h \
+ inputbool.h \
+ inputstrlist.h \
+ inputint.h \
+ pixmaps.h
+ SOURCES = doxywizard.cpp \
+ version.cpp \
+ pagewidget.cpp \
+ inputstring.cpp \
+ inputbool.cpp \
+ inputstrlist.cpp \
+ inputint.cpp \
+ pixmaps.cpp
+ OBJECTS = obj/doxywizard.o \
+ obj/version.o \
+ obj/pagewidget.o \
+ obj/inputstring.o \
+ obj/inputbool.o \
+ obj/inputstrlist.o \
+ obj/inputint.o \
+ obj/pixmaps.o
+ SRCMOC = moc/moc_doxywizard.cpp \
+ moc/moc_pagewidget.cpp \
+ moc/moc_inputstring.cpp \
+ moc/moc_inputbool.cpp \
+ moc/moc_inputstrlist.cpp \
+ moc/moc_inputint.cpp
+ OBJMOC = obj/moc_doxywizard.o \
+ obj/moc_pagewidget.o \
+ obj/moc_inputstring.o \
+ obj/moc_inputbool.o \
+ obj/moc_inputstrlist.o \
+ obj/moc_inputint.o
+ DIST =
+ TARGET = ../../bin/doxywizard
+
+ ####### Implicit rules
+
+ .SUFFIXES: .cpp .cxx .cc .C .c
+
+ .cpp.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .cxx.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .cc.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .C.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .c.o:
+ $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
+
+ ####### Build rules
+
+ all: $(TARGET)
+
+ $(TARGET): $(OBJECTS) $(OBJMOC)
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
+
+ moc: $(SRCMOC)
+
+ tmake:
+ tmake doxywizard.pro
+
+ dist:
+ $(TAR) doxywizard.tar doxywizard.pro $(SOURCES) $(HEADERS) $(DIST)
+ $(GZIP) doxywizard.tar
+
+ clean:
+ -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET)
+ -rm -f *~ core
+
+ ####### Compile
+
+ obj/doxywizard.o: doxywizard.cpp \
+ doxywizard.h \
+ pagewidget.h \
+ inputbool.h \
+ input.h \
+ inputstring.h \
+ qtbc.h \
+ inputstrlist.h \
+ inputint.h \
+ version.h \
+ pixmaps.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/doxywizard.o doxywizard.cpp
+
+ obj/version.o: version.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/version.o version.cpp
+
+ obj/pagewidget.o: pagewidget.cpp \
+ pagewidget.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/pagewidget.o pagewidget.cpp
+
+ obj/inputstring.o: inputstring.cpp \
+ inputstring.h \
+ qtbc.h \
+ input.h \
+ pagewidget.h \
+ pixmaps.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputstring.o inputstring.cpp
+
+ obj/inputbool.o: inputbool.cpp \
+ inputbool.h \
+ input.h \
+ pagewidget.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputbool.o inputbool.cpp
+
+ obj/inputstrlist.o: inputstrlist.cpp \
+ inputstrlist.h \
+ input.h \
+ pagewidget.h \
+ pixmaps.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputstrlist.o inputstrlist.cpp
+
+ obj/inputint.o: inputint.cpp \
+ inputint.h \
+ input.h \
+ pagewidget.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/inputint.o inputint.cpp
+
+ obj/pixmaps.o: pixmaps.cpp \
+ pixmaps.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/pixmaps.o pixmaps.cpp
+
+ obj/moc_doxywizard.o: moc/moc_doxywizard.cpp \
+ doxywizard.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_doxywizard.o moc/moc_doxywizard.cpp
+
+ obj/moc_pagewidget.o: moc/moc_pagewidget.cpp \
+ pagewidget.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_pagewidget.o moc/moc_pagewidget.cpp
+
+ obj/moc_inputstring.o: moc/moc_inputstring.cpp \
+ inputstring.h \
+ qtbc.h \
+ input.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputstring.o moc/moc_inputstring.cpp
+
+ obj/moc_inputbool.o: moc/moc_inputbool.cpp \
+ inputbool.h \
+ input.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputbool.o moc/moc_inputbool.cpp
+
+ obj/moc_inputstrlist.o: moc/moc_inputstrlist.cpp \
+ inputstrlist.h \
+ input.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputstrlist.o moc/moc_inputstrlist.cpp
+
+ obj/moc_inputint.o: moc/moc_inputint.cpp \
+ inputint.h \
+ input.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/moc_inputint.o moc/moc_inputint.cpp
+
+ moc/moc_doxywizard.cpp: doxywizard.h
+ $(MOC) doxywizard.h -o moc/moc_doxywizard.cpp
+
+ moc/moc_pagewidget.cpp: pagewidget.h
+ $(MOC) pagewidget.h -o moc/moc_pagewidget.cpp
+
+ moc/moc_inputstring.cpp: inputstring.h
+ $(MOC) inputstring.h -o moc/moc_inputstring.cpp
+
+ moc/moc_inputbool.cpp: inputbool.h
+ $(MOC) inputbool.h -o moc/moc_inputbool.cpp
+
+ moc/moc_inputstrlist.cpp: inputstrlist.h
+ $(MOC) inputstrlist.h -o moc/moc_inputstrlist.cpp
+
+ moc/moc_inputint.cpp: inputint.h
+ $(MOC) inputint.h -o moc/moc_inputint.cpp
+
Index: addon/doxywizard/doxywizard.pro.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/addon/doxywizard/doxywizard.pro.in,v
retrieving revision 1.1.1.7
retrieving revision 1.3
diff -b -c -b -c -r1.1.1.7 -r1.3
*** addon/doxywizard/doxywizard.pro.in 7 Feb 2002 23:10:03 -0000 1.1.1.7
--- addon/doxywizard/doxywizard.pro.in 7 Feb 2002 23:29:19 -0000 1.3
***************
*** 50,55 ****
--- 50,57 ----
# extra C++ compiler options
INCLUDEPATH += ../../src
+ TMAKE_CFLAGS += -DRSA_EXTENSIONS
+ TMAKE_CXXFLAGS += -DRSA_EXTENSIONS
win32:TMAKE_CXXFLAGS += -DQT_DLL
win32:INCLUDEPATH += .
Index: addon/xmlparse/Doxyfile
===================================================================
RCS file: addon/xmlparse/Doxyfile
diff -N addon/xmlparse/Doxyfile
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/Doxyfile 30 Sep 2001 22:25:24 -0000 1.1.1.2
***************
*** 0 ****
--- 1,161 ----
+ # Doxyfile 1.2.8-20010715
+
+ #---------------------------------------------------------------------------
+ # General configuration options
+ #---------------------------------------------------------------------------
+ PROJECT_NAME = xmlparse
+ PROJECT_NUMBER =
+ OUTPUT_DIRECTORY = doc
+ OUTPUT_LANGUAGE = English
+ EXTRACT_ALL = YES
+ EXTRACT_PRIVATE = YES
+ EXTRACT_STATIC = YES
+ HIDE_UNDOC_MEMBERS = NO
+ HIDE_UNDOC_CLASSES = NO
+ BRIEF_MEMBER_DESC = YES
+ REPEAT_BRIEF = YES
+ ALWAYS_DETAILED_SEC = NO
+ FULL_PATH_NAMES = NO
+ STRIP_FROM_PATH =
+ INTERNAL_DOCS = NO
+ CLASS_DIAGRAMS = YES
+ SOURCE_BROWSER = YES
+ INLINE_SOURCES = NO
+ STRIP_CODE_COMMENTS = YES
+ CASE_SENSE_NAMES = YES
+ SHORT_NAMES = NO
+ HIDE_SCOPE_NAMES = NO
+ VERBATIM_HEADERS = YES
+ SHOW_INCLUDE_FILES = YES
+ JAVADOC_AUTOBRIEF = NO
+ INHERIT_DOCS = YES
+ INLINE_INFO = YES
+ SORT_MEMBER_DOCS = YES
+ DISTRIBUTE_GROUP_DOC = NO
+ TAB_SIZE = 8
+ ENABLED_SECTIONS =
+ GENERATE_TODOLIST = YES
+ GENERATE_TESTLIST = YES
+ GENERATE_BUGLIST = YES
+ ALIASES =
+ MAX_INITIALIZER_LINES = 30
+ OPTIMIZE_OUTPUT_FOR_C = NO
+ SHOW_USED_FILES = YES
+ #---------------------------------------------------------------------------
+ # configuration options related to warning and progress messages
+ #---------------------------------------------------------------------------
+ QUIET = NO
+ WARNINGS = YES
+ WARN_IF_UNDOCUMENTED = YES
+ WARN_FORMAT =
+ WARN_LOGFILE =
+ #---------------------------------------------------------------------------
+ # configuration options related to the input files
+ #---------------------------------------------------------------------------
+ INPUT = .
+ FILE_PATTERNS = *.h *.cpp
+ RECURSIVE = NO
+ EXCLUDE =
+ EXCLUDE_PATTERNS =
+ EXAMPLE_PATH =
+ EXAMPLE_PATTERNS =
+ IMAGE_PATH =
+ INPUT_FILTER =
+ FILTER_SOURCE_FILES = NO
+ #---------------------------------------------------------------------------
+ # configuration options related to the alphabetical class index
+ #---------------------------------------------------------------------------
+ ALPHABETICAL_INDEX = NO
+ COLS_IN_ALPHA_INDEX = 5
+ IGNORE_PREFIX =
+ #---------------------------------------------------------------------------
+ # configuration options related to the HTML output
+ #---------------------------------------------------------------------------
+ GENERATE_HTML = NO
+ HTML_OUTPUT =
+ HTML_HEADER =
+ HTML_FOOTER =
+ HTML_STYLESHEET =
+ HTML_ALIGN_MEMBERS = YES
+ GENERATE_HTMLHELP = NO
+ GENERATE_CHI = NO
+ BINARY_TOC = NO
+ TOC_EXPAND = NO
+ DISABLE_INDEX = NO
+ ENUM_VALUES_PER_LINE = 4
+ GENERATE_TREEVIEW = NO
+ TREEVIEW_WIDTH = 250
+ #---------------------------------------------------------------------------
+ # configuration options related to the LaTeX output
+ #---------------------------------------------------------------------------
+ GENERATE_LATEX = NO
+ LATEX_OUTPUT =
+ COMPACT_LATEX = NO
+ PAPER_TYPE = a4wide
+ EXTRA_PACKAGES =
+ LATEX_HEADER =
+ PDF_HYPERLINKS = NO
+ USE_PDFLATEX = NO
+ LATEX_BATCHMODE = NO
+ #---------------------------------------------------------------------------
+ # configuration options related to the RTF output
+ #---------------------------------------------------------------------------
+ GENERATE_RTF = NO
+ RTF_OUTPUT =
+ COMPACT_RTF = NO
+ RTF_HYPERLINKS = NO
+ RTF_STYLESHEET_FILE =
+ RTF_EXTENSIONS_FILE =
+ #---------------------------------------------------------------------------
+ # configuration options related to the man page output
+ #---------------------------------------------------------------------------
+ GENERATE_MAN = NO
+ MAN_OUTPUT =
+ MAN_EXTENSION =
+ MAN_LINKS = NO
+ #---------------------------------------------------------------------------
+ # configuration options related to the XML output
+ #---------------------------------------------------------------------------
+ GENERATE_XML = YES
+ #---------------------------------------------------------------------------
+ # Configuration options related to the preprocessor
+ #---------------------------------------------------------------------------
+ ENABLE_PREPROCESSING = YES
+ MACRO_EXPANSION = NO
+ EXPAND_ONLY_PREDEF = NO
+ SEARCH_INCLUDES = YES
+ INCLUDE_PATH =
+ INCLUDE_FILE_PATTERNS =
+ PREDEFINED =
+ EXPAND_AS_DEFINED =
+ #---------------------------------------------------------------------------
+ # Configuration::addtions related to external references
+ #---------------------------------------------------------------------------
+ TAGFILES = ../../qtools_docs/qtools.tag=../../../../qtools_docs/html
+ GENERATE_TAGFILE =
+ ALLEXTERNALS = NO
+ PERL_PATH =
+ #---------------------------------------------------------------------------
+ # Configuration options related to the dot tool
+ #---------------------------------------------------------------------------
+ HAVE_DOT = YES
+ CLASS_GRAPH = YES
+ COLLABORATION_GRAPH = YES
+ INCLUDE_GRAPH = YES
+ INCLUDED_BY_GRAPH = YES
+ GRAPHICAL_HIERARCHY = YES
+ DOT_PATH =
+ MAX_DOT_GRAPH_WIDTH = 1280
+ MAX_DOT_GRAPH_HEIGHT = 1024
+ GENERATE_LEGEND = YES
+ DOT_CLEANUP = YES
+ #---------------------------------------------------------------------------
+ # Configuration::addtions related to the search engine
+ #---------------------------------------------------------------------------
+ SEARCHENGINE = NO
+ CGI_NAME =
+ CGI_URL =
+ DOC_URL =
+ DOC_ABSPATH =
+ BIN_ABSPATH =
+ EXT_DOC_PATHS =
Index: addon/xmlparse/Makefile
===================================================================
RCS file: addon/xmlparse/Makefile
diff -N addon/xmlparse/Makefile
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/Makefile 16 Dec 2001 23:18:58 -0000 1.2
***************
*** 0 ****
--- 1,34 ----
+ #
+ # This file was generated from Makefile.in on Wed Nov 21 10:56:11 2001
+ #
+
+ DOXYGEN =
+ TMAKEPATH = /tmake/lib/gnu-g++
+ ENV = env TMAKEPATH=$(TMAKEPATH)
+ TMAKE = /tmake/bin/tmake
+ MAKE = /usr/bin/make
+ PERL = /usr/bin/perl
+ RM = rm -f
+ CP = cp
+ VERSION = 1.2.12
+ INSTALL = /usr
+ INSTTOOL = /usr/bin/install
+ DOXYDOCS = ..
+ DOCDIR = /usr/share/doc/packages/doxygen
+ HAVE_DOT = /USR/LOCAL/BIN/dot
+ all clean depend: Makefile.xmlparse
+ $(MAKE) -f Makefile.xmlparse $@
+
+ distclean: clean
+ $(RM) -rf Makefile.xmlparse xmlparse.pro Makefile obj
+
+ tmake:
+ $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
+
+ Makefile.xmlparse: xmlparse.pro
+ $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
+
+ install:
+ $(INSTTOOL) -d $(INSTALL)/bin
+ $(INSTTOOL) -m 755 ../../bin/xmlparse $(INSTALL)/bin
+
Index: addon/xmlparse/Makefile.in
===================================================================
RCS file: addon/xmlparse/Makefile.in
diff -N addon/xmlparse/Makefile.in
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/Makefile.in 10 Sep 2001 06:22:23 -0000 1.1.1.1
***************
*** 0 ****
--- 1,16 ----
+ all clean depend: Makefile.xmlparse
+ $(MAKE) -f Makefile.xmlparse $@
+
+ distclean: clean
+ $(RM) -rf Makefile.xmlparse xmlparse.pro Makefile obj
+
+ tmake:
+ $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
+
+ Makefile.xmlparse: xmlparse.pro
+ $(ENV) $(PERL) $(TMAKE) xmlparse.pro >Makefile.xmlparse
+
+ install:
+ $(INSTTOOL) -d $(INSTALL)/bin
+ $(INSTTOOL) -m 755 ../../bin/xmlparse $(INSTALL)/bin
+
Index: addon/xmlparse/Makefile.xmlparse
===================================================================
RCS file: addon/xmlparse/Makefile.xmlparse
diff -N addon/xmlparse/Makefile.xmlparse
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/Makefile.xmlparse 20 Nov 2001 05:17:19 -0000 1.1.1.2
***************
*** 0 ****
--- 1,147 ----
+ #############################################################################
+ # Makefile for building xmlparse
+ # Generated by tmake at 18:58, 2001/11/18
+ # Project: xmlparse
+ # Template: app.t
+ #############################################################################
+
+ ####### Compiler, tools and options
+
+ CC = gcc
+ CXX = g++
+ CFLAGS = -pipe -Wall -W -fno-exceptions
+ CXXFLAGS= -pipe -Wall -W -fno-exceptions
+ INCPATH = -I../../qtools -I../../src
+ LINK = g++
+ LFLAGS =
+ LIBS = -L../../lib -ldoxycfg -lqtools
+ MOC = moc
+
+ TAR = tar -cf
+ GZIP = gzip -9f
+
+ ####### Files
+
+ HEADERS = basehandler.h \
+ mainhandler.h \
+ compoundhandler.h \
+ sectionhandler.h \
+ memberhandler.h \
+ paramhandler.h \
+ dochandler.h
+ SOURCES = main.cpp \
+ mainhandler.cpp \
+ compoundhandler.cpp \
+ sectionhandler.cpp \
+ memberhandler.cpp \
+ paramhandler.cpp \
+ dochandler.cpp
+ OBJECTS = obj/main.o \
+ obj/mainhandler.o \
+ obj/compoundhandler.o \
+ obj/sectionhandler.o \
+ obj/memberhandler.o \
+ obj/paramhandler.o \
+ obj/dochandler.o
+ SRCMOC =
+ OBJMOC =
+ DIST =
+ TARGET = xmlparse
+
+ ####### Implicit rules
+
+ .SUFFIXES: .cpp .cxx .cc .C .c
+
+ .cpp.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .cxx.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .cc.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .C.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
+
+ .c.o:
+ $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
+
+ ####### Build rules
+
+ all: $(TARGET)
+
+ $(TARGET): $(OBJECTS) $(OBJMOC) ../../lib/libdoxycfg.a
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS)
+
+ moc: $(SRCMOC)
+
+ tmake:
+ tmake xmlparse.pro
+
+ dist:
+ $(TAR) xmlparse.tar xmlparse.pro $(SOURCES) $(HEADERS) $(DIST)
+ $(GZIP) xmlparse.tar
+
+ clean:
+ -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(TARGET)
+ -rm -f *~ core
+
+ ####### Compile
+
+ obj/main.o: main.cpp \
+ doxmlintf.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/main.o main.cpp
+
+ obj/mainhandler.o: mainhandler.cpp \
+ mainhandler.h \
+ basehandler.h \
+ compoundhandler.h \
+ sectionhandler.h \
+ memberhandler.h \
+ paramhandler.h \
+ doxmlintf.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/mainhandler.o mainhandler.cpp
+
+ obj/compoundhandler.o: compoundhandler.cpp \
+ mainhandler.h \
+ basehandler.h \
+ compoundhandler.h \
+ sectionhandler.h \
+ memberhandler.h \
+ paramhandler.h \
+ doxmlintf.h \
+ dochandler.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/compoundhandler.o compoundhandler.cpp
+
+ obj/sectionhandler.o: sectionhandler.cpp \
+ mainhandler.h \
+ basehandler.h \
+ compoundhandler.h \
+ sectionhandler.h \
+ memberhandler.h \
+ paramhandler.h \
+ doxmlintf.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/sectionhandler.o sectionhandler.cpp
+
+ obj/memberhandler.o: memberhandler.cpp \
+ memberhandler.h \
+ basehandler.h \
+ paramhandler.h \
+ doxmlintf.h \
+ sectionhandler.h \
+ dochandler.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/memberhandler.o memberhandler.cpp
+
+ obj/paramhandler.o: paramhandler.cpp \
+ paramhandler.h \
+ basehandler.h \
+ doxmlintf.h \
+ memberhandler.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/paramhandler.o paramhandler.cpp
+
+ obj/dochandler.o: dochandler.cpp \
+ dochandler.h \
+ basehandler.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o obj/dochandler.o dochandler.cpp
+
Index: addon/xmlparse/basehandler.h
===================================================================
RCS file: addon/xmlparse/basehandler.h
diff -N addon/xmlparse/basehandler.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/basehandler.h 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,279 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #ifndef _BASEHANDLER_H
+ #define _BASEHANDLER_H
+
+ #include <qxml.h>
+ #include <qdict.h>
+ #include <qstring.h>
+
+ class IBaseHandler
+ {
+ public:
+ virtual void setDelegate(QXmlDefaultHandler *delegate) = 0;
+ virtual QXmlDefaultHandler *delegate() const = 0;
+ };
+
+ class IFallBackHandler
+ {
+ public:
+ virtual bool handleStartElement(const QString & name,
+ const QXmlAttributes & attrib) = 0;
+ virtual bool handleEndElement(const QString &name) = 0;
+ };
+
+ template<class T> class ElementMapper
+ {
+ class StartElementHandler
+ {
+ typedef void (T::*Handler)(const QXmlAttributes &attrib);
+ public:
+ StartElementHandler() : m_parent(0) {}
+ StartElementHandler(T *parent, Handler h)
+ : m_parent(parent), m_handler(h) {}
+ void operator()(const QXmlAttributes &attrib)
+ { if (m_parent) (m_parent->*m_handler)(attrib); }
+ private:
+ T *m_parent;
+ Handler m_handler;
+ };
+
+ class EndElementHandler
+ {
+ typedef void (T::*Handler)();
+ public:
+ EndElementHandler() : m_parent(0) {}
+ EndElementHandler(T *parent, Handler h)
+ : m_parent(parent), m_handler(h) {}
+ void operator()()
+ { if (m_parent) (m_parent->*m_handler)(); }
+ private:
+ T *m_parent;
+ Handler m_handler;
+ };
+
+ typedef StartElementHandler<T> StartElementHandlerT;
+ typedef EndElementHandler<T> EndElementHandlerT;
+
+ public:
+ ElementMapper() : m_startHandlers(67), m_endHandlers(67)
+ {
+ m_startHandlers.setAutoDelete(TRUE);
+ m_endHandlers.setAutoDelete(TRUE);
+ }
+ virtual ~ElementMapper()
+ {
+ }
+
+ void addStartHandler(const char *key)
+ {
+ m_startHandlers.insert(key,new StartElementHandlerT);
+ }
+
+ void addStartHandler(const char *key, T *obj, void (T::*handler)(const QXmlAttributes &))
+ {
+ m_startHandlers.insert(key,new StartElementHandlerT(obj,handler));
+ }
+
+ void addEndHandler(const char *key)
+ {
+ m_endHandlers.insert(key,new EndElementHandlerT);
+ }
+
+ void addEndHandler(const char *key, T *obj, void (T::*handler)())
+ {
+ m_endHandlers.insert(key,new EndElementHandlerT(obj,handler));
+ }
+
+
+ protected:
+ QDict<StartElementHandlerT> m_startHandlers;
+ QDict<EndElementHandlerT> m_endHandlers;
+ };
+
+ template<class T> class BaseHandler : public IBaseHandler,
+ public QXmlDefaultHandler,
+ public ElementMapper<T>
+ {
+ public:
+ BaseHandler() : m_delegateHandler(0), m_fallBackHandler(0)
+ {
+ }
+
+ virtual ~BaseHandler()
+ {
+ ASSERT(m_delegateHandler==0);
+ }
+
+ virtual bool startDocument()
+ {
+ return TRUE;
+ }
+
+ virtual bool startElement( const QString & namespaceURI,
+ const QString & localName,
+ const QString & name,
+ const QXmlAttributes & attrib
+ )
+ {
+ if (m_delegateHandler)
+ {
+ return m_delegateHandler->startElement(namespaceURI,localName,name,attrib);
+ }
+ if (!m_skipUntil.isEmpty()) // skip mode
+ {
+ if (m_skipUntil==name) m_skipCount++;
+ printf("skipping start tag %s count=%d\n",name.data(),m_skipCount);
+ return TRUE;
+ }
+
+ StartElementHandlerT *handler = m_startHandlers[name];
+ if (handler)
+ {
+ (*handler)(attrib);
+ //printf("found start tag %s\n",name.data());
+ }
+ else if (!m_fallBackHandler ||
+ !m_fallBackHandler->handleStartElement(name,attrib)
+ )
+ {
+ printf("found unexpected tag `%s', skipping until matching end tag\n",name.data());
+ m_skipUntil = name;
+ m_skipCount=1;
+ }
+ return TRUE;
+ }
+
+ virtual bool endElement( const QString& namespaceURI, const QString& localName, const QString& name )
+ {
+ if (m_delegateHandler)
+ {
+ return m_delegateHandler->endElement(namespaceURI,localName,name);
+ }
+
+ if (name==m_skipUntil)
+ {
+ m_skipCount--;
+ printf("skipping end tag %s count=%d\n",name.data(),m_skipCount);
+ if (m_skipCount==0)
+ {
+ m_skipUntil="";
+ }
+ //printf("found end tag %s\n",name.data());
+ }
+ else if (m_skipUntil.isEmpty())
+ {
+ EndElementHandlerT *handler = m_endHandlers[name];
+ if (handler)
+ {
+ (*handler)();
+ //printf("found end tag %s\n",name.data());
+ }
+ else if (m_fallBackHandler)
+ {
+ m_fallBackHandler->handleEndElement(name);
+ }
+ }
+ m_curString="";
+ return TRUE;
+ }
+
+ bool skippedEntity ( const QString &s )
+ {
+ if (m_delegateHandler)
+ {
+ return m_delegateHandler->skippedEntity(s);
+ }
+
+ printf("Skipped unhandled entity %s\n",s.data());
+ return TRUE;
+ }
+
+ virtual bool characters ( const QString & ch )
+ {
+ if (m_delegateHandler)
+ {
+ return m_delegateHandler->characters(ch);
+ }
+
+ //printf("Found characters \"%s\"\n",ch.data());
+ m_curString+=ch;
+ return TRUE;
+ }
+
+ void setDelegate(QXmlDefaultHandler *delegate)
+ {
+ m_delegateHandler = delegate;
+ }
+
+ QXmlDefaultHandler *delegate() const
+ {
+ return m_delegateHandler;
+ }
+
+ void setFallBackHandler(IFallBackHandler *h)
+ {
+ m_fallBackHandler = h;
+ }
+
+ IFallBackHandler *fallBackHandler() const
+ {
+ return m_fallBackHandler;
+ }
+
+ protected:
+ QString m_curString;
+ QString m_skipUntil;
+ int m_skipCount;
+ QXmlDefaultHandler *m_delegateHandler;
+ IFallBackHandler *m_fallBackHandler;
+ };
+
+ template<class T> class BaseFallBackHandler : public ElementMapper<T>,
+ public IFallBackHandler
+ {
+ public:
+ BaseFallBackHandler()
+ {
+ }
+ virtual ~BaseFallBackHandler()
+ {
+ }
+ bool handleStartElement(const QString & name,
+ const QXmlAttributes & attrib)
+ {
+ StartElementHandlerT *handler = m_startHandlers[name];
+ if (handler)
+ {
+ (*handler)(attrib);
+ return TRUE;
+ }
+ return FALSE;
+ }
+ bool handleEndElement(const QString &name)
+ {
+ EndElementHandlerT *handler = m_endHandlers[name];
+ if (handler)
+ {
+ (*handler)();
+ return TRUE;
+ }
+ return FALSE;
+ }
+ };
+
+
+ #endif
Index: addon/xmlparse/compoundhandler.cpp
===================================================================
RCS file: addon/xmlparse/compoundhandler.cpp
diff -N addon/xmlparse/compoundhandler.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/compoundhandler.cpp 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,148 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #include "mainhandler.h"
+ #include "compoundhandler.h"
+ #include "dochandler.h"
+
+ CompoundHandler::CompoundHandler(IBaseHandler *parent)
+ : m_parent(parent), m_brief(0), m_detailed(0), m_programListing(0)
+ {
+ m_superClasses.setAutoDelete(TRUE);
+ m_subClasses.setAutoDelete(TRUE);
+ m_sections.setAutoDelete(TRUE);
+
+ addEndHandler("compounddef",this,&CompoundHandler::endCompound);
+
+ addStartHandler("compoundname");
+ addEndHandler("compoundname",this,&CompoundHandler::endCompoundName);
+
+ addStartHandler("derivedcompoundref",this,&CompoundHandler::addSubClass);
+ addEndHandler("derivedcompoundref");
+
+ addStartHandler("basecompoundref",this,&CompoundHandler::addSuperClass);
+ addEndHandler("basecompoundref");
+
+ addStartHandler("briefdescription",this,&CompoundHandler::startBriefDesc);
+
+ addStartHandler("detaileddescription",this,&CompoundHandler::startDetailedDesc);
+
+ addStartHandler("sectiondef",this,&CompoundHandler::startSection);
+
+ addStartHandler("location",this,&CompoundHandler::startLocation);
+ addEndHandler("location");
+
+ addStartHandler("programlisting",this,&CompoundHandler::startProgramListing);
+ }
+
+ CompoundHandler::~CompoundHandler()
+ {
+ delete m_brief;
+ delete m_detailed;
+ delete m_programListing;
+ }
+
+ void CompoundHandler::startSection(const QXmlAttributes& attrib)
+ {
+ SectionHandler *sectHandler = new SectionHandler(this);
+ sectHandler->startSection(attrib);
+ m_sections.append(sectHandler);
+ }
+
+ void CompoundHandler::startBriefDesc(const QXmlAttributes& attrib)
+ {
+ DocHandler *docHandler = new DocHandler(this);
+ docHandler->startDoc(attrib);
+ m_brief = docHandler;
+ }
+
+ void CompoundHandler::startDetailedDesc(const QXmlAttributes& attrib)
+ {
+ DocHandler *docHandler = new DocHandler(this);
+ docHandler->startDoc(attrib);
+ m_detailed = docHandler;
+ }
+
+ void CompoundHandler::startProgramListing(const QXmlAttributes& attrib)
+ {
+ ProgramListingHandler *plHandler = new ProgramListingHandler(this);
+ plHandler->startProgramListing(attrib);
+ m_programListing = plHandler;
+ }
+
+ void CompoundHandler::startCompound(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ m_id = attrib.value("id");
+ m_kind = attrib.value("kind");
+ printf("startCompound(id=`%s' type=`%s')\n",m_id.data(),m_kind.data());
+ }
+
+ void CompoundHandler::startLocation(const QXmlAttributes& attrib)
+ {
+ m_defFile = attrib.value("file");
+ m_defLine = attrib.value("line").toInt();
+ }
+
+ void CompoundHandler::endCompound()
+ {
+ printf("endCompound()\n");
+ m_parent->setDelegate(0);
+ }
+
+ void CompoundHandler::endCompoundName()
+ {
+ m_name = m_curString.stripWhiteSpace();
+ printf("Compound name `%s'\n",m_name.data());
+ }
+
+ void CompoundHandler::addSuperClass(const QXmlAttributes& attrib)
+ {
+ SuperClass *sc=new SuperClass(
+ attrib.value("idref"),
+ attrib.value("prot"),
+ attrib.value("virt")
+ );
+ printf("super class id=`%s' prot=`%s' virt=`%s'\n",
+ sc->m_id.data(),
+ sc->m_protection.data(),
+ sc->m_virtualness.data());
+ m_superClasses.append(sc);
+ }
+
+ void CompoundHandler::addSubClass(const QXmlAttributes& attrib)
+ {
+ SubClass *sc = new SubClass(
+ attrib.value("idref"),
+ attrib.value("prot"),
+ attrib.value("virt")
+ );
+ printf("sub class id=`%s' prot=`%s' virt=`%s'\n",
+ sc->m_id.data(),
+ sc->m_protection.data(),
+ sc->m_virtualness.data());
+ m_subClasses.append(sc);
+ }
+
+ void CompoundHandler::initialize(MainHandler *m)
+ {
+ QListIterator<ISection> msi(m_sections);
+ SectionHandler *sec;
+ for (;(sec=(SectionHandler *)msi.current());++msi)
+ {
+ sec->initialize(m);
+ }
+ }
+
Index: addon/xmlparse/compoundhandler.h
===================================================================
RCS file: addon/xmlparse/compoundhandler.h
diff -N addon/xmlparse/compoundhandler.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/compoundhandler.h 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,87 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+ #ifndef _COMPOUNDHANDLER_H
+ #define _COMPOUNDHANDLER_H
+
+ #include <qstring.h>
+ #include <qlist.h>
+ #include <qxml.h>
+
+ #include "basehandler.h"
+ #include "sectionhandler.h"
+ #include "doxmlintf.h"
+
+ class MainHandler;
+ class DocHandler;
+ class ProgramListingHandler;
+
+ class CompoundHandler : public ICompound, public BaseHandler<CompoundHandler>
+ {
+ public:
+ virtual void startSection(const QXmlAttributes& attrib);
+ virtual void startCompound(const QXmlAttributes& attrib);
+ virtual void addSuperClass(const QXmlAttributes& attrib);
+ virtual void addSubClass(const QXmlAttributes& attrib);
+ virtual void endCompound();
+ virtual void endCompoundName();
+ virtual void startBriefDesc(const QXmlAttributes& attrib);
+ virtual void startDetailedDesc(const QXmlAttributes& attrib);
+ virtual void startLocation(const QXmlAttributes& attrib);
+ virtual void startProgramListing(const QXmlAttributes& attrib);
+
+ CompoundHandler(IBaseHandler *parent);
+ virtual ~CompoundHandler();
+
+ // ICompound
+ QString name() const { return m_name; }
+ QString id() const { return m_id; }
+ QString kind() const { return m_kind; }
+ QListIterator<ISection> getSectionIterator() const { return m_sections; }
+ void initialize(MainHandler *m);
+
+ private:
+ struct SuperClass
+ {
+ SuperClass(const QString &id,const QString &prot,const QString &virt) :
+ m_id(id),m_protection(prot),m_virtualness(virt) {}
+
+ QString m_id;
+ QString m_protection;
+ QString m_virtualness;
+ };
+ struct SubClass
+ {
+ SubClass(const QString &id,const QString &prot,const QString &virt) :
+ m_id(id),m_protection(prot),m_virtualness(virt) {}
+
+ QString m_id;
+ QString m_protection;
+ QString m_virtualness;
+ };
+ QList<SuperClass> m_superClasses;
+ QList<SubClass> m_subClasses;
+ QList<ISection> m_sections;
+ IBaseHandler *m_parent;
+ DocHandler *m_brief;
+ DocHandler *m_detailed;
+ ProgramListingHandler *m_programListing;
+ QString m_id;
+ QString m_kind;
+ QString m_name;
+ QString m_defFile;
+ int m_defLine;
+ };
+
+ #endif
Index: addon/xmlparse/dochandler.cpp
===================================================================
RCS file: addon/xmlparse/dochandler.cpp
diff -N addon/xmlparse/dochandler.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/dochandler.cpp 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,1373 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #include "dochandler.h"
+ #include <qmap.h>
+
+ class TypeNameMapper
+ {
+ public:
+ TypeNameMapper()
+ {
+ m_typeNameMap.insert("see", SimpleSectHandler::See);
+ m_typeNameMap.insert("return", SimpleSectHandler::Return);
+ m_typeNameMap.insert("author", SimpleSectHandler::Author);
+ m_typeNameMap.insert("version", SimpleSectHandler::Version);
+ m_typeNameMap.insert("since", SimpleSectHandler::Since);
+ m_typeNameMap.insert("date", SimpleSectHandler::Date);
+ m_typeNameMap.insert("bug", SimpleSectHandler::Bug);
+ m_typeNameMap.insert("note", SimpleSectHandler::Note);
+ m_typeNameMap.insert("warning", SimpleSectHandler::Warning);
+ m_typeNameMap.insert("par", SimpleSectHandler::Par);
+ m_typeNameMap.insert("deprecated",SimpleSectHandler::Deprecated);
+ m_typeNameMap.insert("pre", SimpleSectHandler::Pre);
+ m_typeNameMap.insert("post", SimpleSectHandler::Post);
+ m_typeNameMap.insert("invariant", SimpleSectHandler::Invar);
+ m_typeNameMap.insert("remark", SimpleSectHandler::Remark);
+ m_typeNameMap.insert("attention", SimpleSectHandler::Attention);
+ m_typeNameMap.insert("todo", SimpleSectHandler::Todo);
+ m_typeNameMap.insert("test", SimpleSectHandler::Test);
+ m_typeNameMap.insert("rcs", SimpleSectHandler::RCS);
+ m_typeNameMap.insert("enumvalues",SimpleSectHandler::EnumValues);
+ m_typeNameMap.insert("examples", SimpleSectHandler::Examples);
+ }
+ SimpleSectHandler::Types stringToType(const QString &typeStr)
+ {
+ return m_typeNameMap[typeStr];
+ }
+ private:
+ QMap<QString,SimpleSectHandler::Types> m_typeNameMap;
+ };
+
+ static TypeNameMapper g_typeMapper;
+
+
+ //----------------------------------------------------------------------
+ // MarkupHandler
+ //----------------------------------------------------------------------
+
+ MarkupHandler::MarkupHandler(QList<DocNode> &children,QString &curString)
+ : m_children(children), m_curString(curString), m_curMarkup(DocNode::Normal)
+ {
+ addStartHandler("bold",this,&MarkupHandler::startBold);
+ addEndHandler("bold",this,&MarkupHandler::endBold);
+
+ addStartHandler("emphasis",this,&MarkupHandler::startEmphasis);
+ addEndHandler("emphasis",this,&MarkupHandler::endEmphasis);
+
+ addStartHandler("computeroutput",this,&MarkupHandler::startComputerOutput);
+ addEndHandler("computeroutput",this,&MarkupHandler::endComputerOutput);
+
+ addStartHandler("center",this,&MarkupHandler::startCenter);
+ addEndHandler("center",this,&MarkupHandler::endCenter);
+
+ addStartHandler("small",this,&MarkupHandler::startSmallFont);
+ addEndHandler("small",this,&MarkupHandler::endSmallFont);
+
+ addStartHandler("subscript",this,&MarkupHandler::startSubscript);
+ addEndHandler("subscript",this,&MarkupHandler::endSubscript);
+
+ addStartHandler("superscript",this,&MarkupHandler::startSuperscript);
+ addEndHandler("superscript",this,&MarkupHandler::endSuperscript);
+ }
+
+ MarkupHandler::~MarkupHandler()
+ {
+ }
+
+ void MarkupHandler::addTextNode()
+ {
+ if (!m_curString.isEmpty())
+ {
+ m_children.append(new TextNode(m_curString,m_curMarkup));
+ printf("addTextNode() text=%s markup=%x\n",m_curString.data(),m_curMarkup);
+ m_curString="";
+ }
+ }
+
+ void MarkupHandler::startBold(const QXmlAttributes & /*attrib*/)
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Bold,TRUE));
+ m_curMarkup |= DocNode::Bold;
+ }
+
+ void MarkupHandler::endBold()
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Bold,FALSE));
+ m_curMarkup &= ~DocNode::Bold;
+ }
+
+ void MarkupHandler::startEmphasis(const QXmlAttributes & /*attrib*/)
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Emphasis,TRUE));
+ m_curMarkup |= DocNode::Emphasis;
+ }
+
+ void MarkupHandler::endEmphasis()
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Emphasis,FALSE));
+ m_curMarkup &= ~DocNode::Emphasis;
+ }
+
+ void MarkupHandler::startComputerOutput(const QXmlAttributes & /*attrib*/)
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::ComputerOutput,TRUE));
+ m_curMarkup |= DocNode::ComputerOutput;
+ }
+
+ void MarkupHandler::endComputerOutput()
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::ComputerOutput,FALSE));
+ m_curMarkup &= ~DocNode::ComputerOutput;
+ }
+
+ void MarkupHandler::startCenter(const QXmlAttributes & /*attrib*/)
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Center,TRUE));
+ m_curMarkup |= DocNode::Center;
+ }
+
+ void MarkupHandler::endCenter()
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Center,FALSE));
+ m_curMarkup &= ~DocNode::Center;
+ }
+
+ void MarkupHandler::startSmallFont(const QXmlAttributes & /*attrib*/)
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::SmallFont,TRUE));
+ m_curMarkup |= DocNode::SmallFont;
+ }
+
+ void MarkupHandler::endSmallFont()
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::SmallFont,FALSE));
+ m_curMarkup &= ~DocNode::SmallFont;
+ }
+
+ void MarkupHandler::startSubscript(const QXmlAttributes & /*attrib*/)
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Subscript,TRUE));
+ m_curMarkup |= DocNode::Subscript;
+ }
+
+ void MarkupHandler::endSubscript()
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Subscript,FALSE));
+ m_curMarkup &= ~DocNode::Subscript;
+ }
+
+ void MarkupHandler::startSuperscript(const QXmlAttributes & /*attrib*/)
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Superscript,TRUE));
+ m_curMarkup |= DocNode::Superscript;
+ }
+
+ void MarkupHandler::endSuperscript()
+ {
+ addTextNode();
+ m_children.append(new MarkupModifierNode(DocNode::Superscript,FALSE));
+ m_curMarkup &= ~DocNode::Superscript;
+ }
+
+ //----------------------------------------------------------------------
+ // ListItemHandler
+ //----------------------------------------------------------------------
+
+ ListItemHandler::ListItemHandler(IBaseHandler *parent)
+ : DocNode(ListItem), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+
+ addEndHandler("listitem",this,&ListItemHandler::endListItem);
+
+ addStartHandler("para",this,&ListItemHandler::startParagraph);
+ }
+
+ ListItemHandler::~ListItemHandler()
+ {
+ }
+
+ void ListItemHandler::startListItem(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("start list item handler\n");
+ }
+
+ void ListItemHandler::endListItem()
+ {
+ printf("end list item handler\n");
+ m_parent->setDelegate(0);
+ }
+
+ void ListItemHandler::startParagraph(const QXmlAttributes& attrib)
+ {
+ ParagraphHandler *parHandler = new ParagraphHandler(this);
+ parHandler->startParagraph(attrib);
+ m_children.append(parHandler);
+ }
+
+ //----------------------------------------------------------------------
+ // ListHandler
+ //----------------------------------------------------------------------
+
+ ListHandler::ListHandler(NodeKind k,IBaseHandler *parent)
+ : DocNode(k), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+ const char *endListName=0;
+ switch(k)
+ {
+ case ItemizedList : endListName="itemizedlist"; break;
+ case OrderedList : endListName="orderedlist"; break;
+ default: ASSERT(0);
+ }
+ addEndHandler(endListName,this,&ListHandler::endList);
+
+ addStartHandler("listitem",this,&ListHandler::startListItem);
+ }
+
+ ListHandler::~ListHandler()
+ {
+ }
+
+ void ListHandler::startList(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ }
+
+ void ListHandler::endList()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void ListHandler::startListItem(const QXmlAttributes& attrib)
+ {
+ ListItemHandler *liHandler = new ListItemHandler(this);
+ liHandler->startListItem(attrib);
+ m_children.append(liHandler);
+ }
+
+ //----------------------------------------------------------------------
+ // ParameterHandler
+ //----------------------------------------------------------------------
+
+ ParameterHandler::ParameterHandler(IBaseHandler *parent) : DocNode(Parameter),
+ m_parent(parent), m_description(0)
+ {
+ addEndHandler("parametername",this,&ParameterHandler::endParameterName);
+ addEndHandler("parameterdescription",this,&ParameterHandler::endParameterDescription);
+ addStartHandler("para",this,&ParameterHandler::startParagraph);
+ }
+
+ ParameterHandler::~ParameterHandler()
+ {
+ delete m_description;
+ }
+
+ void ParameterHandler::startParameterName(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ }
+
+ void ParameterHandler::endParameterName()
+ {
+ m_name = m_curString;
+ printf("parameter %s\n",m_name.data());
+ m_curString="";
+ m_parent->setDelegate(0);
+ }
+
+ void ParameterHandler::startParameterDescription(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ }
+
+ void ParameterHandler::endParameterDescription()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void ParameterHandler::startParagraph(const QXmlAttributes& attrib)
+ {
+ ASSERT(m_description==0);
+ m_description = new ParagraphHandler(this);
+ m_description->startParagraph(attrib);
+ }
+
+ //----------------------------------------------------------------------
+ // ParameterListHandler
+ //----------------------------------------------------------------------
+
+ ParameterListHandler::ParameterListHandler(IBaseHandler *parent)
+ : DocNode(ParameterList), m_parent(parent)
+ {
+ addEndHandler("parameterlist",this,&ParameterListHandler::endParameterList);
+ addStartHandler("parametername",this,&ParameterListHandler::startParameterName);
+ addStartHandler("parameterdescription",this,&ParameterListHandler::startParameterDescription);
+ addStartHandler("title");
+ addEndHandler("title");
+ m_parameters.setAutoDelete(TRUE);
+ m_curParam=0;
+ }
+
+ ParameterListHandler::~ParameterListHandler()
+ {
+ }
+
+ void ParameterListHandler::startParameterList(const QXmlAttributes& attrib)
+ {
+ QString kind = attrib.value("kind");
+ if (kind=="retval") m_type=RetVal;
+ else if (kind=="exception") m_type=Exception;
+ else if (kind=="param") m_type=Param;
+ else
+ {
+ printf("Error: invalid parameterlist type: %s\n",kind.data());
+ }
+ printf("parameterlist kind=%s\n",kind.data());
+ m_parent->setDelegate(this);
+ }
+
+ void ParameterListHandler::endParameterList()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void ParameterListHandler::startParameterName(const QXmlAttributes& attrib)
+ {
+ m_curParam = new ParameterHandler(this);
+ m_parameters.append(m_curParam);
+ m_curParam->startParameterName(attrib);
+ }
+
+ void ParameterListHandler::startParameterDescription(const QXmlAttributes& attrib)
+ {
+ ASSERT(m_curParam!=0);
+ m_curParam->startParameterDescription(attrib);
+ }
+
+ //----------------------------------------------------------------------
+ // LinkHandler
+ //----------------------------------------------------------------------
+
+ LinkHandler::LinkHandler(IBaseHandler *parent)
+ : DocNode(Link), m_parent(parent)
+ {
+ addEndHandler("link",this,&LinkHandler::endLink);
+ }
+
+ LinkHandler::~LinkHandler()
+ {
+ }
+
+ void LinkHandler::startLink(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ printf("Start link\n");
+ m_ref = attrib.value("linkend");
+ m_curString="";
+ }
+
+ void LinkHandler::endLink()
+ {
+ m_text = m_curString;
+ m_curString="";
+ m_parent->setDelegate(0);
+ printf("End link\n");
+ }
+
+ //----------------------------------------------------------------------
+ // EMailHandler
+ //----------------------------------------------------------------------
+
+ EMailHandler::EMailHandler(IBaseHandler *parent)
+ : DocNode(EMail), m_parent(parent)
+ {
+ addEndHandler("email",this,&EMailHandler::endEMail);
+ }
+
+ EMailHandler::~EMailHandler()
+ {
+ }
+
+ void EMailHandler::startEMail(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("Start email\n");
+ m_curString="";
+ }
+
+ void EMailHandler::endEMail()
+ {
+ m_address = m_curString;
+ m_curString="";
+ m_parent->setDelegate(0);
+ printf("End email\n");
+ }
+
+ //----------------------------------------------------------------------
+ // ULinkHandler
+ //----------------------------------------------------------------------
+
+ ULinkHandler::ULinkHandler(IBaseHandler *parent)
+ : DocNode(ULink), m_parent(parent)
+ {
+ addEndHandler("ulink",this,&ULinkHandler::endULink);
+ }
+
+ ULinkHandler::~ULinkHandler()
+ {
+ }
+
+ void ULinkHandler::startULink(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ printf("Start ulink\n");
+ m_url = attrib.value("url");
+ m_curString="";
+ }
+
+ void ULinkHandler::endULink()
+ {
+ m_text = m_curString;
+ m_curString="";
+ m_parent->setDelegate(0);
+ printf("End ulink\n");
+ }
+
+ //----------------------------------------------------------------------
+ // LineBreakHandler
+ //----------------------------------------------------------------------
+
+ LineBreakHandler::LineBreakHandler(IBaseHandler *parent)
+ : DocNode(LineBreak), m_parent(parent)
+ {
+ addEndHandler("linebreak",this,&LineBreakHandler::endLineBreak);
+ }
+
+ LineBreakHandler::~LineBreakHandler()
+ {
+ }
+
+ void LineBreakHandler::startLineBreak(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("Start linebreak\n");
+ }
+
+ void LineBreakHandler::endLineBreak()
+ {
+ m_parent->setDelegate(0);
+ printf("End linebreak\n");
+ }
+
+ //----------------------------------------------------------------------
+ // HRulerHandler
+ //----------------------------------------------------------------------
+
+ HRulerHandler::HRulerHandler(IBaseHandler *parent)
+ : DocNode(HRuler), m_parent(parent)
+ {
+ addEndHandler("hruler",this,&HRulerHandler::endHRuler);
+ }
+
+ HRulerHandler::~HRulerHandler()
+ {
+ }
+
+ void HRulerHandler::startHRuler(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("Start hruler\n");
+ }
+
+ void HRulerHandler::endHRuler()
+ {
+ m_parent->setDelegate(0);
+ printf("End hruler\n");
+ }
+
+ //----------------------------------------------------------------------
+ // RefHandler
+ //----------------------------------------------------------------------
+
+ RefHandler::RefHandler(IBaseHandler *parent)
+ : DocNode(Ref), m_parent(parent)
+ {
+ addEndHandler("ref",this,&RefHandler::endRef);
+ }
+
+ RefHandler::~RefHandler()
+ {
+ }
+
+ void RefHandler::startRef(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ m_refId = attrib.value("idref");
+ m_anchor = attrib.value("anchor");
+ printf("Start ref refId=%s anchor=%s\n",m_refId.data(),m_anchor.data());
+ m_curString="";
+ }
+
+ void RefHandler::endRef()
+ {
+ m_linkText = m_curString;
+ m_parent->setDelegate(0);
+ printf("End ref: text=`%s'\n",m_linkText.data());
+ }
+
+
+ //----------------------------------------------------------------------
+ // TitleHandler
+ //----------------------------------------------------------------------
+
+ TitleHandler::TitleHandler(IBaseHandler *parent)
+ : DocNode(Title), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+ m_markupHandler = new MarkupHandler(m_children,m_curString);
+ setFallBackHandler(m_markupHandler);
+ addStartHandler("ref",this,&TitleHandler::startRef);
+ addEndHandler("title",this,&TitleHandler::endTitle);
+ }
+
+ TitleHandler::~TitleHandler()
+ {
+ delete m_markupHandler;
+ }
+
+ void TitleHandler::startTitle(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("Start title\n");
+ m_curString="";
+ }
+
+ void TitleHandler::endTitle()
+ {
+ addTextNode();
+ m_parent->setDelegate(0);
+ printf("End title\n");
+ }
+
+ void TitleHandler::addTextNode()
+ {
+ if (!m_curString.isEmpty())
+ {
+ m_children.append(new TextNode(m_curString,m_markupHandler->markup()));
+ printf("addTextNode() text=\"%s\" markup=%x\n",
+ m_curString.data(),m_markupHandler->markup());
+ m_curString="";
+ }
+ }
+
+ void TitleHandler::startRef(const QXmlAttributes& attrib)
+ {
+ RefHandler *ref = new RefHandler(this);
+ ref->startRef(attrib);
+ m_children.append(ref);
+ }
+
+ //----------------------------------------------------------------------
+ // SimpleSectHandler
+ //----------------------------------------------------------------------
+
+ SimpleSectHandler::SimpleSectHandler(IBaseHandler *parent)
+ : DocNode(Para), m_parent(parent), m_paragraph(0), m_title(0)
+ {
+ addStartHandler("title",this,&SimpleSectHandler::startTitle);
+ addStartHandler("para",this,&SimpleSectHandler::startParagraph);
+ addEndHandler("simplesect",this,&SimpleSectHandler::endSimpleSect);
+ }
+
+ SimpleSectHandler::~SimpleSectHandler()
+ {
+ }
+
+ void SimpleSectHandler::startSimpleSect(const QXmlAttributes& attrib)
+ {
+ m_type = g_typeMapper.stringToType(attrib.value("kind"));
+ printf("start simple section %s\n",attrib.value("kind").data());
+ m_parent->setDelegate(this);
+ }
+
+ void SimpleSectHandler::endSimpleSect()
+ {
+ printf("end simple section\n");
+ m_parent->setDelegate(0);
+ }
+
+ void SimpleSectHandler::startTitle(const QXmlAttributes& attrib)
+ {
+ ASSERT(m_title==0);
+ m_title = new TitleHandler(this);
+ m_title->startTitle(attrib);
+ }
+
+ void SimpleSectHandler::startParagraph(const QXmlAttributes& attrib)
+ {
+ ASSERT(m_paragraph==0);
+ m_paragraph = new ParagraphHandler(this);
+ m_paragraph->startParagraph(attrib);
+ }
+
+ //----------------------------------------------------------------------
+ // VariableListEntryHandler
+ //----------------------------------------------------------------------
+
+ VariableListEntryHandler::VariableListEntryHandler(IBaseHandler *parent)
+ : DocNode(VariableListEntry), m_parent(parent), m_description(0)
+ {
+ addStartHandler("term",this,&VariableListEntryHandler::startTerm);
+ addEndHandler("term",this,&VariableListEntryHandler::endTerm);
+ addStartHandler("para",this,&VariableListEntryHandler::startParagraph);
+ addEndHandler("varlistentry",this,&VariableListEntryHandler::endVarListEntry);
+ addEndHandler("listitem",this,&VariableListEntryHandler::endListItem);
+ }
+
+ VariableListEntryHandler::~VariableListEntryHandler()
+ {
+ delete m_description;
+ }
+
+ void VariableListEntryHandler::startVarListEntry(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("start varlistentry\n");
+ }
+
+ void VariableListEntryHandler::endVarListEntry()
+ {
+ m_parent->setDelegate(0);
+ printf("end varlistentry\n");
+ }
+
+ void VariableListEntryHandler::startListItem(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("start listitem\n");
+ }
+
+ void VariableListEntryHandler::endListItem()
+ {
+ m_parent->setDelegate(0);
+ printf("end listitem\n");
+ }
+
+ void VariableListEntryHandler::startTerm(const QXmlAttributes& /*attrib*/)
+ {
+ m_curString="";
+ }
+
+ void VariableListEntryHandler::endTerm()
+ {
+ m_term = m_curString;
+ printf("term=%s\n",m_term.data());
+ }
+
+ void VariableListEntryHandler::startParagraph(const QXmlAttributes& attrib)
+ {
+ ASSERT(m_description==0);
+ m_description = new ParagraphHandler(this);
+ m_description->startParagraph(attrib);
+ }
+
+
+
+ //----------------------------------------------------------------------
+ // VariableListHandler
+ //----------------------------------------------------------------------
+
+ VariableListHandler::VariableListHandler(IBaseHandler *parent)
+ : DocNode(VariableList), m_parent(parent)
+ {
+ m_entries.setAutoDelete(TRUE);
+ addStartHandler("varlistentry",this,&VariableListHandler::startVarListEntry);
+ addStartHandler("listitem",this,&VariableListHandler::startListItem);
+ addEndHandler("variablelist",this,&VariableListHandler::endVariableList);
+ }
+
+ VariableListHandler::~VariableListHandler()
+ {
+ }
+
+ void VariableListHandler::startVariableList(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("start variablelist\n");
+ }
+
+ void VariableListHandler::endVariableList()
+ {
+ printf("end variablelist\n");
+ m_parent->setDelegate(0);
+ }
+
+ void VariableListHandler::startVarListEntry(const QXmlAttributes& attrib)
+ {
+ VariableListEntryHandler *vle = new VariableListEntryHandler(this);
+ vle->startVarListEntry(attrib);
+ m_curEntry = vle;
+ m_entries.append(vle);
+ }
+
+ void VariableListHandler::startListItem(const QXmlAttributes& attrib)
+ {
+ ASSERT(m_curEntry!=0);
+ m_curEntry->startListItem(attrib);
+ }
+
+ //----------------------------------------------------------------------
+ // HighlightHandler
+ //----------------------------------------------------------------------
+
+ HighlightHandler::HighlightHandler(IBaseHandler *parent)
+ : DocNode(Highlight), m_parent(parent)
+ {
+ addEndHandler("highlight",this,&HighlightHandler::endHighlight);
+ }
+
+ HighlightHandler::~HighlightHandler()
+ {
+ }
+
+ void HighlightHandler::startHighlight(const QXmlAttributes& attrib)
+ {
+ m_class = attrib.value("class");
+ m_curString="";
+ m_parent->setDelegate(this);
+ }
+
+ void HighlightHandler::endHighlight()
+ {
+ m_text = m_curString;
+ printf("highlight class=`%s' text=`%s'\n",m_class.data(),m_text.data());
+ m_parent->setDelegate(0);
+ }
+
+ //----------------------------------------------------------------------
+ // CodeLineHandler
+ //----------------------------------------------------------------------
+
+ CodeLineHandler::CodeLineHandler(IBaseHandler *parent)
+ : DocNode(CodeLine), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+ addEndHandler("codeline",this,&CodeLineHandler::endCodeLine);
+ addEndHandler("linenumber",this,&CodeLineHandler::endLineNumber);
+ addStartHandler("highlight",this,&CodeLineHandler::startHighlight);
+ addStartHandler("ref",this,&CodeLineHandler::startRef);
+ m_lineNumber = 0;
+ }
+
+ CodeLineHandler::~CodeLineHandler()
+ {
+ }
+
+ void CodeLineHandler::startCodeLine(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("start codeline\n");
+ }
+
+ void CodeLineHandler::endCodeLine()
+ {
+ addTextNode();
+ printf("end codeline\n");
+ m_parent->setDelegate(0);
+ }
+
+ void CodeLineHandler::startLineNumber(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ printf("start linenumber\n");
+ m_lineNumber = attrib.value("line").toInt();
+ m_refId = attrib.value("refid");
+ }
+
+ void CodeLineHandler::endLineNumber()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void CodeLineHandler::startHighlight(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ HighlightHandler *hlh = new HighlightHandler(this);
+ m_children.append(hlh);
+ hlh->startHighlight(attrib);
+ }
+
+ void CodeLineHandler::startRef(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ RefHandler *rh = new RefHandler(this);
+ m_children.append(rh);
+ rh->startRef(attrib);
+ }
+
+ void CodeLineHandler::addTextNode()
+ {
+ if (!m_curString.isEmpty())
+ {
+ m_children.append(new TextNode(m_curString,DocNode::Normal));
+ printf("addTextNode() text=\"%s\"\n",
+ m_curString.data());
+ m_curString="";
+ }
+ }
+
+ //----------------------------------------------------------------------
+ // ProgramListingHandler
+ //----------------------------------------------------------------------
+
+ ProgramListingHandler::ProgramListingHandler(IBaseHandler *parent)
+ : DocNode(ProgramListing), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+ m_hasLineNumber=FALSE;
+ addEndHandler("programlisting",this,&ProgramListingHandler::endProgramListing);
+
+ addStartHandler("linenumber",this,&ProgramListingHandler::startLineNumber);
+ addStartHandler("codeline",this,&ProgramListingHandler::startCodeLine);
+ }
+
+ ProgramListingHandler::~ProgramListingHandler()
+ {
+ }
+
+ void ProgramListingHandler::startProgramListing(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("start programlisting\n");
+ }
+
+ void ProgramListingHandler::endProgramListing()
+ {
+ printf("end programlisting\n");
+ m_parent->setDelegate(0);
+ }
+
+ void ProgramListingHandler::startLineNumber(const QXmlAttributes& attrib)
+ {
+ CodeLineHandler *clh = new CodeLineHandler(this);
+ m_children.append(clh);
+ m_hasLineNumber=TRUE;
+ clh->startLineNumber(attrib);
+ }
+
+ void ProgramListingHandler::startCodeLine(const QXmlAttributes& attrib)
+ {
+ CodeLineHandler *clh = 0;
+ if (!m_hasLineNumber)
+ {
+ clh = new CodeLineHandler(this);
+ m_children.append(clh);
+ }
+ else
+ {
+ clh = m_children.getLast();
+ }
+ ASSERT(clh!=0);
+ clh->startCodeLine(attrib);
+ m_hasLineNumber=FALSE;
+ }
+
+ //----------------------------------------------------------------------
+ // FormulaHandler
+ //----------------------------------------------------------------------
+
+ FormulaHandler::FormulaHandler(IBaseHandler *parent)
+ : DocNode(Formula), m_parent(parent)
+ {
+ addEndHandler("formula",this,&FormulaHandler::endFormula);
+ }
+
+ FormulaHandler::~FormulaHandler()
+ {
+ }
+
+ void FormulaHandler::startFormula(const QXmlAttributes& attrib)
+ {
+ m_id = attrib.value("id");
+ m_curString="";
+ m_parent->setDelegate(this);
+ }
+
+ void FormulaHandler::endFormula()
+ {
+ m_text = m_curString;
+ printf("formula id=`%s' text=`%s'\n",m_id.data(),m_text.data());
+ m_parent->setDelegate(0);
+ }
+
+ //----------------------------------------------------------------------
+ // ImageHandler
+ //----------------------------------------------------------------------
+
+ ImageHandler::ImageHandler(IBaseHandler *parent)
+ : DocNode(Image), m_parent(parent)
+ {
+ addEndHandler("image",this,&ImageHandler::endImage);
+ }
+
+ ImageHandler::~ImageHandler()
+ {
+ }
+
+ void ImageHandler::startImage(const QXmlAttributes& attrib)
+ {
+ m_name = attrib.value("name");
+ m_curString="";
+ m_parent->setDelegate(this);
+ }
+
+ void ImageHandler::endImage()
+ {
+ m_caption = m_curString;
+ printf("image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data());
+ m_parent->setDelegate(0);
+ }
+
+ //----------------------------------------------------------------------
+ // DotFileHandler
+ //----------------------------------------------------------------------
+
+ DotFileHandler::DotFileHandler(IBaseHandler *parent)
+ : DocNode(DotFile), m_parent(parent)
+ {
+ addEndHandler("image",this,&DotFileHandler::endDotFile);
+ }
+
+ DotFileHandler::~DotFileHandler()
+ {
+ }
+
+ void DotFileHandler::startDotFile(const QXmlAttributes& attrib)
+ {
+ m_name = attrib.value("name");
+ m_curString="";
+ m_parent->setDelegate(this);
+ }
+
+ void DotFileHandler::endDotFile()
+ {
+ m_caption = m_curString;
+ printf("image name=`%s' caption=`%s'\n",m_name.data(),m_caption.data());
+ m_parent->setDelegate(0);
+ }
+
+ //----------------------------------------------------------------------
+ // IndexEntryHandler
+ //----------------------------------------------------------------------
+
+ IndexEntryHandler::IndexEntryHandler(IBaseHandler *parent)
+ : DocNode(IndexEntry), m_parent(parent)
+ {
+ addEndHandler("indexentry",this,&IndexEntryHandler::endIndexEntry);
+ addStartHandler("primaryie",this,&IndexEntryHandler::startPrimaryIE);
+ addEndHandler("primaryie",this,&IndexEntryHandler::endPrimaryIE);
+ addStartHandler("secondaryie",this,&IndexEntryHandler::startSecondaryIE);
+ addEndHandler("secondaryie",this,&IndexEntryHandler::endSecondaryIE);
+ }
+
+ IndexEntryHandler::~IndexEntryHandler()
+ {
+ }
+
+ void IndexEntryHandler::startIndexEntry(const QXmlAttributes& /*attrib*/)
+ {
+ printf("start index entry\n");
+ m_parent->setDelegate(this);
+ }
+
+ void IndexEntryHandler::endIndexEntry()
+ {
+ printf("index entry primary=`%s' secondary=`%s'\n",
+ m_primary.data(),m_secondary.data());
+ m_parent->setDelegate(0);
+ }
+
+ void IndexEntryHandler::startPrimaryIE(const QXmlAttributes& /*attrib*/)
+ {
+ m_curString="";
+ }
+
+ void IndexEntryHandler::endPrimaryIE()
+ {
+ m_primary = m_curString;
+ }
+
+ void IndexEntryHandler::startSecondaryIE(const QXmlAttributes& /*attrib*/)
+ {
+ m_curString="";
+ }
+
+ void IndexEntryHandler::endSecondaryIE()
+ {
+ m_secondary = m_curString;
+ }
+
+ //----------------------------------------------------------------------
+ // EntryHandler
+ //----------------------------------------------------------------------
+
+ EntryHandler::EntryHandler(IBaseHandler *parent)
+ : DocNode(Entry), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+ addEndHandler("entry",this,&EntryHandler::endEntry);
+ addStartHandler("para",this,&EntryHandler::startParagraph);
+ }
+
+ EntryHandler::~EntryHandler()
+ {
+ }
+
+ void EntryHandler::startEntry(const QXmlAttributes&)
+ {
+ m_parent->setDelegate(this);
+ }
+
+ void EntryHandler::endEntry()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void EntryHandler::startParagraph(const QXmlAttributes& attrib)
+ {
+ ParagraphHandler *ph = new ParagraphHandler(this);
+ ph->startParagraph(attrib);
+ m_children.append(ph);
+ }
+
+ //----------------------------------------------------------------------
+ // RowHandler
+ //----------------------------------------------------------------------
+
+ RowHandler::RowHandler(IBaseHandler *parent)
+ : DocNode(Row), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+ addEndHandler("row",this,&RowHandler::endRow);
+ addStartHandler("entry",this,&RowHandler::startEntry);
+ }
+
+ RowHandler::~RowHandler()
+ {
+ }
+
+ void RowHandler::startRow(const QXmlAttributes&)
+ {
+ m_parent->setDelegate(this);
+ }
+
+ void RowHandler::endRow()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void RowHandler::startEntry(const QXmlAttributes& attrib)
+ {
+ EntryHandler *eh = new EntryHandler(this);
+ eh->startEntry(attrib);
+ m_children.append(eh);
+ }
+
+ //----------------------------------------------------------------------
+ // TableHandler
+ //----------------------------------------------------------------------
+
+ TableHandler::TableHandler(IBaseHandler *parent)
+ : DocNode(Table), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+ addEndHandler("table",this,&TableHandler::endTable);
+ addStartHandler("row",this,&TableHandler::startRow);
+ }
+
+ TableHandler::~TableHandler()
+ {
+ }
+
+ void TableHandler::startTable(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ m_numColumns = attrib.value("cols").toInt();
+ printf("table cols=%d\n",m_numColumns);
+ }
+
+ void TableHandler::endTable()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void TableHandler::startRow(const QXmlAttributes& attrib)
+ {
+ RowHandler *rh = new RowHandler(this);
+ rh->startRow(attrib);
+ m_children.append(rh);
+ }
+
+ //----------------------------------------------------------------------
+ // ParagraphHandler
+ //----------------------------------------------------------------------
+
+ ParagraphHandler::ParagraphHandler(IBaseHandler *parent)
+ : DocNode(Para), m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+
+ m_markupHandler = new MarkupHandler(m_children,m_curString);
+ setFallBackHandler(m_markupHandler);
+
+ addEndHandler("para",this,&ParagraphHandler::endParagraph);
+
+ addStartHandler("itemizedlist",this,&ParagraphHandler::startItemizedList);
+ addStartHandler("orderedlist",this,&ParagraphHandler::startOrderedList);
+ addStartHandler("parameterlist",this,&ParagraphHandler::startParameterList);
+ addStartHandler("simplesect",this,&ParagraphHandler::startSimpleSect);
+ addStartHandler("ref",this,&ParagraphHandler::startRef);
+ addStartHandler("variablelist",this,&ParagraphHandler::startVariableList);
+ addStartHandler("hruler",this,&ParagraphHandler::startHRuler);
+ addStartHandler("linebreak",this,&ParagraphHandler::startLineBreak);
+ addStartHandler("ulink",this,&ParagraphHandler::startULink);
+ addStartHandler("email",this,&ParagraphHandler::startEMail);
+ addStartHandler("link",this,&ParagraphHandler::startLink);
+ addStartHandler("programlisting",this,&ParagraphHandler::startProgramListing);
+ addStartHandler("formula",this,&ParagraphHandler::startFormula);
+ addStartHandler("image",this,&ParagraphHandler::startImage);
+ addStartHandler("dotfile",this,&ParagraphHandler::startDotFile);
+ addStartHandler("indexentry",this,&ParagraphHandler::startIndexEntry);
+ addStartHandler("table",this,&ParagraphHandler::startTable);
+ }
+
+ ParagraphHandler::~ParagraphHandler()
+ {
+ delete m_markupHandler;
+ }
+
+ void ParagraphHandler::startParagraph(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("para\n");
+ }
+
+ void ParagraphHandler::endParagraph()
+ {
+ addTextNode();
+ printf("end para\n");
+ m_parent->setDelegate(0);
+ }
+
+ void ParagraphHandler::startItemizedList(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ ListHandler *listHandler = new ListHandler(ItemizedList,this);
+ listHandler->startList(attrib);
+ m_children.append(listHandler);
+ }
+
+ void ParagraphHandler::startOrderedList(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ ListHandler *listHandler = new ListHandler(OrderedList,this);
+ listHandler->startList(attrib);
+ m_children.append(listHandler);
+ }
+
+ void ParagraphHandler::startParameterList(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ ParameterListHandler *parListHandler = new ParameterListHandler(this);
+ parListHandler->startParameterList(attrib);
+ m_children.append(parListHandler);
+ }
+
+ void ParagraphHandler::startSimpleSect(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ SimpleSectHandler *sectHandler = new SimpleSectHandler(this);
+ sectHandler->startSimpleSect(attrib);
+ m_children.append(sectHandler);
+ }
+
+ void ParagraphHandler::startRef(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ RefHandler *ref = new RefHandler(this);
+ ref->startRef(attrib);
+ m_children.append(ref);
+ }
+
+ void ParagraphHandler::startVariableList(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ VariableListHandler *vl = new VariableListHandler(this);
+ vl->startVariableList(attrib);
+ m_children.append(vl);
+ }
+
+ void ParagraphHandler::startHRuler(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ HRulerHandler *hr = new HRulerHandler(this);
+ hr->startHRuler(attrib);
+ m_children.append(hr);
+ }
+
+ void ParagraphHandler::startLineBreak(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ LineBreakHandler *lb = new LineBreakHandler(this);
+ lb->startLineBreak(attrib);
+ m_children.append(lb);
+ }
+
+ void ParagraphHandler::startULink(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ ULinkHandler *uh = new ULinkHandler(this);
+ uh->startULink(attrib);
+ m_children.append(uh);
+ }
+
+ void ParagraphHandler::startEMail(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ EMailHandler *eh = new EMailHandler(this);
+ eh->startEMail(attrib);
+ m_children.append(eh);
+ }
+
+ void ParagraphHandler::startLink(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ LinkHandler *lh = new LinkHandler(this);
+ lh->startLink(attrib);
+ m_children.append(lh);
+ }
+
+ void ParagraphHandler::startProgramListing(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ ProgramListingHandler *pl = new ProgramListingHandler(this);
+ pl->startProgramListing(attrib);
+ m_children.append(pl);
+ }
+
+ void ParagraphHandler::startFormula(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ FormulaHandler *fh = new FormulaHandler(this);
+ fh->startFormula(attrib);
+ m_children.append(fh);
+ }
+
+ void ParagraphHandler::startImage(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ ImageHandler *ih = new ImageHandler(this);
+ ih->startImage(attrib);
+ m_children.append(ih);
+ }
+
+ void ParagraphHandler::startDotFile(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ DotFileHandler *df = new DotFileHandler(this);
+ df->startDotFile(attrib);
+ m_children.append(df);
+ }
+
+ void ParagraphHandler::startIndexEntry(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ IndexEntryHandler *df = new IndexEntryHandler(this);
+ df->startIndexEntry(attrib);
+ m_children.append(df);
+ }
+
+ void ParagraphHandler::startTable(const QXmlAttributes& attrib)
+ {
+ addTextNode();
+ TableHandler *th = new TableHandler(this);
+ th->startTable(attrib);
+ m_children.append(th);
+ }
+
+ void ParagraphHandler::addTextNode()
+ {
+ if (!m_curString.isEmpty())
+ {
+ m_children.append(new TextNode(m_curString,m_markupHandler->markup()));
+ printf("addTextNode() text=\"%s\" markup=%x\n",
+ m_curString.data(),m_markupHandler->markup());
+ m_curString="";
+ }
+ }
+
+ //----------------------------------------------------------------------
+ // DocHandler
+ //----------------------------------------------------------------------
+
+ DocHandler::DocHandler(IBaseHandler *parent) : m_parent(parent)
+ {
+ m_children.setAutoDelete(TRUE);
+
+ addEndHandler("briefdescription",this,&DocHandler::endDoc);
+ addEndHandler("detaileddescription",this,&DocHandler::endDoc);
+
+ addStartHandler("para",this,&DocHandler::startParagraph);
+ }
+
+ DocHandler::~DocHandler()
+ {
+ }
+
+ void DocHandler::startDoc(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("start dochandler\n");
+ }
+
+ void DocHandler::endDoc()
+ {
+ printf("end dochandler\n");
+ m_parent->setDelegate(0);
+ }
+
+ void DocHandler::startParagraph(const QXmlAttributes& attrib)
+ {
+ ParagraphHandler *parHandler = new ParagraphHandler(this);
+ parHandler->startParagraph(attrib);
+ m_children.append(parHandler);
+ }
+
Index: addon/xmlparse/dochandler.h
===================================================================
RCS file: addon/xmlparse/dochandler.h
diff -N addon/xmlparse/dochandler.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/dochandler.h 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,749 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #ifndef _DOCHANDLER_H
+ #define _DOCHANDLER_H
+
+ #include <qstring.h>
+ #include <qlist.h>
+ #include <qxml.h>
+
+ #include "basehandler.h"
+
+ class ParagraphHandler;
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node of a structured documentation tree.
+ *
+ */
+ class DocNode
+ {
+ public:
+ enum Markup
+ {
+ Normal = 0x00,
+ Bold = 0x01,
+ Emphasis = 0x02,
+ ComputerOutput = 0x04,
+ Subscript = 0x08,
+ Superscript = 0x10,
+ SmallFont = 0x20,
+ Center = 0x40
+ };
+ enum NodeKind
+ {
+ Para,
+ Text,
+ MarkupModifier,
+ ItemizedList,
+ OrderedList,
+ ListItem,
+ ParameterList,
+ Parameter,
+ SimpleSect,
+ Title,
+ Ref,
+ VariableList,
+ VariableListEntry,
+ HRuler,
+ LineBreak,
+ ULink,
+ EMail,
+ Link,
+ ProgramListing,
+ CodeLine,
+ Highlight,
+ Anchor,
+ Formula,
+ Image,
+ DotFile,
+ IndexEntry,
+ Table,
+ Row,
+ Entry
+ };
+ DocNode(NodeKind k) : m_kind(k) {}
+ virtual ~DocNode() {}
+
+ private:
+ NodeKind m_kind;
+ };
+
+ //-----------------------------------------------------------------------------
+
+
+ /*! \brief Node representing a piece of text.
+ *
+ */
+ class TextNode : public DocNode
+ {
+ public:
+ TextNode(const QString &t,int markup)
+ : DocNode(Text), m_text(t), m_markup(markup) {}
+
+ private:
+ QString m_text;
+ int m_markup;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a change in the markup style.
+ *
+ */
+ class MarkupModifierNode : public DocNode
+ {
+ public:
+ MarkupModifierNode(int markup,bool enabled)
+ : DocNode(MarkupModifier), m_markup(markup), m_enabled(enabled) {}
+
+ private:
+ int m_markup;
+ bool m_enabled;
+ };
+
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Handles markup commands in the XML input.
+ *
+ */
+ class MarkupHandler : public BaseFallBackHandler<MarkupHandler>
+ {
+ public:
+ MarkupHandler(QList<DocNode> &children,QString &curString);
+ virtual ~MarkupHandler();
+ int markup() const { return m_curMarkup; }
+
+ virtual void startBold(const QXmlAttributes &attrib);
+ virtual void endBold();
+ virtual void startEmphasis(const QXmlAttributes &attrib);
+ virtual void endEmphasis();
+ virtual void startComputerOutput(const QXmlAttributes &attrib);
+ virtual void endComputerOutput();
+ virtual void startCenter(const QXmlAttributes &attrib);
+ virtual void endCenter();
+ virtual void startSmallFont(const QXmlAttributes &attrib);
+ virtual void endSmallFont();
+ virtual void startSubscript(const QXmlAttributes &attrib);
+ virtual void endSubscript();
+ virtual void startSuperscript(const QXmlAttributes &attrib);
+ virtual void endSuperscript();
+
+
+ private:
+ void addTextNode();
+
+ QList<DocNode> &m_children;
+ QString &m_curString;
+ int m_curMarkup;
+ };
+
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a list item.
+ *
+ */
+ class ListItemHandler : public DocNode, public BaseHandler<ListItemHandler>
+ {
+ public:
+ ListItemHandler(IBaseHandler *parent);
+ virtual ~ListItemHandler();
+ virtual void startListItem(const QXmlAttributes& attrib);
+ virtual void endListItem();
+ virtual void startParagraph(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ QList<DocNode> m_children;
+ };
+
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing list of items.
+ *
+ */
+ class ListHandler : public DocNode, public BaseHandler<ListHandler>
+ {
+ public:
+ ListHandler(NodeKind k,IBaseHandler *parent);
+ virtual ~ListHandler();
+ virtual void startList(const QXmlAttributes& attrib);
+ virtual void endList();
+ virtual void startListItem(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ QList<DocNode> m_children;
+ };
+
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a parameter.
+ *
+ */
+ class ParameterHandler : public DocNode,
+ public BaseHandler<ParameterHandler>
+ {
+ public:
+ ParameterHandler(IBaseHandler *parent);
+ virtual ~ParameterHandler();
+ virtual void startParameterName(const QXmlAttributes& attrib);
+ virtual void endParameterName();
+ virtual void startParameterDescription(const QXmlAttributes& attrib);
+ virtual void endParameterDescription();
+ virtual void startParagraph(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_name;
+ ParagraphHandler *m_description;
+ };
+
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a parameter list.
+ *
+ */
+ class ParameterListHandler : public DocNode,
+ public BaseHandler<ParameterListHandler>
+ {
+ public:
+ enum Types { Param, RetVal, Exception };
+ ParameterListHandler(IBaseHandler *parent);
+ virtual ~ParameterListHandler();
+ virtual void startParameterList(const QXmlAttributes& attrib);
+ virtual void endParameterList();
+ virtual void startParameterName(const QXmlAttributes& attrib);
+ virtual void startParameterDescription(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ QList<ParameterHandler> m_parameters;
+ ParameterHandler *m_curParam;
+ Types m_type;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a horizontal ruler
+ *
+ */
+ class LineBreakHandler : public DocNode, public BaseHandler<LineBreakHandler>
+ {
+ public:
+ LineBreakHandler(IBaseHandler *parent);
+ virtual ~LineBreakHandler();
+
+ void startLineBreak(const QXmlAttributes& attrib);
+ void endLineBreak();
+
+ private:
+ IBaseHandler *m_parent;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a link to section
+ *
+ */
+ class LinkHandler : public DocNode, public BaseHandler<LinkHandler>
+ {
+ public:
+ LinkHandler(IBaseHandler *parent);
+ virtual ~LinkHandler();
+
+ void startLink(const QXmlAttributes& attrib);
+ void endLink();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_ref;
+ QString m_text;
+ };
+
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a link to an email address
+ *
+ */
+ class EMailHandler : public DocNode, public BaseHandler<EMailHandler>
+ {
+ public:
+ EMailHandler(IBaseHandler *parent);
+ virtual ~EMailHandler();
+
+ void startEMail(const QXmlAttributes& attrib);
+ void endEMail();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_address;
+ };
+
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a link to an URL
+ *
+ */
+ class ULinkHandler : public DocNode, public BaseHandler<ULinkHandler>
+ {
+ public:
+ ULinkHandler(IBaseHandler *parent);
+ virtual ~ULinkHandler();
+
+ void startULink(const QXmlAttributes& attrib);
+ void endULink();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_url;
+ QString m_text;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a horizontal ruler
+ *
+ */
+ class HRulerHandler : public DocNode, public BaseHandler<HRulerHandler>
+ {
+ public:
+ HRulerHandler(IBaseHandler *parent);
+ virtual ~HRulerHandler();
+
+ void startHRuler(const QXmlAttributes& attrib);
+ void endHRuler();
+
+ private:
+ IBaseHandler *m_parent;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a reference to another item
+ *
+ */
+ class RefHandler : public DocNode, public BaseHandler<RefHandler>
+ {
+ public:
+ RefHandler(IBaseHandler *parent);
+ virtual ~RefHandler();
+ void startRef(const QXmlAttributes& attrib);
+ void endRef();
+ private:
+ IBaseHandler *m_parent;
+ QString m_refId;
+ QString m_anchor;
+ QString m_linkText;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing the title of a section
+ *
+ */
+ // children: text, ref
+ // children handled by MarkupHandler:
+ // bold, computeroutput, emphasis, center,
+ // small, subscript, superscript.
+ class TitleHandler : public DocNode, public BaseHandler<TitleHandler>
+ {
+ public:
+ TitleHandler(IBaseHandler *parent);
+ virtual ~TitleHandler();
+ virtual void startTitle(const QXmlAttributes& attrib);
+ virtual void endTitle();
+ virtual void startRef(const QXmlAttributes& attrib);
+ void addTextNode();
+ private:
+ IBaseHandler *m_parent;
+ QList<DocNode> m_children;
+ MarkupHandler *m_markupHandler;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing a simple section with an unnumbered header.
+ *
+ */
+ // children: title, para
+ class SimpleSectHandler : public DocNode,
+ public BaseHandler<SimpleSectHandler>
+ {
+ public:
+ enum Types { Invalid = 0,
+ See, Return, Author, Version,
+ Since, Date, Bug, Note,
+ Warning, Par, Deprecated, Pre,
+ Post, Invar, Remark, Attention,
+ Todo, Test, RCS, EnumValues,
+ Examples
+ };
+ SimpleSectHandler(IBaseHandler *parent);
+ virtual ~SimpleSectHandler();
+ virtual void startSimpleSect(const QXmlAttributes& attrib);
+ virtual void endSimpleSect();
+ virtual void startTitle(const QXmlAttributes& attrib);
+ virtual void startParagraph(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ ParagraphHandler *m_paragraph;
+ Types m_type;
+ TitleHandler *m_title;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /* \brief Node representing an named item of a VariableList.
+ *
+ */
+ class VariableListEntryHandler : public DocNode, public BaseHandler<VariableListEntryHandler>
+ {
+ public:
+ virtual void startVarListEntry(const QXmlAttributes& attrib);
+ virtual void endVarListEntry();
+ virtual void startListItem(const QXmlAttributes& attrib);
+ virtual void endListItem();
+ virtual void startTerm(const QXmlAttributes& attrib);
+ virtual void endTerm();
+ virtual void startParagraph(const QXmlAttributes& attrib);
+
+ VariableListEntryHandler(IBaseHandler *parent);
+ virtual ~VariableListEntryHandler();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_term;
+ ParagraphHandler *m_description;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a list of named items.
+ *
+ */
+ // children: varlistentry, listitem
+ class VariableListHandler : public DocNode, public BaseHandler<VariableListHandler>
+ {
+ public:
+ virtual void startVariableList(const QXmlAttributes& attrib);
+ virtual void endVariableList();
+ virtual void startVarListEntry(const QXmlAttributes& attrib);
+ virtual void startListItem(const QXmlAttributes& attrib);
+
+ VariableListHandler(IBaseHandler *parent);
+ virtual ~VariableListHandler();
+
+ private:
+ IBaseHandler *m_parent;
+ QList<VariableListEntryHandler> m_entries;
+ VariableListEntryHandler *m_curEntry;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a highlighted text fragment.
+ *
+ */
+ // children: -
+ class HighlightHandler : public DocNode, public BaseHandler<HighlightHandler>
+ {
+ public:
+ HighlightHandler(IBaseHandler *parent);
+ virtual ~HighlightHandler();
+ void startHighlight(const QXmlAttributes& attrib);
+ void endHighlight();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_class;
+ QString m_text;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a line of code.
+ *
+ */
+ // children: linenumber, highlight, anchor, ref
+ class CodeLineHandler : public DocNode, public BaseHandler<CodeLineHandler>
+ {
+ public:
+
+ virtual void startCodeLine(const QXmlAttributes&);
+ virtual void endCodeLine();
+ virtual void startLineNumber(const QXmlAttributes&);
+ virtual void endLineNumber();
+ virtual void startHighlight(const QXmlAttributes&);
+ virtual void startRef(const QXmlAttributes&);
+
+ CodeLineHandler(IBaseHandler *parent);
+ virtual ~CodeLineHandler();
+
+ private:
+ void addTextNode();
+
+ IBaseHandler *m_parent;
+ int m_lineNumber;
+ QString m_refId;
+ QList<DocNode> m_children;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a program listing
+ *
+ */
+ // children: codeline, linenumber
+ class ProgramListingHandler : public DocNode, public BaseHandler<ProgramListingHandler>
+ {
+ public:
+ virtual void startProgramListing(const QXmlAttributes& attrib);
+ virtual void endProgramListing();
+ virtual void startCodeLine(const QXmlAttributes&);
+ virtual void startLineNumber(const QXmlAttributes&);
+
+ ProgramListingHandler(IBaseHandler *parent);
+ virtual ~ProgramListingHandler();
+ private:
+ IBaseHandler *m_parent;
+ QList<CodeLineHandler> m_children;
+ bool m_hasLineNumber;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a formula.
+ *
+ */
+ // children: -
+ class FormulaHandler : public DocNode, public BaseHandler<FormulaHandler>
+ {
+ public:
+ FormulaHandler(IBaseHandler *parent);
+ virtual ~FormulaHandler();
+ void startFormula(const QXmlAttributes& attrib);
+ void endFormula();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_id;
+ QString m_text;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing an image.
+ *
+ */
+ // children: -
+ class ImageHandler : public DocNode, public BaseHandler<ImageHandler>
+ {
+ public:
+ ImageHandler(IBaseHandler *parent);
+ virtual ~ImageHandler();
+ void startImage(const QXmlAttributes& attrib);
+ void endImage();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_name;
+ QString m_caption;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a dot file.
+ *
+ */
+ // children: -
+ class DotFileHandler : public DocNode, public BaseHandler<DotFileHandler>
+ {
+ public:
+ DotFileHandler(IBaseHandler *parent);
+ virtual ~DotFileHandler();
+ void startDotFile(const QXmlAttributes& attrib);
+ void endDotFile();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_name;
+ QString m_caption;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing an entry in the index.
+ *
+ */
+ // children: -
+ class IndexEntryHandler : public DocNode, public BaseHandler<IndexEntryHandler>
+ {
+ public:
+ IndexEntryHandler(IBaseHandler *parent);
+ virtual ~IndexEntryHandler();
+ void startIndexEntry(const QXmlAttributes& attrib);
+ void endIndexEntry();
+ void startPrimaryIE(const QXmlAttributes& attrib);
+ void endPrimaryIE();
+ void startSecondaryIE(const QXmlAttributes& attrib);
+ void endSecondaryIE();
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_primary;
+ QString m_secondary;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing an entry in the table entry.
+ *
+ */
+ // children: para
+ class EntryHandler : public DocNode, public BaseHandler<EntryHandler>
+ {
+ public:
+ EntryHandler(IBaseHandler *parent);
+ virtual ~EntryHandler();
+ void startEntry(const QXmlAttributes& attrib);
+ void endEntry();
+ void startParagraph(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ QList<DocNode> m_children;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing an entry in the table row.
+ *
+ */
+ // children: entry
+ class RowHandler : public DocNode, public BaseHandler<RowHandler>
+ {
+ public:
+ RowHandler(IBaseHandler *parent);
+ virtual ~RowHandler();
+ void startRow(const QXmlAttributes& attrib);
+ void endRow();
+ void startEntry(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ QList<EntryHandler> m_children;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing an entry in the table.
+ *
+ */
+ // children: row
+ class TableHandler : public DocNode, public BaseHandler<TableHandler>
+ {
+ public:
+ TableHandler(IBaseHandler *parent);
+ virtual ~TableHandler();
+ void startTable(const QXmlAttributes& attrib);
+ void endTable();
+ void startRow(const QXmlAttributes& attrib);
+
+ private:
+ IBaseHandler *m_parent;
+ QList<RowHandler> m_children;
+ int m_numColumns;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a paragraph of text and commands.
+ *
+ */
+ // children: itemizedlist, orderedlist, parameterlist, simplesect, ref,
+ // variablelist, hruler, linebreak, ulink, email, link
+ // programlisting, formula, image, dotfile, indexentry,
+ // table
+ //
+ // children handled by MarkupHandler:
+ // bold, computeroutput, emphasis, center,
+ // small, subscript, superscript.
+ //
+ class ParagraphHandler : public DocNode, public BaseHandler<ParagraphHandler>
+ {
+ public:
+ virtual void startParagraph(const QXmlAttributes& attrib);
+ virtual void endParagraph();
+ virtual void startItemizedList(const QXmlAttributes& attrib);
+ virtual void startOrderedList(const QXmlAttributes& attrib);
+ virtual void startParameterList(const QXmlAttributes& attrib);
+ virtual void startSimpleSect(const QXmlAttributes& attrib);
+ virtual void startRef(const QXmlAttributes& attrib);
+ virtual void startVariableList(const QXmlAttributes& attrib);
+ virtual void startHRuler(const QXmlAttributes& attrib);
+ virtual void startLineBreak(const QXmlAttributes& attrib);
+ virtual void startULink(const QXmlAttributes& attrib);
+ virtual void startEMail(const QXmlAttributes& attrib);
+ virtual void startLink(const QXmlAttributes& attrib);
+ virtual void startProgramListing(const QXmlAttributes& attrib);
+ virtual void startFormula(const QXmlAttributes& attrib);
+ virtual void startImage(const QXmlAttributes& attrib);
+ virtual void startDotFile(const QXmlAttributes& attrib);
+ virtual void startIndexEntry(const QXmlAttributes& attrib);
+ virtual void startTable(const QXmlAttributes& attrib);
+
+ ParagraphHandler(IBaseHandler *parent);
+ virtual ~ParagraphHandler();
+
+ private:
+ void addTextNode();
+ IBaseHandler *m_parent;
+ QList<DocNode> m_children;
+ MarkupHandler *m_markupHandler;
+ };
+
+ //-----------------------------------------------------------------------------
+
+ /*! \brief Node representing a documentation block.
+ *
+ */
+ // children: para
+ // TODO: title, sect1, sect2, sect3
+ class DocHandler : public BaseHandler<DocHandler>
+ {
+ public:
+ virtual void startDoc(const QXmlAttributes& attrib);
+ virtual void endDoc();
+ virtual void startParagraph(const QXmlAttributes& attrib);
+
+ DocHandler(IBaseHandler *parent);
+ virtual ~DocHandler();
+
+ private:
+ IBaseHandler *m_parent;
+ QList<DocNode> m_children;
+ };
+
+ #endif
Index: addon/xmlparse/doxmlintf.h
===================================================================
RCS file: addon/xmlparse/doxmlintf.h
diff -N addon/xmlparse/doxmlintf.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/doxmlintf.h 16 Dec 2001 23:30:02 -0000 1.1.1.3
***************
*** 0 ****
--- 1,87 ----
+ #ifndef _DOXMLINTF_H
+ #define _DOXMLINTF_H
+
+ #include <qlist.h>
+ #include <qstring.h>
+
+ class IMember;
+
+ class IParam
+ {
+ public:
+ virtual QString type() const = 0;
+ virtual QString declarationName() const = 0;
+ virtual QString definitionName() const = 0;
+ virtual QString attrib() const = 0;
+ virtual QString arraySpecifier() const = 0;
+ virtual QString defaultValue() const = 0;
+ };
+
+ class IMemberReference
+ {
+ public:
+ virtual IMember *getMember() const = 0;
+ virtual QString getMemberName() const = 0;
+ virtual int getLineNumber() const = 0;
+ };
+
+ class IMember
+ {
+ public:
+ virtual QString kind() const = 0;
+ virtual QString id() const = 0;
+ virtual QString protection() const = 0;
+ virtual QString virtualness() const = 0;
+ virtual QString type() const = 0;
+ virtual QString name() const = 0;
+ virtual QListIterator<IParam> getParamIterator() const = 0;
+ };
+
+ class ISection
+ {
+ public:
+ virtual QString kind() const = 0;
+ virtual QListIterator<IMember> getMemberIterator() const = 0;
+ };
+
+ class ICompound
+ {
+ public:
+ virtual QString name() const = 0;
+ virtual QString id() const = 0;
+ virtual QString kind() const = 0;
+ virtual QListIterator<ISection> getSectionIterator() const = 0;
+ };
+
+ /*! Root node of the object model. */
+ class IDoxygen
+ {
+ public:
+ /*! Returns an iterator that can be used to iterate over the list
+ * of compounds found in the project.
+ */
+ virtual QListIterator<ICompound> getCompoundIterator() const = 0;
+
+ /*! Returns a compound given its unique \a id. If you have a
+ * compound id this function is much more efficient than iterating
+ * over the compound list. Returns 0 if the id is not valid.
+ */
+ virtual ICompound *getCompoundById(const QString &id) const = 0;
+
+ /*! Returns a compound given its name (including the scope).
+ * Returns 0 if the name is not found in the project.
+ */
+ virtual ICompound *getCompoundByName(const QString &name) const = 0;
+
+ virtual IMember *getMemberById(const QString &id) const = 0;
+ virtual QList<IMember> *getMemberByName(const QString &name) const = 0;
+ };
+
+ /*! Factory method that creates an object model given an XML file generated
+ * by doxygen.
+ * @param xmlFileName The name of the XML to parse.
+ * @returns An iterface to the object model.
+ */
+ IDoxygen *createObjectModelFromXML(const char *xmlFileName);
+
+ #endif
Index: addon/xmlparse/doxygen.dtd
===================================================================
RCS file: addon/xmlparse/doxygen.dtd
diff -N addon/xmlparse/doxygen.dtd
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/doxygen.dtd 20 Nov 2001 05:17:19 -0000 1.1.1.2
***************
*** 0 ****
--- 1,123 ----
+ <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+ <!-- NOTE: THIS DTD IS NOT UP TO DATE!!! DO NOT DEPEND ON IT -->
+ <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
+
+ <?xml version="1.0" encoding="ISO-8859-1"?>
+ <!-- DTD describing the grammar used in doxygen's XML output -->
+
+ <!-- standard character entities -->
+ <!ENTITY lt "<">
+ <!ENTITY gt ">">
+ <!ENTITY amp "&">
+ <!ENTITY apos "'">
+ <!ENTITY quot """>
+
+ <!-- required attributes for compounds -->
+ <!ENTITY % compound-req.att
+ 'id ID #REQUIRED
+ type (group|file|namespace|
+ class|struct|union|
+ interface|dispinterface|
+ valuetype|library) #REQUIRED'
+ >
+ <!-- required attributes for references -->
+ <!ENTITY % ref-req.att 'idref IDREF #REQUIRED'
+ >
+ <!-- required attributes for inheritance relations -->
+ <!ENTITY % inheritcompref-req.att
+ '%ref-req.att;
+ prot (public|protected|private) #REQUIRED
+ virt (non-virtual|virtual) #REQUIRED'
+ >
+
+ <!-- required attributes for member sections -->
+ <!ENTITY % sec-req.att 'type (user
+ |public-type
+ |public-func
+ |public-attrib
+ |public-slot
+ |public-static-func
+ |public-static-attrib
+ |protected-type
+ |protected-func
+ |protected-attrib
+ |protected-slot
+ |protected-static-func
+ |protected-static-attrib
+ |private-type
+ |private-func
+ |private-attrib
+ |private-slot
+ |private-static-func
+ |private-static-attrib
+ |signal
+ |friend
+ |related
+ |define|prototype|typedef|enum|func|var
+ |dcop-func
+ |property
+ ) #REQUIRED
+ '
+ >
+ <!-- required attributes for members -->
+ <!ENTITY % mem-req.att 'id ID #REQUIRED'>
+
+ <!-- optional attributes for function -->
+ <!ENTITY % func-opt.att 'virt (virtual|pure-virtual) #IMPLIED'>
+
+ <!-- elements -->
+ <!ELEMENT doxygen (compounddef)*>
+ <!ELEMENT compounddef (compoundname,
+ basecompoundref*,
+ derivedcompoundref*,
+ sectiondef*,
+ briefdescription,
+ detaileddescription,
+ inheritancegraph?,
+ collaborationgraph?,
+ sourcecode?
+ )
+ >
+ <!ATTLIST compounddef %compound-req.att;>
+ <!ELEMENT compoundref (#PCDATA)>
+ <!ATTLIST compoundref %ref-req.att;>
+ <!ELEMENT memberref (#PCDATA)>
+ <!ATTLIST memberref %ref-req.att;>
+ <!ELEMENT basecompoundref EMPTY>
+ <!ATTLIST basecompoundref %inheritcompref-req.att;>
+ <!ELEMENT derivedcompoundref EMPTY>
+ <!ATTLIST derivedcompoundref %inheritcompref-req.att;>
+ <!ELEMENT sectionlist (sectiondef)+>
+ <!ELEMENT sectiondef (memberlist)>
+ <!ATTLIST sectiondef %sec-req.att;>
+ <!ELEMENT memberlist (functiondef|variabledef|typedef|definedef|enumdef)+>
+ <!ELEMENT functiondef (type?,name,paramlist)>
+ <!ATTLIST functiondef %mem-req.att; %func-opt.att;>
+ <!ELEMENT variabledef (type,name,array?,initializer?)>
+ <!ATTLIST variabledef %mem-req.att;>
+ <!ELEMENT typedef (type,name)>
+ <!ATTLIST typedef %mem-req.att;>
+ <!ELEMENT definedef (name,defparamlist?,initializer?)>
+ <!ATTLIST definedef %mem-req.att;>
+ <!ELEMENT enumdef (name,enumvaluelist)>
+ <!ATTLIST enumdef %mem-req.att;>
+ <!ELEMENT slotdef (type,name,paramlist)>
+ <!ATTLIST slotdef %mem-req.att;>
+ <!ELEMENT signaldef (type,name,paramlist)>
+ <!ATTLIST signaldef %mem-req.att;>
+ <!ELEMENT paramlist (param)*>
+ <!ELEMENT param (attributes?,type,declname?,defname?,array?,defval?)>
+ <!ELEMENT defparamlist (defarg)*>
+ <!ELEMENT defarg (#PCDATA)>
+ <!ELEMENT enumvaluelist (enumvalue)*>
+ <!ELEMENT enumvalue (name,initializer?)>
+ <!ELEMENT name (#PCDATA)>
+ <!ELEMENT compoundname (#PCDATA)>
+ <!ELEMENT declname (#PCDATA)>
+ <!ELEMENT defname (#PCDATA)>
+ <!ELEMENT type (#PCDATA|memberref|compoundref|compounddef)*>
+ <!ELEMENT defval (#PCDATA|memberref|compoundref)*>
+ <!ELEMENT initializer (#PCDATA|memberref|compoundref)*>
+ <!ELEMENT array (#PCDATA)>
+ <!ELEMENT attributes (#PCDATA)>
+
Index: addon/xmlparse/main.cpp
===================================================================
RCS file: addon/xmlparse/main.cpp
diff -N addon/xmlparse/main.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/main.cpp 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,66 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #include <stdio.h>
+ #include "doxmlintf.h"
+
+
+ int main(int argc,char **argv)
+ {
+ if (argc!=2)
+ {
+ printf("Usage: %s file.xml\n",argv[0]);
+ exit(1);
+ }
+
+ IDoxygen *dox = createObjectModelFromXML(argv[1]);
+
+ {
+ QListIterator<ICompound> cli(dox->getCompoundIterator());
+ ICompound *comp;
+ printf("--- compound list ---------\n");
+ for (cli.toFirst();(comp=cli.current());++cli)
+ {
+ printf("Compound name=%s id=%s kind=%s\n",
+ comp->name().data(),comp->id().data(),comp->kind().data());
+ QListIterator<ISection> sli(comp->getSectionIterator());
+ ISection *sec;
+ for (sli.toFirst();(sec=sli.current());++sli)
+ {
+ printf(" Section kind=%s\n",sec->kind().data());
+ QListIterator<IMember> mli(sec->getMemberIterator());
+ IMember *mem;
+ for (mli.toFirst();(mem=mli.current());++mli)
+ {
+ printf(" Member type=%s name=%s\n",mem->type().data(),mem->name().data());
+ QListIterator<IParam> pli(mem->getParamIterator());
+ IParam *par;
+ for (pli.toFirst();(par=pli.current());++pli)
+ {
+ printf(" Param type=%s name=%s defvalue=%s\n",
+ par->type().data(),par->definitionName().data(),par->defaultValue().data());
+ }
+ }
+ }
+ }
+ printf("---------------------------\n");
+
+ }
+
+ delete dox;
+
+ return 0;
+ }
+
Index: addon/xmlparse/mainhandler.cpp
===================================================================
RCS file: addon/xmlparse/mainhandler.cpp
diff -N addon/xmlparse/mainhandler.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/mainhandler.cpp 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,124 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #include <qxml.h>
+ #include "mainhandler.h"
+
+ MainHandler::MainHandler() : m_compoundDict(10007), m_compoundNameDict(10007)
+ {
+ m_compounds.setAutoDelete(TRUE);
+ addStartHandler("doxygen");
+ addStartHandler("compounddef",this,&MainHandler::startCompound);
+ addEndHandler("doxygen");
+ addEndHandler("compounddef");
+ }
+
+ MainHandler::~MainHandler()
+ {
+ printf("MainHandler::~MainHandler()\n");
+ }
+
+ void MainHandler::startCompound(const QXmlAttributes& attrib)
+ {
+ CompoundHandler *compHandler = new CompoundHandler(this);
+ compHandler->startCompound(attrib);
+ m_compounds.append(compHandler);
+ }
+
+ void MainHandler::insertMemberById(const QString &id,IMember *h)
+ {
+ m_memberDict.insert(id,h);
+ }
+
+ void MainHandler::insertMemberByName(const QString &name,IMember *h)
+ {
+ QList<IMember> *ml = m_memberNameDict[name];
+ if (ml)
+ {
+ ml->append(h);
+ }
+ else
+ {
+ ml = new QList<IMember>;
+ ml->append(h);
+ m_memberNameDict.insert(name,ml);
+ }
+ }
+
+ void MainHandler::initialize()
+ {
+ QListIterator<ICompound> mci(m_compounds);
+ CompoundHandler *compHandler;
+ for (;(compHandler=(CompoundHandler *)mci.current());++mci)
+ {
+ compHandler->initialize(this);
+ m_compoundNameDict.insert(compHandler->name(),compHandler);
+ m_compoundDict.insert(compHandler->id(),compHandler);
+ }
+
+ // for each member
+ QDictIterator< QList<IMember> > mndi(m_memberNameDict);
+ QList<IMember> *ml;
+ for (;(ml=mndi.current());++mndi)
+ {
+ QListIterator<IMember> mli(*ml);
+ IMember *mem;
+ for (;(mem=mli.current());++mli)
+ {
+ ((MemberHandler*)mem)->initialize(this);
+ }
+ }
+
+ }
+
+ class ErrorHandler : public QXmlErrorHandler
+ {
+ public:
+ virtual ~ErrorHandler() {}
+ bool warning( const QXmlParseException & )
+ {
+ return FALSE;
+ }
+ bool error( const QXmlParseException & )
+ {
+ return FALSE;
+ }
+ bool fatalError( const QXmlParseException &exception )
+ {
+ fprintf(stderr,"Fatal error at line %d column %d: %s\n",
+ exception.lineNumber(),exception.columnNumber(),
+ exception.message().data());
+ return FALSE;
+ }
+ QString errorString() { return ""; }
+
+ private:
+ QString errorMsg;
+ };
+
+ IDoxygen *createObjectModelFromXML(const char * xmlFileName)
+ {
+ QFile xmlFile(xmlFileName);
+ MainHandler * handler = new MainHandler;
+ ErrorHandler errorHandler;
+ QXmlInputSource source( xmlFile );
+ QXmlSimpleReader reader;
+ reader.setContentHandler( handler );
+ reader.setErrorHandler( &errorHandler );
+ reader.parse( source );
+ handler->initialize();
+ return handler;
+ }
+
Index: addon/xmlparse/mainhandler.h
===================================================================
RCS file: addon/xmlparse/mainhandler.h
diff -N addon/xmlparse/mainhandler.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/mainhandler.h 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,64 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #ifndef _MAINHANDLER_H
+ #define _MAINHANDLER_H
+
+ #include <qlist.h>
+ #include "basehandler.h"
+ #include "compoundhandler.h"
+ #include "doxmlintf.h"
+
+ class MainHandler : public IDoxygen, public BaseHandler<MainHandler>
+ {
+ public:
+ virtual void startCompound(const QXmlAttributes& attrib);
+ MainHandler();
+ virtual ~MainHandler();
+
+ QListIterator<ICompound> getCompoundIterator() const
+ {
+ return m_compounds;
+ }
+ ICompound *getCompoundById(const QString &id) const
+ {
+ return m_compoundDict[id];
+ }
+ virtual ICompound *getCompoundByName(const QString &name) const
+ {
+ return name.isEmpty() ? 0 : m_compoundNameDict[name];
+ }
+ virtual IMember *getMemberById(const QString &id) const
+ {
+ return m_memberDict[id];
+ }
+ virtual QList<IMember> *getMemberByName(const QString &name) const
+ {
+ return m_memberNameDict[name];
+ }
+ void insertMemberById(const QString &id,IMember *h);
+ void insertMemberByName(const QString &name,IMember *h);
+
+ void initialize();
+
+ private:
+ QList<ICompound> m_compounds;
+ QDict<ICompound> m_compoundDict;
+ QDict<ICompound> m_compoundNameDict;
+ QDict<IMember> m_memberDict;
+ QDict<QList<IMember> > m_memberNameDict;
+ };
+
+ #endif
Index: addon/xmlparse/memberhandler.cpp
===================================================================
RCS file: addon/xmlparse/memberhandler.cpp
diff -N addon/xmlparse/memberhandler.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/memberhandler.cpp 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,160 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #include "memberhandler.h"
+ #include "sectionhandler.h"
+ #include "dochandler.h"
+ #include "mainhandler.h"
+
+ MemberHandler::MemberHandler(IBaseHandler *parent)
+ : m_parent(parent), m_brief(0), m_detailed(0)
+ {
+ addEndHandler("memberdef",this,&MemberHandler::endMember);
+
+ addStartHandler("type");
+ addEndHandler("type",this,&MemberHandler::endType);
+
+ addStartHandler("name");
+ addEndHandler("name",this,&MemberHandler::endName);
+
+ addStartHandler("param",this,&MemberHandler::startParam);
+
+ addStartHandler("briefdescription",this,&MemberHandler::startBriefDesc);
+
+ addStartHandler("detaileddescription",this,&MemberHandler::startDetailedDesc);
+
+ addStartHandler("location",this,&MemberHandler::startLocation);
+ addEndHandler("location");
+
+ addStartHandler("references",this,&MemberHandler::startReferences);
+ addEndHandler("references",this,&MemberHandler::endReferences);
+
+ addStartHandler("referencedby",this,&MemberHandler::startReferencedBy);
+ addEndHandler("referencedby",this,&MemberHandler::endReferencedBy);
+
+ m_params.setAutoDelete(TRUE);
+ m_references.setAutoDelete(TRUE);
+ m_referencedBy.setAutoDelete(TRUE);
+
+ }
+
+ MemberHandler::~MemberHandler()
+ {
+ delete m_brief;
+ delete m_detailed;
+ }
+
+ void MemberHandler::startMember(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ m_kind = attrib.value("kind");
+ m_id = attrib.value("id");
+ m_protection = attrib.value("prot");
+ m_virtualness = attrib.value("virtualness");
+ printf("member kind=`%s' id=`%s' prot=`%s' virt=`%s'\n",
+ m_kind.data(),m_id.data(),m_protection.data(),m_virtualness.data());
+ }
+
+ void MemberHandler::startBriefDesc(const QXmlAttributes& attrib)
+ {
+ DocHandler *docHandler = new DocHandler(this);
+ docHandler->startDoc(attrib);
+ m_brief = docHandler;
+ }
+
+ void MemberHandler::startDetailedDesc(const QXmlAttributes& attrib)
+ {
+ DocHandler *docHandler = new DocHandler(this);
+ docHandler->startDoc(attrib);
+ m_detailed = docHandler;
+ }
+
+ void MemberHandler::startLocation(const QXmlAttributes& attrib)
+ {
+ m_defFile = attrib.value("file");
+ m_defLine = attrib.value("line").toInt();
+ }
+
+ void MemberHandler::startReferences(const QXmlAttributes& attrib)
+ {
+ MemberReference *mr = new MemberReference;
+ mr->m_memId = attrib.value("id");
+ mr->m_line = attrib.value("line").toInt();
+ m_references.append(mr);
+ m_curString="";
+ }
+
+ void MemberHandler::endReferences()
+ {
+ m_references.getLast()->m_name = m_curString;
+ }
+
+ void MemberHandler::startReferencedBy(const QXmlAttributes& attrib)
+ {
+ MemberReference *mr = new MemberReference;
+ mr->m_memId = attrib.value("id");
+ mr->m_line = attrib.value("line").toInt();
+ m_referencedBy.append(mr);
+ m_curString="";
+ }
+
+ void MemberHandler::endReferencedBy()
+ {
+ m_referencedBy.getLast()->m_name = m_curString;
+ }
+
+ void MemberHandler::endMember()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void MemberHandler::endType()
+ {
+ m_type = m_curString.stripWhiteSpace();
+ printf("member type=`%s'\n",m_type.data());
+ }
+
+ void MemberHandler::endName()
+ {
+ m_name = m_curString.stripWhiteSpace();
+ printf("member name=`%s'\n",m_name.data());
+ }
+
+ void MemberHandler::startParam(const QXmlAttributes& attrib)
+ {
+ ParamHandler *paramHandler = new ParamHandler(this);
+ paramHandler->startParam(attrib);
+ m_params.append(paramHandler);
+ }
+
+ void MemberHandler::initialize(MainHandler *mh)
+ {
+ QListIterator<MemberReference> mli(m_references);
+ MemberReference *mr;
+ for (;(mr=mli.current());++mli)
+ {
+ mr->initialize(mh);
+ }
+ }
+
+ void MemberHandler::MemberReference::initialize(MainHandler *mh)
+ {
+ m_mainHandler = mh;
+ }
+
+ IMember *MemberHandler::MemberReference::getMember() const
+ {
+ return m_mainHandler->getMemberById(m_memId);
+ }
Index: addon/xmlparse/memberhandler.h
===================================================================
RCS file: addon/xmlparse/memberhandler.h
diff -N addon/xmlparse/memberhandler.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/memberhandler.h 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,91 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #ifndef _MEMBERHANDLER_H
+ #define _MEMBERHANDLER_H
+
+ #include <qstring.h>
+ #include <qlist.h>
+ #include <qxml.h>
+
+ #include "basehandler.h"
+ #include "paramhandler.h"
+ #include "doxmlintf.h"
+
+ class DocHandler;
+ class MainHandler;
+
+ class MemberHandler : public IMember, public BaseHandler<MemberHandler>
+ {
+ public:
+ virtual void startMember(const QXmlAttributes& attrib);
+ virtual void endMember();
+ virtual void startParam(const QXmlAttributes& attrib);
+ virtual void endType();
+ virtual void endName();
+ virtual void startBriefDesc(const QXmlAttributes& attrib);
+ virtual void startDetailedDesc(const QXmlAttributes& attrib);
+ virtual void startLocation(const QXmlAttributes& attrib);
+ virtual void startReferences(const QXmlAttributes& attrib);
+ virtual void endReferences();
+ virtual void startReferencedBy(const QXmlAttributes& attrib);
+ virtual void endReferencedBy();
+
+ MemberHandler(IBaseHandler *parent);
+ virtual ~MemberHandler();
+
+ // IMember
+ virtual QString kind() const { return m_kind; }
+ virtual QString id() const { return m_id; }
+ virtual QString protection() const { return m_protection; }
+ virtual QString virtualness() const { return m_virtualness; }
+ virtual QString type() const { return m_type; }
+ virtual QString name() const { return m_name; }
+ virtual QListIterator<IParam> getParamIterator() const { return m_params; }
+
+ void initialize(MainHandler *m);
+
+ private:
+ struct MemberReference : public IMemberReference
+ {
+ virtual ~MemberReference() {}
+ virtual IMember *getMember() const;
+ virtual QString getMemberName() const { return m_name; }
+ virtual int getLineNumber() const { return m_line; }
+ void initialize(MainHandler *m);
+
+ QString m_memId;
+ QString m_name;
+ int m_line;
+ MainHandler *m_mainHandler;
+ };
+
+ IBaseHandler *m_parent;
+ QString m_kind;
+ QString m_id;
+ QString m_protection;
+ QString m_virtualness;
+ QString m_type;
+ QString m_name;
+ DocHandler *m_brief;
+ DocHandler *m_detailed;
+ QList<IParam> m_params;
+ QList<MemberReference> m_references;
+ QList<MemberReference> m_referencedBy;
+ QString m_defFile;
+ int m_defLine;
+ };
+
+ #endif
Index: addon/xmlparse/paramhandler.cpp
===================================================================
RCS file: addon/xmlparse/paramhandler.cpp
diff -N addon/xmlparse/paramhandler.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/paramhandler.cpp 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,94 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #include "paramhandler.h"
+ #include "memberhandler.h"
+
+ ParamHandler::ParamHandler(IBaseHandler *parent) : m_parent(parent)
+ {
+ addEndHandler("param",this,&ParamHandler::endParam);
+
+ addStartHandler("type");
+ addEndHandler("type",this,&ParamHandler::endType);
+
+ addStartHandler("declname");
+ addEndHandler("declname",this,&ParamHandler::endDeclName);
+
+ addStartHandler("defname");
+ addEndHandler("defname",this,&ParamHandler::endDefName);
+
+ addStartHandler("array");
+ addEndHandler("array",this,&ParamHandler::endArray);
+
+ addStartHandler("attrib");
+ addEndHandler("attrib",this,&ParamHandler::endAttrib);
+
+ addStartHandler("defval");
+ addEndHandler("defval",this,&ParamHandler::endDefVal);
+ }
+
+ ParamHandler::~ParamHandler()
+ {
+ }
+
+ void ParamHandler::startParam(const QXmlAttributes& /*attrib*/)
+ {
+ m_parent->setDelegate(this);
+ printf("param\n");
+ }
+
+ void ParamHandler::endParam()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void ParamHandler::endType()
+ {
+ m_type = m_curString.stripWhiteSpace();
+ printf("param type=`%s'\n",m_type.data());
+ }
+
+ void ParamHandler::endDeclName()
+ {
+ m_declName = m_curString.stripWhiteSpace();
+ printf("member declName=`%s'\n",m_declName.data());
+ }
+
+ void ParamHandler::endDefName()
+ {
+ m_defName = m_curString.stripWhiteSpace();
+ printf("member defName=`%s'\n",m_defName.data());
+ }
+
+ void ParamHandler::endAttrib()
+ {
+ m_attrib = m_curString.stripWhiteSpace();
+ printf("member attrib=`%s'\n",m_attrib.data());
+ }
+
+ void ParamHandler::endArray()
+ {
+ m_array = m_curString.stripWhiteSpace();
+ printf("member array=`%s'\n",m_array.data());
+ }
+
+ void ParamHandler::endDefVal()
+ {
+ m_defVal = m_curString.stripWhiteSpace();
+ printf("member defVal=`%s'\n",m_defVal.data());
+ }
+
+
+
Index: addon/xmlparse/paramhandler.h
===================================================================
RCS file: addon/xmlparse/paramhandler.h
diff -N addon/xmlparse/paramhandler.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/paramhandler.h 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,59 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #ifndef _PARAMHANDLER_H
+ #define _PARAMHANDLER_H
+
+ #include <qstring.h>
+ #include <qlist.h>
+ #include <qxml.h>
+
+ #include "basehandler.h"
+ #include "doxmlintf.h"
+
+ class ParamHandler : public IParam, public BaseHandler<ParamHandler>
+ {
+ public:
+ virtual void startParam(const QXmlAttributes& attrib);
+ virtual void endParam();
+ virtual void endType();
+ virtual void endDeclName();
+ virtual void endDefName();
+ virtual void endAttrib();
+ virtual void endArray();
+ virtual void endDefVal();
+
+ ParamHandler(IBaseHandler *parent);
+ virtual ~ParamHandler();
+
+ // IParam
+ virtual QString type() const { return m_type; }
+ virtual QString declarationName() const { return m_declName; }
+ virtual QString definitionName() const { return m_defName; }
+ virtual QString attrib() const { return m_attrib; }
+ virtual QString arraySpecifier() const { return m_array; }
+ virtual QString defaultValue() const { return m_defVal; }
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_type;
+ QString m_declName;
+ QString m_defName;
+ QString m_attrib;
+ QString m_array;
+ QString m_defVal;
+ };
+
+ #endif
Index: addon/xmlparse/sectionhandler.cpp
===================================================================
RCS file: addon/xmlparse/sectionhandler.cpp
diff -N addon/xmlparse/sectionhandler.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/sectionhandler.cpp 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,61 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #include "mainhandler.h"
+ #include "compoundhandler.h"
+ #include "sectionhandler.h"
+
+ SectionHandler::SectionHandler(IBaseHandler *parent) : m_parent(parent)
+ {
+ m_members.setAutoDelete(TRUE);
+ addEndHandler("sectiondef",this,&SectionHandler::endSection);
+ addStartHandler("memberdef",this,&SectionHandler::startMember);
+ }
+
+ SectionHandler::~SectionHandler()
+ {
+ }
+
+ void SectionHandler::startSection(const QXmlAttributes& attrib)
+ {
+ m_parent->setDelegate(this);
+ m_kind = attrib.value("kind");
+ printf("section kind=`%s'\n",m_kind.data());
+ }
+
+ void SectionHandler::endSection()
+ {
+ m_parent->setDelegate(0);
+ }
+
+ void SectionHandler::startMember(const QXmlAttributes& attrib)
+ {
+ MemberHandler *memHandler = new MemberHandler(this);
+ memHandler->startMember(attrib);
+ m_members.append(memHandler);
+ }
+
+ void SectionHandler::initialize(MainHandler *m)
+ {
+ QListIterator<IMember> mli(m_members);
+ MemberHandler *mh;
+ for (;(mh=(MemberHandler *)mli.current());++mli)
+ {
+ m->insertMemberById(mh->name(),mh);
+ m->insertMemberByName(mh->name(),mh);
+ }
+ }
+
+
Index: addon/xmlparse/sectionhandler.h
===================================================================
RCS file: addon/xmlparse/sectionhandler.h
diff -N addon/xmlparse/sectionhandler.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/sectionhandler.h 24 Jan 2002 01:49:44 -0000 1.1.1.6
***************
*** 0 ****
--- 1,51 ----
+ /******************************************************************************
+ *
+ * $Id$
+ *
+ *
+ * Copyright (C) 1997-2001 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ */
+
+ #ifndef _SECTIONHANDLER_H
+ #define _SECTIONHANDLER_H
+
+ #include <qstring.h>
+ #include <qlist.h>
+ #include <qxml.h>
+
+ #include "basehandler.h"
+ #include "memberhandler.h"
+ #include "doxmlintf.h"
+
+ class MainHandler;
+
+ class SectionHandler : public ISection, public BaseHandler<SectionHandler>
+ {
+ public:
+ virtual void startMember(const QXmlAttributes& attrib);
+ virtual void startSection(const QXmlAttributes& attrib);
+ virtual void endSection();
+
+ SectionHandler(IBaseHandler *parent);
+ virtual ~SectionHandler();
+
+ // ISection
+ virtual QString kind() const { return m_kind; }
+ virtual QListIterator<IMember> getMemberIterator() const { return m_members; }
+
+ void initialize(MainHandler *m);
+
+ private:
+ IBaseHandler *m_parent;
+ QString m_kind;
+ QList<IMember> m_members;
+ };
+
+ #endif
Index: addon/xmlparse/xmlparse.pro
===================================================================
RCS file: addon/xmlparse/xmlparse.pro
diff -N addon/xmlparse/xmlparse.pro
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/xmlparse.pro 16 Dec 2001 23:18:58 -0000 1.2
***************
*** 0 ****
--- 1,30 ----
+ #
+ # This file was generated from xmlparse.pro.in on Wed Nov 21 10:56:16 2001
+ #
+
+ TEMPLATE = app.t
+ CONFIG = console warn_on $extraopt
+ HEADERS = basehandler.h mainhandler.h \
+ compoundhandler.h sectionhandler.h \
+ memberhandler.h paramhandler.h \
+ dochandler.h
+ SOURCES = main.cpp mainhandler.cpp \
+ compoundhandler.cpp sectionhandler.cpp \
+ memberhandler.cpp paramhandler.cpp \
+ dochandler.cpp
+ DEPENDPATH = ../../src
+ unix:LIBS += -L../../lib -ldoxycfg -lqtools
+ win32:INCLUDEPATH += .
+ win32-mingw:LIBS += -L../../lib -ldoxycfg -lqtools
+ win32-msvc:LIBS += qtools.lib doxycfg.lib shell32.lib
+ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\..\lib
+ win32-borland:LIBS += qtools.lib doxycfg.lib shell32.lib
+ win32-borland:TMAKE_LFLAGS += -L..\..\lib
+ win32:TMAKE_CXXFLAGS += -DQT_NODLL
+ INCLUDEPATH += ../../qtools ../../src
+ DESTDIR =
+ TARGET = xmlparse
+ unix:TARGETDEPS = ../../lib/libdoxycfg.a
+ win32:TARGETDEPS = ../../lib/doxycfg.lib
+ OBJECTS_DIR = obj
+
Index: addon/xmlparse/xmlparse.pro.in
===================================================================
RCS file: addon/xmlparse/xmlparse.pro.in
diff -N addon/xmlparse/xmlparse.pro.in
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- addon/xmlparse/xmlparse.pro.in 10 Sep 2001 06:22:23 -0000 1.1.1.1
***************
*** 0 ****
--- 1,26 ----
+ TEMPLATE = app.t
+ CONFIG = console warn_on $extraopt
+ HEADERS = basehandler.h mainhandler.h \
+ compoundhandler.h sectionhandler.h \
+ memberhandler.h paramhandler.h \
+ dochandler.h
+ SOURCES = main.cpp mainhandler.cpp \
+ compoundhandler.cpp sectionhandler.cpp \
+ memberhandler.cpp paramhandler.cpp \
+ dochandler.cpp
+ DEPENDPATH = ../../src
+ unix:LIBS += -L../../lib -ldoxycfg -lqtools
+ win32:INCLUDEPATH += .
+ win32-mingw:LIBS += -L../../lib -ldoxycfg -lqtools
+ win32-msvc:LIBS += qtools.lib doxycfg.lib shell32.lib
+ win32-msvc:TMAKE_LFLAGS += /LIBPATH:..\..\lib
+ win32-borland:LIBS += qtools.lib doxycfg.lib shell32.lib
+ win32-borland:TMAKE_LFLAGS += -L..\..\lib
+ win32:TMAKE_CXXFLAGS += -DQT_NODLL
+ INCLUDEPATH += ../../qtools ../../src
+ DESTDIR =
+ TARGET = xmlparse
+ unix:TARGETDEPS = ../../lib/libdoxycfg.a
+ win32:TARGETDEPS = ../../lib/doxycfg.lib
+ OBJECTS_DIR = obj
+
Index: html/form-0.gif
===================================================================
RCS file: html/form-0.gif
diff -N html/form-0.gif
Binary files /dev/null and /tmp/cvs3eaGZR differ
Index: html/form-1.gif
===================================================================
RCS file: html/form-1.gif
diff -N html/form-1.gif
Binary files /dev/null and /tmp/cvs4eaGZR differ
Index: html/form-2.gif
===================================================================
RCS file: html/form-2.gif
diff -N html/form-2.gif
Binary files /dev/null and /tmp/cvs5eaGZR differ
Index: html/form-3.gif
===================================================================
RCS file: html/form-3.gif
diff -N html/form-3.gif
Binary files /dev/null and /tmp/cvs6eaGZR differ
Index: html/form-4.gif
===================================================================
RCS file: html/form-4.gif
diff -N html/form-4.gif
Binary files /dev/null and /tmp/cvs7eaGZR differ
Index: html/form-5.gif
===================================================================
RCS file: html/form-5.gif
diff -N html/form-5.gif
Binary files /dev/null and /tmp/cvs8eaGZR differ
Index: qtools/qtools.pro.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/qtools/qtools.pro.in,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -b -c -b -c -r1.1.1.1 -r1.2
*** qtools/qtools.pro.in 10 Sep 2001 06:22:24 -0000 1.1.1.1
--- qtools/qtools.pro.in 3 Feb 2002 23:18:01 -0000 1.2
***************
*** 72,77 ****
--- 72,79 ----
qfileinfo_win32.cpp
INCLUDEPATH = .
+ TMAKE_CFLAGS += -DRSA_EXTENSIONS
+ TMAKE_CXXFLAGS += -DRSA_EXTENSIONS
TMAKE_CXXFLAGS += -DQT_NO_CODECS -DQT_LITE_UNICODE
win32:TMAKE_CXXFLAGS += -DQT_NODLL
OBJECTS_DIR = ../objects
Index: src/Makefile.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/Makefile.in,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/Makefile.in 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/Makefile.in 7 Feb 2002 23:29:19 -0000 1.4
***************
*** 1,6 ****
#
! #
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
--- 1,6 ----
#
! # $Id$
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
Index: src/bufstr.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/bufstr.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/bufstr.h 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/bufstr.h 7 Feb 2002 23:29:19 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/ce_parse.cpp
===================================================================
RCS file: src/ce_parse.cpp
diff -N src/ce_parse.cpp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- src/ce_parse.cpp 1 Feb 2003 05:35:36 -0000
***************
*** 0 ****
--- 1,1218 ----
+
+ /* A Bison parser, made from constexp.y
+ by GNU Bison version 1.28 */
+
+ #define YYBISON 1 /* Identify Bison output. */
+
+ #define yyparse cppExpYYparse
+ #define yylex cppExpYYlex
+ #define yyerror cppExpYYerror
+ #define yylval cppExpYYlval
+ #define yychar cppExpYYchar
+ #define yydebug cppExpYYdebug
+ #define yynerrs cppExpYYnerrs
+ #define TOK_QUESTIONMARK 257
+ #define TOK_COLON 258
+ #define TOK_OR 259
+ #define TOK_AND 260
+ #define TOK_BITWISEOR 261
+ #define TOK_BITWISEXOR 262
+ #define TOK_AMPERSAND 263
+ #define TOK_NOTEQUAL 264
+ #define TOK_EQUAL 265
+ #define TOK_LESSTHAN 266
+ #define TOK_GREATERTHAN 267
+ #define TOK_LESSTHANOREQUALTO 268
+ #define TOK_GREATERTHANOREQUALTO 269
+ #define TOK_SHIFTLEFT 270
+ #define TOK_SHIFTRIGHT 271
+ #define TOK_PLUS 272
+ #define TOK_MINUS 273
+ #define TOK_STAR 274
+ #define TOK_DIVIDE 275
+ #define TOK_MOD 276
+ #define TOK_TILDE 277
+ #define TOK_NOT 278
+ #define TOK_LPAREN 279
+ #define TOK_RPAREN 280
+ #define TOK_OCTALINT 281
+ #define TOK_DECIMALINT 282
+ #define TOK_HEXADECIMALINT 283
+ #define TOK_CHARACTER 284
+ #define TOK_FLOAT 285
+
+
+
+ #include "cppvalue.h"
+ #include "constexp.h"
+ #include "message.h"
+
+ #if defined(_MSC_VER)
+ #define MSDOS
+ #endif
+
+ #define YYSTYPE CPPValue
+
+ #include <stdio.h>
+ #include <stdlib.h>
+
+ int cppExpYYerror(const char *s)
+ {
+ warn(g_constExpFileName,g_constExpLineNr,
+ "Problem during constant expression evaluation: %s",s);
+ return 0;
+ }
+
+ int cppExpYYlex();
+
+ #ifndef YYSTYPE
+ #define YYSTYPE int
+ #endif
+ #include <stdio.h>
+
+ #ifndef __cplusplus
+ #ifndef __STDC__
+ #define const
+ #endif
+ #endif
+
+
+
+ #define YYFINAL 73
+ #define YYFLAG -32768
+ #define YYNTBASE 32
+
+ #define YYTRANSLATE(x) ((unsigned)(x) <= 285 ? yytranslate[x] : 47)
+
+ static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31
+ };
+
+ #if YYDEBUG != 0
+ static const short yyprhs[] = { 0,
+ 0, 2, 4, 10, 12, 16, 18, 22, 24, 28,
+ 30, 34, 36, 40, 42, 46, 50, 52, 56, 60,
+ 64, 68, 70, 74, 78, 80, 84, 88, 90, 94,
+ 98, 102, 104, 107, 110, 113, 116, 118, 122, 124,
+ 126, 128, 130
+ };
+
+ static const short yyrhs[] = { 33,
+ 0, 34, 0, 34, 3, 34, 4, 34, 0, 35,
+ 0, 34, 5, 35, 0, 36, 0, 35, 6, 36,
+ 0, 37, 0, 36, 7, 37, 0, 38, 0, 37,
+ 8, 38, 0, 39, 0, 38, 9, 39, 0, 40,
+ 0, 39, 11, 40, 0, 39, 10, 40, 0, 41,
+ 0, 40, 12, 41, 0, 40, 13, 41, 0, 40,
+ 14, 41, 0, 40, 15, 41, 0, 42, 0, 41,
+ 16, 42, 0, 41, 17, 42, 0, 43, 0, 42,
+ 18, 43, 0, 42, 19, 43, 0, 44, 0, 43,
+ 20, 44, 0, 43, 21, 44, 0, 43, 22, 44,
+ 0, 45, 0, 18, 44, 0, 19, 44, 0, 23,
+ 44, 0, 24, 44, 0, 46, 0, 25, 33, 26,
+ 0, 27, 0, 28, 0, 29, 0, 30, 0, 31,
+ 0
+ };
+
+ #endif
+
+ #if YYDEBUG != 0
+ static const short yyrline[] = { 0,
+ 77, 81, 83, 92, 94, 100, 102, 108, 110, 117,
+ 119, 125, 127, 133, 135, 139, 145, 147, 151, 155,
+ 160, 167, 169, 173, 179, 181, 192, 205, 207, 218,
+ 231, 239, 241, 243, 250, 254, 260, 262, 266, 268,
+ 270, 272, 274
+ };
+ #endif
+
+
+ #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+ static const char * const yytname[] = { "$","error","$undefined.","TOK_QUESTIONMARK",
+ "TOK_COLON","TOK_OR","TOK_AND","TOK_BITWISEOR","TOK_BITWISEXOR","TOK_AMPERSAND",
+ "TOK_NOTEQUAL","TOK_EQUAL","TOK_LESSTHAN","TOK_GREATERTHAN","TOK_LESSTHANOREQUALTO",
+ "TOK_GREATERTHANOREQUALTO","TOK_SHIFTLEFT","TOK_SHIFTRIGHT","TOK_PLUS","TOK_MINUS",
+ "TOK_STAR","TOK_DIVIDE","TOK_MOD","TOK_TILDE","TOK_NOT","TOK_LPAREN","TOK_RPAREN",
+ "TOK_OCTALINT","TOK_DECIMALINT","TOK_HEXADECIMALINT","TOK_CHARACTER","TOK_FLOAT",
+ "start","constant_expression","logical_or_expression","logical_and_expression",
+ "inclusive_or_expression","exclusive_or_expression","and_expression","equality_expression",
+ "relational_expression","shift_expression","additive_expression","multiplicative_expression",
+ "unary_expression","primary_expression","constant", NULL
+ };
+ #endif
+
+ static const short yyr1[] = { 0,
+ 32, 33, 33, 34, 34, 35, 35, 36, 36, 37,
+ 37, 38, 38, 39, 39, 39, 40, 40, 40, 40,
+ 40, 41, 41, 41, 42, 42, 42, 43, 43, 43,
+ 43, 44, 44, 44, 44, 44, 45, 45, 46, 46,
+ 46, 46, 46
+ };
+
+ static const short yyr2[] = { 0,
+ 1, 1, 5, 1, 3, 1, 3, 1, 3, 1,
+ 3, 1, 3, 1, 3, 3, 1, 3, 3, 3,
+ 3, 1, 3, 3, 1, 3, 3, 1, 3, 3,
+ 3, 1, 2, 2, 2, 2, 1, 3, 1, 1,
+ 1, 1, 1
+ };
+
+ static const short yydefact[] = { 0,
+ 0, 0, 0, 0, 0, 39, 40, 41, 42, 43,
+ 1, 2, 4, 6, 8, 10, 12, 14, 17, 22,
+ 25, 28, 32, 37, 33, 34, 35, 36, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
+ 5, 7, 9, 11, 13, 16, 15, 18, 19, 20,
+ 21, 23, 24, 26, 27, 29, 30, 31, 0, 3,
+ 0, 0, 0
+ };
+
+ static const short yydefgoto[] = { 71,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24
+ };
+
+ static const short yypact[] = { -13,
+ -13, -13, -13, -13, -13,-32768,-32768,-32768,-32768,-32768,
+ -32768, 4, 2, 20, 27, 31, 21, 7, 17, 18,
+ 8,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 24, -13,
+ -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
+ -13, -13, -13, -13, -13, -13, -13, -13,-32768, 34,
+ 2, 20, 27, 31, 21, 7, 7, 17, 17, 17,
+ 17, 18, 18, 8, 8,-32768,-32768,-32768, -13, 39,
+ 13, 51,-32768
+ };
+
+ static const short yypgoto[] = {-32768,
+ 47, -26, 25, 23, 26, 28, 22, 5, -15, 6,
+ 9, -1,-32768,-32768
+ };
+
+
+ #define YYLAST 62
+
+
+ static const short yytable[] = { 25,
+ 26, 27, 28, 50, 1, 2, 30, 32, 31, 3,
+ 4, 5, 72, 6, 7, 8, 9, 10, 38, 39,
+ 40, 41, 58, 59, 60, 61, 33, 46, 47, 48,
+ 36, 37, 42, 43, 34, 44, 45, 69, 31, 35,
+ 56, 57, 70, 31, 66, 67, 68, 62, 63, 49,
+ 73, 29, 64, 65, 52, 51, 55, 0, 53, 0,
+ 0, 54
+ };
+
+ static const short yycheck[] = { 1,
+ 2, 3, 4, 30, 18, 19, 3, 6, 5, 23,
+ 24, 25, 0, 27, 28, 29, 30, 31, 12, 13,
+ 14, 15, 38, 39, 40, 41, 7, 20, 21, 22,
+ 10, 11, 16, 17, 8, 18, 19, 4, 5, 9,
+ 36, 37, 69, 5, 46, 47, 48, 42, 43, 26,
+ 0, 5, 44, 45, 32, 31, 35, -1, 33, -1,
+ -1, 34
+ };
+ /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+
+ /* This file comes from bison-1.28. */
+
+ /* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+ 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, 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., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+ /* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+ /* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+ #ifndef YYSTACK_USE_ALLOCA
+ #ifdef alloca
+ #define YYSTACK_USE_ALLOCA
+ #else /* alloca not defined */
+ #ifdef __GNUC__
+ #define YYSTACK_USE_ALLOCA
+ #define alloca __builtin_alloca
+ #else /* not GNU C. */
+ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+ #define YYSTACK_USE_ALLOCA
+ #include <alloca.h>
+ #else /* not sparc */
+ /* We think this test detects Watcom and Microsoft C. */
+ /* This used to test MSDOS, but that is a bad idea
+ since that symbol is in the user namespace. */
+ #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+ #if 0 /* No need for malloc.h, which pollutes the namespace;
+ instead, just don't use alloca. */
+ #include <malloc.h>
+ #endif
+ #else /* not MSDOS, or __TURBOC__ */
+ #if defined(_AIX)
+ /* I don't know what this was needed for, but it pollutes the namespace.
+ So I turned it off. rms, 2 May 1997. */
+ /* #include <malloc.h> */
+ #pragma alloca
+ #define YYSTACK_USE_ALLOCA
+ #else /* not MSDOS, or __TURBOC__, or _AIX */
+ #if 0
+ #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+ and on HPUX 10. Eventually we can turn this on. */
+ #define YYSTACK_USE_ALLOCA
+ #define alloca __builtin_alloca
+ #endif /* __hpux */
+ #endif
+ #endif /* not _AIX */
+ #endif /* not MSDOS, or __TURBOC__ */
+ #endif /* not sparc */
+ #endif /* not GNU C */
+ #endif /* alloca not defined */
+ #endif /* YYSTACK_USE_ALLOCA not defined */
+
+ #ifdef YYSTACK_USE_ALLOCA
+ #define YYSTACK_ALLOC alloca
+ #else
+ #define YYSTACK_ALLOC malloc
+ #endif
+
+ /* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+ #define yyerrok (yyerrstatus = 0)
+ #define yyclearin (yychar = YYEMPTY)
+ #define YYEMPTY -2
+ #define YYEOF 0
+ #define YYACCEPT goto yyacceptlab
+ #define YYABORT goto yyabortlab
+ #define YYERROR goto yyerrlab1
+ /* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+ #define YYFAIL goto yyerrlab
+ #define YYRECOVERING() (!!yyerrstatus)
+ #define YYBACKUP(token, value) \
+ do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+ while (0)
+
+ #define YYTERROR 1
+ #define YYERRCODE 256
+
+ #ifndef YYPURE
+ #define YYLEX yylex()
+ #endif
+
+ #ifdef YYPURE
+ #ifdef YYLSP_NEEDED
+ #ifdef YYLEX_PARAM
+ #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+ #else
+ #define YYLEX yylex(&yylval, &yylloc)
+ #endif
+ #else /* not YYLSP_NEEDED */
+ #ifdef YYLEX_PARAM
+ #define YYLEX yylex(&yylval, YYLEX_PARAM)
+ #else
+ #define YYLEX yylex(&yylval)
+ #endif
+ #endif /* not YYLSP_NEEDED */
+ #endif
+
+ /* If nonreentrant, generate the variables here */
+
+ #ifndef YYPURE
+
+ int yychar; /* the lookahead symbol */
+ YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+
+ #ifdef YYLSP_NEEDED
+ YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+ #endif
+
+ int yynerrs; /* number of parse errors so far */
+ #endif /* not YYPURE */
+
+ #if YYDEBUG != 0
+ int yydebug; /* nonzero means print parse trace */
+ /* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+ #endif
+
+ /* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+ #ifndef YYINITDEPTH
+ #define YYINITDEPTH 200
+ #endif
+
+ /* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+ #if YYMAXDEPTH == 0
+ #undef YYMAXDEPTH
+ #endif
+
+ #ifndef YYMAXDEPTH
+ #define YYMAXDEPTH 10000
+ #endif
+
+ /* Define __yy_memcpy. Note that the size argument
+ should be passed with type unsigned int, because that is what the non-GCC
+ definitions require. With GCC, __builtin_memcpy takes an arg
+ of type size_t, but it can handle unsigned int. */
+
+ #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+ #else /* not GNU C or C++ */
+ #ifndef __cplusplus
+
+ /* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+ static void
+ __yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
+ {
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+ }
+
+ #else /* __cplusplus */
+
+ /* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+ static void
+ __yy_memcpy (char *to, char *from, unsigned int count)
+ {
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+ }
+
+ #endif
+ #endif
+
+
+
+ /* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
+
+ #ifdef YYPARSE_PARAM
+ #ifdef __cplusplus
+ #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+ #define YYPARSE_PARAM_DECL
+ #else /* not __cplusplus */
+ #define YYPARSE_PARAM_ARG YYPARSE_PARAM
+ #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+ #endif /* not __cplusplus */
+ #else /* not YYPARSE_PARAM */
+ #define YYPARSE_PARAM_ARG
+ #define YYPARSE_PARAM_DECL
+ #endif /* not YYPARSE_PARAM */
+
+ /* Prevent warning if -Wstrict-prototypes. */
+ #ifdef __GNUC__
+ #ifdef YYPARSE_PARAM
+ int yyparse (void *);
+ #else
+ int yyparse (void);
+ #endif
+ #endif
+
+ int
+ yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+ {
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+ #ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+ #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+ #else
+ #define YYPOPSTACK (yyvsp--, yyssp--)
+ #endif
+
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
+
+ #ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+ #ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+ #endif
+ #endif
+
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+ int yylen;
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+ #endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+ #ifdef YYLSP_NEEDED
+ yylsp = yyls;
+ #endif
+
+ /* Push a new state, which is found in yystate . */
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+ yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+ #ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+ #endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+ #ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+ #ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+ #else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+ #endif
+
+ yyss = yyss1; yyvs = yyvs1;
+ #ifdef YYLSP_NEEDED
+ yyls = yyls1;
+ #endif
+ #else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+ #ifdef YYLSP_NEEDED
+ free (yyls);
+ #endif
+ }
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+ #ifndef YYSTACK_USE_ALLOCA
+ yyfree_stacks = 1;
+ #endif
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1,
+ size * (unsigned int) sizeof (*yyssp));
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+ size * (unsigned int) sizeof (*yyvsp));
+ #ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1,
+ size * (unsigned int) sizeof (*yylsp));
+ #endif
+ #endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+ #ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+ #endif
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+ #endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+ #endif
+
+ goto yybackup;
+ yybackup:
+
+ /* Do appropriate processing given the current state. */
+ /* Read a lookahead token if we need one and don't already have one. */
+ /* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+ #endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+ #endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+ #ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+ #endif
+ fprintf (stderr, ")\n");
+ }
+ #endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+ #endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+ #ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+ #endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+ /* Do the default action for the current state. */
+ yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+ /* Do a reduction. yyn is the number of a rule to reduce with. */
+ yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+ #endif
+
+
+ switch (yyn) {
+
+ case 1:
+ { g_resultValue = yyvsp[0]; return 0; ;
+ break;}
+ case 2:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 3:
+ {
+ bool c = (yyvsp[-4].isInt() ? ((long)yyvsp[-4] != 0) : ((double)yyvsp[-4] != 0.0));
+ yyval = c ? yyvsp[-2] : yyvsp[0];
+ ;
+ break;}
+ case 4:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 5:
+ {
+ yyval = CPPValue( (long)((long)yyvsp[-2] || (long)yyvsp[0]) );
+ ;
+ break;}
+ case 6:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 7:
+ {
+ yyval = CPPValue( (long)((long)yyvsp[-2] && (long)yyvsp[0]) );
+ ;
+ break;}
+ case 8:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 9:
+ {
+ yyval = CPPValue( (long)yyvsp[-2] | (long)yyvsp[0] );
+ ;
+ break;}
+ case 10:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 11:
+ {
+ yyval = CPPValue( (long)yyvsp[-2] ^ (long)yyvsp[0] );
+ ;
+ break;}
+ case 12:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 13:
+ {
+ yyval = CPPValue( (long)yyvsp[-2] & (long)yyvsp[0] );
+ ;
+ break;}
+ case 14:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 15:
+ {
+ yyval = CPPValue( (long)((double)yyvsp[-2] == (double)yyvsp[0]) );
+ ;
+ break;}
+ case 16:
+ {
+ yyval = CPPValue( (long)((double)yyvsp[-2] != (double)yyvsp[0]) );
+ ;
+ break;}
+ case 17:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 18:
+ {
+ yyval = CPPValue( (long)((double)yyvsp[-2] < (double)yyvsp[0]) );
+ ;
+ break;}
+ case 19:
+ {
+ yyval = CPPValue( (long)((double)yyvsp[-2] > (double)yyvsp[0]) );
+ ;
+ break;}
+ case 20:
+ {
+ yyval = CPPValue( (long)((double)yyvsp[-2] <= (double)yyvsp[0]) );
+ ;
+ break;}
+ case 21:
+ {
+ yyval = CPPValue( (long)((double)yyvsp[-2] >= (double)yyvsp[0]) );
+ ;
+ break;}
+ case 22:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 23:
+ {
+ yyval = CPPValue( (long)yyvsp[-2] << (long)yyvsp[0] );
+ ;
+ break;}
+ case 24:
+ {
+ yyval = CPPValue( (long)yyvsp[-2] >> (long)yyvsp[0] );
+ ;
+ break;}
+ case 25:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 26:
+ {
+ if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
+ {
+ yyval = CPPValue( (double)yyvsp[-2] + (double)yyvsp[0] );
+ }
+ else
+ {
+ yyval = CPPValue( (long)yyvsp[-2] + (long)yyvsp[0] );
+ }
+ ;
+ break;}
+ case 27:
+ {
+ if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
+ {
+ yyval = CPPValue( (double)yyvsp[-2] - (double)yyvsp[0] );
+ }
+ else
+ {
+ yyval = CPPValue( (long)yyvsp[-2] - (long)yyvsp[0] );
+ }
+ ;
+ break;}
+ case 28:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 29:
+ {
+ if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
+ {
+ yyval = CPPValue( (double)yyvsp[-2] * (double)yyvsp[0] );
+ }
+ else
+ {
+ yyval = CPPValue( (long)yyvsp[-2] * (long)yyvsp[0] );
+ }
+ ;
+ break;}
+ case 30:
+ {
+ if (!yyvsp[-2].isInt() || !yyvsp[0].isInt())
+ {
+ yyval = CPPValue( (double)yyvsp[-2] / (double)yyvsp[0] );
+ }
+ else
+ {
+ long value = yyvsp[0];
+ if (value==0) value=1;
+ yyval = CPPValue( (long)yyvsp[-2] / value );
+ }
+ ;
+ break;}
+ case 31:
+ {
+ long value = yyvsp[0];
+ if (value==0) value=1;
+ yyval = CPPValue( (long)yyvsp[-2] % value );
+ ;
+ break;}
+ case 32:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 33:
+ { yyval = yyvsp[-1]; ;
+ break;}
+ case 34:
+ {
+ if (yyvsp[0].isInt())
+ yyval = CPPValue(-(long)yyvsp[0]);
+ else
+ yyval = CPPValue(-(double)yyvsp[0]);
+ ;
+ break;}
+ case 35:
+ {
+ yyval = CPPValue(~(long)yyvsp[0]);
+ ;
+ break;}
+ case 36:
+ {
+ yyval = CPPValue((long)!(long)yyvsp[0]);
+ ;
+ break;}
+ case 37:
+ { yyval = yyvsp[0]; ;
+ break;}
+ case 38:
+ { yyval = yyvsp[-1]; ;
+ break;}
+ case 39:
+ { yyval = parseOctal(); ;
+ break;}
+ case 40:
+ { yyval = parseDecimal(); ;
+ break;}
+ case 41:
+ { yyval = parseHexadecimal(); ;
+ break;}
+ case 42:
+ { yyval = parseCharacter(); ;
+ break;}
+ case 43:
+ { yyval = parseFloat(); ;
+ break;}
+ }
+ /* the action file gets copied in in place of this dollarsign */
+
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+ #ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+ #endif
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+ #endif
+
+ *++yyvsp = yyval;
+
+ #ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+ #endif
+
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+ yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+ #ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
+ {
+ strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+ #endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+ yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+ #endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+ yyerrdefault: /* current state does not do anything special for the error token. */
+
+ #if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+ #endif
+
+ yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+ #ifdef YYLSP_NEEDED
+ yylsp--;
+ #endif
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+ #endif
+
+ yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ #if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+ #endif
+
+ *++yyvsp = yylval;
+ #ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+ #endif
+
+ yystate = yyn;
+ goto yynewstate;
+
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+ #ifdef YYLSP_NEEDED
+ free (yyls);
+ #endif
+ }
+ return 0;
+
+ yyabortlab:
+ /* YYABORT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+ #ifdef YYLSP_NEEDED
+ free (yyls);
+ #endif
+ }
+ return 1;
+ }
+
Index: src/ce_parse.h
===================================================================
RCS file: src/ce_parse.h
diff -N src/ce_parse.h
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- src/ce_parse.h 1 Feb 2003 05:35:36 -0000
***************
*** 0 ****
--- 1,35 ----
+ #ifndef YYSTYPE
+ #define YYSTYPE int
+ #endif
+ #define TOK_QUESTIONMARK 257
+ #define TOK_COLON 258
+ #define TOK_OR 259
+ #define TOK_AND 260
+ #define TOK_BITWISEOR 261
+ #define TOK_BITWISEXOR 262
+ #define TOK_AMPERSAND 263
+ #define TOK_NOTEQUAL 264
+ #define TOK_EQUAL 265
+ #define TOK_LESSTHAN 266
+ #define TOK_GREATERTHAN 267
+ #define TOK_LESSTHANOREQUALTO 268
+ #define TOK_GREATERTHANOREQUALTO 269
+ #define TOK_SHIFTLEFT 270
+ #define TOK_SHIFTRIGHT 271
+ #define TOK_PLUS 272
+ #define TOK_MINUS 273
+ #define TOK_STAR 274
+ #define TOK_DIVIDE 275
+ #define TOK_MOD 276
+ #define TOK_TILDE 277
+ #define TOK_NOT 278
+ #define TOK_LPAREN 279
+ #define TOK_RPAREN 280
+ #define TOK_OCTALINT 281
+ #define TOK_DECIMALINT 282
+ #define TOK_HEXADECIMALINT 283
+ #define TOK_CHARACTER 284
+ #define TOK_FLOAT 285
+
+
+ extern YYSTYPE cppExpYYlval;
Index: src/classdef.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/classdef.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.15
diff -b -c -b -c -r1.1.1.8 -r1.15
*** src/classdef.cpp 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/classdef.cpp 13 Mar 2002 01:09:44 -0000 1.15
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 43,48 ****
--- 43,109 ----
return result;
}
+ #ifdef RSA_EXTENSIONS
+ bool ClassDef::isHidden() const
+ {
+ return isEntryHidden(name(), "STRUCT_INCLUDE_PATTERNS",
+ "STRUCT_EXCLUDE_PATTERNS", FALSE);
+ }
+
+ MemberDef *ClassDef::findTypedef()
+ {
+ // return cached result of previous search
+ if (m_hasTypedef == 1)
+ return m_typedef;
+ else if (m_hasTypedef == 0)
+ return 0;
+
+ /* Haven't searched before, so look through all of the files
+ We look through all of the files because we can't assume
+ that the typedef will be found in the include-file chain
+ starting from the file that defines this compound. The approach
+ implemented here has a chance of finding the 'wrong' typedef
+ if there is more than one defined directly in terms of
+ the compound name.
+ */
+ if (Doxygen::inputNameList.count()>0)
+ {
+ FileNameListIterator fnli(Doxygen::inputNameList);
+ FileName *fn;
+ for (fnli.toFirst(); (fn=fnli.current()) != 0; ++fnli)
+ {
+ FileNameIterator fni(*fn);
+ FileDef *fd;
+ for (fni.toFirst(); (fd=fni.current()) != 0; ++fni)
+ {
+ /* only look in documented, unhidden files */
+ if (!fd->isLinkableInProject())
+ continue;
+
+ MemberListIterator mli(fd->decTypedefMembers);
+ MemberDef *md;
+ for (mli.toFirst(); md = mli.current(); ++mli)
+ {
+ if (name() == md->typeString())
+ {
+ m_hasTypedef = 1;
+ m_typedef = md;
+ return md;
+ }
+ }
+ }
+ }
+ }
+
+ // didn't find anything, so remember that and return 0.
+ m_hasTypedef = 0;
+ m_typedef = 0;
+
+ return 0;
+ }
+
+ #endif // RSA_EXTENSIONS
+
// constructs a new class definition
ClassDef::ClassDef(
const char *defFileName,int defLine,
***************
*** 105,110 ****
--- 166,175 ----
{
m_isLocal=FALSE;
}
+ #ifdef RSA_EXTENSIONS
+ m_hasTypedef = -1;
+ m_typedef = 0;
+ #endif //RSA_EXTENSIONS
}
// destroy the class definition
***************
*** 692,706 ****
--- 757,806 ----
QCString pageTitle=name().copy();
QCString pageType;
ArgumentList *outerTempArgList = outerTemplateArguments();
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ QCString typedefName;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ MemberDef *td = findTypedef();
+ if (td != 0)
+ {
+ typedefName = td->name();
+ hasTypedef = TRUE;
+ }
+ }
+ if (!hasTypedef)
+ {
+ #endif //RSA_EXTENSIONS
QCString cType=compoundTypeString();
toupper(cType.at(0));
pageType+=" ";
pageType+=cType;
+ #ifdef RSA_EXTENSIONS
+ }
+ else
+ {
+ pageTitle = typedefName.copy();
+ }
+ #endif //RSA_EXTENSIONS
pageTitle+=pageType+" Reference";
if (outerTempArgList) pageTitle.prepend(" Template");
startFile(ol,getOutputFileBase(),name(),pageTitle);
startTitle(ol,getOutputFileBase());
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef)
+ {
+ //needs to be fixed to be translatable
+ parseText(ol,typedefName + " Reference");
+ }
+ else
+ {
+ #endif //RSA_EXTENSIONS
parseText(ol,theTranslator->trCompoundReference(name(),m_compType,outerTempArgList!=0));
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
endTitle(ol,getOutputFileBase(),name());
ol.startTextBlock();
***************
*** 715,720 ****
--- 815,824 ----
parseDoc(briefOutput,m_defFileName,m_defLine,name(),0,briefDescription());
ol+=briefOutput;
ol.writeString(" \n");
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
+ {
+ #endif //RSA_EXTENSIONS
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
ol.startTextLink(0,"_details");
***************
*** 728,737 ****
--- 832,880 ----
}
ol.endTextLink();
ol.popGeneratorState();
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
ol.disable(OutputGenerator::Man);
ol.newParagraph();
ol.enable(OutputGenerator::Man);
}
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == TRUE)
+ {
+ if (!documentation().isEmpty() || exampleFlag)
+ {
+ ol.startTextBlock();
+ }
+
+ writeTemplateSpec(ol,this,pageType);
+
+ if (!documentation().isEmpty())
+ {
+ parseDoc(ol,m_defFileName,m_defLine,name(),0,documentation()+"\n");
+ }
+ // write examples
+ if (exampleFlag)
+ {
+ ol.startDescList(BaseOutputDocInterface::Examples);
+ parseText(ol,theTranslator->trExamples()+": ");
+ ol.endDescTitle();
+ ol.writeDescItem();
+ ol.newParagraph();
+ writeExample(ol,m_exampleSDict);
+ //ol.endDescItem();
+ ol.endDescList();
+ }
+
+ if (!documentation().isEmpty() || exampleFlag)
+ {
+ ol.newParagraph();
+ writeSourceDef(ol,name());
+ ol.newParagraph();
+ ol.endTextBlock();
+ }
+ }
+ #endif //RSA_EXTENSIONS
ol.writeSynopsis();
if (m_incInfo && Config_getBool("SHOW_INCLUDE_FILES"))
***************
*** 989,994 ****
--- 1132,1145 ----
ol.endTextBlock();
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") &&
+ Config_getBool("INLINE_CLASS_DECL"))
+ {
+ writeInlineCode(ol, 0/* should be scope name */,TRUE);
+ }
+ #endif //RSA_EXTENSIONS
+
// write member groups
ol.startMemberSections();
***************
*** 1060,1065 ****
--- 1211,1220 ----
);
ol.endMemberSections();
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
+ {
+ #endif //RSA_EXTENSIONS
// write detailed description
if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) ||
!documentation().isEmpty() ||
***************
*** 1087,1093 ****
--- 1242,1253 ----
if (!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF") &&
!documentation().isEmpty())
{
+ #ifdef RSA_EXTENSIONS
+ // (Paragraph removed--space needed)
+ ol.writeString(" ");
+ #else /* !RSA_EXTENSIONS */
ol.newParagraph();
+ #endif /* RSA_EXTENSIONS */
}
// write documentation
if (!documentation().isEmpty())
***************
*** 1118,1124 ****
{
writeTemplateSpec(ol,this,pageType);
}
!
typedefMembers.writeDocumentation(ol,name(),this,
--- 1278,1286 ----
{
writeTemplateSpec(ol,this,pageType);
}
! #ifdef RSA_EXTENSIONS
! }
! #endif //RSA_EXTENSIONS
typedefMembers.writeDocumentation(ol,name(),this,
***************
*** 1586,1592 ****
--- 1748,1758 ----
(!m_isLocal || Config_getBool("EXTRACT_LOCAL_CLASSES")) && /* local */
hasDocumentation() && /* documented */
!isReference() && /* not an external reference */
+ #ifdef RSA_EXTENSIONS
+ // is not explicitly hidden
+ (!isHidden()) &&
(!m_isStatic || Config_getBool("EXTRACT_STATIC"));
+ #endif
}
}
***************
*** 1620,1625 ****
--- 1786,1795 ----
(m_templateMaster && m_templateMaster->hasDocumentation()) ||
isReference()
) &&
+ #ifdef RSA_EXTENSIONS
+ // is not explicitly hidden
+ (!isHidden()) &&
+ #endif
// is not part of an unnamed namespace or shown anyway
(!m_isStatic || Config_getBool("EXTRACT_STATIC"));
}
Index: src/classdef.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/classdef.h,v
retrieving revision 1.1.1.8
retrieving revision 1.10
diff -b -c -b -c -r1.1.1.8 -r1.10
*** src/classdef.h 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/classdef.h 13 Mar 2002 01:09:44 -0000 1.10
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 414,419 ****
--- 414,438 ----
/*! TRUE if the class is defined in a source file rather than a header file. */
bool m_isLocal;
+
+ #ifdef RSA_EXTENSIONS
+ /*! TRUE if the class documentation is explicitly hidden */
+ bool isHidden() const;
+
+ /*! 1 if a corresponding typedef has been found. 0 if a search failed to
+ find a typedef and -1 if no search has been made.
+ */
+ int m_hasTypedef;
+
+ /*! A typedef that corresponds to this class. */
+ MemberDef *m_typedef;
+
+ public:
+ /*! Returns a pointer to the typedef definition that aliases this class, or
+ * 0 if there is no equivalent typedef.
+ */
+ MemberDef *findTypedef();
+ #endif
};
/*! \brief Class that contains information about a usage relation.
Index: src/classlist.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/classlist.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/classlist.cpp 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/classlist.cpp 25 Feb 2002 22:59:37 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 64,72 ****
--- 64,88 ----
{
ClassSDict::Iterator sdi(*this);
ClassDef *cd=0;
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef;
+ MemberDef *td;
+ #endif //RSA_EXTENSIONS
bool found=FALSE;
for (sdi.toFirst();(cd=sdi.current());++sdi)
{
+ #ifdef RSA_EXTENSIONS
+ hasTypedef = FALSE;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ #endif //RSA_EXTENSIONS
if (cd->name().find('@')==-1 &&
(filter==0 || *filter==cd->compoundType())
)
***************
*** 95,116 ****
--- 111,165 ----
<< "\">" << convertToXML(cd->name()) << "</class>" << endl;
}
ol.startMemberItem(FALSE);
+ #ifdef RSA_EXTENSIONS
+ if (!hasTypedef)
+ {
+ #endif //RSA_EXTENSIONS
QCString tmp = cd->compoundTypeString();
ol.writeString(tmp);
ol.writeString(" ");
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
ol.insertMemberAlign();
if (isLink)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef)
+ {
+ ol.writeObjectLink(cd->getReference(),
+ cd->getOutputFileBase(),
+ 0,
+ td->name()
+ );
+ }
+ else
+ {
+ #endif //RSA_EXTENSIONS
ol.writeObjectLink(cd->getReference(),
cd->getOutputFileBase(),
0,
cd->name()
);
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
else
{
ol.startBold();
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef)
+ {
+ ol.docify(td->name());
+ }
+ else
+ {
+ #endif //RSA_EXTENSIONS
ol.docify(cd->name());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
ol.endBold();
}
ol.endMemberItem(FALSE);
Index: src/classlist.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/classlist.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/classlist.h 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/classlist.h 7 Feb 2002 23:29:19 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/code.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/code.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/code.h 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/code.h 13 Mar 2002 01:09:44 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 25,33 ****
--- 25,40 ----
class FileDef;
class MemberDef;
+ #ifdef RSA_EXTENSIONS
+ extern void parseCode(OutputDocInterface &,const char *,const QCString &,
+ bool ,const char *,FileDef *fd=0,
+ int startLine=-1,int endLine=-1,bool inlineFragment=FALSE,
+ bool doLineNr=TRUE);
+ #else //!RSA_EXTENSIONS
extern void parseCode(OutputDocInterface &,const char *,const QCString &,
bool ,const char *,FileDef *fd=0,
int startLine=-1,int endLine=-1,bool inlineFragment=FALSE);
+ #endif
extern void initParseCodeContext();
extern void setParameterList(MemberDef *md);
#endif
Index: src/code.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/code.l,v
retrieving revision 1.1.1.7
retrieving revision 1.3
diff -b -c -b -c -r1.1.1.7 -r1.3
*** src/code.l 7 Feb 2002 23:10:13 -0000 1.1.1.7
--- src/code.l 13 Mar 2002 01:09:44 -0000 1.3
***************
*** 97,102 ****
--- 97,106 ----
static int g_memCallContext;
static int g_lastCContext;
+ #ifdef RSA_EXTENSIONS
+ static int g_doLineNr = TRUE;
+ #endif //RSA_EXTENSIONS
+
//-------------------------------------------------------------------
/*! Represents a stack of variable to class mappings as found in the
***************
*** 328,334 ****
--- 332,342 ----
static void startCodeLine()
{
//if (g_currentFontClass) { g_code->endFontClass(); }
+ #ifdef RSA_EXTENSIONS
+ if (g_sourceFileDef && g_doLineNr)
+ #else //!RSA_EXTENSIONS
if (g_sourceFileDef)
+ #endif //RSA_EXTENSIONS
{
//QCString lineNumber,lineAnchor;
//lineNumber.sprintf("%05d",g_yyLineNr);
***************
*** 639,646 ****
--- 647,666 ----
MemberDef *md = setCallContextForVar(clName);
if (md)
{
+ #ifdef RSA_EXTENSIONS
+ /* This looks like a doxygen bug. In any case, we want to link to the
+ output file that holds the resulting doco, not the file that
+ contains the original doxygen comment.
+ */
+ Definition *d = md;
+ if (md->getGroupDef() != 0)
+ {
+ d = md->getGroupDef();
+ }
+ #else //!RSA_EXTENSIONS
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
md->getBodyDef() : md->getOuterScope();
+ #endif //RSA_EXTENSIONS
if (d && d->isLinkable() && md->isLinkable())
{
writeMultiLineCodeLink(ol,d->getReference(),d->getOutputFileBase(),md->getBodyAnchor(),clName);
***************
*** 705,713 ****
}
//Definition *d=0;
//if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
!
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
md->getBodyDef() : md->getOuterScope();
if (d && d->isLinkable())
{
g_theCallContext.setClass(stripClassName(md->typeString()));
--- 725,744 ----
}
//Definition *d=0;
//if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
! #ifdef RSA_EXTENSIONS
! /* This looks like a doxygen bug. In any case, we want to link to the
! output file that holds the resulting doco, not the file that
! contains the original doxygen comment.
! */
! Definition *d = md;
! if (md->getGroupDef() != 0)
! {
! d = md->getGroupDef();
! }
! #else //!RSA_EXTENSIONS
Definition *d = md->getOuterScope()==Doxygen::globalScope ?
md->getBodyDef() : md->getOuterScope();
+ #endif //RSA_EXTENSIONS
if (d && d->isLinkable())
{
g_theCallContext.setClass(stripClassName(md->typeString()));
***************
*** 754,761 ****
--- 785,804 ----
g_theCallContext.setClass(stripClassName(xmd->typeString()));
+ #ifdef RSA_EXTENSIONS
+ /* This looks like a doxygen bug. In any case, we want to link to the
+ output file that holds the resulting doco, not the file that
+ contains the original doxygen comment.
+ */
+ Definition *xd = xmd;
+ if (xmd->getGroupDef() != 0)
+ {
+ xd = xmd->getGroupDef();
+ }
+ #else //!RSA_EXTENSIONS
Definition *xd = xmd->getOuterScope()==Doxygen::globalScope ?
xmd->getBodyDef() : xmd->getOuterScope();
+ #endif //RSA_EXTENSIONS
if (xd)
{
***************
*** 1924,1934 ****
--- 1967,1986 ----
g_anchorCount = 0;
}
+ #ifdef RSA_EXTENSIONS
+ void parseCode(OutputDocInterface &od,const char *className,const QCString &s,
+ bool exBlock, const char *exName,FileDef *fd,
+ int startLine,int endLine,bool inlineFragment,bool doLineNr = TRUE)
+ #else //!RSA_EXTENSIONS
void parseCode(OutputDocInterface &od,const char *className,const QCString &s,
bool exBlock, const char *exName,FileDef *fd,
int startLine,int endLine,bool inlineFragment)
+ #endif //RSA_EXTENSIONS
{
if (s.isEmpty()) return;
+ #ifdef RSA_EXTENSIONS
+ g_doLineNr = doLineNr;
+ #endif //RSA_EXTENSIONS
g_code = od.clone();
g_inputString = s;
g_inputPosition = 0;
Index: src/config.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/config.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -b -c -b -c -r1.1.1.1 -r1.2
*** src/config.h 10 Sep 2001 06:22:24 -0000 1.1.1.1
--- src/config.h 4 Feb 2002 02:30:40 -0000 1.2
***************
*** 32,38 ****
--- 32,42 ----
/*! Maximum length of an option in the config file. Used for
* alignment purposes.
*/
+ #ifdef RSA_EXTENSIONS
+ MAX_OPTION_LENGTH = 24
+ #else //RSA_EXTENSIONS
MAX_OPTION_LENGTH = 23
+ #endif //RSA_EXTENSIONS
};
ConfigOption(OptionType t) : m_kind(t)
{
Index: src/config.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/config.l,v
retrieving revision 1.1.1.8
retrieving revision 1.17
diff -b -c -b -c -r1.1.1.8 -r1.17
*** src/config.l 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/config.l 23 Mar 2002 00:53:22 -0000 1.17
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 1054,1059 ****
--- 1054,1115 ----
examplePatternList.append("*");
}
+ #ifdef RSA_EXTENSIONS
+ // add default pattern if needed
+
+ QStrList &tocIncList = Config_getList("TOC_INCLUDE_PATTERNS");
+ if (tocIncList.isEmpty())
+ {
+ tocIncList.append("*");
+ }
+
+ QStrList &tocExclPattList = Config_getList("TOC_EXCLUDE_PATTERNS");
+ if (tocExclPattList.isEmpty())
+ {
+ tocExclPattList.append("*.doc");
+ tocExclPattList.append("*.txt");
+ tocExclPattList.append("*.dox");
+ }
+
+ QStrList &fnIncList = Config_getList("FUNCTION_INCLUDE_PATTERNS");
+ if (fnIncList.isEmpty())
+ {
+ fnIncList.append("*");
+ }
+
+ QStrList &defIncList = Config_getList("DEFINE_INCLUDE_PATTERNS");
+ if (defIncList.isEmpty())
+ {
+ defIncList.append("*");
+ }
+
+ QStrList &typeIncList = Config_getList("TYPEDEF_INCLUDE_PATTERNS");
+ if (typeIncList.isEmpty())
+ {
+ typeIncList.append("*");
+ }
+
+ QStrList &stIncList = Config_getList("STRUCT_INCLUDE_PATTERNS");
+ if (stIncList.isEmpty())
+ {
+ stIncList.append("*");
+ }
+
+ QStrList &grpIncList = Config_getList("GROUP_INCLUDE_PATTERNS");
+ if (grpIncList.isEmpty())
+ {
+ grpIncList.append("*");
+ }
+
+ QStrList &entIncList = Config_getList("ENTRY_INCLUDE_PATTERNS");
+ if (entIncList.isEmpty())
+ {
+ entIncList.append("*");
+ }
+
+
+ #endif /* RSA_EXTENSIONS */
+
// add default pattern if needed
//QStrList &imagePatternList = Config_getList("IMAGE_PATTERNS");
//if (imagePatternList.isEmpty())
***************
*** 1196,1201 ****
--- 1252,1390 ----
addInfo("General","General configuration options");
//-----------------------------------------------------------------------------------------------
+ #ifdef RSA_EXTENSIONS
+ cs = addString ("PRODUCT_LOGO", "The logo for the product. This is an image file name.");
+ cs = addString ("PRODUCT_COPYRIGHT", "The copyright details for the product.");
+ cs = addString ("PRODUCT_NAME", "The name of the product.");
+ cs = addString ("PRODUCT_TAG", "The tag/phrase for the product.");
+ cs = addString ("PRODUCT_PARTNUMBER", "The part number of the product.");
+ cs = addString ("PRODUCT_DOCVERSION", "The doc version of the product.");
+ cl = addList(
+ "TOC_INCLUDE_PATTERNS",
+ "The TOC_INCLUDE_PATTERNS tag can be used to limit documented files \n"
+ "to those whose names match the specified list of patterns. If left blank, \n"
+ "all documented input files will be included."
+ );
+ cl = addList(
+ "TOC_EXCLUDE_PATTERNS",
+ "The TOC_EXCLUDE_PATTERNS tag can be used to omit documented files whose \n"
+ "names match the specified list of patterns. If left blank, input files \n"
+ "whose names match *.doc, *.txt, or *.dox will be excluded. \n"
+ );
+ cl = addList(
+ "FUNCTION_INCLUDE_PATTERNS",
+ "The FUNCTION_INCLUDE_PATTERNS tag can be used to limit documented functions \n"
+ "to those whose names match the specified list of patterns. If left blank, all \n"
+ "documented functions will be included. \n"
+ );
+ cl = addList(
+ "FUNCTION_EXCLUDE_PATTERNS",
+ "The FUNCTION_EXCLUDE_PATTERNS tag can be used omit documented functions whose \n"
+ "names match the specified list of patterns. If left blank, all documented \n"
+ "functions matching the FUNCTION_INCLUDE_PATTERNS will be included. \n"
+ );
+ cl = addList(
+ "DEFINE_INCLUDE_PATTERNS",
+ "The DEFINE_INCLUDE_PATTERNS tag can be used to limit documented defines to \n"
+ "those whose names match the specified list of patterns. If left blank, all \n"
+ "documented defines will be included. \n"
+ );
+ cl = addList(
+ "DEFINE_EXCLUDE_PATTERNS",
+ "The DEFINE_EXCLUDE_PATTERNS tag can be used omit documented defines whose \n"
+ "names match the specified list of patterns. If left blank, all documented \n"
+ "defines matching the DEFINE_INCLUDE_PATTERNS will be included. \n"
+ );
+ cl = addList(
+ "TYPEDEF_INCLUDE_PATTERNS",
+ "The TYPEDEF_INCLUDE_PATTERNS tag can be used to limit documented typedefs to \n"
+ "those whose names match the specified list of patterns. If left blank, all \n"
+ "documented typedefs will be included. \n"
+ );
+ cl = addList(
+ "TYPEDEF_EXCLUDE_PATTERNS",
+ "The TYPEDEF_EXCLUDE_PATTERNS tag can be used omit documented typedefs whose \n"
+ "names match the specified list of patterns. If left blank, all documented \n"
+ "functions matching the TYPEDEF_INCLUDE_PATTERNS will be included. \n"
+ );
+ cl = addList(
+ "STRUCT_INCLUDE_PATTERNS",
+ "The STRUCT_INCLUDE_PATTERNS tag can be used to limit documented structs and \n"
+ "unions to those whose names match the specified list of patterns. If left \n"
+ "blank, all documented structs and unions will be included. \n"
+ );
+ cl = addList(
+ "STRUCT_EXCLUDE_PATTERNS",
+ "The STRUCT_EXCLUDE_PATTERNS tag can be used omit documented structs and unions \n"
+ "whose names match the specified list of patterns. If left blank, all documented \n"
+ "structs and unions matching the STRUCT_INCLUDE_PATTERNS will be included. \n"
+ );
+ cl = addList(
+ "GROUP_INCLUDE_PATTERNS",
+ "The GROUP_INCLUDE_PATTERNS tag can be used to limit documented groupss \n"
+ "to those whose names match the specified list of patterns. If left blank, all \n"
+ "documented groups will be included. \n"
+ );
+ cl = addList(
+ "GROUP_EXCLUDE_PATTERNS",
+ "The GROUP_EXCLUDE_PATTERNS tag can be used omit documented groupss \n"
+ "whose names match the specified list of patterns. If left blank, all documented \n"
+ "groups matching the GROUP_INCLUDE_PATTERNS will be included. \n"
+ );
+ cl = addList(
+ "ENTRY_INCLUDE_PATTERNS",
+ "The ENTRY_INCLUDE_PATTERNS tag can be used to limit documented entries of types \n"
+ "other than the types mentioned above to those whose names match the specified \n"
+ "list of patterns. If left blank, all documented entries will be included. \n"
+ );
+ cl = addList(
+ "ENTRY_EXCLUDE_PATTERNS",
+ "The ENTRY_EXCLUDE_PATTERNS tag can be used omit documented entries of types \n"
+ "other than the types mentioned above whose names match the specified list of \n"
+ "patterns. If left blank, all documented entries matching the \n"
+ "ENTRY_INCLUDE_PATTERNS will be included. \n"
+ );
+ cb = addBool(
+ "DETAIL_SECTION_FIRST",
+ "If the DETAIL_SECTION_FIRST tag is set to YES doxygen will output the detailed \n"
+ "documentation for files, classes and modules before their respective member \n"
+ "summary sections. If set to NO (the default), the file, class, or module \n"
+ "details will follow the summary section. \n",
+ FALSE
+ );
+ cb = addBool(
+ "OUTPUT_TYPEDEFS",
+ "If the OUTPUT_TYPEDEFS tag is set to YES doxygen will replace compound type \n"
+ "specifiers with an equivalent typedef alias, if it exists. This tag is \n"
+ "considered only when OPTIMIZE_OUTPUT_FOR_C is set to yes. \n",
+ FALSE
+ );
+ ce = addEnum(
+ "TOC_STYLE",
+ "The TOC_STYLE tag is used to specify the style of the tree view and html \n"
+ "help indices. Currently, three styles are supported: Original, Spicy, and \n"
+ "Extra-Crispy. Original is the default and will include the usual items in \n"
+ "the usual order. Spicy adds an annotated function list and removes \n"
+ "individual entries for each files and data structure. Spicy also re-orders \n"
+ "the items, placing top-level groups directly after the main page. Entries for \n"
+ "functions, data structures, and files follow the group entries. Extra-Crispy \n"
+ "is the same as Spicy, except the annotated function, data structure and file \n"
+ "lists are followed by a separate entry for each row in the annotated list.\n",
+ "Original"
+ );
+ ce->addValue("Original");
+ ce->addValue("Spicy");
+ ce->addValue("Extra-Crispy");
+
+
+ cb = addBool( "INVARIANT_DOCS",
+ "The INVARIANT_DOCS tag determines if documentation that is typed after a \n"
+ "\\pre, \\post, or \\invariant command is included. If the tag is set to NO \n"
+ "then the documentation will be excluded. Set it to YES (the default) to \n"
+ "include the invariant documentation. \n",
+ TRUE
+ );
+ #endif /* RSA_EXTENSIONS */
cs = addString(
"PROJECT_NAME",
***************
*** 1692,1697 ****
--- 1881,1903 ----
"of functions and classes directly in the documentation. \n",
FALSE
);
+ #ifdef RSA_EXTENSIONS
+ cb = addBool(
+ "INLINE_CLASS_DECL",
+ "Setting the INLINE_CLASS_DECL tag to YES will include the body of \n"
+ "classes directly into the documentation if the DETAIL_SECTION_FIRST \n"
+ "tag is also set to YES. \n",
+ FALSE
+ );
+ cb = addBool(
+ "DEFINED_AT_RELATION",
+ "If the DEFINED_AT tag is set to YES (the default) \n"
+ "then for each documented item, the source line and file \n"
+ "will be listed. \n",
+ TRUE
+ );
+ cb->addDependency("SOURCE_BROWSER");
+ #endif //RSA_EXTENSIONS
cb = addBool( "REFERENCED_BY_RELATION",
"If the REFERENCED_BY_RELATION tag is set to YES (the default) \n"
"then for each documented function all documented \n"
***************
*** 1849,1854 ****
--- 2055,2067 ----
0,1500,250
);
ci->addDependency("GENERATE_HTML");
+
+ #ifdef RSA_EXTENSIONS
+ cl = addList( "HTML_EXTRA_FILES",
+ "The HTML_EXTRA_FILES tag can be used to specify a list of extra files that \n"
+ "Doxygen will copy to the HTML output directory.");
+ cl->addDependency("GENERATE_HTML");
+ #endif /* RSA_EXTENSIONS */
//-----------------------------------------------------------------------------------------------
addInfo( "LaTeX","configuration options related to the LaTeX output");
Index: src/constexp.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/constexp.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/constexp.h 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/constexp.h 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/constexp.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/constexp.l,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/constexp.l 7 Feb 2002 23:10:13 -0000 1.1.1.8
--- src/constexp.l 7 Feb 2002 23:29:20 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/constexp.y
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/constexp.y,v
retrieving revision 1.1.1.7
retrieving revision 1.3
diff -b -c -b -c -r1.1.1.7 -r1.3
*** src/constexp.y 24 Jan 2002 04:03:53 -0000 1.1.1.7
--- src/constexp.y 24 Jan 2002 02:28:30 -0000 1.3
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-1999 by Dimitri van Heesch.
Index: src/cppvalue.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/cppvalue.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/cppvalue.cpp 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/cppvalue.cpp 7 Feb 2002 23:29:20 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/cppvalue.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/cppvalue.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/cppvalue.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/cppvalue.h 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/debug.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/debug.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/debug.cpp 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/debug.cpp 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/debug.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/debug.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/debug.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/debug.h 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/declinfo.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/declinfo.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/declinfo.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/declinfo.h 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/declinfo.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/declinfo.l,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/declinfo.l 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/declinfo.l 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/defargs.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/defargs.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/defargs.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/defargs.h 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/defargs.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/defargs.l,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/defargs.l 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/defargs.l 7 Feb 2002 23:29:20 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/define.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/define.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/define.cpp 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/define.cpp 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/define.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/define.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/define.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/define.h 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/definition.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/definition.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.9
diff -b -c -b -c -r1.1.1.8 -r1.9
*** src/definition.cpp 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/definition.cpp 13 Mar 2002 01:09:44 -0000 1.9
***************
*** 138,145 ****
--- 138,150 ----
* The file is scanned for a closing bracket ('}') from \a endLine backward.
* The line actually containing the bracket is returned via endLine.
*/
+ #ifdef RSA_EXTENSIONS
+ static bool readCodeFragment(const char *fileName,
+ int &startLine,int &endLine,QCString &result,bool skipToBracket=TRUE)
+ #else //!RSA_EXTENSIONS
static bool readCodeFragment(const char *fileName,
int &startLine,int &endLine,QCString &result)
+ #endif //RSA_EXTENSIONS
{
//printf("readCodeFragment(%s,%d,%d)\n",fileName,startLine,endLine);
if (fileName==0 || fileName[0]==0) return FALSE; // not a valid file name
***************
*** 160,165 ****
--- 165,176 ----
// skip until the opening bracket or lonely : is found
bool found=FALSE;
char cn=0;
+ #ifdef RSA_EXTENSIONS
+ if (skipToBracket == FALSE)
+ {
+ found = TRUE;
+ }
+ #endif
while (lineNr<=endLine && !f.atEnd() && !found)
{
while ((c=f.getch())!='{' && c!=':' && c!=-1)
***************
*** 189,194 ****
--- 200,209 ----
}
if (found)
{
+ #ifdef RSA_EXTENSIONS
+ if (skipToBracket == TRUE)
+ {
+ #endif //RSA_EXTENSIONS
// For code with more than one line,
// fill the line with spaces until we are at the right column
// so that the opening brace lines up with the closing brace
***************
*** 201,206 ****
--- 216,224 ----
// copy until end of line
result+=c;
if (c==':') result+=cn;
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
startLine=lineNr;
const int maxLineLength=4096;
char lineStr[maxLineLength];
***************
*** 236,242 ****
--- 254,265 ----
{
ol.pushGeneratorState();
//printf("Definition::writeSourceRef %d %p\n",bodyLine,bodyDef);
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef &&
+ !m_bodyDef->isHidden() && Config_getBool("DEFINED_AT_RELATION"))
+ #else //RSA_EXTENSIONS
if (Config_getBool("SOURCE_BROWSER") && m_startBodyLine!=-1 && m_bodyDef)
+ #endif //RSA_EXTENSIONS
{
//ol.disable(OutputGenerator::RTF);
ol.newParagraph();
***************
*** 328,345 ****
--- 351,382 ----
}
/*! Write code of this definition into the documentation */
+ #ifdef RSA_EXTENSIONS
+ void Definition::writeInlineCode(OutputList &ol,const char *scopeName,bool doInline)
+ #else //!RSA_EXTENSIONS
void Definition::writeInlineCode(OutputList &ol,const char *scopeName)
+ #endif //RSA_EXTENSIONS
{
ol.pushGeneratorState();
//printf("Source Fragment %s: %d-%d bodyDef=%p\n",name().data(),
// startBodyLine,endBodyLine,bodyDef);
+ #ifdef RSA_EXTENSIONS
+ if ((doInline || Config_getBool("INLINE_SOURCES")) && m_startBodyLine!=-1 &&
+ m_endBodyLine>=m_startBodyLine && m_bodyDef)
+ #else //!RSA_EXTENSIONS
if (Config_getBool("INLINE_SOURCES") && m_startBodyLine!=-1 &&
m_endBodyLine>=m_startBodyLine && m_bodyDef)
+ #endif
{
QCString codeFragment;
int actualStart=m_startBodyLine,actualEnd=m_endBodyLine;
+ #ifdef RSA_EXTENSIONS
+ if (readCodeFragment(m_bodyDef->absFilePath(),
+ actualStart,actualEnd,codeFragment,doInline==FALSE)
+ #else //!RSA_EXTENSIONS
if (readCodeFragment(m_bodyDef->absFilePath(),
actualStart,actualEnd,codeFragment)
+ #endif //RSA_EXTENSIONS
)
{
initParseCodeContext();
***************
*** 347,354 ****
--- 384,396 ----
if (definitionType()==TypeMember) setParameterList((MemberDef *)this);
ol.newParagraph();
ol.startCodeFragment();
+ #ifdef RSA_EXTENSIONS
+ parseCode(ol,scopeName,codeFragment,FALSE,0,
+ m_bodyDef,actualStart,actualEnd,TRUE,doInline==FALSE);
+ #else //!RSA_EXTENSIONS
parseCode(ol,scopeName,codeFragment,FALSE,0,
m_bodyDef,actualStart,actualEnd,TRUE);
+ #endif //RSA_EXTENSIONS
ol.endCodeFragment();
}
}
Index: src/definition.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/definition.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/definition.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/definition.h 1 Mar 2002 03:46:16 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 95,101 ****
--- 95,105 ----
int getEndBodyLine() const { return m_endBodyLine; }
FileDef *getBodyDef() { return m_bodyDef; }
void writeSourceDef(OutputList &ol,const char *scopeName);
+ #ifdef RSA_EXTENSIONS
+ void writeInlineCode(OutputList &ol,const char *scopeName,bool doInline=FALSE);
+ #else //!RSA_EXTENSIONS
void writeInlineCode(OutputList &ol,const char *scopeName);
+ #endif
void writeSourceRefs(OutputList &ol,const char *scopeName);
void writeSourceReffedBy(OutputList &ol,const char *scopeName);
void addSourceReferencedBy(MemberDef *d);
Index: src/diagram.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/diagram.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.3
diff -b -c -b -c -r1.1.1.8 -r1.3
*** src/diagram.cpp 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/diagram.cpp 7 Feb 2002 23:29:20 -0000 1.3
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/diagram.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/diagram.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/diagram.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/diagram.h 7 Feb 2002 23:29:20 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/doc.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doc.h,v
retrieving revision 1.1.1.8
retrieving revision 1.3
diff -b -c -b -c -r1.1.1.8 -r1.3
*** src/doc.h 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/doc.h 7 Feb 2002 23:29:20 -0000 1.3
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/doc.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doc.l,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/doc.l 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/doc.l 7 Feb 2002 23:29:20 -0000 1.6
***************
*** 1,6 ****
/*****************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/*****************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/dot.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/dot.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/dot.cpp 7 Feb 2002 23:10:14 -0000 1.1.1.8
--- src/dot.cpp 7 Feb 2002 23:29:20 -0000 1.6
***************
*** 1,6 ****
/*****************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/*****************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/dot.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/dot.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/dot.h 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/dot.h 7 Feb 2002 23:29:20 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/doxygen.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxygen.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.12
diff -b -c -b -c -r1.1.1.8 -r1.12
*** src/doxygen.cpp 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/doxygen.cpp 28 Feb 2002 18:20:31 -0000 1.12
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
***************
*** 109,114 ****
--- 109,118 ----
QTextStream Doxygen::tagFile;
NamespaceDef *Doxygen::globalScope = new NamespaceDef("<globalScope>",1,"<globalScope>");
+ #ifdef RSA_EXTENSIONS
+ Doxygen::TocStyle Doxygen::tocStyle = Doxygen::Original;
+ #endif //RSA_EXTENSIONS
+
static StringList inputFiles;
static StringDict excludeNameDict(1009); // sections
static QDict<void> compoundKeywordDict(7); // keywords recognised as compounds
***************
*** 5012,5023 ****
--- 5016,5035 ----
writeAlphabeticalIndex(*outputList);
}
+ #ifdef RSA_EXTENSIONS
+ if (!Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
+ {
+ #endif //RSA_EXTENSIONS
msg("Generating hierarchical class index...\n");
writeHierarchicalIndex(*outputList);
msg("Generating member index...\n");
writeMemberIndex(*outputList);
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
+
if (Doxygen::exampleSDict->count()>0)
{
msg("Generating example index...\n");
***************
*** 5584,5589 ****
--- 5596,5604 ----
{
if (!gd->isReference())
{
+ #ifdef RSA_EXTENSIONS
+ msg("Generating docs for group %s\n", gd->name().data());
+ #endif //RSA_EXTENSIONS
gd->writeDocumentation(*outputList);
}
}
***************
*** 6020,6025 ****
--- 6035,6083 ----
}
}
+ #ifdef RSA_EXTENSIONS
+ static void copyFile(QCString &fileName)
+ {
+ if (!fileName.isEmpty())
+ {
+ QFile f(fileName);
+ QFileInfo fi(fileName);
+ if (f.open(IO_ReadOnly))
+ {
+ QCString destFileName = Config_getString("HTML_OUTPUT")+"/"+fi.fileName().data();
+ QFile df(destFileName);
+ if (df.open(IO_WriteOnly))
+ {
+ char *buffer = new char[f.size()];
+ f.readBlock(buffer,f.size());
+ df.writeBlock(buffer,f.size());
+ df.flush();
+ delete buffer;
+ }
+ else
+ {
+ err("Error: could not write to file %s\n",destFileName.data());
+ }
+ }
+ else
+ {
+ err("Error: could not open user specified file %s\n",fileName.data());
+ }
+ }
+ }
+
+ static void copyExtraFiles()
+ {
+ QStrList &fileList = Config_getList("HTML_EXTRA_FILES");
+ QCString fileName = fileList.first();
+ while (!fileName.isEmpty())
+ {
+ copyFile(fileName);
+ fileName = fileList.next();
+ }
+ }
+ #endif //RSA_EXTENSIONS
+
//----------------------------------------------------------------------------
// Reads a file to a string.
// The name of the file is written in front of the file's contents and
***************
*** 7097,7102 ****
--- 7155,7172 ----
if (Config_getBool("GENERATE_HTMLHELP")) HtmlHelp::getInstance()->initialize();
if (Config_getBool("GENERATE_TREEVIEW")) FTVHelp::getInstance()->initialize();
copyStyleSheet();
+ #ifdef RSA_EXTENSIONS
+ // Set the style of tree view and HTML indices.
+ QCString tocStyleOpt=Config_getEnum("TOC_STYLE");
+ if (stricmp(tocStyleOpt, "Original") == 0)
+ Doxygen::tocStyle = Doxygen::Original;
+ else if (stricmp(tocStyleOpt, "Spicy") == 0)
+ Doxygen::tocStyle = Doxygen::Spicy;
+ else
+ Doxygen::tocStyle = Doxygen::ExtraCrispy;
+
+ copyExtraFiles();
+ #endif //RSA_EXTENSIONS
}
if (Config_getBool("GENERATE_LATEX"))
{
***************
*** 7157,7162 ****
--- 7227,7237 ----
msg("Generating index page...\n");
writeIndex(*outputList);
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original)
+ {
+ #endif //RSA_EXTENSIONS
+
msg("Generating file index...\n");
writeFileIndex(*outputList);
***************
*** 7208,7213 ****
--- 7283,7352 ----
msg("Generating search index...\n");
generateSearchIndex();
+ #ifdef RSA_EXTENSIONS
+ }
+ else
+ {
+ msg("Generating group documentation...\n");
+ generateGroupDocs();
+
+ msg("Generating group index...\n");
+ writeGroupIndex(*outputList);
+
+ msg("Generating annotated function list...\n");
+ writeAnnotatedFunctionList(*outputList);
+
+ msg("Generating class documentation...\n");
+ generateClassDocs();
+
+ msg("Generating file index...\n");
+ writeFileIndex(*outputList);
+
+ msg("Generating example documentation...\n");
+ generateExampleDocs();
+
+ msg("Generating file sources...\n");
+ generateFileSources();
+
+ msg("Generating file documentation...\n");
+ generateFileDocs();
+
+ msg("Generating page documentation...\n");
+ generatePageDocs();
+
+ msg("Generating namespace index...\n");
+ generateNamespaceDocs();
+
+ msg("Generating package index...\n");
+ generatePackageDocs();
+
+ msg("Generating example index...\n");
+ writeExampleIndex(*outputList);
+
+ msg("Generating alphabetical function index...\n");
+ writeAlphabeticalFunctionIndex(*outputList);
+
+ // msg("Generating file member index...\n");
+ // writeFileMemberIndex(*outputList);
+
+ msg("Generating namespace member index...\n");
+ writeNamespaceMemberIndex(*outputList);
+
+ msg("Generating page index...\n");
+ writePageIndex(*outputList);
+
+ if (Config_getBool("GENERATE_LEGEND"))
+ {
+ msg("Generating graph info page...\n");
+ writeGraphInfo(*outputList);
+ }
+
+ msg("Generating search index...\n");
+ generateSearchIndex();
+
+ }
+ #endif
+
msg("Generating style sheet...\n");
outputList->writeStyleInfo(0); // write first part
outputList->disableAllBut(OutputGenerator::Latex);
Index: src/doxygen.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxygen.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/doxygen.h 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/doxygen.h 28 Feb 2002 03:22:59 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
***************
*** 92,97 ****
--- 92,107 ----
static QDict<void> expandAsDefinedDict;
static PackageSDict packageDict;
static NamespaceDef *globalScope;
+
+ #ifdef RSA_EXTENSIONS
+ enum TocStyle {
+ Original,
+ Spicy,
+ ExtraCrispy
+ };
+
+ static TocStyle tocStyle;
+ #endif
};
void initDoxygen();
Index: src/doxygen.pro.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxygen.pro.in,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/doxygen.pro.in 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/doxygen.pro.in 7 Feb 2002 23:29:20 -0000 1.5
***************
*** 1,5 ****
#
! #
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
--- 1,5 ----
#
! # $Id$
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
***************
*** 18,23 ****
--- 18,25 ----
CONFIG = console warn_on $extraopts
HEADERS = doxygen.h
SOURCES = main.cpp
+ TMAKE_CFLAGS += -DRSA_EXTENSIONS
+ TMAKE_CXXFLAGS += -DRSA_EXTENSIONS
unix:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools
win32:INCLUDEPATH += .
win32-mingw:LIBS += -L../lib -ldoxygen -ldoxycfg -lqtools
Index: src/doxysearch.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxysearch.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/doxysearch.cpp 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/doxysearch.cpp 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/doxysearch.pro.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxysearch.pro.in,v
retrieving revision 1.1.1.7
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.7 -r1.4
*** src/doxysearch.pro.in 24 Jan 2002 04:03:54 -0000 1.1.1.7
--- src/doxysearch.pro.in 3 Feb 2002 23:18:04 -0000 1.4
***************
*** 1,5 ****
#
! #
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
--- 1,5 ----
#
! # $Id$
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
***************
*** 17,19 ****
--- 17,21 ----
SOURCES = doxysearch.cpp
TARGET = ../bin/doxysearch
OBJECTS_DIR = ../objects
+ TMAKE_CFLAGS += -DRSA_EXTENSIONS
+ TMAKE_CXXFLAGS += -DRSA_EXTENSIONS
Index: src/doxytag.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxytag.l,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/doxytag.l 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/doxytag.l 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/doxytag.pro.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxytag.pro.in,v
retrieving revision 1.1.1.7
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.7 -r1.4
*** src/doxytag.pro.in 24 Jan 2002 04:03:54 -0000 1.1.1.7
--- src/doxytag.pro.in 3 Feb 2002 23:18:04 -0000 1.4
***************
*** 1,5 ****
#
! #
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
--- 1,5 ----
#
! # $Id$
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
***************
*** 19,24 ****
--- 19,26 ----
HEADERS = suffixtree.h searchindex.h logos.h version.h
SOURCES = doxytag.cpp suffixtree.cpp searchindex.cpp \
logos.cpp version.cpp
+ TMAKE_CFLAGS += -DRSA_EXTENSIONS
+ TMAKE_CXXFLAGS += -DRSA_EXTENSIONS
unix:LIBS += -L../lib -lqtools
win32:INCLUDEPATH += .
win32-mingw:LIBS += -L../lib -lqtools
Index: src/doxytag.t
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/doxytag.t,v
retrieving revision 1.1.1.7
retrieving revision 1.3
diff -b -c -b -c -r1.1.1.7 -r1.3
*** src/doxytag.t 24 Jan 2002 04:03:55 -0000 1.1.1.7
--- src/doxytag.t 24 Jan 2002 02:28:31 -0000 1.3
***************
*** 1,5 ****
#
! #
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
--- 1,5 ----
#
! # $Id$
#
# Copyright (C) 1997-1999 by Dimitri van Heesch.
#
Index: src/entry.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/entry.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/entry.cpp 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/entry.cpp 7 Feb 2002 23:29:21 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/entry.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/entry.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/entry.h 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/entry.h 7 Feb 2002 23:29:21 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/example.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/example.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/example.h 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/example.h 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/filedef.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/filedef.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.8
diff -b -c -b -c -r1.1.1.8 -r1.8
*** src/filedef.cpp 7 Feb 2002 23:10:15 -0000 1.1.1.8
--- src/filedef.cpp 8 Feb 2002 06:07:30 -0000 1.8
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 102,107 ****
--- 102,113 ----
*/
void FileDef::writeDocumentation(OutputList &ol)
{
+ #ifdef RSA_EXTENSIONS
+ if (isHidden())
+ {
+ return;
+ }
+ #endif
//funcList->countDecMembers();
//QCString fn = name();
***************
*** 138,152 ****
--- 144,174 ----
parseDoc(briefOutput,filepath,1,0,0,briefDescription());
ol+=briefOutput;
ol.writeString(" \n");
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
+ {
+ #endif //RSA_EXTENSIONS
ol.disableAllBut(OutputGenerator::Html);
ol.startTextLink(0,"_details");
parseText(ol,theTranslator->trMore());
ol.endTextLink();
ol.enableAll();
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
ol.disable(OutputGenerator::Man);
ol.newParagraph();
ol.enable(OutputGenerator::Man);
}
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == TRUE)
+ {
+ if (!documentation().isEmpty())
+ {
+ parseDoc(ol,filepath,1,0,0,documentation()+"\n");
+ }
+ }
+ #endif //RSA_EXTENSIONS
ol.writeSynopsis();
if (Config_getBool("SHOW_INCLUDE_FILES"))
***************
*** 334,339 ****
--- 356,365 ----
//doc=doc.stripWhiteSpace();
//int bl=brief.length();
//int dl=doc.length();
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
+ {
+ #endif //RSA_EXTENSIONS
if ((!briefDescription().isEmpty() && Config_getBool("REPEAT_BRIEF")) ||
!documentation().isEmpty()
/* || startBodyLine!=-1 */
***************
*** 382,387 ****
--- 408,416 ----
}
}
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
docDefineMembers.writeDocumentation(ol,name(),this,
theTranslator->trDefineDocumentation());
***************
*** 421,426 ****
--- 450,461 ----
/*! Write a source listing of this file to the output */
void FileDef::writeSource(OutputList &ol)
{
+ #ifdef RSA_EXTENSIONS
+ if (isHidden())
+ {
+ return;
+ }
+ #endif //RSA_EXTENSIONS
ol.disableAllBut(OutputGenerator::Html);
startFile(ol,getSourceFileBase(),0,docname+" Source File");
startTitle(ol,0);
***************
*** 623,634 ****
--- 658,675 ----
bool FileDef::generateSourceFile() const
{
+ #ifndef RSA_EXTENSIONS
QCString extension = name().right(4);
+ #endif //RSA_EXTENSIONS
return !isReference() &&
(Config_getBool("SOURCE_BROWSER") ||
(Config_getBool("VERBATIM_HEADERS") && guessSection(name())==Entry::HEADER_SEC)
) &&
+ #ifdef RSA_EXTENSIONS
+ !isHidden();
+ #else //RSA_EXTENSIONS
extension!=".doc" && extension!=".txt" && extension!=".dox";
+ #endif //RSA_EXTENSIONS
}
***************
*** 651,654 ****
--- 692,713 ----
docFuncMembers.addListReferences(this);
docVarMembers.addListReferences(this);
}
+
+ #ifdef RSA_EXTENSIONS
+ bool FileDef::isHidden() const
+ {
+ return isEntryHidden(name(), "TOC_INCLUDE_PATTERNS",
+ "TOC_EXCLUDE_PATTERNS", TRUE);
+ }
+
+ bool FileDef::isLinkableInProject() const
+ {
+ return hasDocumentation() && !isReference() && !isHidden();
+ }
+
+ bool FileDef::isLinkable() const
+ {
+ return (isLinkableInProject() || isReference()) && !isHidden();
+ }
+ #endif // RSA_EXTENSIONS
Index: src/filedef.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/filedef.h,v
retrieving revision 1.1.1.8
retrieving revision 1.7
diff -b -c -b -c -r1.1.1.8 -r1.7
*** src/filedef.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/filedef.h 7 Feb 2002 23:29:21 -0000 1.7
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 108,113 ****
--- 108,117 ----
/*! Returns the absolute path of this file. */
QCString getPath() const { return path; }
+ #ifdef RSA_EXTENSIONS
+ bool isLinkableInProject() const;
+ bool isLinkable() const;
+ #else //RSA_EXTENSIONS
bool isLinkableInProject() const
{
return hasDocumentation() && !isReference();
***************
*** 117,122 ****
--- 121,127 ----
{
return isLinkableInProject() || isReference();
}
+ #endif //RSA_EXTENSIONS
void writeDocumentation(OutputList &ol);
void writeSource(OutputList &ol);
***************
*** 194,199 ****
--- 199,210 ----
PackageDef *package;
+
+ #ifdef RSA_EXTENSIONS
+ public:
+ /*! TRUE if the class documentation is explicitly hidden */
+ bool isHidden() const;
+ #endif
};
Index: src/filename.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/filename.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/filename.cpp 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/filename.cpp 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/filename.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/filename.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/filename.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/filename.h 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/formula.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/formula.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/formula.cpp 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/formula.cpp 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/formula.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/formula.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/formula.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/formula.h 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/gifenc.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/gifenc.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/gifenc.cpp 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/gifenc.cpp 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/gifenc.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/gifenc.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/gifenc.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/gifenc.h 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/groupdef.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/groupdef.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.10
diff -b -c -b -c -r1.1.1.8 -r1.10
*** src/groupdef.cpp 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/groupdef.cpp 8 Feb 2002 06:10:04 -0000 1.10
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 32,37 ****
--- 32,56 ----
#include "doxygen.h"
#include "page.h"
+ #ifdef RSA_EXTENSIONS
+ bool GroupDef::isHidden() const
+ {
+ return isEntryHidden(name(), "GROUP_INCLUDE_PATTERNS",
+ "GROUP_EXCLUDE_PATTERNS", FALSE);
+ }
+
+ bool GroupDef::isLinkableInProject() const
+ {
+ return !isHidden() && !isReference();
+ }
+
+ bool GroupDef::isLinkable() const
+ {
+ return !isHidden();
+ }
+
+ #endif //RSA_EXTENSIONS
+
GroupDef::GroupDef(const char *df,int dl,const char *na,const char *t) :
Definition(df,dl,na)
{
***************
*** 349,354 ****
--- 368,381 ----
void GroupDef::writeDocumentation(OutputList &ol)
{
+ #ifdef RSA_EXTENSIONS
+ // don't generate hidden group pages
+ if (isHidden())
+ {
+ return;
+ }
+ #endif
+
ol.pushGeneratorState();
//ol.disable(OutputGenerator::Man);
startFile(ol,getOutputFileBase(),name(),title);
***************
*** 364,369 ****
--- 391,400 ----
parseDoc(briefOutput,m_defFileName,m_defLine,name(),0,briefDescription());
ol+=briefOutput;
ol.writeString(" \n");
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
+ {
+ #endif //RSA_EXTENSIONS
ol.pushGeneratorState();
ol.disable(OutputGenerator::Latex);
ol.disable(OutputGenerator::RTF);
***************
*** 372,377 ****
--- 403,411 ----
ol.endTextLink();
//ol.enable(OutputGenerator::Latex);
ol.popGeneratorState();
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
if (!Config_getString("GENERATE_TAGFILE").isEmpty())
***************
*** 382,387 ****
--- 416,431 ----
Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << ".html</filename>" << endl;
}
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == TRUE)
+ {
+ if (!documentation().isEmpty())
+ {
+ parseDoc(ol,m_defFileName,m_defLine,name(),0,documentation()+"\n");
+ }
+ }
+ #endif //RSA_EXTENSIONS
+
ol.startMemberSections();
// write list of files
***************
*** 501,506 ****
--- 545,554 ----
ol.endMemberSections();
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("DETAIL_SECTION_FIRST") == FALSE)
+ {
+ #endif //RSA_EXTENSIONS
if (!briefDescription().isEmpty() || !documentation().isEmpty())
{
***************
*** 530,535 ****
--- 578,586 ----
parseDoc(ol,m_defFileName,m_defLine,name(),0,documentation()+"\n");
}
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
PageInfo *pi=0;
PageSDict::Iterator pdi(*pageDict);
for (pdi.toFirst();(pi=pdi.current());++pdi)
Index: src/groupdef.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/groupdef.h,v
retrieving revision 1.1.1.8
retrieving revision 1.7
diff -b -c -b -c -r1.1.1.8 -r1.7
*** src/groupdef.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/groupdef.h 7 Feb 2002 23:29:21 -0000 1.7
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 60,65 ****
--- 60,69 ----
bool containsGroup(const GroupDef *def); // true if def is already a subgroup
void writeDocumentation(OutputList &ol);
int countMembers() const;
+ #ifdef RSA_EXTENSIONS
+ bool isLinkableInProject() const;
+ bool isLinkable() const;
+ #else //RSA_EXTENSIONS
bool isLinkableInProject() const
{
return !isReference();
***************
*** 68,73 ****
--- 72,78 ----
{
return TRUE;
}
+ #endif //RSA_EXTENSIONS
bool isASubGroup() const;
void computeAnchors();
***************
*** 125,130 ****
--- 130,139 ----
MemberList *allMemberList;
MemberNameInfoSDict *allMemberNameInfoSDict;
+ #ifdef RSA_EXTENSIONS
+ /*! TRUE if the class documentation is explicitely hidden */
+ bool isHidden() const;
+ #endif
};
Index: src/htmlgen.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/htmlgen.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/htmlgen.cpp 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/htmlgen.cpp 7 Feb 2002 23:29:21 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 719,727 ****
--- 719,733 ----
t << "<tr>";
switch(annoType)
{
+ #ifdef RSA_EXTENSIONS
+ case 0: t << "<td nowrap align=right valign=baseline>"; break;
+ case 1: t << "<td nowrap>"; break;
+ default: t << "<td nowrap valign=baseline>"; break;
+ #else /* !RSA_EXTENSIONS */
case 0: t << "<td nowrap align=right valign=top>"; break;
case 1: t << "<td nowrap>"; break;
default: t << "<td nowrap valign=top>"; break;
+ #endif /* RSA_EXTENSIONS */
}
}
else
***************
*** 746,752 ****
--- 752,762 ----
DBG_HTML(t << "<!-- insertMemberAlign -->" << endl)
if (Config_getBool("HTML_ALIGN_MEMBERS"))
{
+ #ifdef RSA_EXTENSIONS
+ t << " </td><td valign=baseline>";
+ #else /* !RSA_EXTENSIONS */
t << " </td><td valign=bottom>";
+ #endif /* RSA_EXTENSIONS */
}
}
***************
*** 757,767 ****
--- 767,788 ----
{
//t << "<tr><td><img src=null.gif></td><td><img src=null.gif></td>"
// "<td></td><td><font size=-1><em>";
+ #ifdef RSA_EXTENSIONS
+ // No emphasis and no size reduction
+ t << "<tr><td> </td><td>";
+ #else /* !RSA_EXTENSIONS */
t << "<tr><td> </td><td><font size=-1><em>";
+ #endif /* RSA_EXTENSIONS */
}
else
{
+ #ifdef RSA_EXTENSIONS
+ // No emphasis and no size reduction
+ t << "<dl class=\"el\"><dd>";
+ #else /* !RSA_EXTENSIONS */
t << "<dl class=\"el\"><dd><font size=-1><em>";
+ #endif /* RSA_EXTENSIONS */
+
}
}
***************
*** 770,780 ****
--- 791,809 ----
DBG_HTML(t << "<!-- endMemberDescription -->" << endl)
if (Config_getBool("HTML_ALIGN_MEMBERS"))
{
+ #ifdef RSA_EXTENSIONS
+ t << "<br><br></td></tr>" << endl;
+ #else /* !RSA_EXTENSIONS */
t << "</em></font><br><br></td></tr>" << endl;
+ #endif /* RSA_EXTENSIONS */
}
else
{
+ #ifdef RSA_EXTENSIONS
+ t << "<br><br></dl>";
+ #else /* !RSA_EXTENSIONS */
t << "<br><br></em></font></dl>";
+ #endif /* RSA_EXTENSIONS */
}
}
***************
*** 846,853 ****
--- 875,886 ----
void HtmlGenerator::startIndexKey()
{
+ #ifdef RSA_EXTENSIONS
+ t << " <tr bgcolor=\"#f0f0f0\"><td class=\"indexkey\" width=30%>";
+ #else /* !RSA_EXTENSIONS */
// inserted 'class = ...', 02 jan 2002, jh
t << " <tr><td class=\"indexkey\">";
+ #endif //RSA_EXTENSIONS
}
void HtmlGenerator::endIndexKey()
***************
*** 1048,1053 ****
--- 1081,1089 ----
void HtmlGenerator::endParameterList()
{
DBG_HTML(t << "<!-- endParameterList -->" << endl;)
+ #ifdef RSA_EXTENSIONS
+ docify(";");
+ #endif /* RSA_EXTENSIONS */
t << "</td>" << endl;
t << " </tr>" << endl;
}
Index: src/htmlgen.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/htmlgen.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/htmlgen.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/htmlgen.h 7 Feb 2002 23:35:48 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 166,172 ****
--- 166,177 ----
void startSuperscript() { t << "<sup>"; }
void endSuperscript() { t << "</sup>"; }
void startTable(bool,int)
+ #ifdef RSA_EXTENSIONS
+ { t << "<table border=1 cellspacing=0 "
+ "cellpadding=3 Bordercolor=CCCCCC>"; }
+ #else //RSA_EXTENSIONS
{ t << "<table border=1 cellspacing=3 cellpadding=3>"; }
+ #endif //RSA_EXTENSIONS
void endTable(bool hasCaption)
{ if (!hasCaption) t << "</tr>";
t << "</table>" << endl;
***************
*** 218,230 ****
--- 223,243 ----
void endDotFile(bool);
void startDescTable()
+ #ifdef RSA_EXTENSIONS
+ { t << "<table border=0 cellspacing=2 cellpadding=5>" << endl; }
+ #else //RSA_EXTENSIONS
{ t << "<table border=0 cellspacing=2 cellpadding=0>" << endl; }
+ #endif //RSA_EXTENSIONS
void endDescTable()
{ t << "</table>" << endl; }
void startDescTableTitle()
{ t << "<tr><td valign=top><em>"; }
void endDescTableTitle()
+ #ifdef RSA_EXTENSIONS
+ { t << "</em></td>"; }
+ #else //RSA_EXTENSIONS
{ t << "</em> </td>"; }
+ #endif //RSA_EXTENSIONS
void startDescTableData()
{ t << "<td>" << endl; }
void endDescTableData()
Index: src/htmlhelp.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/htmlhelp.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/htmlhelp.cpp 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/htmlhelp.cpp 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/htmlhelp.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/htmlhelp.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/htmlhelp.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/htmlhelp.h 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/image.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/image.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/image.cpp 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/image.cpp 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/image.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/image.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/image.h 7 Feb 2002 23:10:16 -0000 1.1.1.8
--- src/image.h 7 Feb 2002 23:29:21 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/index.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/index.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.17
diff -b -c -b -c -r1.1.1.8 -r1.17
*** src/index.cpp 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/index.cpp 28 Feb 2002 10:11:54 -0000 1.17
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 112,118 ****
--- 112,122 ----
static bool g_fileIndexLetterUsed[256];
static bool g_namespaceIndexLetterUsed[256];
+ #ifdef RSA_EXTENSIONS
+ const int maxItemsBeforeQuickIndex = 0;
+ #else
const int maxItemsBeforeQuickIndex = 50;
+ #endif
//----------------------------------------------------------------------------
***************
*** 371,376 ****
--- 375,393 ----
for ( ; bcli.current() ; ++bcli)
{
ClassDef *cd=bcli.current()->classDef;
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ MemberDef *td;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ #endif //RSA_EXTENSIONS
if (cd->isVisibleInHierarchy() && hasVisibleRoot(cd->baseClasses()))
{
if (!started)
***************
*** 394,408 ****
--- 411,463 ----
}
if (hasHtmlHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef)
+ {
+ htmlHelp->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
+ }
+ else
+ {
+ #endif //RSA_EXTENSIONS
htmlHelp->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
if (hasFtvHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef)
+ {
+ ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
+ }
+ else
+ {
+ #endif //RSA_EXTENSIONS
ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
}
else
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef)
+ {
+ ol.writeIndexItem(0,0,td->name());
+ if (hasHtmlHelp)
+ {
+ htmlHelp->addContentsItem(hasChildren,td->name(),0);
+ }
+ if (hasFtvHelp)
+ {
+ ftvHelp->addContentsItem(hasChildren,0,0,0,td->name());
+ }
+ }
+ else
+ {
+ #endif //RSA_EXTENSIONS
ol.writeIndexItem(0,0,cd->name());
if (hasHtmlHelp)
{
***************
*** 412,417 ****
--- 467,475 ----
{
ftvHelp->addContentsItem(hasChildren,0,0,0,cd->name());
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
if (hasChildren)
{
***************
*** 454,459 ****
--- 512,530 ----
for ( ; cli.current() ; ++cli)
{
ClassDef *cd=cli.current()->classDef;
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ MemberDef *td;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ #endif //RSA_EXTENSIONS
if (cd->isVisibleInHierarchy() && !cd->visited)
{
if (!started)
***************
*** 467,477 ****
--- 538,570 ----
{
if (hasHtmlHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ htmlHelp->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
+ }
+ else
+ {
+ #endif
htmlHelp->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
if (hasFtvHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
+ }
+ else
+ {
+ #endif
ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
}
if (hasChildren)
***************
*** 493,498 ****
--- 586,604 ----
void writeClassTreeNode(ClassDef *cd,bool hasHtmlHelp,bool hasFtvHelp,bool &started,int level)
{
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ MemberDef *td;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ #endif //RSA_EXTENSIONS
if (cd->isVisibleInHierarchy() && !cd->visited)
{
if (!started)
***************
*** 504,514 ****
--- 610,642 ----
{
if (hasHtmlHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ HtmlHelp::getInstance()->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
+ }
+ else
+ {
+ #endif
HtmlHelp::getInstance()->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
if (hasFtvHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ FTVHelp::getInstance()->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
+ }
+ else
+ {
+ #endif
FTVHelp::getInstance()->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
}
if (hasChildren)
***************
*** 567,572 ****
--- 695,713 ----
for (;cli.current(); ++cli)
{
ClassDef *cd=cli.current();
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ MemberDef *td;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ #endif //RSA_EXTENSIONS
//printf("class %s hasVisibleRoot=%d isVisibleInHierarchy=%d\n",
// cd->name().data(),
// hasVisibleRoot(cd->baseClasses()),
***************
*** 586,594 ****
--- 727,746 ----
bool hasChildren = !cd->visited && cd->subClasses()->count()>0;
if (cd->isLinkable())
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ ol.writeIndexItem(cd->getReference(),cd->getOutputFileBase(),td->name());
+ }
+ else
+ {
+ #endif
//printf("Writing class %s isLinkable()=%d isLinkableInProject()=%d cd->templateMaster()=%p\n",
// cd->displayName().data(),cd->isLinkable(),cd->isLinkableInProject(),cd->templateMaster());
ol.writeIndexItem(cd->getReference(),cd->getOutputFileBase(),cd->displayName());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
if (cd->isReference())
{
ol.startTypewriter();
***************
*** 597,619 ****
--- 749,826 ----
}
if (hasHtmlHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ htmlHelp->addContentsItem(hasChildren,td->name(),cd->getOutputFileBase());
+ }
+ else
+ {
+ #endif
htmlHelp->addContentsItem(hasChildren,cd->name(),cd->getOutputFileBase());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
if (hasFtvHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,td->name());
+ }
+ else
+ {
+ #endif
ftvHelp->addContentsItem(hasChildren,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
}
else
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ ol.writeIndexItem(0,0,td->name());
+ }
+ else
+ {
+ #endif
ol.writeIndexItem(0,0,cd->displayName());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
if (hasHtmlHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ htmlHelp->addContentsItem(hasChildren,td->name(),0);
+ }
+ else
+ {
+ #endif
htmlHelp->addContentsItem(hasChildren,cd->name(),0);
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
if (hasFtvHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ ftvHelp->addContentsItem(hasChildren,0,0,0,td->name());
+ }
+ else
+ {
+ #endif
ftvHelp->addContentsItem(hasChildren,0,0,0,cd->name());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
}
if (hasChildren)
***************
*** 781,788 ****
--- 988,1000 ----
{
bool doc = fd->isLinkableInProject();
bool src = fd->generateSourceFile();
+ #ifdef RSA_EXTENSIONS
+ bool nameOk = !isEntryHidden(fd->name(), "TOC_INCLUDE_PATTERNS",
+ "TOC_EXCLUDE_PATTERNS", TRUE);
+ #else // RSA_EXTENSIONS
bool nameOk = fd->name().right(4)!=".doc" &&
fd->name().right(4)!=".txt";
+ #endif // RSA_EXTENSIONS
if (nameOk)
{
if (doc || src)
***************
*** 823,836 ****
--- 1035,1072 ----
if (hasHtmlHelp)
{
htmlHelp = HtmlHelp::getInstance();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"files");
htmlHelp->incContentsDepth();
+ #ifdef RSA_EXTENSIONS
+ }
+ else
+ {
+ htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"files");
+ }
+ #endif //RSA_EXTENSIONS
}
if (hasFtvHelp)
{
ftvHelp = FTVHelp::getInstance();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
ftvHelp->addContentsItem(TRUE,0,"files",0,ftvHelpTitle);
ftvHelp->incContentsDepth();
+ #ifdef RSA_EXTENSIONS
+ }
+ else
+ {
+ ftvHelp->addContentsItem(FALSE,0,"files",0,ftvHelpTitle);
+ }
+ #endif //RSA_EXTENSIONS
}
//ol.newParagraph();
parseText(ol,theTranslator->trFileListDescription(Config_getBool("EXTRACT_ALL")));
***************
*** 890,897 ****
--- 1126,1138 ----
//printf("Found filedef %s\n",fd->name().data());
bool doc = fd->isLinkableInProject();
bool src = fd->generateSourceFile();
+ #ifdef RSA_EXTENSIONS
+ bool nameOk = !isEntryHidden(fd->name(), "TOC_INCLUDE_PATTERNS",
+ "TOC_EXCLUDE_PATTERNS", TRUE);
+ #else // RSA_EXTENSIONS
bool nameOk = fd->name().right(4)!=".doc" &&
fd->name().right(4)!=".txt";
+ #endif //RSA_EXTENSIONS
if (nameOk && (doc || src) &&
!fd->isReference())
{
***************
*** 937,942 ****
--- 1178,1188 ----
if (doc)
{
ol.writeObjectLink(0,fd->getOutputFileBase(),0,fd->name());
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
if (hasHtmlHelp)
{
htmlHelp->addContentsItem(FALSE,fullName,fd->getOutputFileBase());
***************
*** 945,956 ****
--- 1191,1210 ----
{
ftvHelp->addContentsItem(FALSE,fd->getReference(),fd->getOutputFileBase(),0,fullName);
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
else
{
ol.startBold();
ol.docify(fd->name());
ol.endBold();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
if (hasHtmlHelp)
{
htmlHelp->addContentsItem(FALSE,fd->name(),0);
***************
*** 959,970 ****
--- 1213,1230 ----
{
ftvHelp->addContentsItem(FALSE,0,0,0,fd->name());
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
if (src)
{
ol.pushGeneratorState();
ol.disableAllBut(OutputGenerator::Html);
ol.docify(" ");
+ #ifdef RSA_EXTENSIONS
+ ol.writeNonBreakableSpace(1);
+ #endif /* RSA_EXTENSIONS */
ol.startTextLink(fd->includeName(),0);
ol.docify("[");
parseText(ol,theTranslator->trCode());
***************
*** 1000,1005 ****
--- 1260,1270 ----
}
}
ol.endIndexList();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
if (hasHtmlHelp)
{
htmlHelp->decContentsDepth();
***************
*** 1008,1013 ****
--- 1273,1281 ----
{
ftvHelp->decContentsDepth();
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
endFile(ol);
ol.popGeneratorState();
}
***************
*** 1149,1181 ****
--- 1417,1517 ----
ClassDef *cd;
for (;(cd=cli.current());++cli)
{
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ MemberDef *td;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ #endif //RSA_EXTENSIONS
if (cd->isLinkableInProject() && cd->templateMaster()==0)
{
QCString type=cd->compoundTypeString();
//ol.writeStartAnnoItem(type,cd->getOutputFileBase(),0,cd->displayName());
ol.startIndexKey();
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ ol.writeObjectLink(0,cd->getOutputFileBase(),0,td->name());
+ }
+ else
+ {
+ #endif
ol.writeObjectLink(0,cd->getOutputFileBase(),0,cd->displayName());
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
ol.endIndexKey();
bool hasBrief = !cd->briefDescription().isEmpty();
ol.startIndexValue(hasBrief);
if (hasBrief)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ parseDoc(ol,
+ cd->getDefFileName(),cd->getDefLine(),
+ td->name(),0,
+ abbreviate(cd->briefDescription(),td->name()));
+ }
+ else
+ {
+ #endif
//ol.docify(" (");
parseDoc(ol,
cd->getDefFileName(),cd->getDefLine(),
cd->name(),0,
abbreviate(cd->briefDescription(),cd->name()));
//ol.docify(")");
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
ol.endIndexValue(cd->getOutputFileBase(),hasBrief);
//ol.writeEndAnnoItem(cd->getOutputFileBase());
if (hasHtmlHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ if (hasTypedef == TRUE)
+ {
+ HtmlHelp::getInstance()->addContentsItem(FALSE,td->name(),cd->getOutputFileBase());
+ }
+ else
+ {
+ #endif
HtmlHelp::getInstance()->addContentsItem(FALSE,cd->name(),cd->getOutputFileBase());
+ #ifdef RSA_EXTENSIONS
+ }
+ }
+ #endif
}
if (hasFtvHelp)
{
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ if (hasTypedef == TRUE)
+ {
+ FTVHelp::getInstance()->addContentsItem(FALSE,cd->getReference(),cd->getOutputFileBase(),0,td->name());
+ }
+ else
+ {
+ #endif
FTVHelp::getInstance()->addContentsItem(FALSE,cd->getReference(),cd->getOutputFileBase(),0,cd->name());
+ #ifdef RSA_EXTENSIONS
+ }
+ }
+ #endif
}
}
}
***************
*** 1237,1254 ****
--- 1573,1621 ----
// first count the number of headers
ClassSDict::Iterator cli(Doxygen::classSDict);
ClassDef *cd;
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ MemberDef *td;
+ #endif //RSA_EXTENSIONS
char startLetter=0;
int headerItems=0;
for (;(cd=cli.current());++cli)
{
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ #endif //RSA_EXTENSIONS
if (cd->isLinkableInProject() && cd->templateMaster()==0)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ int index = getPrefixIndex(td->name());
+ if (toupper(td->name().at(index))!=startLetter) // new begin letter => new header
+ {
+ startLetter=toupper(td->name().at(index));
+ headerItems++;
+ }
+ }
+ else
+ {
+ #endif
int index = getPrefixIndex(cd->className());
if (toupper(cd->className().at(index))!=startLetter) // new begin letter => new header
{
startLetter=toupper(cd->className().at(index));
headerItems++;
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
}
}
***************
*** 1276,1281 ****
--- 1643,1672 ----
{
if (cd->isLinkableInProject() && cd->templateMaster()==0)
{
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ int index = 1;
+ if (toupper(td->name().at(index))!=startLetter)
+ {
+ // insert a new header using a dummy class pointer.
+ startLetter=toupper(td->name().at(index));
+ colList[col].append((ClassDef *)8); // insert dummy for the header
+ row++;
+ if ( row >= rows + ((col<itemsInLastRow) ? 0 : -1))
+ {
+ // if the header is the last item in the row, we add an extra
+ // row to make it easier to find the text of the header (this
+ // is then contained in the next cell)
+ colList[col].append(cd);
+ col++;
+ row=0;
+ }
+ }
+ }
+ else
+ {
+ #endif
int index = getPrefixIndex(cd->className());
if (toupper(cd->className().at(index))!=startLetter)
{
***************
*** 1293,1298 ****
--- 1684,1692 ----
row=0;
}
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
// add the class definition to the correct column list
colList[col].append(cd);
row++;
***************
*** 1324,1331 ****
--- 1718,1737 ----
if (cd)
{
//printf("head ClassDef=%p %s\n",cd,cd ? cd->name().data() : "<none>");
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ int index = 1;
+ startLetter=toupper(td->name().at(index));
+ }
+ else
+ {
+ #endif
int index = getPrefixIndex(cd->className());
startLetter=toupper(cd->className().at(index));
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
char s[2]; s[0]=startLetter; s[1]=0;
ol.writeIndexHeading(s);
}
***************
*** 1335,1340 ****
--- 1741,1753 ----
QCString cname;
QCString namesp;
if (cd->getNamespaceDef()) namesp=cd->getNamespaceDef()->name();
+ #ifdef RSA_EXTENSIONS
+ if (hasTypedef == TRUE)
+ {
+ cname = td->name();
+ }
+ else
+ #endif
if (Config_getBool("HIDE_SCOPE_NAMES"))
{
cname=cd->displayName();
***************
*** 1423,1440 ****
--- 1836,1882 ----
if (hasHtmlHelp)
{
htmlHelp = HtmlHelp::getInstance();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"annotated");
htmlHelp->incContentsDepth();
+ #ifdef RSA_EXTENSIONS
+ }
+ else
+ {
+ htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"annotated");
+ }
+ #endif
}
if (hasFtvHelp)
{
ftvHelp = FTVHelp::getInstance();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
ftvHelp->addContentsItem(TRUE,0,"annotated",0,ftvHelpTitle);
ftvHelp->incContentsDepth();
+ #ifdef RSA_EXTENSIONS
+ }
+ else
+ {
+ ftvHelp->addContentsItem(FALSE,0,"annotated",0,ftvHelpTitle);
+ }
+ #endif
}
parseText(ol,theTranslator->trCompoundListDescription());
ol.endTextBlock();
writeAnnotatedClassList(ol);
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original ||
+ Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ #endif //RSA_EXTENSIONS
if (hasHtmlHelp)
{
htmlHelp->decContentsDepth();
***************
*** 1443,1448 ****
--- 1885,1893 ----
{
ftvHelp->decContentsDepth();
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
endFile(ol);
ol.popGeneratorState();
***************
*** 1562,1567 ****
--- 2007,2045 ----
while (md)
{
ClassDef *cd=md->getClassDef();
+ #ifdef RSA_EXTENSIONS
+ bool hasTypedef = FALSE;
+ MemberDef *td;
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == TRUE &&
+ Config_getBool("OUTPUT_TYPEDEFS") == TRUE)
+ {
+ td = cd->findTypedef();
+ if (td != 0)
+ {
+ hasTypedef = TRUE;
+ }
+ }
+ if (hasTypedef == TRUE)
+ {
+ if (
+ md->isLinkableInProject() &&
+ prevName!=td->name() &&
+ cd->isLinkableInProject() && cd->templateMaster()==0
+ )
+ {
+ if (count==0)
+ ol.docify(": ");
+ else
+ ol.docify(", ");
+ ol.writeObjectLink(cd->getReference(),cd->getOutputFileBase(),md->anchor(),
+ td->name());
+ count++;
+ prevName=td->name();
+ }
+ }
+ else
+ {
+ #endif
if (
md->isLinkableInProject() &&
prevName!=cd->displayName() &&
***************
*** 1577,1582 ****
--- 2055,2063 ----
count++;
prevName=cd->displayName();
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif
md=mn->prev();
}
}
***************
*** 1755,1762 ****
--- 2236,2264 ----
else
ol.docify(", ");
QCString baseName=fd->name().copy();
+ #ifdef RSA_EXTENSIONS
+ /* This fixes a doxygen bug. If the member is in a group, it is not
+ * actually documented in the file. The link must refer to the group
+ * instead. md->writeLink() does this check, but it displays
+ * the wrong text. So we cut and paste. The result is a little
+ * wierd -- we end up in the group file, but the link text was
+ * the original filename.
+ */
+ GroupDef *group = md->getGroupDef();
+ if (group != 0)
+ {
+ ol.writeObjectLink(group->getReference(),
+ group->getOutputFileBase(),md->anchor(),baseName);
+ }
+ else // local link
+ {
+ ol.writeObjectLink(fd->getReference(),
+ fd->getOutputFileBase(),md->anchor(), baseName);
+ }
+ #else //!RSA_EXTENSIONS
ol.writeObjectLink(fd->getReference(),
fd->getOutputFileBase(),md->anchor(), baseName);
+ #endif
count++;
prevName=fd->name();
}
***************
*** 2597,2614 ****
--- 3099,3134 ----
if (hasHtmlHelp)
{
htmlHelp = HtmlHelp::getInstance();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original)
+ {
+ #endif //RSA_EXTENSIONS
htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"modules");
htmlHelp->incContentsDepth();
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
if (hasFtvHelp)
{
ftvHelp = FTVHelp::getInstance();
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original)
+ {
+ #endif //RSA_EXTENSIONS
ftvHelp->addContentsItem(TRUE,0,"modules",0,ftvHelpTitle);
ftvHelp->incContentsDepth();
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
}
parseText(ol,theTranslator->trModulesDescription());
ol.endTextBlock();
writeGroupHierarchy(ol);
+ #ifdef RSA_EXTENSIONS
+ if (Doxygen::tocStyle == Doxygen::Original)
+ {
+ #endif //RSA_EXTENSIONS
if (hasHtmlHelp)
{
//writeGroupTree(ol); // KPW - modified to write hierarchial HMTL Help
***************
*** 2625,2630 ****
--- 3145,3153 ----
ftvHelp->decContentsDepth();
//}
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
endFile(ol);
ol.popGeneratorState();
}
***************
*** 2877,2879 ****
--- 3400,3719 ----
ol.popGeneratorState();
}
+ #ifdef RSA_EXTENSIONS
+ //----------------------------------------------------------------------------
+
+ void writeAnnotatedFunctionList(OutputList &ol)
+ {
+ if (documentedFunctions==0) return;
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+ startFile(ol,"annfuncs",0,"Annotated Function Index");
+ QCString title = "Function Quick Reference"/* theTranslator->trFunctionQuickReference() */;
+ QCString htmlHelpTitle = title;
+ QCString ftvHelpTitle = title;
+ if (!Config_getString("PROJECT_NAME").isEmpty()) title.prepend(Config_getString("PROJECT_NAME")+" ");
+ startTitle(ol,0);
+ parseText(ol,title);
+ endTitle(ol,0,0);
+ ol.startTextBlock();
+ HtmlHelp *htmlHelp = 0;
+ FTVHelp *ftvHelp = 0;
+ bool &generateHtml = Config_getBool("GENERATE_HTML") ;
+ bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
+ bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
+ if (hasHtmlHelp)
+ {
+ htmlHelp = HtmlHelp::getInstance();
+ if (Doxygen::tocStyle == Doxygen::Spicy)
+ {
+ htmlHelp->addContentsItem(FALSE,htmlHelpTitle,"annfuncs");
+ }
+ else
+ {
+ htmlHelp->addContentsItem(TRUE,htmlHelpTitle,"annfuncs");
+ htmlHelp->incContentsDepth();
+ }
+ }
+ if (hasFtvHelp)
+ {
+ ftvHelp = FTVHelp::getInstance();
+ if (Doxygen::tocStyle == Doxygen::Spicy)
+ {
+ ftvHelp->addContentsItem(FALSE,0,"annfuncs",0,ftvHelpTitle);
+ }
+ else
+ {
+ ftvHelp->addContentsItem(TRUE,0,"annfuncs",0,ftvHelpTitle);
+ ftvHelp->incContentsDepth();
+ }
+ }
+ parseText(ol,"Here are the functions with brief descriptions:"/* theTranslator->trFunctionListDescription() */);
+ ol.endTextBlock();
+
+ ol.startIndexList();
+ MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);
+ MemberName *mn=0;
+ for (mnli.toFirst();(mn=mnli.current());++mnli)
+ {
+ MemberDef *md=mn->first();
+ bool found=FALSE;
+ while (md && !found)
+ {
+ if (md->isFunction() &&
+ md->getFileDef() &&
+ md->getFileDef()->isLinkableInProject() &&
+ md->isLinkableInProject())
+ {
+ found = TRUE;
+ }
+ else
+ {
+ md = mn->next();
+ }
+ }
+
+ if (found)
+ {
+ ol.startIndexKey();
+ md->writeLink(ol, 0, 0, md->getFileDef(), 0);
+ ol.endIndexKey();
+ bool hasBrief = !md->briefDescription().isEmpty();
+ ol.startIndexValue(hasBrief);
+ if (hasBrief)
+ {
+ parseDoc(ol,
+ md->getDefFileName(), md->getDefLine(),
+ md->name(),0,
+ abbreviate(md->briefDescription(),md->name()));
+ }
+ ol.endIndexValue(md->getOutputFileBase(),hasBrief);
+ if (Doxygen::tocStyle == Doxygen::ExtraCrispy)
+ {
+ Definition *d = md;
+ if (md->getGroupDef())
+ {
+ d = md->getGroupDef();
+ }
+ if (hasHtmlHelp)
+ {
+ htmlHelp->addContentsItem(FALSE, md->name(),d->getOutputFileBase());
+ }
+ if (hasFtvHelp)
+ {
+ ftvHelp->addContentsItem(FALSE, d->getReference(),
+ d->getOutputFileBase(),md->anchor(),md->name());
+ }
+ }
+ }
+ }
+ ol.endIndexList();
+
+ if (Doxygen::tocStyle != Doxygen::Spicy)
+ {
+ if (hasHtmlHelp)
+ {
+ htmlHelp->decContentsDepth();
+ }
+ if(hasFtvHelp)
+ {
+ ftvHelp->decContentsDepth();
+ }
+ }
+
+ endFile(ol);
+ ol.popGeneratorState();
+ }
+
+ //----------------------------------------------------------------------------
+
+ // write an alphabetical index of all global functions
+ void writeAlphabeticalFunctionList(OutputList &ol)
+ {
+ ol.startAlphabeticalIndexList();
+
+ // first count the number of headers
+ MemberNameSDict::Iterator mnli(Doxygen::functionNameSDict);
+ MemberName *mn=0;
+ MemberDef *md;
+ char startLetter=0;
+ int headerItems=0;
+ int totalItems = 0; // number of items in the table
+ for (mnli.toFirst();(mn=mnli.current());++mnli)
+ {
+ md=mn->first();
+ bool found=FALSE;
+ while (md && !found)
+ {
+ if (md->isFunction() &&
+ md->getFileDef() &&
+ md->getFileDef()->isLinkableInProject() &&
+ md->isLinkableInProject())
+ {
+ found = TRUE;
+ }
+ else
+ {
+ md = mn->next();
+ }
+ }
+
+ if (found)
+ {
+ totalItems++;
+ int index = 0;
+ if (toupper(md->name().at(index))!=startLetter) // new begin letter => new header
+ {
+ startLetter=toupper(md->name().at(index));
+ headerItems++;
+ totalItems++;
+ }
+ }
+ }
+
+ // the number of columns in the table
+ const int columns = Config_getInt("COLS_IN_ALPHA_INDEX");
+
+ int i,j;
+ int rows = (totalItems + columns - 1)/columns; // number of rows in the table
+ int itemsInLastRow = (totalItems + columns -1)%columns + 1; // number of items in the last row
+
+ //printf("headerItems=%d totalItems=%d columns=%d rows=%d itemsInLastRow=%d\n",
+ // headerItems,totalItems,columns,rows,itemsInLastRow);
+
+ // create one function list for each column
+ MemberList *colList = new MemberList[columns];
+
+ // fill the columns with the function list (row elements in each column,
+ // expect for the columns with number >= itemsInLastRow, which get on
+ // item less.
+ int col=0,row=0;
+ //int icount=0;
+ startLetter=0;
+ for (mnli.toFirst();(mn=mnli.current());++mnli)
+ {
+ md=mn->first();
+ bool found=FALSE;
+ while (md && !found)
+ {
+ if (md->isFunction() &&
+ md->getFileDef() &&
+ md->getFileDef()->isLinkableInProject() &&
+ md->isLinkableInProject())
+ {
+ found = TRUE;
+ }
+ else
+ {
+ md = mn->next();
+ }
+ }
+
+ if (found)
+ {
+ int index = 0;
+ if (toupper(md->name().at(index))!=startLetter)
+ {
+ // insert a new header using a dummy function pointer.
+ startLetter=toupper(md->name().at(index));
+ colList[col].append((MemberDef *)8); // insert dummy for the header
+ row++;
+ if ( row >= rows + ((col<itemsInLastRow) ? 0 : -1))
+ {
+ // if the header is the last item in the row, we add an extra
+ // row to make it easier to find the text of the header (this
+ // is then contained in the next cell)
+ colList[col].append(md);
+ col++;
+ row=0;
+ }
+ }
+ // add the member definition to the correct column list
+ colList[col].append(md);
+ row++;
+ if ( row >= rows + ((col<itemsInLastRow) ? 0 : -1)) { col++; row=0; }
+ }
+ }
+
+ // create iterators for each column
+ MemberListIterator **colIterators = new MemberListIterator*[columns];
+ for (i=0;i<columns;i++)
+ {
+ colIterators[i] = new MemberListIterator(colList[i]);
+ }
+
+ // generate table
+ for (i=0;i<rows;i++) // foreach table row
+ {
+ ol.nextTableRow();
+ // the last column may contain less items then the others
+ int colsInRow = (i<rows-1) ? columns : itemsInLastRow;
+ //printf("row [%d]\n",i);
+ for (j=0;j<colsInRow;j++) // foreach table column
+ {
+ MemberDef *md = colIterators[j]->current();
+ //printf("columns [%d] cd=%p\n",j,cd);
+ if (md==(MemberDef *)8) // the pointer is really a header
+ {
+ md=++(*colIterators[j]); // get the next item
+ if (md)
+ {
+ //printf("head MemberDef=%p %s\n",md,md ? md->name().data() : "<none>");
+ int index = 0;
+ startLetter=toupper(md->name().at(index));
+ char s[2]; s[0]=startLetter; s[1]=0;
+ ol.writeIndexHeading(s);
+ }
+ }
+ else if (md) // a real definition, insert a link
+ {
+ md->writeLink(ol, 0, 0, md->getFileDef(), 0);
+ ol.writeNonBreakableSpace(3);
+ //printf("item MemberDef=%p %s\n",md,md ? md->name().data() : "<none>");
+ ++(*colIterators[j]);
+ }
+ ol.endTableColumn();
+ if (j<colsInRow-1) ol.nextTableColumn();
+ }
+ ol.endTableRow();
+ }
+ ol.endAlphabeticalIndexList();
+
+ // release the temporary memory
+ for (i=0;i<columns;i++)
+ {
+ delete colIterators[i];
+ }
+ delete[] colIterators;
+ delete[] colList;
+ }
+
+ //----------------------------------------------------------------------------
+
+ void writeAlphabeticalFunctionIndex(OutputList &ol)
+ {
+ if (documentedFunctions==0) return;
+ ol.pushGeneratorState();
+ ol.disableAllBut(OutputGenerator::Html);
+ startFile(ol,"funcidx",0,"Alphabetical Function Index");
+ startTitle(ol,0);
+ QCString title = "Function Index"; /* theTranslator->trFunctionIndex() */
+ parseText(ol,Config_getString("PROJECT_NAME")+" "+ title);
+ endTitle(ol,0,0);
+ writeAlphabeticalFunctionList(ol);
+ endFile(ol);
+ bool &generateHtml = Config_getBool("GENERATE_HTML") ;
+ bool hasHtmlHelp = generateHtml && Config_getBool("GENERATE_HTMLHELP");
+ bool hasFtvHelp = generateHtml && Config_getBool("GENERATE_TREEVIEW");
+ if (hasHtmlHelp)
+ {
+ HtmlHelp::getInstance()->addContentsItem(FALSE,title,"funcidx");
+ }
+ if (hasFtvHelp)
+ {
+ FTVHelp::getInstance()->addContentsItem(FALSE,0,"funcidx",0,title);
+ }
+ ol.popGeneratorState();
+ }
+
+ #endif //RSA_EXTENSIONS
\ No newline at end of file
Index: src/index.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/index.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/index.h 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/index.h 27 Feb 2002 20:00:25 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 66,72 ****
void writeGraphicalClassHierarchy(OutputList &ol);
void writeGraphInfo(OutputList &ol);
void writePackageIndex(OutputList &ol);
!
void countDataStructures();
extern int annotatedClasses;
--- 66,75 ----
void writeGraphicalClassHierarchy(OutputList &ol);
void writeGraphInfo(OutputList &ol);
void writePackageIndex(OutputList &ol);
! #ifdef RSA_EXTENSIONS
! void writeAnnotatedFunctionList(OutputList &ol);
! void writeAlphabeticalFunctionIndex(OutputList &ol);
! #endif //RSA_EXTENSIONS
void countDataStructures();
extern int annotatedClasses;
Index: src/instdox.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/instdox.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/instdox.cpp 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/instdox.cpp 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/instdox.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/instdox.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/instdox.h 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/instdox.h 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/language.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/language.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/language.h 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/language.h 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/latexgen.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/latexgen.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/latexgen.cpp 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/latexgen.cpp 7 Feb 2002 23:29:22 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/latexgen.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/latexgen.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/latexgen.h 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/latexgen.h 7 Feb 2002 23:29:22 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/libdoxycfg.pro.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/libdoxycfg.pro.in,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/libdoxycfg.pro.in 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/libdoxycfg.pro.in 7 Feb 2002 23:29:22 -0000 1.5
***************
*** 1,5 ****
#
! #
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
--- 1,5 ----
#
! # $Id$
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
***************
*** 18,23 ****
--- 18,25 ----
CONFIG = console warn_on staticlib $extraopts
HEADERS = config.h
SOURCES = config.cpp
+ TMAKE_CFLAGS += -DRSA_EXTENSIONS
+ TMAKE_CXXFLAGS += -DRSA_EXTENSIONS
win32:TMAKE_CXXFLAGS += -DQT_NODLL
INCLUDEPATH += ../qtools
win32:INCLUDEPATH += .
Index: src/libdoxycfg.t
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/libdoxycfg.t,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/libdoxycfg.t 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/libdoxycfg.t 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,5 ****
#
! #
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
--- 1,5 ----
#
! # $Id$
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
Index: src/libdoxygen.pro.in
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/libdoxygen.pro.in,v
retrieving revision 1.1.1.8
retrieving revision 1.7
diff -b -c -b -c -r1.1.1.8 -r1.7
*** src/libdoxygen.pro.in 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/libdoxygen.pro.in 7 Feb 2002 23:29:22 -0000 1.7
***************
*** 1,5 ****
#
! #
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
--- 1,5 ----
#
! # $Id$
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
***************
*** 148,153 ****
--- 148,155 ----
version.cpp \
xmlgen.cpp
+ TMAKE_CFLAGS += -DRSA_EXTENSIONS
+ TMAKE_CXXFLAGS += -DRSA_EXTENSIONS
win32:TMAKE_CXXFLAGS += -DQT_NODLL
win32-msvc:TMAKE_CXXFLAGS += -Zm200
INCLUDEPATH += ../qtools
Index: src/libdoxygen.t
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/libdoxygen.t,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/libdoxygen.t 7 Feb 2002 23:10:17 -0000 1.1.1.8
--- src/libdoxygen.t 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,5 ****
#
- #
#
# Copyright (C) 1997-2002 by Dimitri van Heesch.
#
--- 1,4 ----
Index: src/logos.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/logos.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/logos.cpp 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/logos.cpp 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/logos.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/logos.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/logos.h 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/logos.h 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/main.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/main.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/main.cpp 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/main.cpp 7 Feb 2002 23:29:22 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/mangen.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/mangen.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/mangen.cpp 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/mangen.cpp 7 Feb 2002 23:29:22 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/mangen.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/mangen.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/mangen.h 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/mangen.h 7 Feb 2002 23:29:26 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/memberdef.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/memberdef.cpp,v
retrieving revision 1.1.1.7
retrieving revision 1.14
diff -b -c -b -c -r1.1.1.7 -r1.14
*** src/memberdef.cpp 7 Feb 2002 23:10:18 -0000 1.1.1.7
--- src/memberdef.cpp 8 Mar 2002 03:46:53 -0000 1.14
***************
*** 84,90 ****
ol.startParameterList();
ol.enableAll();
ol.disable(OutputGenerator::Html);
! ol.docify("("); // start argument list
ol.endMemberDocName();
ol.popGeneratorState();
//printf("===> name=%s isDefine=%d\n",md->name().data(),md->isDefine());
--- 84,94 ----
ol.startParameterList();
ol.enableAll();
ol.disable(OutputGenerator::Html);
! #ifdef RSA_EXTENSIONS
! ol.docify("( ");
! #else /* !RSA_EXTENSIONS */
! ol.docify("(");
! #endif /* RSA_EXTENSIONS */
ol.endMemberDocName();
ol.popGeneratorState();
//printf("===> name=%s isDefine=%d\n",md->name().data(),md->isDefine());
***************
*** 189,195 ****
ol.pushGeneratorState();
ol.disable(OutputGenerator::Html);
//if (!first) ol.writeString(" ");
! ol.docify(")"); // end argument list
ol.enableAll();
ol.disableAllBut(OutputGenerator::Html);
if (!md->isDefine())
--- 193,203 ----
ol.pushGeneratorState();
ol.disable(OutputGenerator::Html);
//if (!first) ol.writeString(" ");
! #ifdef RSA_EXTENSIONS
! ol.docify(") ");
! #else /* !RSA_EXTENSIONS */
! ol.docify(")");
! #endif /* RSA_EXTENSIONS */
ol.enableAll();
ol.disableAllBut(OutputGenerator::Html);
if (!md->isDefine())
***************
*** 234,239 ****
--- 242,278 ----
ol.docify("> ");
}
+ #ifdef RSA_EXTENSIONS
+ bool MemberDef::isHidden() const
+ {
+ char *ilConfVar;
+ char *elConfVar;
+
+ // determine the appropriate config variable names
+ switch (mtype)
+ {
+ case Define:
+ ilConfVar = "DEFINE_INCLUDE_PATTERNS";
+ elConfVar = "DEFINE_EXCLUDE_PATTERNS";
+ break;
+ case Function:
+ ilConfVar = "FUNCTION_INCLUDE_PATTERNS";
+ elConfVar = "FUNCTION_EXCLUDE_PATTERNS";
+ break;
+ case Typedef:
+ ilConfVar = "TYPEDEF_INCLUDE_PATTERNS";
+ elConfVar = "TYPEDEF_EXCLUDE_PATTERNS";
+ break;
+ default:
+ ilConfVar = "ENTRY_INCLUDE_PATTERNS";
+ elConfVar = "ENTRY_EXCLUDE_PATTERNS";
+ break;
+ }
+
+ return isEntryHidden(name(), ilConfVar, elConfVar, FALSE);
+ }
+ #endif // RSA_EXTENSIONS
+
//-----------------------------------------------------------------------------
/*! Creates a new member definition.
***************
*** 549,554 ****
--- 588,599 ----
*/
bool MemberDef::isBriefSectionVisible() const
{
+
+ #ifdef RSA_EXTENSIONS
+ // only include members not explicitly hidden
+ bool visibleIfNotHidden = !isHidden();
+ #endif // RSA_EXTENSIONS
+
// only include static members with file/namespace scope if
// explicitly enabled in the config file
bool visibleIfStatic = !(getClassDef()==0 &&
***************
*** 580,586 ****
--- 625,638 ----
bool visible = visibleIfStatic && visibleIfDocumented &&
visibleIfEnabled && visibleIfPrivate && !annScope;
+ #ifdef RSA_EXTENSIONS
+ visible = visible && visibleIfNotHidden;
+ #endif // RSA_EXTENSIONS
//printf("MemberDef::isBriefSectionVisible() %d\n",visible);
+
+ //printf("isBriefSectionVisible: %s - type=%d visible=%d\n",
+ // name().data(),mtype,visible);
+
return visible;
}
***************
*** 659,665 ****
--- 711,725 ----
if (!detailsVisible && !annMemb)
{
QCString doxyName=name().copy();
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == FALSE ||
+ Config_getBool("HIDE_SCOPE_NAMES") == FALSE)
+ {
+ if (!cname.isEmpty()) doxyName.prepend(cname+"::");
+ }
+ #else //!RSA_EXTENSIONS
if (!cname.isEmpty()) doxyName.prepend(cname+"::");
+ #endif // RSA_EXTENSIONS
ol.startDoxyAnchor(cfname,cname,anchor(),doxyName);
ol.addIndexItem(name(),cname);
***************
*** 692,697 ****
--- 752,772 ----
}
QCString ltype(type);
+ #ifdef RSA_EXTENSIONS
+ /* Try using the right half of the complete member definition up to the
+ member name */
+ QCString ldef = definition();
+ int namePos = name().isEmpty()? -1 : ldef.find(name());
+ if (namePos != -1)
+ {
+ ltype = ldef.left(namePos).stripWhiteSpace();
+ linkifyText(TextGeneratorOLImpl(ol),cname,name(),ltype,TRUE);
+ }
+ else
+ {
+ /* Use the original method of piecing together the member
+ type and name parts */
+ #endif //RSA_EXTENSIONS
if (mtype==Typedef) ltype.prepend("typedef ");
// strip `static' keyword from ltype
if (ltype.left(7)=="static ") ltype=ltype.right(ltype.length()-7);
***************
*** 742,747 ****
--- 817,825 ----
{
linkifyText(TextGeneratorOLImpl(ol),cname,name(),ltype,TRUE);
}
+ #ifdef RSA_EXTENSIONS
+ }
+ #endif //RSA_EXTENSIONS
bool htmlOn = ol.isEnabled(OutputGenerator::Html);
if (htmlOn && Config_getBool("HTML_ALIGN_MEMBERS") && !ltype.isEmpty())
{
***************
*** 919,925 ****
--- 997,1009 ----
//
bool inAnonymousScope = !briefDescription().isEmpty() && annUsed;
+ #ifdef RSA_EXTENSIONS
+ // also check that member is not explicitly hidden by config file
+ return ((!isHidden() && docFilter && staticFilter && privateFilter) ||
+ inAnonymousScope);
+ #else // RSA_EXTENSIONS
return ((docFilter && staticFilter && privateFilter) || inAnonymousScope);
+ #endif // RSA_EXTENSIONS
}
bool MemberDef::isDetailedSectionVisible(bool inGroup) const
***************
*** 927,932 ****
--- 1011,1021 ----
bool groupFilter = getGroupDef()==0 || inGroup;
bool visible = isDetailedSectionLinkable() && groupFilter && !isReference();
+
+ #ifdef RSA_EXTENSIONS
+ // ignore explicitly hidden members
+ visible = visible && !isHidden();
+ #endif // RSA_EXTENSIONS
//printf("MemberDef::isDetailedSectionVisible() %d\n",visible);
return visible;
}
***************
*** 960,967 ****
--- 1049,1064 ----
// get member name
QCString doxyName=name().copy();
+ #ifdef RSA_EXTENSIONS
+ if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C") == FALSE ||
+ Config_getBool("HIDE_SCOPE_NAMES") == FALSE)
+ {
+ if (scopeName) doxyName.prepend((QCString)scopeName+"::");
+ }
+ #else //!RSA_EXTENSIONS
// prepend scope if there is any. TODO: make this optional for C only docs
if (scopeName) doxyName.prepend((QCString)scopeName+"::");
+ #endif // RSA_EXTENSIONS
QCString ldef = definition();
//printf("member `%s' def=`%s'\n",name().data(),ldef.data());
***************
*** 1205,1211 ****
--- 1302,1313 ----
)
{
parseDoc(ol,m_defFileName,m_defLine,scopeName,this,brief);
+ #ifdef RSA_EXTENSIONS
+ // (Paragraph removed--space needed)
+ ol.writeString(" ");
+ #else /* !RSA_EXTENSIONS */
ol.newParagraph();
+ #endif /* RSA_EXTENSIONS */
}
/* write detailed description */
***************
*** 1515,1520 ****
--- 1617,1629 ----
}
else
{
+ #ifdef RSA_EXTENSIONS
+ // don't link to hidden members
+ if (isHidden())
+ {
+ return FALSE;
+ }
+ #endif
return !name().isEmpty() && name().at(0)!='@' &&
(hasDocumentation() && !isReference()) &&
(prot!=Private || Config_getBool("EXTRACT_PRIVATE") ||
Index: src/memberdef.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/memberdef.h,v
retrieving revision 1.1.1.6
retrieving revision 1.3
diff -b -c -b -c -r1.1.1.6 -r1.3
*** src/memberdef.h 7 Feb 2002 23:10:18 -0000 1.1.1.6
--- src/memberdef.h 7 Feb 2002 23:29:26 -0000 1.3
***************
*** 318,323 ****
--- 318,327 ----
// disable copying of member defs
MemberDef(const MemberDef &);
MemberDef &operator=(const MemberDef &);
+
+ #ifdef RSA_EXTENSIONS
+ bool isHidden() const;
+ #endif
};
#endif
Index: src/membergroup.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/membergroup.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/membergroup.cpp 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/membergroup.cpp 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/membergroup.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/membergroup.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/membergroup.h 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/membergroup.h 7 Feb 2002 23:29:26 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/memberlist.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/memberlist.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/memberlist.cpp 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/memberlist.cpp 7 Feb 2002 23:29:26 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/memberlist.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/memberlist.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/memberlist.h 7 Feb 2002 23:10:18 -0000 1.1.1.8
--- src/memberlist.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/membername.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/membername.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/membername.cpp 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/membername.cpp 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/membername.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/membername.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/membername.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/membername.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/message.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/message.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/message.cpp 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/message.cpp 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/message.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/message.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/message.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/message.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/namespacedef.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/namespacedef.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/namespacedef.cpp 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/namespacedef.cpp 7 Feb 2002 23:29:26 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/namespacedef.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/namespacedef.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/namespacedef.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/namespacedef.h 7 Feb 2002 23:29:26 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/outputgen.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/outputgen.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/outputgen.cpp 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/outputgen.cpp 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/outputgen.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/outputgen.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/outputgen.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/outputgen.h 7 Feb 2002 23:29:26 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/outputlist.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/outputlist.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/outputlist.cpp 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/outputlist.cpp 7 Feb 2002 23:29:26 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/outputlist.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/outputlist.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/outputlist.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/outputlist.h 7 Feb 2002 23:29:26 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/packagedef.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/packagedef.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/packagedef.cpp 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/packagedef.cpp 7 Feb 2002 23:29:26 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/packagedef.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/packagedef.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/packagedef.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/packagedef.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/page.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/page.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/page.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/page.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/pre.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/pre.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/pre.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/pre.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/qtbc.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/qtbc.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/qtbc.h 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/qtbc.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/reflist.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/reflist.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/reflist.cpp 7 Feb 2002 23:10:19 -0000 1.1.1.8
--- src/reflist.cpp 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/reflist.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/reflist.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/reflist.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/reflist.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/rtfgen.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/rtfgen.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/rtfgen.cpp 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/rtfgen.cpp 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
*
Index: src/rtfgen.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/rtfgen.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/rtfgen.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/rtfgen.h 7 Feb 2002 23:29:26 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Parker Waechter & Dimitri van Heesch.
*
Index: src/scanner.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/scanner.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/scanner.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/scanner.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/scanner.l
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/scanner.l,v
retrieving revision 1.1.1.8
retrieving revision 1.7
diff -b -c -b -c -r1.1.1.8 -r1.7
*** src/scanner.l 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/scanner.l 5 Mar 2002 01:22:26 -0000 1.7
***************
*** 154,159 ****
--- 154,162 ----
static QCString memberGroupRelates;
static QCString memberGroupInside;
+ #ifdef RSA_EXTENSIONS
+ static int lastInvariantDocContext;
+ #endif
//-----------------------------------------------------------------------------
***************
*** 587,592 ****
--- 590,600 ----
%x PackageName
%x GetCallType
+ /* #ifdef RSA_EXTENSIONS */
+ %x DocInvariant
+ %x DocInvariantLine
+ /* #endif */
+
%%
<*>\x06[^\x06]*\x06 { // new file
***************
*** 3997,4002 ****
--- 4005,4062 ----
current->doc+="\\internal";
}
}
+
+
+
+ <LineDoc,AfterDocLine>{CMD}("invariant"|"pre"|"post") {
+ if (!Config_getBool("INVARIANT_DOCS"))
+ {
+ lastInvariantDocContext = YY_START;
+ BEGIN( DocInvariantLine );
+ }
+ else
+ {
+ current->doc+="\\";
+ current->doc+=yytext+1;
+ }
+ }
+ <Doc,JavaDoc,ExampleDoc,PageDoc,ClassDoc,AfterDoc>{CMD}("invariant"|"pre"|"post") {
+ if (!Config_getBool("INVARIANT_DOCS"))
+ {
+ lastInvariantDocContext = YY_START;
+ BEGIN( DocInvariant );
+ }
+ else
+ {
+ current->doc+="\\";
+ current->doc+=yytext+1;
+ }
+ }
+
+ <DocInvariant>{SECTIONCMD} {
+ yyless(0);
+ BEGIN( lastInvariantDocContext );
+ }
+
+ <DocInvariant>.
+ <DocInvariant>\n { yyLineNr++; }
+ <DocInvariant>"/*"|"//"
+ <DocInvariant>"*/" {
+ unput('/');
+ unput('*');
+ BEGIN( lastInvariantDocContext );
+ }
+ <DocInvariantLine>.
+ <DocInvariantLine>\n {
+ yyLineNr++;
+ unput('\n');
+ BEGIN( lastInvariantDocContext );
+ }
+
+
+
+
+
<DocInternal>.
<DocInternal>\n { yyLineNr++; }
<DocInternal>"/*"|"//"
Index: src/searchindex.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/searchindex.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/searchindex.cpp 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/searchindex.cpp 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/searchindex.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/searchindex.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/searchindex.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/searchindex.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/section.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/section.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/section.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/section.h 7 Feb 2002 23:29:26 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/sortdict.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/sortdict.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/sortdict.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/sortdict.h 7 Feb 2002 23:29:27 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/suffixtree.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/suffixtree.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/suffixtree.cpp 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/suffixtree.cpp 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/suffixtree.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/suffixtree.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/suffixtree.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/suffixtree.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/tagreader.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/tagreader.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/tagreader.cpp 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/tagreader.cpp 7 Feb 2002 23:29:27 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/tagreader.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/tagreader.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/tagreader.h 7 Feb 2002 23:10:20 -0000 1.1.1.8
--- src/tagreader.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/translator_cn.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_cn.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/translator_cn.h 7 Feb 2002 23:10:21 -0000 1.1.1.8
--- src/translator_cn.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_en.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_en.h,v
retrieving revision 1.1.1.5
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.5 -r1.5
*** src/translator_en.h 7 Feb 2002 23:10:21 -0000 1.1.1.5
--- src/translator_en.h 28 Feb 2002 10:11:55 -0000 1.5
***************
*** 166,172 ****
--- 166,176 ----
* compounds or files (see the \\group command).
*/
virtual QCString trModules()
+ #ifdef RSA_EXTENSIONS
+ { return "Sections"; }
+ #else //!RSA_EXTENSIONS
{ return "Modules"; }
+ #endif //RSA_EXTENSIONS
/*! This is put above each page as a link to the class hierarchy */
virtual QCString trClassHierarchy()
***************
*** 187,193 ****
--- 191,201 ----
/*! This is put above each page as a link to the list of documented files */
virtual QCString trFileList()
+ #ifdef RSA_EXTENSIONS
+ { return "Header Files"; }
+ #else //RSA_EXTENSIONS
{ return "File List"; }
+ #endif //RSA_EXTENSIONS
/*! This is put above each page as a link to the list of all verbatim headers */
virtual QCString trHeaderFiles()
***************
*** 339,345 ****
--- 347,357 ----
/*! This is an introduction to the page with the list of class/file groups */
virtual QCString trModulesDescription()
+ #ifdef RSA_EXTENSIONS
+ { return "Here is a list of all sections:"; }
+ #else //!RSA_EXTENSIONS
{ return "Here is a list of all modules:"; }
+ #endif //RSA_EXTENSIONS
/*! This sentences is used in the annotated class/file lists if no brief
* description is given.
***************
*** 358,364 ****
--- 370,380 ----
* index of all groups.
*/
virtual QCString trModuleIndex()
+ #ifdef RSA_EXTENSIONS
+ { return "Reference Section Index"; }
+ #else //!RSA_EXTENSIONS
{ return "Module Index"; }
+ #endif //RSA_EXTENSIONS
/*! This is used in LaTeX as the title of the chapter with the
* class hierarchy.
***************
*** 391,397 ****
--- 407,417 ----
* the documentation of all groups.
*/
virtual QCString trModuleDocumentation()
+ #ifdef RSA_EXTENSIONS
+ { return "Reference Section Documentation"; }
+ #else //!RSA_EXTENSIONS
{ return "Module Documentation"; }
+ #endif //RSA_EXTENSIONS
/*! This is used in LaTeX as the title of the chapter containing
* the documentation of all classes, structs and unions.
Index: src/translator_fi.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_fi.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/translator_fi.h 7 Feb 2002 23:10:21 -0000 1.1.1.8
--- src/translator_fi.h 7 Feb 2002 23:29:27 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_fr.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_fr.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/translator_fr.h 7 Feb 2002 23:10:21 -0000 1.1.1.8
--- src/translator_fr.h 7 Feb 2002 23:29:27 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2001 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2001 by Dimitri van Heesch.
*
Index: src/translator_hu.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_hu.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/translator_hu.h 7 Feb 2002 23:10:22 -0000 1.1.1.8
--- src/translator_hu.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_jp.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_jp.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/translator_jp.h 7 Feb 2002 23:10:22 -0000 1.1.1.8
--- src/translator_jp.h 7 Feb 2002 23:29:27 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
! *
! *
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
--- 1,5 ----
/******************************************************************************
! * $Id$
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
***************
*** 28,33 ****
--- 27,34 ----
#ifndef TRANSLATOR_JP_H
#define TRANSLATOR_JP_H
+
+ #include "translator_adapter.h"
class TranslatorJapanese : public TranslatorAdapter_1_2_13
{
Index: src/translator_nl.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_nl.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/translator_nl.h 7 Feb 2002 23:10:22 -0000 1.1.1.8
--- src/translator_nl.h 7 Feb 2002 23:29:27 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_no.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_no.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/translator_no.h 7 Feb 2002 23:10:22 -0000 1.1.1.8
--- src/translator_no.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_pl.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_pl.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/translator_pl.h 7 Feb 2002 23:10:23 -0000 1.1.1.8
--- src/translator_pl.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_pt.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_pt.h,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
Index: src/translator_ro.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_ro.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/translator_ro.h 7 Feb 2002 23:10:23 -0000 1.1.1.8
--- src/translator_ro.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_se.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_se.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/translator_se.h 7 Feb 2002 23:10:23 -0000 1.1.1.8
--- src/translator_se.h 7 Feb 2002 23:29:27 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/translator_si.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/translator_si.h,v
retrieving revision 1.1.1.8
retrieving revision 1.5
diff -b -c -b -c -r1.1.1.8 -r1.5
*** src/translator_si.h 7 Feb 2002 23:10:23 -0000 1.1.1.8
--- src/translator_si.h 7 Feb 2002 23:29:27 -0000 1.5
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2000 by Dimitri van Heesch.
*
Index: src/util.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/util.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.15
diff -b -c -b -c -r1.1.1.8 -r1.15
*** src/util.cpp 7 Feb 2002 23:10:24 -0000 1.1.1.8
--- src/util.cpp 23 Mar 2002 00:53:22 -0000 1.15
***************
*** 1,6 ****
/*****************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/*****************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 880,890 ****
{
QCString anchor;
if (groupId==-1)
anchor.sprintf("%c%d",id,count++);
else
anchor.sprintf("%c%d_%d",id,groupId,count++);
if (cd) anchor.prepend(escapeCharsInString(cd->name(),FALSE));
! //printf("Member %s anchor %s\n",md->name().data(),anchor.data());
md->setAnchor(anchor);
}
}
--- 880,895 ----
{
QCString anchor;
if (groupId==-1)
+ #ifdef RSA_EXTENSIONS
+ // create anchor with function name
+ anchor=id+md->name();
+ #else /* !RSA_EXTENSIONS */
anchor.sprintf("%c%d",id,count++);
+ #endif /* RSA_EXTENSIONS */
else
anchor.sprintf("%c%d_%d",id,groupId,count++);
if (cd) anchor.prepend(escapeCharsInString(cd->name(),FALSE));
! //printf("Member %s anchor %s\n",md->name(),anchor.data());
md->setAnchor(anchor);
}
}
***************
*** 2812,2817 ****
--- 2817,2852 ----
result = substitute(result,"$doxygenversion",versionString);
result = substitute(result,"$projectname",Config_getString("PROJECT_NAME"));
result = substitute(result,"$projectnumber",Config_getString("PROJECT_NUMBER"));
+
+ #ifdef RSA_EXTENSIONS
+ /* added in some additional variables which can be used in the header
+ * and footer
+ */
+ result = substitute(result,"$productname",Config_getString("PRODUCT_NAME"));
+ result = substitute(result,"$producttag",Config_getString("PRODUCT_TAG"));
+ result = substitute(result,"$productpartnumber",
+ Config_getString("PRODUCT_PARTNUMBER"));
+ result = substitute(result,"$productdocversion",
+ Config_getString("PRODUCT_DOCVERSION"));
+
+ /* to enable 'generic' header and footers with per-docset custom style
+ * sheets we need to be able to change the name of the style sheet in
+ * the header file
+ */
+ if (Config_getString("HTML_STYLESHEET").isEmpty())
+ result = substitute(result,"$stylesheet","doxygen.css");
+ else
+ result = substitute(result,"$stylesheet",
+ Config_getString("HTML_STYLESHEET"));
+
+ result = substitute(result,"$productlogo",
+ Config_getString("PRODUCT_LOGO"));
+
+ result = substitute(result,"$productcopyright",
+ Config_getString("PRODUCT_COPYRIGHT"));
+
+ #endif /* RSA_EXTENSIONS */
+
return result;
}
***************
*** 3621,3624 ****
--- 3656,3695 ----
}
}
+ #ifdef RSA_EXTENSIONS
+ bool isEntryHidden(const char *entryName, const char *ilConfVar,
+ const char *elConfVar, bool isFile)
+ {
+ QStrList &il = Config_getList(ilConfVar);
+ QStrList &el = Config_getList(elConfVar);
+ bool isCaseSensitive = TRUE;
+
+ #if defined(_WIN32) // windows
+ if (isFile)
+ {
+ isCaseSensitive = FALSE;
+ }
+ #endif
+
+ /* Scan a list of patterns for entries to be included. */
+ char *s = il.first();
+ bool isHidden = TRUE;
+ while (s && isHidden)
+ {
+ QRegExp re(s, isCaseSensitive, TRUE);
+ isHidden = (re.match(entryName) == -1);
+ s = il.next();
+ }
+ /* Scan a list of patterns for entries to be excluded. */
+ s = el.first();
+ while (s && !isHidden)
+ {
+ QRegExp re(s, isCaseSensitive, TRUE);
+ isHidden = (re.match(entryName) != -1);
+ s = el.next();
+ }
+
+ return isHidden;
+ }
+ #endif
Index: src/util.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/util.h,v
retrieving revision 1.1.1.8
retrieving revision 1.7
diff -b -c -b -c -r1.1.1.8 -r1.7
*** src/util.h 7 Feb 2002 23:10:24 -0000 1.1.1.8
--- src/util.h 7 Feb 2002 23:29:27 -0000 1.7
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
***************
*** 176,181 ****
--- 176,187 ----
TagInfo *tagInfo=0
);
QCString escapeCharsInString(const char *name,bool allowDots);
+
+ #ifdef RSA_EXTENSIONS
+ bool isEntryHidden(const char *entryName, const char *ilConfVar,
+ const char *elConfVar, bool isFile);
+ #endif
+
#endif
Index: src/version.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/version.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/version.h 7 Feb 2002 23:10:24 -0000 1.1.1.8
--- src/version.h 7 Feb 2002 23:29:27 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
Index: src/xmlgen.cpp
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/xmlgen.cpp,v
retrieving revision 1.1.1.8
retrieving revision 1.6
diff -b -c -b -c -r1.1.1.8 -r1.6
*** src/xmlgen.cpp 7 Feb 2002 23:10:24 -0000 1.1.1.8
--- src/xmlgen.cpp 7 Feb 2002 23:29:28 -0000 1.6
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
Index: src/xmlgen.h
===================================================================
RCS file: /usr/local/cvs/tools/doxygen/src/xmlgen.h,v
retrieving revision 1.1.1.8
retrieving revision 1.4
diff -b -c -b -c -r1.1.1.8 -r1.4
*** src/xmlgen.h 7 Feb 2002 23:10:24 -0000 1.1.1.8
--- src/xmlgen.h 7 Feb 2002 23:29:28 -0000 1.4
***************
*** 1,6 ****
/******************************************************************************
*
! *
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*
--- 1,6 ----
/******************************************************************************
*
! * $Id$
*
* Copyright (C) 1997-2002 by Dimitri van Heesch.
*