diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2019-06-15 14:14:05 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2019-06-15 14:14:05 -0700 |
| commit | b91dbdd3d076752478ca68a2d7b8c36c2a5a3549 (patch) | |
| tree | deb2c478a73933a2e9f14c1d139003379dcf8caf /bb.c | |
| parent | 45a08afbbd4e3bc6b8ab3dfa4735a182f559624f (diff) | |
Added $BBDOTFILES, and updated bindings to use it properly. Removed the
`+select:*` and `+deselect:*` in favor of just using shell commands for
those functions.
Diffstat (limited to 'bb.c')
| -rw-r--r-- | bb.c | 36 |
1 files changed, 12 insertions, 24 deletions
@@ -286,6 +286,7 @@ int run_script(bb_t *bb, const char *cmd) args[i] = NULL; setenv("BBSELECTED", bb->firstselected ? "1" : "", 1); + setenv("BBDOTFILES", bb->show_dotfiles ? "1" : "", 1); setenv("BBCURSOR", bb->nfiles ? bb->files[bb->cursor]->fullname : "", 1); execvp("sh", args); @@ -1025,24 +1026,19 @@ bb_result_t process_cmd(bb_t *bb, const char *cmd) case 'e': { // +deselect: if (!value && !bb->nfiles) return BB_INVALID; if (!value) value = bb->files[bb->cursor]->fullname; - if (strcmp(value, "*") == 0) { - clear_selection(bb); + entry_t *e = load_entry(bb, value); + if (e) { + deselect_entry(bb, e); return BB_OK; - } else { - entry_t *e = load_entry(bb, value); - if (e) { + } + // Filename may no longer exist: + for (e = bb->firstselected; e; e = e->selected.next) { + if (strcmp(e->fullname, value) == 0) { deselect_entry(bb, e); - return BB_OK; + break; } - // Filename may no longer exist: - for (e = bb->firstselected; e; e = e->selected.next) { - if (strcmp(e->fullname, value) == 0) { - deselect_entry(bb, e); - break; - } - } - return BB_OK; } + return BB_OK; } case 'o': { // +dotfiles: set_bool(bb->show_dotfiles); @@ -1153,16 +1149,8 @@ bb_result_t process_cmd(bb_t *bb, const char *cmd) case '\0': case 'e': // +select: if (!value && !bb->nfiles) return BB_INVALID; if (!value) value = bb->files[bb->cursor]->fullname; - if (strcmp(value, "*") == 0) { - for (int i = 0; i < bb->nfiles; i++) { - if (strcmp(bb->files[i]->name, ".") - && strcmp(bb->files[i]->name, "..")) - select_entry(bb, bb->files[i]); - } - } else { - entry_t *e = load_entry(bb, value); - if (e) select_entry(bb, e); - } + entry_t *e = load_entry(bb, value); + if (e) select_entry(bb, e); return BB_OK; case 'o': // +sort: |
