]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r352136, r352204, r352275, r352341
authorBaptiste Daroussin <bapt@FreeBSD.org>
Wed, 19 Feb 2020 14:49:32 +0000 (14:49 +0000)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Wed, 19 Feb 2020 14:49:32 +0000 (14:49 +0000)
commitfb9c4effcef4aa5f9d3eb2a70f13c71e08e1cff8
treee175045d22a7c914e708fdd7aaca8d4a4609289d
parent69fc8cbc793bb1480e738cc5b7175a7ff1865034
MFC r352136, r352204, r352275, r352341

r352136:
Import libedit 2019-09-10

Compared to current version in base:
- great improvements on the Unicode support
- full support for filename completion including quoting
  which means we do not need anymore our custom addition)
- Improved readline compatiblity

Upgrading libedit has been a pain in the past, because somehow we never
managed to properly cleanup the tree in lib/libedit and each merge has always
been very painful. After years of fighting give up and refresh a merge from
scrarch properly in contrib.

Note that the switch to this version will be done in another commit.

r352204:
Readd _el_fn_sh_complete for backward compatibility

This function is not needed anymore, it allows old sh binary to continue
to run and avoid breaking backward compatibility.
Note that is now just calls the regular _el_fn_complete which does a proper
job at quoting.

Discussed with: jilles

r352275:
Update libedit to a snapshot from 2019-09-10

This version bring many fixes regarding unicode support
It also adds proper support for filename completion (we do not need our custom
patches anymore)
Improves the libreadline compatibility

Note that the same work was done by Yuichiro Naito in
https://reviews.freebsd.org/D21196 the main difference is in this case we have
reimported libedit in contrib to fix a long standing mess in the previous merges
which prevented a proper update workflow. (discussed long ago with pfg@)

The only difference with upstream libedit is we have added a compatibility shim
for the _elf_fn_sh_complete function which we previously added to support quoting
in filename completion and is not needed anymore.
This was added to continue supported old /bin/sh binaries and not break backward
compatibility (as discussed with jilles@)

Reviewed by: Yuichiro Naito <naito.yuichiro_gmail.com>
Differential Revision: https://reviews.freebsd.org/D21584

r352341:
Fix arm and aarch64 builds of libedit after r352275

On arm and arm64, where chars are unsigned by default, buildworld dies
with:

--- terminal.o ---
/usr/src/contrib/libedit/terminal.c:569:41: error: comparison of
integers of different signs: 'wint_t' (aka 'int') and 'wchar_t' (aka
'unsigned int') [-Werror,-Wsign-compare]
                                     el->el_cursor.v][where & 0370] !=
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/usr/src/contrib/libedit/terminal.c:659:28: error: comparison of
integers of different signs: 'wint_t' (aka 'int') and 'wchar_t' (aka
'unsigned int') [-Werror,-Wsign-compare]
                                     [el->el_cursor.h] == MB_FILL_CHAR)
                                     ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~

Fix this by making MB_FILL_CHAR a wint_t, so no casting is needed.

Note that in https://reviews.freebsd.org/D21584 this was also proposed
by Yuichiro Naito <naito.yuichiro_gmail.com>.

