summary refs log tree commit diff
path: root/bin/dash/src/histedit.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bin/dash/src/histedit.c (renamed from src/histedit.c)10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/histedit.c b/bin/dash/src/histedit.c
index f5c90aba..1b7ad238 100644
--- a/src/histedit.c
+++ b/bin/dash/src/histedit.c
@@ -116,6 +116,14 @@ histedit(void)
 				if (hist)
 					el_set(el, EL_HIST, history, hist);
 				el_set(el, EL_PROMPT, getprompt);
+				el_set(el, EL_RPROMPT, getrprompt);
+#ifdef HAVE__EL_FN_SH_COMPLETE
+				el_set(el, EL_ADDFN, "sh-complete", "Filename completion",
+					_el_fn_sh_complete);
+#else
+				el_set(el, EL_ADDFN, "sh-complete", "Filename completion",
+					_el_fn_complete);
+#endif
 			} else {
 bad:
 				out2str("sh: can't initialize editing\n");
@@ -133,6 +141,7 @@ bad:
 			else if (Eflag)
 				el_set(el, EL_EDITOR, "emacs");
 			el_source(el, NULL);
+			el_set(el, EL_BIND, "^I", "sh-complete", NULL);
 		}
 	} else {
 		INTOFF;
@@ -160,6 +169,7 @@ sethistsize(const char *hs)
 		   (histsize = atoi(hs)) < 0)
 			histsize = 100;
 		history(hist, &he, H_SETSIZE, histsize);
+		history(hist, &he, H_SETUNIQUE, 1);
 	}
 }