2026-03-04 11:31 christos
* makelist, map.c, map.h: No need to keep an allocated field. We
know that the first EL_NUM_FCNS are not allocated.
2026-03-04 00:04 christos
* eln.c, makelist, map.c, map.h: PR/60054: Kristofer Peterson:
adding user defined functions with narrow name/desription leaks
memory
2026-03-03 16:06 christos
* history.c: PR/60052: Kristofer Peterson: history_load() off by
one memory access bug
2026-03-03 16:05 christos
* chared.c, common.c, hist.c, hist.h: PR/60050: Kristofer Peterson:
libedit doesn't handle long lines correctly Fix history resizing,
and copying.
2026-02-01 02:52 uwe
* editline.7: editline(7): Document vi-histedit command
PR lib/59953 by Artem Bunichev
2026-01-18 18:18 christos
* refresh.c: When trying to print a help message while editing a
multiline entry, print move down enough so that the error message
does not get printed on top of the newline from Yuishiro NAITO.
Example program:
#include <stdio.h> #include <histedit.h>
char * prompt(EditLine *el) { return "(config) "; }
static unsigned char help(EditLine *el, int ch) {
printf("\n");
printf("aaa:\n");
printf("bbb:\n");
printf("ccc:\n");
printf("ddd:\n");
return CC_REDISPLAY;
}
int initialize(EditLine **ret) { EditLine *el;
if ((el = el_init("sample", stdin, stdout, stderr)) ==
NULL)
goto error;
el_set(el, EL_PROMPT, prompt);
el_set(el, EL_EDITOR, "emacs");
el_set(el, EL_ADDFN, "help", "", help);
el_set(el, EL_BIND, "?", "help", NULL);
*ret = el;
return 0;
error: el_end(el); *ret = NULL; return -1; }
int main(int argc, char *argv[]) { EditLine *el; const
wchar_t *cmd; int len;
if (initialize(&el) < 0) {
printf("initialize failed\n");
return 1;
}
while ((cmd = el_wgets(el, &len)) != NULL) {
printf("ok\n");
}
el_end(el);
return 0;
}
2026-01-09 23:12 kre
* edit.expsym: Add rl_kill_full_line which was recently added
Probably that addition also warranted a libedit minor bump.
Hopefully unbreak the builds.
2026-01-09 18:49 christos
* readline.c, readline/readline.h: PR/59883: nia: implement
rl_kill_full_line
2025-12-16 03:40 kre
* editline.3, el.c, el.h, histedit.h, terminal.c, vi.c: [Prereq for
PR bin/58609] Add EL_GETENV to libedit
When interacting with the shell, and perhaps other applications,
editline needs to obtain the values of some environment
variables.
Normally getenv(3) does that - but that doesn't work when being
used in sh(1) as getenv() simply accesses the environment as it
was when sh(1) was invoked - after that, in sh anyway, that
environment is simply abandoned (well, kind of) - but certainly
no changes made by the shell will be reflected there.
To allow editline to obtain current values of environment
variables, add a new el_set()/el_get() "op" parameter value,
which can be used to instruct editline which function to use for
the purpose. That is EL_GETENV.
This is part of a (long pending, awaiting testing) fix for PR
bin/58609 - but I'm getting tired of having it sitting
uncommitted in my source tree - and I think this part is self
contained, and simple enough, to simply commit.
2025-12-14 19:07 christos
* chared.c, chared.h, common.c, editline.3, el.c, eln.c, emacs.c,
histedit.h, map.c, map.h, search.c, vi.c: PR/59737: Bernie
Siegert: Add a method to set custom wordchars.
2025-08-02 07:54 perseant
* edit.expsym, el.c, el.h, history.c, keymacro.c, literal.c, map.c,
read.c, readline.c, refresh.c, sig.c: Sync with HEAD
2025-06-14 15:43 christos
* readline.c, sig.c: Change kill(0, signo) -> raise(signo) so that
we only signal the current process not the whole process group.
Pointed out by geoff thomas. Related issues:
https://www.postgresql.org/message-id/271520.1713052173%40sss.pgh.pa.us
https://github.com/astral-sh/python-build-standalone/pull/652\
#issuecomment-2972762033
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=159226
2025-01-03 01:40 rillig
* el.c, el.h, keymacro.c, map.c, read.c: libedit: remove redundant
break statements after EL_ABORT
2024-12-18 16:38 christos
* sig.c: From tkoeppe@github: Specify SA_ONSTACK when setting up a
signal handler. This allows the handler to use the alternate
signal stack if one is available in the handling thread, but has
no effect otherwise.
This change makes the signal handler respect existing choices
better. Specifically, this allows signal handlers to be set when
the process includes a Go runtime, since Go enforces that all
signal handlers in the process use the SA_ONSTACK flag (e.g. see
golang/go#20400).
2024-12-05 23:21 christos
* literal.c, refresh.c: Don't eat 0 width characters, print them.
2024-11-21 20:49 riastradh
* edit.expsym: libedit: Add expected symbols list.
PR lib/58838: shared libraries in base should all have expsym
lists
2024-11-21 20:49 perseant
* edit.expsym: file edit.expsym was added on branch
perseant-exfatfs on 2025-08-02 05:54:48 +0000
2024-07-11 07:41 kre
* history.c: Don't fchmod(fileno(fp), ...) in history_save_fp().
There are two reasons for this, first, the permissions of the
history file should be able to be set by the user, not forced to
0600 every time the history file is overwritten (or appended to).
And more importantly, the fp used for fileno(fp) might have come
from fmemopen() or funopen() (etc) - none of which put a file
descriptor in the "fd" field (ie: fileno(fp) == -1).
To compensate for that, when a history file is opened (in
history_save()) set the default permissions then - if the file is
actually created. As fopen() cannot do that (it simply uses
0666&~umask) create the (normal type) of fp using (approximately)
fdopen(open(...), ...) where the open supplies the 0600 default
permissions that are desired here (which might still be
restricted even more by the umask). Callers using
history(...,H_SAVE_FP,...) or history(...,H_NSAVE_FP,...) now
need to look after any permission setting required themselves
(but as the doc says absolutely nothing about that, one way or
the other, what happens in this area has always been unspecified,
and still is)
One "feature" of the fchmod() method is lost here - apart from
forcing the 0600 permissions (which isn't really desirable) that
fchmod() would also have failed if the current (effective) uid is
not the owner of the history file (or root). If that is
required, a test for it could be added later - the effect would
be as it has always been, the file named must have been writable
(or its directory writable if the file did not exist) the open
would occur (potentially truncating the file) after which the
fchmod() would be attempted, possibly failing, and if so, never
writing anything. Any new uid test would work the same way.
OK christos@
2024-07-01 03:01 perseant
* common.c, refresh.c, search.c: Sync with HEAD.
2024-06-30 19:11 christos
* refresh.c: Handle the case where the cursor is on the first
character. set -o vi x ESC ~ (Robert Morris)
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279545
2024-06-30 18:29 christos
* common.c: Avoid moving the cursor before the buffer (Robert
Morris) https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279487
2024-06-30 18:26 christos
* search.c: Prevent reading before the line buffer (try ^R^W in
emacs mode at the beginning of the line) (Robert Morris)
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279426
2024-06-29 19:28 christos
* emacs.c: don't use oldc before it is set.
2024-06-29 16:13 christos
* chared.c: Prevent testing out of bounds memory. From Robert
Morris https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279762
2024-06-29 16:09 christos
* emacs.c: Retrieve the cursor position after calling c_insert,
because c_insert could enlarge the line buffer making the old
cursor position point to freed memory. From Robert Morris
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=279772
2024-05-17 04:59 christos
* el.h, eln.c: When calling el_line make sure that we call the
resizing function callback because el_line updates the legacy
LineInfo structure and we need to notify that the cached copy of
the the buffer has changed. Of course the resizing function can
call el_line itself to update the buffer, so prevent recursion.
Bug found by Peter Rufer at Arista.
2024-04-06 15:36 christos
* editline.7: update em-toggle-overwrite binding (Xose Vazquez
Perez)
2024-03-26 19:02 christos
* readline.c: fix insert key (Xose Vazquez Perez)
2024-02-04 19:47 andvar
* editline.3: s/interrrupt/interrupt/ in comment and editline(3)
man page.
2023-08-10 22:38 mrg
* chartype.c: avoid various use-after-free issues.
create a ptrdiff_t offset between the start of an allocation
region and some interesting pointer, so it can be adjusted with
this offset after realloc() returns.
found by GCC 12.
2023-08-03 16:56 rin
* Makefile: Revert CC_WNO_USE_AFTER_FREE from Makefile's (thanks
uwe@)
2023-08-03 15:36 rin
* Makefile: Sprinkle CC_WNO_USE_AFTER_FREE for GCC 12
All of them are blamed for idiom equivalent to: newbuf =
realloc(buf, size); p = newbuf + (p - buf);
2023-06-21 23:44 wiz
* libedit.pc: libedit: fix pkg-config to really provide readline
directory as intended
2023-06-21 01:09 wiz
* Makefile, libedit.pc: install pkg-config file for libedit
version number matches portable libedit --cflags output matches
portable libedit, since users probably want the readline
interface
2023-06-03 11:09 lukem
* Makefile: bsd.own.mk: rename GCC_NO_* to CC_WNO_*
Rename compiler-warning-disable variables from GCC_NO_warning to
CC_WNO_warning where warning is the full warning name as
used by the compiler.
GCC_NO_IMPLICIT_FALLTHRU is CC_WNO_IMPLICIT_FALLTHROUGH
Using the convention CC_compilerflag, where compilerflag is based
on the full compiler flag name.
2023-05-30 13:53 christos
* tokenizer.c: Fix some const qual (Piotr Pawel Stefaniak)
2023-04-25 19:51 christos
* filecomplete.c, filecomplete.h, readline.c, sys.h,
readline/readline.h: pass lint.
2023-04-24 22:02 christos
* readline.c: PR/57376: Jorge Giner: readline file completion does
not quote; do the same.
2023-04-21 16:56 christos
* readline.c, readline/readline.h: Align types with readline-8.2
(wiz@)
2023-02-04 15:34 christos
* config.h, sys.h, terminal.c: Remove unused stuff, and limit the
scope of some of the used ones. (from des@freebsd)
2023-02-03 23:01 christos
* filecomplete.c, histedit.h: Add a entry point for the complete
function for FreeBSD compatibility with sh.
2023-02-03 20:47 christos
* sig.c: Don't clear the handle to el "sel" and set it earlier to
prevent handling a signal before the handle is set. (From: des at
FreeBSD)
2022-12-06 01:59 uwe
* editrc.5: editrc(5): Markup fixes
2022-12-02 20:23 christos
* readline.c: PR/57095: Yilei Yang: Change readline's
replace_history_entry to not make a copy of the string to replace
since H_REPLACE already makes a copy (fixes memory leak)
2022-10-30 20:11 christos
* chared.c, chartype.c, el.c, filecomplete.c, map.c, read.c,
read.h, readline.c, terminal.c: improvements in malloc/free
handling.
2022-09-21 03:33 christos
* readline.c: PR/57016: Ricky Zhou: declare lastidx
2022-09-21 01:41 christos
* readline.c: PR/57016: Ricky Zhou: Revert to trimming the last
newline instead of the first one so that multi-line commands work
again.
2022-04-11 21:37 tnn
* chartype.h: libedit/chartype.h: portability fix for OSF/1
2022-04-08 22:11 christos
* readline.c: PR/56778: Detlev Casanova: Missing rl_initialize call
in rl_copy_text
2022-03-12 16:29 christos
* filecomplete.c: Fix filename autocompletion for strings like a\)b
An escaped character should unconditionally be skipped together
with the character that does the escaping. For example, in "a\)b"
only the ")b" part was skipped but then the loop stopped at the
"\" since it's one of the characters listed in word_break. (Piotr
P. Stefaniak)
2022-02-19 18:45 christos
* readline.c, readline/readline.h: PR/56695: Walter Lozano: Correct
declaration of hook functions.
2022-02-08 22:13 rillig
* chared.c, histedit.h: libedit: fix typos, apply KNF to newly
imported code (PR/56693)
No binary change.
2022-02-08 16:05 christos
* chared.c, histedit.h, readline.c, readline/readline.h: PR/56693:
Walter Lozano: Add support for rl_delete_text and rl_set_key
2022-01-31 15:44 christos
* readline.c, readline/readline.h: PR/56622: Walter Lozano: Improve
readline compatibility by adding rl_readline_state support.
2022-01-29 21:52 christos
* readline.c: Add more refreshes from Walter Lozano. The readline
example in
http://www.mcld.co.uk/blog/2009/simple-gnu-readline-callback-style-example.html
still does not work, but it is better.
2022-01-14 14:31 christos
* readline/readline.h: Don't use __printflike, use the explicit
attribute so that this works outside NetBSD.
2022-01-14 13:48 tnn
* readline/readline.h: libedit: rl_message: annotate __printflike
2022-01-11 19:30 christos
* chared.c, eln.c, histedit.h, readline.c, readline/readline.h:
PR/56618: Walter Lozano: Improve libedit compatibility with
readline by implementing:
rl_copy_text, rl_erase_empty_line, rl_message,
rl_on_new_line,
rl_replace_line, rl_restore_prompt, rl_save_prompt
2021-09-26 15:45 christos
* filecomplete.h: make flag unsigned to match prototype of the
function used
2021-09-26 15:45 christos
* filecomplete.c: - Completion should not add a quote at the end of
the line to match an already quoted quote. (Piotr Stefaniak) -
fix lint unconst warnings for strchr
2021-09-10 20:51 rillig
* readline.c: libedit: fix indentation
No change to the resulting object files.
2021-09-10 15:33 christos
* TEST/fuzz1.c: Add an LLVM fuzzing wrapper for the portable
libedit (Christian Holler)
2021-09-10 15:29 christos
* readline.c: rl_startup_hook should be called each time. From
Carlos Henrique Lima Melara
2021-09-09 22:25 christos
* readline.c: fix memory issues found by fuzzing (double frees and
buffer overflows)
2021-09-09 22:24 christos
* refresh.c, terminal.c: Add casts to appease conversions between
wchar_t and wint_t
2021-09-03 14:20 christos
* readline.c: Try to refactor this in order to correct some of the
memory issues reported by Christian Holler.
2021-08-30 11:18 christos
* ChangeLog: Add a changes file
2021-08-29 11:41 christos
* map.c: ^W is traditionally bound to ed-delete-prev-word and not
kill-region ^R is traditionally bound to em-inc-search-next and
not redisplay This is what mksh, zsh bash, readline do (Baptiste
Daroussin)
2021-08-28 19:17 christos
* vi.c: Respect $EDITOR when execution one (Baptiste Daroussin)
2021-08-21 14:38 christos
* readline.c: PR/56370: mirabilos: libedit change from 2017 kills
history in gdb
2021-08-21 14:34 christos
* readline.c, readline/readline.h: Add more api to make gdb-11
happy (but not gdbtui as usual)
2021-08-16 00:22 rillig
* readline.c: libedit: simplify calls to macro ADD_STRING
The lint comments CONSTCOND and LINTED were not necessary. It is
simpler to just specify what to free. GCC optimizes free(NULL)
to be a no-op.
No functional change.
2021-08-16 00:14 rillig
* readline.c: readline: fix lint warning about effective unconst
cast
Calling strchr to avoid the syntactical unconst cast is not
necessary here. A simple pointer assignment is enough.
No functional change.
2021-08-15 12:12 wiz
* editline.3: Add verb to sentence.
2021-08-15 12:08 christos
* editline.3, el.c, el.h, eln.c, histedit.h, read.c: Disable
attempts to handle EINTR and non-blocking I/O by default. It is
confusing to other programs and unexpected behavior. Reported by
Ingo Schwarze. This behavior is now controlled with EL_SAFEREAD.
2021-08-15 12:06 christos
* readline.c: Add a LINTED comment... Why doesn't NOTREACHED work?
2021-07-31 22:51 andvar
* tty.h: s/dependend/dependent/
2021-07-14 09:47 christos
* tty.c: Via Jess Thrysoee, from Adrian Bunk: Fix libedit build on
Linux/Alpha Alpha is the only Linux architecture that has
SIGINFO:
https://sources.debian.org/src/manpages/5.10-1/man7/signal.7/#L522
But even on Alpha Ctrl-T is not supported, and therefore no
VSTATUS:
https://sources.debian.org/src/manpages/5.10-1/man3/termios.3/#L603-L608
For consistency check both signal existence and character
existence
2021-05-05 16:49 christos
* filecomplete.c: PR/56147: Miroslav Lichvar: Avoid memory leak if
strdup fails.
2021-03-28 15:39 christos
* filecomplete.c: Only unescape when we are quoting and don't add a
space if we are quoting (we already did) (Piotr Stefaniak)
2021-03-28 15:38 christos
* filecomplete.h: document the flag
2021-03-28 15:33 christos
* filecomplete.c: Pass the unescaped filename the the append
function so it has to do less work (for example it can call
stat(2) directly (Piotr Stefaniak)
2021-03-27 19:55 christos
* filecomplete.c, filecomplete.h: Add fn_complete2() that controls
the quoting of the returned match. Before it was based on the
heuristic that we were not supplied an
attempted_completion_function, which worked well because programs
that supplied that function were not shells and did not
want/understand shell quoting. Recently though Piotr Stefaniak
wanted to enhance command completion for the Bourne Shell and
this could benefit quoting the returned command. This function
adds an extra flags argument that controls that quoting.
2020-07-10 22:34 christos
* terminal.c: Fix numeric variable handling in settc (lyzliyuzhi at
163 dot com)
2020-06-01 01:24 christos
* terminal.c, tty.c: use strlcpy() instead of strncpy() for gcc
happiness
2020-04-13 10:03 martin
* Makefile, chared.c, chartype.c, chartype.h, el.c, el.h,
filecomplete.c, hist.c, history.c, keymacro.c, literal.c, map.c,
parse.c, read.c, readline.c, search.c, terminal.c, vi.c,
TEST/test_filecompletion.c: Mostly merge changes from HEAD upto
20200411
2020-04-08 16:07 martin
* common.c, map.c, refresh.c, search.c: Merge changes from current
as of 20200406
2020-03-30 08:56 ryo
* search.c: patbuf must be updated if the length of patbuf is
greater than or equal to 0. (that is always) fix of r1.7 was
incorrect.
2020-03-30 08:54 ryo
* common.c, map.c, refresh.c, search.c: fix build error with
SDEBUG, MAP_DEBUG, DEBUG_REFRESH
2020-01-05 08:12 abhinav
* filecomplete.c: PR lib/54510 - when user supplied completion
function is there, don't unescape the string to be completed.
2020-01-05 01:03 tih
* filecomplete.c: Summary: Remove over-simplified extraneous test
The file name matching code in libedit tries to adjust to the
presence of explicit " or ' characters in the input line, but
tries too hard. Remove a conditional that goes overboard, and
causes the completion code to fail if a quoted string is seen
before the filename to be expanded, as in
grep 'foo' bar<TAB>
Before this change, the above would not expand any possible
completions, even if they existed, because it would choose to
look for files whose names started with " bar".
2019-12-10 20:42 christos
* filecomplete.c: When 'attempted_completion_function' non-NULL,
with a 'single_match' match, the expected space is not being
added. Problem observed with "chronyc" and "sqlite3" tab
completion. That functionality got moved to escape_filename() for
the !attempted_completion_function case, but the non-NULL
'attempted_completion_function' case must also be handled.
(Lonnie Abelbeck)
2019-11-12 21:59 christos
* terminal.c: PR/54654: Soren Tempel: Make sure el_cursor.v <
el_terminal.t_size.v when moving around.
2019-10-13 09:28 mrg
* Makefile: introduce some common variables for use in GCC warning
disables:
GCC_NO_FORMAT_TRUNCATION -Wno-format-truncation (GCC 7/8)
GCC_NO_STRINGOP_TRUNCATION -Wno-stringop-truncation (GCC 8)
GCC_NO_STRINGOP_OVERFLOW -Wno-stringop-overflow (GCC 8)
GCC_NO_CAST_FUNCTION_TYPE -Wno-cast-function-type (GCC 8)
use these to turn off warnings for most GCC-8 complaints. many
of these are false positives, most of the real bugs are already
commited, or are yet to come.
we plan to introduce versions of (some?) of these that use the
"-Wno-error=" form, which still displays the warnings but does
not make it an error, and all of the above will be re-considered
as either being "fix me" (warning still displayed) or "warning is
wrong."
2019-10-09 16:31 christos
* filecomplete.c, readline.c: add +1 to strlcpy's (Patrick Welche)
2019-10-08 21:21 christos
* filecomplete.c: remore error(1) comment
2019-10-08 21:17 christos
* filecomplete.c, history.c, readline.c: Change strncpy to either
memcpy (when we know the len), or strlcpy (when we used to NUL
terminate explicitly.
2019-09-15 23:09 christos
* chartype.h, terminal.c: Fix type and remove cast (Yuichiro
NAITO/FreeBSD).
2019-09-08 07:50 abhinav
* filecomplete.c, TEST/test_filecompletion.c: PR lib/54510: Fix
file completion inside quotes which broke in rev 1.53
While there also fix handling character appending in the file
completions when inside quotes. For example when inside a quote,
if the completion is a directory then append a '/' but don't
close the quote. On the other hand when inside a quote if the
completion is a file name and it is the only match then we can
close the quote.
2019-08-21 13:11 christos
* readline.c: Increment offset when adding an element to history to
keep it aligned with the last element entered (Sandy Li
Changqing)
2019-07-28 11:27 christos
* filecomplete.c: PR/54415: Ricky Zhou: libedit stats completions
for non-file completions Use the proper completion function and
account for the character appended by the function when computing
the number of columns.
2019-07-23 15:10 christos
* literal.c: remove stray brace
2019-07-23 12:19 christos
* hist.c: put the NULL check immediately after the allocation
2019-07-23 12:18 christos
* chared.c, chartype.c, el.c, el.h, filecomplete.c, hist.c,
keymacro.c, literal.c, map.c, parse.c, read.c, readline.c,
search.c, terminal.c, vi.c: PR/54399: S�ren Tempel: Uninitialized
memory access in libedit history. Initialize the buffer using
calloc. While here change all malloc(a * sizeof(b)) to calloc(a,
sizeof(b)). XXX: should fix realloc similarly.
2019-07-23 11:47 christos
* chared.c: PR/54400: S�ren Tempel: out-of-bounds read in libedit
c_delbefore
2019-06-30 15:30 christos
* terminal.c: Add a comment explaining why we don't use DO here.
Correct the attribution on the previous patch: The patch was from
Jordan Lewis and the report from Raphael Poss.
2019-06-29 23:35 christos
* terminal.c: PR/54329: Raphael Ross: According to
https://www.gnu.org/software/termutils/\
manual/termcap-1.3/html_chapter/termcap_4.html#SEC23 the cursor
move multiple escapes have undefined results when moving out of
the screen. Stop using DO to move down multiple lines and use a
loop of newlines instead.
2019-06-11 00:05 christos
* chartype.c, editline.3, el.c, el.h, eln.c, filecomplete.c,
history.c, parse.c, read.c, readline.c, refresh.c, terminal.c,
tty.c, tty.h, TEST/test_filecompletion.c, readline/readline.h:
Sync with HEAD
2019-06-07 17:21 christos
* readline.c: PR/54281: Jonathan Perkins: NUL terminate
rl_line_buffer on modification to avoid completion leak.
2019-06-07 17:19 christos
* readline.c, readline/readline.h: PR/54280:
rl_completer_quote_characters should be const for readline compat
2019-06-07 17:18 christos
* readline.c: PR/54279: Jonathan Perkins: Ignore adjacent start/end
prompt ignore.
2019-04-26 18:56 christos
* el.c, eln.c, readline.c: Follow the man page for EL_GETTC and not
require a NULL terminated argument list:
https://reviews.llvm.org/D61191
2019-04-20 10:44 abhinav
* filecomplete.c: PR lib/54131 - declare the loop variable outside
the for loop
2019-04-12 19:30 christos
* terminal.c: PR/52359: Benjamin Lorenz: When resizing because of a
signal save and restore the cursor position, since it does not
change.
2019-04-12 17:12 christos
* filecomplete.c: PR/54117: Paavo Helde: Fix memory overrun:
Account for the closing quote in memory allocation if quoted.
2019-03-31 05:04 abhinav
* filecomplete.c, TEST/test_filecompletion.c: Perform quoting of
filename completions when there are multiple matches as well
Quoting of special characters in filename completion was
implemented for single match case, this enables it for multiple
matches as well. For example:
$ touch 'foo bar' $ touch 'foo baz' $ ls fo<TAB> autocompletes to
=> $ ls foo\ ba hitting <TAB> again shows: foo bar foo baz
This required unescaping escape sequences generated during last
completion in order to find the word to complete.
While there, also update the test to include cases for multiple
matches.
Reviewed by christos
2019-03-24 17:42 abhinav
* filecomplete.c: Only quote the completion matches if we are doing
filename completion
If the user supplies a value for the
attempted_completion_function parameter then we cannot be sure if
the completion is for filename or something else, in such a case
don't attempt to quote the completion matches.
Reviewed by christos
This should address PR lib/54067
2019-02-16 00:20 christos
* readline.c, terminal.c, readline/readline.h: PR/53983: Jonathan
Perkins: Fix types for readline compatibility
2019-02-14 21:09 christos
* readline.c: PR/53981: Jonathan Perkins: history_list should
null-terminate
2019-01-18 09:50 pgoyette
* readline.c, refresh.c: Synch with HEAD
2019-01-10 19:41 christos
* readline.c: PR/53856: F. Aragon: editline/libedit not prompting
colors in readline mode
2019-01-04 04:03 uwe
* refresh.c: Fix mis-applied change in previous. Don't increment
r_oldcv twice. PR lib/53803
2018-12-26 15:01 pgoyette
* parse.c, readline.c, tty.c, tty.h, readline/readline.h: Sync with
HEAD, resolve a few conflicts
2018-12-02 17:58 christos
* readline.c, tty.c, tty.h, readline/readline.h: Add a couple more
readline compat functions.
2018-11-29 04:10 christos
* parse.c: Fix off by one <tsahara at iij>
2018-11-26 02:52 pgoyette
* chartype.c, editline.3, el.c, el.h, read.c, refresh.c,
terminal.c: Sync with HEAD, resolve a couple of conflicts
2018-11-25 17:21 christos
* read.c: From Yuichiro Naito (FreeBSD):
hrs@ says that (cbp >= MB_LEN_MAX) condition is necessary for
checking invalid byte sequences. If malicious input was given,
libedit would read byte sequences forever.
2018-11-25 17:20 christos
* chartype.c: From Yuichiro Naito (FreeBSD): hrs@ says that
wctomb(3) has an internal shift state, if wctomb(3) is called
outside of libedit, the internal state can be changed and causes
miscalculate multibyte size.
So in this part, wcrtomb(3) should be used. wcrtomb(3) requires
that shift state is given in the argument. We always initialize
the shift state in ct_enc_width() to keep independent from
outside of libedit.
2018-11-24 13:17 christos
* terminal.c: PR/53682: Jordan Lewis: use newlines instead of
padded spaces when restoring multi-line histories.
2018-11-18 18:15 christos
* chartype.c: fix compilation
2018-11-18 18:09 christos
* chartype.c, editline.3, el.c, el.h, read.c: Remove utf-8
requirement (Yuichiro NAITO)
2018-10-23 18:49 christos
* refresh.c: Apply revisions 1.21, 1.22 from OpenBSD:
In re_fastputc(), set lastline to the new line, not the previous
line so it gets initialized properly. Fixes a crash in bc with
MALLOC_OPTIONS=UJ. OK deraadt@, committing on behalf of yasuoka@
Initialize "old" screen buffer lines before use; otherwise, they
would never get NUL-terminated and cause read buffer overruns.
This fixes for example segfaults in sftp(1) that could be
triggered by typing in an extremely long string (more than one
line - the longer, the likelier to crash), then hitting backspace
once. Problem reported and patch OK'ed by sthen@.
XXX: pullup-8
2018-09-30 03:45 pgoyette
* history.c: Ssync with HEAD
2018-09-13 11:03 kre
* history.c:
Fix editing mistake, remove ) from func call that is now gone.
2018-09-13 03:26 christos
* history.c: more efficient to use decode_result :-) Pointed out by
kre@
2018-09-13 00:10 christos
* history.c: PR/53597: Yasuhiro Horimoto: Avoid segmentation fault
in bad history file.
2018-06-25 09:25 pgoyette
* readline.c, readline/readline.h: Sync with HEAD
2018-06-09 19:41 christos
* readline.c, readline/readline.h: Provide more compatibility with
readline headers; now python-3.6.5 works when changing 'readline'
-> 'edit' in setup.py. Revert previous conditional setting of
unbuffered.
2018-05-21 06:35 pgoyette
* filecomplete.c, TEST/test_filecompletion.c: Sync with HEAD
2018-05-04 22:38 christos
* filecomplete.c: fix uninitialized
2018-05-04 18:39 abhinav
* filecomplete.c, TEST/test_filecompletion.c: Handle filename
autocompletion when the cursor is at a backslash or quote
character
For example, handle following case: $ touch 'foo bar' $
ls foo\<TAB> --> $ ls foo\ bar
Also add test cases for this.
Thanks to Christos for review
2018-05-02 10:45 abhinav
* filecomplete.c: Add '*' and '[' to the list of characters which
need escaping during autocompletion
2018-02-26 18:36 christos
* common.c, search.c: PR/53058: Nikhil Benesch: use correctly typed
variables (wchar_t vs wint_t) as parameters.
2018-01-01 23:32 christos
* el.c, readline.c, tty.c, tty.h: Only FLUSH if we are ending
libedit; DRAIN if we suspend for readline. This allows pasting
multiline buffers (Gerry Swislow)
2017-12-23 19:25 uwe
* history.c: The order in which the arguments to a function are
evaluated is undefined, so don't use va_arg() twice.
PR lib/52849
2017-12-08 17:56 christos
* readline.c: For applications that don't issue their own prompt
(like python) don't set unbuffered unless they've already printed
the prompt. This avoids printing the prompt before the
application has a chance to process the input line. From sjg@
2017-10-27 20:16 abhinav
* filecomplete.c: Add NULL check after doing memory allocation at a
couple of places
ok christos@
2017-10-15 21:17 abhinav
* TEST/test_filecompletion.c: Add copyright and rcs header to the
test program. Also, remove a test case which was not supposed to
be there. (While that test case works with the changes I
committed, testing that test case with the test program is not
possible in its current form. I'm working on that.)
2017-10-15 20:59 abhinav
* filecomplete.c, TEST/Makefile, TEST/test_filecompletion.c: Add
support for escaping special characters when doing filename
completion.
For instance if the file name is "foo bar": $ ls foo<TAB> should
get autocompleted to: $ ls foo\ bar
Works for similar other characters too, which need escaping.
Also, add an accompanying test program to ensure the escaping is
correct in various scenarios (within quotes, without quotes, with
other special characeters)
Thanks to Christos for reviews, help and feedback.
2017-10-11 08:49 abhinav
* chared.c: Fix typo in comment
2017-09-17 10:10 kre
* readline.c: PR lib/52547 - read_history (readline.c) should now
sets history_length.
Patch from Yen Chi Hsuan in the PR, extracted from Apple's
version of readline.c, then modified by me to be consistent about
what the return value really is.
2017-09-16 22:40 abhinav
* filecomplete.c: Fix indentation (convert spaces to tab)
2017-09-05 20:07 christos
* el.c, el.h, readline.c, tty.c: For readline emulation, don't
reset the tty to "sane" (cooked) mode if we did not start this
way. Also set and reset the tty on entry and exit from readline()
since this is what readline does.
2017-09-02 08:48 wiz
* editline.3: Remove trailing whitespace; convert Xr readline to Nm
readline, since we won't get a readline man page in base.
2017-09-01 12:19 christos
* editline.3, hist.h, histedit.h, history.c, readline.c,
readline/readline.h: PR/51517: Jay West: Tty settings not
restored on exit PR/51518: Jay West: prompt is interleaved with
client output
Both these issues are caused by rl_restore_handler not DTRT; fix
it so that it kills the internal libedit state completely. This
is inefficient, but it works.
Also fix: 1. add append_history()/H_NSAVE_FP 2. call the
rl_startup_hook before printing the first prompt as documented.
callint it from rl_initialize breaks python, because the
callback ends up being invoked before the readline module is
installed, and we end up dereferencing a NULL pointer. 3.
add el_resize_terminal.
With those changes, s/lreadline/ledit/g in python works.
2017-07-23 16:41 snj
* Makefile, editline.3, editrc.5, el.c, el.h, literal.c, literal.h,
prompt.c, read.c, refresh.c, refresh.h, terminal.c: Pull up
following revision(s) (requested by kre in ticket #102):
lib/libedit/Makefile: 1.64-1.65 lib/libedit/editline.3:
1.94-1.96 lib/libedit/editrc.5: 1.33 lib/libedit/el.c:
1.93-1.94 lib/libedit/el.h: 1.42 lib/libedit/literal.c:
1.1-1.3 lib/libedit/literal.h: 1.1-1.2 lib/libedit/prompt.c:
1.27 lib/libedit/read.c: 1.103 lib/libedit/refresh.c:
1.52-1.54 lib/libedit/refresh.h: 1.11
lib/libedit/terminal.c: 1.33 Make the default editrc file be
$EDITRC (from env) if set, falling back to $HOME/.editrc
otherwise. Better support for this in sh coming. -- Include
EDITRC in doc. -- mention the limitation of the literal sequence
delimiter. -- - handle literal escape sequence printing. -
factor out common code in allocation and freeing of the display.
-- - add literal sequence handling. -- remove unused variable --
add literal escape sequence support, patterned after the tcsh
ones. -- fix comment -- Fix an obvious, but almost invisible
typo (avoid some core dumps). -- Allow wide characters (properly
encoded as byte strings according to LC_CTYPE) to be (perhaps
part of) the "invisible" characters in a prompt, or the required
prompt character which follows the literal sequence (this
character must be one with a printing column width >= 1). The
literal indicator character (which is just a marker, and not
printed anywhere) (the PSlit parameter in sh(1)) can also be a
wide char (passed to libedit as a wchar_t, encoded as that by
sh(1) or other applications that support this.) Note: this has
currently only been tested with everything ascii (C locale). --
Remove workaround for ancient HTML generation code.
2017-07-03 23:32 wiz
* editline.3: Remove workaround for ancient HTML generation code.
2017-06-30 22:26 snj
* literal.c: file literal.c was added on branch netbsd-8 on
2017-07-23 14:41:26 +0000
2017-06-30 22:26 snj
* literal.h: file literal.h was added on branch netbsd-8 on
2017-07-23 14:41:26 +0000
2017-06-30 22:26 kre
* Makefile, literal.c, literal.h, refresh.c:
Allow wide characters (properly encoded as byte strings according
to LC_CTYPE) to be (perhaps part of) the "invisible" characters
in a prompt, or the required prompt character which follows the
literal sequence (this character must be one with a printing
column width >= 1). The literal indicator character (which is
just a marker, and not printed anywhere) (the PSlit parameter in
sh(1)) can also be a wide char (passed to libedit as a wchar_t,
encoded as that by sh(1) or other applications that support
this.)
Note: this has currently only been tested with everything ascii
(C locale).
2017-06-29 04:54 kre
* literal.c:
Fix an obvious, but almost invisible typo (avoid some core
dumps).
2017-06-28 01:29 christos
* refresh.c: fix comment
2017-06-28 01:25 christos
* Makefile, el.c, el.h, literal.c, literal.h, prompt.c: add literal
escape sequence support, patterned after the tcsh ones.
2017-06-28 01:24 christos
* read.c: remove unused variable
2017-06-28 01:23 christos
* refresh.c, refresh.h: - add literal sequence handling.
2017-06-28 01:23 christos
* terminal.c: - handle literal escape sequence printing. - factor
out common code in allocation and freeing of the display.
2017-06-28 01:22 christos
* editline.3: mention the limitation of the literal sequence
delimiter.
2017-06-27 03:22 kre
* editline.3, editrc.5:
Include EDITRC in doc.
2017-06-27 02:47 kre
* el.c:
Make the default editrc file be $EDITRC (from env) if set,
falling back to $HOME/.editrc otherwise. Better support for
this in sh coming.
2017-05-22 21:16 christos
* chartype.h: Add DragonFly.
2017-04-26 04:52 pgoyette
* editline.3, filecomplete.c, filecomplete.h, readline.c: Sync with
HEAD
2017-04-21 18:53 bouyer
* editline.3, filecomplete.c, filecomplete.h, hist.c, readline.c:
Sync with HEAD
2017-04-21 07:38 abhinav
* filecomplete.c, filecomplete.h, readline.c: When doing filename
autocompletion, append a trailing slash at the end of directory
names. We already do this when there is only one completion
option but in case of of multiple completion options, it wasn't
being done.
ok christos@
2017-04-10 17:02 abhinav
* editline.3: Add missing argument for H_SET.
ok christos@
2017-03-20 07:56 pgoyette
* chartype.c, hist.c, readline.c: Sync with HEAD
2017-03-05 20:23 christos
* hist.c: one extra char for NUL.
2017-03-05 18:30 christos
* hist.c: Grow the buffer for event search if there was not enough
space. From Gerry Swislow
2017-01-09 04:09 christos
* readline.c: Make sure we take into account history_base when
computing negative history offsets. (Gerry Swinslow)
2017-01-09 03:54 christos
* chartype.c: Make sure that argv is NULL terminated since
functions like tty_stty rely on it to be so (Gerry Swinslow)
2017-01-07 09:56 pgoyette
* hist.c, read.c: Sync with HEAD. (Note that most of these changes
are simply $NetBSD$ tag issues.)
2016-12-11 16:47 christos
* read.c: PR/51706: Amir Plivatsky: Fix memory leak
2016-11-07 16:30 christos
* hist.c: Change the way the built-in history works; some programs
enter history with the trailing newline, others don't so don't
make any assumptions about it when printing. Also print the
correct event number (generated), separate the event number from
the event with a tab, and visually encode the string (don't
encode tabs and spaces though).
2016-11-04 15:48 pgoyette
* filecomplete.c, readline.c, readline/readline.h: Sync with HEAD
2016-10-31 18:46 abhinav
* filecomplete.c: Fix file name auto completion in one specific
case.
For example if you do $mkdir -p /tmp/dir1/dir2
Then: $ls /tmp/di <TAB> auto completes to $ls /tmp/dir1/
Hitting <TAB> again auto completes to $ls /tmp/dir1/dir2
Whereas it should auto complete to $ls /tmp/dir1/dir2/
Essentially, in cases like above where you have to hit <TAB>
twice to get to the match and there is only one match (because
only one file/sub-directory) then auto complete doesn't work
correctly. It doesn't append a trailing slash (in case of
directory) or a space (in case of a file) to the match name.
I have tested file name completion in sh(1) and symbol completion
in gdb after this change.
2016-10-28 20:32 christos
* readline/readline.h: export rl_done
2016-10-28 20:32 christos
* readline.c: pass the stream to the getc function
2016-09-01 15:23 mbalmer
* readline.c: fix typo
2016-08-24 15:10 christos
* readline.c, readline/readline.h: more compatible with readline
history functions.
2016-06-02 23:40 christos
* readline.c: Fix previous to better match readline behavior (Ingo
Schwarze)
2016-06-02 17:11 christos
* readline.c: From Ingo Schwarze:
In libedit, the only way how H_ENTER can fail is memory
exhaustion, too, and of course it is handled gracefully,
returning -1 from history(). So of course, we will continue to
handle it gracefully in add_history() as well, but we are free to
decide what to do with the library state in this case because GNU
just dies...
I think the most reasonable course of action is to simply not
change the library state in any way when add_history() fails due
to memory exhaustion, but just return.
If H_ENTER does not fail, we know that the history now contains
at least one entry, so there is no need any longer to check the
H_GETSIZE return value. And we can of course always set
current_history_valid.
While testing these changes, i noticed three problems so closely
related that i'd like to fix them in the same diff.
1. libedit has the wrong prototype for add_history().
GNU readline-6.3 defines it as void add_history(const char
*).
Of course, that is very stupid - no way to report problems to
the caller! But the whole point of a compatibility mode is
being compatible, so we should ultimately change this.
Of course, changing the prototype of a public symbol requires
a libedit major bump. I don't want to do that casually.
Rather, i will take a note and change the prototype the next
time we need a libedit major bump for more important reasons.
For now, let's just always return 0.
2. While *implicitely* pushing an old entry off the history
increments history_base in GNU readline, testing reveals that
*explicitly* deleting one does not. Again, this is not
documented, but it applies to both remove_history() and
stifle_history(). So delete history_base manipulation
from stifle_history(), which also allows to simplify the
code and delete two automatic variables.
3. GNU readline add_history(NULL) crashes with a segfault.
There is nothing wrong with having a public interface
behave that way. Many standard interfaces do, including
strlen(3). Such crashes can even be useful to catch
buggy application programs.
In libedit/readline.c rev. 1.104, Christos made add_history()
silently ignore this coding error, according to the commit
message to hide a bug in nslookup(1). That change was never
merged to OpenBSD. I strongly disagree with this change.
If nslookup(1) is still broken, that program needs to be
fixed instead. In any case, delete the bogus check; hiding
bugs is dangerous.
2016-05-31 21:25 christos
* readline.c: remove the right history entry (Ingo Schwarze)
2016-05-25 15:01 christos
* read.c: abstract read code to a single function (Ingo Schwarze)
2016-05-24 21:31 christos
* read.c: el_map.alt can't be NULL here (Ingo Schwarze)
2016-05-24 19:42 christos
* Makefile, read.c: remove debug read (Ingo Schwarze)
2016-05-24 17:00 christos
* el.h, keymacro.c, read.c: From Ingo Schwarze:
Reduce obfuscation of errno handling. There is only one purpose
non-local errno handling is needed for: Inside el_wgets(),
several functions call down indirectly to el_wgetc(), many of
them via the dispatch table. When el_wgetc() fails, it does
properly report failure, but then various cleanup is done which
may clobber errno. But when returning due to failure, el_wgets()
wants to have errno set to the reason of the original read
failure, not to the reason of some subsequent failure of some
cleanup operation. So el_wgetc() needs to save errno, and if
it's non-zero, el_wgets() needs to restore it on failure.
This core logic is currently obscured by the fact that el_errno
is set and inspected at some additional places where it isn't
needed. Besides, since el_wgetc() and and el_wgets() are both in
read.c, el_errno does not need to be in struct editline, it can
and should be local to read.c in struct el_read_t.
Let's look at what can be simplified.
1. keymacro_get() abuses el_errno instead of having a proper
error return code. Adding that error return code is easy
because node_trav() already detects the condition and an
adequate code is already defined. Returning it, testing
for it in read_getcmd(), and returning with error from there
removes the need to inspect el_errno from el_wgets() after
calling read_getcmd().
Note that resetting lastchar and cursor and clearing
buffer[0]
is irrelevant. The code returns from el_wgets() right
afterwards.
Outside el_wgets(), these variables are no longer relevant.
When el_wgets() is called the next time, it will call
ch_reset()
anyway, resetting the two pointers. And as long as lastchar
points to the beginning of the buffer, the contents of the
buffer won't be used for anything.
2. read_getcmd() doesn't need to set el_errno again after
el_wgetc()
failure since el_wgetc() already did so. While here, remove
the silly "if EOF or error" comments from the el_wgetc()
return value tests. It's a public interface documented in a
manual, so people working on the implementation can obviously
be expected to know how it works. It's a case of
count++; /* Increment count. */
3. In the two code paths of el_wgets() that lead up to "goto
noedit",
there is no need to save the errno because nothing that might
change it happens before returning.
For clarity, since el_wgets() is the function restoring the
errno, also move initializing it to the same function.
Finally, note that restoring errno when the saved value is zero
is wrong. No library code is ever allowed to clear a previously
set value of errno. Only application programs are allowed to do
that, and even they usually don't need to do so, except when
using certain ill-designed interfaces like strtol(3).
I tested that the behaviour remains sane in the following cases,
all during execution of el_wgets(3) and with a signal handler for
USR1 installed without SA_RESTART.
* Enter some text and maybe move around a bit.
Then send a USR1 signal.
The signal gets processed, then read_char() resumes reading.
Send another USR1 signal.
Now el_wgets() sets errno=EINTR and returns -1.
* Press Ctrl-V to activate ed-quoted-insert.
Then send a USR1 signal.
The signal gets processed, then read_char() resumes reading.
Send another USR1 signal.
ed_quoted_insert() returns ed_end_of_file(), i.e. CC_EOF,
and el_wgets() returns 0.
* Press a key starting a keyboard macro.
Then send a USR1 signal.
The signal gets processed, then read_char() resumes reading.
Send another USR1 signal.
Now el_wgets() sets errno=EINTR and returns -1.
* Press : to enter builtin command mode.
Start typing a command.
Then send a USR1 signal.
The signal gets processed, then read_char() resumes reading.
Send another USR1 signal.
Now c_gets() returns -1, ed_command() beeps and returns
CC_REFRESH,
and el_wgets() resumes operation as it should.
I also tested with "el_set(el, EL_EDITMODE, 0)", and it returns
the right value and sets errno correctly.
2016-05-23 01:54 christos
* editline.3, editrc.5: documentation improvements (Ingo Schwarze)
2016-05-22 21:44 christos
* chared.c, chared.h, common.c, el.c, read.c, read.h: Stop the read
module from poking the el_chared.c_macro data structure currently
belonging to the chared module. The read module does so from
three of its functions, while no other module uses the macro
data, not even the chared module itself. That's quite logical
because macros are a feature of input handling, all of which is
done by the read module, and none by the chared module. So move
the data into the read modules's own opaque data structure,
struct el_read_t.
That simplifies internal interfaces in several respects: The
semi-public chared.h has one fewer struct, one fewer #define, and
one fewer member in struct el_chared_t; all three move to one
single C file, read.c, and are now module-local. And the
internal interface function ch_reset() needs one fewer argument,
making the code of many functions in various modules more
readable.
The price is one additional internal interface function,
read_end(), 10 lines long including comments, called publicly
from exactly one place: el_end() in el.c. That's hardly an
increase in complexity since most other modules already have
their *_end() function, read.c was the odd one out not having
one.
From Ingo Schwarze
2016-05-21 19:06 christos
* editline.3: Fix the prototype used by EL_GETCFN, mention the
associated typedef name, document the return values, expand the
list of affected functions, warn against using EL_GETCFN, and
clarify some wording and notation. (Ingo Schwarze)
2016-05-13 17:55 christos
* readline.c: From Bastian Maerkisch, via Igno Schwarze:
Even though section "2.3.3 Information About the History List" of
the history(3) info(1) manual only says
-- Function: int where_history (void)
Returns the offset of the current history element.
which maybe isn't completely clear, a plausible implementation is
that the offset returned is the same offset that can be used for
history_set_pos(), i.e. that it is 0 for the oldest entry and
increases with time, and that's how the GNU implementation
behaves indeed.
The libedit implementation, on the other hand, returns 1 for the
newest entry and increases going back in time.
2016-05-09 23:46 christos
* chared.c, chared.h, chartype.c, chartype.h, common.c, el.c, el.h,
emacs.c, hist.c, hist.h, keymacro.c, keymacro.h, makelist, map.c,
map.h, parse.c, parse.h, prompt.c, prompt.h, read.c, read.h,
refresh.c, refresh.h, search.c, search.h, sig.c, sig.h, sys.h,
terminal.c, terminal.h, tty.c, tty.h, vi.c:
s/protected/libedit_private/g
2016-05-09 23:38 christos
* Makefile, editline.c, sys.h: Instead of compiling all the source
files together in one big file, use protected visibility to
achieve the same effect.
2016-05-09 23:37 christos
* eln.c: Elide gcc warning about intermediate const casts caused by
visibility change.
2016-05-09 23:27 christos
* editline.3, editline.7, readline.c: GNU readline(3) regards
history chronologically, that is, from the perspective of the
dawn of time, so "next" means "newer" and "previous" means
"older". Libedit, by contrast, uses reverse chronology and
regards history from the perspective of the present, such that
"next" means "longer ago" and "previous" means "not so long ago".
The following patch fixes previous_history() and next_history()
as proposed by Bastian Maerkisch.
But there is a related problem demonstrated by Bastian's
regression tests that his patch did not fix: next_history() can
advance not only to the newest entry, but beyond it, which core
libedit cannot do. So that feature must be implemented locally
in readline.c.
With that, the last of Bastians tests is fixed,
test_movement_direction().
This patch also improves libedit documentation to more clearly
state what "previous" and "next" mean. GNU readline
documentation is just as unclear, but we can't easily fix that
since libedit doesn't include its own readline.3 manual.
(Ingo Schwarze)
2016-05-09 23:25 christos
* readline.c: The libedit implementation of history_get() also
differs from the GNU implementation: libedit goes to the entry
with the given number stored in the HistEvent structure, while
GNU subtracts history_base, then advances that many entries from
the oldest one. If entries were removed in between, GNU advances
further than libedit.
The call sequence H_CURR, H_DELDATA, H_CURR, H_NEXT_EVDATA looks
weird, as if part of that must somehow be redundant. But
actually, the user interface is so counter-intuitive that every
single step is really required.
- The first H_CURR is needed to be able to go back after an
error.
- The H_DELDATA is needed to move the cursor. Even though it
takes
a pointer to ev, that structure is not filled in when the call
succeeds. H_DELDATA only moves the cursor, it doesn't tell us
the new event number.
- Consequently, the second H_CURR is required to get ev.num
filled
in. But it doesn't return the data because ev has no field
for
that.
- So even though the cursor is already positioned correctly,
H_NEXT_EVDATA is needed as the final step merely to get the
data.
(Ingo Schwarze)
2016-05-08 22:15 christos
* readline.c: In stiffle_history(), trim excessive entries from the
history and advance history_base like the GNU implementation
does. (from Bastian Maerkisch)
2016-05-06 23:01 christos
* readline.c: fix logic (Ingo Schwarze)
2016-05-02 18:48 christos
* chartype.c, chartype.h, el.c, el.h, terminal.c: eliminate static
buffer with custom resizing code.
2016-05-02 18:35 christos
* chartype.h, refresh.c: fix typos from Pedro Giffuni @FreeBSD
2016-05-02 16:12 wiz
* Makefile: Add missing backslash that broke build.
2016-05-02 15:01 christos
* Makefile: Add more MLINKS, sort
2016-05-02 14:51 wiz
* editline.7: Fix Dd argument.
2016-05-02 14:43 christos
* editline.7: Add more explicit xrefs
2016-05-02 11:39 wiz
* editline.7: Fix Dd argument.
2016-04-28 17:50 christos
* Makefile, editline.3, editline.7, editrc.5: new man page from
Ingo Schwarze.
2016-04-28 14:27 christos
* search.c: Initialize patbuf (Ingo Schwarze)
2016-04-19 21:50 christos
* el.c, el.h, histedit.h, read.c, read.h: From Ingo Schwarze: -
Put the data type el_rfunc_t into the public header <histedit.h>.
- Make el_read in struct editline an opaque pointer rather
than an embedded struct. - Do not include "read.h" everywhere,
but only in the two files needing access to el_read, read.c
and el.c. - To functions that don't need more, pass the struct
el_read_t * rather than the full EditLine *. - Of course,
that means that read_init() can now fail from memory
exhaustion, but it's easy to clean up after that.
2016-04-18 19:01 christos
* Makefile, chared.c, common.c, editline.c, el.h, emacs.c,
historyn.c, keymacro.c, makelist, map.c, map.h, read.c,
readline.c, search.c, terminal.c, tokenizern.c, tty.c, vi.c: From
Ingo Schwarze: * Replace fcns.c by a shorter and simpler func.h
and include it only in the one file needing it, map.c. *
Combine help.h and help.c into a simplified help.h and
include it only in the one file needing it, map.c. * Check the
very simple, static files editline.c, historyn.c, and
tokenizern.c into CVS rather than needlessly generating them. *
So we no longer autogenerate any C files. :-) * Shorten and
simplify makelist by deleting the options -n, -e, -bc, and
-m; the latter was unused and useless in the first place. *
Move the declaration of el_func_t from fcns.h to the header
actually needing it, map.h. Since that header is already
included by el.h for unrelated reasons, that makes el_func_t
just as globally available as before. * No longer include the
simplified fcns.h into el.h, include it directly into the *.c
files needing it.
2016-04-17 20:39 christos
* common.c, editrc.5, map.c: Remove empty callbacks (Ingo
Schwartze)
2016-04-12 13:15 christos
* read.c: FIONREAD takes int as an argument (Ingo Schwarze)
2016-04-12 02:16 christos
* keymacro.c, keymacro.h, map.c, read.c: From Ingo Schwarze:
* Delete the stubs of the XK_EXE mechanism that was never
implemented.
From a security, stability, and simplicity perspective, i
would
consider implementing it a truly terrible idea, so let's
better
get rid of it.
* Do not use the local variable "num" in el_wgets() alternately
for
two completely different purposes. Only use it for the number
of characters read, as stated in the comment (or -1 as long as
that number is still unknown), not for the (more or less
boolean)
return value of read_getcmd(). Actually, there is no need at
all to save the latter return value after testing it once.
* The function read_getcmd() has very unusual return values:
It returns -1 for success and 0 for EOF/error. Switch that
around
to 0 for success and -1 for EOF/error to be less confusing,
and
get rid of the OKCMD preprocessor macro.
* Get rid of one #ifdef section in el_wgets() by using
el->el_chared.c_macro directly at the only place
where it is used.
* Delete the unused MIN() macro.
2016-04-12 00:30 christos
* parse.c: Fix indentation, Ingo Schwarze
2016-04-11 20:56 christos
* chared.c, chartype.c, chartype.h, el.c, eln.c, history.c,
keymacro.c, makelist, map.c, parse.c, prompt.c, read.c,
refresh.c, search.c, sig.c, sys.h, terminal.c, tokenizer.c,
tty.c, vi.c: Get rid of private/public; keep protected (Ingo
Schwarze)
2016-04-11 18:06 christos
* chartype.c, chartype.h, history.c, tokenizer.c: chartype cleanups
from Ingo Schwarze:
- The file tokenizer.c no longer uses chartype.h,
so don't include the header.
- The dummy definitions of ct_{de,en}code_string() for the
NARROWCHAR case are only used in history.c, so move them
there.
- Now the whole content of chartype.h is for the wide character
case only. So remove the NARROWCHAR ifdef and include the
header only in the wide character case.
- In chartype.h, move ct_encode_char() below the comment
explaining it.
- No more need for underscores before ct_{de,en}code_string().
- Make the conversion buffer resize functions private.
They are only called from the decoding and encoding functions
inside chartype.c, and no need can possibly arise to call them
from anywhere else.
2016-04-11 02:50 christos
* chared.c, chared.h, chartype.c, chartype.h, common.c, el.c, el.h,
eln.c, emacs.c, filecomplete.c, filecomplete.h, hist.c, hist.h,
history.c, keymacro.c, keymacro.h, map.c, map.h, parse.c,
parse.h, prompt.c, prompt.h, read.c, refresh.c, search.c,
search.h, terminal.c, terminal.h, tokenizer.c, tty.c, tty.h,
vi.c: Char -> wchar_t from Ingo Schwarze.
2016-04-11 02:22 christos
* chared.c, chartype.h, common.c, el.c, eln.c, filecomplete.c,
hist.c, hist.h, history.c, keymacro.c, makelist, map.c, parse.c,
read.c, refresh.c, search.c, terminal.c, tokenizer.c, tty.c,
vi.c: more macro WIDECHAR undoing from Ingo Schwarze.
2016-04-09 20:47 christos
* filecomplete.c, vi.c: Change some 0's to NULL's from Pedro
Giffuni
2016-04-09 20:43 christos
* chared.c, chartype.c, chartype.h, common.c, el.c, eln.c, emacs.c,
hist.c, keymacro.c, map.c, read.c, refresh.c, search.c,
terminal.c, tty.c, vi.c: More WIDECHAR elimination (Ingo
Schwarze)
2016-03-23 23:27 christos
* Makefile, chartype.c, chartype.h, config.h, el.c, el.h, eln.c,
hist.c, hist.h, history.c, keymacro.c, makelist, read.c,
readline.c, search.c, sys.h, terminal.c, TEST/Makefile: Start
removing the WIDECHAR ifdefs; building without it has stopped
working anyway. (Ingo Schwarze)
2016-03-22 02:38 christos
* terminal.c: put back NUL check (Ingo Schwarze)
2016-03-22 02:34 christos
* tty.c: Fix reversed condition in tty_end() (Ingo Schwarze) Also
don't succeed if calling setup twice.
2016-03-07 01:05 christos
* chartype.h: Remove advertising clause.
2016-03-02 20:24 christos
* Makefile, chartype.h, common.c, read.c, refresh.c, terminal.c,
vi.c: PR/50880: David Binderman: Remove redundant code. While
here, fix all debugging formats.
2016-02-29 01:54 christos
* TEST/rl1.c: convert to 2 clause
2016-02-29 00:02 christos
* chartype.c, eln.c: remove 4 clause licenses.
2016-02-27 19:13 christos
* tty.c, tty.h: PR/50863: John Hein: libedit el_end() messes up
term settings if piped Keep track if we initialized the tty, and
only reset it if we did.
2016-02-25 15:59 wiz
* editline.3: Use \- for minus sign, use Ev, use Er.
2016-02-24 20:45 christos
* editline.3: Fix el_{w,}getc documentation (Ingo Schwarze)
2016-02-24 19:28 christos
* editline.3: Fixes from OpenBSD via Ingo Schwarze: 1) Missing
comma after tok_str in NAME. OpenBSD rev. 1.38 Sep 10, 2015
(schwarze) 2) Style: void in argument list. OpenBSD rev.
1.39 Sep 14, 2015 (schwarze) 3) English punctuation: stray
comma. OpenBSD rev. 1.37 Mar 13, 2015 (jmc)
2016-02-24 18:20 christos
* chartype.c, chartype.h, read.c: Tuck in mbstate_t to the wide
char version only to avoid exposing the zeroing hack and doing it
in the narrow case.
2016-02-24 18:13 christos
* chartype.c, chartype.h, el.c, el.h, eln.c, read.c, read.h,
readline.c: Make the read_char function always take a wchar_t *
argument (Ingo Schwarze)
2016-02-24 15:29 christos
* chared.c: A very simple, non-intrusive patch to fix a segfault
(and a functional error) in c_gets(), file chared.c.
Run any program using libedit in the default way. At the
el_[w]gets() prompt, invoke ed-command (for example, in emacs
mode, press the escape key, then type the letter 'x'). You
should see a ": " prompt. Type the letter 'x' again. Now press
the backspace key a few times, looking at the screen after each
key press:
- The 1st BS deletes the 'x'.
- The 2nd BS deletes the blank after the prompt.
- The 3rd BS deletes the colon of the prompt.
- The 4th BS moves the cursor up one line.
- The 5th BS gives me "Segmentation fault (core dumped)".
Depending on your platform, it might take a few more or a few
less backspaces for the buffer underrun to trigger the segfault,
but you should be able to hit it sooner or later no matter what.
Run the same program again, connect again and invoke ed-command
again. Now type: 'b', backspace, 'i', backspace, 'n', backspace,
'd', enter. The "bind" command gets executed, even though you
deleted what you typed before hitting enter.
From Ingo Schwatze.
2016-02-24 15:25 christos
* Makefile, chared.c, chartype.c, common.c, eln.c, keymacro.c,
read.c, search.c: Get split el_getc and el_wgetc completely and
call el_wgetc internally. Change some character constants to
they wide versions. (Ingo Schwarze)
2016-02-17 20:47 christos
* Makefile, chared.c, chartype.c, chartype.h, common.c, el.c, el.h,
filecomplete.c, hist.h, histedit.h, history.c, keymacro.c,
makelist, map.c, parse.c, prompt.h, read.c, read.h, readline.c,
refresh.c, sys.h, terminal.c, tokenizer.c, tty.c, vi.c,
TEST/tc1.c, TEST/wtc1.c, readline/Makefile, readline/readline.h:
whitespace and header sorting changes (Ingo Schwarze). No
functional changes.
2016-02-16 23:53 christos
* chared.c, chared.h, chartype.c, common.c, el.h, emacs.c,
filecomplete.c, hist.c, map.c, parse.c, read.c, refresh.c,
search.c, tty.c, vi.c: More header cleanups from Ingo Schwarze.
2016-02-16 20:29 christos
* config.h, histedit.h, sys.h: - don't set _GNU_SOURCE. We are not
supposed to make decisions for others. - don't special-case
wcsdup() From Ingo Schwarze.
2016-02-16 20:11 christos
* common.c, el.h: get rid of bool_t (Ingo Schwarze)
2016-02-16 20:08 christos
* chared.c, chared.h, common.c, el.c, el.h, emacs.c,
filecomplete.c, makelist, map.c, parse.c, readline.c, search.c,
sig.c, tty.c, vi.c: more include file cleanup (Ingo Schwarze)
2016-02-16 16:54 christos
* sig.c: include errno.h
2016-02-16 16:53 christos
* chared.c, chared.h, chartype.c, common.c, el.c, el.h, eln.c,
emacs.c, filecomplete.c, hist.c, hist.h, keymacro.c, makelist,
map.c, parse.c, prompt.c, prompt.h, read.c, readline.c,
refresh.c, refresh.h, search.c, search.h, sig.c, sig.h,
terminal.c, terminal.h, tty.c, tty.h, vi.c: From Ingo Scharze:
Let "el.h" include everything needed for struct editline, and
don't include that stuff multiple times. That also improves
consistency, also avoids circular inclusions, and also makes it
easier to follow what is going on, even though not quite as nice.
But it seems like the best we can do...
2016-02-16 15:08 christos
* chared.c, chartype.c, common.c, el.c, el.h, eln.c, emacs.c,
filecomplete.c, hist.c, keymacro.c, makelist, map.c, parse.c,
prompt.c, read.c, readline.c, refresh.c, search.c, sig.c,
terminal.c, tty.c, vi.c: cleanup chartype.h includes (Ingo
Schwarze)
2016-02-16 15:07 christos
* sig.c: one more
2016-02-16 15:06 christos
* chared.c, chared.h, chartype.c, common.c, el.c, el.h, emacs.c,
filecomplete.c, hist.c, hist.h, keymacro.c, makelist, map.c,
parse.c, prompt.c, prompt.h, read.c, readline.c, refresh.c,
refresh.h, search.c, search.h, sig.h, terminal.c, terminal.h,
tty.c, tty.h, vi.c: cleanup inclusion of histedit.h (Ingo
Schwarze)
2016-02-16 15:04 christos
* sig.c: include explicitly errno.h since we use it.
2016-02-16 15:04 christos
* tty.h: No need to include "sys.h" from here; it is included from
config.h
2016-02-16 00:36 christos
* readline.c: attribute unused
2016-02-15 23:53 christos
* terminal.c: OpenBSD term.c rev. 1.7 2002/11/29 20:13:39 deraadt
spelling
2016-02-15 23:48 christos
* config.h, readline.c, sys.h: OpenBSD readline.c rev. 1.14
2015/02/06 23:21:58 millert use SIZE_MAX
2016-02-15 22:58 christos
* readline.c, readline/readline.h: OpenBSD readline.c rev. 1.13
2015/01/13 08:33:12 reyk rl_set_keyboard_input_timeout() for
readline 4.2 compat
2016-02-15 22:56 christos
* eln.c: OpenBSD eln.c rev. 1.3 2011/11/27 21:46:44 pascal kill a
C++-style comment
2016-02-15 22:38 christos
* TEST/Makefile: Compile with WIDECHAR the same way the main
Makefile does (Ingo Schwarze)
2016-02-15 22:35 christos
* history.c: Don't free getline memory (Ingo Schwarze).
2016-02-15 18:35 christos
* sys.h: forgot one fgetln define
2016-02-15 17:14 christos
* config.h, sys.h: change tests for fgetln.
2016-02-15 16:53 christos
* el.c, history.c: Use getline for better portability.
2016-02-15 16:37 christos
* tokenizer.c: OpenBSD tokenizer.c rev. 1.8 2003/08/11 18:21:40
deraadt don't increase amax on realloc failure
2016-02-15 16:35 christos
* terminal.c: OpenBSD term.c rev. 1.13 2009/12/11 18:58:59 jacekm
fix two memory leaks
2016-02-15 16:30 christos
* history.c: Change the test for the size of encoded buffer to
include the NULL, from OpenBSD; no functional change.
2016-02-15 16:29 christos
* sig.c: OpenBSD sig.c rev. 1.6 2001/12/06 04:26:00 deraadt save
and restore errno in signal handler
2016-02-15 16:26 christos
* history.c: Use fparseln to avoid newline hacks.
2016-02-15 16:18 christos
* el.c: use fparseln() to avoid needing to deal with missing \n in
the last line and also to handle comments automatically.
2016-02-14 18:06 christos
* chartype.h, eln.c: From Ingo Schwarze:
el_getc() for the WIDECHAR case, that is, the version in eln.c.
For a UTF-8 locale, it is broken in four ways:
1. If the character read is outside the ASCII range, the
function
does an undefined cast from wchar_t to char. Even if wchar_t
is internally represented as UCS-4, that is wrong and
dangerous
because characters beyond codepoint U+0255 get their high
bits
truncated, meaning that perfectly valid printable Unicode
characters get mapped to arbitrary bytes, even the ASCII
escape
character for some Unicode characters. But wchar_t need not
be implemented in terms of UCS-4, so the outcome of this
function
is undefined for any and all input.
2. If insufficient space is available for the result, the
function
fails to detect failure and returns garbage rather than -1 as
specified in the documentation.
3. The documentation says that errno will be set on failure, but
that doesn't happen either in the above case.
4. Even for ASCII characters, the results may be wrong if
wchar_t
is not using UCS-4.
2016-02-14 15:49 christos
* chared.c, chared.h, chartype.h, common.c, emacs.c, keymacro.c,
makelist, map.c, parse.c, refresh.c, refresh.h, search.c,
search.h, terminal.c, terminal.h, tty.c, vi.c: From Ingo
Schwarze:
As we have seen before, "histedit.h" can never get rid of
including the <wchar.h> header because using the data types
defined there is deeply ingrained in the public interfaces of
libedit.
Now POSIX unconditionally requires that <wchar.h> defines the
type wint_t. Consequently, it can be used unconditionally, no
matter whether WIDECHAR is active or not. Consequently, the
#define Int is pointless.
Note that removing it is not gratuitious churn. Auditing for
integer signedness problems is already hard when only fundamental
types like "int" and "unsigned" are involved. It gets very hard
when types come into the picture that have platform-dependent
signedness, like "char" and "wint_t". Adding yet another layer
on top, changing both the signedness and the width in a platform-
dependent way, makes auditing yet harder, which IMHO is really
dangerous. Note that while removing the #define, i already found
one bug caused by this excessive complication - in the function
re_putc() in refresh.c. If WIDECHAR was defined, it printed an
Int = wint_t value with %c. Fortunately, that bug only affects
debugging, not production. The fix is contained in the patch.
With WIDECHAR, this doesn't change anything. For the case
without WIDECHAR, i checked that none of the places wants to
store values that might not fit in wint_t.
This only changes internal interfaces; public ones remain
unchanged.
2016-02-14 15:47 christos
* chartype.c, chartype.h, read.c: From Ingo Schwartze:
Next step: Remove #ifdef'ing in read_char(), in the same style
as we did for setlocale(3) in el.c.
A few remarks are required to explain the choices made.
* On first sight, handling mbrtowc(3) seems a bit less trivial
than handling setlocale(3) because its prototype uses the data
type mbstate_t from <wchar.h>. However, it turns out that
"histedit.h" already includes <wchar.h> unconditionally (i
don't
like headers including other headers, but that ship has
sailed,
people are by now certainly used to the fact that including
"histedit.h" doesn't require including <wchar.h> before), and
"histedit.h" is of course included all over the place. So
from
that perspective, there is no problem with using mbrtowc(3)
unconditionally ever for !WIDECHAR.
* However, <wchar.h> also defines the mbrtowc(3) prototype,
so we cannot just #define mbrtowc away, or including the
header
will break. It would also be a bad idea to porovide a local
implementation of mbrtowc() and hope that it overrides the one
in libc. Besides, the required prototype is subtly different:
While mbrtowc(3) takes "wchar_t *" as its first argument, we
need a function that takes "Char *". So unfortunately, we
have
to keep a ct_mbrtowc #define, at least until we can maybe get
rid of "Char *" in the more remote future.
* After getting rid of the #else clause in read_char(), we can
pull "return 1;" into the default: clause. After that, we can
get rid of the ugly "goto again_lastbyte;" and just "break;".
As a bonus, that also gets rid of the ugly CONSTCOND.
* While here, delete the unused ct_mbtowc() from chartype.h.
2016-02-12 18:23 christos
* eln.c: Avoid c99 for now.
2016-02-12 16:36 christos
* el.h, eln.c, read.c: GC IGNORE_EXTCHARS and simplify code (Ingo
Schwarze)
2016-02-12 16:11 christos
* read.c: From Ingo Schwarze:
If CHARSET_IS_UTF8 is not set, read_char() is broken in a large
number of ways:
1. The isascii(3) check can yield false positives. If a string
in
an arbitrary encoding contains a byte in the range 0..127,
that does not at all imply that it forms a character all by
itself, and even less that it represents the same character
as in ASCII. Consequently, read_char() may return characters
the user never typed.
Even if the encoding is not state dependent, the assumption
that
bytes in the range 0..127 represent ASCII characters is
broken.
Consider UTF-16, for example.
2. The reverse problem can also occur. In an arbitrary
encoding,
there is no guarantee that a character that can be
represented
by ASCII is represented by a seven-bit byte, and even less by
the same byte as in ASCII.
Even for single-byte encodings, these assumptions are broken.
Consider the ISO 646 national variants, for example.
Consequently, the current code is insufficient to keep ASCII
characters working even for single-byte encodings.
3. The condition "++cbp != 1" can never trigger (because
initially,
cbp is 0, and the code can only go back up via the final
goto,
which has another cbp = 0 right before it) and it has no
effect
(because cbp isn't used afterwards).
4. bytes = ct_mbtowc(cp, cbuf, cbp) is broken. If this returns
-1,
the code assumes that is can just call mbtowc(3) again for
later
input bytes. In some implementations, that may even be
broken
for state-independent encodings, but trying again after
mbtowc(3)
failure certainly produces completely erratic and meaningless
results in state-dependent encodings.
5. The assignment "*cp = (Char)(unsigned char)cbuf[0]" is
completely bogus. Even if the byte cbuf[0] represents a
character all by itself, which it usually will not, whether
or not the cast produces the desired result depends on the
internal representation of wchar_t in the C library, which
the application program can know nothing about. Even for
ASCII
in the C/POSIX locale, an ASCII character other than '\0' ==
L'\0' == 0 need not have the same numeric value as a char and
as a wchar_t.
To summarize, this code only works if all of the following
conditions hold:
- The encoding is a single-byte encoding.
- ASCII is a subset of the encoding.
- The implementation of mbtowc(3) in the C library does not
require re-initialization after encoding errors.
- The implementation of wchar_t in the C library uses the
same numerical values as ASCII.
Otherwise, it silently produces wrong results.
The simplest way to fix this is to just use the same code as for
UTF-8 (right above). Of course, that causes functional changes
but that shouldn't matter since current behaviour is undefined.
The patch below provides the following improvements:
- It works for all stateless single-byte encodings, no matter
whether they are somehow related to ASCII, no matter how
mb[r]towc(3) are internally implemented, and no matter how
wchar_t is internally represented.
- Instead of producing unpredictable and definitely wrong
results for non-UTF-8 multibyte characters, it behaves in
a well-defined way: It aborts input processing, sets errno,
and returns failure.
Note that short of providing full support for arbitrary
locales,
it is impossible to do better. We cannot know whether a given
unsupported locale is state-dependent, and for a
state-dependent
locale, it makes no sense to retry parsing after an encoding
error, so the best we can do is abort processing for *any*
unsupported multi-byte character.
- Note that single-byte characters in arbitrary
state-independent
locales still work, even in locales that may potentially also
contain multibyte characters, as long as those don't occur in
input. I'm not sure whether any such locales exist in
practice...
Tested with UTF-8 and C/POSIX on OpenBSD. Also tested that in
the C/POSIX locale, non-ASCII bytes get through unmangled. You
may wish to test with ISO-LATIN on NetBSD if NetBSD supports
that.
---- Also use a constant for meta to avoid warnings.
2016-02-11 20:21 christos
* chartype.c, common.c, el.c, emacs.c, keymacro.c, map.c, parse.c,
read.c, refresh.c, search.c, sys.h, terminal.c, tty.c: - Add some
more Char casts - reduce ifdefs by providing empty defs for nls
functions (Ingo Schwarze)
2016-02-11 20:10 christos
* chartype.h: remove unused wrapper (Ingo Schwarze)
2016-02-11 17:08 christos
* read.c: Remove utf8_islead() mbrtowc() handles this just fine
(Ingo Schwarze)
2016-02-08 18:18 christos
* chartype.h, read.c: UTF-8 fixes from Ingo Schwarze:
1. Assume that errno is non-zero when entering read_char()
and that read(2) returns 0 (indicating end of file).
Then, the code will clear errno before returning.
(Obviously, the statement "errno = 0" is almost always
a bug unless there is save_errno = errno right before it
and the previous value is properly restored later,
in all reachable code paths.)
2. When encountering an invalid byte sequence, the code discards
all following bytes until MB_LEN_MAX overflows; consider, for
example, 0xc2 immediately followed by a few valid ASCII
bytes.
Three of those ASCII bytes will be discarded.
3. On a POSIX system, EILSEQ will always be set after reading a
valid (yes, valid, not invalid!) UTF-8 character. The reason
is that mbtowc(3) will first be called with a length limit
(third argument) of 1, which will fail, return -1, and - on
a POSIX system - set errno to EILSEQ.
This third bug is mitigated a bit because i couldn't find any
system that actually conforms to POSIX in this respect: None
of OpenBSD, NetBSD, FreeBSD, Solaris 11, and glibc set errno
when an incomplete character is passed to mbtowc(3), even
though
that is required by POSIX.
Anyway, that mbtowc(3) bug will be fixed at least in OpenBSD
after release unlock, so it would be good to fix this bug in
libedit before fixing the bug in mbtowc(3).
How can these three bugs be fixed?
1. As far as i understand it, the intention of the bogus errno =
0
is to undo the effects of failing system calls in el_wset(),
sig_set(), and read__fixio() if the subsequent read(2)
indicates
end of file. So, restoring errno has to be moved right after
read__fixio(). Of course, neither 0 nor e is the right value
to restore: 0 is wrong if errno happened to be set on entry,
e
would be wrong because if one read(2) fails but a second
attempt
succeeds after read__fixio(), errno should not be touched.
So,
the errno to be restored in this case has to be saved before
calling read(2) for the first time.
2. Solving the second issue requires distinguishing invalid and
incomplete characters, but that is impossible with the
function
mbtowc(3) because it returns -1 in both cases and sets errno
to EILSEQ in both cases (once properly implemented).
It is vital that each input character is processed right
away.
It is not acceptable to wait for the next input character
before
processing the previous one because this is an interactive
library, not a batch system. Consequently, the only
situation
where it is acceptable to wait for the next byte without
first
processing the previous one(s) is when the previous one(s)
form
an incomplete sequence that can be continued to form a valid
character.
Consequently, short of reimplementing a full UTF-8 state
machine
by hand, the only correct way forward is to use mbrtowc(3).
Even then, care is needed to always have the state object
properly initialized before using it, and to not discard a
valid
ASCII or UTF-8 lead byte if it happens to follow an invalid
sequence.
3. Fortunately, solution 2. also solves issue 3. as a side
effect,
by no longer using mbtowc(3) in the first place.
2016-01-30 16:05 christos
* hist.h: Whitespace fix (Ingo Schwarze)
2016-01-30 05:02 christos
* search.c, tokenizer.c: Fix misplaced parentheses (Ingo Schwarze)
2016-01-29 20:59 christos
* keymacro.h: One macro is enough (Ingo Schwarze)
2015-12-08 17:53 gson
* tty.c: unbreak the build
2015-12-08 13:57 christos
* tty.c: If we did not setup the tty, don't reset it.
2015-12-08 13:56 christos
* el.c: Only reset the terminal if we have a tty (Boris Ranto)
2015-11-03 22:36 christos
* editline.3: Fix descriptions of el_set functions. Americanise
initialise :-)
2015-10-21 23:45 christos
* vi.c: Use the full buffer for the conversion; ideally we should
be dynamically allocating this. From Jilles Tjoelker
2015-10-19 02:36 christos
* vi.c: make sure we have space for NUL and NUL terminate buffer
array (Jilles Tjoelker)
2015-06-02 17:36 christos
* readline/readline.h: remove duplicate declaration
2015-06-02 17:35 christos
* readline.c, readline/readline.h: Adjust API to a more modern
readline (Ryo Onodera)
2015-05-26 21:59 christos
* readline.c, readline/readline.h: - fix types of
rl_completion_entry_function and rl_add_defun - call update pos
before completion to refresh the screen From Thomas Eriksson
2015-05-18 17:07 christos
* eln.c: make el_gets() return the number of characters read in
wide mode (not the number of wide characters) From khorben@ by
FreeBSD:
https://svnweb.freebsd.org/ports/head/devel/libedit/files/patch-src_eln.c?\
revision=382458&view=markup XXX: Pullup-7
2015-05-17 15:14 christos
* chartype.h: add FreeBSD
2015-05-14 12:44 christos
* chartype.h, map.c, tty.c: fix warnings on ubuntu 32 bit (Miki
Rozloznik)
2015-05-13 15:33 martin
* Makefile, chartype.h, editline.3, editrc.5, eln.c,
filecomplete.c, readline.c: Sync lib/libedit with head, requested
by christos in #753:
lib/libedit/Makefile 1.53
lib/libedit/chartype.h 1.13
lib/libedit/editline.3 1.83-1.84
lib/libedit/editrc.5 1.28-1.29
lib/libedit/eln.c 1.18
lib/libedit/filecomplete.c 1.33-1.34
lib/libedit/readline.c 1.112-1.115
Man page improvements, fix overlapping strcpy, improve readline
compatibility, clang build fix.
2015-04-14 07:30 snj
* chartype.c, chartype.h: Pull up following revision(s) (requested
by christos in ticket #679): lib/libedit/chartype.c:
revisions 1.11, 1.12 lib/libedit/chartype.h: revisions 1.12,
1.13 PR/49683: Amir Plivatsky: Off-by-one comparison in
ct_decode_string() leading to out of bounds referrence. -- split
the allocation functions, their mixed usage was too confusing.
2015-04-01 17:23 christos
* readline.c: Fix overlapping strcpy (Gerry Swislow)
2015-03-24 22:29 christos
* readline.c: set some readline compatibility default key settings.
https://bugzilla.redhat.com/attachment.cgi?id=1001895
2015-03-24 22:26 christos
* eln.c: save and restore IGNORE_EXTCHARS like we do in the getc
case. From: https://bugzilla.redhat.com/attachment.cgi?id=1001894
2015-02-22 03:16 christos
* chartype.c, chartype.h: split the allocation functions, their
mixed usage was too confusing.
2015-02-22 01:46 christos
* chartype.c, chartype.h: PR/49683: Amir Plivatsky: Off-by-one
comparison in ct_decode_string() leading to out of bounds
referrence. XXX: pullup-7
2015-02-17 23:49 christos
* chartype.h: OpenBSD is like us.
2015-01-29 21:30 joerg
* Makefile: Disable -Wcast-qual for clang for now.
2014-12-25 14:39 wiz
* editline.3, editrc.5: Bump date for previous.
2014-12-25 14:39 wiz
* editline.3, editrc.5: From Ingo Schwarze, based on changes from
Kaspars Bankovskis: * Document error handling of el_init(),
el_set(), el_source(), and history_init(). * Fix a typo an
improve punctuation below H_SETUNIQUE. * The ellipsis already
implies "optional", no need for []. * Sort options in
editrc(5). * Prevent e.g. rom being misconstrued as the end of
a sentence. * Drop a useless duplicate .Ar macro. * Put
telltc in its proper place in the alphabetical order. * A few
typos in vi editor command names. * Some missing vi editor
command names. * Some missing author macros.
2014-10-18 17:07 riz
* filecomplete.c: callers's -> caller's
2014-10-18 10:33 snj
* filecomplete.c, readline.c: src is too big these days to tolerate
superfluous apostrophes. It's "its", people!
2014-08-20 02:02 tls
* Makefile, chared.c, chared.h, editline.3, el.c, eln.c,
filecomplete.c, hist.h, histedit.h, history.c, map.c, map.h,
parse.c, read.c, readline.c, tty.c, tty.h, vi.c, TEST/tc1.c,
TEST/wtc1.c: Rebase to HEAD as of a few days ago.
2014-08-15 15:32 christos
* readline.c: Fix typo in comment (Tobias Stoeckmann)
2014-08-10 08:51 tls
* Makefile, chared.c, chared.h, editline.3, el.c, eln.c,
filecomplete.c, hist.h, histedit.h, history.c, map.c, map.h,
parse.c, read.c, readline.c, tty.c, tty.h, vi.c, TEST/tc1.c,
TEST/wtc1.c: Rebase.
2014-07-06 20:15 christos
* map.c, map.h, parse.c, read.c: Bounds search for reallocated
index, from OpenBSD via Andreas Fett
2014-07-06 20:09 christos
* readline.c: PR/48957: Federico G. Schwindt: Restore commented out
code that broke rl_callback_handler.
2014-06-18 22:12 christos
* TEST/: tc1.c, wtc1.c: cast gotsig because it is long on some
systems.
2014-06-18 20:52 christos
* tty.c: Add stdlib.h for abort() (Jess Thrysoee)
2014-06-18 20:12 christos
* chared.c, chared.h, el.c, eln.c, histedit.h, vi.c: Don't depend
on weak aliases to define the vi "alias" expansion function,
provide an API instead to set it.
2014-06-18 15:03 christos
* vi.c: accomodate FreeBSD's flavor of weak references.
2014-06-14 22:49 mrg
* Makefile: remove remaining makefile support for GCC < 45 that i
found.
2014-06-06 00:07 christos
* filecomplete.c: PR/48876: Dmitriy Grigoryev: Core dump in
readline lib on attempted expansion Make sure we have 2 matches
before calling strcmp().
2014-05-22 13:36 yamt
* chared.c, editline.3, el.c, eln.c, hist.h, histedit.h, history.c,
read.c, readline.c, shlib_version, readline/readline.h: sync with
head.
for a reference, the tree before this commit was tagged as
yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation
of cvs. ("Protocol error: too many arguments")
2014-05-20 17:05 christos
* eln.c: Always NULL terminate the argv[] array. From OpenBSD.
2014-05-19 23:01 christos
* tty.c: PR/48821: If called from tty_stty(), recalculate flags.
2014-05-19 21:54 christos
* tty.c, tty.h: more tty modes refactoring, no functional change
intended.
2014-05-19 19:14 christos
* tty.c: Factor out some common code (more to be done) from
PR/48821
2014-05-11 11:01 wiz
* editline.3: Add An to authors. Wording.
2014-05-11 03:05 christos
* editline.3, hist.h, histedit.h, history.c: Add a history function
that takes a FILE pointer; needed for Capsicum. From Eitan Adler
2014-02-26 14:50 christos
* eln.c: Add missing EL_REFRESH
2014-01-21 14:51 christos
* readline.c: ... if called prior to using_history(). This needed
to be worked around in PHP:
http://git.php.net/?p=php-src.git;a=commitdiff;h=31d67bd3
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1055409
2013-08-28 10:05 christos
* readline.c: get rid of PATH_MAX.
2013-07-13 00:39 christos
* chared.c: cast to avoid warning.
2013-07-12 19:48 christos
* chared.c, editline.3, histedit.h: Add a function to move the
cursor.
2013-06-23 08:21 tls
* read.c, readline.c, readline/readline.h: resync from head
2013-05-28 02:10 christos
* readline.c, readline/readline.h: expose rl_catch_signals and
explain what we are doing.
2013-05-28 01:55 christos
* read.c: Test early for EOF to avoid infinite loop in the wide
char case. From Linas Vepstas: linasvepstas at gmail dot com
2013-04-02 08:38 agc
* Version.map: add symbol versioning info for:
libcrypt
libcurses
libedit
libmenu
libossaudio
libposix
libskey
2013-02-25 01:27 tls
* editline.3, editrc.5, el.c, histedit.h, map.c, readline.c,
shlib_version: resync with head
2013-01-23 01:05 yamt
* editline.3, editrc.5, map.c, readline.c: sync with head
2013-01-22 21:23 christos
* editline.3, el.c, histedit.h, shlib_version: provide an
el_init_fd function.
2013-01-13 16:46 christos
* readline.c: explicitly pass (void *)0 instead of NULL.
2013-01-10 17:03 wiz
* editrc.5: Add FILES section. From jmc@OpenBSD.
2013-01-10 17:03 wiz
* editline.3: In 2000, .editrc reading from $PWD was removed.
Update the man page. From LEVAI Daniel via jmc@OpenBSD.
2013-01-01 16:34 christos
* map.c: remove dead assignment (Christoph Mallon)
2013-01-01 16:33 christos
* map.c: Fix pasto that affected bind -k (Christoph Mallon)
2012-11-20 04:00 tls
* readline.c: Resync to 2012-11-19 00:00:00 UTC
2012-10-30 19:59 yamt
* Makefile, chared.c, editline.3, editrc.5, el.c, histedit.h,
read.c, readline.c, terminal.c: sync with head
2012-10-13 01:35 christos
* readline.c: Add trailing NULL's to the varargs functions as
required. (John Spencer)
2012-09-11 22:29 christos
* editline.3: PR/46945: Steffen Nurpmeso; el_getc() doesn't
document it's setting errno
2012-09-11 14:31 christos
* read.c: return !OKCMD on error.
2012-09-11 13:58 christos
* el.c: PR/46942: Steffen Nurpmeso: editline(3): el_get(): fix
UNBUFFERED return
2012-09-11 13:57 christos
* editline.3: PR/46941: Steffen Nurpmeso: document EL_BUFFERED
2012-09-10 22:53 christos
* read.c: PR/46935: Steffen Nurpmeso: editline(3) (libedit): faulty
errno handling, faulty reuse of val in wrong context
2012-08-10 14:20 joerg
* Makefile: Don't depend on HAVE_GCC being always defined.
2012-07-18 19:12 christos
* chared.c: From Kamil Dudka: fix crash of el_insertstr() on
incomplete multi-byte
2012-07-12 20:46 christos
* readline.c: PR/46678: Ian Wienand: Add stub implementation for
rl_free_line_state()
2012-06-05 22:22 bouyer
* readline.c: Pull up following revision(s) (requested by christos
in ticket #309): lib/libedit/readline.c: revision 1.104 don't
crash if add_history is called from an empty line. Called from
nslookup in new bind. XXX: pullup to 6
2012-06-05 02:30 christos
* readline.c: don't crash if add_history is called from an empty
line. Called from nslookup in new bind. XXX: pullup to 6
2012-06-02 16:19 njoly
* editrc.5: Switch from Op to Oo/Oc for nested block.
2012-05-31 15:16 christos
* histedit.h: remove stdint.h; it is not used.
2012-05-30 20:21 christos
* terminal.c: don't include both term.h and termcap.h
2012-05-23 12:07 yamt
* readline.c, tty.c, tty.h, readline/readline.h: sync with head.
2012-05-15 21:07 christos
* readline.c: define the new variable
2012-05-15 19:30 christos
* readline.c, readline/readline.h: Add
rl_completion_word_break_hook from:
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/\
5ec6a45fa762b8cbd0305ca06acb8780335a486a
2012-05-15 17:59 christos
* tty.c, tty.h: save and restore the tty settings on entry and exit
respectively. cleanup debugging printfs.
2012-04-17 02:05 yamt
* Makefile, chartype.h, common.c, el.c, eln.c, history.c, makelist,
map.c, readline.c, terminal.c, terminal.h, vi.c, TEST/wtc1.c:
sync with head
2012-03-24 21:09 christos
* terminal.c, terminal.h: From: Jilles Tjoelker: Add a mapping for
the cursor delete key
2012-03-24 21:08 christos
* common.c: From Jilles Tjoelker: Do not move the cursor for
ed-delete-next-char in emacs mode. This makes
ed-delete-next-char suitable for mapping to the <Delete> key.
Behaviour in vi mode is unchanged (for 'x').
2012-03-21 06:37 matt
* Makefile: These directories default to WARNS?=5
2012-03-21 06:34 matt
* makelist: Use C89 functions definitions.
2012-03-21 06:33 matt
* readline.c: Use C89 functions definitions. Remove use of __P
2012-03-11 22:15 christos
* eln.c: include the NULL in the argv conversion
2012-03-11 22:14 christos
* el.c: use arraycount
2012-01-16 15:57 christos
* vi.c: PR/45843: Henning Petersen: Fix resource leak on error.
2011-11-18 21:39 christos
* history.c, map.c: Add coverity annotations about unreachable code
(Kamil Dudka)
2011-11-18 21:38 christos
* readline.c: Add missing *
2011-11-18 21:32 christos
* terminal.c: Initialize termbuf (Kamil Dudka)
2011-11-18 21:30 christos
* TEST/wtc1.c: Initialize res (Kamil Dudka)
2011-11-18 21:25 christos
* terminal.c: check for negative return of ct_visual_char (Kamil
Dudka)
2011-11-18 21:24 christos
* vi.c: Off by one in allocation could cause buffer overflow (Kamil
Dudka)
2011-11-18 21:22 christos
* el.c: remove unrecheable code (Kamil Dudka)
2011-11-16 02:45 christos
* chartype.h: easier with an int for now.
2011-11-16 00:54 christos
* chartype.h: Since Width() is used only for display purposes we
don't want to pass -1 for unprintable characters.
2011-10-23 19:37 christos
* chared.c: Fixed misplaced parenthesis (Nirbhay Choubey)
2011-10-04 17:27 christos
* search.c, terminal.c, tty.c, vi.c:
fixed warnings where wint_t is unsigned.
2011-10-03 16:09 christos
* terminal.c: fix broken change (parenthesis in the wrong place).
From Nirbhay Choubey
2011-09-28 16:08 christos
* sys.h: include <wchar.h> if we don't have wcsdup()
2011-09-16 18:13 plunky
* filecomplete.c: NULL does not need a cast, here
2011-08-16 18:25 christos
* Makefile, chared.c, chartype.c, eln.c, filecomplete.c,
keymacro.c, map.c, parse.c, read.c, readline.c, search.c,
terminal.c, tokenizer.c, tty.c, tty.h, vi.c: re-enable
-Wconversion
2011-08-04 16:33 christos
* TEST/wtc1.c: need err.h now
2011-08-02 19:22 joerg
* Makefile: Only use -Wconversion if GCC is actually the active
compiler.
2011-07-30 12:07 tron
* Makefile: Don't use "-Wconversion" with GCC 4.5 which will
complain about all the expressions where signed variables are
converted to unsigned in an expression e.g. "size_t foo =
sizeof(something) * int_var;".
2011-07-30 01:44 christos
* Makefile, chared.c, chartype.c, chartype.h, el.h, filecomplete.c,
history.c, keymacro.c, read.c, readline.c, refresh.c, search.c,
terminal.c, terminal.h, vi.c: pass -Wconversion
2011-07-29 22:58 christos
* common.c, filecomplete.c, history.c, readline.c, vi.c: - fix
unused params - unconditionalize vis.h
2011-07-29 22:57 christos
* config.h: better autoconf results
2011-07-29 22:56 christos
* Makefile: add -Wunused-parameter Is that the right way? Perhaps
WARNS=5?
2011-07-29 17:20 christos
* chared.c, common.c, sys.h, terminal.c, tty.c: kill ifdef notdef
2011-07-29 17:16 christos
* chared.c, chartype.c, common.c, el.c, emacs.c, filecomplete.c,
hist.c, history.c, keymacro.c, map.c, parse.c, prompt.c, read.c,
readline.c, search.c, terminal.c, tokenizer.c, tty.c, vi.c: KNF
return (\1); -> return \1;
2011-07-28 22:50 christos
* chared.c, chartype.c, el.c, eln.c, filecomplete.c, hist.c,
hist.h, histedit.h, history.c, keymacro.c, map.c, read.c,
readline.c, search.c, sig.c, sys.h, terminal.c, tokenizer.c,
vi.c: kill ptr_t and ioctl_t, add * sizeof(*foo) to all
allocations.
2011-07-28 19:33 christos
* filecomplete.c: fix unused variable warnings on systems without
_r functions
2011-07-28 19:33 christos
* readline.c: handle systems without getpwent_r
2011-07-28 07:18 joerg
* config.h: Sync compat defines to unbreak build.
XXX Do a proper config.h update from configure
2011-07-28 05:52 christos
* keymacro.c, terminal.c: whitespace
2011-07-28 05:48 christos
* keymacro.c: whitespace
2011-07-28 05:44 christos
* keymacro.h: whitespace and comments
2011-07-28 03:56 christos
* Makefile, el.c, el.h, key.c, key.h, keymacro.c, keymacro.h,
map.c, read.c, terminal.c, terminal.h, tty.c: Rename key to
keymacro to avoid conflicts with term.h. The renaming of term to
terminal was again to avoid conflicts with term.h. term.h is a
moving namespace violation.
2011-07-28 03:08 christos
* TEST/wtc1.c: - check and don't cast malloc return - more wide
function use
2011-07-28 03:05 christos
* Makefile, chared.c, common.c, el.h, eln.c, emacs.c, map.c,
parse.c, prompt.c, refresh.c, term.c, term.h, terminal.c,
terminal.h: term -> terminal XXX: need to rename key_ too.
2011-07-28 03:05 christos
* config.h: regen
2011-07-28 03:04 christos
* el.c: avoid shadowed variable
2011-07-28 02:54 christos
* readline.c: use vis.h from .
2011-07-28 02:50 christos
* filecomplete.c: eliminate alloca for portability portable
getpw{nam,uid}
2011-07-28 02:49 christos
* el.c: term -> terminal eliminate MAXPATHLEN
2011-07-28 02:48 christos
* chartype.c: - fix memory allocation botch in wide strings - check
mbstowcs return code
2011-07-28 02:45 christos
* sys.h: more portability defines
2011-07-28 02:45 christos
* vi.c, tty.c, sig.c, search.c: term -> terminal
2011-07-28 02:44 christos
* read.c: term -> terminal fix wide function confusion
2011-07-28 02:43 christos
* makelist: include config.h for all c files.
2011-07-28 02:43 christos
* history.c: include vis.h from dot.
2011-07-28 02:43 christos
* hist.c: fix confusion with wide functions.
2011-07-27 15:18 christos
* history.c: fix narrow compilation
2011-07-27 04:23 christos
* history.c: - don't leave cursor dangling on memory failure or
after clearing the list - compute the string length to be
strvis'ed after the string is encoded
2011-07-27 04:18 christos
* chartype.c: fix buffer growing code.
2011-07-27 04:18 christos
* TEST/wtc1.c: add history testing code.
2011-07-26 23:03 christos
* el.c: don't stop reading after empty lines from: Nirbhay Choubey
2011-07-10 01:54 christos
* read.c: make obvious what we are trying to do...
2011-07-09 18:04 tron
* read.c: Try to fix build of port where "char" is unsigned.
2011-07-08 17:54 christos
* read.c: Support other non-latin1 single byte character sets.
From: Alexander Barkov and Nirbhay Choubey at oracle dot com
2011-06-23 16:18 cherry
* Makefile, eln.c: Catchup with rmind-uvmplock merge.
2011-06-21 04:32 mrg
* Makefile: add some XXX'd -Wno-foo if HAVE_GCC >= 45.
XXX: someone should look at these.
2011-06-20 11:11 mrg
* eln.c: various build fixes for gcc 4.5. from chuq. XXX i'm not
sure all of these work properly wtf pointer aliasing, but there
are no casts at least...
the lib/libpuffs/puffs_priv.h is definately a real bug fix.
from chuq.
2011-04-26 00:47 wiz
* editrc.5: Markup consistency, from YOMURA Masanori. Add serial
comma.
2011-03-20 13:36 bouyer
* el.c: Fix use-after-free. Discovered by running tests with
MALLOC_OPTIONS=J (should this be the default for tests ?),
pointed out by njoly@
2011-03-05 16:09 bouyer
* editline.3, read.c, vi.c: Sync with HEAD
2011-02-27 02:51 christos
* editline.3: Fix argument for EL_EDITOR from Jess Thrysoee
2011-02-22 06:45 joerg
* vi.c: Introduce __weakref_visible to handle the different
required visibility for weak references. GCC 4.2+ and Clang
require static, older GCC wants extern. Change __weak_reference
to include sym. This requires changes the existing users to not
reuse the name of the symbol, but avoids further differences
between GCC 4.1 and GCC 4.2+/clang.
2011-02-18 21:53 christos
* read.c: PR/44599: Steven Vernon: libedit acts as if no data read
if editmode is turned off because nread is uninitialized in the
edit disabled case.
2011-02-17 17:44 joerg
* vi.c: Deal with changes in the weak_reference semantic in GCC 4.2
and later.
2011-02-08 17:19 bouyer
* el.c, el.h, tty.c: Sync with HEAD
2011-01-28 04:41 christos
* tty.c: fix pasto
2011-01-28 00:11 christos
* el.c, el.h, tty.c: don't turn on editing if stdout is not a tty.
2011-01-16 04:05 christos
* history.c: off by one in fetching history data. From: Gerry
Swislow
2010-12-16 18:42 wiz
* chartype.h, editline.3: Observe the following spelling: - wide
character (noun) - wide-character (adjective)
Inspired by jmc@OpenBSD.
2010-12-06 01:05 dholland
* filecomplete.c: Improve previous to avoid changing the interface
of an externally exposed function. (But note that this function
is neither documented nor declared in any installed header file,
and it probably should not be externally exposed.) Related to PR
44183, closes PR 44186.
2010-12-02 05:42 dholland
* filecomplete.c: add const, from PR 44183.
2010-12-02 05:35 dholland
* filecomplete.c: Fix up bodgy code for printing completion
matches; it used to sometimes skip entries, print (null), run off
the end of the array, or occasionally receive SIGSEGV, and now
will, hopefully at least, do none of that.
Based in part on the patch in PR 44183 from Sergio Acereda; I
also did some tidyup and fixed it to print top-to-bottom first
like ls(1).
2010-11-15 22:24 christos
* filecomplete.c: don't increment i twice in the loop. From Michael
Byrnes
2010-11-04 14:53 christos
* eln.c: PR/43998, PR/44021: In narrow history emulation, don't
treat UTF-8 character sets specially as far as history goes since
we always need to do the conversion from narrow [history] to wide
[editline].
2010-10-24 01:27 christos
* vi.c: fix fd leak found by Igor Zinovik
2010-09-16 22:08 christos
* readline.c, TEST/rl1.c, readline/readline.h: unbreak readline
history.
2010-08-28 17:44 christos
* chared.c, chared.h, el.c, eln.c, histedit.h, readline.c: setup a
callback to be invoked on resize buffers so that readline can
reset rl_line_buffer which unfortunately some applications use it
directly.
2010-08-04 22:29 christos
* readline.c, readline/readline.h: provide rl_on_newline
2010-07-21 20:18 christos
* read.c: refresh only on SIGCONT not SIGWINCH from Edward
Sheldrake
2010-07-19 19:18 christos
* read.c: retry the read after sigwinch too, from Edward Sheldrake
2010-06-01 20:20 christos
* filecomplete.c: tidy up memory allocation and don't unnecessarily
print "./" before names.
2010-04-21 07:28 matt
* common.c: sync to netbsd-5
2010-04-20 04:01 christos
* chartype.h: Use the same hack for Solaris and MacOS/X. This is
not right, we only really support UTF-8, but it will get us going
until this is fixed properly. From Jess Thrysoee
2010-04-18 23:17 christos
* TEST/: tc1.c, wtc1.c: \033 is more portable than \e still.
2010-04-18 23:17 christos
* tty.c: ffs needs strings.h
2010-04-18 23:17 christos
* makelist: shame on solaris that is the last OS not supporting $()
2010-04-15 02:57 christos
* chared.h, makelist, readline.c, search.c: From Jess Thrysoee
- Fix wint_t to Int confusion
2010-04-15 02:56 christos
* el.c: From Jess Thrysoee - use nl_langinfo to test for UTF-8,
because some locales are UTF-8 without reflecting it in
their names.
2010-04-15 02:55 christos
* chartype.c, chartype.h: From Jess Thrysoee expose
ct_enc_width()
2010-04-15 02:52 christos
* eln.c: From Jess Thrysoee - NARROW_HISTORY and IGNORE_EXTCHARS
should not take effect if locale is UTF-8 - account for multi
byte char length in
2010-04-15 02:50 christos
* TEST/tc1.c: From Jess Thrysoee: call setlocale so we can test
UTF-8
2010-04-15 02:50 christos
* histedit.h: From Jess Thrysoee: add ifndef around def of
_GNU_SOURCE
2010-03-22 23:59 christos
* read.c: https://bugzilla.redhat.com/show_bug.cgi?id=575383 Handle
EINTR properly.
2010-02-03 16:34 roy
* Makefile, TEST/Makefile: Userland now builds and uses terminfo
instead of termcap.
OK: core@, jdc@
2010-01-20 02:15 christos
* eln.c: PR/42646: Joachim Kuebart: Shell crashes in libedit when
window size changes (SIGWINCH). Return NULL if el_gets() gets
interrupted.
2010-01-19 23:38 christos
* eln.c: Fix wrapper for EL_EDITOR, from Michael L. Hitch
2010-01-18 20:17 christos
* filecomplete.c: PR/42637: Joachim Kuebart: Shell tab completion
crashes due to libedit stack smashing
2010-01-12 20:40 christos
* eln.c: - call the mapping function directly instead of el_wset().
- save the strings passed to the mapping function so that they
don't get re-used. This leaks. To fix it properly we could
either pass a flag to free particular entries before re-using,
or allocate all of them. Allocating all of them wastes memory,
allocating some of them makes the code more complex. This
fixes compatibility binding (shell tab completion for example)
2010-01-12 20:37 christos
* chartype.c: - in the argv conversion, handle NULL as NULL - when
printing tab/nl print them, don't handle them specially.
2010-01-03 20:05 wiz
* editline.3: Bump date for historyw -> history_w.
2010-01-03 19:27 christos
* chartype.h, editline.3, histedit.h, history.c, readline.c,
tokenizer.c, TEST/Makefile, TEST/wtc1.c: rename historyw ->
history_w for consistency. add wide tst code and make it the
default.
2009-12-31 19:32 christos
* chartype.c, chartype.h: expose the encode and decode string
functions for the benefit of history and readline.
2009-12-31 16:58 christos
* Makefile, editline.3, el.c, el.h, eln.c, histedit.h, prompt.c,
read.c: - Document and enable wide character support. - Fix read
function compatibility.
2009-12-31 00:54 christos
* Makefile, chartype.h, el.c, el.h, eln.c, hist.c, hist.h,
histedit.h, history.c, makelist, readline.c, search.c,
tokenizer.c: Fix wide build, test it, but don't turn it on yet.
2009-12-30 23:37 christos
* Makefile, chared.c, chared.h, chartype.c, chartype.h, common.c,
el.c, el.h, eln.c, emacs.c, filecomplete.c, filecomplete.h,
hist.c, hist.h, histedit.h, history.c, key.c, key.h, makelist,
map.c, map.h, parse.c, parse.h, prompt.c, prompt.h, read.c,
read.h, readline.c, refresh.c, refresh.h, search.c, search.h,
sys.h, term.c, term.h, tokenizer.c, tty.c, tty.h, vi.c: Wide
character support (UTF-8) from Johny Mattsson; currently
disabled.
2009-12-28 23:15 christos
* refresh.c: reduce diff with tcsh
2009-12-28 22:55 christos
* filecomplete.c: improve on the listing display by printing only
one character after the filename not two, and no trailing blanks.
I will revisit this when I write the ls-F code.
2009-12-28 22:54 christos
* term.c: Reduce diff with tcsh's editor. No functional change
intended.
2009-12-28 22:52 christos
* refresh.c: Fix bug where tab completion on the second or > line
that caused listing ended up corrupting the display by an extra
space in the beginning. Reported by Mac Chan.
2009-09-07 23:24 christos
* histedit.h, history.c, readline.c, readline/readline.h: apply
apple patches from:
http://opensource.apple.com/source/libedit/libedit-11/patches/
2009-08-31 02:05 christos
* sys.h, term.c, readline/readline.h: delete defined(sun), it could
be invaded in the user namespace. Suggested by mrg@
2009-08-30 17:41 christos
* sys.h, term.c, readline/readline.h: use __sun || sun instead of
_SunOS, from Jess Thrysoee
2009-07-25 23:19 christos
* el.c: Ignore comment lines in .editrc from Jess Thrysoee
2009-07-22 20:25 christos
* el.c: Only need path if we have issetugid... From Anon Ymous
2009-07-22 17:58 christos
* tty.c: Don't depend on side effects inside an assert From Michael
Cook mcook at bbn dot com
2009-07-22 17:57 christos
* readline.c: Fix memory leaks in error paths. From Michael Cook
mcook at bbn dot com
2009-07-22 17:57 christos
* read.c: Always initialize nread since it is an out param. From
Michael Cook mcook at bbn dot com
2009-07-22 17:56 christos
* el.c: Move filename to the scope it is being used. From Michael
Cook mcook at bbn dot com
2009-07-17 14:28 christos
* refresh.c: Simplify the code. No functional change.
2009-07-17 14:27 christos
* term.c: - off by one in the term.h case. - make code more
similar to tcsh (if we want to handle wide chars, this is
needed; for now it is a no-op)
2009-07-17 14:26 christos
* prompt.c: handle prompt_esc properly.
2009-07-17 14:25 christos
* TEST/tc1.c: Use the proper prompt printing function.
2009-07-09 21:02 christos
* readline/readline.h: add stdio.h since we are using FILE. From
Grant Erickson
2009-07-05 23:55 perry
* editline.3: note that the return value of el_gets doesn't remain
valid across calls.
2009-06-09 15:04 christos
* read.c: decrement the number of levels after the loop (Julien
Torres)
2009-06-08 17:10 christos
* read.c: from Julien Torres, flip the order we pop in the macro
array.
2009-05-19 23:45 christos
* refresh.c: always scroll when we advance past bottom. From Caleb
Welton cwelton at greenplum dot com
2009-05-13 21:18 jym
* chared.c, chared.h, common.c, editline.3, editrc.5, el.c, el.h,
emacs.c, filecomplete.c, filecomplete.h, histedit.h, key.c,
key.h, makelist, prompt.c, prompt.h, read.c, readline.c,
refresh.c, search.c, sig.c, sig.h, term.c, term.h, tokenizer.c,
tty.c, vi.c, TEST/tc1.c, readline/readline.h: Sync with HEAD.
Third (and last) commit. See
http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
2009-05-12 10:14 wiz
* editline.3: Punctuation nit.
2009-05-11 20:33 christos
* editline.3, el.c, histedit.h: restore binary compatibility by
providing new prompt functions that take an extra literal
character.
2009-05-04 00:53 snj
* common.c: Pull up following revision(s) (requested by msaitoh in
ticket #703): lib/libedit/common.c: revision 1.23 fix
mis-evaluating whether a char is digit or not.
2009-04-30 20:11 bouyer
* common.c: Pull up following revision(s) (requested by msaitoh in
ticket #1307): lib/libedit/common.c: revision 1.23 fix
mis-evaluating whether a char is digit or not.
2009-04-23 04:03 snj
* term.c: Apply patch (requested by msaitoh in ticket #2007):
Coverity CID 1668: Plug memory leak when malloc() failed.
2009-04-23 04:00 snj
* common.c: Pull up following revision(s) (requested by msaitoh in
ticket #2006): lib/libedit/common.c: revision 1.23 fix
mis-evaluating whether a char is digit or not.
2009-04-16 21:39 christos
* prompt.c: PR/41230: -current: sh(1) endlessly looping in
interactive Fix proposed from Matthew Mondor
2009-04-12 00:17 wiz
* editrc.5: Drop trailing whitespace.
2009-04-11 22:53 joerg
* editrc.5: Don't use .Xo/.Xc to work around ancient macro argument
limit in groff.
2009-04-11 22:48 joerg
* editline.3: Don't use .Xo/.Xc to avoid ancient macro argument
limit.
2009-04-08 23:31 christos
* readline.c: Fix off by one error reported by: Caleb Welton
cwelton at greenplum dot com
2009-04-01 10:58 wiz
* editline.3: Readability improvement. Whitespace nits.
2009-03-31 23:33 christos
* term.c: cast to size_t to avoid sign / unsigned comparison
warning.
2009-03-31 19:53 christos
* readline.c, readline/readline.h: implement
RL_PROMPT_{START,END}_IGNORE
2009-03-31 19:38 christos
* editline.3, el.c, histedit.h, prompt.c, prompt.h, refresh.c,
term.c, term.h, TEST/tc1.c: Implement literal prompt sequences.
Now someone can implement
RL_PROMPT_START_LITERAL/RL_PROMPT_END_LITERAL :-)
2009-03-10 23:55 wiz
* editline.3: -1 is not a defined value, it is just a value. On
the other hand, minuses need backslashes, otherwise they become
hyphens.
2009-03-10 21:46 christos
* editline.3, read.c: make el_gets set the count to -1 on error to
distinguish between EOF and error.
2009-03-09 20:24 joerg
* editline.3, editrc.5: Fix preamble to match order set out by
mdoc(7). Discussed with wiz.
2009-02-27 05:18 msaitoh
* common.c: fix mis-evaluating whether a char is digit or not.
2009-02-22 00:35 christos
* read.c: remove VEOF test. the tty is in cooked mode when we are
not editing and the tty driver does the check for us.
2009-02-22 00:31 christos
* key.c, key.h, readline.c, vi.c: more size_t stuff.
2009-02-22 00:31 christos
* read.c: use the VEOF character from the terminal, instead of
hard-coding 4.
2009-02-21 08:58 wiz
* editline.3: Restore markup changes (probably accidentally)
reverted in previous.
2009-02-21 01:05 christos
* editline.3, el.c, histedit.h, prompt.c, prompt.h: back out all
prompt changes. they are not needed.
2009-02-19 21:27 cube
* el.c: Order of evaluation of arguments is undefined, so call
va_arg() in an explicit order. Fixes a segfault with bc reported
by Patrick Welche on current-users.
2009-02-19 16:20 christos
* read.c, sig.c, sig.h: reset and redraw on sigcont. From Anon
Ymous.
2009-02-19 10:48 wiz
* editline.3: Fix wordo, use more markup.
2009-02-19 02:18 christos
* histedit.h: bump version for prompt arg.
2009-02-19 02:18 christos
* editline.3: document extra argument.
2009-02-18 16:04 christos
* sig.c: SA_RESTART for all signals but SIGINT. From Anon Ymous.
2009-02-17 22:34 christos
* el.c, histedit.h, prompt.c, prompt.h: allow for a prompt
argument.
2009-02-16 01:15 christos
* filecomplete.c, filecomplete.h, key.c, tty.c: fix sign compare
issues.
2009-02-15 22:55 christos
* chared.c, chared.h, common.c, emacs.c, filecomplete.c,
filecomplete.h, key.c, key.h, read.c, readline.c, refresh.c,
search.c, term.c, tokenizer.c, tty.c, vi.c: pass lint on _LP64.
2009-02-15 22:25 christos
* sig.c, sig.h: in order for read() to return EINTR we need to use
sigaction, not signal, otherwise SA_RESTART is set.
2009-02-15 22:24 christos
* el.h, read.c: don't restart on EINTR, instead return NULL
immediately. From Anon Ymous
2009-02-12 14:39 sketch
* makelist, readline.c, term.c, readline/readline.h: More fixes for
existing portability stuff.
2009-02-06 21:08 sketch
* sys.h, term.c: SUNOS is spelt __SunOS. Add missing prototypes.
2009-02-06 20:53 sketch
* tty.c: Needs errno.h
2009-02-06 15:40 sketch
* history.c: Plug memory leak, from MySQL.
2009-02-06 14:14 sketch
* vi.c: Portability fix.
2009-02-06 13:45 sketch
* chared.c: de-__P()
2009-02-05 20:15 christos
* histedit.h, read.c: match documentation in el_push
2009-02-05 20:15 christos
* readline.c, readline/readline.h: add rl_set_prompt
2009-01-26 18:32 apb
* config.h, filecomplete.c: Define HAVE_STRUCT_DIRENT_D_NAMLEN in
config,h, and test it when deciding whether to use
entry->d_namlen or strlen(entry->d_name). Addresses PR 40477 by
Robert Millan.
2009-01-18 13:17 lukem
* Makefile: WARNS=4
2009-01-18 13:17 lukem
* el.c, read.c, readline.c: fix -Wsign-compare issues
2009-01-11 16:00 christos
* filecomplete.c, readline.c: - insert a space after the recognized
string if it was an exact match - initialize properly the string
used for completion. From Alex Bligh alex at alex dot org dot uk
- Make char constants consistent
2009-01-11 04:07 christos
* shlib_version: bump shared libraries.
2008-09-30 10:37 aymeric
* common.c: have '$' include the last character in the line when
embedded in a command. This fixes c$, d$, y$, and so on in vi
mode.
2008-09-24 18:35 wrstuden
* common.c, el.c, read.c, refresh.c, sig.c, term.c, term.h, tty.c:
Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
2008-09-18 06:39 wrstuden
* sig.h, tty.c: Sync with wrstuden-revivesa-base-2.
2008-09-10 17:45 christos
* common.c, el.c, read.c, refresh.c, sig.c, term.c, term.h, tty.c:
Allow a single process to control multiple ttys (for pthreads
using _REENTRANT) using multiple EditLine objects. Mostly from
Preston A. Elder.
2008-07-30 15:00 christos
* tty.c: handle EINTR in the termios operations, reported by the
GHC folks
2008-07-12 17:27 christos
* sig.h: Don't bother with SIGSTOP it cannot be caught or ignored.
From Jess Thrysoee
2008-05-18 14:30 yamt
* editline.3, editrc.5, filecomplete.c, filecomplete.h, read.h,
readline.c, readline/readline.h: sync with head.
2008-04-30 15:10 martin
* editline.3, editrc.5: Convert TNF licenses to new 2 clause
variant
2008-04-29 08:53 martin
* filecomplete.c, filecomplete.h, read.h, readline.c,
readline/readline.h: Convert to new 2 clause license
2008-04-06 01:53 christos
* histedit.h, shlib_version: bump minor.
2008-04-05 17:53 christos
* editline.3, el.c, histedit.h, readline.c: add EL_REFRESH for the
benefit of readline
2008-04-04 23:18 christos
* readline.c, readline/readline.h: Add rl_forced_update_display()
from Gerry Swislow
2007-08-12 09:41 christos
* readline.c, readline/readline.h: patches from Axel Thimm
2007-06-10 22:20 christos
* histedit.h: Fix tab/space confusion; from Stefan Farfeleder
2007-05-28 14:06 tls
* Makefile: Add new Makefile knob, USE_FORT, which extends USE_SSP
by turning on the FORTIFY_SOURCE feature of libssp, thus checking
the size of arguments to various string and memory copy and set
functions (as well as a few system calls and other miscellany)
where known at function entry. RedHat has evidently built all
"core system packages" with this option for some time.
This option should be used at the top of Makefiles (or
Makefile.inc where this is used for subdirectories) but after any
setting of LIB.
This is only useful for userland code, and cannot be used in libc
or in any code which includes the libc internals, because it
overrides certain libc functions with macros. Some effort has
been made to make USE_FORT=yes work correctly for a full-system
build by having the bsd.sys.mk logic disable the feature where it
should not be used (libc, libssp iteself, the kernel) but no
attempt has been made to build the entire system with USE_FORT
and doing so will doubtless expose numerous bugs and misfeatures.
Adjust the system build so that all programs and libraries that
are setuid, directly handle network data (including serial comm
data), perform authentication, or appear likely to have (or have
a history of having) data-driven bugs (e.g. file(1)) are built
with USE_FORT=yes by default, with the exception of libc, which
cannot use USE_FORT and thus uses only USE_SSP by default.
Tested on i386 with no ill results; USE_FORT=no per-directory or
in a system build will disable if desired.
2007-05-27 21:45 christos
* readline.c, readline/readline.h: Add rl_completion_matches, fix
remove_history
2007-03-01 22:41 christos
* read.c: Fix bug with multiple pending el_pushes. Reported by
Julien Torres.
2007-01-12 17:31 christos
* editline.3: PR/35411: Matthew Wala: inconsistency in editline(3):
rename "num" to the appropriate parameter names.
2006-12-18 01:03 wiz
* editline.3: Fix xref section. Whitespace cleanups..
2006-12-15 23:13 christos
* editline.3, el.c, el.h, histedit.h: add EL_GETFP, and EL_SETFP.
2006-11-25 18:54 freza
* el.c: s/el->errfile/el->el_errfile/g in debug code, fixes
MKDEBUGLIB build.
2006-11-24 01:03 christos
* histedit.h: bump minor.
2006-11-24 01:01 christos
* editline.3, el.c, histedit.h, readline.c, shlib_version, term.c,
term.h, readline/readline.h: - Add more readline functions,
enough for gdb-6.5 - Make el_get varyadic, and implement
EL_GETTC. - XXX: the EL_SETTC api will change in the future.
2006-11-09 17:58 christos
* filecomplete.c: don't use alloca with ssp.
2006-10-22 09:48 mrg
* vi.c: __weakref__ attribute can not be applied to anything when
inside function scope, so, move the extern of get_alias_text
outside vi_alias().
fixes build problems with GCC 4.1-20061021.
2006-09-28 15:52 christos
* history.c: Fix memory leak found by valgrind (Julien Torres)
2006-08-31 22:20 rpaulo
* Makefile, TEST/Makefile, TEST/tc1.c, TEST/test.c: Rename
TEST/test.c to avoid problems when doing a cleandir on
case-insensitive file systems. ok'ed christos.
2006-08-21 14:45 christos
* editline.3, editrc.5, filecomplete.c, filecomplete.h, read.h,
readline.c, readline/readline.h: Change to a 3 clause copyright
after permission of the holders.
2006-07-23 22:21 christos
* readline.c: PR/34062: Tanaka Akira: rl_deprep_term_function is
NULL in libedit. Default to rl_deprep_terminal as suggested; do
the same for rl_prep_term_function
2006-05-18 19:54 christos
* vi.c: change __weak_extern to __weak_reference so that gcc4
works.
2006-04-09 03:36 christos
* map.c: fix debugging printf format.
2006-03-25 14:00 rtr
* readline.c: remove if/free block checking known condition
coverity 2762 / run 11
2006-03-23 21:22 christos
* key.c, key.h: move declaration to header file.
2006-03-21 18:52 christos
* readline.c: Coverity CID 2743: Not really a memory leak, but make
it obvious that we always free tmp.
2006-03-18 20:23 christos
* term.c: Fix compilation.
2006-03-18 20:22 christos
* readline.c: Lint comment.
2006-03-18 10:31 christos
* term.c: Coverity CID 1668: Plug memory leak.
2006-03-18 10:28 christos
* readline.c: Coverity CID 1666: Plug memory leak.
2006-03-18 10:19 christos
* readline.c: Coverity CID 1667: Plug memory leak
2006-03-18 10:15 christos
* readline.c: Coverity CID 1662: Memory leak.
2006-03-18 10:09 christos
* tty.c: Coverity CID 597: remove dead code.
2006-03-18 10:07 christos
* tty.c: Coverity CID 1216: Prevent negative index use.
2006-03-18 10:02 christos
* term.c: Coverity CID 806: Prevent NULL deref
2006-03-06 22:11 christos
* chared.h, common.c, emacs.c, key.c, key.h, map.c, term.c, term.h,
vi.c: Print the actual eofc, instead of ^D\b\b. Change internal
character decoding to prevent buffer oveflows.
2006-03-06 22:11 christos
* readline.c: use the tty chars for reprint and eof instead of
hard-coded ^R and ^D
2006-02-13 15:12 christos
* readline.c: PR/32817: Magnus Svensson: write_history and
read_history returncode is not readline compatible.
2006-02-12 17:15 christos
* readline.c: Partial rl_getc_function support from Jess Thrysoee.
2005-11-09 23:11 christos
* refresh.c: Refresh bug reported by Julien Torres:
going from: activate -verbose to: reset -activation
results in: reset -activationverbose" instead of: reset
-activation
This is because we choose to insert "reset -" before the current
line, and the delete "e -" and insert "ion" in the appropriate
place. The cleareol code did not handle this case properly; we
now cleareol to the maximum number of characters of the first
difference, the second difference and the difference in line
length.
2005-10-22 18:45 christos
* makelist: change tr '[a-z]' '[A-Z]' to tr '[:lower:]' '[:upper:]'
so that POSIX systems work properly regardless of environment
variable settings.
2005-10-12 11:29 wiz
* editline.3: Add el_get to SYNOPSIS. From jmc@openbsd.
2005-09-10 00:32 wiz
* editline.3: Fix double if (from Alexey E. Suslikov via
jmc@openbsd). While here, re-word both H_[GS]ETUNIQUE
descriptions so they make more sense. Bump date.
2005-08-19 06:21 christos
* el.c: PR/31012: Barry Naujok: libedit el_get with EL_EDITOR op
does not work Fixed as suggested.
2005-08-10 14:46 christos
* vi.c: Don't save the el->el_line.cursor over a cv_insert call and
use it later because it might change. From Stefan Farfedeler.
2005-08-09 18:40 christos
* vi.c: Don't delete the current line in vi mode when typing 'yy'.
From Stefan Farfeleder.
2005-08-09 15:58 christos
* map.c: Fix two more help iterators. Thanks Stefan Farfeleder!
2005-08-08 16:05 christos
* chared.h, common.c, emacs.c, key.c, term.c, vi.c: Spelling
mistakes and comment errors (from FreeBSD via Stefan Farfeleder;
many thanks)
2005-08-08 16:04 christos
* makelist, map.c: Don't add an extra { NULL, 0, NULL } element to
the help array. Instead keep it always the same size as the
function array for consistency. Reported in FreeBSD PR 82381, but
fixed differently.
2005-08-08 03:41 christos
* chared.c: The previous commit removed too much and forgot to
reset the history event number. From Kouichirou Hiratsuka, many
thanks!
2005-08-03 15:41 christos
* filecomplete.c: Fix reversed test; from Gerry Swislow
2005-08-02 14:11 christos
* read.c: On a fatal error, we want to stop processing the macro
buffers.
2005-08-02 12:20 tron
* read.c: Add missing second argument to another call of
ch_reset().
2005-08-02 01:00 christos
* chared.c, chared.h, common.c, el.c, read.c: Don't reset the macro
strings each time we enter el_gets(), otherwise el_push() is
unusable programmatically.
2005-08-01 16:34 christos
* history.c: Don't forget to initialize h_del; from Julien Torres.
2005-07-14 17:02 wiz
* editline.3: Drop trailing whitespace.
2005-07-14 17:00 christos
* editline.3, histedit.h, history.c, readline.c,
readline/readline.h: PR/30747: David N. Williams: libedit is
missing remove_history() Added, please test.
2005-07-12 13:35 tron
* readline.c: Pull up revision 1.52 (requested by lukem in ticket
#542): check for pwd != NULL, fix a missed getpwnam.
2005-07-12 13:33 tron
* readline.c: Pull up revision 1.50 (requested by lukem in ticket
#542): use getpwent_r
2005-07-06 23:13 christos
* history.c, key.c: Fix memory leaks found by valgrind. From Julien
Torres
2005-06-12 08:58 christos
* histedit.h: make this useable from c++.
2005-06-11 20:18 christos
* filecomplete.c, filecomplete.h, readline.c, readline/readline.h:
PR/30500: Paul Shupak: Inconsistent definition of tilde_expand().
Provide a layer of indirection between the readline
compatibility functions and our internal implementation, so that
we have the freedom to change the function signature.
2005-06-10 22:21 christos
* filecomplete.c, filecomplete.h, readline.c: Bug reported from
Martin Dietze:
The place to change the completion_append_character is
usually somewhere in the `rl_completion_entry_function'
callback which is where one usually can distinguish between
file- or dir-like entries to append a slash for dirs etc.
This does no longer work since `fn_complete()' takes the
`append_character' as argument before the callback is
executed,
so that changes to the variable
`rl_completion_append_character'
have in fact no effect for the current completion.
Fix by adding a function that returns the
rl_completion_append_character, when it gets passed in a filename
in readline emulation.
2005-06-10 22:18 christos
* readline/readline.h: tilde expand should take a const argument.
2005-06-01 13:37 lukem
* chared.c, read.c, tty.c, tty.h, TEST/test.c: Don't use
non-standard uint or u_int.
2005-05-29 06:58 lukem
* parse.c, parse.h: Update for recent parse__escape() prototype
change
2005-05-29 05:55 christos
* parse.c, tty.c: PR/25694: Luke Mewburn: Don't abuse
unconstify'ing a string and writing to it, because you'll core
dump. Also remove extra const that gives pain to the irix
compiler.
2005-05-28 16:03 tron
* readline.c: Pull up revision 1.55 (requested by agc in ticket
#353): Use the correct type for the stored callback function
2005-05-28 16:02 tron
* readline.c: Pull up revision 1.54 (requested by agc in ticket
#353): Sync the alternative readline interface with reality: +
the rl_callback_handler_install takes a pointer to a void
function which has one char * argument (it's called that way in
the readline emulation source, otherwise there's no way to pass
the line buffer to the function which processes the line when
EOL is encountered) + provide a prototype for that function
signature and use it Makes the callback readline interface work
now.
2005-05-28 16:02 tron
* readline/readline.h: Pull up revision 1.14 (requested by agc in
ticket #353): Sync the alternative readline interface with
reality: + the rl_callback_handler_install takes a pointer to a
void function which has one char * argument (it's called that
way in the readline emulation source, otherwise there's no way
to pass the line buffer to the function which processes the
line when EOL is encountered) + provide a prototype for that
function signature and use it Makes the callback readline
interface work now.
2005-05-28 14:03 lukem
* TEST/test.c: fix for WARNS=3
2005-05-28 14:02 lukem
* Makefile: clean up build of "test"
2005-05-28 13:55 lukem
* Makefile: MAKEVERBOSE support
2005-05-27 16:01 agc
* readline.c: Use the correct type for the stored callback function
2005-05-27 13:35 agc
* readline.c, readline/readline.h: Sync the alternative readline
interface with reality:
+ the rl_callback_handler_install takes a pointer to a void
function which has one char * argument (it's called that way in
the readline emulation source, otherwise there's no way to pass
the line buffer to the function which processes the line when
EOL is encountered)
+ provide a prototype for that function signature and use it
Makes the callback readline interface work now.
2005-05-19 00:36 christos
* Makefile: Libedit depends on libterm. From Patrick Welche
2005-05-19 00:34 christos
* filecomplete.c: Make completion_matches non-static since readline
wants it.
2005-05-18 02:50 christos
* TEST/test.c: Make signal handler safe. From Michael Knudsen,
many thanks.
2005-05-16 15:14 lukem
* makelist: Remove clause 3 from the UCB license.
2005-05-12 17:48 christos
* filecomplete.c: PR/30215: Kouichirou Hiratsuka: /bin/sh dumps
core with tabcomplete Don't core-dump when trying to complete an
empty line; instead assume ./
2005-05-09 22:10 dsl
* filecomplete.c: Use getpwuid_r(getuid(), ...) to expand ~/....
Don't replace ~xyz with /home/xyz when expanding ~
2005-05-07 18:28 dsl
* filecomplete.c, filecomplete.h: gdb directly calls
filename_completion_function()
2005-05-07 18:22 dsl
* Makefile: Make everything that uses makelist depend on Makefile -
that way the created files pick up new entries.
2005-05-07 18:01 dsl
* Makefile, filecomplete.c, filecomplete.h, histedit.h, readline.c:
Separate out the filename completion functions from the
readline() code. Pass in loads of parameters instead of relying
on shed-loads of global variables to modify the behaviour. The
filename completion code can now be enabled by code that uses
el_gets(). (eg /bin/sh)
2005-04-25 03:06 matt
* vi.c: Terminate the arglist with a NULL instead of 0. (Shuts up
gcc4.x)
2005-04-19 05:29 christos
* readline.c: check for pwd != NULL, fix a missed getpwnam.
2005-04-13 00:01 christos
* readline.c, readline/readline.h: PR/29958: Peter Bex: add
rl_variable_bind and rl_attempted_completion_over
2005-04-02 08:28 christos
* readline.c: use getpwent_r
2005-03-19 18:36 christos
* editline.3: PR/29738: Rui Paulo: Incorrect tok_line and tok_str
declarations.
2005-03-15 01:10 christos
* term.h: Add missing define, needed for debugging (from Rob
Rodgers)
2005-03-10 20:34 christos
* readline.c: Always update the position variables before the map
function is called. From Rob Rodgers, thanks!
2005-03-10 00:55 christos
* readline.c: set UNBUFFERED again after you do the line callback
so that the new line gets refreshed.
2005-03-10 00:55 christos
* read.c: Make sure we flush after we prepare when we are
unbuffered otherwise the prompt will not appear immediately.
2004-11-27 19:31 christos
* history.c: PR/26785: Jess Thrysoee: libedit - H_NEXT and H_PREV
shifts cursor on failure
2004-11-04 02:16 christos
* search.c: Make EM_DELETE_PREV_CHAR behave like
ED_DELETE_PREV_CHAR in incremental search. From Gerry Swislow.
2004-10-28 23:14 dsl
* emacs.c: Use (unsigned char) cast to sanitise arguments to ctype
functions.
2004-10-27 21:59 dsl
* emacs.c: Fix a load of international alphabet problems with
isxxx() and toupper() Change isspace(*char_ptr) to
isspace(*char_ptr & 0xff) so that the correct piece of memory is
looked at for the bit mask. gcc optimises out the '& 0xff' (on
i386 at least). Fixes problems found by gcc when the splurious
(int) cast is removed from the #defines in ctype.h
2004-09-08 20:15 christos
* readline.c: cut out the middle-man and use el_insertstr()
directly.
2004-09-08 20:15 christos
* readline/readline.h: make rl_inhibit_completion visible.
2004-08-24 14:41 christos
* history.c: make sure that we round up to 1K.
2004-08-20 14:54 christos
* history.c: PR/26725: Sergey S. Kostyliov: Typo in libedit,
possible buffer overflow in
src/lib/libedit/history.c:history_save()
2004-08-13 14:10 mycroft
* chared.c, chared.h, emacs.c, map.c, tty.c, vi.c:
Delete-previous-char and delete-next-char without an argument are
not supposed to modify the yank buffer in Emacs. Make it so.
2004-07-10 11:28 tron
* el.c: Pull up revision 1.39 (requested by christos in ticket
#620): PR/23486: Andreas Gustafsson: gdb no longer works with
emacs - make sure that we keep previous contents of the buffer in
unbuffered mode. - when turning editing on and off keep tty
consistent.
2004-07-10 11:28 tron
* read.c: Pull up revision 1.34 (requested by christos in ticket
#620): PR/23486: Andreas Gustafsson: gdb no longer works with
emacs - make sure that we keep previous contents of the buffer in
unbuffered mode. - when turning editing on and off keep tty
consistent.
2004-07-08 02:51 christos
* el.c, read.c: PR/23486: Andreas Gustafsson: gdb no longer works
with emacs - make sure that we keep previous contents of the
buffer in unbuffered mode. - when turning editing on and off
keep tty consistent.
2004-05-23 01:21 christos
* term.c: fix memory leak; thanks to Logan Gabriel
2004-04-15 10:13 wiz
* editline.3: Remove duplicate word, from jfb@openbsd via
jmc@openbsd.
2004-02-27 15:52 christos
* el.c, read.c, read.h, readline.c: Better fix for
rl_prep_terminal() from Gerry Swislow.
2004-02-21 17:42 christos
* el.c, read.c, read.h: Separate tty separation from the prompt
printing function. From Gerry Swislow.
2004-01-17 18:57 christos
* read.c, readline.c, sys.h, term.c, readline/readline.h:
portability fixes.
2003-12-08 13:03 lukem
* TEST/test.c: update for function name change
2003-12-05 14:46 wiz
* editline.3: Use Aq instead of <>, quote a minus, drop trailing
space.
2003-12-05 14:37 lukem
* Makefile, editline.3, histedit.h, parse.c, readline.c,
shlib_version, tokenizer.c, tokenizer.h, TEST/Makefile,
TEST/test.c: Tokenization function enhancements: * Make
tok_init(), tok_end(), tok_reset(), tok_line() and tok_str()
publically available in <histedit.h> * Documented the public
functions in editline(3) * Renamed tok_line() -> tok_str() *
Added new tok_line() which takes a "const LineInfo *" instead of
"const char *" (the former has "cursor" information), and
optionally return the argv index ("int *cursorc") and offset
within that index ("int *cursorv"). This means that completion
routines can use the tokenization code to crack the line and
easily find which word the cursor is at. (mmm, context
sensitive completion :) * Fixed TEST/test.c when using
"continuation" lines (unmatched quote or \ at EOL), and added
some more DEBUG messages including highlighting where the
cursor is (with a `_').
2003-11-04 14:22 christos
* editline.3: s/wth/with/
2003-11-03 04:22 christos
* readline.c: Fix uninitialized variable.
2003-11-02 21:08 christos
* chared.c: Always use el->el_buffer, because newbuffer could have
moved. From Gerry Swislow gerry at certif dot com
2003-11-02 21:07 christos
* emacs.c: If the kill buffer is empty return normal. From Gerry
Swislow gerry at certif dot com
2003-11-02 21:06 christos
* parse.c: Handle M- as escape. XXX: should probably select the
meta-map instead. From Gerry Swislow gerry at certif com
2003-11-02 02:45 christos
* readline.c: From: Gerry Swislow gerry at certif dot com
1) File name completion should list the files in the current
directory if no text is entered. The previous version wouldn't
list anything if the text to complete was empty.
2) When listing directories, the entries "." and ".." shouldn't
be shown.
3) The filename completion should be used if the user's
rl_attempted_completion_function doesn't return any matches. The
previous version didn't do that.
2003-11-02 00:39 christos
* readline.c: initialize ptr.
2003-11-02 00:37 christos
* editline.3: Explain H_ADD better. from Otto Moerbeek otto at
drijf dot net
2003-11-02 00:36 christos
* hist.c: Fixes from Otto Moerbeek otto at drijf dot net
2003-11-02 00:35 christos
* editrc.5: Document history builtin commands.
2003-10-27 23:26 christos
* readline.c, readline/readline.h: Make readline csh-like history
work. From Gerry Swislow <gerry at certif dot com>.
2003-10-25 08:42 christos
* search.c: Another fix for incremental search prev.
2003-10-19 08:28 christos
* readline.c: add rl_catch_signals
2003-10-19 03:26 wiz
* editrc.5: Bump date for previous.
2003-10-19 01:48 christos
* chared.c, chared.h, el.c, el.h, history.c, key.c, read.c,
tokenizer.c: change allocation policy in el_push to allocate the
string itself. fix issues with strdup.
2003-10-19 01:27 christos
* search.c, search.h: make forward incremental search work better.
2003-10-19 00:37 christos
* tty.c: remove debugging printf.
2003-10-19 00:24 christos
* editrc.5, tty.c: Allow setty to set chars using char=value
2003-10-17 20:49 christos
* search.c: When searching backwards don't include the characters
after the cursor in the search.
2003-10-17 17:33 wiz
* editline.3: Bump date for previous. Replace > with \*[Gt].
2003-10-17 00:26 christos
* editline.3, el.c, histedit.h, readline.c, readline/readline.h:
More libedit readline emulation functions from: Gerry Swislow
<gerry at certif dot com>
2003-10-16 23:41 christos
* TEST/Makefile: I got tired of typing a cc line.
2003-10-16 23:41 christos
* search.c: Fix incremental search which was badly busted.
2003-10-15 20:08 christos
* parse.c, readline.c: don't limit ^c to alpha c, and add
VIS_NOSLASH so that vis(3) does not produce \^c
2003-10-09 02:42 christos
* read.c, readline.c: PR/23107: Nathan Williams: ^D as the first
char on the command line does not DTRT in readline compatibility
mode
2003-09-26 23:09 wiz
* editline.3: New sentence, new line; bump date for previous.
2003-09-26 19:44 christos
* editline.3, el.c, el.h, histedit.h, read.c, read.h, readline.c,
shlib_version, readline/readline.h: Implement enough of
readline's 4.0 async mode to make gdb happy. This is not complete
yet, but it seems to work... This required to introduce an
unbuffered mode to el_gets(), but that was a minor change.
2003-09-15 13:33 tron
* readline/readline.h: Include "sys/ttydefaults.h" to get standard
definition of "CTRL" macro which avoids clash with custom one.
2003-09-15 03:29 christos
* readline/readline.h: kludge around CTRL redef.
2003-09-15 00:15 christos
* readline.c, readline/readline.h: Match the stupid function
pointer declarations with actual readline's 4.0. This is gross.
2003-09-14 23:55 christos
* readline.c: make this compile.
2003-09-14 23:55 christos
* readline/readline.h: Avoid pre-ansi warning.
2003-09-14 23:48 christos
* el.c, readline.c, shlib_version, term.c, term.h,
readline/readline.h: - provide enough hooks to compile gdb-5.3 -
fix el_get(e, EL_TERMINAL, (char **))
2003-09-13 06:18 mycroft
* read.c: Fix something that's been annoying me for a while...
Pull in <fcntl.h>, so that the fcntl #defines are present, and we
build in the automatic reset of non-blocking mode, rather than
beeping like mad.
2003-08-07 18:44 agc
* chared.c, chared.h, common.c, el.c, el.h, emacs.c, hist.c,
hist.h, histedit.h, history.c, key.c, key.h, map.c, map.h,
parse.c, parse.h, prompt.c, prompt.h, read.c, refresh.c,
refresh.h, search.c, search.h, sig.c, sig.h, sys.h, term.c,
term.h, tokenizer.c, tokenizer.h, tty.c, tty.h, vi.c,
TEST/test.c: Move UCB-licensed code from 4-clause to 3-clause
licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
2003-08-03 11:23 lukem
* readline/Makefile: Add INCSYMLINKS to <bsd.inc.mk> and
<bsd.kinc.mk>, and use that instead of SYMLINKS to install
symlinked header files. INCSYMLINKS are installed with 'make
includes'. This avoids using SYMLINKS and hacks with the
'linkinstall' target in <bsd.links.mk>, as linksinstall occurs in
'make install' and hacks to get it to occur in 'make includes'
weren't robust, as seen in lib/libdes.
Yet more improvements to bsd.README.
2003-08-01 19:03 lukem
* Makefile: Rework how dependency generation is performed:
* DPSRCS contains extra dependencies, but is _NOT_ added to
CLEANFILES. This is a change of behaviour. If a Makefile
wants the clean semantics it must specifically append to
CLEANFILES. Resolves PR toolchain/5204.
* To recap: .d (depend) files are generated for all files in SRCS
and DPSRCS that have a suffix of: .c .m .s .S .C .cc .cpp .cxx
* If YHEADER is set, automatically add the .y->.h to DPSRCS &
CLEANFILES
* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon
${DPSRCS}
* Deprecate the (short lived) DEPENDSRCS
Update the various Makefiles to these new semantics; generally
either adding to CLEANFILES (because DPSRCS doesn't do that
anymore), or replacing specific .o dependencies with DPSRCS
entries.
Tested with "make -j 8 distribution" and "make distribution".
2003-07-31 14:46 lukem
* Makefile: tweak this unconventional (some might say "baroque")
Makefile to work with the new <bsd.dep.mk> *.d semantics. fixes
problems highlighted by Martin Husemann <martin@>
2003-07-16 13:54 wiz
* editline.3: Bump date for last.
2003-07-15 00:36 jeremy
* editline.3: Documented the return values from el_get().
2003-06-27 20:57 wiz
* editrc.5: Add Ns.
2003-06-19 18:19 christos
* sys.h: provide a definition for __attribute__
2003-06-19 18:04 christos
* readline.c: From [email protected]: Fix realloc case where we
could be running out of space if too many matches.
2003-06-19 17:55 christos
* common.c, el.c, emacs.c, hist.c, history.c, key.h, prompt.c,
read.c, readline.c, refresh.c, term.c, tty.c, vi.c: From
[email protected]: - use __attribute__((__unused__)) in arguments
where appropriate. - some int -> size_t and char * to const char
* conversions.
2003-06-06 15:33 wiz
* editline.3: Use Aq Pa instead of Fd \*[Lt]...\*[Gt]. From
jmc@openbsd.
2003-06-04 22:14 matt
* vi.c: Only return CC_EOF if ^D (VEOF) was the only thing on the
line. Otherwise beep and don't do anything else. This mimics
the behavor of ^D outside in normal terminal mode. (^D in vi
scrolls forwards and as such isn't appropriate to emulation)
2003-05-14 09:24 wiz
* editrc.5: setup -> set up, from jmc@openbsd.
2003-05-08 15:22 christos
* Makefile: add a missing dependency (John Gordon)
2003-05-08 15:20 christos
* Makefile: Use ${HOST_SH}
2003-04-16 15:35 wiz
* editline.3: Use .In header.h instead of .Fd #include
\*[Lt]header.h\*[Gt] Much easier to read and write, and supported
by groff for ages. Okayed by ross.
2003-03-31 18:52 perry
* editrc.5, emacs.c: em-gosmacs-traspose->em-gosmacs-transpose
(Igor Sobrado, PR misc/19909)
2003-03-29 23:48 wiz
* readline.c: Consistently spell occurrence with two rs.
2003-03-15 21:52 he
* refresh.c: Pull up revision 1.19 (via patch, requested by msaitoh
in ticket #14): Since we have opost and onlcr set, we don't
need to output \r; \n is sufficient. Fixes PR#17954.
2003-03-10 22:21 christos
* makelist: don't use the path for awk
2003-03-10 22:18 christos
* refresh.c: s/u_int32_t/unsigned int/
2003-03-10 12:09 dsl
* vi.c: Put the __weak_extern() back inside vi_alias, but after the
extern for get_alias_text().
2003-03-10 10:55 he
* vi.c: Move the __weak_extern() (ifdef'ed) outside of the
vi_alias() function, so that this compiles again.
2003-03-10 02:14 christos
* readline.c: null is not 0
2003-03-10 02:14 christos
* vi.c: if no __weak_extern, don't even try to do vi_alias.
2003-03-10 02:05 christos
* vi.c: fix uninitialized variable. grr, I want gcc-3.3
2003-03-10 01:58 christos
* sig.c, sig.h: sig_t is non portable
2003-03-10 01:57 christos
* sys.h: - include cdefs.h early in the game - ifdef notdef the
sunos stuff - no need for sig_t
2003-03-10 01:56 christos
* readline.c: include alloca.h for systems that need it.
2003-02-25 11:34 wiz
* editline.3: .Nm does not need a dummy argument ("") before
punctuation or for correct formatting of the SYNOPSIS any longer.
2003-01-22 00:00 wiz
* editline.3: Replace -1 with \-1 for PostScript output; drop a
trailing space and fix two typos.
2003-01-21 19:40 christos
* editline.3, hist.c, hist.h, histedit.h, history.c, parse.c: Add a
uniquefier for the history function.
2003-01-21 18:41 christos
* readline.c: fix directory descriptor leak [from michael at moria
dot de]
2003-01-05 09:40 jmc
* refresh.c: Pull up revisions 1.18-1.19 (requested by masanobu in
ticket #1048) PR/17954: SAITOH Masanobu: since we have opost and
onlcr set, we don't need to output \r to go to the end of line;
\n is enough. From David Laight.
2002-11-20 17:50 christos
* chared.c, chared.h, common.c, read.c, search.c: Fix problem with
previous patches that broke vi history. - c_gets() was usually
returning a length, but sometimes one of the CC_xxx values
(which are small +ve integers)! - fixed c_gets() by putting a ' '
under the cursor. From David Laight.
2002-11-15 15:33 christos
* refresh.c: de-lint
2002-11-15 15:32 christos
* chared.c, chared.h, common.c, el.h, emacs.c, hist.c, hist.h,
histedit.h, map.c, read.c, refresh.c, search.c, search.h, vi.c:
PR/18995: David Laight: libedit fixes for posix conformant sh
The posix 'sh' specification defines vi-mode editing quite
tightly. The netbsd libedit code (used by sh to do this) was
missing several features, there were also minor errors in others.
Compare netbsd sh to the definition available from:
http://www.opengroup.org/onlinepubs/007904975/utilities/sh.html
In particular the following were not supported: U - undo all
changes to line | - goto column Y - yank to end of
line y - yank # - comment out current line @ -
take input from shell alias [1] G - goto numbered line in
history buffer v - edit history line with vi _ - append
word from last input line . - redo last command Other minor
changes have also been made.
[1] This needs the shell to define an appropriate routine to
return the text of the alias. There is no requirement that such
a function exist.
2002-11-12 01:01 thorpej
* refresh.c: Fix signed/unsigned comparison warnings.
2002-11-12 01:00 thorpej
* el.c: Avoid strict alias warning.
2002-10-31 03:01 christos
* map.c, vi.c: support for % command [matching
parens/brackets/braces] on vi modes. From David Laight, thanks!
2002-10-27 22:43 christos
* readline.c: remove unused variables.
2002-10-27 22:41 christos
* Makefile, chared.c, chared.h, common.c, el.h, emacs.c, map.c,
read.c, readline.c, refresh.c, vi.c: vi mode and memory fixes
from david laight.
2002-10-27 21:24 christos
* history.c, readline.c, tokenizer.c: don't crash in memory
shortage conditions.
2002-10-27 21:04 christos
* refresh.c: PR/17954: SAITOH Masanobu: since we have opost and
onlcr set, we don't need to output \r to go to the end of line;
\n is enough. From David Laight.
2002-10-13 19:15 christos
* history.c: write the vis(3) converted string into the file, not
the original one. Noted by Tim Robbins. Hi luke!
2002-10-02 13:06 wiz
* editrc.5: empty, not emptry. By Adrian Mrva.
2002-10-01 21:06 wiz
* editline.3: New sentence, new line. From Robert Elz.
2002-08-19 16:55 lukem
* Makefile: Explicitly move setting of NOxxx and USE_SHLIBDIR to
the top of the Makefile (before including <bsd.own.mk>)
2002-08-19 15:35 lukem
* readline/Makefile: More use of ${NETBSDSRCDIR}/some/path instead
of ${.CURDIR}/../../some/path
2002-08-18 09:23 yamt
* editline.3: reflect reality. (3rd arg of el_parse is const.)
2002-08-09 12:03 soren
* TEST/test.c: Remove extraneous \n's in {err,warn}{,x}.
2002-04-09 03:57 thorpej
* readline.c: _rl_qsort_string_compare(): Fix casts. This makes
gcc 3.2 happy, and also allows both LINTED comments to be
removed.
2002-03-24 00:39 christos
* TEST/test.c: make sure this compiles cleanly and works.
2002-03-18 17:20 christos
* Makefile, readline.c: Add a couple linted comment and enable
WARNS=3
2002-03-18 17:19 christos
* config.h: oops, we need config.h now.
2002-03-18 17:00 christos
* chared.c, chared.h, common.c, el.c, el.h, emacs.c, hist.c,
hist.h, histedit.h, history.c, key.c, key.h, map.c, map.h,
parse.c, prompt.c, read.c, readline.c, refresh.c, search.c,
sig.c, sys.h, term.c, term.h, tokenizer.c, tokenizer.h, tty.c,
tty.h, vi.c, TEST/test.c, readline/readline.h: - constify; passes
all gcc and lint strict checks. - add config.h [Jason Evans], to
create a portable version of libedit that can be easily
compiled on other OS's.
2002-02-20 12:54 wiz
* editline.3: Close quoting.
2002-02-07 08:00 ross
* editline.3: Generate <>& symbolically.
2002-02-04 00:37 christos
* chared.h: Fixed an __P remnant
2002-02-04 00:37 christos
* el.c: Don't use HAVE_ yet.
2002-02-04 00:30 christos
* el.c: Fix a warning.
2002-01-31 03:27 christos
* tokenizer.c: don't forget to re-adjust the limit.
2002-01-31 01:25 christos
* tokenizer.c: make pointer arithmetic more palatable.
2002-01-15 03:46 wiz
* editrc.5: Punctuation nits.
2002-01-15 03:46 wiz
* editline.3: Punctuation and whitespace nits, fix a typo.
2001-12-28 02:32 lukem
* Makefile: * Add user-controlled mk.conf variables - SHLIBDIR
Location to install shared libraries if ${USE_SHLIBDIR}
is "yes". Defaults to "/usr/lib".
- USE_SHLIBDIR If "yes", install shared libraries in
${SHLIBDIR}
instead of ${LIBDIR}. Defaults to "no".
Sets ${_LIBSODIR} to the appropriate
value.
This may be set by individual Makefiles
as well.
- SHLINKDIR Location of shared linker. Defaults to
"/usr/libexec".
If != "/usr/libexec", change the
dynamic-linker
encoded in shared programs
* Set USE_SHLIBDIR for libraries used by /bin and /sbin:
libc libcrypt libcrypto libedit libipsec libkvm libm libmi387
libtermcap libutil libz
* If ${_LIBSODIR} != ${LIBDIR}, add symlinks from
${LIBDIR}/${LIB}.so* to ${_LIBSODIR}/${LIB}.so* for
compatibility.
* Always install /sbin/init statically (for now)
The net effect of these changes depends on how the variables are
set:
1.) If nothing is set or changed, there is no change from the
current behaviour:
- Static /bin, /sbin, and bits of /usr/*
- Dynamic rest
- Shared linker is /usr/libexec/ld*so
2.) If the following make variables are set:
LDSTATIC=
SHLINKDIR=/lib
SHLIBDIR=/lib
Then the behaviour becomes:
- Dynamic tools
- .so libraries used by /bin and /sbin are
installed to /lib,
with symlinks from /usr/lib/lib*so to ->
/lib/lib*so
where appropriate
- Shared linker is /lib/ld*so
3.) As per 2.), but add the following variable:
USE_SHLIBDIR=yes
This forces all .so's to be instaleld in /lib (with
compat
symlinks), not just those tagged by their Makefiles to
be.
Again, compat symlinks are installed
2001-12-12 01:51 tv
* readline/Makefile: Readability cleanups; MKfoo=no -> NOfoo.
2001-11-08 20:39 mycroft
* term.c: In the `not what I asked for' department: Do NOT return
an error from term_init() if term_set() fails. Otherwise
el_init() barfs and libedit fails to work.
2001-11-08 20:34 mycroft
* el.c: Remove an unused variable.
2001-11-02 05:47 christos
* el.c: If term_init() fails, cleanup and return NULL. This avoids
other lossage. Pointed by charles.
2001-11-02 05:42 christos
* term.c: Finish initializing all the term data structures even if
the terminal init fails. This makes editline work on dumb
terminals again. Noted by mycroft. Oops, too agressive error
checking.
2001-10-09 15:50 christos
* editline.3, el.c, el.h, histedit.h, shlib_version: PR/14188:
Anthony Mallet: Provide an opaque data pointer to client
programs.
2001-10-04 02:45 lukem
* editline.3: a couple of minor fixes. originally by Ruslan
Ermilov <[email protected]>, highlighted to me by way of Mike
Barcroft <[email protected]> (thanks!)
2001-09-29 19:52 jdolecek
* history.c: history_def_enter: fix off-by-one mistake in delete
condition (the behaviour to keep at least one entry on the
history list is retained) This fixes lib/9704 by Phil Nelson.
2001-09-27 21:29 christos
* editline.3, el.c, el.h, histedit.h, read.c, read.h: PR/14067:
Anthony Mallet: Provide a programmatic way to set the read_char
function via a new el_set() operation. Thanks, nicely done :-)
2001-09-24 15:22 wiz
* el.c: va_{start,end} audit: Make sure that each va_start has one
and only one matching va_end, especially in error cases. If the
va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end
(since it's the callers responsibility).
Improved by comments from enami and christos -- thanks!
Heimdal/krb4/KAME changes already fed back, rest to follow.
Inspired by, but not not based on, OpenBSD.
2001-06-19 15:42 wiz
* editrc.5: `existent', not `existant'
2001-05-17 03:02 christos
* chared.c, hist.c, key.c, tty.c: PR/12963:Jason Waterman: Fix
signed cast problems.
2001-05-16 09:09 enami
* readline/Makefile: Use relative path for symlink target so that
it won't point outside of tree.
2001-05-14 20:39 jdolecek
* readline/Makefile: Back off previous and do differently: Ensure
that the <readline/history.h> link to <readline/readline.h> is
installed too for 'make includes'. Also, avoid creating obj dir.
This is finally real fix for lib/12929. XXX Is this right?
2001-05-14 09:41 jdolecek
* readline/Makefile: Use <bsd.inc.mk>, instead of <bsd.prog.mk>, so
that the readline.h header is installed during the 'make
includes'. Fixes lib/12929 by Martin Husemann.
2001-04-13 03:04 lukem
* chared.c: knf ch_enlargebufs(), to be *consistent* with the rest
of this file...
2001-04-13 02:53 lukem
* refresh.c: rename 3 arg ELRE_DEBUG to ELRE_ASSERT, add 2 arg
ELRE_DEBUG, and change all occurences of ELRE_DEBUG(foo,bar,) ->
ELRE_DEBUG(foo,bar). some compilers (e.g, gcc on darwin) bitch
about the former (`not enough args').
2001-04-02 20:29 wiz
* editline.3: End sentence with a dot.
2001-03-20 01:08 christos
* history.c: chmod the history file to 600 so that only the owner
can read it. [inspired by the openbsd fix to readline]
2001-01-23 16:55 jdolecek
* key.c, key.h, parse.c, search.c, term.c: sprinkle couple const
2001-01-10 23:42 jdolecek
* term.c: term_rebuffer_display(): set el->el_term.t_size.v to
terminals height, not a magic value, so that e.g. el_display[]
and el_vdisplay[] are not bigger than needed. Discussed with
Christos Zoulas.
2001-01-10 09:10 jdolecek
* readline.c: fix partial completion - we failed to refresh screen
in that case
2001-01-10 08:45 jdolecek
* chared.c, chared.h, common.c, emacs.c, hist.c, hist.h, prompt.c,
read.c, refresh.c, refresh.h: Enlarge editline buffers as needed
to support arbitrary length lines. This also addresses lib/9712
by Phil Nelson.
2001-01-09 20:43 jdolecek
* term.c: term_beep(): use ordinary bell, don't attempt to use
visual bell - if user wants visual instead of ordinary bell, they
should set their environment appropriately
2001-01-09 20:22 jdolecek
* makelist: make array of functions and help array const
2001-01-09 18:31 jdolecek
* sig.c, tty.c: make constant arrays a const
2001-01-09 18:22 jdolecek
* map.c, map.h, term.c: make constant arrays a const
2001-01-06 15:44 jdolecek
* el.h: el_line_t: make 'limit' const
2001-01-05 23:45 christos
* el.c, readline.c: depoison the pure editline code from readline
compatibility hacks.
2001-01-05 22:15 jdolecek
* Makefile, readline.c, readline.h, readline/Makefile,
readline/readline.h: Standard location of readline headers is
/usr/include/readline/, so install them there. readline.h of
libedit had to move to subdirectory 'readline', due to the way
BSD makefiles work; this is better than potentially fragile
Makefile hacks
2001-01-04 16:56 christos
* chared.c, hist.c, key.c, map.c, search.c, term.c, term.h,
tokenizer.c: consistently check for allocation failures and
return -1, if we could not get more memory.
2001-01-04 16:55 christos
* readline.c: fix lint problems.
2001-01-04 16:55 christos
* sig.c: fix dumb typo in signal setup [from OpenBSD] return -1 if
alloc fails.
2001-01-01 16:54 jdolecek
* shlib_version: bump libedit minor - addition of
rl_special_prefixes and rl_completion_append_character
2001-01-01 16:52 jdolecek
* readline.c, readline.h: Add support for
rl_completion_append_character and rl_special_prefixes. This
addresses lib/10513 by Giles Lean. Tested with PostgreSQL 7.0.2
psql.
2001-01-01 12:03 jdolecek
* readline.c: history_tokenize(): fix one off-by-one bug
rl_complete_internal(): only replace the completed string with
common part of possible matches if there is a possible
completion
2000-12-31 10:50 jdolecek
* readline.c: rl_display_match_list(): * pad entries shorter than
'max' by spaces correctly * fix off-by-one error which caused
extra newline to be printed if the list fit exactly to
a screen * fix typo in _rl_qsort_string_compare, which caused
the list to not be sorted after all
2000-12-30 23:46 jdolecek
* term.c: term_beep(): if terminal supports both visual and
ordinary bell, 'ring' both
2000-12-23 23:07 jdolecek
* shlib_version: bump libedit minor - added some public stuff for
readline emulation
2000-12-23 23:02 jdolecek
* readline.c, readline.h: completion_matches(): fix a off-by-one
bug, fix variable name typo implement displaying of possible
completions, add hook to display the list on second
rl_complete() invocation in row (typically, double <TAB>)
This addresses the completion part of lib/11581 by Richard
Earnshaw.
2000-11-28 23:37 jmc
* term.c: Alloc the keys structure with A_K_NKEYS as the multiplier
rather than a hardcoded value of 4.
A_K_NKEYS is currently 6 and this mismatch was stomping memory
when initializing the keys. (specifically gdb lost the exec file
name if it was a long path name).
2000-11-11 23:18 christos
* chared.c, el.c, el.h, key.c, map.c, read.c, term.c, term.h: - add
support for home and end keys. - improve debugging support
2000-11-08 01:09 lukem
* editrc.5: improve description of line syntax
2000-10-04 18:21 sommerfeld
* key.c, term.c: format string audit (silence warnings, save space)
2000-09-05 01:45 lukem
* makelist: - generate ansi prototypes instead of using __P().
noted by christos - fix a couple of comments
2000-09-05 01:36 lukem
* TEST/test.c: convert to new style guide
2000-09-05 00:06 lukem
* chared.c, chared.h, common.c, el.c, el.h, emacs.c, hist.c,
hist.h, histedit.h, history.c, key.c, key.h, map.c, map.h,
parse.c, parse.h, prompt.c, prompt.h, read.c, readline.c,
readline.h, refresh.c, refresh.h, search.c, search.h, sig.c,
sig.h, sys.h, term.c, term.h, tokenizer.c, tokenizer.h, tty.c,
tty.h, vi.c: convert to new style guide, which includes: - ansi
prototypes & features (such as stdargs) - 8 space indents
2000-08-29 09:04 lukem
* history.c: history_def_set has a `const int' as a third arg, not
an `int'. picked up by the ultrix compiler, reported by simonb@
...
2000-08-15 14:01 mrg
* Makefile: use .tmp temporaries for generated files, to avoid
having failed generated output being used.
2000-08-02 15:45 chuck
* el.c: pull up 1.18 (approved by thorpej). allows a gdb linked
with libedit's readline emulation to work properly with xxgdb.
2000-08-02 05:36 chuck
* el.c: make xxgdb and a gdb linked with libedit's readline
emulation work properly together. xxgdb communicates with a gdb
running on a pty that it sets to -echo,-onlcr prior to forking
the gdb process. GNU readline preserves the -echo setting while
libedit was undoing it (setting the tty to a sane state and
totally confusing xxgdb's parser).
this diff simply disables libedit if both readline emulation and
"stty -echo" are used/set. that is enough to make xxgdb work
once again, but (XXX) this is not how GNU readline handles stty
-echo (it does not echo anything, but editing commands like
^A,^K, etc. still work), so the readline emulation isn't
perfect.
change reviewed by christos.
2000-06-29 18:09 he
* el.c: Pull up revision 1.17 (via patch, requested by sommerfeld):
Only read .editrc from home directory.
2000-06-29 00:09 sommerfeld
* el.c: Pull up 1.17 (approved by thorpej): only look for .editrc
in /d1/sommerfeld
2000-06-28 22:37 sommerfeld
* el.c: Only look in home directory for .editrc. (Discussed with
Christos.)
2000-06-23 18:16 minoura
* term.c: Sync w/ netbsd-1-5-base.
2000-06-23 17:41 lukem
* editrc.5, makelist: Pull up editrc.5 revision 1.9 Pull up
makelist revision 1.5 * add -m option to makelist, which
generates an mdoc table with the key bindings and their
descriptions * manually add the output of 'sh ./makelist -m
vi.c ed.c common.c' to a new section in editrc(5) called
`EDITOR COMMANDS' requested/approved by thorpej
2000-06-21 05:21 lukem
* editrc.5, makelist: * add -m option to makelist, which generates
an mdoc table with the key bindings and their descriptions *
manually add the output of 'sh ./makelist -m vi.c ed.c common.c'
to a new section in editrc(5) called `EDITOR COMMANDS'
2000-06-02 15:37 lukem
* term.c: use strtol() (instead of atoi()) for sane error detection
2000-05-15 14:15 christos
* el.c: don't dump core on empty files.
2000-03-13 23:59 soren
* refresh.c: Fix doubled 'the's.
2000-03-10 14:06 jdolecek
* readline.c: Fix _rl_compat_sub() to really honour 'globally' flag
instead of making the substitution always globally - affects
_history_expand_command() and in turn history_expand()
All praise lint :)
2000-03-10 13:55 jdolecek
* readline.c: readline(): don't dereference NULL pointer if prompt
is NULL history_tokenize(): avoid stepping too far if backslash
is last character on the passed string update some comments
This makes gdb \ escaping work reliably and fixes lib/9511 by
Assar Westerlund.
2000-03-10 13:25 jdolecek
* parse.c: include <stdlib.h> to get definition of malloc() and
free(), so it's possible to compile this file separately when
debugging
2000-02-28 18:41 chopps
* chared.c, editline.3, histedit.h: el_insertstr takes a "const
char *" not "char *" now as it doesn't modify the argument.
2000-02-19 10:08 mycroft
* refresh.c, term.c: Fix refresh glitches when using auto-margin.
2000-01-20 23:56 christos
* refresh.c, term.c, term.h: Add support for automatic and magic
margins (from tcsh) This makes the rightmost column usable on all
programs that use editline.
2000-01-19 19:31 christos
* key.c: PR/9244: Kevin Schoedel: libedit dumps bindings
inconsistently
2000-01-19 19:30 christos
* read.c: PR/9243: Kevin Schoedel: libedit ignores repeat count
1999-12-27 19:29 wrstuden
* editline.3, el.c, el.h, histedit.h, map.c, prompt.c, prompt.h,
read.c, refresh.c, shlib_version, term.c, term.h, tty.h: Pull up
to last week's -current.
1999-11-26 19:38 lukem
* editline.3: missing ,
1999-11-13 12:32 lukem
* refresh.c: instead of using a private coord_t global variable to
store the size of the rprompt, use the previously unused coord_t
el->el_rprompt.p_pos
1999-11-12 02:05 lukem
* editline.3, el.c, el.h, histedit.h, prompt.c, prompt.h,
refresh.c, shlib_version: - implement printing a right-side
prompt. code derived from similar work I wrote for tcsh(1)
three years ago. - implement EL_RPROMPT, which allows a
setting/getting of a function which returns a string to be used
as the right-side prompt. - improve HISTORY and AUTHORS sections
in editline(3). - bump shlib minor version for EL_RPROMPT.
XXX: due to an implementation issue, the rprompt has a 1 space
gap before the edge of the logical screen. editline's
logical screen is 1 space less than the full screen width,
so there's a 2 space gap between the rprompt and the right
end of the physical screen. i'm not concerned about this.
1999-10-24 06:04 lukem
* term.c: Fix pointer arithmatic (caused problems on LP64,
including ftp dumping core when `edit' was turned off then on).
Problem solved by David Huggins-Daines <[email protected]>
1999-10-15 19:01 jdolecek
* map.c, refresh.c: don't assume locales are not working - it may
not be the case re_refresh(): cast the character passed to
re_addc() to unsigned char, so we don't end up calling
isprint() with negative value when chars are signed and
character value is >= 128
1999-10-05 01:24 lukem
* term.c, term.h: update post change to return value of tputs()
third argument
1999-10-05 01:23 lukem
* read.c: remove some lint
1999-09-26 16:37 lukem
* tty.h: apparantly need <unistd.h> for portable way of getting
_POSIX_VDISABLE
1999-09-21 02:55 lukem
* el.c: * in el_source(): - don't reopen fp if it was
successfully opened in a previous check - use
strlcpy()/strlcat() instead of snprintf() to build a pathname,
since the former are more portable to other systems than the
latter * whitespace fascism
1999-09-21 02:07 lukem
* TEST/test.c: fix id header...
1999-09-21 01:43 lukem
* histedit.h: more whitespace fascism
1999-08-08 03:25 sommerfeld
* read.c: minor tweak to previous fix: don't spuriously truncate
final newline under emacs.
1999-08-02 03:01 sommerfeld
* read.c, term.c, tty.c: Fix PR7685 (gdb under emacs prints
spurious ^M and messes up terminal) plus a few bogons noted along
the way: 1) Set EDIT_DISABLED if terminal type is emacs.
2) fix bug in NO_TTY mode which caused it to not notice CR or LF
3) implement EDIT_DISABLED within libedit to be somewhat
like NO_TTY, except that a prompt is printed first.
1999-07-06 16:10 christos
* Makefile: Use LIBEDITDIR instead of CURDIR so we can use that
Makefile to compile libedit from another directory.
1999-07-03 13:55 lukem
* readline.c: don't try to free() something allocated with alloca()
in rl_complete_internal(). (noticed while using completion in
gdb and getting inundated with warnings from the new free())
1999-07-02 17:21 simonb
* Makefile, chared.c, chared.h, common.c, editline.3, editrc.5,
el.c, emacs.c, hist.c, histedit.h, history.c, key.c, key.h,
makelist, map.c, map.h, parse.c, parse.h, prompt.c, read.c,
readline.c, refresh.c, search.c, search.h, sig.c, term.c, term.h,
tokenizer.c, tokenizer.h, tty.c, tty.h, vi.c, TEST/test.c: More
trailing white space.
1999-06-12 20:58 christos
* readline.c, refresh.c: Make this compile under linux
1999-03-22 20:45 garbled
* editline.3, editrc.5: Last of the .Os cleanups. .Os is defined
in the tmac.doc-common file, so we shouldn't override it with
versions in the manpages. Wheee!
1999-03-06 01:17 mycroft
* history.c: Add missing , in he_errlist[] initializer. Yay lint.
1999-03-04 12:45 itohy
* Makefile: Add minimal dependency to make "make depend" optional
after cleandir.
1999-02-25 09:02 abs
* shlib_version: Add a note to update
src/distrib/sets/lists/base/shl.*, and add a missing RCS Id.
1999-02-07 15:34 christos
* tty.c: PR/6957: Wolfgang Helbig: libedit swaps CR and LF control
chars.
1999-02-05 21:53 christos
* chared.c, refresh.c, search.c, vi.c: delint.
1999-02-05 21:52 christos
* history.c: Encode the history lines using strvis() before saving
it. Fixes gdb history problem with missing newlines.
1999-02-05 21:38 christos
* parse.c: M-X:<enter> core-dumped.
1999-01-11 23:40 kleink
* read.c: In userland, pull in <errno.h> instead of <sys/errno.h>
for the declaration of errno.
1999-01-05 23:46 lukem
* editline.3: fix history() prototype. ([email protected])
1998-12-20 18:52 kleink
* histedit.h: Change multiple inclusion protection symbol name to
NetBSD convention which doesn't violate namespace rules.
1998-12-12 21:08 christos
* chared.c, chared.h, common.c, el.c, key.c, map.c, parse.c,
read.c, refresh.c, search.h, term.c, tokenizer.c, vi.c: delint
1998-12-12 20:54 christos
* readline.c: many problems; variables hidden by others, size_t <->
confusion
1998-12-12 20:52 christos
* history.c: - missing error message from array could cause core
dump - delint
1998-12-03 18:51 cgd
* history.c: per e-mail with christos: history_next_event() should
return -1, not NULL, in case of error, just like
history_prev_event() does.
1998-09-28 13:00 christos
* el.c: fix core-dump caused by maps not being initialized before
tty is called.
1998-09-27 20:04 christos
* tty.c: Obey incoming tty char settings.
1998-09-02 23:33 christos
* search.c: PR/6081: Wolfgang Helbig: search broken in vi mode.
When patbuf was changed to be dynamically allocated, sizeof was
not changed appropriately.
1998-07-29 04:26 lukem
* Makefile, editline.3, editrc.5, el.c, el.h, histedit.h, map.c,
map.h, parse.c, prompt.c, prompt.h, shlib_version: * add more
checks for NULL pointers in passed arguments * implement
el_get(EditLine *, int op, void *result), which does the
inverse of el_set() * add EL_EDITMODE operation to el_set and
el_get; if non zero editing is enabled (the default). * add
"edit on | off" editrc command, which modifies EL_EDITMODE.
users can now add '*:edit off' in ~/.editrc as an advisory to
disable editing.
NOTE: at this time EL_EDITMODE is just an indication of the state
of the 'edit' command. It's up to the application to check this
after el_source() or el_parse() to determine if editing is still
required.
1998-06-08 12:56 lukem
* editline.3: documentation is always probably incomplete; don't
make an issue of it
1998-06-01 16:31 lukem
* editline.3, histedit.h, read.c, shlib_version: * implement
CC_REFRESH_BEEP; as per CC_REFRESH but beep as well. this is
useful in completion when a partial completion is found * remove
entry in BUGS about el_parse(); that was fixed a while ago
1998-05-20 03:38 christos
* TEST/test.c: Show the simpler way.
1998-05-20 03:37 christos
* editline.3, histedit.h, history.c: Add H_APPEND to simplify the
interface.
1998-05-20 03:12 christos
* TEST/test.c: Fix for api changes.
1998-05-20 03:05 christos
* editline.3: Adjust for changes.
1998-05-20 03:04 christos
* tty.c, tty.h: change M_* constants to MD_* to avoid clashes with
<stream.h>
1998-05-20 03:04 christos
* term.c, term.h: remove term_beep hack.
1998-05-20 03:03 christos
* shlib_version: Bump!
1998-05-20 03:03 christos
* readline.c: Adjust to the libedit api changes.
1998-05-20 03:02 christos
* history.c: Add a function to be able to set the cursor to a given
event number.
1998-05-20 03:02 christos
* histedit.h: - add extra argument to el_init - fix history
functions - add el_beep()
1998-05-20 03:01 christos
* emacs.c, refresh.c: cast is*() arg to unsigned char
1998-05-20 03:01 christos
* el.c: el_init takes a third stream argument and add el_beep.
1998-05-20 03:00 christos
* common.c: Don't print to stderr, but to the editline error
stream.
1998-03-30 03:30 mrg
* map.c, tty.c: use int rather than char as an array index.
1998-02-05 19:51 perry
* editline.3: add LIBRARY section to man page
1998-02-03 20:12 perry
* chared.c, common.c, emacs.c, map.c, vi.c: remove obsolete
register declarations
1998-01-30 03:27 perry
* term.c: update to lite-2 (just an sccsid change)
1998-01-30 03:18 perry
* term.c: import lite-2
1998-01-21 12:12 lukem
* editline.3, parse.c: in el_parse(), use a temporary buffer to
store the program name when comparing, preventing trashing of
argv[0]. remove note in man page warning of former behaviour.
1998-01-21 11:12 lukem
* read.c: fix compile errors if FIONREAD is defined. noted by
David Holland <[email protected]> in [bin/4012].
1998-01-05 08:41 perry
* shlib_version: RCSID Police.
1997-12-20 20:15 christos
* el.c, el.h, read.c: Small optimization. Don't call isatty() on
every invocation of el_gets, but remember if the tty setup
failed... Also trim the input line of trailing \r's.
1997-11-13 05:48 thorpej
* term.c, term.h: Un-"protect" term_beep() and rename it to
__term_beep() to keep it out of the user's namespace. We need to
do this because the readline emulation functions call
term_beep(), but readline isn't built using the same (funky)
namespace-protection method as the rest of libedit (it's included
like a normal library object).
Without this (fairly disgusting) hack, any program linked against
libedit will fail to link with an unresolved reference to
term_beep() if using an Elf toolchain (e.g. on the Alpha).
XXX Why this doesn't happen with NetBSD's a.out toolchain is a
mystery XXX to me, and I'm not sure I really want to know (given
that a.out XXX _should_ break the same way as Elf does in this
case).
1997-11-13 05:43 thorpej
* Makefile: Build readline.o into debugging versions of libedit,
too.
1997-11-12 22:56 thorpej
* readline.c: el_gets() takes an int *, not a size_t *.
1997-11-09 01:53 lukem
* Makefile: sync trunk's CPPFLAGS fix (approved by thorpej)
1997-11-09 01:13 lukem
* editline.3: move description of history() return value
1997-10-26 21:19 christos
* read.c: Make el_gets() work when the input is not a tty.
1997-10-26 21:17 christos
* Makefile: Make a link for history.h -> readline.h
1997-10-24 00:51 christos
* readline.c, readline.h: Const de-poisoning :-( Unfortunately the
default gnu readline does not have full prototypes... With those
changes, and a single line change in gdb/top.c, gdb links with
-ledit
1997-10-24 00:24 christos
* Makefile, readline.c, readline.h, shlib_version: PR/4301: Jaromir
Dolecek. Add gnu-readline wrapper for editline.
1997-10-23 08:35 lukem
* TEST/test.c: make this compile with the new libedit history()
1997-10-23 05:26 lukem
* Makefile: use CPPFLAGS instead of CFLAGS, fix building of test
1997-10-20 10:07 scottr
* tty.c: Add support for DTR/CTS flow control, from Bill
Studenmund.
1997-10-14 17:05 christos
* editline.3, hist.c, hist.h, histedit.h, history.c, shlib_version:
PR/4257: Jaromir Dolecek: history() has no generic error handling
and isn't reentrant. This changes the interface of the history
function, so we need a major number bump.
1997-10-13 18:09 lukem
* term.c: use <termcap.h> instead of "termcap.h" (which was
repository copied to libterm)
1997-10-13 17:46 mrg
* termcap.h: termcap.h moves to libterm.
1997-10-09 21:16 christos
* tty.c: PR/4211: Dave Huang: don't lose VSTATUS and VEOL and any
other characters that are VDISABLED by default.
1997-10-09 16:36 lukem
* Makefile: - define WARNS?=1 in the top-level Makefile.inc, and
don't define anywhere else. - for now, override WARNS=0 in
librpcsvc and libwrap, until they're cleaned up - rcsid police
lib is now clean (except for librpcsvc and libwrap) on the i386,
and this should motivate the other ports to fix any other minor
problems that their compilers pick up that the i386 version
doesn't.
1997-07-31 01:57 jtc
* editline.3, editrc.5: Fix files using old TNF copyright notice
1997-07-06 20:25 christos
* Makefile, chared.c, common.c, el.c, emacs.c, hist.c, history.c,
key.c, map.c, parse.c, prompt.c, read.c, refresh.c, search.c,
sig.c, term.c, tokenizer.c, tty.c, vi.c: Fix compiler warnings.
1997-05-09 09:50 mycroft
* Makefile: Eliminate bogus redefinitions of standard targets.
1997-04-24 22:20 christos
* editrc.5: editrc -> editline
1997-04-24 20:54 christos
* el.c: Handle properly the case where the last line in the sourced
file does not have a trailing '\n'. From Jeffrey C Honig.
1997-04-12 00:40 christos
* term.c: Return -1 if the terminal set operation resulted in dumb
terminal settings.
1997-04-11 23:38 christos
* tty.h: Don't allow CSWTCH to interfere with CSUSP on __SVR4
systems.
1997-04-11 19:52 christos
* el.c, histedit.h, history.c, read.c, sig.c, tty.c, tty.h:
Portability fixes: __const -> const BADSIG ->
SIG_ERR int flags -> u_int flags #if __STDC__ -> #ifdef
__STDC__
1997-03-24 23:11 christos
* Makefile: Makefile cleanups: use INCS variable to install
includes and FILES to install objects.
1997-03-20 17:42 christos
* el.c: Fix potential stack overflow; from Keith Bostic.
1997-01-23 15:02 mrg
* history.c, search.c, term.c: - convert unsafe strcpy(), strcat()
and sprintf() to the `n' versions. - some KNF.
1997-01-17 02:03 lukem
* el.c: fix el_source() - a block needed braces around it (the
indenting fooled me)
1997-01-14 05:17 lukem
* common.c, editline.3, histedit.h, read.c: Implement CC_REDISPLAY,
which (unlink CC_REFRESH) redraws the entire input line (a la
^R). This is useful if the binding outputs information and mucks
up the input line. To be used in ``list-choices'' bindings (refer
to the ^D binding in csh when filec is set)
1997-01-11 10:57 lukem
* editrc.5, parse.c: * document ^char and \ escape sequences * when
parsing ^char control chars, check the correct char when
determining validity (previously, ^char was a NOP interpreted
as the literal string because of this bug)
1997-01-11 07:47 lukem
* Makefile, chared.c, chared.h, common.c, editline.3, editrc.5,
el.c, el.h, emacs.c, hist.c, hist.h, histedit.h, history.c,
key.c, key.h, makelist, map.c, map.h, parse.c, parse.h, prompt.c,
prompt.h, read.c, refresh.c, refresh.h, search.c, search.h,
sig.c, sig.h, sys.h, term.c, term.h, termcap.h, tokenizer.c,
tokenizer.h, tty.c, tty.h, vi.c, TEST/test.c: RCSid police
editline first appeared in 4.4BSD not NetBSD1.0
1997-01-11 07:26 lukem
* editline.3, parse.c: * in el_parse(), don't reference argv[0] if
argc < 1 (return -1 instead) * clarify return value of el_parse()
1997-01-09 14:12 lukem
* Makefile, editline.3, editrc.5, parse.c: * add a man page for the
editline routines * add a man page describing editrc * fix bugs
in el_parse(): * didn't execute command when program name
matched (test reversed) * was checking against empty string
instead of program name * after checks, command to run also
pointed to empty string
[christos - the author of libedit - ok-ed the man pages in
general (which I wrote from scratch by RTFS) as well as the
bugfix]
1996-10-18 07:45 thorpej
* Makefile: Use ${INSTALL}.
1996-06-01 21:59 jtk
* Makefile: merge bugfix from 1.2 branch: use includes target for
include files
1996-06-01 21:58 jtk
* Makefile: use includes target to install include files
1995-10-15 20:42 christos
* hist.h, histedit.h, history.c, TEST/test.c: Added history load
and save to file functions.
1995-06-07 07:52 cgd
* makelist: be a bit more careful when splitting pathnames
1995-04-29 22:44 christos
* term.c, term.h: Fixed the key mapping code and reverted Charles'
changes.
1995-04-27 06:49 mycroft
* term.c, term.h: Remove dead code that can't possibly work.
1995-04-27 05:59 mycroft
* map.c: Trivial code ordering change.
1994-10-07 12:41 mycroft
* search.c, sys.h, term.c: Update from trunk.
1994-10-07 12:40 mycroft
* term.c: Fix typo.
1994-10-02 05:27 mycroft
* term.c: Don't even *try* to print out the name of the termcap
file; it's hidden in libtermcap, and it normally uses the DB file
anyway.
1994-10-02 05:23 mycroft
* term.c: Nuke bogus baud rate conversion code.
1994-10-02 03:10 jtc
* search.c, sys.h: Added code so that POSIX.2 regular expresion
functions are used if REGEX is defined, V8 regular expresion
functions are used if REGEXP is defined, and BSD regular
expression functions are used if neither are defined. And
defined REGEX in sys.h so that programs using libedit don't have
to link with libcompat.
1994-08-30 18:33 cgd
* emacs.c: from trunk; pr 420
1994-08-30 17:16 cgd
* emacs.c: fix for pr 420, from Christos.
1994-05-06 08:17 cgd
* Makefile, shlib_version: local
1994-05-06 08:01 cgd
* Makefile, termcap.h, tokenizer.c, tokenizer.h, tty.c, tty.h,
vi.c, read.c, refresh.c, refresh.h, search.c, search.h, sig.c,
sig.h, sys.h, term.c, term.h, history.c, key.c, key.h, map.c,
map.h, parse.c, parse.h, prompt.c, prompt.h, chared.c, chared.h,
common.c, el.c, el.h, emacs.c, hist.c, hist.h, histedit.h,
makelist, TEST/test.c: libedit!
1994-05-06 08:01 cgd
* Makefile, termcap.h, tokenizer.c, tokenizer.h, tty.c, tty.h,
vi.c, read.c, refresh.c, refresh.h, search.c, search.h, sig.c,
sig.h, sys.h, term.c, term.h, history.c, key.c, key.h, map.c,
map.h, parse.c, parse.h, prompt.c, prompt.h, chared.c, chared.h,
common.c, el.c, el.h, emacs.c, hist.c, hist.h, histedit.h,
makelist, TEST/test.c: Initial revision