2026-03-04 11:31 christos * makelist, map.c, map.h: No need to keep an allocated field. We know that the first EL_NUM_FCNS are not allocated. 2026-03-04 00:04 christos * eln.c, makelist, map.c, map.h: PR/60054: Kristofer Peterson: adding user defined functions with narrow name/desription leaks memory 2026-03-03 16:06 christos * history.c: PR/60052: Kristofer Peterson: history_load() off by one memory access bug 2026-03-03 16:05 christos * chared.c, common.c, hist.c, hist.h: PR/60050: Kristofer Peterson: libedit doesn't handle long lines correctly Fix history resizing, and copying. 2026-02-01 02:52 uwe * editline.7: editline(7): Document vi-histedit command PR lib/59953 by Artem Bunichev 2026-01-18 18:18 christos * refresh.c: When trying to print a help message while editing a multiline entry, print move down enough so that the error message does not get printed on top of the newline from Yuishiro NAITO. Example program: #include #include 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 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 autocompletes to => $ ls foo\ ba hitting 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 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\ --> $ 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 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 auto completes to $ls /tmp/dir1/ Hitting 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 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 . - 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 header because using the data types defined there is deeply ingrained in the public interfaces of libedit. Now POSIX unconditionally requires that 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 . However, it turns out that "histedit.h" already includes 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 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, 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 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 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 * 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 . 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 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 , 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 and , 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 , 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 *.d semantics. fixes problems highlighted by Martin Husemann 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 ) 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 , highlighted to me by way of Mike Barcroft (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 link to 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 , instead of , 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 ) 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 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 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 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: core-dumped. 1999-01-11 23:40 kleink * read.c: In userland, pull in instead of 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 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 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 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