libsmartcols: (sample) cleanup line separator usage

* add comment to explain when nolinesep flag is necessary
* force to print \n before switch to the next line to support

	  ./sample-scols-continuous > file

use case.

Addresses: https://github.com/ignatenkobrain/python-smartcols/issues/18
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2017-10-12 12:01:25 +02:00
parent 1e46776263
commit f086478af4
2 changed files with 14 additions and 4 deletions

View File

@ -108,8 +108,16 @@ int main(int argc, char *argv[])
sprintf(timecell, "%f [%3d%%]", diff,
done ? 100 : (int)(diff / (TIME_PERIOD / 100.0)));
/* don't print line separator when in progress */
scols_table_enable_nolinesep(tb, !done);
/* Note that libsmartcols don't print \n for last line
* in the table, but if you print a line somewhere in
* the midle of the table you need
*
* scols_table_enable_nolinesep(tb, !done);
*
* to disable line breaks. In this example it's
* unnecessary as we print the latest line only.
*/
/* print the line */
scols_table_print_range(tb, line, NULL);
@ -118,7 +126,8 @@ int main(int argc, char *argv[])
fflush(scols_table_get_stream(tb));
/* move to the begin of the line */
fputc('\r', scols_table_get_stream(tb));
}
} else
fputc('\n', scols_table_get_stream(tb));
} while (!done);
last = now;

View File

@ -901,6 +901,7 @@ static int print_range( struct libscols_table *tb,
struct libscols_line *ln;
assert(tb);
DBG(TAB, ul_debugobj(tb, "printing range"));
while (rc == 0 && scols_table_next_line(tb, itr, &ln) == 0) {
@ -1524,7 +1525,7 @@ int scols_table_print_range( struct libscols_table *tb,
if (scols_table_is_tree(tb))
return -EINVAL;
DBG(TAB, ul_debugobj(tb, "printing range"));
DBG(TAB, ul_debugobj(tb, "printing range from API"));
rc = initialize_printing(tb, &buf);
if (rc)