Commit 939d1c84 authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.3.9.1-20041224

parent f1dfb258
DOXYGEN Version 1.3.9.1-20041221
DOXYGEN Version 1.3.9.1-20041224
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (21 December 2004)
Dimitri van Heesch (24 December 2004)
DOXYGEN Version 1.3.9.1_20041221
DOXYGEN Version 1.3.9.1_20041224
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (21 December 2004)
Dimitri van Heesch (dimitri@stack.nl) (24 December 2004)
1.3.9.1-20041221
1.3.9.1-20041224
......@@ -517,6 +517,9 @@ done
# - generating src/lang_cfg.h
if test -e "src/lang_cfg.h"; then
chmod u+w src/lang_cfg.h # make sure file can be overwritten
fi
echo -n " Generating src/lang_cfg.h..."
echo $f_langs | $f_perl -e '@l=split(/,/,<STDIN>);
chomp @l;
......
......@@ -67,6 +67,7 @@ Kenji Nagamatsu: naga@joyful.club.ne.jp
Iwasa Kazmi: iwasa@cosmo-system.jp
TranslatorKorean
SooYoung Jung: jung5000@gmail.com
Richard Kim: ryk@dspwiz.com
TranslatorLithuanian
......
Summary: A documentation system for C/C++.
Name: doxygen
Version: 1.3.9.1_20041221
Version: 1.3.9.1_20041224
Release: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
......@@ -151,7 +151,7 @@ SCString &SCString::sprintf( const char *format, ... )
int SCString::find( char c, int index, bool cs ) const
{
uint len = length();
if ( m_data==0 || (uint)index>=len ) // index outside string
if ( m_data==0 || (uint)index>len ) // index outside string
return -1;
register const char *d;
if ( cs ) // case sensitive
......@@ -173,7 +173,7 @@ int SCString::find( char c, int index, bool cs ) const
int SCString::find( const char *str, int index, bool cs ) const
{
uint l = length();
if ( m_data==0 || (uint)index >= l ) // index outside string
if ( m_data==0 || (uint)index > l ) // index outside string
return -1;
if ( !str ) // no search string
return -1;
......@@ -222,7 +222,7 @@ int SCString::findRev( char c, int index, bool cs) const
}
index = len;
}
else if ( (uint)index >= len ) // bad index
else if ( (uint)index > len ) // bad index
{
return -1;
}
......@@ -247,7 +247,7 @@ int SCString::findRev( const char *str, int index, bool cs) const
uint len = length();
if ( index < 0 ) // neg index ==> start from end
index = len-slen;
else if ( (uint)index >= len ) // bad index
else if ( (uint)index > len ) // bad index
return -1;
else if ( (uint)(index + slen) > len ) // str would be too long
index = len - slen;
......
......@@ -113,7 +113,7 @@ ID ([a-z_A-Z][a-z_A-Z0-9]*)|(@[0-9]+)
%%
<Start>"operator" { // operator rule must be before {ID} rule
<Start>"operator"/({B}*"["{B}*"]")* { // operator rule must be before {ID} rule
name += yytext;
BEGIN(Operator);
}
......
......@@ -840,6 +840,7 @@ static void handleLinkedWord(DocNode *parent,QList<DocNode> &children)
QString name = linkToText(g_token->name,TRUE);
int len = g_token->name.length();
ClassDef *cd=0;
//printf("handleLinkedWord(%s)\n",name.data());
if (!g_insideHtmlLink &&
resolveRef(g_context,g_token->name,g_inSeeBlock,&compound,&member))
{
......
......@@ -578,8 +578,8 @@ void GroupDef::writeDocumentation(OutputList &ol)
while (gd)
{
ol.startMemberItem(0);
ol.docify(theTranslator->trGroup(FALSE,TRUE));
ol.docify(" ");
//ol.docify(theTranslator->trGroup(FALSE,TRUE));
//ol.docify(" ");
ol.insertMemberAlign();
ol.writeObjectLink(gd->getReference(),gd->getOutputFileBase(),0,gd->groupTitle());
if (!Config_getString("GENERATE_TAGFILE").isEmpty())
......
......@@ -4637,18 +4637,18 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<GroupDocArg2>"\\"{B}*"\n" { yyLineNr++;
}
<GroupDocArg2>[^\n\*]+ {
<GroupDocArg2>[^\n\\\*]+ {
current->type += yytext;
current->type = current->type.stripWhiteSpace();
}
<GroupDocArg2>"\n" {
<GroupDocArg2>"\\_linebr"|"\n" {
if( current->groupDocType == Entry::GROUPDOC_NORMAL &&
current->type.length() == 0 )
warn(yyFileName,yyLineNr,
"Warning: missing title after "
"\\defgroup %s", current->name.data()
);
yyLineNr++;
if (*yytext=='\n') yyLineNr++;
newDocState();
}
<ClassDocArg2>{FILE} {
......@@ -4658,6 +4658,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<ClassDocArg2>"\\"{B}*"\n" { yyLineNr++;
}
<ClassDocArg2>"\\_linebr" {
newDocState();
}
<ClassDocArg2>"\n" { yyLineNr++;
newDocState();
}
......@@ -4672,7 +4675,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<ClassDocArg3>"\\"{B}*"\n" { yyLineNr++;
}
<ClassDocArg3>"\n" { yyLineNr++;
<ClassDocArg3>"\n"|"\\linebr" { yyLineNr++;
newDocState();
}
<ClassDocArg3>{B}*"*/" {
......@@ -4685,9 +4688,9 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
}
<FileDocArg1>"\\"{B}*"\n" { yyLineNr++;
}
<FileDocArg1>"\n" {
<FileDocArg1>"\n"|"\\_linebr" {
current->name = yyFileName;
yyLineNr++;
if (*yytext=='\n') yyLineNr++;
newDocState();
if (lastFileDocContext==LineDoc)
{
......@@ -4705,13 +4708,13 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<PageDocArg1>"\\"{B}*"\n" { yyLineNr++;
current->doc+="\n";
}
<PageDocArg1>"\n" {
<PageDocArg1>"\n"|"\\_linebr" {
warn(yyFileName,yyLineNr,
"Warning: missing argument after "
"\\page."
);
current->doc+="\n";
yyLineNr++;
if (*yytext=='\n') yyLineNr++;
BEGIN( Doc );
}
<PageDocArg2>.*"\n" {
......@@ -4728,12 +4731,12 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
<EnumDocArg1>"\\"{B}*"\n" { yyLineNr++;
current->doc+="\n";
}
<EnumDocArg1>"\n" {
<EnumDocArg1>"\n"|"\\_linebr" {
warn(yyFileName,yyLineNr,
"Warning: missing argument after \\enum."
);
current->doc+="\n";
yyLineNr++;
if (*yytext=='\n') yyLineNr++;
BEGIN( Doc );
}
<PageDoc>{CMD}"refitem".*"\n" {
......@@ -4766,8 +4769,8 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
startGroupInDoc();
newDocState();
}
<GroupHeader>\n {
yyLineNr++;
<GroupHeader>\n|"\\_linebr" {
if (*yytext=='\n') yyLineNr++;
current->doc+="\n";
//printf("Found memberGroup=`%s'\n",memberGroupHeader.data());
startGroupInDoc();
......@@ -5328,7 +5331,10 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
new Grouping(yytext, Grouping::GROUPING_INGROUP)
);
}
<GroupName>\n {
<GroupName>"\\_linebr" {
BEGIN( lastGroupContext );
}
<GroupName>"\n" {
yyLineNr++;
BEGIN( lastGroupContext );
}
......@@ -5699,7 +5705,7 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
unput('/');unput('*');
BEGIN( tmpDocType );
}
<Doc,JavaDoc,LineDoc,ClassDocBrief,AfterDocBrief,AfterDocLine,CopyArgCommentLine,ClassDoc,PageDoc,AfterDoc,CopyArgComment>"\\_linebr " {
<Doc,JavaDoc,LineDoc,ClassDocBrief,AfterDocBrief,AfterDocLine,CopyArgCommentLine,ClassDoc,PageDoc,AfterDoc,CopyArgComment,DocInternal,DocInternalLine>"\\_linebr " {
// used to compensate for misalignments due to \n's inside ALIASES
current->doc += '\n';
}
......
......@@ -15,6 +15,16 @@
*
*/
//
// Update:
//
// 2004.12.22 (SooYoung Jung: jung5000@gmail.com)
// - LaTex and RTF were not generated correctly.
// Corrected trRTFansicp and trRTFCharSet.
// It was wrong.
//
//
#ifndef TRANSLATOR_KE_H
#define TRANSLATOR_KE_H
......@@ -32,10 +42,9 @@ class TranslatorKoreanEn : public TranslatorEnglish
{
return "euc-kr";
}
virtual QCString trRTFansicp()
{
return "1252";
return "949";
}
/*! Used as ansicpg for RTF fcharset
......@@ -43,7 +52,7 @@ class TranslatorKoreanEn : public TranslatorEnglish
*/
virtual QCString trRTFCharSet()
{
return "0";
return "129";
}
};
......
......@@ -15,19 +15,67 @@
*
*/
#ifndef TRANSLATOR_KR_H
#define TRANSLATOR_KR_H
/*!
When defining a translator class for the new language, follow
the description in the documentation. One of the steps says
that you should copy the translator_en.h (this) file to your
translator_xx.h new file. Your new language should use the
Translator class as the base class. This means that you need to
implement exactly the same (pure virtual) methods as the
TranslatorEnglish does. Because of this, it is a good idea to
start with the copy of TranslatorEnglish and replace the strings
one by one.
It is not necessary to include "translator.h" or
"translator_adapter.h" here. The files are included in the
language.cpp correctly. Not including any of the mentioned
files frees the maintainer from thinking about whether the
first, the second, or both files should be included or not, and
why. This holds namely for localized translators because their
base class is changed occasionaly to adapter classes when the
Translator class changes the interface, or back to the
Translator class (by the local maintainer) when the localized
translator is made up-to-date again.
*/
/*
초기 작업자: ryk
TODO 주석을 보면 11/22/01, doxygen 버전 1.2.11까지 수고해 주신 것 같습니다.
최근 갱신자: Astromaker(http://ngps.net/)
gpgiki(http://www.gpgstudy.com/gpgiki/)
*/
*/
//
// Update:
//
// 2004.12.22 (SooYoung Jung: jung5000@gmail.com)
// - LaTex and RTF were not generated correctly.
// Corrected trRTFansicp and trRTFCharSet.
// It was wrong.
// - Adapting 1.3.9 and added "new since 1.3.9"
// - 해석이 잘못된 부분이 꾀나 있어 보임..
//
#ifndef TRANSLATOR_KR_H
#define TRANSLATOR_KR_H
class TranslatorKorean : public TranslatorAdapter_1_3_8
class TranslatorKorean : public TranslatorAdapter_1_3_9
{
private:
/*! The decode() can change euc into sjis */
inline QCString decode(const QCString & sInput)
{
if (Config_getBool("USE_WINDOWS_ENCODING"))
{
return JapaneseEucToSjis(sInput);
}
else
{
return sInput;
}
}
public:
// --- Language control methods -------------------
......@@ -267,6 +315,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
{
result+="링크 된 클래스 멤버는 ";
}
if (extractAll)
result+="그 멤버에 대한 클래스 문서화로 갑니다.";
else
......@@ -462,7 +511,16 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
* the list of links to documented compounds
*/
virtual QCString trCompounds()
{ return "복합구조"; }
{
if (Config_getBool("OPTIMIZE_OUTPUT_FOR_C"))
{
return "Data Structures";
}
else
{
return "Classes";
}
}
/*! This is used in the standard footer of each page and indicates when
* the page was generated
......@@ -552,7 +610,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
* friends of a class
*/
virtual QCString trFriends()
{ return "friend"; }
{ return "Friends"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990405
......@@ -585,6 +643,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
case ClassDef::Category: result+=" category"; break; // translate me!
case ClassDef::Exception: result+=" 예외"; break;
}
if (isTemplate) result+=" 템플릿";
result+=" 참조";
return result;
}
......@@ -720,7 +779,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
* namespaces in a file.
*/
virtual QCString trNamespaces()
{ return "namespace"; }
{ return "Namespaces"; }
//////////////////////////////////////////////////////////////////////////
// new since 0.49-990728
......@@ -1203,7 +1262,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
*/
virtual QCString trRTFansicp()
{
return "1252";
return "949";
}
......@@ -1212,7 +1271,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
*/
virtual QCString trRTFCharSet()
{
return "0";
return "129";
}
/*! Used as header RTF general index */
......@@ -1444,7 +1503,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
*/
virtual QCString trAll()
{
return "All";
return "모두";
}
/*! Put in front of the call graph for a function. */
virtual QCString trCallGraph()
......@@ -1452,6 +1511,7 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
return "다음은 이 함수에 대한 호출 그래프입니다:";
//"Here is the call graph for this function:";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.3
//////////////////////////////////////////////////////////////////////////
......@@ -1504,8 +1564,69 @@ class TranslatorKorean : public TranslatorAdapter_1_3_8
*/
virtual QCString trSearchMatches()
{
return "Matches:";
return "결과:";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual QCString trSourceFile(QCString& filename)
{
return filename + " 소스 파일";
}
//////////////////////////////////////////////////////////////////////////
// new since 1.3.9
//////////////////////////////////////////////////////////////////////////
/*! This is used as the name of the chapter containing the directory
* hierarchy.
*/
virtual QCString trDirIndex()
{ return "디렉토리 계층도"; }
/*! This is used as the name of the chapter containing the documentation
* of the directories.
*/
virtual QCString trDirDocumentation()
{ return "디렉토리 문서"; }
/*! This is used as the title of the directory index and also in the
* Quick links of a HTML page, to link to the directory hierarchy.
*/
virtual QCString trDirectories()
{ return "디렉토리"; }
/*! This returns a sentences that introduces the directory hierarchy.
* and the fact that it is sorted alphabetically per level
*/
virtual QCString trDirDescription()
{ return "이 디렉토리 계층은 알파벳 순으로 정렬되어있습니다. (완전하지는 않음)";
}
/*! This returns the title of a directory page. The name of the
* directory is passed via \a dirName.
*/
virtual QCString trDirReference(const char *dirName)
{ QCString result=dirName; result+=" 디렉토리 참조"; return result; }
/*! This returns the word directory with or without starting capital
* (\a first_capital) and in sigular or plural form (\a singular).
*/
virtual QCString trDir(bool /*first_capital*/, bool /*singular*/)
{
// QCString result((first_capital ? "Director" : "director"));
// if (singular) result+="y"; else result+="ies";
// return result;
return "디렉터";
}
};
#endif
......@@ -3372,7 +3372,7 @@ bool resolveRef(/* in */ const char *scName,
return FALSE;
}
//printf("scName=%s name=%s\n",scName,fullName.data());
//printf("scName=%s fullName=%s\n",scName,fullName.data());
// check if this is a class or namespace reference
if (scName!=fullName && getScopeDefs(scName,fullName,cd,nd))
......@@ -3388,15 +3388,17 @@ bool resolveRef(/* in */ const char *scName,
}
return TRUE;
}
else if (scName==fullName || (!inSeeBlock && scopePos==-1)) // nothing to link => output plain text
else if (scName==fullName || (!inSeeBlock && scopePos==-1))
// nothing to link => output plain text
{
//printf("found scName=%s fullName=%s scName==fullName=%d "
// "inSeeBlock=%d scopePos=%d!\n",
// scName,fullName.data(),scName==fullName,inSeeBlock,scopePos);
return FALSE;
}
// continue search...
}
//printf("scopeContext=%s scopeUser=%s\n",scopeContext.data(),scopeUser.data());
// extract userscope+name
QCString nameStr=fullName.left(endNamePos);
......@@ -3561,7 +3563,7 @@ bool resolveLink(/* in */ const char *scName,
*resContext=0;
QCString linkRef=lr;
printf("ResolveLink linkRef=%s\n",lr);
//printf("ResolveLink linkRef=%s\n",lr);
FileDef *fd;
GroupDef *gd;
PageDef *pd;
......
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