Commit Diff


commit - a06892e4e1613b45d17667de6c48ed0526306ef7
commit + 479b240af68737bc8d545a0e5419252571c4bedd
blob - c8c712d92f362f43f674772556383b9cd8732aae
blob + 52971e5c705cc9429f3f367f8a9a3b2e0218e6e0
--- minibuffer.c
+++ minibuffer.c
@@ -650,13 +650,14 @@ yornp(const char *prompt, void (*fn)(int, void*), void
 
 void
 minibuffer_read(const char *prompt, void (*fn)(const char *, struct tab *),
-    struct tab *data)
+    struct tab *data, const char *input)
 {
 	struct minibuffer m = {
 		.self_insert = read_self_insert,
 		.done = read_select,
 		.abort = read_abort,
 		.history = read_history,
+		.input = input,
 	};
 
 	if (in_minibuffer)
blob - 04aeaaa88d5ea7084fa21ef8f7debb4a59195fb9
blob + a9d9d26bf8d6df4cc63bfe3beb6a05ac5c4f4927
--- minibuffer.h
+++ minibuffer.h
@@ -111,7 +111,7 @@ void	 yornp(const char *, void (*)(int, void *), void 
  * can't be NULL.
  */
 void	 minibuffer_read(const char *,
-    void (*)(const char *, struct tab *), struct tab *);
+    void (*)(const char *, struct tab *), struct tab *, const char *);
 
 void	 vmessage(const char *, va_list);
 void	 message(const char *, ...) __attribute__((format(printf, 1, 2)));
blob - 5abdb82c949050946f79f355d8ae5cef55993593
blob + e3a15d11da80e60b502dfb0956ba463bd3dc7120
--- ui.c
+++ ui.c
@@ -1372,13 +1372,7 @@ void
 ui_read(const char *prompt, void (*fn)(const char*, struct tab *),
     struct tab *data, const char *input)
 {
-	minibuffer_read(prompt, fn, data);
-
-	if (input != NULL) {
-		strlcpy(ministate.buf, input, sizeof(ministate.buf));
-		cmd_move_end_of_line(&ministate.buffer);
-	}
-
+	minibuffer_read(prompt, fn, data, input);
 	redraw_tab(current_tab);
 }