When displaying Chinese help information, the program does not respond. The code enters a dead loop.
赵伟
qdzhaov@qq.com
Thu Mar 28 15:26:20 GMT 2024
When displaying Chinese help information, the program does not respond.
The code enters a dead loop in file "libgetopt++/include/getopt++/DefaultFormatter.h",Because some Chinese help information does not contain spaces.
diff --git a/libgetopt++/include/getopt++/DefaultFormatter.h b/libgetopt++/include/getopt++/DefaultFormatter.h
index ee2397f5..19ac67e1 100644
--- a/libgetopt++/include/getopt++/DefaultFormatter.h
+++ b/libgetopt++/include/getopt++/DefaultFormatter.h
@@ -64,6 +64,7 @@ class DefaultFormatter {
{
// TODO: consider using a line breaking strategy here.
int pos = helpmsg.substr(0,h_len).find_last_of(" ");
+ if(pos<=0)break;
theStream << helpmsg.substr(0,pos)
<< std::endl << std::string (o_len, ' ');
helpmsg.erase (0,pos+1);
More information about the Cygwin
mailing list