Age | Commit message (Collapse) | Author | Files | Lines |
|
In a multibyte locale such as en_GB.UTF-8, the pg command cannot handle files
containing a form feed character (ASCII 0x0c) at the start of a line. The
program enters an infinite loop.
I've traced the problem to the function endline_for_mb in file pg.c. The code
assumes that the libc function wcwidth will return a nonnegative value, which
is not true for a form feed character. wcwidth returns -1 and the unsigned
variable "pos" goes into underflow.
I'll attach a patch which tests whether the character is printable before
calling wcwidth. If not, it uses instead the width of the constant L'?' which
is later used to replace nonprintable characters. I trust that we can assume
printability of this constant :-)
Steps to Reproduce:
1. Select a multibyte locale (tested with en_GB.UTF-8)
2. Create a file with a form feed character (0x0c) at the start of a line.
3. Try to display this file using the pg command.
Reported-by: Mark Calderbank <m.calderbank@iname.com>
Reported-by: Mike Frysinger <vapier@gentoo.org>
Addresses: https://bugs.gentoo.org/297717
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Reported-by: Petr Pisar <petr.pisar@atlas.cz>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
On Thu, Nov 26, 2009 at 03:42:21AM -0500, Mike Smith wrote:
>[mike@laptop ~]$ dd if=/dev/urandom of=testfile bs=1 count=42
>42+0 records in
>42+0 records out
>42 bytes (42 B) copied, 0.000216179 s, 194 kB/s
>[mike@laptop ~]$ hexdump -Cv testfile -s 42
>0000002a bb b0 ba 50 fe 70 f8 d9 f7 96 36 49 e9 74 c7 bd |...P.p....6I.t..|
>0000003a 82 cb 19 64 a6 30 53 29 d2 fa 08 e3 f4 26 7f de |...d.0S).....&..|
>0000004a bb 2c f2 df 7c a7 8c 6e 66 01 |.,..|..nf.|
>00000054
>[mike@laptop ~]$ hexdump -Cv testfile -s 43
>0000002a
I think I got where the bug is, it's an off-by-one problem...
Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com>
|
|
ssize_t types are shown with %zd, not %ld.
Reviewed-by: WANG Cong <xiyou.wangcong@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Addresses-Debian-Bug: #552608
Reported-By: Roger Leigh <rleigh@debian.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
This function is marked obsolete in POSIX.1-2001 and removed in
POSIX.1-2008.
Conditionally replaced with nanosleep().
Signed-off-by: Daniel Mierswa <impulze@impulze.org>
|
|
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
|
|
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
|
|
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
|
|
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
|
|
Those 4 functions are marked as LEGACY in POSIX.1-2001 and removed in
POSIX.1-2008.
Replaced with memmove,memset,strchr and strrchr.
Signed-off-by: Daniel Mierswa <impulze@impulze.org>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: Peter Breitenlohner <peb@mppmu.mpg.de>
|
|
The variable name "usrlibexecdir" is very confusing (because we have
/usr/libexec). The "exec" prefix is required for user-defined
directories, see
http://www.gnu.org/software/hello/manual/automake/The-Two-Parts-of-Install.html#The-Two-Parts-of-Install
This patch renames all usr*execdir variables to usr*_execdir.
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: Pedro Ribeiro <p.m42.ribeiro@gmail.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
this patch removes old CVS keywords from comments.
mount(8) works for newer Linux then 0.99 ;)
Signed-off-by: maximilian attems <max@stro.at>
|
|
The a.out.h header is not friendly to portable systems (iow, those that
lack a.out support), and since the defines are only used in a cheesy magic,
just use the magic constants. It's not like they're ever going to change.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Read the magic bytes into signed chars instead of vanilla chars in
order to ensure consistent results even on systems whose char type has
no sign. Eliminate spurious parentheses in return statements.
Correct grammatical errors in comments.
Signed-off-by: James Youngman <jay@gnu.org>
|
|
This problem has been detected by tools/codecheck-config.
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: James Youngman <jay@gnu.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Detect ncursesw and use it in place of ncurses when possible
(default). Allow people to use classic (non-wide) version by
--with-ncurses or disable all ncurses/ncursesw support by
--without-ncurses.
Co-Author: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Include <sys/inotify.h> only when inotify_init() was detected
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
|
Signed-off-by: Stepan Kasal <skasal@redhat.com>
|
|
This patch:
- clean up tailf(1) code
- remove stupid "for() { malloc() }" array allocation in the tailf() function
- add inotify(7) support
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-Off-By: Samuel Thibault <samuel.thibault@ens-lyon.org>
|
|
Fix strict gcc warnings that come from using:
("-Wall -Wp,-D_FORTIFY_SOURCE=2")
more.c:185: warning: passing argument 1 of 'setupterm' discards qualifiers from pointer target type
more.c:205: warning: passing argument 1 of 'tparm' discards qualifiers from pointer target type
more.c:812: warning: pointer targets in passing argument 2 of 'mbrtowc' differ in signedness
more.c:931: warning: pointer targets in passing argument 2 of 'mbrtowc' differ in signedness
more.c:1285: warning: pointer targets in passing argument 1 of 'ttyin' differ in signedness
more.c:1486: warning: pointer targets in passing argument 1 of 'ttyin' differ in signedness
more.c:1879: warning: pointer targets in passing argument 2 of 'mbrtowc' differ in signedness
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
|
|
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
|
|
The function warn() in rev.c is actually duplicate code,
so here we remove it.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
It will be useful if we can print out the last n lines instead of the last
10, just like tail.
There are examples:
tailf -n 5 file1
tailf --lines 10 file2
tailf -20 file3
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Fix strict gcc warnings in tailf that come from using:
("-Wall -Wp,-D_FORTIFY_SOURCE=2")
tailf.c:111: warning: ignoring return value of 'fwrite', declared with attribute warn_unused_result
Also, tailf uses perror() for error reporting, but it inserts
an fprintf call first, so perror() is actually reporting the
result of the fprintf() call, not the failing call; change
the code to print the message by using strerror() instead.
Builds cleanly on x86_32 and x86_64.
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Run pg(1) and type '/<CR>' which is supposed to forward search for the
previously remembered search string. pg(1) will segfault after printing
"No remembered search string:".
Signed-off-by: Rajeev V. Pillai <rajeevvp@gmail.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
On Monday 03 September 2007, Karel Zak wrote:
> http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/590/focus=592
>
> I agree that we need a better support for compilation without
> locales, but from my point of view NLS != all locales stuff. The NLS
> support is subset only.
thinking about the input from everyone, i'd propose the attached ...
Only pull in locale.h as needed and move it to the common nls.h.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Try:
$ printf "aaa _\bŽ_\bŽ_\bŽ bbb\n" | more
aaa ŽŽŽ bbb
(ŽŽŽ has to be three underlined chars on terminal).
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Signed-off-by: LaMont Jones <lamont@mmjgroup.com>
|
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
When system ncurses is built with --with-termlib=tinfo option
then there are two libraries - libtinfo (which contains terminal
related functions) and libncurses (rest).
Correctly link against libtinfo in such case.
Signed-off-by: Arkadiusz Miskiewicz <arekm@maven.pl>
|
|
The build-sys (text-utils/Makefile.am) allows to compile against
ncurses and termcap. The termcap version is broken in more.c.
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
Wildcards in EXTRA_DIST break "make dist" for vpath build.
But plain directory names are ok.
Signed-off-by: Stepan Kasal <skasal@redhat.com>
|
|
Also, the patch makes "make mrproper" more robust.
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
The col truncates output when multibyte errors is detected, but the problem is
not reported to stderr and return code is still same like for successful exit.
This stupid behaviour is fixed by this patch.
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
There has been unexpected mix of HAVE_WIDECHAR and ENABLE_WIDECHAR macros. The
ENABLE_WIDECHAR is old version and has to be replaced everywhere otherwise we
will see bugs with multibyte stuff.
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
gcc 4.1.0: "warning: memset used with constant zero length parameter...."
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
When you view a file with the more command and run a shell, the file descriptor
for reading the file is leaked to that process.
To test, more any file. Then do !/bin/sh. At the prompt do "ls -l /proc/$$/fd"
and you'll see the leaked fd.
From: Steve Grubb <sgrubb@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
|
|
This patch add all missing headers, man pages and README files to automake
stuff and "make dist-gzip" produces useful tarball now.
Signed-off-by: Karel Zak <kzak@redhat.com>
|