| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
a volatile sig_atomic_t variable, and then processing events in the mainloop.
But only one variable was used for 3 signals, with |= bit operations which
are signal interruptable! Rewrite the code to use 3 independent variables
and cleanup how the mainloop observes indications.
ok schwarze
|
|
|
|
|
|
|
| |
decoding a UTF-8 multibyte character to the left of a given byte -
is already needed at three places in line.c and will also be needed
for cleanup work in cmdbuf.c in the future.
OK millert@
|
|
|
|
| |
with the standard isascii(3)
|
|
|
|
|
|
|
|
|
|
| |
Use the standard functions mbtowc(3), wcwidth(3), iscntrl(3) instead
of bad functions like get_wchar(), utf_len(), is_wide_char(),
is_composing_char(), is_combining_char(), control_char().
If only half of a double-width character is shifted off screen, do not
inspect anything following it because that clearly remains on-screen.
Improve and add comments.
OK millert@
|
|
|
|
|
|
|
| |
Use the standard function mbrtowc(3) to distinguish valid, incomplete,
and invalid multibyte characters, getting rid of five calls to functions
and macros that we want to phase out, and of one goto. Add comments.
OK millert@.
|
|
|
|
|
|
|
|
| |
* get_wchar() -> mbtowc(3)
* is_composing_char() || is_combining_char() -> wcwidth(3)
* control_char() -> !isprint(3)
* is_ubin_char() -> !iswprint(3)
OK millert@
|
|
|
|
|
|
|
|
|
| |
Use wchar_t instead of LWCHAR and mbtowc(3) instead of step_char().
Play it safe and handle all error cases, even in the arguably unlikely
case that linebuf[] contains UTF-8 encoding errors.
Reset mbtowc(3) internal state after failure for portability,
also in one place where mbtowc(3) was already introduced earlier.
OK nicm@
|
|
|
|
| |
tweak and OK millert@
|
|
|
|
|
|
|
|
|
|
| |
a call to the flawed function step_char(-1), using the standard
function mbtowc(3) instead.
Merge in in_ansi_esc_seq(), simplifying the code, and make the
related functions is_ansi_end() and is_ascii_char() static because
they are used in line.c only.
OK nicm@, and no opposition when shown on tech@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for ANSI escape sequences introduced by an 8-bit CSI (e.g. "\23343m")
because these are neither compatible with UTF-8 nor strictly
compatible with pure ASCII and for those introduced by an UTF-8 CSI
(e.g. "\302\23343m") because not even xterm(1) supports them at
all, not even with a non-default configuration, because both forms
are very rarely used, if at all, and because the current code trying
to support them doesn't even appear to work according to my tests.
Full support for the ESC-[ CSI (e.g. "\033[43m") remains.
Tweaks and OK millert@, OK nicm@,
and sthen@ agrees with the general direction.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the standard function wcwidth(3) instead of several hand-rolled
functions accessing outdated local character tables, making this
part of the code conform to our in-tree Unicode 10.
Of course, with the current hand-rolled (and buggy) UTF-8 parser
contained in less(1), this only works if wchar_t stores UCS-4 values
and is more than 31 bits wide, but both will always be true on
OpenBSD, and ultmately, we shall switch to mbtowc(3) for parsing
anyway, lifting these restrictuons.
The existence of the outdated character tables was originally
called out by Evan Silberman on bugs@.
OK stsp@
|
|
|
|
| |
ok millert and nicm a while ago
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
can either mean an underlined underscore or a bold underscore. This
ambiguity can be 'resolved' by takeing the state of the surrounding text
into account. If surrounded by bold text, the result should probably be
bold and likewise for underlined. less(1) previously only looked at the
preceding text and ul(1) didn't examine the context at all.
tweaks and ok schwarze
ok tb (on a previous version of the diff)
|
|
|
|
| |
ok nicm@
|
|
|
|
|
|
|
|
| |
int-to-str conversions and just use constants instead. The only binary
change is caused by using an unnecessarily large buffer for an int. This
is a consequence of simplifying some code that will be gone soon.
ok nicm@
|
|
|
|
|
|
| |
aliases
ok nicm@
|
|
|
|
|
|
| |
condition.
ok nicm@
|
|
|
|
|
|
| |
void* cast.
ok nicm@
|
|
|
|
|
| |
terms with the existing copyright, so it is clear it applies the same
terms.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
D'Amore at https://github.com/gdamore/less-fork. This has significantly
less portability goop, has a tidied up code style, uses terminfo instead
of termcap, and is has stricter POSIX compliance.
Many of our local changes have been accepted upstream: substantial
remaining local changes are code to read help files from /usr/share
rather than compiling them in, man page and help improvements, and some
tweaks to the default options.
Review and testing by millert, ok deraadt
|
|
|
|
| |
ok guenther@, ok jmc@ for man bits
|
|
|
|
|
| |
move the call to bell() out of u_interrupt() (a signal handler).
OK and with help from deraadt@
|
|
|
|
| |
ok nicm@
|
|
|
|
| |
very lone lines, as reported by Steffen Wendzel. ok deraadt@
|
|
|
|
|
|
| |
of doing our own memmove() (incorrectly) just use memmove().
Bug found by Matthias Scheler <tron@zhadum.de>.
OK deraadt@ henning@ krw@
|
|
|
|
|
|
| |
size instead of just incrementing it by LINEBUF_SIZE and use realloc()
+ memset() instead of calloc() + memcpy(). Prevents excessive resource
usage when displaying very long lines. OK deraadt@, krw@ and otto@
|
| |
|
| |
|
|
|
|
|
| |
reviewed by tdeval, millert, dhartmei and others. more bits coming here
from some of them i think
|
|
|
|
| |
millert@ ok
|
| |
|
|
|