aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bb.c71
-rw-r--r--config.h17
2 files changed, 8 insertions, 80 deletions
diff --git a/bb.c b/bb.c
index 9a2dd4c..dcee840 100644
--- a/bb.c
+++ b/bb.c
@@ -348,68 +348,6 @@ static void write_selection(int fd, entry_t *firstselected)
}
}
-static char *input(const char *prompt, const char *starter)
-{
- size_t len = 0, capacity = MAX(100, starter ? strlen(starter)+1 : 0);
- char *reply = calloc(capacity, 1);
- if (!reply) err("allocation failure");
- if (starter)
- len = strcpy(reply, starter) - reply;
-
- // Show cursor:
- writez(termfd, "\e[?25h");
-
- while (1) {
- redraw:
- term_move(0, height-1);
- writez(termfd, "\e[K\e[33m");
- writez(termfd, prompt);
- writez(termfd, "\e[0m");
- write(termfd, reply, len);
-
- skip_redraw:;
- int c = term_getkey(termfd, &mouse_x, &mouse_y);
- switch (c) {
- case KEY_BACKSPACE: case KEY_BACKSPACE2:
- if (len > 0) {
- reply[--len] = '\0';
- goto redraw;
- }
- goto skip_redraw;
- case KEY_CTRL_U:
- if (len > 0) {
- len = 0;
- reply[0] = '\0';
- goto redraw;
- }
- goto skip_redraw;
- case KEY_CTRL_C: case KEY_ESC:
- free(reply);
- reply = NULL;
- goto done;
- case '\r':
- goto done;
- default:
- if (' ' <= c && c <= '~') {
- if (len + 1 >= capacity) {
- capacity += 100;
- reply = realloc(reply, capacity);
- if (!reply)
- err("allocation failure");
- }
- reply[len++] = c;
- reply[len] = '\0';
- goto redraw;
- }
- goto skip_redraw;
- }
- }
- done:
- // Hide cursor:
- writez(termfd, "\e[?25l");
- return reply;
-}
-
static void clear_selection(bb_state_t *state)
{
entry_t **tofree = calloc(state->nselected, sizeof(entry_t*));
@@ -874,14 +812,7 @@ static void explore(char *path, int print_dir, int print_selection)
int fd;
pid_t child;
- if (bindings[i].flags & PROMPT) {
- char *txt = input(bindings[i].prompt, NULL);
- if (!txt) goto redraw;
- child = run_cmd(NULL, &fd, bindings[i].command, txt);
- free(txt);
- } else {
- child = run_cmd(NULL, &fd, bindings[i].command);
- }
+ child = run_cmd(NULL, &fd, bindings[i].command);
if (!(bindings[i].flags & NO_FILES)) {
if (state.nselected > 0) {
diff --git a/config.h b/config.h
index e4cb4eb..c9b3311 100644
--- a/config.h
+++ b/config.h
@@ -6,11 +6,10 @@
#define SCROLLOFF 5
#define NO_FILES (1<<0)
-#define PROMPT (1<<1)
-#define CD_TO_RESULT (1<<2)
-#define REFRESH (1<<3)
-#define CLEAR_SELECTION (1<<4)
-#define SILENT (1<<5)
+#define CD_TO_RESULT (1<<1)
+#define REFRESH (1<<2)
+#define CLEAR_SELECTION (1<<3)
+#define SILENT (1<<4)
#define DEVNULL " >/dev/null"
@@ -26,11 +25,9 @@ struct {
{'+', "xargs -n1 -I @ cp @ @.copy" DEVNULL, REFRESH | SILENT},
{'m', "xargs -I @ mv -i @ . </dev/tty" DEVNULL, CLEAR_SELECTION | REFRESH | SILENT},
{'p', "xargs -I @ cp -i @ . </dev/tty" DEVNULL, CLEAR_SELECTION | REFRESH | SILENT},
- {'n', "touch %s", SILENT | PROMPT | REFRESH | NO_FILES, "New file: "},
- {'|', "sh -c \"`printf '> ' >/dev/tty && head -n1 /dev/tty`\"", REFRESH},//, PROMPT, "> "},
- //{'|', "%s", PROMPT, "> "},
- //{'>', "%s", PROMPT | NO_FILES, "> "},
- {'>', "sh -c \"`printf '> ' >/dev/tty && head -n1 /dev/tty`\"", NO_FILES | REFRESH},//, PROMPT, "> "},
+ {'n', "touch \"`printf '\\033[33;1mNew file:\\033[0m '`\"", SILENT | REFRESH | NO_FILES, "New file: "},
+ {'|', "sh -c \"`printf '> ' >/dev/tty && head -n1 /dev/tty`\"", REFRESH},
+ {'>', "sh -c \"`printf '> ' >/dev/tty && head -n1 /dev/tty`\"", NO_FILES | REFRESH},
{'r', "xargs -I @ -n1 sh -c 'mv \"@\" \"`printf \"\\033[1mRename \\033[0;33m%%s\\033[0m: \" \"@\" >&2 && head -n1 </dev/tty`\"'",
REFRESH | CLEAR_SELECTION},
{0},