CVS commit: src/lib/libedit
Module Name:src Committed By: rillig Date: Sun Aug 15 22:22:52 UTC 2021 Modified Files: src/lib/libedit: readline.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.161 -r1.162 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: rillig Date: Sun Aug 15 22:14:45 UTC 2021 Modified Files: src/lib/libedit: readline.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.160 -r1.161 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: wiz Date: Sun Aug 15 10:12:55 UTC 2021 Modified Files: src/lib/libedit: editline.3 Log Message: Add verb to sentence. To generate a diff of this commit: cvs rdiff -u -r1.100 -r1.101 src/lib/libedit/editline.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Aug 15 10:08:41 UTC 2021 Modified Files: src/lib/libedit: editline.3 el.c el.h eln.c histedit.h read.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.99 -r1.100 src/lib/libedit/editline.3 src/lib/libedit/el.c cvs rdiff -u -r1.45 -r1.46 src/lib/libedit/el.h cvs rdiff -u -r1.35 -r1.36 src/lib/libedit/eln.c cvs rdiff -u -r1.57 -r1.58 src/lib/libedit/histedit.h cvs rdiff -u -r1.106 -r1.107 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Aug 15 10:06:32 UTC 2021 Modified Files: src/lib/libedit: readline.c Log Message: Add a LINTED comment... Why doesn't NOTREACHED work? To generate a diff of this commit: cvs rdiff -u -r1.159 -r1.160 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Wed Jul 14 07:47:23 UTC 2021 Modified Files: src/lib/libedit: tty.c Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.69 -r1.70 src/lib/libedit/tty.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Wed May 5 14:49:59 UTC 2021 Modified Files: src/lib/libedit: filecomplete.c Log Message: PR/56147: Miroslav Lichvar: Avoid memory leak if strdup fails. To generate a diff of this commit: cvs rdiff -u -r1.67 -r1.68 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Mar 28 13:39:39 UTC 2021 Modified Files: src/lib/libedit: filecomplete.c Log Message: Only unescape when we are quoting and don't add a space if we are quoting (we already did) (Piotr Stefaniak) To generate a diff of this commit: cvs rdiff -u -r1.66 -r1.67 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Mar 28 13:38:10 UTC 2021 Modified Files: src/lib/libedit: filecomplete.h Log Message: document the flag To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/lib/libedit/filecomplete.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Mar 28 13:33:54 UTC 2021 Modified Files: src/lib/libedit: filecomplete.c Log Message: 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) To generate a diff of this commit: cvs rdiff -u -r1.65 -r1.66 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sat Mar 27 18:55:02 UTC 2021 Modified Files: src/lib/libedit: filecomplete.c filecomplete.h Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.64 -r1.65 src/lib/libedit/filecomplete.c cvs rdiff -u -r1.11 -r1.12 src/lib/libedit/filecomplete.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Jul 10 20:34:24 UTC 2020 Modified Files: src/lib/libedit: terminal.c Log Message: Fix numeric variable handling in settc (lyzliyuzhi at 163 dot com) To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/lib/libedit/terminal.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun May 31 23:24:24 UTC 2020 Modified Files: src/lib/libedit: terminal.c tty.c Log Message: use strlcpy() instead of strncpy() for gcc happiness To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/lib/libedit/terminal.c cvs rdiff -u -r1.68 -r1.69 src/lib/libedit/tty.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: ryo Date: Mon Mar 30 06:56:38 UTC 2020 Modified Files: src/lib/libedit: search.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 src/lib/libedit/search.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: ryo Date: Mon Mar 30 06:54:37 UTC 2020 Modified Files: src/lib/libedit: common.c map.c refresh.c search.c Log Message: fix build error with SDEBUG, MAP_DEBUG, DEBUG_REFRESH To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/lib/libedit/common.c cvs rdiff -u -r1.52 -r1.53 src/lib/libedit/map.c cvs rdiff -u -r1.56 -r1.57 src/lib/libedit/refresh.c cvs rdiff -u -r1.49 -r1.50 src/lib/libedit/search.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Sun Jan 5 07:12:05 UTC 2020 Modified Files: src/lib/libedit: filecomplete.c Log Message: PR lib/54510 - when user supplied completion function is there, don't unescape the string to be completed. To generate a diff of this commit: cvs rdiff -u -r1.63 -r1.64 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: tih Date: Sun Jan 5 00:03:28 UTC 2020 Modified Files: src/lib/libedit: filecomplete.c Log Message: 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". To generate a diff of this commit: cvs rdiff -u -r1.62 -r1.63 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Dec 10 19:42:09 UTC 2019 Modified Files: src/lib/libedit: filecomplete.c Log Message: 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) To generate a diff of this commit: cvs rdiff -u -r1.61 -r1.62 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Apr 26 16:56:58 UTC 2019 Modified Files: src/lib/libedit: el.c eln.c readline.c Log Message: Follow the man page for EL_GETTC and not require a NULL terminated argument list: https://reviews.llvm.org/D61191 To generate a diff of this commit: cvs rdiff -u -r1.97 -r1.98 src/lib/libedit/el.c cvs rdiff -u -r1.34 -r1.35 src/lib/libedit/eln.c cvs rdiff -u -r1.151 -r1.152 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Sat Apr 20 08:44:10 UTC 2019 Modified Files: src/lib/libedit: filecomplete.c Log Message: PR lib/54131 - declare the loop variable outside the for loop To generate a diff of this commit: cvs rdiff -u -r1.54 -r1.55 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Apr 12 17:30:49 UTC 2019 Modified Files: src/lib/libedit: terminal.c Log Message: PR/52359: Benjamin Lorenz: When resizing because of a signal save and restore the cursor position, since it does not change. To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/lib/libedit/terminal.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Apr 12 15:12:29 UTC 2019 Modified Files: src/lib/libedit: filecomplete.c Log Message: PR/54117: Paavo Helde: Fix memory overrun: Account for the closing quote in memory allocation if quoted. To generate a diff of this commit: cvs rdiff -u -r1.53 -r1.54 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Sun Mar 31 03:04:58 UTC 2019 Modified Files: src/lib/libedit: filecomplete.c src/lib/libedit/TEST: test_filecompletion.c Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/lib/libedit/filecomplete.c cvs rdiff -u -r1.3 -r1.4 src/lib/libedit/TEST/test_filecompletion.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Sun Mar 24 16:42:49 UTC 2019 Modified Files: src/lib/libedit: filecomplete.c Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Feb 15 23:20:35 UTC 2019 Modified Files: src/lib/libedit: readline.c terminal.c src/lib/libedit/readline: readline.h Log Message: PR/53983: Jonathan Perkins: Fix types for readline compatibility To generate a diff of this commit: cvs rdiff -u -r1.150 -r1.151 src/lib/libedit/readline.c cvs rdiff -u -r1.34 -r1.35 src/lib/libedit/terminal.c cvs rdiff -u -r1.44 -r1.45 src/lib/libedit/readline/readline.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Thu Feb 14 20:09:12 UTC 2019 Modified Files: src/lib/libedit: readline.c Log Message: PR/53981: Jonathan Perkins: history_list should null-terminate To generate a diff of this commit: cvs rdiff -u -r1.149 -r1.150 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Thu Jan 10 18:41:56 UTC 2019 Modified Files: src/lib/libedit: readline.c Log Message: PR/53856: F. Aragon: editline/libedit not prompting colors in readline mode To generate a diff of this commit: cvs rdiff -u -r1.148 -r1.149 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: uwe Date: Fri Jan 4 03:03:44 UTC 2019 Modified Files: src/lib/libedit: refresh.c Log Message: Fix mis-applied change in previous. Don't increment r_oldcv twice. PR lib/53803 To generate a diff of this commit: cvs rdiff -u -r1.55 -r1.56 src/lib/libedit/refresh.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Dec 2 16:58:13 UTC 2018 Modified Files: src/lib/libedit: readline.c tty.c tty.h src/lib/libedit/readline: readline.h Log Message: Add a couple more readline compat functions. To generate a diff of this commit: cvs rdiff -u -r1.147 -r1.148 src/lib/libedit/readline.c cvs rdiff -u -r1.67 -r1.68 src/lib/libedit/tty.c cvs rdiff -u -r1.22 -r1.23 src/lib/libedit/tty.h cvs rdiff -u -r1.43 -r1.44 src/lib/libedit/readline/readline.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Thu Nov 29 03:10:20 UTC 2018 Modified Files: src/lib/libedit: parse.c Log Message: Fix off by one To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/lib/libedit/parse.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Nov 25 16:21:05 UTC 2018 Modified Files: src/lib/libedit: read.c Log Message: >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. To generate a diff of this commit: cvs rdiff -u -r1.104 -r1.105 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Nov 25 16:20:28 UTC 2018 Modified Files: src/lib/libedit: chartype.c Log Message: >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. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/lib/libedit/chartype.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sat Nov 24 12:17:35 UTC 2018 Modified Files: src/lib/libedit: terminal.c Log Message: PR/53682: Jordan Lewis: use newlines instead of padded spaces when restoring multi-line histories. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/lib/libedit/terminal.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Nov 18 17:15:41 UTC 2018 Modified Files: src/lib/libedit: chartype.c Log Message: fix compilation To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/lib/libedit/chartype.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Nov 18 17:09:39 UTC 2018 Modified Files: src/lib/libedit: chartype.c editline.3 el.c el.h read.c Log Message: Remove utf-8 requirement (Yuichiro NAITO) To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/lib/libedit/chartype.c cvs rdiff -u -r1.98 -r1.99 src/lib/libedit/editline.3 cvs rdiff -u -r1.96 -r1.97 src/lib/libedit/el.c cvs rdiff -u -r1.43 -r1.44 src/lib/libedit/el.h cvs rdiff -u -r1.103 -r1.104 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Oct 23 16:49:13 UTC 2018 Modified Files: src/lib/libedit: refresh.c Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.54 -r1.55 src/lib/libedit/refresh.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: kre Date: Thu Sep 13 09:03:40 UTC 2018 Modified Files: src/lib/libedit: history.c Log Message: Fix editing mistake, remove ) from func call that is now gone. To generate a diff of this commit: cvs rdiff -u -r1.61 -r1.62 src/lib/libedit/history.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Thu Sep 13 01:26:33 UTC 2018 Modified Files: src/lib/libedit: history.c Log Message: more efficient to use decode_result :-) Pointed out by kre@ To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/lib/libedit/history.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Wed Sep 12 22:10:35 UTC 2018 Modified Files: src/lib/libedit: history.c Log Message: PR/53597: Yasuhiro Horimoto: Avoid segmentation fault in bad history file. To generate a diff of this commit: cvs rdiff -u -r1.59 -r1.60 src/lib/libedit/history.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sat Jun 9 17:41:55 UTC 2018 Modified Files: src/lib/libedit: readline.c src/lib/libedit/readline: readline.h Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.146 -r1.147 src/lib/libedit/readline.c cvs rdiff -u -r1.42 -r1.43 src/lib/libedit/readline/readline.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri May 4 20:38:27 UTC 2018 Modified Files: src/lib/libedit: filecomplete.c Log Message: fix uninitialized To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Fri May 4 16:39:15 UTC 2018 Modified Files: src/lib/libedit: filecomplete.c src/lib/libedit/TEST: test_filecompletion.c Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.49 -r1.50 src/lib/libedit/filecomplete.c cvs rdiff -u -r1.2 -r1.3 src/lib/libedit/TEST/test_filecompletion.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Wed May 2 08:45:03 UTC 2018 Modified Files: src/lib/libedit: filecomplete.c Log Message: Add '*' and '[' to the list of characters which need escaping during autocompletion To generate a diff of this commit: cvs rdiff -u -r1.48 -r1.49 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon Feb 26 17:36:15 UTC 2018 Modified Files: src/lib/libedit: common.c search.c Log Message: PR/53058: Nikhil Benesch: use correctly typed variables (wchar_t vs wint_t) as parameters. To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/lib/libedit/common.c src/lib/libedit/search.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon Jan 1 22:32:47 UTC 2018 Modified Files: src/lib/libedit: el.c readline.c tty.c tty.h Log Message: Only FLUSH if we are ending libedit; DRAIN if we suspend for readline. This allows pasting multiline buffers (Gerry Swislow) To generate a diff of this commit: cvs rdiff -u -r1.95 -r1.96 src/lib/libedit/el.c cvs rdiff -u -r1.145 -r1.146 src/lib/libedit/readline.c cvs rdiff -u -r1.66 -r1.67 src/lib/libedit/tty.c cvs rdiff -u -r1.21 -r1.22 src/lib/libedit/tty.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: uwe Date: Sat Dec 23 18:25:03 UTC 2017 Modified Files: src/lib/libedit: history.c Log Message: The order in which the arguments to a function are evaluated is undefined, so don't use va_arg() twice. PR lib/52849 To generate a diff of this commit: cvs rdiff -u -r1.58 -r1.59 src/lib/libedit/history.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Dec 8 16:56:24 UTC 2017 Modified Files: src/lib/libedit: readline.c Log Message: 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@ To generate a diff of this commit: cvs rdiff -u -r1.144 -r1.145 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Fri Oct 27 18:16:10 UTC 2017 Modified Files: src/lib/libedit: filecomplete.c Log Message: Add NULL check after doing memory allocation at a couple of places ok christos@ To generate a diff of this commit: cvs rdiff -u -r1.47 -r1.48 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit/TEST
Module Name:src Committed By: abhinav Date: Sun Oct 15 19:17:30 UTC 2017 Modified Files: src/lib/libedit/TEST: test_filecompletion.c Log Message: 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.) To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/libedit/TEST/test_filecompletion.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Sun Oct 15 18:59:00 UTC 2017 Modified Files: src/lib/libedit: filecomplete.c src/lib/libedit/TEST: Makefile Added Files: src/lib/libedit/TEST: test_filecompletion.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.47 src/lib/libedit/filecomplete.c cvs rdiff -u -r1.7 -r1.8 src/lib/libedit/TEST/Makefile cvs rdiff -u -r0 -r1.1 src/lib/libedit/TEST/test_filecompletion.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Wed Oct 11 06:49:03 UTC 2017 Modified Files: src/lib/libedit: chared.c Log Message: Fix typo in comment To generate a diff of this commit: cvs rdiff -u -r1.56 -r1.57 src/lib/libedit/chared.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: kre Date: Sun Sep 17 08:10:08 UTC 2017 Modified Files: src/lib/libedit: readline.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.143 -r1.144 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Sat Sep 16 20:40:35 UTC 2017 Modified Files: src/lib/libedit: filecomplete.c Log Message: Fix indentation (convert spaces to tab) To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Sep 5 18:07:59 UTC 2017 Modified Files: src/lib/libedit: el.c el.h readline.c tty.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.95 src/lib/libedit/el.c cvs rdiff -u -r1.42 -r1.43 src/lib/libedit/el.h cvs rdiff -u -r1.142 -r1.143 src/lib/libedit/readline.c cvs rdiff -u -r1.65 -r1.66 src/lib/libedit/tty.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: wiz Date: Sat Sep 2 06:48:10 UTC 2017 Modified Files: src/lib/libedit: editline.3 Log Message: Remove trailing whitespace; convert Xr readline to Nm readline, since we won't get a readline man page in base. To generate a diff of this commit: cvs rdiff -u -r1.97 -r1.98 src/lib/libedit/editline.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Sep 1 10:19:10 UTC 2017 Modified Files: src/lib/libedit: editline.3 hist.h histedit.h history.c readline.c src/lib/libedit/readline: readline.h Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.96 -r1.97 src/lib/libedit/editline.3 cvs rdiff -u -r1.22 -r1.23 src/lib/libedit/hist.h cvs rdiff -u -r1.56 -r1.57 src/lib/libedit/histedit.h cvs rdiff -u -r1.57 -r1.58 src/lib/libedit/history.c cvs rdiff -u -r1.141 -r1.142 src/lib/libedit/readline.c cvs rdiff -u -r1.41 -r1.42 src/lib/libedit/readline/readline.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: kre Date: Fri Jun 30 20:26:52 UTC 2017 Modified Files: src/lib/libedit: Makefile literal.c literal.h refresh.c Log Message: 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). To generate a diff of this commit: cvs rdiff -u -r1.64 -r1.65 src/lib/libedit/Makefile cvs rdiff -u -r1.2 -r1.3 src/lib/libedit/literal.c cvs rdiff -u -r1.1 -r1.2 src/lib/libedit/literal.h cvs rdiff -u -r1.53 -r1.54 src/lib/libedit/refresh.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: kre Date: Thu Jun 29 02:54:40 UTC 2017 Modified Files: src/lib/libedit: literal.c Log Message: Fix an obvious, but almost invisible typo (avoid some core dumps). To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/lib/libedit/literal.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Jun 27 23:29:13 UTC 2017 Modified Files: src/lib/libedit: refresh.c Log Message: fix comment To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/lib/libedit/refresh.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Jun 27 23:25:13 UTC 2017 Modified Files: src/lib/libedit: Makefile el.c el.h prompt.c Added Files: src/lib/libedit: literal.c literal.h Log Message: add literal escape sequence support, patterned after the tcsh ones. To generate a diff of this commit: cvs rdiff -u -r1.63 -r1.64 src/lib/libedit/Makefile cvs rdiff -u -r1.93 -r1.94 src/lib/libedit/el.c cvs rdiff -u -r1.41 -r1.42 src/lib/libedit/el.h cvs rdiff -u -r0 -r1.1 src/lib/libedit/literal.c src/lib/libedit/literal.h cvs rdiff -u -r1.26 -r1.27 src/lib/libedit/prompt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Jun 27 23:24:19 UTC 2017 Modified Files: src/lib/libedit: read.c Log Message: remove unused variable To generate a diff of this commit: cvs rdiff -u -r1.102 -r1.103 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Jun 27 23:23:48 UTC 2017 Modified Files: src/lib/libedit: refresh.c refresh.h Log Message: - add literal sequence handling. To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/lib/libedit/refresh.c cvs rdiff -u -r1.10 -r1.11 src/lib/libedit/refresh.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Jun 27 23:23:09 UTC 2017 Modified Files: src/lib/libedit: terminal.c Log Message: - handle literal escape sequence printing. - factor out common code in allocation and freeing of the display. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/lib/libedit/terminal.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue Jun 27 23:22:20 UTC 2017 Modified Files: src/lib/libedit: editline.3 Log Message: mention the limitation of the literal sequence delimiter. To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.95 src/lib/libedit/editline.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: kre Date: Tue Jun 27 01:22:58 UTC 2017 Modified Files: src/lib/libedit: editline.3 editrc.5 Log Message: Include EDITRC in doc. To generate a diff of this commit: cvs rdiff -u -r1.93 -r1.94 src/lib/libedit/editline.3 cvs rdiff -u -r1.32 -r1.33 src/lib/libedit/editrc.5 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: kre Date: Tue Jun 27 00:47:37 UTC 2017 Modified Files: src/lib/libedit: el.c Log Message: Make the default editrc file be $EDITRC (from env) if set, falling back to $HOME/.editrc otherwise.Better support for this in sh coming. To generate a diff of this commit: cvs rdiff -u -r1.92 -r1.93 src/lib/libedit/el.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 22 19:16:25 UTC 2017 Modified Files: src/lib/libedit: chartype.h Log Message: Add DragonFly. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/lib/libedit/chartype.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Fri Apr 21 05:38:03 UTC 2017 Modified Files: src/lib/libedit: filecomplete.c filecomplete.h readline.c Log Message: 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@ To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 src/lib/libedit/filecomplete.c cvs rdiff -u -r1.10 -r1.11 src/lib/libedit/filecomplete.h cvs rdiff -u -r1.140 -r1.141 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Mon Apr 10 15:02:40 UTC 2017 Modified Files: src/lib/libedit: editline.3 Log Message: Add missing argument for H_SET. ok christos@ To generate a diff of this commit: cvs rdiff -u -r1.92 -r1.93 src/lib/libedit/editline.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Mar 5 19:23:58 UTC 2017 Modified Files: src/lib/libedit: hist.c Log Message: one extra char for NUL. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/lib/libedit/hist.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Mar 5 17:30:38 UTC 2017 Modified Files: src/lib/libedit: hist.c Log Message: Grow the buffer for event search if there was not enough space. >From Gerry Swislow To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/lib/libedit/hist.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon Jan 9 03:09:05 UTC 2017 Modified Files: src/lib/libedit: readline.c Log Message: Make sure we take into account history_base when computing negative history offsets. (Gerry Swinslow) To generate a diff of this commit: cvs rdiff -u -r1.139 -r1.140 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon Jan 9 02:54:18 UTC 2017 Modified Files: src/lib/libedit: chartype.c Log Message: Make sure that argv is NULL terminated since functions like tty_stty rely on it to be so (Gerry Swinslow) To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/lib/libedit/chartype.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun Dec 11 15:47:06 UTC 2016 Modified Files: src/lib/libedit: read.c Log Message: PR/51706: Amir Plivatsky: Fix memory leak To generate a diff of this commit: cvs rdiff -u -r1.101 -r1.102 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon Nov 7 15:30:19 UTC 2016 Modified Files: src/lib/libedit: hist.c Log Message: 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). To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/lib/libedit/hist.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: abhinav Date: Mon Oct 31 17:46:32 UTC 2016 Modified Files: src/lib/libedit: filecomplete.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/lib/libedit/filecomplete.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri Oct 28 18:32:27 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: pass the stream to the getc function To generate a diff of this commit: cvs rdiff -u -r1.138 -r1.139 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit/readline
Module Name:src Committed By: christos Date: Fri Oct 28 18:32:35 UTC 2016 Modified Files: src/lib/libedit/readline: readline.h Log Message: export rl_done To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/lib/libedit/readline/readline.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: mbalmer Date: Thu Sep 1 13:23:44 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: fix typo To generate a diff of this commit: cvs rdiff -u -r1.137 -r1.138 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Wed Aug 24 13:10:59 UTC 2016 Modified Files: src/lib/libedit: readline.c src/lib/libedit/readline: readline.h Log Message: more compatible with readline history functions. To generate a diff of this commit: cvs rdiff -u -r1.136 -r1.137 src/lib/libedit/readline.c cvs rdiff -u -r1.39 -r1.40 src/lib/libedit/readline/readline.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Thu Jun 2 21:40:51 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: Fix previous to better match readline behavior (Ingo Schwarze) To generate a diff of this commit: cvs rdiff -u -r1.135 -r1.136 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Thu Jun 2 15:11:18 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: >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. To generate a diff of this commit: cvs rdiff -u -r1.134 -r1.135 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue May 31 19:25:17 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: remove the right history entry (Ingo Schwarze) To generate a diff of this commit: cvs rdiff -u -r1.133 -r1.134 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Wed May 25 13:01:11 UTC 2016 Modified Files: src/lib/libedit: read.c Log Message: abstract read code to a single function (Ingo Schwarze) To generate a diff of this commit: cvs rdiff -u -r1.100 -r1.101 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue May 24 19:31:27 UTC 2016 Modified Files: src/lib/libedit: read.c Log Message: el_map.alt can't be NULL here (Ingo Schwarze) To generate a diff of this commit: cvs rdiff -u -r1.99 -r1.100 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue May 24 17:42:54 UTC 2016 Modified Files: src/lib/libedit: Makefile read.c Log Message: remove debug read (Ingo Schwarze) To generate a diff of this commit: cvs rdiff -u -r1.62 -r1.63 src/lib/libedit/Makefile cvs rdiff -u -r1.98 -r1.99 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Tue May 24 15:00:45 UTC 2016 Modified Files: src/lib/libedit: el.h keymacro.c read.c Log Message: >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. To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/lib/libedit/el.h cvs rdiff -u -r1.22 -r1.23 src/lib/libedit/keymacro.c cvs rdiff -u -r1.97 -r1.98 src/lib/libedit/read.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun May 22 23:54:20 UTC 2016 Modified Files: src/lib/libedit: editline.3 editrc.5 Log Message: documentation improvements (Ingo Schwarze) To generate a diff of this commit: cvs rdiff -u -r1.91 -r1.92 src/lib/libedit/editline.3 cvs rdiff -u -r1.31 -r1.32 src/lib/libedit/editrc.5 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun May 22 19:44:26 UTC 2016 Modified Files: src/lib/libedit: chared.c chared.h common.c el.c read.c read.h Log Message: 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 To generate a diff of this commit: cvs rdiff -u -r1.55 -r1.56 src/lib/libedit/chared.c cvs rdiff -u -r1.29 -r1.30 src/lib/libedit/chared.h cvs rdiff -u -r1.46 -r1.47 src/lib/libedit/common.c cvs rdiff -u -r1.91 -r1.92 src/lib/libedit/el.c cvs rdiff -u -r1.96 -r1.97 src/lib/libedit/read.c cvs rdiff -u -r1.11 -r1.12 src/lib/libedit/read.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sat May 21 17:06:45 UTC 2016 Modified Files: src/lib/libedit: editline.3 Log Message: 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) To generate a diff of this commit: cvs rdiff -u -r1.90 -r1.91 src/lib/libedit/editline.3 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri May 13 15:55:59 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: >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. To generate a diff of this commit: cvs rdiff -u -r1.132 -r1.133 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 9 21:46:56 UTC 2016 Modified Files: src/lib/libedit: 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 Log Message: s/protected/libedit_private/g To generate a diff of this commit: cvs rdiff -u -r1.54 -r1.55 src/lib/libedit/chared.c cvs rdiff -u -r1.28 -r1.29 src/lib/libedit/chared.h src/lib/libedit/hist.c \ src/lib/libedit/makelist cvs rdiff -u -r1.29 -r1.30 src/lib/libedit/chartype.c cvs rdiff -u -r1.33 -r1.34 src/lib/libedit/chartype.h cvs rdiff -u -r1.45 -r1.46 src/lib/libedit/common.c cvs rdiff -u -r1.90 -r1.91 src/lib/libedit/el.c cvs rdiff -u -r1.39 -r1.40 src/lib/libedit/el.h src/lib/libedit/parse.c cvs rdiff -u -r1.35 -r1.36 src/lib/libedit/emacs.c cvs rdiff -u -r1.21 -r1.22 src/lib/libedit/hist.h src/lib/libedit/keymacro.c cvs rdiff -u -r1.5 -r1.6 src/lib/libedit/keymacro.h cvs rdiff -u -r1.50 -r1.51 src/lib/libedit/map.c src/lib/libedit/refresh.c cvs rdiff -u -r1.12 -r1.13 src/lib/libedit/map.h cvs rdiff -u -r1.8 -r1.9 src/lib/libedit/parse.h src/lib/libedit/terminal.h cvs rdiff -u -r1.25 -r1.26 src/lib/libedit/prompt.c src/lib/libedit/sig.c cvs rdiff -u -r1.14 -r1.15 src/lib/libedit/prompt.h cvs rdiff -u -r1.95 -r1.96 src/lib/libedit/read.c cvs rdiff -u -r1.10 -r1.11 src/lib/libedit/read.h src/lib/libedit/sig.h cvs rdiff -u -r1.9 -r1.10 src/lib/libedit/refresh.h cvs rdiff -u -r1.46 -r1.47 src/lib/libedit/search.c cvs rdiff -u -r1.13 -r1.14 src/lib/libedit/search.h cvs rdiff -u -r1.26 -r1.27 src/lib/libedit/sys.h cvs rdiff -u -r1.31 -r1.32 src/lib/libedit/terminal.c cvs rdiff -u -r1.64 -r1.65 src/lib/libedit/tty.c cvs rdiff -u -r1.20 -r1.21 src/lib/libedit/tty.h cvs rdiff -u -r1.61 -r1.62 src/lib/libedit/vi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 9 21:38:27 UTC 2016 Modified Files: src/lib/libedit: Makefile sys.h Removed Files: src/lib/libedit: editline.c Log Message: Instead of compiling all the source files together in one big file, use protected visibility to achieve the same effect. To generate a diff of this commit: cvs rdiff -u -r1.61 -r1.62 src/lib/libedit/Makefile cvs rdiff -u -r1.1 -r0 src/lib/libedit/editline.c cvs rdiff -u -r1.25 -r1.26 src/lib/libedit/sys.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 9 21:37:34 UTC 2016 Modified Files: src/lib/libedit: eln.c Log Message: Elide gcc warning about intermediate const casts caused by visibility change. To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/lib/libedit/eln.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 9 21:27:55 UTC 2016 Modified Files: src/lib/libedit: editline.3 editline.7 readline.c Log Message: 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) To generate a diff of this commit: cvs rdiff -u -r1.89 -r1.90 src/lib/libedit/editline.3 cvs rdiff -u -r1.4 -r1.5 src/lib/libedit/editline.7 cvs rdiff -u -r1.131 -r1.132 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 9 21:25:11 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: 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) To generate a diff of this commit: cvs rdiff -u -r1.130 -r1.131 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Sun May 8 20:15:00 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: In stiffle_history(), trim excessive entries from the history and advance history_base like the GNU implementation does. (from Bastian Maerkisch) To generate a diff of this commit: cvs rdiff -u -r1.129 -r1.130 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Fri May 6 21:01:19 UTC 2016 Modified Files: src/lib/libedit: readline.c Log Message: fix logic (Ingo Schwarze) To generate a diff of this commit: cvs rdiff -u -r1.128 -r1.129 src/lib/libedit/readline.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 2 16:48:34 UTC 2016 Modified Files: src/lib/libedit: chartype.c chartype.h el.c el.h terminal.c Log Message: eliminate static buffer with custom resizing code. To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/lib/libedit/chartype.c cvs rdiff -u -r1.32 -r1.33 src/lib/libedit/chartype.h cvs rdiff -u -r1.89 -r1.90 src/lib/libedit/el.c cvs rdiff -u -r1.38 -r1.39 src/lib/libedit/el.h cvs rdiff -u -r1.30 -r1.31 src/lib/libedit/terminal.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/lib/libedit
Module Name:src Committed By: christos Date: Mon May 2 16:35:18 UTC 2016 Modified Files: src/lib/libedit: chartype.h refresh.c Log Message: fix typos from Pedro Giffuni @FreeBSD To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/lib/libedit/chartype.h cvs rdiff -u -r1.49 -r1.50 src/lib/libedit/refresh.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.