On 08/24/2018 11:36 AM, Daniel P. Berrangé wrote:
On Fri, Aug 24, 2018 at 10:59:04AM +0200, Michal Privoznik wrote:
> On 08/23/2018 05:53 PM, Simon Kobyda wrote:
>> Created new API for priting tables, mainly to solve alignment problems.
>> Implemented these test to virsh list. In the future, API may be
>> everywhere in virsh and virt-admin.
>> Also wrote basic tests for the new API, and corrected tests in virshtest
>> which are influenced by implementation of the API in virsh list.
>>
>> Changes in v5:
>> - cleanup and merged code for calculating zero-width, nonprintable and combined
>> character.
>> - replaced virBufferAddStr with virBufferAddChar in some places
>> - in tests moved code for setting correct locale
>> - fixed few leaks and unitialized values
>>
>> Changes in v4:
>> - fixed width calculation for zero-width, nonprintable and combined
>> character. (pulled some code from linux-util)
>> - added tests for cases mentioned above
>> - changed usage of vshControl variables. From now on PrintToStdout calls
>> PrintToString and then prints returned string to stdout
>>
>> Changes in v3:
>> - changed encoding of 3/3 patch, otherwise it cannot be applied
>>
>> Changes in v2:
>> - added tests
>> - fixed alignment for unicode character which span more spaces
>> - moved ncolumns check to vshTableRowAppend
>> - changed arguments for functions vshTablePrint, vshTablePrintToStdout,
>> vshTablePrintToString
>>
>> Simon Kobyda (3):
>> vsh: Add API for printing tables.
>> virsh: Implement new table API for virsh list
>> vsh: Added tests
>>
>> tests/Makefile.am | 8 +
>> tests/virshtest.c | 14 +-
>> tests/vshtabletest.c | 377 +++++++++++++++++++++++++++++
>> tools/Makefile.am | 4 +-
>> tools/virsh-domain-monitor.c | 43 ++--
>> tools/vsh-table.c | 449 +++++++++++++++++++++++++++++++++++
>> tools/vsh-table.h | 42 ++++
>> 7 files changed, 910 insertions(+), 27 deletions(-)
>> create mode 100644 tests/vshtabletest.c
>> create mode 100644 tools/vsh-table.c
>> create mode 100644 tools/vsh-table.h
>>
>
> ACKed and pushed.
>
> Now we can start converting the rest of the code to use vshTable APIs.
But first fix the build failures :-)
On CentOS / RHEL:
https://travis-ci.org/libvirt/libvirt/jobs/420024141
4) testUnicode ...
Offset 30
Expect [государство
-----------------------------------------
1 fedora28 running
2 🙊🙉🙈rhel7.5🙆🙆🙅]
Actual [
государство
-----------------------------------------------------------------------------------------------------------------------------
1 fedora28
running
2
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffrhel7.5\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff]
Okay, this is probably due to ancient gcc that's there (4.8.0) and is
supposed to be fixed by adding -finput-charset= onto gcc command line.
Haven't tested it though.
On Mingw:
https://travis-ci.org/libvirt/libvirt/jobs/420024142
vsh-table.c: In function 'vshTableSafeEncode':
vsh-table.c:274:27: error: implicit declaration of function 'wcwidth'
[-Werror=implicit-function-declaration]
*width += wcwidth(wc);
^~~~~~~
vsh-table.c:274:27: error: nested extern declaration of 'wcwidth'
[-Werror=nested-externs]
But this is weird. wcwidth() manpage says to include wchar.t which we
are doing. Maybe _XOPEN_SOURCE macro is not defined?
Anyway, I'll let Simon to figure this out O:-)
Michal