Reviewed by: bapt
Subscribers: naito.yuichiro_gmail.com, ml_vishwin.info
X-MFC-With: r352275
Differential Revision: https://reviews.freebsd.org/D21657
65 files changed:
contrib/libedit/Makefile [new file with mode: 0644]
contrib/libedit/TEST/Makefile [new file with mode: 0644]
contrib/libedit/TEST/rl1.c [moved from lib/libedit/TEST/rl1.c with 98% similarity]
contrib/libedit/TEST/tc1.c [moved from lib/libedit/TEST/tc1.c with 99% similarity]
contrib/libedit/TEST/test_filecompletion.c [new file with mode: 0644]
contrib/libedit/TEST/wtc1.c [moved from lib/libedit/TEST/wtc1.c with 98% similarity]
contrib/libedit/chared.c [moved from lib/libedit/chared.c with 84% similarity]
contrib/libedit/chared.h [moved from lib/libedit/chared.h with 67% similarity]
contrib/libedit/chartype.c [moved from lib/libedit/chartype.c with 70% similarity]
contrib/libedit/chartype.h [new file with mode: 0644]
contrib/libedit/common.c [moved from lib/libedit/common.c with 84% similarity]
contrib/libedit/config.h [moved from lib/libedit/config.h with 97% similarity]
contrib/libedit/editline.3 [moved from lib/libedit/editline.3 with 91% similarity]
contrib/libedit/editline.7 [new file with mode: 0644]
contrib/libedit/editrc.5 [new file with mode: 0644]
contrib/libedit/el.c [moved from lib/libedit/el.c with 81% similarity]
contrib/libedit/el.h [moved from lib/libedit/el.h with 83% similarity]
contrib/libedit/eln.c [moved from lib/libedit/eln.c with 89% similarity]
contrib/libedit/emacs.c [moved from lib/libedit/emacs.c with 90% similarity]
contrib/libedit/filecomplete.c [moved from lib/libedit/filecomplete.c with 64% similarity]
contrib/libedit/filecomplete.h [moved from lib/libedit/filecomplete.h with 83% similarity]
contrib/libedit/hist.c [moved from lib/libedit/hist.c with 71% similarity]
contrib/libedit/hist.h [moved from lib/libedit/hist.h with 67% similarity]
contrib/libedit/histedit.h [moved from lib/libedit/histedit.h with 98% similarity]
contrib/libedit/history.c [moved from lib/libedit/history.c with 85% similarity]
contrib/libedit/historyn.c [new file with mode: 0644]
contrib/libedit/keymacro.c [moved from lib/libedit/keymacro.c with 84% similarity]
contrib/libedit/keymacro.h [moved from lib/libedit/keymacro.h with 69% similarity]
contrib/libedit/literal.c [new file with mode: 0644]
contrib/libedit/literal.h [new file with mode: 0644]
contrib/libedit/makelist [moved from lib/libedit/makelist with 60% similarity]
contrib/libedit/map.c [moved from lib/libedit/map.c with 92% similarity]
contrib/libedit/map.h [moved from lib/libedit/map.h with 78% similarity]
contrib/libedit/parse.c [moved from lib/libedit/parse.c with 67% similarity]
contrib/libedit/parse.h [moved from lib/libedit/parse.h with 85% similarity]
contrib/libedit/prompt.c [moved from lib/libedit/prompt.c with 83% similarity]
contrib/libedit/prompt.h [moved from lib/libedit/prompt.h with 81% similarity]
contrib/libedit/read.c [moved from lib/libedit/read.c with 59% similarity]
contrib/libedit/read.h [moved from lib/libedit/read.h with 78% similarity]
contrib/libedit/readline.c [moved from lib/libedit/readline.c with 89% similarity]
contrib/libedit/readline/Makefile [new file with mode: 0644]
contrib/libedit/readline/readline.h [moved from lib/libedit/edit/readline/readline.h with 91% similarity]
contrib/libedit/refresh.c [moved from lib/libedit/refresh.c with 89% similarity]
contrib/libedit/refresh.h [moved from lib/libedit/refresh.h with 80% similarity]
contrib/libedit/search.c [moved from lib/libedit/search.c with 90% similarity]
contrib/libedit/search.h [moved from lib/libedit/search.h with 74% similarity]
contrib/libedit/shlib_version [new file with mode: 0644]
contrib/libedit/sig.c [moved from lib/libedit/sig.c with 93% similarity]
contrib/libedit/sig.h [moved from lib/libedit/sig.h with 90% similarity]
contrib/libedit/sys.h [moved from lib/libedit/sys.h with 87% similarity]
contrib/libedit/terminal.c [moved from lib/libedit/terminal.c with 85% similarity]
contrib/libedit/terminal.h [moved from lib/libedit/terminal.h with 68% similarity]
contrib/libedit/tokenizer.c [moved from lib/libedit/tokenizer.c with 93% similarity]
contrib/libedit/tokenizern.c [new file with mode: 0644]
contrib/libedit/tty.c [moved from lib/libedit/tty.c with 92% similarity]
contrib/libedit/tty.h [moved from lib/libedit/tty.h with 95% similarity]
contrib/libedit/vi.c [moved from lib/libedit/vi.c with 90% similarity]
lib/libedit/Makefile
lib/libedit/Makefile.depend [deleted file]
lib/libedit/chartype.h [deleted file]
lib/libedit/edit/readline/Makefile.depend [deleted file]
lib/libedit/editrc.5 [deleted file]
lib/libedit/readline/Makefile [moved from lib/libedit/edit/readline/Makefile with 72% similarity]
lib/libedit/readline/history.h [moved from lib/libedit/edit/readline/history.h with 100% similarity]
lib/libedit/readline/tilde.h [moved from lib/libedit/edit/readline/tilde.h with 100% similarity]