Commit 168b741d authored by dimitri's avatar dimitri

Release-1.2.2

parent cabe22de
DOXYGEN Version 1.2.1-20000917
DOXYGEN Version 1.2.2
Please read the installation section of the manual for instructions.
--------
Dimitri van Heesch (17 September 2000)
Dimitri van Heesch (24 September 2000)
DOXYGEN Version 1.2.1-20000917
DOXYGEN Version 1.2.2
Please read INSTALL for compilation instructions.
......@@ -7,4 +7,4 @@ The latest version of doxygen can be obtained at
Enjoy,
Dimitri van Heesch (17 September 2000)
Dimitri van Heesch (24 September 2000)
1.2.1-20000917
1.2.2
......@@ -775,7 +775,8 @@ void init()
"information to generate all constant output in the proper language. \n"
"The default language is English, other supported languages are: \n"
"Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \n"
"Korean, Hungarian, Spanish, Russian, Croatian, Polish, and Portuguese.\n"
"Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish, and \n"
"Portuguese.\n"
);
ConfigString::addFixedValue("outputLanguage","English");
ConfigString::addFixedValue("outputLanguage","Dutch");
......@@ -789,6 +790,7 @@ void init()
ConfigString::addFixedValue("outputLanguage","Japanese");
ConfigString::addFixedValue("outputLanguage","Korean");
ConfigString::addFixedValue("outputLanguage","Spanish");
ConfigString::addFixedValue("outputLanguage","Romanian");
ConfigString::addFixedValue("outputLanguage","Russian");
ConfigString::addFixedValue("outputLanguage","Croatian");
ConfigString::addFixedValue("outputLanguage","Polish");
......@@ -1035,7 +1037,6 @@ void init()
"put the command \\sideeffect (or @sideeffect) in the documentation, which \n"
"will result in a user defined paragraph with heading \"Side Effects:\". \n"
"You can put \\n's in the value part of an alias to insert newlines. \n"
"Predefined commands cannot be overwritten using aliases. \n"
);
//-----------------------------------------------------------------------------------------------
ConfigInfo::add( "Messages","configuration options related to warning and progress messages");
......
......@@ -448,7 +448,6 @@ followed by the descriptions of the tags grouped by category.
put the command \\sideeffect (or \@sideeffect) in the documentation, which
will result in a user defined paragraph with heading "Side Effects:".
You can put \\n's in the value part of an alias to insert newlines.
Predefined commands cannot be overwritten using aliases.
</dl>
......
Name: doxygen
Version: 1.2.1-20000917
Version: 1.2.2
Summary: documentation system for C, C++ and IDL
Release: 1
Source0: doxygen-%{version}.src.tar.gz
......
......@@ -616,6 +616,8 @@ void ClassDef::writeDocumentation(OutputList &ol)
ol.startTextBlock();
//printf("Class %s brief=`%s' doc=`%s'\n",name().data(),briefDescription().data(),documentation().data());
// write brief description
OutputList briefOutput(&ol);
if (!briefDescription().isEmpty())
......@@ -1421,7 +1423,7 @@ bool ClassDef::isBaseClass(ClassDef *bcd)
* superclasses!
*/
void ClassDef::mergeMembers(/*ClassDef *cd,BaseClassList *bcl*/)
void ClassDef::mergeMembers()
{
BaseClassListIterator bcli(*baseClasses());
BaseClassDef *bcd;
......@@ -1648,9 +1650,15 @@ void ClassDef::determineImplUsageRelation()
QCString templSpec;
if (te>ts) templSpec = type.mid(ts,te-ts);
// TODO: also check using Nx::Cx cases here!
ClassDef *cd=getResolvedClass(name()+"::"+type.mid(i,l));
if (cd==0) cd=getResolvedClass(type.mid(i,l)); // TODO: also try inbetween scopes!
//printf("Search for class %s result=%p\n",type.mid(i,l).data(),cd);
QCString usedClassName = type.mid(i,l);
ClassDef *cd=0;
if (getNamespaceDef()!=0)
{
cd=getResolvedClass(getNamespaceDef()->name()+"::"+usedClassName);
}
if (cd==0) cd=getResolvedClass(name()+"::"+usedClassName);
if (cd==0) cd=getResolvedClass(usedClassName); // TODO: also try inbetween scopes!
//printf("Search for class %s result=%p\n",usedClassName.data(),cd);
if (cd) // class exists
{
found=TRUE;
......
/* This file was generated by configgen on Sat Sep 2 10:51:52 2000
/* This file was generated by configgen on Sun Sep 24 18:38:07 2000
* from config_templ.h
*
* DO NOT EDIT!
......
/* This file was generated by configgen on Sat Sep 2 10:51:52 2000
/* This file was generated by configgen on Sun Sep 24 18:38:07 2000
* from config_templ.l
*
* DO NOT EDIT!
......@@ -1015,7 +1015,8 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# information to generate all constant output in the proper language. \n";
t << "# The default language is English, other supported languages are: \n";
t << "# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, \n";
t << "# Korean, Hungarian, Spanish, Russian, Croatian, Polish, and Portuguese.\n";
t << "# Korean, Hungarian, Spanish, Romanian, Russian, Croatian, Polish, and \n";
t << "# Portuguese.\n";
t << "\n";
}
t << "OUTPUT_LANGUAGE = ";
......@@ -1193,11 +1194,11 @@ void writeTemplateConfig(QFile *f,bool sl)
if (!sl)
{
t << "\n";
t << "# If the CASE_SENSE_NAMES tag is set to NO (the default) then Doxygen \n";
t << "# will only generate file names in lower case letters. If set to \n";
t << "# YES upper case letters are also allowed. This is useful if you have \n";
t << "# classes or files whose names only differ in case and if your file system \n";
t << "# supports case sensitive file names. \n";
t << "# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate \n";
t << "# file names in lower case letters. If set to YES upper case letters are also \n";
t << "# allowed. This is useful if you have classes or files whose names only differ \n";
t << "# in case and if your file system supports case sensitive file names. Windows \n";
t << "# users are adviced to set this option to NO.\n";
t << "\n";
}
t << "CASE_SENSE_NAMES = ";
......@@ -1344,7 +1345,6 @@ void writeTemplateConfig(QFile *f,bool sl)
t << "# put the command \\sideeffect (or @sideeffect) in the documentation, which \n";
t << "# will result in a user defined paragraph with heading \"Side Effects:\". \n";
t << "# You can put \\n's in the value part of an alias to insert newlines. \n";
t << "# Predefined commands cannot be overwritten using aliases. \n";
t << "\n";
}
t << "ALIASES = ";
......
......@@ -2069,24 +2069,6 @@ DOCPARAM ([a-z_A-Z0-9:\<\>\=\.\-]+)|("\"".*"\"")
outDoc->writeChar(' ');
}
}
<DocScan>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
outDoc->docify(yytext);
}
<DocScan>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
QCString *pValue=aliasDict[yytext+1];
if (pValue)
{
int i,l=pValue->length();
for (i=l-1;i>=0;i--)
{
unput(pValue->at(i));
}
}
else
{
warn(yyFileName,yyLineNr,"Warning in the documentation of this entity:\nUnknown command `%s' found.",yytext);
}
}
<DocCode,DocEmphasis,DocBold,DocScan,Text>[a-z_A-Z0-9]+ {
outDoc->docify(yytext);
}
......
......@@ -5737,7 +5737,29 @@ int main(int argc,char **argv)
{
QCString name=alias.left(i).stripWhiteSpace();
QCString value=alias.right(alias.length()-i-1);
value=substitute(value,"\\n","\n");
QCString newValue;
int in,p=0;
// for each \n in the alias command value
while ((in=value.find("\\n",p))!=-1)
{
newValue+=value.mid(p,in-p);
// expand \n's except if \n is part of a built-in command.
if (value.mid(in,5)!="\\note" &&
value.mid(in,5)!="\\name" &&
value.mid(in,10)!="\\namespace" &&
value.mid(in,14)!="\\nosubgrouping"
)
{
newValue+="\n";
}
else
{
newValue+="\\n";
}
p=in+2;
}
newValue+=value.mid(p,value.length()-p);
value=newValue;
//printf("Alias: found name=`%s' value=`%s'\n",name.data(),value.data());
if (!name.isEmpty())
{
......
......@@ -26,7 +26,8 @@ HEADERS = doxygen.h scanner.h doc.h classdef.h classlist.h memberdef.h \
translator_nl.h translator_se.h translator_cz.h translator_fr.h \
translator_it.h formula.h debug.h membergroup.h htmlhelp.h \
translator_ru.h translator_pl.h dot.h rtfgen.h xml.h xml_dtd.h \
reflist.h page.h sortdict.h translator_hu.h translator_kr.h
reflist.h page.h sortdict.h translator_hu.h translator_kr.h \
translator_ro.h
SOURCES = doxygen.cpp scanner.cpp doc.cpp classdef.cpp classlist.cpp \
memberdef.cpp membername.cpp index.cpp memberlist.cpp \
entry.cpp logos.cpp instdox.cpp message.cpp code.cpp \
......
......@@ -1673,9 +1673,10 @@ void writeIndex(OutputList &ol)
{
projPrefix=Config::projectName+" ";
}
//--------------------------------------------------------------------
// write HTML index
//ol.disable(OutputGenerator::Man);
//ol.disable(OutputGenerator::Latex);
//--------------------------------------------------------------------
ol.disableAllBut(OutputGenerator::Html);
QCString defFileName =
......@@ -1690,7 +1691,7 @@ void writeIndex(OutputList &ol)
}
else
{
title = mainPage->title;
title = substitute(mainPage->title,"%","");
}
ol.startFile("index",title,FALSE);
......@@ -1727,7 +1728,9 @@ void writeIndex(OutputList &ol)
endFile(ol);
ol.disable(OutputGenerator::Html);
//--------------------------------------------------------------------
// write LaTeX/RTF index
//--------------------------------------------------------------------
ol.enable(OutputGenerator::Latex);
ol.enable(OutputGenerator::RTF);
......@@ -1844,14 +1847,14 @@ void writeIndex(OutputList &ol)
{
ol.disable(OutputGenerator::Man);
startFile(ol,mainPage->name,mainPage->title);
SectionInfo *si=0;
if (!mainPage->title.isEmpty() && !mainPage->name.isEmpty() &&
(si=sectionDict[mainPage->name])!=0)
{
ol.startSection(si->label,si->title,FALSE);
ol.docify(si->title);
ol.endSection(si->label,FALSE);
}
//SectionInfo *si=0;
//if (!mainPage->title.isEmpty() && !mainPage->name.isEmpty() &&
// (si=sectionDict[mainPage->name])!=0)
//{
// ol.startSection(si->label,si->title,FALSE);
// ol.docify(si->title);
// ol.endSection(si->label,FALSE);
//}
ol.startTextBlock();
parseDoc(ol,defFileName,defLine,0,0,mainPage->doc);
ol.endTextBlock();
......
......@@ -33,6 +33,7 @@
#include "translator_pt.h"
#include "translator_hu.h"
#include "translator_kr.h"
#include "translator_ro.h"
#endif
#define L_EQUAL(a) !stricmp(langName,a)
......@@ -110,6 +111,10 @@ bool setTranslator(const char *langName)
{
theTranslator=new TranslatorKorean;
}
else if (L_EQUAL("romanian"))
{
theTranslator=new TranslatorRomanian;
}
#endif
else // use the default language (i.e. english)
{
......
......@@ -139,6 +139,7 @@ static char lastCopyArgChar;
static QCString *pCopyRoundString;
static QCString *pCopyCurlyString;
static QCString *pCopyQuotedString;
static QCString *pSkipDoc;
static bool insideFormula;
......@@ -2837,28 +2838,56 @@ TITLE [tT][iI][tT][lL][eE]
sectionType=SectionInfo::Anchor;
BEGIN(AnchorLabel);
}
<Doc,PageDoc,JavaDoc,ClassDoc>("\\\\"|"@@")"verbatim"/[^a-z_A-Z0-9] {
<Doc,PageDoc,ClassDoc>("\\\\"|"@@")"verbatim"/[^a-z_A-Z0-9] {
current->doc+="\\\\verbatim";
}
<Doc,PageDoc,JavaDoc,ClassDoc>{CMD}"verbatim"/[^a-z_A-Z0-9] {
<Doc,PageDoc,ClassDoc>{CMD}"verbatim"/[^a-z_A-Z0-9] {
lastVerbState=YY_START;
current->doc+="\\verbatim";
BEGIN(SkipVerbatim);
}
<Doc,PageDoc,JavaDoc,ClassDoc>{CMD}"addindex"{B}+[^\n]+ {
<Doc,PageDoc,ClassDoc>{CMD}"addindex"{B}+[^\n]+ {
current->doc+=yytext;
}
<Doc,PageDoc,JavaDoc,ClassDoc>("\\\\"|"@@")"code"/[^a-z_A-Z0-9] {
<Doc,PageDoc,ClassDoc>("\\\\"|"@@")"code"/[^a-z_A-Z0-9] {
current->doc+="\\\\code";
}
<Doc,PageDoc,JavaDoc,ClassDoc>{CMD}"code"/[^a-z_A-Z0-9] {
<Doc,PageDoc,ClassDoc>{CMD}"code"/[^a-z_A-Z0-9] {
lastCodeState=YY_START;
current->doc+="\\code";
pSkipDoc=&current->doc;
BEGIN(SkipCode);
}
<Doc,PageDoc,JavaDoc,ClassDoc>"<"{PRE}{ATTR}">" {
<Doc,PageDoc,ClassDoc>"<"{PRE}{ATTR}">" {
lastCodeState=YY_START;
current->doc+="<PRE>";
pSkipDoc=&current->doc;
BEGIN(SkipCode);
}
<JavaDoc>"<"{PRE}{ATTR}">" {
lastCodeState=YY_START;
current->brief+="<PRE>";
pSkipDoc=&current->brief;
BEGIN(SkipCode);
}
<JavaDoc>("\\\\"|"@@")"verbatim"/[^a-z_A-Z0-9] {
current->brief+="\\\\verbatim";
}
<JavaDoc>{CMD}"verbatim"/[^a-z_A-Z0-9] {
lastVerbState=YY_START;
current->brief+="\\verbatim";
BEGIN(SkipVerbatim);
}
<JavaDoc>{CMD}"addindex"{B}+[^\n]+ {
current->brief+=yytext;
}
<JavaDoc>("\\\\"|"@@")"code"/[^a-z_A-Z0-9] {
current->brief+="\\\\code";
}
<JavaDoc>{CMD}"code"/[^a-z_A-Z0-9] {
lastCodeState=YY_START;
current->brief+="\\code";
pSkipDoc=&current->brief;
BEGIN(SkipCode);
}
<SkipVerbatim>{CMD}"endverbatim"/[^a-z_A-Z0-9] {
......@@ -2890,30 +2919,30 @@ TITLE [tT][iI][tT][lL][eE]
current->doc+=*yytext;
}
<SkipCode>{CMD}"endcode" {
current->doc+="\\endcode";
*pSkipDoc+="\\endcode";
BEGIN(lastCodeState);
}
<SkipCode>"</"{PRE}{ATTR}">" {
current->doc+="</PRE>";
*pSkipDoc+="</PRE>";
BEGIN(lastCodeState);
}
<SkipCode>^"//"({B}*"*"+)? {
if (!removeSlashes)
current->doc+=yytext;
*pSkipDoc+=yytext;
}
<SkipCode>^{B}*"*"+
<SkipCode>"//" {
current->doc+=yytext;
*pSkipDoc+=yytext;
}
<SkipCode>[^ \<\*\t\/\\\n]+ {
current->doc+=yytext;
*pSkipDoc+=yytext;
}
<SkipCode>\n {
yyLineNr++;
current->doc+=*yytext;
*pSkipDoc+=*yytext;
}
<SkipCode>. {
current->doc+=*yytext;
*pSkipDoc+=*yytext;
}
<AnchorLabel>{ID} {
sectionLabel=yytext;
......@@ -3004,7 +3033,7 @@ TITLE [tT][iI][tT][lL][eE]
{
err("Error: comment block ended inside \\code ... \\endcode block at line %d in %s!\n",
yyLineNr,yyFileName);
current->doc += "\\endcode\n\n";
*pSkipDoc += "\\endcode\n\n";
BEGIN( lastDocContext );
}
else if (YY_START==ClassDocBrief &&
......@@ -3340,6 +3369,43 @@ TITLE [tT][iI][tT][lL][eE]
<Doc,JavaDoc,ClassDoc,PageDoc,ExampleDoc,ReadFormulaShort,ReadFormulaLong,ClassDocBrief,AfterDoc,AfterDocBrief>^{B}*(("//"{B}*)?)"*"+{B}+ {
current->doc+=' ';
}
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
current->doc+=yytext;
}
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
QCString *pValue=aliasDict[yytext+1];
if (pValue)
{
int i,l=pValue->length();
for (i=l-1;i>=0;i--)
{
unput(pValue->at(i));
}
}
else
{
current->doc+=yytext;
}
}
<JavaDoc,LineDoc,ClassDocBrief,AfterDocBrief,AfterDocLine>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
current->brief+=yytext;
}
<JavaDoc,LineDoc,ClassDocBrief,AfterDocBrief,AfterDocLine>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
QCString *pValue=aliasDict[yytext+1];
if (pValue)
{
int i,l=pValue->length();
for (i=l-1;i>=0;i--)
{
unput(pValue->at(i));
}
}
else
{
current->brief+=yytext;
}
}
<DefLineDoc,LineDoc,ClassDoc,Doc>"/*" { current->doc += yytext; }
<SkipCxxComment>.*/\n {
BEGIN( lastCContext ) ;
......
This diff is collapsed.
This diff is collapsed.
......@@ -26,6 +26,10 @@ class TranslatorRussian : public Translator
{ return "russian"; }
QCString latexBabelPackage()
{ return "russian"; }
QCString idLanguageCharset()
{
return "koi8-r";
}
QCString trRelatedFunctions()
{
return " ";
......@@ -691,6 +695,107 @@ class TranslatorRussian : public Translator
{
return " ";
}
QCString trTodo()
{
return "Todo";
}
QCString trTodoList()
{
return " ";
}
QCString trReferencedBy()
{
return " ";
}
QCString trRemarks()
{
return "";
}
QCString trAttention()
{
return "";
}
QCString trInclByDepGraph()
{
return " , "
" :";
}
QCString trSince()
{
return "";
}
QCString trLegendTitle()
{
return " ";
}
QCString trLegendDocs()
{
return
" , , "
"doxygen.<p>\n"
" :\n"
"\\code\n"
"/*! - */\n"
"class Invisible { };\n\n"
"/*! , */\n"
"class Truncated : public Invisible { };\n\n"
"/* , doxygen */\n"
"class Undocumented { };\n\n"
"/*! , */\n"
"class PublicBase : public Truncated { };\n\n"
"/*! , */\n"
"class ProtectedBase { };\n\n"
"/*! , */\n"
"class PrivateBase { };\n\n"
"/*! , Inherited */\n"
"class Used { };\n\n"
"/*! , */\n"
"class Inherited : public PublicBase,\n"
" protected ProtectedBase,\n"
" private PrivateBase,\n"
" public Undocumented\n"
"{\n"
" private:\n"
" Used *m_usedClass;\n"
"};\n"
"\\endcode\n"
" \\c MAX_DOT_GRAPH_HEIGHT "
" 200, :"
"<p><center><img src=\"graph_legend.gif\"></center>\n"
"<p>\n"
" :\n"
"<ul>\n"
"<li> , "
" .\n"
"<li> .\n"
"<li> .\n"
"<li> , \n"
" / . , "
" ."
"</ul>\n"
" :\n"
"<ul>\n"
"<li> "
" .\n"
"<li> .\n"
"<li> .\n"
"<li> , "
". , "
" . \n"
"</ul>\n";
}
QCString trLegend()
{
return "";
}
QCString trTest()
{
return "";
}
QCString trTestList()
{
return " ";
}
};
......
......@@ -491,6 +491,10 @@ void linkifyText(const TextGeneratorIntf &out,const char *scName,const char *nam
out.writeBreak();
out.writeString(splitText.right(splitLength-i-1));
}
else
{
out.writeString(splitText);
}
floatingIndex=splitLength-i-1;
}
else
......
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