[pve-devel] [RFC PATCH common] cli: prettify tables even more
Wolfgang Bumiller
w.bumiller at proxmox.com
Thu Aug 22 12:08:27 CEST 2019
On Wed, Aug 21, 2019 at 09:35:56PM +0200, Dietmar Maurer wrote:
> Are your sure common terminals support those characters?
>
> They did not when I tested ...
Curious, when using utf-8 encoding for those characters I wouldn't see
how these characters would be any more special than any other?
In any case, tested urxvt, terminator, xfce4-terminal, gnome-terminal,
lxterminal.
Also note that all those symbols already existed in the extended ascii set,
codes 181, 198 and 216, and yes, those do show up correctly in dosbox ;-)
> > On 21 August 2019 14:33 Wolfgang Bumiller <w.bumiller at proxmox.com> wrote:
> >
> >
> > Separate the header with a double line.
> >
> > Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
> > ---
> > src/PVE/CLIFormatter.pm | 18 +++++++++++++++++-
> > 1 file changed, 17 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/PVE/CLIFormatter.pm b/src/PVE/CLIFormatter.pm
> > index 84dbed1..0e9cbe6 100644
> > --- a/src/PVE/CLIFormatter.pm
> > +++ b/src/PVE/CLIFormatter.pm
> > @@ -186,6 +186,7 @@ sub print_text_table {
> > my $borderstring_m = '';
> > my $borderstring_b = '';
> > my $borderstring_t = '';
> > + my $borderstring_h = '';
> > my $formatstring = '';
> >
> > my $column_count = scalar(@$props_to_print);
> > @@ -255,41 +256,49 @@ sub print_text_table {
> > if ($utf8) {
> > $formatstring .= "│ %$alignstr${cutoff}s │";
> > $borderstring_t .= "┌─" . ('─' x $cutoff) . "─┐";
> > + $borderstring_h .= "╞═" . ('═' x $cutoff) . '═╡';
> > $borderstring_m .= "├─" . ('─' x $cutoff) . "─┤";
> > $borderstring_b .= "└─" . ('─' x $cutoff) . "─┘";
> > } else {
> > $formatstring .= "| %$alignstr${cutoff}s |";
> > $borderstring_m .= "+-" . ('-' x $cutoff) . "-+";
> > + $borderstring_h .= "+=" . ('=' x $cutoff) . '=';
> > }
> > } elsif ($i == 0) {
> > if ($utf8) {
> > $formatstring .= "│ %$alignstr${cutoff}s ";
> > $borderstring_t .= "┌─" . ('─' x $cutoff) . '─';
> > + $borderstring_h .= "╞═" . ('═' x $cutoff) . '═';
> > $borderstring_m .= "├─" . ('─' x $cutoff) . '─';
> > $borderstring_b .= "└─" . ('─' x $cutoff) . '─';
> > } else {
> > $formatstring .= "| %$alignstr${cutoff}s ";
> > $borderstring_m .= "+-" . ('-' x $cutoff) . '-';
> > + $borderstring_h .= "+=" . ('=' x $cutoff) . '=';
> > }
> > } elsif ($i == ($column_count - 1)) {
> > if ($utf8) {
> > $formatstring .= "│ %$alignstr${cutoff}s │";
> > $borderstring_t .= "┬─" . ('─' x $cutoff) . "─┐";
> > + $borderstring_h .= "╪═" . ('═' x $cutoff) . '═╡';
> > $borderstring_m .= "┼─" . ('─' x $cutoff) . "─┤";
> > $borderstring_b .= "┴─" . ('─' x $cutoff) . "─┘";
> > } else {
> > $formatstring .= "| %$alignstr${cutoff}s |";
> > $borderstring_m .= "+-" . ('-' x $cutoff) . "-+";
> > + $borderstring_h .= "+=" . ('=' x $cutoff) . "=+";
> > }
> > } else {
> > if ($utf8) {
> > $formatstring .= "│ %$alignstr${cutoff}s ";
> > $borderstring_t .= "┬─" . ('─' x $cutoff) . '─';
> > + $borderstring_h .= "╪═" . ('═' x $cutoff) . '═';
> > $borderstring_m .= "┼─" . ('─' x $cutoff) . '─';
> > $borderstring_b .= "┴─" . ('─' x $cutoff) . '─';
> > } else {
> > $formatstring .= "| %$alignstr${cutoff}s ";
> > $borderstring_m .= "+-" . ('-' x $cutoff) . '-';
> > + $borderstring_h .= "+=" . ('=' x $cutoff) . '=';
> > }
> > }
> > } else {
> > @@ -313,15 +322,22 @@ sub print_text_table {
> >
> > $writeln->($borderstring_t) if $border;
> >
> > + my $borderstring_sep;
> > if ($header) {
> > my $text = sprintf $formatstring, map { $colopts->{$_}->{title} } @$props_to_print;
> > $writeln->($text);
> > + $borderstring_sep = $borderstring_h;
> > + } else {
> > + $borderstring_sep = $borderstring_m;
> > }
> >
> > for (my $i = 0; $i < scalar(@$tabledata); $i++) {
> > my $coldata = $tabledata->[$i];
> >
> > - $writeln->($borderstring_m) if $border && ($i != 0 || $header);
> > + if ($border && ($i != 0 || $header)) {
> > + $writeln->($borderstring_sep);
> > + $borderstring_sep = $borderstring_m;
> > + }
> >
> > for (my $i = 0; $i < $coldata->{height}; $i++) {
> >
> > --
> > 2.20.1
> >
> >
> > _______________________________________________
> > pve-devel mailing list
> > pve-devel at pve.proxmox.com
> > https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list