On Fri, Aug 24, 2018 at 12:10:47PM +0200, Michal Privoznik wrote: > 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? It is quite simple - the function doesn't exist on mingw :-) $ grep -r wcwidth /usr/i686-w64-mingw32/sys-root/mingw/include/ ...nothing... Looks like gnulib can rescue us though https://www.gnu.org/software/gnulib/manual/html_node/wcwidth.html Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list