summaryrefslogtreecommitdiff
path: root/deps/linenoise/README.markdown
diff options
context:
space:
mode:
authorlifubang <lifubang@acmcoder.com>2020-03-05 18:13:43 +0800
committerlifubang <lifubang@acmcoder.com>2020-03-05 18:13:43 +0800
commit2b7b74ad68303f1d6964f1d87bb887e604c34cf9 (patch)
tree4ef711f27a3a44fffd48e8b857b2756d86f8d198 /deps/linenoise/README.markdown
parentf88f8661ac29c054cffb795e6c371fbb2240aa0e (diff)
downloadredis-2b7b74ad68303f1d6964f1d87bb887e604c34cf9.tar.gz
update linenoise to https://github.com/antirez/linenoise/tree/fc9667a81d43911a6690fb1e68c16e6e3bb8df05
Signed-off-by: lifubang <lifubang@acmcoder.com>
Diffstat (limited to 'deps/linenoise/README.markdown')
-rw-r--r--deps/linenoise/README.markdown25
1 files changed, 24 insertions, 1 deletions
diff --git a/deps/linenoise/README.markdown b/deps/linenoise/README.markdown
index e01642cf8..1afea2ae6 100644
--- a/deps/linenoise/README.markdown
+++ b/deps/linenoise/README.markdown
@@ -21,7 +21,7 @@ So what usually happens is either:
The result is a pollution of binaries without line editing support.
-So I spent more or less two hours doing a reality check resulting in this little library: is it *really* needed for a line editing library to be 20k lines of code? Apparently not, it is possibe to get a very small, zero configuration, trivial to embed library, that solves the problem. Smaller programs will just include this, supporing line editing out of the box. Larger programs may use this little library or just checking with configure if readline/libedit is available and resorting to Linenoise if not.
+So I spent more or less two hours doing a reality check resulting in this little library: is it *really* needed for a line editing library to be 20k lines of code? Apparently not, it is possibe to get a very small, zero configuration, trivial to embed library, that solves the problem. Smaller programs will just include this, supporting line editing out of the box. Larger programs may use this little library or just checking with configure if readline/libedit is available and resorting to Linenoise if not.
## Terminals, in 2010.
@@ -126,6 +126,24 @@ Linenoise has direct support for persisting the history into an history
file. The functions `linenoiseHistorySave` and `linenoiseHistoryLoad` do
just that. Both functions return -1 on error and 0 on success.
+## Mask mode
+
+Sometimes it is useful to allow the user to type passwords or other
+secrets that should not be displayed. For such situations linenoise supports
+a "mask mode" that will just replace the characters the user is typing
+with `*` characters, like in the following example:
+
+ $ ./linenoise_example
+ hello> get mykey
+ echo: 'get mykey'
+ hello> /mask
+ hello> *********
+
+You can enable and disable mask mode using the following two functions:
+
+ void linenoiseMaskModeEnable(void);
+ void linenoiseMaskModeDisable(void);
+
## Completion
Linenoise supports completion, which is the ability to complete the user
@@ -222,3 +240,8 @@ Sometimes you may want to clear the screen as a result of something the
user typed. You can do this by calling the following function:
void linenoiseClearScreen(void);
+
+## Related projects
+
+* [Linenoise NG](https://github.com/arangodb/linenoise-ng) is a fork of Linenoise that aims to add more advanced features like UTF-8 support, Windows support and other features. Uses C++ instead of C as development language.
+* [Linenoise-swift](https://github.com/andybest/linenoise-swift) is a reimplementation of Linenoise written in Swift.