fish-shell/src
Mahmoud Al-Qudsi 379f44fabe Add a --private option to launch fish in private mode
In private mode, access to previous history is blocked and new history
does not persist and is only available for the duration of the current
session.

This mode can be used when it is not desirable for commandline history
to leak into a session, e.g. via autocomplete or when it is desirable to
test the behavior of fish in the absence of history items without
permanently clearing the history.

I'm sure there are a lot more features that can be incorporated into
private mode, such as restricting access to certain user-specific
configuration files, etc.

This addresses a lot of the concerns raised in #1363 (which was later
changed to track mosh-specific problems). See also #102.
2018-10-24 19:33:48 +02:00
..
widecharwidth Migrate to widechar_wcwidth 2018-07-09 20:31:16 -07:00
autoload.cpp Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
autoload.h Constructors to accept more parameters by value 2018-02-18 19:12:45 -08:00
builtin_argparse.cpp Correct formatting in argparse 2018-08-25 16:18:49 -07:00
builtin_argparse.h implement argparse builtin 2017-07-12 22:38:24 -07:00
builtin_bg.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_bg.h split builtin bg into its own module 2017-06-16 21:01:56 -07:00
builtin_bind.cpp Add separation of "preset" bindings 2018-09-30 16:54:56 +02:00
builtin_bind.h Add separation of "preset" bindings 2018-09-30 16:54:56 +02:00
builtin_block.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_block.h
builtin_builtin.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_builtin.h split builtin builtin into its own module 2017-06-16 21:01:56 -07:00
builtin_cd.cpp Don't resolve symlinks with cd 2018-10-06 17:03:18 -07:00
builtin_cd.h split builtin cd into its own module 2017-06-16 21:01:56 -07:00
builtin_command.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_command.h split builtin command into its own module 2017-06-16 21:01:56 -07:00
builtin_commandline.cpp Remove global variables from builtin_commandline 2018-10-01 09:34:58 -07:00
builtin_commandline.h
builtin_complete.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_complete.h
builtin_contains.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_contains.h split builtin contains into its own module 2017-06-16 21:01:56 -07:00
builtin_disown.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_disown.h split builtin disown into its own module 2017-06-16 21:01:56 -07:00
builtin_echo.cpp Mark a null variable const in builtin_echo 2018-10-01 09:47:45 -07:00
builtin_echo.h split builtin echo into its own module 2017-06-16 21:01:56 -07:00
builtin_emit.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_emit.h
builtin_exit.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_exit.h split builtin exit into its own module 2017-06-16 21:01:56 -07:00
builtin_fg.cpp Deprecate $_ in favor of (status current-command) 2018-03-24 11:58:19 -05:00
builtin_fg.h split builtin fg into its own module 2017-06-16 21:01:56 -07:00
builtin_function.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_function.h Functions to store nodes 2018-02-12 10:49:22 -08:00
builtin_functions.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_functions.h
builtin_history.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_history.h
builtin_jobs.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_jobs.h
builtin_math.cpp Math: Truncate integers (scale == 0) 2018-10-24 18:53:33 +02:00
builtin_math.h Implement bare minimum builtin math command 2017-08-23 14:43:45 -07:00
builtin_printf.cpp Create an immortal C locale 2018-08-03 00:48:50 -07:00
builtin_printf.h
builtin_pwd.cpp Don't resolve symlinks with cd 2018-10-06 17:03:18 -07:00
builtin_pwd.h split builtin pwd into its own module 2017-06-16 21:01:56 -07:00
builtin_random.cpp change help only cmd opts interface 2017-06-16 21:01:57 -07:00
builtin_random.h split builtin random into its own module 2017-06-16 21:01:56 -07:00
builtin_read.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_read.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_realpath.cpp Change wrealpath to return a maybe_t 2017-10-11 00:08:26 -07:00
builtin_realpath.h split builtin realpath into its own module 2017-06-16 21:01:56 -07:00
builtin_return.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_return.h split builtin return into its own module 2017-06-16 21:01:56 -07:00
builtin_set_color.cpp Eliminate some mutable global variables 2018-09-29 00:20:50 -04:00
builtin_set_color.h
builtin_set.cpp Merge branch 'splitenv_1.8' 2018-10-20 12:51:51 -07:00
builtin_set.h
builtin_source.cpp source: Return error instead of implicitly reading from tty 2018-10-22 21:22:27 +02:00
builtin_source.h split builtin source into its own module 2017-06-16 21:01:56 -07:00
builtin_status.cpp Remove a few useless .c_str() 2018-10-20 20:51:05 +02:00
builtin_status.h split builtin status and read into its own module 2017-06-16 21:01:56 -07:00
builtin_string.cpp More const and atomic correctness 2018-10-01 09:59:22 -07:00
builtin_string.h
builtin_test.cpp Put some of builtin_test in an anonymous namespace 2018-08-04 15:49:20 -07:00
builtin_test.h
builtin_ulimit.cpp Mark short_options as const everywhere 2018-09-29 00:18:36 -04:00
builtin_ulimit.h
builtin_wait.cpp Remove retval global from builtin_wait 2018-10-01 09:59:27 -07:00
builtin_wait.h add wait command 2017-11-16 10:48:21 -08:00
builtin.cpp __fish_print_help: Just use $COLUMNS 2018-10-23 15:05:15 +02:00
builtin.h Revert "Convert list of builtins from sorted array to unordered_set" 2018-09-29 00:22:24 -04:00
color.cpp Remove explicit 'void' parameters. 2018-02-18 19:12:45 -08:00
color.h
common.cpp Correct check and add a basic test for fuzzy_match_substring_case_insensitive 2018-10-21 12:02:38 -07:00
common.h Simplify and add tests for ifind 2018-10-21 15:53:58 -07:00
complete.cpp complete: Stringify 2018-10-23 19:10:14 +02:00
complete.h fixup! Simplify wildcard_complete prototype 2018-10-16 20:38:46 -05:00
env_universal_common.cpp Merge branch 'splitenv_1.8' 2018-10-20 12:51:51 -07:00
env_universal_common.h Move get_runtime_path() to env.cpp and expose it in env.h 2018-09-28 11:33:11 -05:00
env.cpp Add a --private option to launch fish in private mode 2018-10-24 19:33:48 +02:00
env.h Join variables by their delimiter in quoted expansion 2018-10-19 17:35:36 -07:00
event.cpp Make contains() more general 2018-08-11 22:23:20 -07:00
event.h Clean up and document functions --handlers 2018-03-10 02:27:25 -08:00
exec.cpp Revert "Add vector of cleanup/termination events to be executed before quit" 2018-09-28 20:21:23 -04:00
exec.h implement limits on command substitution output 2017-08-03 17:40:25 -07:00
expand.cpp expand: Stringify get_home_directory_name 2018-10-23 19:10:14 +02:00
expand.h Restore %self to refer to the fish pid 2018-10-19 16:17:25 -07:00
fallback.cpp Add support for fish_ambiguous_width 2018-08-18 15:38:05 -07:00
fallback.h Add support for fish_ambiguous_width 2018-08-18 15:38:05 -07:00
fish_indent.cpp Teach fish_indent about escaped newlines 2018-05-07 21:40:53 -07:00
fish_key_reader.cpp fixup! Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:34:31 -05:00
fish_tests.cpp Simplify and add tests for ifind 2018-10-21 15:53:58 -07:00
fish_version.cpp Eliminate some mutable global variables 2018-09-29 00:20:50 -04:00
fish_version.h Revert "Generate FISH_BUILD_VERSION info for cmake builds" 2018-01-08 22:28:10 -08:00
fish.cpp Add a --private option to launch fish in private mode 2018-10-24 19:33:48 +02:00
function.cpp Refactor function_get_[desc/definition] to pass-by-reference 2018-09-26 21:03:55 -05:00
function.h Refactor function_get_[desc/definition] to pass-by-reference 2018-09-26 21:03:55 -05:00
future_feature_flags.cpp Add a qmark-noglob feature flag 2018-05-06 11:20:15 -07:00
future_feature_flags.h Add a feature_test() function 2018-05-06 11:20:15 -07:00
highlight.cpp path: Make working_directory wcstring 2018-10-23 19:10:14 +02:00
highlight.h
history.cpp Add a --private option to launch fish in private mode 2018-10-24 19:33:48 +02:00
history.h Add a --private option to launch fish in private mode 2018-10-24 19:33:48 +02:00
input_common.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05:00
input_common.h Add till/repeat/reverse jump bindings 2018-08-18 14:42:29 -07:00
input.cpp Convert some loops in input.cpp 2018-09-30 18:13:14 -04:00
input.h Add separation of "preset" bindings 2018-09-30 16:54:56 +02:00
intern.cpp Cleap up owning_lock interface 2018-09-01 13:11:42 -07:00
intern.h
io.cpp Remove some disabled (commented or ifdef'd out) code 2018-08-10 20:48:02 -07:00
io.h io: Explicitly reset discard flag 2018-10-24 16:59:24 +02:00
iothread.cpp Cleap up owning_lock interface 2018-09-01 13:11:42 -07:00
iothread.h
kill.cpp Make contains() more general 2018-08-11 22:23:20 -07:00
kill.h
lru.h Added const to methods which 'ought to be const' based on Const Checker 2018-08-09 19:05:47 -07:00
maybe.h Add acquire() to maybe_t 2018-04-01 16:10:59 -07:00
output.cpp Replace \e with \x1B, as the former is a gcc extension 2018-06-18 00:01:47 -05:00
output.h Prevent fish from crashing if non-essential terminfo strings not found 2018-06-17 20:59:34 -05:00
pager.cpp Remove a few useless .c_str() 2018-10-20 20:51:05 +02:00
pager.h
parse_constants.h Switch tokenizer_error back to just an error code 2018-09-27 21:40:51 -04:00
parse_execution.cpp Fix some dead code 2018-09-28 21:26:21 -04:00
parse_execution.h Allow variables in commands 2018-09-01 12:00:56 -07:00
parse_grammar_elements.inc Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
parse_grammar.h Fix warning about extra ';' being ignored 2018-06-18 00:05:31 -05:00
parse_productions.cpp Fix some unused variable warnings 2018-03-31 17:06:13 -07:00
parse_productions.h
parse_tree.cpp Switch tokenizer_error back to just an error code 2018-09-27 21:40:51 -04:00
parse_tree.h Teach the tokenizer to report escaped newlines 2018-05-07 21:39:30 -07:00
parse_util.cpp parse_util: Remove some wcharisms 2018-10-23 19:10:14 +02:00
parse_util.h Teach parse_util_escape_string_with_quote about tildes 2018-02-17 15:18:43 -08:00
parser_keywords.cpp Convert some static wcstring_list_t to C arrays 2018-09-30 19:57:05 -04:00
parser_keywords.h
parser.cpp Added const to methods which 'ought to be const' based on Const Checker 2018-08-09 19:05:47 -07:00
parser.h Added const to methods which 'ought to be const' based on Const Checker 2018-08-09 19:05:47 -07:00
path.cpp path: Make working_directory wcstring 2018-10-23 19:10:14 +02:00
path.h path: Make working_directory wcstring 2018-10-23 19:10:14 +02:00
postfork.cpp Minor cleanup and const correctness 2018-08-04 16:45:16 -07:00
postfork.h Minor cleanup and const correctness 2018-08-04 16:45:16 -07:00
print_help.cpp
print_help.h
proc.cpp Eliminate / vet and whitelist some more globals 2018-09-29 01:11:15 -04:00
proc.h builtins to only acquire terminal if owned by their pgroup 2018-08-18 16:56:01 -07:00
reader.cpp reader: Stringify completion_apply_to_command_line 2018-10-24 11:28:55 +02:00
reader.h Reformat all files 2018-09-08 22:19:05 -07:00
sanity.cpp Remove various empty or useless functions 2018-02-10 17:21:55 -08:00
sanity.h
screen.cpp Revert "Disable ONLCR mapping of NL output to CR-NL" 2018-10-19 17:49:11 -05:00
screen.h Don't reset the screen after emitting a BEL 2018-09-16 16:25:49 -07:00
signal.cpp Allow SIGINT in non-interactive mode 2018-10-12 23:58:14 -07:00
signal.h Revert "Revert "finish cleanup of signal blocking code"" 2017-08-06 14:46:12 -07:00
tinyexpr.c [math] Better error for 2 + 2 4 2018-03-01 13:09:35 +01:00
tinyexpr.h [math] Better error for 2 + 2 4 2018-03-01 13:09:35 +01:00
tnode.cpp Rework 'and' and 'or' to be "job decorators" 2018-03-05 13:41:36 -08:00
tnode.h Fix crash when nodeptr is null and node->get_source() is called 2018-09-26 21:03:55 -05:00
tokenizer.cpp Switch tokenizer_error back to just an error code 2018-09-27 21:40:51 -04:00
tokenizer.h Switch tokenizer_error back to just an error code 2018-09-27 21:40:51 -04:00
utf8.cpp
utf8.h
util.cpp Fix the build on FreeBSD with Clang 2017-06-17 22:51:25 -07:00
util.h
wcstringutil.cpp fixup! Add overload of wcstringutil::trim that automatically trims whitespace 2018-10-01 17:22:40 -05:00
wcstringutil.h Add overload of wcstringutil::trim that automatically trims whitespace 2018-10-01 17:12:18 -05:00
wgetopt.cpp Remove some compatibility juk from wgetopt 2018-08-18 17:22:55 -07:00
wgetopt.h Clean up bits of wgetopter_t interface 2018-08-25 16:09:04 -07:00
wildcard.cpp Simplify wildcard_complete prototype 2018-10-16 15:43:42 -07:00
wildcard.h Simplify wildcard_complete prototype 2018-10-16 15:43:42 -07:00
wutil.cpp Normalize "/" path to "/" 2018-10-12 22:15:16 -07:00
wutil.h Introduce path_normalize 2018-10-06 17:03:18 -07:00