Commit b57d9203 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.4.5-20051127

parent 188f7573
DOXYGEN Version 1.4.5-20051109 DOXYGEN Version 1.4.5-20051127
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (09 November 2005) Dimitri van Heesch (27 November 2005)
...@@ -105,5 +105,39 @@ src/version.cpp: Makefile ...@@ -105,5 +105,39 @@ src/version.cpp: Makefile
addon/doxywizard/version.cpp: Makefile addon/doxywizard/version.cpp: Makefile
echo "char versionString[]=\"$(VERSION)\";" > addon/doxywizard/version.cpp echo "char versionString[]=\"$(VERSION)\";" > addon/doxywizard/version.cpp
DISTDIR = doxygen-`echo $(VERSION) | tr - _`
rpm: dist
gzip -df $(DISTDIR).src.tar.gz
mkdir $(DISTDIR)
mkdir $(DISTDIR)/packages
mkdir $(DISTDIR)/packages/rpm
cp packages/rpm/doxygen.spec $(DISTDIR)/packages/rpm
tar -rvf $(DISTDIR).src.tar $(DISTDIR)/packages/rpm/doxygen.spec
rm -rf $(DISTDIR)
gzip -9v $(DISTDIR).src.tar
rpmbuild -ta $(DISTDIR).src.tar.gz
rpmsrc: dist
gzip -df $(DISTDIR).src.tar.gz
mkdir $(DISTDIR)
mkdir $(DISTDIR)/packages
mkdir $(DISTDIR)/packages/rpm
cp packages/rpm/doxygen.spec $(DISTDIR)/packages/rpm
tar -rvf $(DISTDIR).src.tar $(DISTDIR)/packages/rpm/doxygen.spec
rm -rf $(DISTDIR)
gzip -9v $(DISTDIR).src.tar
rpmbuild -ts $(DISTDIR).src.tar.gz
rpmbinary: dist
gzip -df $(DISTDIR).src.tar.gz
mkdir $(DISTDIR)
mkdir $(DISTDIR)/packages
mkdir $(DISTDIR)/packages/rpm
cp packages/rpm/doxygen.spec $(DISTDIR)/packages/rpm
tar -rvf $(DISTDIR).src.tar $(DISTDIR)/packages/rpm/doxygen.spec
rm -rf $(DISTDIR)
gzip -9v $(DISTDIR).src.tar
rpmbuild -tb $(DISTDIR).src.tar.gz
FORCE: FORCE:
DOXYGEN Version 1.4.5_20051109 DOXYGEN Version 1.4.5_20051127
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (09 November 2005) Dimitri van Heesch (dimitri@stack.nl) (27 November 2005)
...@@ -15,6 +15,13 @@ ...@@ -15,6 +15,13 @@
# #
# shell script to configure doxygen # shell script to configure doxygen
doxygen_version_major=1
doxygen_version_minor=4
doxygen_version_revision=5
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=20051127
bin_dirs=`echo $PATH | sed -e "s/:/ /g"` bin_dirs=`echo $PATH | sed -e "s/:/ /g"`
f_debug=NO f_debug=NO
...@@ -397,6 +404,17 @@ echo "using $f_perl"; ...@@ -397,6 +404,17 @@ echo "using $f_perl";
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
#
# Make VERSION file
#
echo " Creating VERSION file."
# Output should be something like 1.4.5-20051010
if test "$doxygen_version_mmn" = NO; then
echo "$doxygen_version_major.$doxygen_version_minor.$doxygen_version_revision" > VERSION
else
echo "$doxygen_version_major.$doxygen_version_minor.$doxygen_version_revision-$doxygen_version_mmn" > VERSION
fi
test -f .makeconfig && rm .makeconfig test -f .makeconfig && rm .makeconfig
test -f .tmakeconfig && rm .tmakeconfig test -f .tmakeconfig && rm .tmakeconfig
...@@ -434,6 +452,33 @@ EOF ...@@ -434,6 +452,33 @@ EOF
fi fi
# Make doxygen.spec...
#
echo " Created doxygen.spec file, for rpm generation."
echo "%define version $doxygen_version_major.$doxygen_version_minor.$doxygen_version_revision" > spec.tmp
if test "$doxygen_version_mmn" = NO; then
echo "%define revision 1" >> spec.tmp
echo "%define mmn 1" >> spec.tmp
else
echo "%define revision $doxygen_version_mmn" >> spec.tmp
echo "%define mmn $doxygen_version_mmn" >> spec.tmp
fi
mkdir -p packages
mkdir -p packages/rpm
if test "$f_wizard" = YES; then
cat spec.tmp ./packages/rpm/doxygen.spec.in > ./packages/rpm/doxygen.spec
else
cat spec.tmp ./packages/rpm/doxygen-nodoxywizard.spec.in > ./packages/rpm/doxygen.spec
fi
rm -f spec.tmp
# make .tmakeconfig
#
touch .tmakeconfig touch .tmakeconfig
if test "$f_shared" = NO; then if test "$f_shared" = NO; then
if test "$f_platform" = "osf1-cxx" -o "$f_platform" = "irix-n32"; then if test "$f_platform" = "osf1-cxx" -o "$f_platform" = "irix-n32"; then
......
...@@ -173,7 +173,7 @@ Compilation is now done by performing the following steps: ...@@ -173,7 +173,7 @@ Compilation is now done by performing the following steps:
Use <code>make install_docs</code> to install the Use <code>make install_docs</code> to install the
documentation and examples into <code>\<docdir\>/doxygen</code>. documentation and examples into <code>\<docdir\>/doxygen</code>.
<code>\<prefix\></code> defaults to <code>/usr</code> but can be changed with <code>\<prefix\></code> defaults to <code>/usr/local</code> but can be changed with
the <code>--prefix</code> option of the configure script. the <code>--prefix</code> option of the configure script.
The default <code>\<docdir\></code> directory is The default <code>\<docdir\></code> directory is
<code>\<prefix\>/share/doc/packages</code> and can be changed with <code>\<prefix\>/share/doc/packages</code> and can be changed with
......
#!/bin/bash
set -e
[ $(whoami) == "root" ] || {
echo "Don't I need to be root to make RPM packages ?"
}
RPMBUILDPLACE=/usr/src/RPM/
cp doxygen.spec $RPMBUILDPLACE/SPECS
ls *.patch && {
cp *.patch $RPMBUILDPLACE/SOURCES
}
cp ../../../doxygen*.gz $RPMBUILDPLACE/SOURCES
urpmi --auto rpm-build libqt3-devel flex tetex-latex dvips
rpm -ba SPECS/doxygen.spec
%define name doxygen
%define contentdir /var/www
%define suexec_caller doxygen
%define buildroot /var/tmp/%{name}-%{version}-%{revision}root
Summary: A documentation system for C/C++.
Name: doxygen
Version: %{version}
Release: %{revision}
URL: http://www.stack.nl/~dimitri/doxygen/index.html
Vendor: Dimitri van Heesch
License: GNU General Public License
Group: Development/Tools
Source: %{name}-%{version}_%{revision}.src.tar.gz
BuildRoot: %{buildroot}
BuildPrereq: libstdc++-devel >= 2.96, /usr/bin/perl, /usr/bin/latex, /usr/bin/dvips
Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96
Provides: doxygen = %{mmn}
#Obsoletes: doxygen-20050927
%description
Doxygen can generate an online class browser (in HTML) and/or a
reference manual (in LaTeX) from a set of documented source files. The
documentation is extracted directly from the sources. Doxygen can
also be configured to extract the code structure from undocumented
source files.
%package manual
Group: Documentation
Summary: Documentation for doxygen.
Provides: doxygenmanual = %{mmn}
#Obsoletes:
%description manual
This contains the manpages for doxygen. The information can also be
found at http://www.doxygen.org/.
%prep
%setup -q -n %{name}-%{version}_%{revision}
./configure --prefix $RPM_BUILD_ROOT/usr
%build
make %{?_smp_mflags}
make pdf %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install
mkdir -p $RPM_BUILD_ROOT/usr/share/doxygen
cp -f ./latex/*.pdf $RPM_BUILD_ROOT/usr/share/doxygen
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc README LICENSE LANGUAGE.HOWTO examples
%{_bindir}/doxygen
%{_bindir}/doxytag
%files manual
%defattr(-,root,root)
/usr/share/doxygen/*.pdf
%doc /usr/man/man1/doxy*
%changelog
* Fri Oct 21 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.5
- made .spec file compatible with tmake
* Mon Oct 10 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.5
- fixed versioning bugs.
* Tue Oct 4 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.5
- added obsoletes and proides sections.
* Sun Sep 20 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.4
- modified rpm spec file for Fedora Core acceptance criteria.
* Sun Aug 7 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.4
- created initial rpm spec file for doxygen-1.4.4
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.4.2
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
Group: Development/Tools
License: GPL
Url: http://www.stack.nl/~dimitri/doxygen/index.html
Prefix: %{_prefix}
BuildPrereq: libstdc++-devel >= 2.96, /usr/bin/perl, /usr/bin/latex, /usr/bin/dvips
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
Doxygen can generate an online class browser (in HTML) and/or a
reference manual (in LaTeX) from a set of documented source files. The
documentation is extracted directly from the sources. Doxygen can
also be configured to extract the code structure from undocumented
source files.
%package doxywizard
Summary: A GUI for creating and editing configuration files.
Group: User Interface/X
Requires: %{name} = %{version}
BuildPrereq: qt3-devel => 2.3.0, flex
Requires: qt >= 2.3.0
%description doxywizard
Doxywizard is a GUI for creating and editing configuration files that
are used by doxygen.
%prep
%setup -q
%build
QTDIR="" && . /etc/profile.d/qt*.sh
export OLD_PO_FILE_INPUT=yes
./configure --prefix %{_prefix} --shared --release --with-doxywizard
make all docs
%install
rm -rf ${RPM_BUILD_ROOT}
export OLD_PO_FILE_INPUT=yes
make install INSTALL=$RPM_BUILD_ROOT%{_prefix}
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(-,root,root)
%doc LANGUAGE.HOWTO README examples html
%{_bindir}/doxygen
%{_bindir}/doxytag
%doc /usr/man/man1/*
%files doxywizard
%defattr(-,root,root)
%{_bindir}/doxywizard
%changelog
* Sun Jan 06 2002 Than Ngo <than@redhat.com> 1.2.13.1-1
- update to 1.2.13.1
* Sun Dec 30 2001 Jeff Johnson <jbj@redhat.com> 1.2.13-1
- update to 1.2.13
* Sun Nov 18 2001 Than Ngo <than@redhat.com> 1.2.12-1
- update to 1.2.12
- s/Copyright/License
* Wed Sep 12 2001 Tim Powers <timp@redhat.com>
- rebuild with new gcc and binutils
* Wed Jun 13 2001 Than Ngo <than@redhat.com>
- update tp 1.2.8.1
- make doxywizard as separat package
- fix to use install as default
* Tue Jun 05 2001 Than Ngo <than@redhat.com>
- update to 1.2.8
* Tue May 01 2001 Than Ngo <than@redhat.com>
- update to 1.2.7
- clean up specfile
- patch to use RPM_OPT_FLAG
* Wed Mar 14 2001 Jeff Johnson <jbj@redhat.com>
- update to 1.2.6
* Wed Feb 28 2001 Trond Eivind Glomsrd <teg@redhat.com>
- rebuild
* Tue Dec 26 2000 Than Ngo <than@redhat.com>
- update to 1.2.4
- remove excludearch ia64
- bzip2 sources
* Mon Dec 11 2000 Than Ngo <than@redhat.com>
- rebuild with the fixed fileutils
* Mon Oct 30 2000 Jeff Johnson <jbj@redhat.com>
- update to 1.2.3.
* Sun Oct 8 2000 Jeff Johnson <jbj@redhat.com>
- update to 1.2.2.
- enable doxywizard.
* Sat Aug 19 2000 Preston Brown <pbrown@redhat.com>
- 1.2.1 is latest stable, so we upgrade before Winston is released.
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
* Tue Jul 4 2000 Jakub Jelinek <jakub@redhat.com>
- Rebuild with new C++
* Fri Jun 30 2000 Florian La Roche <laroche@redhat.de>
- fix QTDIR detection
* Fri Jun 09 2000 Preston Brown <pbrown@redhat.com>
- compile on x86 w/o optimization, revert when compiler fixed!!
* Wed Jun 07 2000 Preston Brown <pbrown@redhat.com>
- use newer RPM macros
* Tue Jun 6 2000 Jeff Johnson <jbj@redhat.com>
- add to distro.
* Tue May 9 2000 Tim Powers <timp@redhat.com>
- rebuilt for 7.0
* Wed Feb 2 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- recompile with current Qt (2.1.0/1.45)
* Wed Jan 5 2000 Jeff Johnson <jbj@redhat.com>
- update to 1.0.0.
- recompile with qt-2.0.1 if available.
- relocatable package.
* Mon Nov 8 1999 Tim Powers <timp@redhat.com>
-updated to 0.49-991106
* Tue Jul 13 1999 Tim Powers <timp@redhat.com>
- updated source
- cleaned up some stuff in the spec file
* Thu Apr 22 1999 Jeff Johnson <jbj@redhat.com>
- Create Power Tools 6.0 package.
%define name doxygen
%define contentdir /var/www
%define suexec_caller doxygen
%define buildroot /var/tmp/%{name}-%{version}-%{revision}root
Summary: A documentation system for C/C++.
Name: doxygen
Version: %{version}
Release: %{revision}
URL: http://www.stack.nl/~dimitri/doxygen/index.html
Vendor: Dimitri van Heesch
License: GNU General Public License
Group: Development/Tools
Source: %{name}-%{version}_%{revision}.src.tar.gz
BuildRoot: %{buildroot}
BuildPrereq: libstdc++-devel >= 2.96, /usr/bin/perl, /usr/bin/latex, /usr/bin/dvips
Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv, libstdc++ >= 2.96
Provides: doxygen = %{mmn}
#Obsoletes: doxygen-20050927
%description
Doxygen can generate an online class browser (in HTML) and/or a
reference manual (in LaTeX) from a set of documented source files. The
documentation is extracted directly from the sources. Doxygen can
also be configured to extract the code structure from undocumented
source files.
%package doxywizard
Group: Development/Libraries
Summary: GUI Interface for doxygen.
Requires: doxygen = %{mmn}
Requires: qt >= 3.3
Provides: doxywizard = %{mmn}
# Obsoletes:
%description doxywizard
Doxygen can generate an online class browser (in HTML) and/or a
reference manual (in LaTeX) from a set of documented source files. The
documentation is extracted directly from the sources. Doxygen can
also be configured to extract the code structure from undocumented
source files.
This is the GUI interface for doxygen. It requires qt and X11 to
install.
%package manual
Group: Documentation
Summary: Documentation for doxygen.
Provides: doxygenmanual = %{mmn}
#Obsoletes:
%description manual
This contains the manpages for doxygen. The information can also be
found at http://www.doxygen.org/.
%prep
%setup -q -n %{name}-%{version}_%{revision}
./configure --with-doxywizard --prefix $RPM_BUILD_ROOT/usr
%build
make %{?_smp_mflags}
make pdf %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install
mkdir -p $RPM_BUILD_ROOT/usr/share/doxygen
cp -f ./latex/*.pdf $RPM_BUILD_ROOT/usr/share/doxygen
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc README LICENSE LANGUAGE.HOWTO examples
%{_bindir}/doxygen
%{_bindir}/doxytag
%files doxywizard
%defattr(-,root,root)
%{_bindir}/doxywizard
%files manual
%defattr(-,root,root)
/usr/share/doxygen/*.pdf
%doc /usr/man/man1/doxy*
%changelog
* Mon Oct 10 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.5
- fixed versioning bugs.
* Tue Oct 4 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.5
- added obsoletes and proides sections.
* Sun Sep 20 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.4
- modified rpm spec file for Fedora Core acceptance criteria.
* Sun Aug 7 2005 Kevin McBride <kevin@planetsaphire.com> 1.4.4
- created initial rpm spec file for doxygen-1.4.4
...@@ -909,6 +909,10 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName, ...@@ -909,6 +909,10 @@ static void generateClassOrGlobalLink(CodeOutputInterface &ol,char *clName,
{ {
//printf("non-dummy context lcd=%s!\n",lcd->name().data()); //printf("non-dummy context lcd=%s!\n",lcd->name().data());
g_theCallContext.setClass(lcd); g_theCallContext.setClass(lcd);
if (getLink(g_classScope,clName,ol,clName))
{
return;
}
} }
isLocal=TRUE; isLocal=TRUE;
//fprintf(stderr,"is a local variable cd=%p!\n",cd); //fprintf(stderr,"is a local variable cd=%p!\n",cd);
...@@ -1014,7 +1018,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const ...@@ -1014,7 +1018,7 @@ static bool generateClassMemberLink(CodeOutputInterface &ol,ClassDef *mcd,const
} }
} }
ClassDef *typeClass = stripClassName(xmd->typeString()); ClassDef *typeClass = stripClassName(removeAnonymousScopes(xmd->typeString()));
//fprintf(stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass); //fprintf(stderr,"%s -> typeName=%p\n",xmd->typeString(),typeClass);
g_theCallContext.setClass(typeClass); g_theCallContext.setClass(typeClass);
...@@ -2055,6 +2059,13 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} ...@@ -2055,6 +2059,13 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
endFontClass(); endFontClass();
g_name.resize(0);g_type.resize(0); g_name.resize(0);g_type.resize(0);
} }
<Body>{FLOWKW}/{B}*"(" {
startFontClass("keywordflow");
codifyLines(yytext);
endFontClass();
g_name.resize(0);g_type.resize(0);
BEGIN(FuncCall);
}
<Body>{FLOWKW}/([^a-z_A-Z0-9]) { <Body>{FLOWKW}/([^a-z_A-Z0-9]) {
startFontClass("keywordflow"); startFontClass("keywordflow");
codifyLines(yytext); codifyLines(yytext);
...@@ -2069,13 +2080,6 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP} ...@@ -2069,13 +2080,6 @@ OPERATOR {ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}
codifyLines(yytext); codifyLines(yytext);
endFontClass(); endFontClass();
} }
<Body>{FLOWKW}/{B}*"(" {
startFontClass("keywordflow");
codifyLines(yytext);
endFontClass();
g_name.resize(0);g_type.resize(0);
BEGIN(FuncCall);
}
<Body>[\\|\)\+\-\/\%\~\!] { <Body>[\\|\)\+\-\/\%\~\!] {
g_code->codify(yytext); g_code->codify(yytext);
g_name.resize(0);g_type.resize(0); g_name.resize(0);g_type.resize(0);
......
...@@ -262,7 +262,7 @@ static void checkArgumentName(const QString &name,bool isParam) ...@@ -262,7 +262,7 @@ static void checkArgumentName(const QString &name,bool isParam)
static QRegExp re("[a-zA-Z0-9_]+\\.*"); static QRegExp re("[a-zA-Z0-9_]+\\.*");
int p=0,i=0,l; int p=0,i=0,l;
while ((i=re.match(name,p,&l))!=-1) while ((i=re.match(name,p,&l))!=-1) // to handle @param x,y
{ {
QString aName=name.mid(i,l); QString aName=name.mid(i,l);
//printf("aName=`%s'\n",aName.data()); //printf("aName=`%s'\n",aName.data());
......
This diff is collapsed.
...@@ -64,7 +64,6 @@ struct LookupInfo ...@@ -64,7 +64,6 @@ struct LookupInfo
QCString templSpec; QCString templSpec;
}; };
extern QCString spaces; extern QCString spaces;
/*! \brief This class serves as a namespace for global variables used by doxygen. /*! \brief This class serves as a namespace for global variables used by doxygen.
......
...@@ -1747,7 +1747,7 @@ static void writeDefaultQuickLinks(QTextStream &t,bool compact, ...@@ -1747,7 +1747,7 @@ static void writeDefaultQuickLinks(QTextStream &t,bool compact,
{ {
t << " <li>\n"; t << " <li>\n";
t << " <form action=\"search.php\" method=\"get\">\n"; t << " <form action=\"search.php\" method=\"get\">\n";
t << " <table cellspacing=\"0\" callpadding=\"0\" border=\"0\">\n"; t << " <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n";
t << " <tr>\n"; t << " <tr>\n";
t << " <td><label>&nbsp;" << searchFor << "&nbsp;</label></td>\n"; t << " <td><label>&nbsp;" << searchFor << "&nbsp;</label></td>\n";
if (hli!=HLI_Search) if (hli!=HLI_Search)
......
...@@ -446,10 +446,10 @@ void HtmlHelp::createProjectFile() ...@@ -446,10 +446,10 @@ void HtmlHelp::createProjectFile()
t << s << endl; t << s << endl;
s = indexFiles.next(); s = indexFiles.next();
} }
t << "tabs.css"; t << "tabs.css" << endl;
t << "tab_b.gif"; t << "tab_b.gif" << endl;
t << "tab_l.gif"; t << "tab_l.gif" << endl;
t << "tab_r.gif"; t << "tab_r.gif" << endl;
f.close(); f.close();
} }
else else
......
...@@ -516,7 +516,19 @@ QCString NamespaceDef::getOutputFileBase() const ...@@ -516,7 +516,19 @@ QCString NamespaceDef::getOutputFileBase() const
Definition *NamespaceDef::findInnerCompound(const char *n) Definition *NamespaceDef::findInnerCompound(const char *n)
{ {
if (n==0) return 0; if (n==0) return 0;
return m_innerCompounds->find(n); Definition *d = m_innerCompounds->find(n);
if (d==0)
{
if (usingDirList)
{
d = usingDirList->find(n);
}
if (d==0 && usingDeclList)
{
d = usingDirList->find(n);
}
}
return d;
} }
void NamespaceDef::addListReferences() void NamespaceDef::addListReferences()
......
...@@ -1389,6 +1389,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) ...@@ -1389,6 +1389,8 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
outputArray(yytext,yyleng); outputArray(yytext,yyleng);
} }
} }
<CopyLine>"\\"\r?/\n { // strip line continuation characters
}
<CopyLine>. { <CopyLine>. {
outputChar(*yytext); outputChar(*yytext);
} }
......
...@@ -82,6 +82,7 @@ static Entry* global_root = 0 ; ...@@ -82,6 +82,7 @@ static Entry* global_root = 0 ;
static Entry* current = 0 ; static Entry* current = 0 ;
static Entry* previous = 0 ; static Entry* previous = 0 ;
static Entry* tempEntry = 0 ; static Entry* tempEntry = 0 ;
static Entry* firstTypedefEntry = 0 ;
static int yyLineNr = 1 ; static int yyLineNr = 1 ;
static int anonCount = 0 ; static int anonCount = 0 ;
static QCString yyFileName; static QCString yyFileName;
...@@ -1478,7 +1479,7 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -1478,7 +1479,7 @@ IDLATTR ("["[^\]]*"]"){BN}*
<QtPropType>{B}+ { <QtPropType>{B}+ {
current->type+=yytext; current->type+=yytext;
} }
<QtPropType>{ID} { <QtPropType>({ID}"::")*{ID} {
current->type+=yytext; current->type+=yytext;
BEGIN(QtPropName); BEGIN(QtPropName);
} }
...@@ -2343,7 +2344,6 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -2343,7 +2344,6 @@ IDLATTR ("["[^\]]*"]"){BN}*
if (!cn.isEmpty() && !rn.isEmpty()) if (!cn.isEmpty() && !rn.isEmpty())
{ {
prependScope(); prependScope();
//cn.prepend(rn+"::");
} }
if (isTypedef && cn.isEmpty()) if (isTypedef && cn.isEmpty())
{ {
...@@ -2420,8 +2420,13 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -2420,8 +2420,13 @@ IDLATTR ("["[^\]]*"]"){BN}*
current->type = current->type.simplifyWhiteSpace(); current->type = current->type.simplifyWhiteSpace();
//printf("Adding compound %s %s %s\n",current->type.data(),current->name.data(),current->args.data()); //printf("Adding compound %s %s %s\n",current->type.data(),current->name.data(),current->args.data());
current_root->addSubEntry( current ) ; current_root->addSubEntry( current ) ;
if (!firstTypedefEntry)
{
firstTypedefEntry = current;
}
current = new Entry; current = new Entry;
initEntry(); initEntry();
isTypedef=TRUE; // to undo reset by initEntry()
BEGIN(MemberSpecSkip); BEGIN(MemberSpecSkip);
} }
<TypedefName>";" { /* typedef of anonymous type */ <TypedefName>";" { /* typedef of anonymous type */
...@@ -2438,7 +2443,7 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -2438,7 +2443,7 @@ IDLATTR ("["[^\]]*"]"){BN}*
unput(';'); unput(';');
BEGIN( MemberSpec ) ; BEGIN( MemberSpec ) ;
} }
<MemberSpec>([*&]*{BN}*)*{ID}("["[^\]\n]*"]")* { // the [] part could be improved. <MemberSpec>([*&]*{BN}*)*{ID}{BN}*("["[^\]\n]*"]")* { // the [] part could be improved.
lineCount(); lineCount();
int i=0,l=yyleng,j; int i=0,l=yyleng,j;
while (i<l && (!isId(yytext[i]))) i++; while (i<l && (!isId(yytext[i]))) i++;
...@@ -2451,11 +2456,31 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -2451,11 +2456,31 @@ IDLATTR ("["[^\]]*"]"){BN}*
msName=msName.left(j); msName=msName.left(j);
} }
msType = yytext; msType=msType.left(i); msType = yytext; msType=msType.left(i);
// handle *pName in: typedef { ... } name, *pName;
if (firstTypedefEntry)
{
if (firstTypedefEntry->section==Entry::STRUCT_SEC)
{
msType.prepend("struct "+firstTypedefEntry->name);
}
else if (firstTypedefEntry->section==Entry::UNION_SEC)
{
msType.prepend("union "+firstTypedefEntry->name);
}
else if (firstTypedefEntry->section==Entry::ENUM_SEC)
{
msType.prepend("enum "+firstTypedefEntry->name);
}
else
{
msType.prepend(firstTypedefEntry->name);
}
}
} }
<MemberSpec>[,;] { <MemberSpec>[,;] {
//printf("current->name=`%s' msName=`%s'\n",current->name.data(),msName.data()); //printf("current->name=`%s' msName=`%s'\n",current->name.data(),msName.data());
if (msName.isEmpty() && !current->name.isEmpty()) if (msName.isEmpty() && !current->name.isEmpty())
/* && (current->section & Entry::COMPOUND_MASK)) */
{ {
// see if the compound does not have a name or is inside another // see if the compound does not have a name or is inside another
// annonymous compound. If so we insert a // annonymous compound. If so we insert a
...@@ -2497,14 +2522,14 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -2497,14 +2522,14 @@ IDLATTR ("["[^\]]*"]"){BN}*
if (isTypedef) if (isTypedef)
{ {
varEntry->type.prepend("typedef "); varEntry->type.prepend("typedef ");
// //printf("current->name = %s %s\n",current->name.data(),msName.data()); // //printf("current->name = %s %s\n",current->name.data(),msName.data());
// if (!current->name.isEmpty() && current->name.at(0)!='@') // if (!current->name.isEmpty() && current->name.at(0)!='@')
// { // {
// //printf("2>>>>>>>>>> adding %s->%s\n",msName.data(),current->name.data()); // //printf("2>>>>>>>>>> adding %s->%s\n",msName.data(),current->name.data());
// QCString scope; // QCString scope;
// if (current_root->section & Entry::SCOPE_MASK) scope=current_root->name; // if (current_root->section & Entry::SCOPE_MASK) scope=current_root->name;
// Doxygen::typedefDict.insert(msName,new TypedefInfo(current->name,scope)); // Doxygen::typedefDict.insert(msName,new TypedefInfo(current->name,scope));
// } // }
} }
varEntry->type+=current->name+msType; varEntry->type+=current->name+msType;
varEntry->fileName = yyFileName; varEntry->fileName = yyFileName;
...@@ -2543,6 +2568,7 @@ IDLATTR ("["[^\]]*"]"){BN}* ...@@ -2543,6 +2568,7 @@ IDLATTR ("["[^\]]*"]"){BN}*
msName.resize(0); msName.resize(0);
msArgs.resize(0); msArgs.resize(0);
isTypedef=FALSE; isTypedef=FALSE;
firstTypedefEntry=0;
current->reset(); current->reset();
initEntry(); initEntry();
BEGIN( FindMembers ); BEGIN( FindMembers );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment