]>
arthur.barton.de Git - bup.git/log
Rob Browning [Sun, 13 Dec 2020 19:25:10 +0000 (13:25 -0600)]
Handle external commands directly rather than via renamed symlinks
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:57:38 +0000 (15:57 -0600)]
fuse: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:57:38 +0000 (15:57 -0600)]
fuse-cmd: copy to bup.cmd.fuse
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:55:46 +0000 (15:55 -0600)]
fsck: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:55:46 +0000 (15:55 -0600)]
fsck-cmd: copy to bup.cmd.fsck
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:48:49 +0000 (15:48 -0600)]
get: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:48:49 +0000 (15:48 -0600)]
get-cmd: copy to bup.cmd.get
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:35:02 +0000 (15:35 -0600)]
restore: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:35:02 +0000 (15:35 -0600)]
restore-cmd: copy to bup.cmd.restore
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:12:40 +0000 (15:12 -0600)]
save: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 21:12:40 +0000 (15:12 -0600)]
save-cmd: copy to bup.cmd.save
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:50:13 +0000 (14:50 -0600)]
on--server: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:50:13 +0000 (14:50 -0600)]
on--server-cmd: copy to bup.cmd.on__server
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:40:46 +0000 (14:40 -0600)]
on: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:40:45 +0000 (14:40 -0600)]
on-cmd: copy to bup.cmd.on
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:34:04 +0000 (14:34 -0600)]
import-duplicity: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:34:04 +0000 (14:34 -0600)]
import-duplicity-cmd: copy to bup.cmd.import_duplicity
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:28:01 +0000 (14:28 -0600)]
server: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:28:01 +0000 (14:28 -0600)]
server-cmd: copy to bup.cmd.server
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:19:20 +0000 (14:19 -0600)]
prune-older: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:19:20 +0000 (14:19 -0600)]
prune-older-cmd: copy to bup.cmd.prune_older
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:15:11 +0000 (14:15 -0600)]
mux: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:15:11 +0000 (14:15 -0600)]
mux-cmd: copy to bup.cmd.mux
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:02:46 +0000 (14:02 -0600)]
list-idx: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 20:02:46 +0000 (14:02 -0600)]
list-idx-cmd: copy to bup.cmd.list_idx
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:55:36 +0000 (13:55 -0600)]
drecurse: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:55:36 +0000 (13:55 -0600)]
drecurse-cmd: copy to bup.cmd.drecurse
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:51:46 +0000 (13:51 -0600)]
damage: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:51:46 +0000 (13:51 -0600)]
damage-cmd: copy to bup.cmd.damage
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:46:29 +0000 (13:46 -0600)]
ftp: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:46:29 +0000 (13:46 -0600)]
ftp-cmd: copy to bup.cmd.ftp
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:44:05 +0000 (13:44 -0600)]
web: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:44:05 +0000 (13:44 -0600)]
web-cmd: copy to bup.cmd.web
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:40:32 +0000 (13:40 -0600)]
daemon: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:40:32 +0000 (13:40 -0600)]
daemon-cmd: copy to bup.cmd.daemon
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:36:04 +0000 (13:36 -0600)]
tick: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:36:04 +0000 (13:36 -0600)]
tick-cmd: copy to bup.cmd.tick
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:30:34 +0000 (13:30 -0600)]
tag: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:30:34 +0000 (13:30 -0600)]
tag-cmd: copy to bup.cmd.tag
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:22:25 +0000 (13:22 -0600)]
midx: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 19:22:25 +0000 (13:22 -0600)]
midx-cmd: copy to bup.cmd.midx
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 08:30:04 +0000 (02:30 -0600)]
random: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 08:30:04 +0000 (02:30 -0600)]
random-cmd: copy to bup.cmd.random
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:28:50 +0000 (01:28 -0600)]
memtest: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:28:50 +0000 (01:28 -0600)]
memtest-cmd: copy to bup.cmd.memtest
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:17:09 +0000 (01:17 -0600)]
margin: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:17:09 +0000 (01:17 -0600)]
margin-cmd: copy to bup.cmd.margin
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:07:15 +0000 (01:07 -0600)]
features: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:07:15 +0000 (01:07 -0600)]
features-cmd: copy to bup.cmd.features
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:00:32 +0000 (01:00 -0600)]
split: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 07:00:32 +0000 (01:00 -0600)]
split-cmd: copy to bup.cmd.split
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 04:09:54 +0000 (22:09 -0600)]
init: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 04:09:54 +0000 (22:09 -0600)]
init-cmd: copy to bup.cmd.init
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 04:02:27 +0000 (22:02 -0600)]
gc: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 04:02:27 +0000 (22:02 -0600)]
gc-cmd: copy to bup.cmd.gc
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 03:50:55 +0000 (21:50 -0600)]
rm: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Mon, 8 Feb 2021 03:50:55 +0000 (21:50 -0600)]
rm-cmd: copy to bup.cmd.rm
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 7 Feb 2021 23:01:20 +0000 (17:01 -0600)]
index: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 7 Feb 2021 23:01:20 +0000 (17:01 -0600)]
index-cmd: copy to bup.cmd.index
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 12 Feb 2021 23:40:20 +0000 (17:40 -0600)]
join: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 7 Feb 2021 22:54:13 +0000 (16:54 -0600)]
join-cmd: copy to bup.cmd.join
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 7 Feb 2021 22:44:44 +0000 (16:44 -0600)]
help: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 7 Feb 2021 22:44:44 +0000 (16:44 -0600)]
help-cmd: copy to bup.cmd.help
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 7 Feb 2021 22:36:53 +0000 (16:36 -0600)]
bloom: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 7 Feb 2021 22:36:53 +0000 (16:36 -0600)]
bloom-cmd: copy to bup.cmd.bloom
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 13 Feb 2021 20:48:37 +0000 (14:48 -0600)]
Makefile: check for bup version failures
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 19:45:44 +0000 (13:45 -0600)]
version: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 19:45:44 +0000 (13:45 -0600)]
version-cmd: copy to bup.cmd.version
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 19:42:39 +0000 (13:42 -0600)]
xstat: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 19:42:39 +0000 (13:42 -0600)]
xstat-cmd: copy to bup.cmd.xstat
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 19:07:28 +0000 (13:07 -0600)]
meta: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 19:07:28 +0000 (13:07 -0600)]
meta-cmd: copy to bup.cmd.meta
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 18:52:35 +0000 (12:52 -0600)]
ls: convert to internal command
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 18:52:35 +0000 (12:52 -0600)]
ls-cmd: copy to bup.cmd.ls
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 13 Dec 2020 02:24:20 +0000 (20:24 -0600)]
cat-file-cmd: migrate to internal bup.cmd.cat_file
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 18:04:24 +0000 (12:04 -0600)]
cat-file-cmd: copy to bup.cmd.cat_file
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Tue, 9 Feb 2021 06:13:04 +0000 (00:13 -0600)]
Remove $(dirname "$0") from sys.path
Python adds $(dirname "$0") to the sys.path, which we definitely don't
want (why would we?), so remove it early in the startup process.
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 13 Dec 2020 17:05:52 +0000 (11:05 -0600)]
bup: include built-in subcommands in help
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 12 Dec 2020 19:14:41 +0000 (13:14 -0600)]
bup: filter stdout/stderr via thread/pipe for internal subcommands
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 11 Dec 2020 01:17:51 +0000 (19:17 -0600)]
filter_output: handle multiple srcs/dests as lists
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 5 Dec 2020 08:02:12 +0000 (02:02 -0600)]
configure-sampledata: cp lib/bup/*.py, not cmd/*.py
So the tests won't depend on the location of the subcommands, in
preparation for their move to lib/bup/cmd.
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Thu, 10 Dec 2020 07:56:00 +0000 (01:56 -0600)]
Make it possible to close all catpipes
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sun, 13 Dec 2020 02:14:56 +0000 (20:14 -0600)]
options: add parse_bytes
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Thu, 10 Dec 2020 01:42:14 +0000 (19:42 -0600)]
git: explicitly request that Popen close_fds
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Fri, 4 Dec 2020 23:55:00 +0000 (17:55 -0600)]
Add --import-py-module
This can be used by tests (and will be used by test-save-errors) to
override functions for error injection, etc.
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Wed, 2 Dec 2020 07:48:42 +0000 (01:48 -0600)]
Add handle_ctrl_c to bup itself
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Wed, 2 Dec 2020 07:12:19 +0000 (01:12 -0600)]
Enable --profile for built-in subcommands
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 6 Feb 2021 06:48:09 +0000 (00:48 -0600)]
bup: don't convert bup_dir to bytes twice
Thanks to Johannes Berg for reporting the issue.
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Wed, 2 Dec 2020 01:43:13 +0000 (19:43 -0600)]
bup: add support for "internal" subcommands
Look for the existing something-cmd.py commands as both
lib/cmd/bup-something and lib/bup/cmd/something.py, and don't load the
latter as a module unless specifically allowed, so that we can create
separate rename commits as we convert each relevant external command
to an internal command. This should make it easier to see what
actually changed in the git history, e.g. with --ignore-space-change.
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 9 Jan 2021 22:11:02 +0000 (16:11 -0600)]
Update base_version for 0.32 release
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Sat, 9 Jan 2021 22:02:38 +0000 (16:02 -0600)]
Update README, HACKING, and release notes for 0.32
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Wed, 6 Jan 2021 01:43:50 +0000 (19:43 -0600)]
prep-for-macos-build: don't run brew update
The update was causing tests to fail, and the previous attempt to
address the issue
e244aa8ec2ea4b754d6242ee81dd0d3c6dace543 didn't.
Thanks to Johannes Berg proposing the fix.
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Wed, 6 Jan 2021 01:18:34 +0000 (19:18 -0600)]
README: add markdown mode indicator
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Johannes Berg [Thu, 31 Dec 2020 22:07:10 +0000 (23:07 +0100)]
index: add newline to 'corrupt index' message
This otherwise prints the traceback afterwards starting
on the same line, which looks odd.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Johannes Berg [Thu, 31 Dec 2020 21:29:38 +0000 (22:29 +0100)]
index: remove pointless git.repo() invocation
Since the only way we can get to clear_index() is with
indexfile having previously been assigned
indexfile = git.repo(b'bupindex')
since opt.clear and opt.indexfile are explicitly mutually
exclusive, there's no point in calling git.repo() again,
it has no effect.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
Johannes Berg [Tue, 29 Dec 2020 22:28:34 +0000 (23:28 +0100)]
get: remove pointless git.repo() call
There's no point in doing "opt.source or git.repo()" since
we just pass the result to LocalRepo(), which already does
exactly the same thing.
Remove the src_dir variable entirely.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Johannes Berg [Wed, 30 Dec 2020 22:41:57 +0000 (23:41 +0100)]
prune-older: fix output with --pretend
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
Christian Brabandt [Tue, 29 Dec 2020 14:19:48 +0000 (15:19 +0100)]
bup-web: handle 4 item getsockname() result for IPv6 sockets
So bup-web will create a new network socket to listen on for HTTP
connections and it may use either IPv4 or IPv6 (or both) addresses,
depending on the configuration of the system. This is done using the
tornado.netutil.bind_sockets().
Currently, bup-web does not restrict the address family to either
AF_INET/AF_INET6 and according to the documentation of
[tornado](https://www.tornadoweb.org/en/stable/netutil.html?highlight=netutil#tornado.netutil.bind_sockets)
it will use both address families and listen for connections on IPv4 and
IPv6 addresses.
> Family may be set to either socket.AF_INET or socket.AF_INET6 to
> restrict to IPv4 or IPv6 addresses, otherwise both will be used if
> available.
However, when your system has only IPv6 enabled, the print() statement
may fail with:
Traceback (most recent call last):
File "/opt/bup/lib/bup/cmd/bup-web", line 310, in <module>
print('Serving HTTP on %s:%d...' % sockets[0].getsockname())
TypeError: not all arguments converted during string formatting
For systems that have IPv4 as well as IPv6 enabled, it may or may not
fail, depending on whether the first returned socket by getsockname() is
for AF_INET6 or AF_INET4
The reason is, getsockname() for a AF_INET6 connections returns a tuple with
4 items: `(host, port, flowinfo, scope_id)`, while for AF_INET4
addresses, it contains only `(host, port)`.
Since we are only interested in the first 2 items, make sure to return
only the first 2 items, which are `host` and `port` for IPv4 (AF_INET)
and IPv6 (AF_INET6).
Signed-off-by: Christian Brabandt <cb@256bit.org>
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
[rlb@defaultvalue.org: adjust commit summary]
Johannes Berg [Tue, 29 Dec 2020 21:26:40 +0000 (22:26 +0100)]
restore: fix error message for inaccessible items
This actually shows up during tests, but it's hidden as it's
an error where we _expect_ bup to fail (and don't check why).
Fix the message in this case.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Rob Browning <rlb@defaultvalue.org>
Rob Browning [Tue, 22 Dec 2020 17:17:45 +0000 (11:17 -0600)]
Replace atoi with explicit checks; rm unused atof
Replace atoi with explicit checks, making the intention a bit clearer
at each call site, and avoiding trouble we've had in the past with the
default to 0 for any unrecognized input.
This does make us stricter about the values (and the environment),
i.e. BUP_TTY_WIDTH=random-noise will now cause a crash.
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>