The remaining memory leaks are related to ncurses internals, or the one
open file descriptor when user users 'q' to exit.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
If there is void in argument list at function prototype it is reasonable
to expect to see it also where the function is wrote. This change also
removes unnecessary return value void casting.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Compiler warnings often mean something, fiddling with them is not good
practise. Besides the 'proglem' removed macro tried to 'fix' does not
even occur when compiling with modern gcc.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Includes a fix also to one assignment warning (see below).
text-utils/pg.c:1477:24: warning: assignment discards 'const' qualifier \
from pointer target type [enabled by default]
[kzak@redhat.com: - use const char rather than xstrdup() for static /bin/sh string]
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Karel Zak <kzak@redhat.com>
Add function parse_arguments(), which has the same code block that was in
over long, and too deeply intended, main().
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
The --output-separator option will allow user to define table column
separator. This will allow for example to write back same delimeter as
which was used as input separator, for example
column -t -s : -o : /etc/passwd
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Add to manual page how to achieve old behavior, just in case someone
relies on buggy behavior of the command.
[kzak@redhat.com: - remove unnecessary info from the man page :-)]
Reported-by: Padraig Brady <P@draigBrady.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Signed-off-by: Karel Zak <kzak@redhat.com>
This patch changes interpretation of subsequent delimeter interpretation.
Earlier version merged columns that had null string as content together,
which lead to output as visualized below.
$ printf "a🅱️c\n1::3\n" | column -t -s ':'
a b c
1 3
The number 3 has wrong column, which this patch takes care of, and alters
the output following way.
$ printf "a🅱️c\n1::3\n" | column -t -s ':'
a b c
1 3
This patch does not alter the default case, e.g., subsequent white spaces
are understood as separator of the same field, and the beginning of line
white spaces are being ignored together.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
The --separator and --columns long options in util-linux-2.21.2 and in
a git clone from 5 minutes ago, don't work:
$ echo foobar | column -s x
foobar
$ echo foobar | column -c 10
foobar
$ echo foobar | column --separator=x
column: option '--separator' doesn't allow an argument
$ echo foobar | column --separator x
Segmentation fault
$ echo foobar | column --columns 10
column: bad columns width value: '(null)': Invalid argument
$ echo foobar | column --columns=10
column: option '--columns' doesn't allow an argument
Looks like a simple case of missing has_arg flag in the "struct
option" initialization for these two options. The patch just adds the
flag. I haven't done thorough testing of the patched code, but it
seems to work OK and it no longer segfaults or tries to dereference a
null pointer.
Signed-off-by: Karel Zak <kzak@redhat.com>
text-utils/hexdump.h:84:5: warning: shadowed declaration is here [-Wshadow]
./include/xalloc.h:23:28: warning: declaration of 'size' shadows a global declaration [-Wshadow]
./include/xalloc.h:33:40: warning: declaration of 'size' shadows a global declaration [-Wshadow]
./include/xalloc.h:43:49: warning: declaration of 'size' shadows a global declaration [-Wshadow]
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
text-utils/ul.c:641:25: warning: declaration of 'col' shadows a global declaration [-Wshadow]
text-utils/ul.c:126:5: warning: shadowed declaration is here [-Wshadow]
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
text-utils/more.c:1123:13: warning: declaration of 'state' shadows a previous local [-Wshadow]
text-utils/more.c:1095:18: warning: shadowed declaration is here [-Wshadow]
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
The global variable $(LDADD) is always used if program_LDADD is
not specified. Let's use $LDADD everywhere to avoid exceptions for
people who need to specify global $LDADD.
Signed-off-by: Karel Zak <kzak@redhat.com>
more.c:318:5: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow]
more.c:362:3: warning: assuming pointer wraparound does not occur when comparing P +- C1 with P +- C2 [-Wstrict-overflow]
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Earlier hexdump printed unnecessary, and perhaps even misleading, 'bad
file descriptor' message.
$ hexdump foobar
hexdump: foobar: No such file or directory
hexdump: foobar: Bad file descriptor
The message is changed to
$ hexdump foobar
hexdump: foobar: No such file or directory
hexdump: all input file arguments failed
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Some libc do not expose program_invocation_short_name. Therefore util-linux
comes with helpers in 'c.h'. Use the 'c.h' in hexsyntax.c where it was missed.
This patch fixes following error for me:
---8<---
hexsyntax.c: In function 'newsyntax':
hexsyntax.c:115: error: 'program_invocation_short_name' undeclared (first use in this function)
hexsyntax.c:115: error: (Each undeclared identifier is reported only once
hexsyntax.c:115: error: for each function it appears in.)
--->8---
Signed-off-by: Andreas Bießmann <biessmann@corscience.de>
regexec only returns 0 or REG_NOMATCH so remove a meaningless test
Signed-off-by: Jeremy Huntwork <jhuntwork@lightcubesolutions.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
display.c: In function ‘get’:
display.c:262:117: warning: comparison of distinct pointer types lacks
a cast [enabled by default]
Signed-off-by: Karel Zak <kzak@redhat.com>