Commit Graph

221 Commits

Author SHA1 Message Date
220d0dc402 Set default columns to what the startup commands were doing by default,
so that's no longer needed in the startup commands.
2019-10-08 19:30:37 -07:00
7f0fcdeea4 Removed some unnecessary +refreshes, no longer enable cursor by default,
but instead have ask() etc. make the cursor visible. Also cleaned up
some of the failure cases for better feedback.
2019-10-03 14:57:34 -07:00
97bae88a1e For +deselect, allow +deselect (no colon) to mean "deselect everything"
to make it a simple command instead of +deselect: "$@"
2019-10-03 14:13:27 -07:00
6b63ea5d40 Added +execute (for, e.g. `bb +e:"bb +goto:$(ls | pick "Go to file:
")"`)
2019-10-03 13:35:53 -07:00
38497d5619 Overhaul/cleanup of command line argument parsing. Now properly handles
startup commands in the order: bbstartup.sh, bb +cmd, echo +cmd | bb
2019-10-03 13:26:31 -07:00
2be2c575b2 Reordering startup commands and cleaning up piped in input. 2019-10-02 13:52:44 -07:00
b9cb1e34c9 Moved some variables out of global scope that weren't needed there. 2019-10-02 13:29:49 -07:00
e25eaf9b92 Default behavior for invalid bb commands is now to print an error
message to stdout on the default console screen and otherwise ignore it
instead of exiting.
2019-10-02 13:14:28 -07:00
f0016a2d10 Removed BB_QUIT 2019-10-02 13:08:07 -07:00
f0e37a95f1 Fixed an issue with /etc/bb instead of /etc/xdg/bb and moved the startup
command into bb.h with the other bb shell script stuff.
2019-09-30 17:22:17 -07:00
10ea5c1eb0 Updated comment. 2019-09-30 17:07:30 -07:00
3daa54df98 Moved config.h -> bb.h and did some cleanup, moving function
declarations and constants out of bb.c and into bb.h. Also
re-alphabetized the functions and updated the docs.
2019-09-30 17:06:27 -07:00
7a666d5195 Overhaul of how binding commands works. It's now all handled through
bbstartup.sh, which loads bindings.bb and parses it to
+bind:<keys>:<script> commands.
2019-09-30 15:46:24 -07:00
6e41b2f2e2 Only toggle sort direction if it was the first sort and it was ~'d. 2019-09-22 19:47:59 -07:00
0f0bacceb4 Now $@ is *always* the selected files, even if there are none. Cleaned
up the default bindings a bit to be more explicit about manipulating the
cursor file vs. manipulated selected files. Added support for `ask -n`
and generally confirming with a single 'y' keystroke instead of 'y<enter>'
Also added a binding for `rename`-command batch renaming.
2019-09-22 17:51:27 -07:00
b9346fb3fe Changed sorting to support '~' meaning toggle current direction. 2019-09-21 21:17:21 -07:00
149056033a Added support for default shell other than sh (e.g. dash, in case sh
links to bash)
2019-09-21 21:14:59 -07:00
f55c6a5c82 Fix for ctrl-z not restoring cursor visibility 2019-09-21 19:00:53 -07:00
eca5a5a8b1 Version bump. 2019-09-21 18:06:21 -07:00
a50e439b42 Some tweaks to how the help menu displays bindings and added BBSHELLFUNC
for allowing the `bb` function to be used in the ':' and '|' bindings
2019-09-21 18:05:13 -07:00
23bed00467 Fix for weird terminal behavior (e.g. not echoing user input for
subprocesses if bb was started with the terminal attributes set with NOECHO) by setting up a "default" termios struct with sane settings instead of relying on bb being launched with sane settings.
2019-09-21 16:38:53 -07:00
ba7b44a3e7 Fix for broken behavior in the help menu (hanging when reaching the end,
due to not close()ing the file descriptor, and exiting on ctrl-c)
2019-09-21 13:40:35 -07:00
651e58c9c9 Removed +bind functionality. 2019-09-12 18:56:27 -07:00
e1e34bc6ed Replaced marks system with something a little more elegant using
symbolic links in ~/.config/bb/marks/. The new version is a little more
flexible (arbitrary mark names), persistent across bb sessions, and uses
a bit less code.
2019-09-12 18:41:15 -07:00
52a2b30692 Fixed mistake in bb function conditional 2019-09-07 21:47:22 -07:00
5927e68bb7 Fix for potential buffer overflow. 2019-07-15 22:21:08 -07:00
47f66e49a7 Added fallback for if binding has no description. 2019-07-12 16:24:27 -07:00
da6bb91763 Overhaul to use a shell function for internal commands instead of bb
itself, which lets bb work when not yet installed.
2019-07-12 16:19:31 -07:00
61cf1bf90c Fixed issue with extra '/' appearing in link paths 2019-06-19 16:45:10 -07:00
6f660ac236 Fix for Esc key causing hang 2019-06-19 00:57:04 -07:00
199cda1222 Removed unused import 2019-06-19 00:52:12 -07:00
00a99738e8 Removed last traces of timeouts in bterm.h 2019-06-18 21:21:27 -07:00
a57b5f44db Removed all the /dev/tty redirection and just dup2()'d it before
exec()ing the user scripts
2019-06-18 21:16:32 -07:00
0b977d2a8f Fixed change that broke bb -d by clearing bb's path prematurely. 2019-06-18 17:08:13 -07:00
634a8517b1 Merge branch 'master' of bitbucket.org:spilt/bb 2019-06-18 17:02:17 -07:00
b86066b46a Merge branch 'master' of bitbucket.org:spilt/bb 2019-06-17 16:50:14 -07:00
c9343baf15 Fixed onscreen off-by-one error 2019-06-17 16:50:03 -07:00
fbfe8689a8 Changing IO code to no longer use poll() in favor of just reading input
and using VMIN and VTIME.
2019-06-17 16:45:24 -07:00
8d5e68d444 Fix for term attrs getting messed up by Fish shell 2019-06-17 14:52:38 -07:00
e09bb2d3ed Added comment 2019-06-15 19:07:00 -07:00
ac29ef42cf Fixed some path normalization errors with ".." and simplified the
populate_files code a bit
2019-06-15 19:05:57 -07:00
f2298a5786 Condensed selection code by converting select_entry()/deselect_entry()
to set_selected() with an argument for whether the file should be
selected.
2019-06-15 18:21:37 -07:00
4c717185de Cleaned up and deduplicated some of the path normalization code. 2019-06-15 18:13:44 -07:00
302ed33d9c Sorted function declarations alphabetically, got rid of clear_selection
(now just inlined), and replaced remove_entry() with try_free_entry() to
eliminate duplicate safety checks.
2019-06-15 18:02:14 -07:00
ff800b2377 Allow piping in commands when launching bb (e.g. `printf '+sel:%s\0' * |
bb`)
2019-06-15 16:21:50 -07:00
f372995750 Fix for normalizing paths better, particularly for places other than
cd_to_path and for non-directory paths (e.g. +sel:../foo.txt)
2019-06-15 16:20:38 -07:00
7a757b7906 Version bump and added +bind doc 2019-06-15 14:15:53 -07:00
b91dbdd3d0 Added $BBDOTFILES, and updated bindings to use it properly. Removed the
`+select:*` and `+deselect:*` in favor of just using shell commands for
those functions.
2019-06-15 14:14:05 -07:00
45a08afbbd Added +bind command to allow for stuff like bb +"b:\r:echo \$BBCURSOR && bb +q" 2019-06-15 14:13:35 -07:00
1239060641 Fix for free-after-use caused by hardlinked files (reverting earlier
change that assumed files with equal inode/idev were the same)
2019-06-15 14:07:46 -07:00
5b1344db44 Fix for ALTSCREEN getting broken by CTRL-Z 2019-06-15 14:02:32 -07:00
8000a4a1bb Renamed command->script in more places to avoid confusion. 2019-06-12 18:55:55 -07:00
bd06e6c99a Improved some names (process command/run script) and changed quit to use
a flag on bb_t instead of a return value.
2019-06-12 18:52:10 -07:00
4bac1a740a Cleaned up commands a bit and changes 'P' from using grep for patterns
to select to 'S' to use shell globbing
2019-06-12 16:57:07 -07:00
69955d3808 Switched some stuff to use $() instead of `` for better composing,
rearranged things a bit to launch bb fewer times for commands.
2019-06-12 15:11:29 -07:00
91a31ee7e6 Show cursor after ctrl-c 2019-06-10 22:57:26 -07:00
e094108f11 Don't show '..' from '/' 2019-06-10 22:55:53 -07:00
15e5de72f7 Version bump 2019-06-10 20:39:00 -07:00
5a5f9afa05 Updated with some cleaner behavior for PICK and added SPIN. Also removed
command line flags in favor of manually using `tput rmcup`. Updated the
documentation.
2019-06-10 20:37:34 -07:00
399b63f57c Fix for being unable to deselect nonexistant files 2019-06-09 15:46:34 -07:00
257f8ee0d0 Fix for top level '/' dir edge cases 2019-06-06 23:28:03 -07:00
9ab3ad0fa0 Bumped version 2019-06-06 18:13:58 -07:00
76f1cd816b Removed some unnecessary +refreshes and just set the dirty bit to 1
whenever an external program runs so the screen redraws without
necessarily refreshing the file listing.
2019-06-06 18:13:13 -07:00
380f2a8ab0 Removed code for move cursor to position (unused) 2019-06-06 18:09:33 -07:00
47019164a5 Fixed some wrap/cursor visibility issues 2019-06-06 15:37:26 -07:00
32b414e555 Removed breadline() and switched to use ask when possible, defaulting
to `read` and `fzy`
2019-06-06 15:33:20 -07:00
921b7ed4f8 Fixed issue with navigating to parent not selecting previous directory. 2019-06-04 21:14:49 -07:00
2db997c9e0 Fixed issue with non-NORMAL_TERM commands that set and reset alt screen,
and fixed issue with "(n) selected" message
2019-06-04 14:05:14 -07:00
824445c2fa Cleaned up scrolling logic 2019-06-04 13:44:43 -07:00
888f859e97 Improved the randomization a bit, so the numbers are evenly distributed
[0,n) instead of [0, RAND_MAX), also cleaned up config file a little
2019-05-31 21:51:08 -07:00
18b98c8543 Made links dim (-> foo) instead of just the arrow 2019-05-31 18:57:32 -07:00
0fa6e3a636 Compacting the code, putting column names with widths 2019-05-31 17:59:58 -07:00
05601c886b Added "<selection>" virtual directory, added '-' mark for "last
non-virtual directory" and 's' for "selection virtual directory",
cleaned up path normalization, added "N selected" visualization.
2019-05-31 17:44:18 -07:00
ca9ff7e941 Moved colwidths to config 2019-05-31 14:56:25 -07:00
06fa2d5b3c Got rid of +align command, and simplified column width logic (no more
auto-sizing, no more alignment, everything just has a static width now)
2019-05-31 14:52:57 -07:00
019ae526da Fixed some redraw dirty flag issues 2019-05-31 14:34:17 -07:00
961ac49f81 Simplifying interleave code and adding doc 2019-05-31 13:26:23 -07:00
17ce3f08df Moving interleave-dirs back from a full column to just a setting 2019-05-31 13:23:01 -07:00
c237e80bae Added a bit of extra spacing around columns 2019-05-31 13:14:29 -07:00
6ffae6ed30 Cleaned up some T_WRAP stuff 2019-05-31 13:11:09 -07:00
182af5c2af Switched to use cfmakeraw() instead of manually setting a bunch of
termios bits.
2019-05-31 13:05:12 -07:00
f019a8b0f5 Fixed some stuff with alt screen and spurious output to stdout 2019-05-31 12:59:36 -07:00
c7ce37ffbf Version bump 2019-05-31 12:48:48 -07:00
f539538582 Cleaned up a lot of the cd logic, making path names better-standardized,
but still keeping symlinks, and ensuring bb->path has a slash at the
end. Also cleaned up some empty directory errors.
2019-05-31 12:47:35 -07:00
e11158a69f Moved populating files before startup commands, so '+mark:0' works
properly
2019-05-31 01:17:23 -07:00
ed5d87f9a2 Fixed some memory errors, including a use-after-free. Simplified the
refcount by just explicitly tracking whether a file is being viewed and
whether it's selected.
2019-05-31 01:09:21 -07:00
f78a4d591d Added permission flags for created bb cmdfile 2019-05-31 00:25:32 -07:00
6db0c1bed4 Fixed one more qsort argument issue 2019-05-31 00:22:37 -07:00
928b712ad7 Fixing some qsort_r arg problems 2019-05-31 00:17:01 -07:00
9faede6193 Updating with more mac compatibility 2019-05-31 00:12:21 -07:00
72ed507499 Got everything working on linux 2019-05-31 00:03:48 -07:00
1627621246 realloc() -> reallocf() to be extra safe 2019-05-30 22:26:00 -07:00
33e4fc2600 Simplifying command control flow 2019-05-30 22:25:22 -07:00
405786b7c9 Cleaned up a bunch of stuff, including finding entries, a sorting bug,
and some command stuff.
2019-05-30 18:44:56 -07:00
e2350214ae Bumped version 2019-05-30 18:08:49 -07:00
48a55d7bca Inlined the options to bb_t, and added a dirty flag instead of the
'lazy' variable
2019-05-30 18:08:19 -07:00
c847980757 Finally got everything working with a refactor to use hash lookups
everywhere
2019-05-30 18:00:00 -07:00
f4d9510cbf Code cleanup 2019-05-30 00:33:51 -07:00
6a5ca2cd0c Updated some doc and removed the "-B" flag for full key binding info 2019-05-30 00:02:25 -07:00
2f34dad8e8 Deleted CTRL_H functionality. 2019-05-29 23:44:22 -07:00