freebsd-dev/bin/sh
Baptiste Daroussin 988b1bb0c5 sh: implement persistent history storage
Implement persistent history storage:
the strategy is simple at start: loads the existing .sh_history file
at exit dump it.

The implementation respects the HISTFILE variable and its POSIX
definition: ~/.sh_history is used if HISTFILE is not set.

to avoid sh to create the history file, set HISTSIZE to 0 or HISTFILE to
en empty value

Co-authored-by:	pstef
Reviewed by:	jilles
Differential Revision:	https://reviews.freebsd.org/D29493
2021-05-10 18:57:13 +02:00
..
bltin General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
funcs Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tests sh/tests: Add a second kind of binary scripts without #! 2021-01-03 23:53:37 +01:00
alias.c sh: Fix use after free when resetting an in-use alias. 2017-04-16 22:10:02 +00:00
alias.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
arith_yacc.c sh: Restore $((x)) error checking after fix for $((-9223372036854775808)) 2019-02-10 22:23:05 +00:00
arith_yacc.h sh: Restore $((x)) error checking after fix for $((-9223372036854775808)) 2019-02-10 22:23:05 +00:00
arith_yylex.c sh: Restore $((x)) error checking after fix for $((-9223372036854775808)) 2019-02-10 22:23:05 +00:00
arith.h sh: Remove unused function declaration for arith_lex_reset(). 2017-03-18 20:41:07 +00:00
builtins.def sh: Remove remnants to compile out fc completely 2020-04-22 21:45:43 +00:00
cd.c sh: Fix rare memory leak with SIGINT 2020-01-01 12:06:37 +00:00
cd.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
dot.profile Install .shrc for root, and set PS1 for the toor account. 2019-01-24 23:34:51 +00:00
dot.shrc vfs: add restrictions to read(2) of a directory [1/2] 2020-06-04 18:09:55 +00:00
error.c sh: Unify EXERROR and EXEXEC 2018-11-09 14:58:24 +00:00
error.h sh: Unify EXERROR and EXEXEC 2018-11-09 14:58:24 +00:00
eval.c sh: Unify EXERROR and EXEXEC 2018-11-09 14:58:24 +00:00
eval.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
exec.c sh: Write absolute path in command -vV and type 2020-09-01 13:19:15 +00:00
exec.h sh: Use exitstatus instead of exerrno to pass EXEXEC status 2018-10-27 20:17:57 +00:00
expand.c sh: Fix ${param?} default error message 2018-11-28 20:03:53 +00:00
expand.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
histedit.c sh: implement persistent history storage 2021-05-10 18:57:13 +02:00
input.c sh: remove duplicate el definition 2020-03-28 17:02:32 +00:00
input.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
jobs.c sh: Explain duplicate tcsetpgrp() calls 2020-12-26 15:27:33 +01:00
jobs.h sh: Move various structs from jobs.h to jobs.c 2018-01-01 22:31:52 +00:00
mail.c sh: Don't use padvance() for MAIL/MAILPATH 2018-07-15 09:14:30 +00:00
mail.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
main.c sh: implement persistent history storage 2021-05-10 18:57:13 +02:00
main.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
Makefile Bump WARNS for sh(1). 2020-04-01 15:12:51 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00
memalloc.c sh: silence sanitizer 2021-04-01 07:31:03 +02:00
memalloc.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
miscbltin.c sh: Remove a comment that was obsoleted by r358152 2020-05-22 14:46:23 +00:00
mkbuiltins sh: Remove remnants to compile out fc completely 2020-04-22 21:45:43 +00:00
mknodes.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
mksyntax.c sh: Split CNL syntax category to avoid a check on state[level].syntax 2018-05-21 21:52:48 +00:00
mktokens Don't hardcode /usr/bin as the path for mktemp in build tools 2018-02-06 15:41:35 +00:00
myhistedit.h sh: implement persistent history storage 2021-05-10 18:57:13 +02:00
mystring.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
mystring.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
nodes.c.pat Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nodetypes Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
options.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
options.h sh: Add set -o pipefail 2019-02-24 21:05:13 +00:00
output.c sh: Send normal output from bind builtin to stdout 2019-02-19 21:27:30 +00:00
output.h sh: Send normal output from bind builtin to stdout 2019-02-19 21:27:30 +00:00
parser.c Make sh(1) support \u in PS1. This removes one fork/exec on interactive 2019-01-24 11:59:46 +00:00
parser.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
profile Don't mess with BLOCKSIZE in shell startup files - it's set by login.conf(5); 2019-01-20 22:08:49 +00:00
redir.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
redir.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
sh.1 sh: implement persistent history storage 2021-05-10 18:57:13 +02:00
shell.h sh: Restore $((x)) error checking after fix for $((-9223372036854775808)) 2019-02-10 22:23:05 +00:00
show.c sh: fix debug build 2021-04-11 09:23:14 +02:00
show.h sh: fix debug build 2021-04-11 09:23:14 +02:00
TOUR sh: Unify EXERROR and EXEXEC 2018-11-09 14:58:24 +00:00
trap.c sh: implement persistent history storage 2021-05-10 18:57:13 +02:00
trap.h sh: Keep ignored SIGINT/SIGQUIT after set in a background job 2020-08-28 15:35:45 +00:00
var.c sh: Do not place exported but unset variables into the environment 2019-01-03 20:22:35 +00:00
var.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00