Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doxverilog
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
doxverilog
Commits
047ff890
Commit
047ff890
authored
Sep 18, 2002
by
Dimitri van Heesch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Release-1.2.18
parent
d05ad629
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
63 additions
and
34 deletions
+63
-34
INSTALL
INSTALL
+2
-2
README
README
+2
-2
VERSION
VERSION
+1
-1
config.doc
doc/config.doc
+2
-2
language.doc
doc/language.doc
+5
-5
trouble.doc
doc/trouble.doc
+6
-1
doxygen.spec
packages/rpm/doxygen.spec
+1
-1
config.l
src/config.l
+4
-2
docparser.cpp
src/docparser.cpp
+2
-2
doctokenizer.h
src/doctokenizer.h
+1
-1
doctokenizer.l
src/doctokenizer.l
+6
-4
language.cpp
src/language.cpp
+6
-0
rtfdocvisitor.cpp
src/rtfdocvisitor.cpp
+5
-2
scanner.l
src/scanner.l
+1
-1
translator_ca.h
src/translator_ca.h
+4
-5
translator_jp.h
src/translator_jp.h
+13
-2
translator_sr.h
src/translator_sr.h
+2
-1
No files found.
INSTALL
View file @
047ff890
DOXYGEN Version 1.2.1
7-20020915
DOXYGEN Version 1.2.1
8
Please read the installation section of the manual for instructions.
Please read the installation section of the manual for instructions.
--------
--------
Dimitri van Heesch (1
5
September 2002)
Dimitri van Heesch (1
8
September 2002)
README
View file @
047ff890
DOXYGEN Version 1.2.1
7_20020915
DOXYGEN Version 1.2.1
8
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) (1
5
September 2002)
Dimitri van Heesch (dimitri@stack.nl) (1
8
September 2002)
VERSION
View file @
047ff890
1.2.1
7-20020915
1.2.1
8
doc/config.doc
View file @
047ff890
...
@@ -1148,14 +1148,14 @@ EXTRA_PACKAGES = times
...
@@ -1148,14 +1148,14 @@ EXTRA_PACKAGES = times
\anchor cfg_xml_schema
\anchor cfg_xml_schema
<dt>\c XML_SCHEMA <dd>
<dt>\c XML_SCHEMA <dd>
\addindex XML_SCHEMA
\addindex XML_SCHEMA
The XML_SCHEMA
file
can be used to specify an XML schema,
The XML_SCHEMA
tag
can be used to specify an XML schema,
which can be used by a validating XML parser to check the
which can be used by a validating XML parser to check the
syntax of the XML files.
syntax of the XML files.
\anchor cfg_xml_dtd
\anchor cfg_xml_dtd
<dt>\c XML_DTD <dd>
<dt>\c XML_DTD <dd>
\addindex XML_DTD
\addindex XML_DTD
The XML_DTD
file
can be used to specify an XML DTD,
The XML_DTD
tag
can be used to specify an XML DTD,
which can be used by a validating XML parser to check the
which can be used by a validating XML parser to check the
syntax of the XML files.
syntax of the XML files.
...
...
doc/language.doc
View file @
047ff890
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
...
@@ -25,7 +25,7 @@ Doxygen has built-in support for multiple languages. This means
that the text fragments that doxygen generates can be produced in
that the text fragments that doxygen generates can be produced in
languages other than English (the default) at configuration time.
languages other than English (the default) at configuration time.
Currently (version 1.2.1
4-20020317
), 28 languages
Currently (version 1.2.1
8
), 28 languages
are supported (sorted alphabetically):
are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish,
Czech, Danish, Dutch, English, Finnish,
...
@@ -61,7 +61,7 @@ when the translator was updated.
...
@@ -61,7 +61,7 @@ when the translator was updated.
<TD>Catalan</TD>
<TD>Catalan</TD>
<TD>Albert Mora</TD>
<TD>Albert Mora</TD>
<TD>amora@NOSPAM.iua.upf.es</TD>
<TD>amora@NOSPAM.iua.upf.es</TD>
<TD>
up-to-date
</TD>
<TD>
1.2.17
</TD>
</TR>
</TR>
<TR BGCOLOR="#ffffff">
<TR BGCOLOR="#ffffff">
<TD>Chinese</TD>
<TD>Chinese</TD>
...
@@ -145,7 +145,7 @@ when the translator was updated.
...
@@ -145,7 +145,7 @@ when the translator was updated.
<TD>Japanese</TD>
<TD>Japanese</TD>
<TD>Ryunosuke Sato<br>Kenji Nagamatsu</TD>
<TD>Ryunosuke Sato<br>Kenji Nagamatsu</TD>
<TD>puyo@NOSPAM.mint.freemail.ne.jp<br>naga@NOSPAM.joyful.club.ne.jp</TD>
<TD>puyo@NOSPAM.mint.freemail.ne.jp<br>naga@NOSPAM.joyful.club.ne.jp</TD>
<TD>
1.2.17
</TD>
<TD>
up-to-date
</TD>
</TR>
</TR>
<TR BGCOLOR="#ffffff">
<TR BGCOLOR="#ffffff">
<TD>Korean</TD>
<TD>Korean</TD>
...
@@ -232,7 +232,7 @@ when the translator was updated.
...
@@ -232,7 +232,7 @@ when the translator was updated.
\hline
\hline
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} & up-to-date \\
Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt chino@icmc.sc.usp.br} & up-to-date \\
\hline
\hline
Catalan & Albert Mora & {\tt amora@iua.upf.es} &
up-to-date
\\
Catalan & Albert Mora & {\tt amora@iua.upf.es} &
1.2.17
\\
\hline
\hline
Chinese & Wei Liu & {\tt liuwei@asiainfo.com} & 1.2.13 \\
Chinese & Wei Liu & {\tt liuwei@asiainfo.com} & 1.2.13 \\
& Wang Weihan & {\tt wangweihan@capinfo.com.cn} & \\
& Wang Weihan & {\tt wangweihan@capinfo.com.cn} & \\
...
@@ -263,7 +263,7 @@ when the translator was updated.
...
@@ -263,7 +263,7 @@ when the translator was updated.
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} & up-to-date \\
Italian & Alessandro Falappa & {\tt alessandro@falappa.net} & up-to-date \\
& Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & \\
& Ahmed Aldo Faisal & {\tt aaf23@cam.ac.uk} & \\
\hline
\hline
Japanese & Ryunosuke Sato & {\tt puyo@mint.freemail.ne.jp} &
1.2.17
\\
Japanese & Ryunosuke Sato & {\tt puyo@mint.freemail.ne.jp} &
up-to-date
\\
& Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & \\
& Kenji Nagamatsu & {\tt naga@joyful.club.ne.jp} & \\
\hline
\hline
Korean & Richard Kim & {\tt ryk@dspwiz.com} & 1.2.13 \\
Korean & Richard Kim & {\tt ryk@dspwiz.com} & 1.2.13 \\
...
...
doc/trouble.doc
View file @
047ff890
...
@@ -101,9 +101,14 @@ Always try to include the following information in your bug report:
...
@@ -101,9 +101,14 @@ Always try to include the following information in your bug report:
actual bug!).
actual bug!).
If you send only a (vague) description of a bug, you are usually not very
If you send only a (vague) description of a bug, you are usually not very
helpful and
will costs
me much more time to figure out what you mean.
helpful and
it will cost
me much more time to figure out what you mean.
In the worst-case your bug report may even be completely ignored by me!
In the worst-case your bug report may even be completely ignored by me!
My e-mail address: dimitri@stack.nl
My e-mail address: dimitri@stack.nl
Note that you can also post bug report to the developers mailing list
or use the bug tracker at sourceforge (though I do not really like the
latter because of its web interface).
*/
*/
packages/rpm/doxygen.spec
View file @
047ff890
Summary: A documentation system for C/C++.
Summary: A documentation system for C/C++.
Name: doxygen
Name: doxygen
Version: 1.2.1
7_20020915
Version: 1.2.1
8
Release: 1
Release: 1
Epoch: 1
Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
...
...
src/config.l
View file @
047ff890
...
@@ -2166,16 +2166,18 @@ void Config::create()
...
@@ -2166,16 +2166,18 @@ void Config::create()
);
);
cs = addString(
cs = addString(
"XML_SCHEMA",
"XML_SCHEMA",
"The XML_SCHEMA
file
can be used to specify an XML schema, \n"
"The XML_SCHEMA
tag
can be used to specify an XML schema, \n"
"which can be used by a validating XML parser to check the \n"
"which can be used by a validating XML parser to check the \n"
"syntax of the XML files. \n"
"syntax of the XML files. \n"
);
);
cs->addDependency("GENERATE_XML");
cs = addString(
cs = addString(
"XML_DTD",
"XML_DTD",
"The XML_DTD
file
can be used to specify an XML DTD, \n"
"The XML_DTD
tag
can be used to specify an XML DTD, \n"
"which can be used by a validating XML parser to check the \n"
"which can be used by a validating XML parser to check the \n"
"syntax of the XML files. \n"
"syntax of the XML files. \n"
);
);
cs->addDependency("GENERATE_XML");
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
addInfo( "DEF","configuration options for the AutoGen Definitions output");
addInfo( "DEF","configuration options for the AutoGen Definitions output");
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
...
...
src/docparser.cpp
View file @
047ff890
...
@@ -860,7 +860,7 @@ static int internalValidatingParseDoc(DocNode *parent,QList<DocNode> &children,
...
@@ -860,7 +860,7 @@ static int internalValidatingParseDoc(DocNode *parent,QList<DocNode> &children,
{
{
int
retval
=
RetVal_OK
;
int
retval
=
RetVal_OK
;
doctokenizerYYinit
(
doc
);
doctokenizerYYinit
(
doc
,
g_fileName
);
// first parse any number of paragraphs
// first parse any number of paragraphs
bool
isFirst
=
FALSE
;
bool
isFirst
=
FALSE
;
...
@@ -4043,7 +4043,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
...
@@ -4043,7 +4043,7 @@ DocNode *validatingParseDoc(const char *fileName,int startLine,
g_paramsFound
.
clear
();
g_paramsFound
.
clear
();
doctokenizerYYlineno
=
startLine
;
doctokenizerYYlineno
=
startLine
;
doctokenizerYYinit
(
input
);
doctokenizerYYinit
(
input
,
g_fileName
);
// build abstract syntax tree
// build abstract syntax tree
DocRoot
*
root
=
new
DocRoot
;
DocRoot
*
root
=
new
DocRoot
;
...
...
src/doctokenizer.h
View file @
047ff890
...
@@ -107,7 +107,7 @@ extern FILE *doctokenizerYYin;
...
@@ -107,7 +107,7 @@ extern FILE *doctokenizerYYin;
const
char
*
tokToString
(
int
token
);
const
char
*
tokToString
(
int
token
);
// operations on the scanner
// operations on the scanner
void
doctokenizerYYinit
(
const
char
*
input
);
void
doctokenizerYYinit
(
const
char
*
input
,
const
char
*
fileName
);
void
doctokenizerYYcleanup
();
void
doctokenizerYYcleanup
();
void
doctokenizerYYpushContext
();
void
doctokenizerYYpushContext
();
bool
doctokenizerYYpopContext
();
bool
doctokenizerYYpopContext
();
...
...
src/doctokenizer.l
View file @
047ff890
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include "doctokenizer.h"
#include "doctokenizer.h"
#include "cmdmapper.h"
#include "cmdmapper.h"
#include "config.h"
#include "config.h"
#include "message.h"
#define YY_NEVER_INTERACTIVE 1
#define YY_NEVER_INTERACTIVE 1
...
@@ -35,6 +36,7 @@ static int g_commentState;
...
@@ -35,6 +36,7 @@ static int g_commentState;
TokenInfo *g_token = 0;
TokenInfo *g_token = 0;
static int g_inputPos = 0;
static int g_inputPos = 0;
static const char *g_inputString;
static const char *g_inputString;
static QCString g_fileName;
struct DocLexerContext
struct DocLexerContext
{
{
...
@@ -265,7 +267,6 @@ HTMLTAG "<"(("/")?){ID}({BLANK}+{ATTRIB})*">"
...
@@ -265,7 +267,6 @@ HTMLTAG "<"(("/")?){ID}({BLANK}+{ATTRIB})*">"
%x St_IntRef
%x St_IntRef
%%
%%
/* TODO: \~lang_id */
<St_Para>\r /* skip carriage return */
<St_Para>\r /* skip carriage return */
<St_Para>^{LISTITEM} { /* list item */
<St_Para>^{LISTITEM} { /* list item */
QCString text=yytext;
QCString text=yytext;
...
@@ -585,19 +586,20 @@ HTMLTAG "<"(("/")?){ID}({BLANK}+{ATTRIB})*">"
...
@@ -585,19 +586,20 @@ HTMLTAG "<"(("/")?){ID}({BLANK}+{ATTRIB})*">"
<St_Comment>[^-\n]+ /* inside html comment */
<St_Comment>[^-\n]+ /* inside html comment */
<St_Comment>. /* inside html comment */
<St_Comment>. /* inside html comment */
<*>\n {
<*>\n {
printf("Error: Unexpected new line character at line %d\n",yylineno
);
warn(g_fileName,yylineno,"Error: Unexpected new line character"
);
}
}
<*>. {
<*>. {
printf("Error: Unexpected character `%s' at line %d\n",yytext,yylineno
);
warn(g_fileName,yylineno,"Error: Unexpected character `%s'",yytext
);
}
}
%%
%%
//--------------------------------------------------------------------------
//--------------------------------------------------------------------------
void doctokenizerYYinit(const char *input)
void doctokenizerYYinit(const char *input
,const char *fileName
)
{
{
g_inputString = input;
g_inputString = input;
g_inputPos = 0;
g_inputPos = 0;
g_fileName = fileName;
BEGIN(St_Para);
BEGIN(St_Para);
}
}
...
...
src/language.cpp
View file @
047ff890
...
@@ -279,6 +279,12 @@ bool setTranslator(const char *langName)
...
@@ -279,6 +279,12 @@ bool setTranslator(const char *langName)
theTranslator
=
new
TranslatorSerbian
;
theTranslator
=
new
TranslatorSerbian
;
}
}
#endif
#endif
#ifdef LANG_CA
else
if
(
L_EQUAL
(
"catalan"
))
{
theTranslator
=
new
TranslatorCatalan
;
}
#endif
// else if (L_EQUAL("japanese-sjis"))
// else if (L_EQUAL("japanese-sjis"))
// {
// {
// theTranslator=new TranslatorJapaneseSjis;
// theTranslator=new TranslatorJapaneseSjis;
...
...
src/rtfdocvisitor.cpp
View file @
047ff890
...
@@ -443,6 +443,7 @@ void RTFDocVisitor::visitPre(DocSimpleSect *s)
...
@@ -443,6 +443,7 @@ void RTFDocVisitor::visitPre(DocSimpleSect *s)
{
{
m_t
<<
"{"
;
// start desc
m_t
<<
"{"
;
// start desc
m_t
<<
"{
\\
b "
;
// start bold
m_t
<<
"{
\\
b "
;
// start bold
m_t
<<
"
\\
par"
<<
endl
;
switch
(
s
->
type
())
switch
(
s
->
type
())
{
{
case
DocSimpleSect
:
:
See
:
case
DocSimpleSect
:
:
See
:
...
@@ -956,7 +957,7 @@ void RTFDocVisitor::visitPre(DocXRefItem *x)
...
@@ -956,7 +957,7 @@ void RTFDocVisitor::visitPre(DocXRefItem *x)
{
{
filter
(
x
->
title
());
filter
(
x
->
title
());
}
}
m_t
<<
"}"
;
// end bold
m_t
<<
"
:
}"
;
// end bold
m_t
<<
"
\\
par"
<<
endl
;
m_t
<<
"
\\
par"
<<
endl
;
incIndentLevel
();
incIndentLevel
();
m_t
<<
rtf_Style_Reset
<<
getStyle
(
"DescContinue"
);
m_t
<<
rtf_Style_Reset
<<
getStyle
(
"DescContinue"
);
...
@@ -964,7 +965,9 @@ void RTFDocVisitor::visitPre(DocXRefItem *x)
...
@@ -964,7 +965,9 @@ void RTFDocVisitor::visitPre(DocXRefItem *x)
void
RTFDocVisitor
::
visitPost
(
DocXRefItem
*
)
void
RTFDocVisitor
::
visitPost
(
DocXRefItem
*
)
{
{
m_t
<<
"}"
<<
endl
;
// end param list
m_t
<<
"
\\
par"
<<
endl
;
decIndentLevel
();
m_t
<<
"}"
<<
endl
;
// end xref item
}
}
void
RTFDocVisitor
::
visitPre
(
DocInternalRef
*
ref
)
void
RTFDocVisitor
::
visitPre
(
DocInternalRef
*
ref
)
...
...
src/scanner.l
View file @
047ff890
...
@@ -4295,7 +4295,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
...
@@ -4295,7 +4295,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc>"\\"[a-z_A-Z][a-z_A-Z0-9]*[\\] { // directory type of text
current->doc+=yytext;
current->doc+=yytext;
}
}
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc,CopyArgComment>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
<Doc,ClassDoc,PageDoc,ExampleDoc,AfterDoc,CopyArgComment
,SkipSection
>{CMD}[a-z_A-Z][a-z_A-Z0-9]* {
bool handled=FALSE;
bool handled=FALSE;
if ( useOverrideCommands)
if ( useOverrideCommands)
{
{
...
...
src/translator_ca.h
View file @
047ff890
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
// Translator class (by the local maintainer) when the localized
// Translator class (by the local maintainer) when the localized
// translator is made up-to-date again.
// translator is made up-to-date again.
class
TranslatorCatalan
:
public
Translator
class
TranslatorCatalan
:
public
Translator
Adapter_1_2_17
{
{
public
:
public
:
...
@@ -309,12 +309,12 @@ class TranslatorCatalan : public Translator
...
@@ -309,12 +309,12 @@ class TranslatorCatalan : public Translator
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
if
(
Config_getBool
(
"OPTIMIZE_OUTPUT_FOR_C"
))
{
{
result
+=
"totes les funcions, variables, definicions, enumeracions, i definicions de tipus"
;
result
+=
"totes les funcions, variables, definicions, enumeracions, i definicions de tipus"
;
if
(
!
extractAll
)
result
+=
"documentades "
;
if
(
!
extractAll
)
result
+=
"documentades "
;
}
}
else
else
{
{
result
+=
"tots els membres de l'arxiu"
;
result
+=
"tots els membres de l'arxiu"
;
if
(
!
extractAll
)
result
+=
"documentat "
;
if
(
!
extractAll
)
result
+=
"documentat "
;
}
}
result
+=
" amb enllaços "
;
result
+=
" amb enllaços "
;
if
(
extractAll
)
if
(
extractAll
)
...
@@ -1091,7 +1091,7 @@ class TranslatorCatalan : public Translator
...
@@ -1091,7 +1091,7 @@ class TranslatorCatalan : public Translator
"<li>Una sageta puntejada de color porpra indica que una classe és continguda o usada per una altra classe."
"<li>Una sageta puntejada de color porpra indica que una classe és continguda o usada per una altra classe."
" La sageta s'etiqueta amb la variable o variables a través de les quals la classe o estructura apuntada és accessible.
\n
"
" La sageta s'etiqueta amb la variable o variables a través de les quals la classe o estructura apuntada és accessible.
\n
"
"<li>Una sageta puntejada de color groc indica la relació entre una instància template i la classe template de què ha set instanciada."
"<li>Una sageta puntejada de color groc indica la relació entre una instància template i la classe template de què ha set instanciada."
" La sageta s'etiqueta amb els paràmetres template de la instància.
\n
"
" La sageta s'etiqueta amb els paràmetres template de la instància.
\n
"
"</ul>
\n
"
;
"</ul>
\n
"
;
}
}
/*! text for the link to the legend page */
/*! text for the link to the legend page */
...
@@ -1399,7 +1399,6 @@ class TranslatorCatalan : public Translator
...
@@ -1399,7 +1399,6 @@ class TranslatorCatalan : public Translator
{
{
return
"Taula de Continguts"
;
return
"Taula de Continguts"
;
}
}
};
};
#endif
#endif
src/translator_jp.h
View file @
047ff890
...
@@ -61,7 +61,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
...
@@ -61,7 +61,7 @@ class TranslatorJapaneseEn : public TranslatorEnglish
}
}
};
};
class
TranslatorJapanese
:
public
Translator
Adapter_1_2_17
class
TranslatorJapanese
:
public
Translator
{
{
private
:
private
:
/*! The decode() can change euc into sjis */
/*! The decode() can change euc into sjis */
...
@@ -1375,6 +1375,17 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_17
...
@@ -1375,6 +1375,17 @@ class TranslatorJapanese : public TranslatorAdapter_1_2_17
{
{
return
decode
(
"目次"
);
return
decode
(
"目次"
);
}
}
};
//////////////////////////////////////////////////////////////////////////
// new since 1.2.17
//////////////////////////////////////////////////////////////////////////
/*! Used as the header of the list of item that have been
* flagged deprecated
*/
virtual
QCString
trDeprecatedList
()
{
return
"非推奨一覧"
;
}
};
#endif
#endif
src/translator_sr.h
View file @
047ff890
...
@@ -22,7 +22,8 @@
...
@@ -22,7 +22,8 @@
class
TranslatorSerbian
:
public
TranslatorAdapter_1_2_17
class
TranslatorSerbian
:
public
TranslatorAdapter_1_2_17
{
{
QCString
decode
(
const
QCString
&
sInput
)
private
:
QCString
decode
(
const
QCString
&
sInput
)
{
{
#ifdef _WIN32
#ifdef _WIN32
return
ISO88592ToWin1250
(
sInput
);
return
ISO88592ToWin1250
(
sInput
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment