diff options
author | Jose <jose@zeroc.com> | 2019-09-02 18:48:55 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2019-09-02 18:50:24 +0200 |
commit | 3d2e3c51bf09cdf9ff84b0bc57839969f97f3bf1 (patch) | |
tree | ab29ac9643f4d02c9ca624f6fabbdd49b3efa0a2 /cpp | |
parent | Fixed makecerts.py script to specify extended key usage (diff) | |
download | ice-3d2e3c51bf09cdf9ff84b0bc57839969f97f3bf1.tar.bz2 ice-3d2e3c51bf09cdf9ff84b0bc57839969f97f3bf1.tar.xz ice-3d2e3c51bf09cdf9ff84b0bc57839969f97f3bf1.zip |
Fix bogus doc comments generated by slice2cs - Close #500
Acked-by: Jose <jose@zeroc.com>
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/slice2cs/Gen.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp index ff637074b37..ea187755ff5 100644 --- a/cpp/src/slice2cs/Gen.cpp +++ b/cpp/src/slice2cs/Gen.cpp @@ -1441,22 +1441,31 @@ void Slice::CsVisitor::splitComment(const ContainedPtr& p, StringList& summaryLines, StringList& remarksLines) { string s = p->comment(); - string summary; + + const string paramTag = "@param"; + const string throwsTag = "@throws"; + const string exceptionTag = "@exception"; + const string returnTag = "@return"; + unsigned int i; + for(i = 0; i < s.size(); ++i) { if(s[i] == '.' && (i + 1 >= s.size() || isspace(static_cast<unsigned char>(s[i + 1])))) { - summary += '.'; ++i; break; } - else + else if(s[i] == '@' && (s.substr(i, paramTag.size()) == paramTag || + s.substr(i, throwsTag.size()) == throwsTag || + s.substr(i, exceptionTag.size()) == exceptionTag || + s.substr(i, returnTag.size()) == returnTag)) { - summary += s[i]; + break; } } - summaryLines = splitIntoLines(summary); + + summaryLines = splitIntoLines(trim(s.substr(0, i))); if(!summaryLines.empty()) { remarksLines = splitIntoLines(trim(s.substr(i))); |