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
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