boostorg / boostorg/program_options

Problems with displaying long option description with cyrillic characters

Open
#24 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
136
Forks
117
PR merge metrics
No merged PRs in 30d

Description

I'm having some weird issues with displaying long option description that contains cyrillic characters:

```
[program_options]$ ./example --help
Allowed options:
-h [ --help ] print usage message
-f [ --enforcewrite ] enforcewrite Всегда перезаписывать
файлы в директории с
преобразованной
политикой безопасност▒

```
Note that weird symbols at the description end.
Here's the code to reproduce it:

```
#include
using namespace boost::program_options;

#include
using namespace std;

int main(int argc, char* argv[])
{
string s;

options_description desc("Allowed options");
desc.add_options()
("help,h", "print usage message")
("enforcewrite,f", value(&s)->value_name("enforcewrite"),
"Всегда перезаписывать файлы в директории с преобразованной политикой безопасности");

variables_map vm;
store(parse_command_line(argc, argv, desc), vm);

if (vm.count("help")) {
cout << desc << "\n";
return 0;
}
}
```

Appearance of such symbols seems to depend somehow on the length of the text string associated with the option (including option name, default value and it's description). In my case I worked around the problem by increasing the column width.

program option version is: 1.62.0
OS: CentOS 7.1

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.