diff options
Diffstat (limited to 'ChangeLog')
| -rw-r--r-- | ChangeLog | 6123 |
1 files changed, 6119 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 35c9205a43d8..4fce5698a613 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6121 @@ -2021-08-29 Christos Zoulas <christos@netbsd.org> +2026-03-04 11:31 christos - Change default mappings: - map ^W to ed-delete-prev-word and not kill-region - map ^R to em-inc-search-next and not redisplay + * 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 michael@moria.de: 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 + michael@moria.de: - 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 <ru@FreeBSD.org>, highlighted to me by way of Mike + Barcroft <mike@FreeBSD.org> (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 <dhd@eradicator.org> + +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. (d@openbsd.org) + +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 <dholland@bordeaux.eecs.harvard.edu> 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 |
