9636042858
Initial working version using globbing.
2020-02-22 16:05:05 -08:00
d7e6159eb8
Bugfix for cursor position not being remembered correctly.
2020-02-18 23:20:57 -08:00
f9fc99d28e
Added xwindow title setting, and $HOME -> ~ in the bb path area.
2020-02-17 16:02:53 -08:00
2d9eac4237
Added a scrollbar.
2020-02-07 18:19:27 -08:00
0d5803047b
Fixed memory leak.
2020-01-12 23:19:03 -08:00
8b4c66e144
Updated to respect TMPDIR environment variable.
2020-01-12 23:17:06 -08:00
1d69bb63ce
Fix for mac support.
2019-12-11 22:12:18 -08:00
0e94d55807
Cleanup of how window resize events are handled.
2019-12-07 21:17:06 -08:00
56cb3a2d66
Bunch of minor pedantic cleanups to get rid of warnings and tidy up the
...
code.
2019-11-24 22:11:54 -08:00
18a63e4bc0
More unambiguous and simple command line semantics (bb [options/cmds]
...
[[--] path])
2019-11-11 12:48:48 -08:00
e96004d50e
Fixed bb -- +dirname
not respecting --
properly
2019-11-11 12:34:13 -08:00
b7ad0e93a2
Refactored bb +...
to bbcmd ...
within bb bindings. This makes
...
things a lot less ambiguous. Also removed the default marks created in
bbstartup.sh and ensured that `$XDG_DATA_HOME` and `$XDG_CONFIG_HOME`
always get set as environment variables.
2019-11-11 12:29:40 -08:00
37b94e9ac2
Cleanup/refactor to move keyboard input and scanning the command file
...
into their own functions. This massively simplifies bb_browse().
2019-11-11 11:19:45 -08:00
ff1a1388f1
Rearranged bb_browse() a little to include more of the setup work.
2019-11-11 10:48:12 -08:00
b2f4d84985
Added error checks
2019-11-11 10:29:56 -08:00
000b652ac0
Simplified "+help" binding by using a temp file and run_script()
2019-11-11 10:25:15 -08:00
d4f887d853
Made running_procs static.
2019-11-11 10:09:07 -08:00
1bebad5edf
Removed the "or pause" behavior for failed scripts.
2019-11-09 15:45:07 +01:00
b9e2bc280b
Cleanup of bb->selected (renamed from bb->firstselected) to ensure that
...
$n arguments for scripts are in FIFO order instead of LIFO order (i.e.
$1 is the first selected item). `Ctrl-a` is also now bound to use
`+select` instead of `+select: *` which ensures that the correct sorting
order is preserved.
2019-11-08 15:28:01 +01:00
d577fa5a56
Better error handling/reporting
2019-11-06 17:21:44 +01:00
8027d815af
Fixed issue with deselecting deleted files not working because
...
realpath() depends on the file existing. Also added more detail to error
messages to make tracking down issues easier.
2019-11-04 17:25:25 +01:00
b4c23f2409
Consolidated winwidth/winheight into winsize variable, which makes
...
things a little more straightforward.
2019-11-01 17:19:25 +01:00
3f7730be98
Removed nprocs variable, as it was a potential source of errors if it
...
got out of sync.
2019-11-01 17:15:38 +01:00
7bdced0f1c
Removed bb +execute:
as it was not used.
2019-11-01 17:10:49 +01:00
a97ea1d19b
Fix for improperly initialized variable.
2019-11-01 17:08:56 +01:00
1ae460a02b
Oops, I guess it was needed after all.
2019-11-01 16:54:47 +01:00
a6096af13e
Removed unnnecessary variable
2019-11-01 16:53:03 +01:00
478e6a9023
Cleanup/overhaul of how symlinks are handled and how paths are parsed.
...
Now `bb` will fail on `bb nonexistant/..` and will display
`/foo/baz/atfoo/` as `/foo/` if `atfoo` is a symlink to `/foo`
2019-11-01 16:46:39 +01:00
2086cc6598
Fix for errors that occur before initializing the terminal.
2019-11-01 16:46:12 +01:00
f960755b13
Fixed "bb +." being broken.
2019-11-01 14:53:50 +01:00
3fd5ed860d
Moved dirty
from being a bit on bb
to being a global, which
...
simplifies the code a bit, plus some other minor cleanups.
2019-11-01 14:50:44 +01:00
02beee84fc
Better warning messages.
2019-10-30 13:43:49 +01:00
55d3f0e160
Mostly finalized working version of better signal handling, including
...
allowing for suspended/resuming processes (bb +fg) and cleaner linked
list handling code.
2019-10-27 14:58:23 -07:00
dc6ecc4e7f
Removed (broken) code to escape newlines in output. If you care about
...
files with newlines, just use '-0'. Otherwise, newlines will just be
printed like every other character.
2019-10-13 21:48:43 -07:00
6a22cda2e9
More code cleanup and guards to check tty_in/out exist
2019-10-13 21:48:31 -07:00
ff8c2f9c62
More code cleanup: consolidating cd_to() and populate_files() into just
...
populate_files(), cleaner startup behavior, less duplicative environment
variable setting, misc.
2019-10-13 21:20:00 -07:00
5ad09087c2
Slightly better warning message with +
2019-10-13 19:36:25 -07:00
55daca6a2f
More code cleanup, including tweaking matches_cmd() to figure out if
...
there are required arguments or not, and refactoring run_bbcmd() to no
longer return a value (which was ignored), but instead just spit out error messages to
stderr if necessary.
2019-10-13 19:34:16 -07:00
d77907783f
Code cleanup.
2019-10-13 18:56:09 -07:00
7e373e12b2
Fixed max depth str length to be closer to actual range of lengths.
2019-10-13 18:43:07 -07:00
6ffe39308b
Deprecated support for piping commands in to bb at startup (undocumented). Users should use xargs if they want to do that sort of thing.
2019-10-13 18:41:48 -07:00
e40feed849
Cleaned up the command parsing code a bit to be slightly more correct
...
and more compact. Now uses if-else-if chain instead of nested switch
statements. This may be very slightly less performant, but probably not
noticeable and much cleaner code.
2019-10-13 18:33:46 -07:00
9e4e0ee314
verhaul of terminal keypress handling and labeling to support more
...
functionality for mouse clicking/dragging/left clicking/middle
clicking/double clicking and to have more standardized behavior for key
names and better handling of key modifiers (Ctrl, Alt, Meta, Shift).
Also moved Ctrl-c and Ctrl-z to custom key bindings with (bb +kill and
bb +suspend). Mouse clicking is now also handled in key bindings.
2019-10-12 16:04:19 -07:00
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