Remove trailing whitespace. Update copyright to include 2004.
This commit is contained in:
parent
8854004b41
commit
c7bda1ce65
10
AUTHORS
10
AUTHORS
@ -23,7 +23,7 @@ Jeff Angielski <jeff@theptrgroup.com>
|
||||
|
||||
Edward Betts <edward@debian.org>
|
||||
expr, hostid, logname, whoami
|
||||
|
||||
|
||||
John Beppu <beppu@codepoet.org>
|
||||
du, nslookup, sort
|
||||
|
||||
@ -33,8 +33,8 @@ Brian Candler <B.Candler@pobox.com>
|
||||
Randolph Chung <tausq@debian.org>
|
||||
fbset, ping, hostname
|
||||
|
||||
Dave Cinege <dcinege@psychosis.com>
|
||||
more(v2), makedevs, dutmp, modularization, auto links file,
|
||||
Dave Cinege <dcinege@psychosis.com>
|
||||
more(v2), makedevs, dutmp, modularization, auto links file,
|
||||
various fixes, Linux Router Project maintenance
|
||||
|
||||
Jordan Crouse <jordan@cosmicpenguin.net>
|
||||
@ -66,7 +66,7 @@ Matt Kraai <kraai@alumni.cmu.edu>
|
||||
Stephan Linz <linz@li-pro.net>
|
||||
ipcalc, Red Hat equivalence
|
||||
|
||||
John Lombardo <john@deltanet.com>
|
||||
John Lombardo <john@deltanet.com>
|
||||
tr
|
||||
|
||||
Glenn McGrath <bug1@optushome.com.au>
|
||||
@ -89,7 +89,7 @@ Vladimir Oleynik <dzo@simtreas.ru>
|
||||
and irreconcilable critic of everything not perfect.
|
||||
|
||||
Bruce Perens <bruce@pixar.com>
|
||||
Original author of BusyBox in 1995, 1996. Some of his code can
|
||||
Original author of BusyBox in 1995, 1996. Some of his code can
|
||||
still be found hiding here and there...
|
||||
|
||||
Tim Riker <Tim@Rikers.org>
|
||||
|
414
Changelog
414
Changelog
@ -1,171 +1,171 @@
|
||||
---------------------
|
||||
PatchSet 3926
|
||||
PatchSet 3926
|
||||
Date: 2004/02/09 10:01:01
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Buffalo appears to have resolved their GPL problems
|
||||
|
||||
Members:
|
||||
docs/busybox.net/products.html:1.5->1.6
|
||||
docs/busybox.net/shame.html:1.7->1.8
|
||||
Members:
|
||||
docs/busybox.net/products.html:1.5->1.6
|
||||
docs/busybox.net/shame.html:1.7->1.8
|
||||
|
||||
---------------------
|
||||
PatchSet 3927
|
||||
PatchSet 3927
|
||||
Date: 2004/02/09 10:57:04
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Update URL
|
||||
|
||||
Members:
|
||||
docs/busybox.net/products.html:1.6->1.7
|
||||
Members:
|
||||
docs/busybox.net/products.html:1.6->1.7
|
||||
|
||||
---------------------
|
||||
PatchSet 3928
|
||||
PatchSet 3928
|
||||
Date: 2004/02/10 01:07:45
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Support disabling pipe and redirect support
|
||||
|
||||
Members:
|
||||
shell/lash.c:1.151->1.152
|
||||
Members:
|
||||
shell/lash.c:1.151->1.152
|
||||
|
||||
---------------------
|
||||
PatchSet 3929
|
||||
PatchSet 3929
|
||||
Date: 2004/02/10 01:28:36
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Initial effort at disabling job control as well
|
||||
|
||||
Members:
|
||||
shell/lash.c:1.152->1.153
|
||||
Members:
|
||||
shell/lash.c:1.152->1.153
|
||||
|
||||
---------------------
|
||||
PatchSet 3930
|
||||
PatchSet 3930
|
||||
Date: 2004/02/10 01:30:21
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
oops. Leave the default feature set enbled for now...
|
||||
|
||||
Members:
|
||||
shell/lash.c:1.153->1.154
|
||||
Members:
|
||||
shell/lash.c:1.153->1.154
|
||||
|
||||
---------------------
|
||||
PatchSet 3931
|
||||
PatchSet 3931
|
||||
Date: 2004/02/13 08:09:43
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Accomodate the fact that newer libc versions may in fact not
|
||||
contain query_module and friends and more
|
||||
|
||||
Members:
|
||||
libbb/module_syscalls.c:1.13->1.14
|
||||
Members:
|
||||
libbb/module_syscalls.c:1.13->1.14
|
||||
|
||||
---------------------
|
||||
PatchSet 3932
|
||||
PatchSet 3932
|
||||
Date: 2004/02/14 21:33:39
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Avoid naming conflict with symbol in newer glibc headers
|
||||
|
||||
Members:
|
||||
miscutils/hdparm.c:1.9->1.10
|
||||
Members:
|
||||
miscutils/hdparm.c:1.9->1.10
|
||||
|
||||
---------------------
|
||||
PatchSet 3933
|
||||
PatchSet 3933
|
||||
Date: 2004/02/17 07:51:31
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
define option names to be clearer, simplify nested if statements, remove
|
||||
un-needed if statement, minor indenting change
|
||||
|
||||
Members:
|
||||
coreutils/date.c:1.41->1.42
|
||||
Members:
|
||||
coreutils/date.c:1.41->1.42
|
||||
|
||||
---------------------
|
||||
PatchSet 3934
|
||||
PatchSet 3934
|
||||
Date: 2004/02/17 07:58:04
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Woops, im getting ahead of myself, we dont have the -r (refernece)
|
||||
option yet
|
||||
|
||||
Members:
|
||||
coreutils/date.c:1.42->1.43
|
||||
Members:
|
||||
coreutils/date.c:1.42->1.43
|
||||
|
||||
---------------------
|
||||
PatchSet 3935
|
||||
PatchSet 3935
|
||||
Date: 2004/02/17 10:16:21
|
||||
Author: mjn3
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from Florian Schirmer <jolt@tuxbox.org>. When I rewrote the parser,
|
||||
I overlooked the case of someone wanting to use a valid but empty suid
|
||||
config file.
|
||||
|
||||
Members:
|
||||
applets/applets.c:1.21->1.22
|
||||
Members:
|
||||
applets/applets.c:1.21->1.22
|
||||
|
||||
---------------------
|
||||
PatchSet 3936
|
||||
PatchSet 3936
|
||||
Date: 2004/02/17 11:55:06
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Dont strip trailing '/' until _after_ i test to set if its there !
|
||||
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.30->1.31
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.30->1.31
|
||||
|
||||
---------------------
|
||||
PatchSet 3937
|
||||
PatchSet 3937
|
||||
Date: 2004/02/17 12:04:13
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Remove debugging
|
||||
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.31->1.32
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.31->1.32
|
||||
|
||||
---------------------
|
||||
PatchSet 3938
|
||||
PatchSet 3938
|
||||
Date: 2004/02/17 12:22:21
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Add the -r option, patch from Rob with some help from myself.
|
||||
|
||||
Members:
|
||||
coreutils/date.c:1.43->1.44
|
||||
Members:
|
||||
coreutils/date.c:1.43->1.44
|
||||
|
||||
---------------------
|
||||
PatchSet 3939
|
||||
PatchSet 3939
|
||||
Date: 2004/02/17 20:04:34
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Mark Lord writes:
|
||||
|
||||
@ -179,99 +179,99 @@ Cheers
|
||||
Mark Lord
|
||||
Real-Time Remedies Inc.
|
||||
|
||||
Members:
|
||||
networking/inetd.c:1.14->1.15
|
||||
Members:
|
||||
networking/inetd.c:1.14->1.15
|
||||
|
||||
---------------------
|
||||
PatchSet 3940
|
||||
PatchSet 3940
|
||||
Date: 2004/02/17 20:08:11
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Remove the unused CONFIG_FEATURE_HTTPD_SET_CGI_VARS_TO_ENV option.
|
||||
|
||||
Members:
|
||||
networking/Config.in:1.25->1.26
|
||||
Members:
|
||||
networking/Config.in:1.25->1.26
|
||||
|
||||
---------------------
|
||||
PatchSet 3941
|
||||
PatchSet 3941
|
||||
Date: 2004/02/18 09:40:41
|
||||
Author: mjn3
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Fix vstype[] to match VS* defines. Patch from OpenWrt by mbm.
|
||||
|
||||
Members:
|
||||
shell/ash.c:1.89->1.90
|
||||
Members:
|
||||
shell/ash.c:1.89->1.90
|
||||
|
||||
---------------------
|
||||
PatchSet 3942
|
||||
PatchSet 3942
|
||||
Date: 2004/02/18 09:54:15
|
||||
Author: landley
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Add -i option to sed, to edit files in-place.
|
||||
|
||||
Members:
|
||||
editors/sed.c:1.159->1.160
|
||||
Members:
|
||||
editors/sed.c:1.159->1.160
|
||||
|
||||
---------------------
|
||||
PatchSet 3943
|
||||
PatchSet 3943
|
||||
Date: 2004/02/18 10:14:17
|
||||
Author: mjn3
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from OpenWrt.
|
||||
|
||||
Members:
|
||||
modutils/insmod.c:1.111->1.112
|
||||
Members:
|
||||
modutils/insmod.c:1.111->1.112
|
||||
|
||||
---------------------
|
||||
PatchSet 3944
|
||||
PatchSet 3944
|
||||
Date: 2004/02/18 12:58:00
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
remove debugging
|
||||
|
||||
Members:
|
||||
networking/inetd.c:1.15->1.16
|
||||
Members:
|
||||
networking/inetd.c:1.15->1.16
|
||||
|
||||
---------------------
|
||||
PatchSet 3945
|
||||
PatchSet 3945
|
||||
Date: 2004/02/18 13:12:53
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Formatting
|
||||
|
||||
Members:
|
||||
networking/inetd.c:1.16->1.17
|
||||
Members:
|
||||
networking/inetd.c:1.16->1.17
|
||||
|
||||
---------------------
|
||||
PatchSet 3946
|
||||
PatchSet 3946
|
||||
Date: 2004/02/18 13:19:58
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Dont use same variable and struct name
|
||||
|
||||
Members:
|
||||
networking/inetd.c:1.17->1.18
|
||||
Members:
|
||||
networking/inetd.c:1.17->1.18
|
||||
|
||||
---------------------
|
||||
PatchSet 3947
|
||||
PatchSet 3947
|
||||
Date: 2004/02/19 00:44:08
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Chris Larson (kergoth) writes:
|
||||
|
||||
@ -286,15 +286,15 @@ Will never return until we run out of open files or similar.
|
||||
Coreutils cp on the other hand will error with "cannot copy a directory,
|
||||
`out', into itself, `out'". Patch attached.
|
||||
|
||||
Members:
|
||||
libbb/copy_file.c:1.28->1.29
|
||||
Members:
|
||||
libbb/copy_file.c:1.28->1.29
|
||||
|
||||
---------------------
|
||||
PatchSet 3948
|
||||
PatchSet 3948
|
||||
Date: 2004/02/19 01:52:29
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Chris Larson (kergoth) writes:
|
||||
|
||||
@ -307,241 +307,241 @@ cp -a cpa cpa/cpb/cpc
|
||||
Attached what appears to be a more sane fix. Apply on top of previous.
|
||||
Please confirm sanity.
|
||||
|
||||
Members:
|
||||
libbb/copy_file.c:1.29->1.30
|
||||
Members:
|
||||
libbb/copy_file.c:1.29->1.30
|
||||
|
||||
---------------------
|
||||
PatchSet 3949
|
||||
PatchSet 3949
|
||||
Date: 2004/02/19 08:48:30
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Add extra comments, freakout if a pax archive is encoutered.
|
||||
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.32->1.33
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.32->1.33
|
||||
|
||||
---------------------
|
||||
PatchSet 3950
|
||||
PatchSet 3950
|
||||
Date: 2004/02/20 02:25:18
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
A strict interpretation of the ustar format requires the type flag to be
|
||||
interpreted, we cannot depend on the file type being set in the mode
|
||||
field.
|
||||
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.33->1.34
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.33->1.34
|
||||
|
||||
---------------------
|
||||
PatchSet 3951
|
||||
PatchSet 3951
|
||||
Date: 2004/02/20 02:34:42
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Fix up hard links
|
||||
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.34->1.35
|
||||
Members:
|
||||
archival/libunarchive/get_header_tar.c:1.34->1.35
|
||||
|
||||
---------------------
|
||||
PatchSet 3952
|
||||
PatchSet 3952
|
||||
Date: 2004/02/20 09:55:37
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Document missing cp options
|
||||
|
||||
Members:
|
||||
include/usage.h:1.187->1.188
|
||||
Members:
|
||||
include/usage.h:1.187->1.188
|
||||
|
||||
---------------------
|
||||
PatchSet 3953
|
||||
PatchSet 3953
|
||||
Date: 2004/02/21 07:49:54
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Use return instead of exit, use == instead of & ==, left justify labels,
|
||||
adjustment of whitespace.
|
||||
|
||||
Members:
|
||||
coreutils/mv.c:1.19->1.20
|
||||
Members:
|
||||
coreutils/mv.c:1.19->1.20
|
||||
|
||||
---------------------
|
||||
PatchSet 3954
|
||||
PatchSet 3954
|
||||
Date: 2004/02/21 09:20:56
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Sometimes i get carried away with the use of function pointers, im sure
|
||||
it seemed like a good idea at the time.
|
||||
|
||||
Members:
|
||||
archival/libunarchive/seek_by_char.c:1.3->1.4
|
||||
include/libbb.h:1.126->1.127
|
||||
libbb/copyfd.c:1.9->1.10
|
||||
Members:
|
||||
archival/libunarchive/seek_by_char.c:1.3->1.4
|
||||
include/libbb.h:1.126->1.127
|
||||
libbb/copyfd.c:1.9->1.10
|
||||
|
||||
---------------------
|
||||
PatchSet 3955
|
||||
PatchSet 3955
|
||||
Date: 2004/02/22 00:27:34
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
No need to check proxy env variable twice, ignore proxy env variable if
|
||||
its set to 0
|
||||
|
||||
Members:
|
||||
networking/wget.c:1.68->1.69
|
||||
Members:
|
||||
networking/wget.c:1.68->1.69
|
||||
|
||||
---------------------
|
||||
PatchSet 3956
|
||||
PatchSet 3956
|
||||
Date: 2004/02/22 02:58:57
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Return 1 upon failure
|
||||
|
||||
Members:
|
||||
coreutils/md5_sha1_sum.c:1.4->1.5
|
||||
Members:
|
||||
coreutils/md5_sha1_sum.c:1.4->1.5
|
||||
|
||||
---------------------
|
||||
PatchSet 3957
|
||||
PatchSet 3957
|
||||
Date: 2004/02/22 03:33:53
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Ptch by Hideki IWAMOTO, fix a bug preventing tftp from getting or
|
||||
putting more than 0xffff blocks.
|
||||
|
||||
Members:
|
||||
networking/tftp.c:1.21->1.22
|
||||
Members:
|
||||
networking/tftp.c:1.21->1.22
|
||||
|
||||
---------------------
|
||||
PatchSet 3958
|
||||
PatchSet 3958
|
||||
Date: 2004/02/22 04:12:58
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Update usage for ftpget and ftpput
|
||||
|
||||
Members:
|
||||
include/usage.h:1.188->1.189
|
||||
Members:
|
||||
include/usage.h:1.188->1.189
|
||||
|
||||
---------------------
|
||||
PatchSet 3959
|
||||
PatchSet 3959
|
||||
Date: 2004/02/22 04:17:26
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Thomas Geulig, remove duplicate header
|
||||
|
||||
Members:
|
||||
init/init_shared.c:1.3->1.4
|
||||
Members:
|
||||
init/init_shared.c:1.3->1.4
|
||||
|
||||
---------------------
|
||||
PatchSet 3960
|
||||
PatchSet 3960
|
||||
Date: 2004/02/22 04:44:21
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Fixup braces (patch from Thomas Geulig), run through indent and manually
|
||||
adjust.
|
||||
|
||||
Members:
|
||||
miscutils/crond.c:1.12->1.13
|
||||
Members:
|
||||
miscutils/crond.c:1.12->1.13
|
||||
|
||||
---------------------
|
||||
PatchSet 3961
|
||||
PatchSet 3961
|
||||
Date: 2004/02/22 04:58:36
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
remove duplicate header declarations
|
||||
|
||||
Members:
|
||||
networking/inetd.c:1.18->1.19
|
||||
Members:
|
||||
networking/inetd.c:1.18->1.19
|
||||
|
||||
---------------------
|
||||
PatchSet 3962
|
||||
PatchSet 3962
|
||||
Date: 2004/02/22 07:20:25
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from Hideki IWAMOTO, output debugging messages to stderr
|
||||
|
||||
Members:
|
||||
networking/tftp.c:1.22->1.23
|
||||
Members:
|
||||
networking/tftp.c:1.22->1.23
|
||||
|
||||
---------------------
|
||||
PatchSet 3963
|
||||
PatchSet 3963
|
||||
Date: 2004/02/22 07:38:36
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from Florian Schirmer. compile fix for debug builds
|
||||
|
||||
Members:
|
||||
miscutils/devfsd.c:1.7->1.8
|
||||
Members:
|
||||
miscutils/devfsd.c:1.7->1.8
|
||||
|
||||
---------------------
|
||||
PatchSet 3964
|
||||
PatchSet 3964
|
||||
Date: 2004/02/22 08:33:37
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Use /var/lib/hwclock for adjtime, its really a state file rather than a
|
||||
config file, so it should be in /etc, FHS mentions it also.
|
||||
|
||||
Members:
|
||||
util-linux/hwclock.c:1.6->1.7
|
||||
Members:
|
||||
util-linux/hwclock.c:1.6->1.7
|
||||
|
||||
---------------------
|
||||
PatchSet 3965
|
||||
PatchSet 3965
|
||||
Date: 2004/02/22 09:11:33
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Use bb_getopt_ulflags, marginal saving, better argument checking.
|
||||
|
||||
Members:
|
||||
util-linux/hwclock.c:1.7->1.8
|
||||
Members:
|
||||
util-linux/hwclock.c:1.7->1.8
|
||||
|
||||
---------------------
|
||||
PatchSet 3966
|
||||
PatchSet 3966
|
||||
Date: 2004/02/22 09:45:57
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from James Zhu, telnetd window resizing support.
|
||||
|
||||
Members:
|
||||
networking/telnetd.c:1.9->1.10
|
||||
Members:
|
||||
networking/telnetd.c:1.9->1.10
|
||||
|
||||
---------------------
|
||||
PatchSet 3967
|
||||
PatchSet 3967
|
||||
Date: 2004/02/22 11:13:28
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Vodz. last_patch_128
|
||||
- declare applet_using as static from applets.c
|
||||
@ -549,82 +549,82 @@ Vodz. last_patch_128
|
||||
previous version cleared history after Ctrl-C
|
||||
- small spelling correction (by Friedrich Lobenstock)
|
||||
|
||||
Members:
|
||||
applets/applets.c:1.22->1.23
|
||||
shell/cmdedit.c:1.88->1.89
|
||||
Members:
|
||||
applets/applets.c:1.22->1.23
|
||||
shell/cmdedit.c:1.88->1.89
|
||||
|
||||
---------------------
|
||||
PatchSet 3968
|
||||
PatchSet 3968
|
||||
Date: 2004/02/22 11:25:13
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from Vodz, cleanup memory usage, send strdup error messages to
|
||||
syslog.
|
||||
|
||||
Members:
|
||||
networking/inetd.c:1.19->1.20
|
||||
Members:
|
||||
networking/inetd.c:1.19->1.20
|
||||
|
||||
---------------------
|
||||
PatchSet 3969
|
||||
PatchSet 3969
|
||||
Date: 2004/02/22 11:35:13
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from Chris Larson (kergoth), to allow multiple directores to be
|
||||
unmounted at once.
|
||||
|
||||
Members:
|
||||
docs/busybox.sgml:1.52->1.53
|
||||
util-linux/umount.c:1.62->1.63
|
||||
Members:
|
||||
docs/busybox.sgml:1.52->1.53
|
||||
util-linux/umount.c:1.62->1.63
|
||||
|
||||
---------------------
|
||||
PatchSet 3970
|
||||
PatchSet 3970
|
||||
Date: 2004/02/22 11:46:49
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
For the time being, revert the changes for detecting copying
|
||||
a directory into itself. It is harder to do this correctly
|
||||
than it appears. Not trying at all seems a better compromise
|
||||
for the time being, untill we can implement this correctly.
|
||||
|
||||
Members:
|
||||
libbb/copy_file.c:1.30->1.31
|
||||
Members:
|
||||
libbb/copy_file.c:1.30->1.31
|
||||
|
||||
---------------------
|
||||
PatchSet 3971
|
||||
PatchSet 3971
|
||||
Date: 2004/02/22 11:55:09
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Patch from Dmitry Zakharov, this line was missedfrom the last patch
|
||||
|
||||
Members:
|
||||
editors/awk.c:1.5->1.6
|
||||
Members:
|
||||
editors/awk.c:1.5->1.6
|
||||
|
||||
---------------------
|
||||
PatchSet 3972
|
||||
PatchSet 3972
|
||||
Date: 2004/02/22 12:17:33
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Fix from Paul Kortekaas for syslog -C option, size should be in kB.
|
||||
|
||||
Members:
|
||||
sysklogd/syslogd.c:1.106->1.107
|
||||
Members:
|
||||
sysklogd/syslogd.c:1.106->1.107
|
||||
|
||||
---------------------
|
||||
PatchSet 3973
|
||||
PatchSet 3973
|
||||
Date: 2004/02/22 12:25:47
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Fernando Silveira writes:
|
||||
|
||||
@ -639,33 +639,33 @@ Hi,
|
||||
|
||||
Thanks a lot!
|
||||
|
||||
Members:
|
||||
include/usage.h:1.189->1.190
|
||||
networking/Config.in:1.26->1.27
|
||||
networking/telnet.c:1.41->1.42
|
||||
Members:
|
||||
include/usage.h:1.189->1.190
|
||||
networking/Config.in:1.26->1.27
|
||||
networking/telnet.c:1.41->1.42
|
||||
|
||||
---------------------
|
||||
PatchSet 3974
|
||||
PatchSet 3974
|
||||
Date: 2004/02/22 12:27:04
|
||||
Author: andersen
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
Bump up version in preparation for -pre8
|
||||
|
||||
Members:
|
||||
Rules.mak:1.27->1.28
|
||||
Members:
|
||||
Rules.mak:1.27->1.28
|
||||
|
||||
---------------------
|
||||
PatchSet 3975
|
||||
PatchSet 3975
|
||||
Date: 2004/02/23 08:11:07
|
||||
Author: bug1
|
||||
Branch: HEAD
|
||||
Tag: (none)
|
||||
Tag: (none)
|
||||
Log:
|
||||
bb_full_fd_action was incorrectly returning an error message causing
|
||||
major breaking.
|
||||
|
||||
Members:
|
||||
libbb/copyfd.c:1.10->1.11
|
||||
Members:
|
||||
libbb/copyfd.c:1.10->1.11
|
||||
|
||||
|
6
INSTALL
6
INSTALL
@ -1,10 +1,10 @@
|
||||
1) Run 'make config' or 'make menuconfig' and select the
|
||||
1) Run 'make config' or 'make menuconfig' and select the
|
||||
functionality that you wish to enable.
|
||||
|
||||
2) Run 'make dep'
|
||||
|
||||
3) Check the Makefile for any Makefile setting you wish
|
||||
to adjust for your system (things like like setting
|
||||
3) Check the Makefile for any Makefile setting you wish
|
||||
to adjust for your system (things like like setting
|
||||
your cross compiler, adjusting optimizations, etc)
|
||||
|
||||
4) Run 'make'
|
||||
|
4
Makefile
4
Makefile
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -219,7 +219,7 @@ clean:
|
||||
docs/busybox.net/BusyBox.html busybox.links libbb/loop.h \
|
||||
.config.old .hdepend busybox
|
||||
- rm -rf _install
|
||||
- find . -name .\*.flags -exec rm -f {} \;
|
||||
- find . -name .\*.flags -exec rm -f {} \;
|
||||
- find . -name \*.o -exec rm -f {} \;
|
||||
- find . -name \*.a -exec rm -f {} \;
|
||||
|
||||
|
18
README
18
README
@ -1,5 +1,5 @@
|
||||
Please see the LICENSE file for details on copying and usage.
|
||||
|
||||
|
||||
BusyBox combines tiny versions of many common UNIX utilities into a single
|
||||
small executable. It provides minimalist replacements for most of the utilities
|
||||
you usually find in fileutils, shellutils, findutils, textutils, grep, gzip,
|
||||
@ -27,16 +27,16 @@ compiled in functions. By default, 'make install' will place the symlink
|
||||
forest into `pwd`/_install unless you have defined the PREFIX environment
|
||||
variable (i.e., 'make PREFIX=/tmp/foo install')
|
||||
|
||||
If you wish to install hardlinks, rather than symlinks, you can use
|
||||
If you wish to install hardlinks, rather than symlinks, you can use
|
||||
'make install-hardlinks' instead.
|
||||
|
||||
----------------
|
||||
|
||||
|
||||
Supported architectures:
|
||||
|
||||
Busybox in general will build on any architecture supported by gcc. It has
|
||||
a few specialized features added for __sparc__ and __alpha__. insmod
|
||||
functionality is currently limited to x86, ARM, SH3/4, powerpc, m68k,
|
||||
functionality is currently limited to x86, ARM, SH3/4, powerpc, m68k,
|
||||
MIPS, cris, and v850e.
|
||||
|
||||
Supported libcs:
|
||||
@ -69,7 +69,7 @@ Bugs:
|
||||
If you find bugs, please submit a detailed bug report to the busybox mailing
|
||||
list at busybox@mail.busybox.net. A well-written bug report should include a
|
||||
transcript of a shell session that demonstrates the bad behavior and enables
|
||||
anyone else to duplicate the bug on their own machine. The following is such
|
||||
anyone else to duplicate the bug on their own machine. The following is such
|
||||
an example:
|
||||
|
||||
To: busybox@mail.busybox.net
|
||||
@ -90,7 +90,7 @@ an example:
|
||||
$ date
|
||||
llegal instruction
|
||||
|
||||
I am using Debian unstable, kernel version 2.4.19-rmk1 on an Netwinder,
|
||||
I am using Debian unstable, kernel version 2.4.19-rmk1 on an Netwinder,
|
||||
and the latest uClibc from CVS. Thanks for the wonderful program!
|
||||
|
||||
-Diligent
|
||||
@ -103,8 +103,8 @@ reports lacking such detail may never be fixed... Thanks for understanding.
|
||||
|
||||
FTP:
|
||||
|
||||
Source for the latest released version, as well as daily snapshots, can always
|
||||
be downloaded from
|
||||
Source for the latest released version, as well as daily snapshots, can always
|
||||
be downloaded from
|
||||
http://busybox.net/downloads/
|
||||
|
||||
----------------
|
||||
@ -123,7 +123,7 @@ For those that are actively contributing there is even CVS write access:
|
||||
----------------
|
||||
|
||||
Please feed suggestions, bug reports, insults, and bribes back to:
|
||||
Erik Andersen
|
||||
Erik Andersen
|
||||
<andersen@codepoet.org>
|
||||
<andersen@codepoet.org>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Rules.make for busybox
|
||||
#
|
||||
# Copyright (C) 2001-2003 Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -52,14 +52,14 @@ TARGET_OS=linux
|
||||
HOSTCC = gcc
|
||||
HOSTCFLAGS= -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
|
||||
|
||||
# Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
|
||||
# Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
|
||||
LC_ALL:= C
|
||||
|
||||
# If you want to add some simple compiler switches (like -march=i686),
|
||||
# especially from the command line, use this instead of CFLAGS directly.
|
||||
# For optimization overrides, it's better still to set OPTIMIZATION.
|
||||
CFLAGS_EXTRA=$(subst ",, $(strip $(EXTRA_CFLAGS_OPTIONS)))
|
||||
|
||||
|
||||
# If you have a "pristine" source directory, point BB_SRC_DIR to it.
|
||||
# Experimental and incomplete; tell the mailing list
|
||||
# <busybox@busybox.net> if you do or don't like it so far.
|
||||
@ -137,7 +137,7 @@ OPTIMIZATIONS=$(OPTIMIZATION) -fomit-frame-pointer
|
||||
# by itself, instead of following it by the same half-dozen overrides
|
||||
# every time. The stuff below, on the other hand, is probably less
|
||||
# prone to casual user adjustment.
|
||||
#
|
||||
#
|
||||
|
||||
ifeq ($(strip $(CONFIG_LFS)),y)
|
||||
# For large file summit support
|
||||
|
2
TODO
2
TODO
@ -14,7 +14,7 @@ Possible apps to include some time:
|
||||
|
||||
-----------
|
||||
|
||||
With sysvinit, reboot, poweroff and halt all used a named pipe,
|
||||
With sysvinit, reboot, poweroff and halt all used a named pipe,
|
||||
/dev/initctl, to communicate with the init process. Busybox
|
||||
currently uses signals to communicate with init. This makes
|
||||
busybox incompatible with sysvinit. We should probably use
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -423,7 +423,7 @@ static void parse_config_file(void)
|
||||
}
|
||||
|
||||
/* Now get the the user/group info. */
|
||||
|
||||
|
||||
s = (char *) bb_skip_whitespace(e);
|
||||
|
||||
/* Note: We require whitespace between the mode and the
|
||||
|
@ -13,7 +13,7 @@ int been_there_done_that = 0; /* Also used in applets.c */
|
||||
const char *bb_applet_name;
|
||||
|
||||
#ifdef CONFIG_FEATURE_INSTALLER
|
||||
/*
|
||||
/*
|
||||
* directory table
|
||||
* this should be consistent w/ the enum, busybox.h::Location,
|
||||
* or else...
|
||||
@ -32,7 +32,7 @@ static const char* const install_dir[] = {
|
||||
/* abstract link() */
|
||||
typedef int (*__link_f)(const char *, const char *);
|
||||
|
||||
/*
|
||||
/*
|
||||
* Where in the filesystem is this busybox?
|
||||
* [return]
|
||||
* malloc'd string w/ full pathname of busybox's location
|
||||
@ -52,7 +52,7 @@ static void install_links(const char *busybox, int use_symbolic_links)
|
||||
int i;
|
||||
int rc;
|
||||
|
||||
if (use_symbolic_links)
|
||||
if (use_symbolic_links)
|
||||
Link = symlink;
|
||||
|
||||
for (i = 0; applets[i].name != NULL; i++) {
|
||||
@ -82,7 +82,7 @@ int main(int argc, char **argv)
|
||||
bb_applet_name = s;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_LOCALE_SUPPORT
|
||||
#ifdef CONFIG_LOCALE_SUPPORT
|
||||
#ifdef CONFIG_INIT
|
||||
if(getpid()!=1) /* Do not set locale for `init' */
|
||||
#endif
|
||||
@ -100,9 +100,9 @@ int busybox_main(int argc, char **argv)
|
||||
{
|
||||
int col = 0, len, i;
|
||||
|
||||
#ifdef CONFIG_FEATURE_INSTALLER
|
||||
/*
|
||||
* This style of argument parsing doesn't scale well
|
||||
#ifdef CONFIG_FEATURE_INSTALLER
|
||||
/*
|
||||
* This style of argument parsing doesn't scale well
|
||||
* in the event that busybox starts wanting more --options.
|
||||
* If someone has a cleaner approach, by all means implement it.
|
||||
*/
|
||||
@ -113,8 +113,8 @@ int busybox_main(int argc, char **argv)
|
||||
|
||||
/* to use symlinks, or not to use symlinks... */
|
||||
if (argc > 2) {
|
||||
if ((strcmp(argv[2], "-s") == 0)) {
|
||||
use_symbolic_links = 1;
|
||||
if ((strcmp(argv[2], "-s") == 0)) {
|
||||
use_symbolic_links = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ int busybox_main(int argc, char **argv)
|
||||
"\tBusyBox is a multi-call binary that combines many common Unix\n"
|
||||
"\tutilities into a single executable. Most people will create a\n"
|
||||
"\tlink to busybox for each function they wish to use, and BusyBox\n"
|
||||
"\twill act like whatever it was invoked as.\n"
|
||||
"\twill act like whatever it was invoked as.\n"
|
||||
"\nCurrently defined functions:\n", bb_msg_full_version);
|
||||
|
||||
while (a->name != 0) {
|
||||
|
@ -46,11 +46,11 @@ config CONFIG_BUNZIP2
|
||||
sorting text compression algorithm, and Huffman coding. Compression
|
||||
is generally considerably better than that achieved by more
|
||||
conventional LZ77/LZ78-based compressors, and approaches the
|
||||
performance of the PPM family of statistical compressors.
|
||||
|
||||
performance of the PPM family of statistical compressors.
|
||||
|
||||
The BusyBox bunzip2 applet is limited to de-compression only.
|
||||
On an x86 system, this applet adds about 11K.
|
||||
|
||||
|
||||
Unless you have a specific application which requires bunzip2, you
|
||||
should probably say N here.
|
||||
|
||||
@ -63,7 +63,7 @@ config CONFIG_CPIO
|
||||
cpio has 110 bytes of overheads for every stored file.
|
||||
|
||||
This implementation of cpio can extract cpio archives created in the
|
||||
"newc" or "crc" format, it cannot create or modify them.
|
||||
"newc" or "crc" format, it cannot create or modify them.
|
||||
|
||||
Unless you have a specific application which requires cpio, you should
|
||||
probably say N here.
|
||||
@ -73,7 +73,7 @@ config CONFIG_DPKG
|
||||
default n
|
||||
help
|
||||
dpkg is a medium-level tool to install, build, remove and manage Debian packages.
|
||||
|
||||
|
||||
This implementation of dpkg has a number of limitations, you should use the
|
||||
official dpkg if possible.
|
||||
|
||||
@ -82,9 +82,9 @@ config CONFIG_DPKG_DEB
|
||||
default n
|
||||
help
|
||||
dpkg-deb packs, unpacks and provides information about Debian archives.
|
||||
|
||||
|
||||
This implementation of dpkg-deb cannot pack archives.
|
||||
|
||||
|
||||
Unless you have a specific application which requires dpkg-deb, you should
|
||||
probably say N here.
|
||||
|
||||
@ -94,7 +94,7 @@ config CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY
|
||||
depends on CONFIG_DPKG_DEB
|
||||
help
|
||||
This reduces dpkg-deb to the equivalent of "ar -p <deb> data.tar.gz | tar -zx".
|
||||
However it saves space as none of the extra dpkg-deb, ar or tar options are
|
||||
However it saves space as none of the extra dpkg-deb, ar or tar options are
|
||||
needed, they are linked to internally.
|
||||
|
||||
config CONFIG_GUNZIP
|
||||
@ -195,7 +195,7 @@ config CONFIG_FEATURE_TAR_GNU_EXTENSIONS
|
||||
default y
|
||||
depends on CONFIG_TAR
|
||||
help
|
||||
With this option busybox supports GNU long filenames and
|
||||
With this option busybox supports GNU long filenames and
|
||||
linknames.
|
||||
|
||||
config CONFIG_FEATURE_TAR_LONG_OPTIONS
|
||||
@ -241,7 +241,7 @@ config CONFIG_FEATURE_DEB_TAR_GZ
|
||||
depends on CONFIG_DPKG || CONFIG_DPKG_DEB
|
||||
help
|
||||
This is the default compression method inside the debian ar file.
|
||||
|
||||
|
||||
If you want compatibility with standard .deb's you should say yes here.
|
||||
|
||||
config CONFIG_FEATURE_DEB_TAR_BZ2
|
||||
@ -251,7 +251,7 @@ config CONFIG_FEATURE_DEB_TAR_BZ2
|
||||
help
|
||||
This allows dpkg and dpkg-deb to extract deb's that are compressed internally
|
||||
with bzip2 instead of gzip.
|
||||
|
||||
|
||||
You only want this if you are creating your own custom debian packages that
|
||||
use an internal control.tar.bz2 or data.tar.bz2.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,10 +1,10 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* Mini ar implementation for busybox
|
||||
* Mini ar implementation for busybox
|
||||
*
|
||||
* Copyright (C) 2000 by Glenn McGrath
|
||||
* Written by Glenn McGrath <bug1@optushome.com.au> 1 June 2000
|
||||
*
|
||||
*
|
||||
* Based in part on BusyBox tar, Debian dpkg-deb and GNU ar.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini cpio implementation for busybox
|
||||
*
|
||||
* Copyright (C) 2001 by Glenn McGrath
|
||||
* Copyright (C) 2001 by Glenn McGrath
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -62,7 +62,7 @@ extern int cpio_main(int argc, char **argv)
|
||||
/* if both extract and test option are given, ignore extract option */
|
||||
if (opt & CPIO_OPT_EXTRACT) {
|
||||
opt &= ~CPIO_OPT_EXTRACT;
|
||||
}
|
||||
}
|
||||
archive_handle->action_header = header_list;
|
||||
}
|
||||
if (opt & CPIO_OPT_EXTRACT) {
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Written By Glenn McGrath with the help of others
|
||||
* Copyright (C) 2001 by Glenn McGrath
|
||||
*
|
||||
*
|
||||
* Started life as a busybox implementation of udpkg
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -54,7 +54,7 @@
|
||||
* int's and chaos is assured, 16381 is the max prime for 14 bit field
|
||||
*/
|
||||
|
||||
/* NAME_HASH_PRIME, Stores package names and versions,
|
||||
/* NAME_HASH_PRIME, Stores package names and versions,
|
||||
* I estimate it should be at least 50% bigger than PACKAGE_HASH_PRIME,
|
||||
* as there a lot of duplicate version numbers */
|
||||
#define NAME_HASH_PRIME 16381
|
||||
@ -150,7 +150,7 @@ void make_hash(const char *key, unsigned int *start, unsigned int *decrement, co
|
||||
* shift amount is mod 24 because long int is 32 bit and data
|
||||
* to be shifted is 8, dont want to shift data to where it has
|
||||
* no effect*/
|
||||
hash_num += ((key[i] + key[i-1]) << ((key[i] * i) % 24));
|
||||
hash_num += ((key[i] + key[i-1]) << ((key[i] * i) % 24));
|
||||
}
|
||||
*start = (unsigned int) hash_num % hash_prime;
|
||||
*decrement = (unsigned int) 1 + (hash_num % (hash_prime - 1));
|
||||
@ -464,11 +464,11 @@ void add_split_dependencies(common_node_t *parent_node, const char *whole_line,
|
||||
} else {
|
||||
or_edge = NULL;
|
||||
}
|
||||
|
||||
|
||||
if ( or_edge ) {
|
||||
or_edge->name = search_name_hashtable(field);
|
||||
or_edge->version = 0; // tracks the number of altenatives
|
||||
|
||||
|
||||
add_edge_to_node(parent_node, or_edge);
|
||||
}
|
||||
|
||||
@ -572,7 +572,7 @@ unsigned int fill_package_struct(char *control_buffer)
|
||||
goto fill_package_struct_cleanup; /* Oh no, the dreaded goto statement ! */
|
||||
}
|
||||
|
||||
field_num = compare_string_array(field_names, field_name);
|
||||
field_num = compare_string_array(field_names, field_name);
|
||||
switch(field_num) {
|
||||
case 0: /* Package */
|
||||
new_node->name = search_name_hashtable(field_value);
|
||||
@ -697,7 +697,7 @@ const char *describe_status(int status_num) {
|
||||
return "is marked to be removed";
|
||||
if ( status_want == search_name_hashtable("purge") )
|
||||
return "is marked to be purged";
|
||||
}
|
||||
}
|
||||
if ( status_want == search_name_hashtable("unknown") )
|
||||
return "is in an indeterminate state";
|
||||
if ( status_want == search_name_hashtable("install") )
|
||||
@ -957,11 +957,11 @@ void write_status_file(deb_file_t **deb_file)
|
||||
|
||||
/* Create a seperate backfile to dpkg */
|
||||
if (rename("/var/lib/dpkg/status", "/var/lib/dpkg/status.udeb.bak") == -1) {
|
||||
struct stat stat_buf;
|
||||
struct stat stat_buf;
|
||||
if (stat("/var/lib/dpkg/status", &stat_buf) == 0) {
|
||||
bb_error_msg_and_die("Couldnt create backup status file");
|
||||
}
|
||||
/* Its ok if renaming the status file fails becasue status
|
||||
/* Its ok if renaming the status file fails becasue status
|
||||
* file doesnt exist, maybe we are starting from scratch */
|
||||
bb_error_msg("No status file found, creating new one");
|
||||
}
|
||||
@ -1056,10 +1056,10 @@ int check_deps(deb_file_t **deb_file, int deb_start, int dep_max_count)
|
||||
const edge_t *package_edge = package_node->edge[j];
|
||||
|
||||
if (package_edge->type == EDGE_CONFLICTS) {
|
||||
const unsigned int package_num =
|
||||
const unsigned int package_num =
|
||||
search_package_hashtable(package_edge->name,
|
||||
package_edge->version,
|
||||
package_edge->operator);
|
||||
package_edge->version,
|
||||
package_edge->operator);
|
||||
int result = 0;
|
||||
if (package_hashtable[package_num] != NULL) {
|
||||
status_num = search_status_hashtable(name_hashtable[package_hashtable[package_num]->name]);
|
||||
@ -1078,7 +1078,7 @@ int check_deps(deb_file_t **deb_file, int deb_start, int dep_max_count)
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Check dependendcies */
|
||||
@ -1098,7 +1098,7 @@ int check_deps(deb_file_t **deb_file, int deb_start, int dep_max_count)
|
||||
|
||||
/* If there is no status then this package is a
|
||||
* virtual one provided by something else. In which
|
||||
* case there are no dependencies to check.
|
||||
* case there are no dependencies to check.
|
||||
*/
|
||||
if ( status_hashtable[status_num] == NULL ) continue;
|
||||
|
||||
@ -1125,7 +1125,7 @@ int check_deps(deb_file_t **deb_file, int deb_start, int dep_max_count)
|
||||
for (j = 0; j < package_node->num_of_edges; j++) {
|
||||
const edge_t *package_edge = package_node->edge[j];
|
||||
unsigned int package_num;
|
||||
|
||||
|
||||
if ( package_edge->type == EDGE_OR_PRE_DEPENDS ||
|
||||
package_edge->type == EDGE_OR_DEPENDS ) { /* start an EDGE_OR_ list */
|
||||
number_of_alternatives = package_edge->version;
|
||||
@ -1147,26 +1147,26 @@ int check_deps(deb_file_t **deb_file, int deb_start, int dep_max_count)
|
||||
* this edge is the right type.
|
||||
*
|
||||
* EDGE_DEPENDS == OR_DEPENDS -1
|
||||
* EDGE_PRE_DEPENDS == OR_PRE_DEPENDS -1
|
||||
* EDGE_PRE_DEPENDS == OR_PRE_DEPENDS -1
|
||||
*/
|
||||
if ( root_of_alternatives && package_edge->type != root_of_alternatives->type - 1)
|
||||
bb_error_msg_and_die("Fatal error. Package dependencies corrupt: %d != %d - 1 \n",
|
||||
package_edge->type, root_of_alternatives->type);
|
||||
|
||||
|
||||
if (package_hashtable[package_num] != NULL)
|
||||
result = !package_satisfies_dependency(package_num, package_edge->type);
|
||||
|
||||
if (result) { /* check for other package which provide what we are looking for */
|
||||
int provider = -1;
|
||||
|
||||
|
||||
while ( (provider = search_for_provides(package_edge->name, provider) ) > -1 ) {
|
||||
if ( package_hashtable[provider] == NULL ) {
|
||||
printf("Have a provider but no package information for it\n");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
result = !package_satisfies_dependency(provider, package_edge->type);
|
||||
|
||||
if ( result == 0 )
|
||||
|
||||
if ( result == 0 )
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1176,14 +1176,14 @@ int check_deps(deb_file_t **deb_file, int deb_start, int dep_max_count)
|
||||
if (result && number_of_alternatives == 0) {
|
||||
if ( root_of_alternatives )
|
||||
bb_error_msg_and_die(
|
||||
"Package %s %sdepends on %s, "
|
||||
"Package %s %sdepends on %s, "
|
||||
"which cannot be satisfied",
|
||||
name_hashtable[package_node->name],
|
||||
package_edge->type == EDGE_PRE_DEPENDS ? "pre-" : "",
|
||||
name_hashtable[root_of_alternatives->name]);
|
||||
else
|
||||
else
|
||||
bb_error_msg_and_die(
|
||||
"Package %s %sdepends on %s, which %s\n",
|
||||
"Package %s %sdepends on %s, which %s\n",
|
||||
name_hashtable[package_node->name],
|
||||
package_edge->type == EDGE_PRE_DEPENDS ? "pre-" : "",
|
||||
name_hashtable[package_edge->name],
|
||||
@ -1192,7 +1192,7 @@ int check_deps(deb_file_t **deb_file, int deb_start, int dep_max_count)
|
||||
/* we've found a package which
|
||||
* satisfies the dependency,
|
||||
* so skip over the rest of
|
||||
* the alternatives.
|
||||
* the alternatives.
|
||||
*/
|
||||
j += number_of_alternatives;
|
||||
number_of_alternatives = 0;
|
||||
@ -1312,7 +1312,7 @@ char **all_control_list(const char *package_name)
|
||||
|
||||
void free_array(char **array)
|
||||
{
|
||||
|
||||
|
||||
if (array) {
|
||||
unsigned short i = 0;
|
||||
while (array[i]) {
|
||||
@ -1325,7 +1325,7 @@ void free_array(char **array)
|
||||
|
||||
/* This function lists information on the installed packages. It loops through
|
||||
* the status_hashtable to retrieve the info. This results in smaller code than
|
||||
* scanning the status file. The resulting list, however, is unsorted.
|
||||
* scanning the status file. The resulting list, however, is unsorted.
|
||||
*/
|
||||
void list_packages(void)
|
||||
{
|
||||
@ -1333,7 +1333,7 @@ void list_packages(void)
|
||||
|
||||
printf(" Name Version\n");
|
||||
printf("+++-==============-==============\n");
|
||||
|
||||
|
||||
/* go through status hash, dereference package hash and finally strings */
|
||||
for (i=0; i<STATUS_HASH_PRIME+1; i++) {
|
||||
|
||||
@ -1342,22 +1342,22 @@ void list_packages(void)
|
||||
const char *name_str; /* package name */
|
||||
const char *vers_str; /* version */
|
||||
char s1, s2; /* status abbreviations */
|
||||
int spccnt; /* space count */
|
||||
int spccnt; /* space count */
|
||||
int j;
|
||||
|
||||
|
||||
stat_str = name_hashtable[status_hashtable[i]->status];
|
||||
name_str = name_hashtable[package_hashtable[status_hashtable[i]->package]->name];
|
||||
vers_str = name_hashtable[package_hashtable[status_hashtable[i]->package]->version];
|
||||
|
||||
|
||||
/* get abbreviation for status field 1 */
|
||||
s1 = stat_str[0] == 'i' ? 'i' : 'r';
|
||||
|
||||
|
||||
/* get abbreviation for status field 2 */
|
||||
for (j=0, spccnt=0; stat_str[j] && spccnt<2; j++) {
|
||||
if (stat_str[j] == ' ') spccnt++;
|
||||
}
|
||||
s2 = stat_str[j];
|
||||
|
||||
|
||||
/* print out the line formatted like Debian dpkg */
|
||||
printf("%c%c %-14s %s\n", s1, s2, name_str, vers_str);
|
||||
}
|
||||
@ -1376,7 +1376,7 @@ void remove_package(const unsigned int package_num, int noisy)
|
||||
char conffile_name[package_name_length + 30];
|
||||
int return_value;
|
||||
|
||||
if ( noisy )
|
||||
if ( noisy )
|
||||
printf("Removing %s (%s) ...\n", package_name, package_version);
|
||||
|
||||
/* run prerm script */
|
||||
@ -1464,12 +1464,12 @@ static archive_handle_t *init_archive_deb_ar(const char *filename)
|
||||
{
|
||||
archive_handle_t *ar_handle;
|
||||
|
||||
/* Setup an ar archive handle that refers to the gzip sub archive */
|
||||
/* Setup an ar archive handle that refers to the gzip sub archive */
|
||||
ar_handle = init_handle();
|
||||
ar_handle->filter = filter_accept_list_reassign;
|
||||
ar_handle->src_fd = bb_xopen(filename, O_RDONLY);
|
||||
|
||||
return(ar_handle);
|
||||
return(ar_handle);
|
||||
}
|
||||
|
||||
static void init_archive_deb_control(archive_handle_t *ar_handle)
|
||||
@ -1491,7 +1491,7 @@ static void init_archive_deb_control(archive_handle_t *ar_handle)
|
||||
/* Assign the tar handle as a subarchive of the ar handle */
|
||||
ar_handle->sub_archive = tar_handle;
|
||||
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
static void init_archive_deb_data(archive_handle_t *ar_handle)
|
||||
@ -1513,7 +1513,7 @@ static void init_archive_deb_data(archive_handle_t *ar_handle)
|
||||
/* Assign the tar handle as a subarchive of the ar handle */
|
||||
ar_handle->sub_archive = tar_handle;
|
||||
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
static char *deb_extract_control_file_to_buffer(archive_handle_t *ar_handle, llist_t *myaccept)
|
||||
@ -1586,7 +1586,7 @@ static void unpack_package(deb_file_t *deb_file)
|
||||
if (run_package_script(package_name, "preinst") != 0) {
|
||||
/* when preinst returns exit code != 0 then quit installation process */
|
||||
bb_error_msg_and_die("subprocess pre-installation script returned error.");
|
||||
}
|
||||
}
|
||||
|
||||
/* Extract data.tar.gz to the root directory */
|
||||
archive_handle = init_archive_deb_ar(deb_file->filename);
|
||||
@ -1598,7 +1598,7 @@ static void unpack_package(deb_file_t *deb_file)
|
||||
|
||||
/* Create the list file */
|
||||
strcat(info_prefix, "list");
|
||||
out_stream = bb_xfopen(info_prefix, "w");
|
||||
out_stream = bb_xfopen(info_prefix, "w");
|
||||
while (archive_handle->sub_archive->passed) {
|
||||
/* the leading . has been stripped by data_extract_all_prefix already */
|
||||
fputs(archive_handle->sub_archive->passed->data, out_stream);
|
||||
@ -1653,7 +1653,7 @@ int dpkg_main(int argc, char **argv)
|
||||
case 'F': // equivalent to --force in official dpkg
|
||||
if (strcmp(optarg, "depends") == 0) {
|
||||
dpkg_opt |= dpkg_opt_force_ignore_depends;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'i':
|
||||
dpkg_opt |= dpkg_opt_install;
|
||||
@ -1691,7 +1691,7 @@ int dpkg_main(int argc, char **argv)
|
||||
list_packages();
|
||||
return(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
/* Read arguments and store relevant info in structs */
|
||||
while (optind < argc) {
|
||||
/* deb_count = nb_elem - 1 and we need nb_elem + 1 to allocate terminal node [NULL pointer] */
|
||||
|
@ -41,7 +41,7 @@ extern int dpkg_deb_main(int argc, char **argv)
|
||||
/* Setup the tar archive handle */
|
||||
tar_archive = init_handle();
|
||||
|
||||
/* Setup an ar archive handle that refers to the gzip sub archive */
|
||||
/* Setup an ar archive handle that refers to the gzip sub archive */
|
||||
ar_archive = init_handle();
|
||||
ar_archive->sub_archive = tar_archive;
|
||||
ar_archive->filter = filter_accept_list_reassign;
|
||||
@ -73,7 +73,7 @@ extern int dpkg_deb_main(int argc, char **argv)
|
||||
}
|
||||
if (opt & DPKG_DEB_OPT_FIELD) {
|
||||
/* Print the entire control file
|
||||
* it should accept a second argument which specifies a
|
||||
* it should accept a second argument which specifies a
|
||||
* specific field to print */
|
||||
ar_archive->accept = control_tar_llist;
|
||||
tar_archive->accept = llist_add_to(NULL, "./control");;
|
||||
|
@ -13,7 +13,7 @@
|
||||
*
|
||||
* General cleanup to better adhere to the style guide and make use of standard
|
||||
* busybox functions by Glenn McGrath <bug1@optushome.com.au>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
@ -153,12 +153,12 @@ extern int gunzip_main(int argc, char **argv)
|
||||
/* do the decompression, and cleanup */
|
||||
if (bb_xread_char(src_fd) == 0x1f) {
|
||||
unsigned char magic2;
|
||||
|
||||
|
||||
magic2 = bb_xread_char(src_fd);
|
||||
#ifdef CONFIG_FEATURE_GUNZIP_UNCOMPRESS
|
||||
if (magic2 == 0x9d) {
|
||||
status = uncompress(src_fd, dst_fd);
|
||||
} else
|
||||
} else
|
||||
#endif
|
||||
if (magic2 == 0x8b) {
|
||||
check_header_gzip(src_fd);
|
||||
|
@ -9,8 +9,8 @@
|
||||
* only standard in to standard out with -9 compression. It also requires
|
||||
* the zcat module for some important functions."
|
||||
*
|
||||
* Adjusted further by Erik Andersen <andersen@codepoet.org> to support
|
||||
* files as well as stdin/stdout, and to generally behave itself wrt
|
||||
* Adjusted further by Erik Andersen <andersen@codepoet.org> to support
|
||||
* files as well as stdin/stdout, and to generally behave itself wrt
|
||||
* command line handling.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -30,7 +30,7 @@
|
||||
*/
|
||||
|
||||
/* These defines are very important for BusyBox. Without these,
|
||||
* huge chunks of ram are pre-allocated making the BusyBox bss
|
||||
* huge chunks of ram are pre-allocated making the BusyBox bss
|
||||
* size Freaking Huge(tm), which is a bad thing.*/
|
||||
#define SMALL_MEM
|
||||
#define DYN_ALLOC
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -55,7 +55,7 @@ DPKG_FILES:= \
|
||||
get_header_tar.o \
|
||||
filter_accept_list_reassign.o
|
||||
|
||||
LIBUNARCHIVE-$(CONFIG_AR) += get_header_ar.o unpack_ar_archive.o
|
||||
LIBUNARCHIVE-$(CONFIG_AR) += get_header_ar.o unpack_ar_archive.o
|
||||
LIBUNARCHIVE-$(CONFIG_BUNZIP2) += decompress_bunzip2.o
|
||||
LIBUNARCHIVE-$(CONFIG_CPIO) += get_header_cpio.o
|
||||
LIBUNARCHIVE-$(CONFIG_DPKG) += $(DPKG_FILES)
|
||||
@ -64,7 +64,7 @@ LIBUNARCHIVE-$(CONFIG_FEATURE_DEB_TAR_GZ) += $(GUNZIP_FILES) get_header_tar_gz.o
|
||||
LIBUNARCHIVE-$(CONFIG_FEATURE_DEB_TAR_BZ2) += decompress_bunzip2.o get_header_tar_bz2.o
|
||||
LIBUNARCHIVE-$(CONFIG_GUNZIP) += $(GUNZIP_FILES)
|
||||
LIBUNARCHIVE-$(CONFIG_FEATURE_GUNZIP_UNCOMPRESS) += uncompress.o
|
||||
LIBUNARCHIVE-$(CONFIG_RPM2CPIO) += $(GUNZIP_FILES) get_header_cpio.o
|
||||
LIBUNARCHIVE-$(CONFIG_RPM2CPIO) += $(GUNZIP_FILES) get_header_cpio.o
|
||||
LIBUNARCHIVE-$(CONFIG_RPM) += $(GUNZIP_FILES) get_header_cpio.o
|
||||
LIBUNARCHIVE-$(CONFIG_TAR) += get_header_tar.o
|
||||
LIBUNARCHIVE-$(CONFIG_FEATURE_TAR_BZIP2) += decompress_bunzip2.o get_header_tar_bz2.o
|
||||
|
@ -37,7 +37,7 @@ extern void data_extract_all(archive_handle_t *archive_handle)
|
||||
char *name = bb_xstrdup(file_header->name);
|
||||
bb_make_directory (dirname(name), 0777, FILEUTILS_RECUR);
|
||||
free(name);
|
||||
}
|
||||
}
|
||||
|
||||
/* Check if the file already exists */
|
||||
if (archive_handle->flags & ARCHIVE_EXTRACT_UNCONDITIONAL) {
|
||||
@ -66,7 +66,7 @@ extern void data_extract_all(archive_handle_t *archive_handle)
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle hard links seperately
|
||||
/* Handle hard links seperately
|
||||
* We identified hard links as regular files of size 0 with a symlink */
|
||||
if (S_ISREG(file_header->mode) && (file_header->link_name) && (file_header->size == 0)) {
|
||||
/* hard link */
|
||||
|
@ -248,7 +248,7 @@ static int get_next_block(bunzip_data *bd)
|
||||
pp=0;
|
||||
for(i=minLen;i<=maxLen;i++) {
|
||||
temp[i]=limit[i]=0;
|
||||
for(t=0;t<symCount;t++)
|
||||
for(t=0;t<symCount;t++)
|
||||
if(length[t]==i) hufGroup->permute[pp++] = t;
|
||||
}
|
||||
/* Count symbols coded for at each bit length */
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
/* uncompress for busybox -- (c) 2002 Robert Griebl
|
||||
*
|
||||
* based on the original compress42.c source
|
||||
* based on the original compress42.c source
|
||||
* (see disclaimer below)
|
||||
*/
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
*
|
||||
* General cleanup to better adhere to the style guide and make use of standard
|
||||
* busybox functions by Glenn McGrath <bug1@optushome.com.au>
|
||||
*
|
||||
*
|
||||
* read_gz interface + associated hacking by Laurence Anderson
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -148,7 +148,7 @@ static unsigned int fill_bitbuffer(unsigned int bitbuffer, unsigned int *current
|
||||
{
|
||||
while (*current < required) {
|
||||
if (bytebuffer_offset >= bytebuffer_size) {
|
||||
/* Leave the first 4 bytes empty so we can always unwind the bitbuffer
|
||||
/* Leave the first 4 bytes empty so we can always unwind the bitbuffer
|
||||
* to the front of the bytebuffer, leave 4 bytes free at end of tail
|
||||
* so we can easily top up buffer in check_trailer_gzip() */
|
||||
bytebuffer_size = 4 + bb_xread(gunzip_src_fd, &bytebuffer[4], bytebuffer_max - 8);
|
||||
@ -193,7 +193,7 @@ static void make_gunzip_crc_table(void)
|
||||
/*
|
||||
* Free the malloc'ed tables built by huft_build(), which makes a linked
|
||||
* list of the tables it made, with the links in a dummy first entry of
|
||||
* each table.
|
||||
* each table.
|
||||
* t: table to free
|
||||
*/
|
||||
static int huft_free(huft_t * t)
|
||||
@ -435,9 +435,9 @@ static int inflate_codes(huft_t * my_tl, huft_t * my_td, const unsigned int my_b
|
||||
md = mask_bits[bd];
|
||||
return 0; // Don't actually do anything the first time
|
||||
}
|
||||
|
||||
|
||||
if (resumeCopy) goto do_copy;
|
||||
|
||||
|
||||
while (1) { /* do until end of block */
|
||||
b = fill_bitbuffer(b, &k, bl);
|
||||
if ((e = (t = tl + ((unsigned) b & ml))->e) > 16)
|
||||
@ -533,7 +533,7 @@ do_copy: do {
|
||||
/* free the decoding tables, return */
|
||||
huft_free(tl);
|
||||
huft_free(td);
|
||||
|
||||
|
||||
/* done */
|
||||
return 0;
|
||||
}
|
||||
@ -548,7 +548,7 @@ static int inflate_stored(int my_n, int my_b_stored, int my_k_stored, int setup)
|
||||
w = gunzip_outbuf_count; /* initialize gunzip_window position */
|
||||
return 0; // Don't do anything first time
|
||||
}
|
||||
|
||||
|
||||
/* read and output the compressed data */
|
||||
while (n--) {
|
||||
b_stored = fill_bitbuffer(b_stored, &k_stored, 8);
|
||||
@ -639,7 +639,7 @@ static int inflate_block(int *e)
|
||||
inflate_stored(n, b_stored, k_stored, 1); // Setup inflate_stored
|
||||
return -1;
|
||||
}
|
||||
case 1: /* Inflate fixed
|
||||
case 1: /* Inflate fixed
|
||||
* decompress an inflated type 1 (fixed Huffman codes) block. We should
|
||||
* either replace this with a custom decoder, or at least precompute the
|
||||
* Huffman tables.
|
||||
@ -682,9 +682,9 @@ static int inflate_block(int *e)
|
||||
|
||||
/* decompress until an end-of-block code */
|
||||
inflate_codes(tl, td, bl, bd, 1); // Setup inflate_codes
|
||||
|
||||
|
||||
/* huft_free code moved into inflate_codes */
|
||||
|
||||
|
||||
return -2;
|
||||
}
|
||||
case 2: /* Inflate dynamic */
|
||||
@ -836,7 +836,7 @@ static int inflate_block(int *e)
|
||||
inflate_codes(tl, td, bl, bd, 1); // Setup inflate_codes
|
||||
|
||||
/* huft_free code moved into inflate_codes */
|
||||
|
||||
|
||||
return -2;
|
||||
}
|
||||
default:
|
||||
@ -859,12 +859,12 @@ static int inflate_get_next_window(void)
|
||||
static int method = -1; // Method == -1 for stored, -2 for codes
|
||||
static int e = 0;
|
||||
static int needAnotherBlock = 1;
|
||||
|
||||
|
||||
gunzip_outbuf_count = 0;
|
||||
|
||||
while(1) {
|
||||
int ret;
|
||||
|
||||
|
||||
if (needAnotherBlock) {
|
||||
if(e) {
|
||||
calculate_gunzip_crc();
|
||||
@ -875,7 +875,7 @@ static int inflate_get_next_window(void)
|
||||
method = inflate_block(&e);
|
||||
needAnotherBlock = 0;
|
||||
}
|
||||
|
||||
|
||||
switch (method) {
|
||||
case -1: ret = inflate_stored(0,0,0,0);
|
||||
break;
|
||||
@ -920,7 +920,7 @@ extern int inflate_unzip(int in, int out)
|
||||
make_gunzip_crc_table();
|
||||
|
||||
/* Allocate space for buffer */
|
||||
bytebuffer = xmalloc(bytebuffer_max);
|
||||
bytebuffer = xmalloc(bytebuffer_max);
|
||||
|
||||
while(1) {
|
||||
int ret = inflate_get_next_window();
|
||||
@ -977,6 +977,6 @@ extern int inflate_gunzip(int in, int out)
|
||||
(bytebuffer[bytebuffer_offset+2] << 16) | (bytebuffer[bytebuffer_offset+3] << 24))) {
|
||||
bb_error_msg("Incorrect length");
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@
|
||||
/*
|
||||
* Reassign the subarchive metadata parser based on the filename extension
|
||||
* e.g. if its a .tar.gz modify archive_handle->sub_archive to process a .tar.gz
|
||||
* or if its a .tar.bz2 make archive_handle->sub_archive handle that
|
||||
* or if its a .tar.bz2 make archive_handle->sub_archive handle that
|
||||
*/
|
||||
extern char filter_accept_list_reassign(archive_handle_t *archive_handle)
|
||||
{
|
||||
|
@ -113,7 +113,7 @@ extern char get_header_ar(archive_handle_t *archive_handle)
|
||||
archive_handle->action_data(archive_handle);
|
||||
}
|
||||
} else {
|
||||
data_skip(archive_handle);
|
||||
data_skip(archive_handle);
|
||||
}
|
||||
|
||||
archive_handle->offset += typed->size;
|
||||
|
@ -36,7 +36,7 @@ extern char get_header_cpio(archive_handle_t *archive_handle)
|
||||
int namesize;
|
||||
char dummy[16];
|
||||
int major, minor, nlink, inode;
|
||||
|
||||
|
||||
if (pending_hardlinks) { /* Deal with any pending hardlinks */
|
||||
hardlinks_t *tmp;
|
||||
hardlinks_t *oldtmp;
|
||||
@ -77,7 +77,7 @@ extern char get_header_cpio(archive_handle_t *archive_handle)
|
||||
{
|
||||
unsigned long tmpsize;
|
||||
sscanf(cpio_header, "%6c%8x%8x%8x%8x%8x%8lx%8lx%16c%8x%8x%8x%8c",
|
||||
dummy, &inode, (unsigned int*)&file_header->mode,
|
||||
dummy, &inode, (unsigned int*)&file_header->mode,
|
||||
(unsigned int*)&file_header->uid, (unsigned int*)&file_header->gid,
|
||||
&nlink, &file_header->mtime, &tmpsize,
|
||||
dummy, &major, &minor, &namesize, dummy);
|
||||
@ -147,7 +147,7 @@ extern char get_header_cpio(archive_handle_t *archive_handle)
|
||||
archive_handle->action_data(archive_handle);
|
||||
archive_handle->action_header(archive_handle->file_header);
|
||||
} else {
|
||||
data_skip(archive_handle);
|
||||
data_skip(archive_handle);
|
||||
}
|
||||
|
||||
archive_handle->offset += file_header->size;
|
||||
|
@ -119,7 +119,7 @@ extern char get_header_tar(archive_handle_t *archive_handle)
|
||||
file_header->gid = strtol(tar.formated.gid, NULL, 8);
|
||||
file_header->size = strtol(tar.formated.size, NULL, 8);
|
||||
file_header->mtime = strtol(tar.formated.mtime, NULL, 8);
|
||||
file_header->link_name = (tar.formated.linkname[0] != '\0') ?
|
||||
file_header->link_name = (tar.formated.linkname[0] != '\0') ?
|
||||
bb_xstrdup(tar.formated.linkname) : NULL;
|
||||
file_header->device = (dev_t) ((strtol(tar.formated.devmajor, NULL, 8) << 8) +
|
||||
strtol(tar.formated.devminor, NULL, 8));
|
||||
@ -205,7 +205,7 @@ extern char get_header_tar(archive_handle_t *archive_handle)
|
||||
archive_handle->action_data(archive_handle);
|
||||
archive_handle->passed = llist_add_to(archive_handle->passed, file_header->name);
|
||||
} else {
|
||||
data_skip(archive_handle);
|
||||
data_skip(archive_handle);
|
||||
}
|
||||
archive_handle->offset += file_header->size;
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
/* uncompress for busybox -- (c) 2002 Robert Griebl
|
||||
*
|
||||
* based on the original compress42.c source
|
||||
* based on the original compress42.c source
|
||||
* (see disclaimer below)
|
||||
*/
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
*
|
||||
* General cleanup to better adhere to the style guide and make use of standard
|
||||
* busybox functions by Glenn McGrath <bug1@optushome.com.au>
|
||||
*
|
||||
*
|
||||
* read_gz interface + associated hacking by Laurence Anderson
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -148,7 +148,7 @@ static unsigned int fill_bitbuffer(unsigned int bitbuffer, unsigned int *current
|
||||
{
|
||||
while (*current < required) {
|
||||
if (bytebuffer_offset >= bytebuffer_size) {
|
||||
/* Leave the first 4 bytes empty so we can always unwind the bitbuffer
|
||||
/* Leave the first 4 bytes empty so we can always unwind the bitbuffer
|
||||
* to the front of the bytebuffer, leave 4 bytes free at end of tail
|
||||
* so we can easily top up buffer in check_trailer_gzip() */
|
||||
bytebuffer_size = 4 + bb_xread(gunzip_src_fd, &bytebuffer[4], bytebuffer_max - 8);
|
||||
@ -193,7 +193,7 @@ static void make_gunzip_crc_table(void)
|
||||
/*
|
||||
* Free the malloc'ed tables built by huft_build(), which makes a linked
|
||||
* list of the tables it made, with the links in a dummy first entry of
|
||||
* each table.
|
||||
* each table.
|
||||
* t: table to free
|
||||
*/
|
||||
static int huft_free(huft_t * t)
|
||||
@ -435,9 +435,9 @@ static int inflate_codes(huft_t * my_tl, huft_t * my_td, const unsigned int my_b
|
||||
md = mask_bits[bd];
|
||||
return 0; // Don't actually do anything the first time
|
||||
}
|
||||
|
||||
|
||||
if (resumeCopy) goto do_copy;
|
||||
|
||||
|
||||
while (1) { /* do until end of block */
|
||||
b = fill_bitbuffer(b, &k, bl);
|
||||
if ((e = (t = tl + ((unsigned) b & ml))->e) > 16)
|
||||
@ -533,7 +533,7 @@ do_copy: do {
|
||||
/* free the decoding tables, return */
|
||||
huft_free(tl);
|
||||
huft_free(td);
|
||||
|
||||
|
||||
/* done */
|
||||
return 0;
|
||||
}
|
||||
@ -548,7 +548,7 @@ static int inflate_stored(int my_n, int my_b_stored, int my_k_stored, int setup)
|
||||
w = gunzip_outbuf_count; /* initialize gunzip_window position */
|
||||
return 0; // Don't do anything first time
|
||||
}
|
||||
|
||||
|
||||
/* read and output the compressed data */
|
||||
while (n--) {
|
||||
b_stored = fill_bitbuffer(b_stored, &k_stored, 8);
|
||||
@ -639,7 +639,7 @@ static int inflate_block(int *e)
|
||||
inflate_stored(n, b_stored, k_stored, 1); // Setup inflate_stored
|
||||
return -1;
|
||||
}
|
||||
case 1: /* Inflate fixed
|
||||
case 1: /* Inflate fixed
|
||||
* decompress an inflated type 1 (fixed Huffman codes) block. We should
|
||||
* either replace this with a custom decoder, or at least precompute the
|
||||
* Huffman tables.
|
||||
@ -682,9 +682,9 @@ static int inflate_block(int *e)
|
||||
|
||||
/* decompress until an end-of-block code */
|
||||
inflate_codes(tl, td, bl, bd, 1); // Setup inflate_codes
|
||||
|
||||
|
||||
/* huft_free code moved into inflate_codes */
|
||||
|
||||
|
||||
return -2;
|
||||
}
|
||||
case 2: /* Inflate dynamic */
|
||||
@ -836,7 +836,7 @@ static int inflate_block(int *e)
|
||||
inflate_codes(tl, td, bl, bd, 1); // Setup inflate_codes
|
||||
|
||||
/* huft_free code moved into inflate_codes */
|
||||
|
||||
|
||||
return -2;
|
||||
}
|
||||
default:
|
||||
@ -859,12 +859,12 @@ static int inflate_get_next_window(void)
|
||||
static int method = -1; // Method == -1 for stored, -2 for codes
|
||||
static int e = 0;
|
||||
static int needAnotherBlock = 1;
|
||||
|
||||
|
||||
gunzip_outbuf_count = 0;
|
||||
|
||||
while(1) {
|
||||
int ret;
|
||||
|
||||
|
||||
if (needAnotherBlock) {
|
||||
if(e) {
|
||||
calculate_gunzip_crc();
|
||||
@ -875,7 +875,7 @@ static int inflate_get_next_window(void)
|
||||
method = inflate_block(&e);
|
||||
needAnotherBlock = 0;
|
||||
}
|
||||
|
||||
|
||||
switch (method) {
|
||||
case -1: ret = inflate_stored(0,0,0,0);
|
||||
break;
|
||||
@ -920,7 +920,7 @@ extern int inflate_unzip(int in, int out)
|
||||
make_gunzip_crc_table();
|
||||
|
||||
/* Allocate space for buffer */
|
||||
bytebuffer = xmalloc(bytebuffer_max);
|
||||
bytebuffer = xmalloc(bytebuffer_max);
|
||||
|
||||
while(1) {
|
||||
int ret = inflate_get_next_window();
|
||||
@ -977,6 +977,6 @@ extern int inflate_gunzip(int in, int out)
|
||||
(bytebuffer[bytebuffer_offset+2] << 16) | (bytebuffer[bytebuffer_offset+3] << 24))) {
|
||||
bb_error_msg("Incorrect length");
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -204,12 +204,12 @@ void extract_cpio_gz(int fd) {
|
||||
archive_handle->flags |= ARCHIVE_CREATE_LEADING_DIRS;
|
||||
archive_handle->src_fd = fd;
|
||||
archive_handle->offset = 0;
|
||||
|
||||
|
||||
bb_xread_all(archive_handle->src_fd, &magic, 2);
|
||||
if ((magic[0] != 0x1f) || (magic[1] != 0x8b)) {
|
||||
bb_error_msg_and_die("Invalid gzip magic");
|
||||
}
|
||||
check_header_gzip(archive_handle->src_fd);
|
||||
check_header_gzip(archive_handle->src_fd);
|
||||
chdir("/"); // Install RPM's to root
|
||||
|
||||
archive_handle->src_fd = open_transformer(archive_handle->src_fd, inflate_gunzip);
|
||||
|
@ -89,7 +89,7 @@ extern int rpm2cpio_main(int argc, char **argv)
|
||||
|
||||
/* Skip the main header */
|
||||
skip_header(rpm_fd);
|
||||
|
||||
|
||||
bb_xread_all(rpm_fd, &magic, 2);
|
||||
if ((magic[0] != 0x1f) || (magic[1] != 0x8b)) {
|
||||
bb_error_msg_and_die("Invalid gzip magic");
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* Mini tar implementation for busybox
|
||||
* Mini tar implementation for busybox
|
||||
*
|
||||
* Modifed to use common extraction code used by ar, cpio, dpkg-deb, dpkg
|
||||
* Glenn McGrath <bug1@optushome.com.au>
|
||||
@ -9,7 +9,7 @@
|
||||
* ground up. It still has remnents of the old code lying about, but it is
|
||||
* very different now (i.e., cleaner, less global variables, etc.)
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* Based in part in the tar implementation in sash
|
||||
* Copyright (c) 1999 by David I. Bell
|
||||
@ -111,7 +111,7 @@ struct TarBallInfo {
|
||||
for the tarball */
|
||||
struct stat statBuf; /* Stat info for the tarball, letting
|
||||
us know the inode and device that the
|
||||
tarball lives, so we can avoid trying
|
||||
tarball lives, so we can avoid trying
|
||||
to include the tarball into itself */
|
||||
int verboseFlag; /* Whether to print extra stuff or not */
|
||||
const llist_t *excludeList; /* List of files to not include */
|
||||
@ -470,7 +470,7 @@ static inline int writeTarFile(const int tar_fd, const int verboseFlag,
|
||||
(void) &include;
|
||||
(void) &errorFlag;
|
||||
# endif
|
||||
|
||||
|
||||
gzipPid = vfork();
|
||||
|
||||
if (gzipPid == 0) {
|
||||
@ -616,7 +616,7 @@ static char get_header_tar_Z(archive_handle_t *archive_handle)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FEATURE_TAR_BZIP2
|
||||
# define TAR_OPT_BZIP2 (1 << (8 + TAR_OPT_FLAG_CREATE))
|
||||
# define TAR_OPT_BZIP2 (1 << (8 + TAR_OPT_FLAG_CREATE))
|
||||
# define TAR_OPT_STR_BZIP2 "j"
|
||||
# define TAR_OPT_FLAG_BZIP2 1
|
||||
#else
|
||||
@ -646,7 +646,7 @@ static char get_header_tar_Z(archive_handle_t *archive_handle)
|
||||
#ifdef CONFIG_FEATURE_TAR_COMPRESS
|
||||
# define TAR_OPT_UNCOMPRESS (1 << (8 + TAR_OPT_FLAG_CREATE + TAR_OPT_FLAG_BZIP2 + TAR_OPT_FLAG_FROM + TAR_OPT_FLAG_GZIP))
|
||||
# define TAR_OPT_STR_COMPRESS "Z"
|
||||
#else
|
||||
#else
|
||||
# define TAR_OPT_STR_COMPRESS ""
|
||||
#endif
|
||||
|
||||
@ -740,7 +740,7 @@ int tar_main(int argc, char **argv)
|
||||
bb_show_usage();
|
||||
}
|
||||
if(ctx_flag & CTX_TEST) {
|
||||
if ((tar_handle->action_header == header_list) ||
|
||||
if ((tar_handle->action_header == header_list) ||
|
||||
(tar_handle->action_header == header_verbose_list)) {
|
||||
tar_handle->action_header = header_verbose_list;
|
||||
} else {
|
||||
@ -756,8 +756,8 @@ int tar_main(int argc, char **argv)
|
||||
tar_handle->action_data = data_extract_to_stdout;
|
||||
}
|
||||
if(opt & TAR_OPT_VERBOSE) {
|
||||
if ((tar_handle->action_header == header_list) ||
|
||||
(tar_handle->action_header == header_verbose_list))
|
||||
if ((tar_handle->action_header == header_list) ||
|
||||
(tar_handle->action_header == header_verbose_list))
|
||||
{
|
||||
tar_handle->action_header = header_verbose_list;
|
||||
} else {
|
||||
@ -860,13 +860,13 @@ int tar_main(int argc, char **argv)
|
||||
}
|
||||
# endif /* CONFIG_FEATURE_TAR_BZIP2 */
|
||||
|
||||
if ((tar_handle->action_header == header_list) ||
|
||||
if ((tar_handle->action_header == header_list) ||
|
||||
(tar_handle->action_header == header_verbose_list)) {
|
||||
verboseFlag = TRUE;
|
||||
}
|
||||
writeTarFile(tar_handle->src_fd, verboseFlag, opt & TAR_OPT_DEREFERNCE, tar_handle->accept,
|
||||
tar_handle->reject, gzipFlag);
|
||||
} else
|
||||
} else
|
||||
#endif /* CONFIG_FEATURE_TAR_CREATE */
|
||||
{
|
||||
while (get_header_ptr(tar_handle) == EXIT_SUCCESS);
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini chvt implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini clear implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -3,13 +3,13 @@
|
||||
* Disallocate virtual terminal(s)
|
||||
*
|
||||
* Copyright (C) 2003 by Tito Ragusa <farmatito@tiscali.it>
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
|
@ -56,7 +56,7 @@ int dumpkmap_main(int argc, char **argv)
|
||||
write(1, magic, 7);
|
||||
|
||||
for (i=0; i < MAX_NR_KEYMAPS; i++) flags[i]=0;
|
||||
flags[0]=1;
|
||||
flags[0]=1;
|
||||
flags[1]=1;
|
||||
flags[2]=1;
|
||||
flags[4]=1;
|
||||
@ -66,9 +66,9 @@ int dumpkmap_main(int argc, char **argv)
|
||||
flags[9]=1;
|
||||
flags[10]=1;
|
||||
flags[12]=1;
|
||||
|
||||
|
||||
/* dump flags */
|
||||
for (i=0; i < MAX_NR_KEYMAPS; i++) write(1,&flags[i],1);
|
||||
for (i=0; i < MAX_NR_KEYMAPS; i++) write(1,&flags[i],1);
|
||||
|
||||
for (i = 0; i < MAX_NR_KEYMAPS; i++) {
|
||||
if (flags[i] == 1) {
|
||||
@ -76,13 +76,13 @@ int dumpkmap_main(int argc, char **argv)
|
||||
ke.kb_index = j;
|
||||
ke.kb_table = i;
|
||||
if (ioctl(fd, KDGKBENT, &ke) < 0) {
|
||||
|
||||
|
||||
bb_error_msg("ioctl returned: %m, %s, %s, %xqq", (char *)&ke.kb_index,(char *)&ke.kb_table,(int)&ke.kb_value);
|
||||
}
|
||||
else {
|
||||
write(1,(void*)&ke.kb_value,2);
|
||||
}
|
||||
|
||||
write(1,(void*)&ke.kb_value,2);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ int loadkmap_main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
/* Don't bother to close files. Exit does that
|
||||
/* Don't bother to close files. Exit does that
|
||||
* automagically, so we can save a few bytes */
|
||||
/* close(fd); */
|
||||
return EXIT_SUCCESS;
|
||||
|
@ -56,7 +56,7 @@ int openvt_main(int argc, char **argv)
|
||||
if (setsid() < 0) {
|
||||
#endif
|
||||
|
||||
bb_perror_msg_and_die("Unable to set new session");
|
||||
bb_perror_msg_and_die("Unable to set new session");
|
||||
}
|
||||
close(0); /* so that new vt becomes stdin */
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini reset implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
* Written by Erik Andersen and Kent Robotti <robotti@metconnect.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@ -35,7 +35,7 @@ struct kbkeycode {
|
||||
};
|
||||
static const int KDSETKEYCODE = 0x4B4D; /* write kernel keycode table entry */
|
||||
|
||||
extern int
|
||||
extern int
|
||||
setkeycodes_main(int argc, char** argv)
|
||||
{
|
||||
char *ep;
|
||||
@ -45,7 +45,7 @@ setkeycodes_main(int argc, char** argv)
|
||||
if (argc % 2 != 1 || argc < 2) {
|
||||
bb_show_usage();
|
||||
}
|
||||
|
||||
|
||||
fd = get_console_fd();
|
||||
|
||||
while (argc > 2) {
|
||||
|
@ -10,7 +10,7 @@ config CONFIG_BASENAME
|
||||
default n
|
||||
help
|
||||
basename is used to strip the directory and suffix from filenames,
|
||||
leaving just the filename itself. Enable this option if you wish
|
||||
leaving just the filename itself. Enable this option if you wish
|
||||
to enable the 'basename' utility.
|
||||
|
||||
config CONFIG_CAL
|
||||
@ -101,7 +101,7 @@ config CONFIG_DD
|
||||
help
|
||||
dd copies a file (from standard input to standard output,
|
||||
by default) using specific input and output blocksizes,
|
||||
while optionally performing conversions on it.
|
||||
while optionally performing conversions on it.
|
||||
|
||||
config CONFIG_DF
|
||||
bool "df"
|
||||
@ -154,7 +154,7 @@ config CONFIG_FEATURE_FANCY_ECHO
|
||||
default y
|
||||
depends on CONFIG_ECHO
|
||||
help
|
||||
This adds options (-n and -e) to echo.
|
||||
This adds options (-n and -e) to echo.
|
||||
|
||||
config CONFIG_ENV
|
||||
bool "env"
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini basename implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -161,7 +161,7 @@ int cal_main(int argc, char **argv)
|
||||
int row, len, days[MAXDAYS];
|
||||
int *dp = days;
|
||||
char lineout[30];
|
||||
|
||||
|
||||
day_array(month, year, dp);
|
||||
len = sprintf(lineout, "%s %d", month_names[month - 1], year);
|
||||
bb_printf("%*s%s\n%s\n",
|
||||
@ -176,7 +176,7 @@ int cal_main(int argc, char **argv)
|
||||
int row, which_cal, week_len, days[12][MAXDAYS];
|
||||
int *dp;
|
||||
char lineout[80];
|
||||
|
||||
|
||||
sprintf(lineout, "%d", year);
|
||||
center(lineout,
|
||||
(WEEK_LEN * 3 + HEAD_SEP * 2)
|
||||
@ -317,7 +317,7 @@ static void blank_string(char *buf, size_t buflen)
|
||||
static char *build_row(char *p, int *dp)
|
||||
{
|
||||
int col, val, day;
|
||||
|
||||
|
||||
memset(p, ' ', (julian + DAY_LEN) * 7);
|
||||
|
||||
col = 0;
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini chgrp implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -63,7 +63,7 @@ int chgrp_main(int argc, char **argv)
|
||||
|
||||
/* Ok, ready to do the deed now */
|
||||
do {
|
||||
if (! recursive_action (*argv, recursiveFlag, FALSE, FALSE,
|
||||
if (! recursive_action (*argv, recursiveFlag, FALSE, FALSE,
|
||||
fileAction, fileAction, &gid)) {
|
||||
retval = EXIT_FAILURE;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini chmod implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* Reworked by (C) 2002 Vladimir Oleynik <dzo@simtreas.ru>
|
||||
* to correctly parse '-rwxgoa'
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini chown implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -84,10 +84,10 @@ int chown_main(int argc, char **argv)
|
||||
uid = get_ug_id(*argv, my_getpwnam);
|
||||
|
||||
++argv;
|
||||
|
||||
|
||||
/* Ok, ready to do the deed now */
|
||||
do {
|
||||
if (! recursive_action (*argv, (flags & FLAG_R), FALSE, FALSE,
|
||||
if (! recursive_action (*argv, (flags & FLAG_R), FALSE, FALSE,
|
||||
fileAction, fileAction, NULL)) {
|
||||
retval = EXIT_FAILURE;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini chroot implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -3,7 +3,7 @@
|
||||
* cut.c - minimalist version of cut
|
||||
*
|
||||
* Copyright (C) 1999,2000,2001 by Lineo, inc.
|
||||
* Written by Mark Whitley <markw@lineo.com>, <markw@codepoet.org>
|
||||
* Written by Mark Whitley <markw@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -69,7 +69,7 @@ static int cmpfunc(const void *a, const void *b)
|
||||
|
||||
/*
|
||||
* parse_lists() - parses a list and puts values into startpos and endpos.
|
||||
* valid list formats: N, N-, N-M, -M
|
||||
* valid list formats: N, N-, N-M, -M
|
||||
* more than one list can be seperated by commas
|
||||
*/
|
||||
static void parse_lists(char *lists)
|
||||
@ -96,7 +96,7 @@ static void parse_lists(char *lists)
|
||||
s = strtoul(ntok, &junk, 10);
|
||||
if(*junk != '\0' || s < 0)
|
||||
bb_error_msg_and_die("invalid byte or field list");
|
||||
|
||||
|
||||
/* account for the fact that arrays are zero based, while the user
|
||||
* expects the first char on the line to be char # 1 */
|
||||
if (s != 0)
|
||||
@ -125,7 +125,7 @@ static void parse_lists(char *lists)
|
||||
/* if there's something left to tokenize, the user past an invalid list */
|
||||
if (ltok)
|
||||
bb_error_msg_and_die("invalid byte or field list");
|
||||
|
||||
|
||||
/* add the new list */
|
||||
cut_lists = xrealloc(cut_lists, sizeof(struct cut_list) * (++nlists));
|
||||
cut_lists[nlists-1].startpos = s;
|
||||
@ -227,7 +227,7 @@ static void cut_file_by_lines(const char *line, unsigned int linenum)
|
||||
{
|
||||
static int c = 0;
|
||||
static int l = -1;
|
||||
|
||||
|
||||
/* I can't initialize this above cuz the "initializer isn't
|
||||
* constant" *sigh* */
|
||||
if (l == -1)
|
||||
|
@ -3,7 +3,7 @@
|
||||
* Mini date implementation for busybox
|
||||
*
|
||||
* by Matthew Grant <grantma@anathoth.gen.nz>
|
||||
*
|
||||
*
|
||||
* iso-format handling added by Robert Griebl <griebl@gmx.de>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -33,7 +33,7 @@
|
||||
#include "busybox.h"
|
||||
|
||||
|
||||
/* This 'date' command supports only 2 time setting formats,
|
||||
/* This 'date' command supports only 2 time setting formats,
|
||||
all the GNU strftime stuff (its in libc, lets use it),
|
||||
setting time using UTC and displaying int, as well as
|
||||
an RFC 822 complient date output for shell scripting
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini df implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
* based on original code by (I think) Bruce Perens <bruce@pixar.com>.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -51,7 +51,7 @@ extern int df_main(int argc, char **argv)
|
||||
long blocks_used;
|
||||
long blocks_percent_used;
|
||||
#ifdef CONFIG_FEATURE_HUMAN_READABLE
|
||||
unsigned long df_disp_hr = KILOBYTE;
|
||||
unsigned long df_disp_hr = KILOBYTE;
|
||||
#endif
|
||||
int status = EXIT_SUCCESS;
|
||||
unsigned long opt;
|
||||
@ -115,7 +115,7 @@ extern int df_main(int argc, char **argv)
|
||||
bb_perror_msg("%s", mount_point);
|
||||
goto SET_ERROR;
|
||||
}
|
||||
|
||||
|
||||
if ((s.f_blocks > 0) || !mount_table){
|
||||
blocks_used = s.f_blocks - s.f_bfree;
|
||||
blocks_percent_used = 0;
|
||||
@ -124,7 +124,7 @@ extern int df_main(int argc, char **argv)
|
||||
+ (blocks_used + s.f_bavail)/2
|
||||
) / (blocks_used + s.f_bavail);
|
||||
}
|
||||
|
||||
|
||||
if (strcmp(device, "rootfs") == 0) {
|
||||
continue;
|
||||
} else if (strcmp(device, "/dev/root") == 0) {
|
||||
@ -134,15 +134,15 @@ extern int df_main(int argc, char **argv)
|
||||
goto SET_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_FEATURE_HUMAN_READABLE
|
||||
bb_printf("%-21s%9s ", device,
|
||||
make_human_readable_str(s.f_blocks, s.f_bsize, df_disp_hr));
|
||||
|
||||
|
||||
bb_printf("%9s ",
|
||||
make_human_readable_str( (s.f_blocks - s.f_bfree),
|
||||
s.f_bsize, df_disp_hr));
|
||||
|
||||
|
||||
bb_printf("%9s %3ld%% %s\n",
|
||||
make_human_readable_str(s.f_bavail, s.f_bsize, df_disp_hr),
|
||||
blocks_percent_used, mount_point);
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini dirname implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -50,7 +50,7 @@ typedef unsigned long int bb_uint64_t;
|
||||
static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||
|
||||
// if fn is NULL then input is stdin and output is stdout
|
||||
static int convert(char *fn, int ConvType)
|
||||
static int convert(char *fn, int ConvType)
|
||||
{
|
||||
int c, fd;
|
||||
struct timeval tv;
|
||||
@ -156,12 +156,12 @@ static int convert(char *fn, int ConvType)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dos2unix_main(int argc, char *argv[])
|
||||
int dos2unix_main(int argc, char *argv[])
|
||||
{
|
||||
int ConvType = CT_AUTO;
|
||||
int o;
|
||||
|
||||
//See if we are supposed to be doing dos2unix or unix2dos
|
||||
//See if we are supposed to be doing dos2unix or unix2dos
|
||||
if (argv[0][0]=='d') {
|
||||
ConvType = CT_DOS2UNIX;
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ int du_main(int argc, char **argv)
|
||||
#else
|
||||
disp_k = 0;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Note: SUSv3 specifies that -a and -s options can not be used together
|
||||
|
@ -55,7 +55,7 @@ extern int echo_main(int argc, char** argv)
|
||||
* that all of the options specified are actually valid.
|
||||
* Otherwise, the string should just be echoed.
|
||||
*/
|
||||
|
||||
|
||||
if (!*(p = *argv + 1)) { /* A single '-', so echo it. */
|
||||
goto just_echo;
|
||||
}
|
||||
@ -87,7 +87,7 @@ just_echo:
|
||||
while ((c = *(*argv)++)) {
|
||||
if (c == eflag) { /* Check for escape seq. */
|
||||
if (**argv == 'c') {
|
||||
/* '\c' means cancel newline and
|
||||
/* '\c' means cancel newline and
|
||||
* ignore all subsequent chars. */
|
||||
goto DONE;
|
||||
}
|
||||
@ -141,8 +141,8 @@ DONE:
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. <BSD Advertising Clause omitted per the July 22, 1999 licensing change
|
||||
* ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change>
|
||||
* 3. <BSD Advertising Clause omitted per the July 22, 1999 licensing change
|
||||
* ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change>
|
||||
*
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
|
@ -5,7 +5,7 @@
|
||||
* based on GNU expr Mike Parker.
|
||||
* Copyright (C) 86, 1991-1997, 1999 Free Software Foundation, Inc.
|
||||
*
|
||||
* Busybox modifications
|
||||
* Busybox modifications
|
||||
* Copyright (c) 2000 Edward Betts <edward@debian.org>.
|
||||
* Aug 2003 Vladimir Oleynik - reduced 464 bytes.
|
||||
*
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini false implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -47,7 +47,7 @@ extern int id_main(int argc, char **argv)
|
||||
#ifdef CONFIG_SELINUX
|
||||
int is_flask_enabled_flag = is_flask_enabled();
|
||||
#endif
|
||||
|
||||
|
||||
flags = bb_getopt_ulflags(argc, argv, "ugrn");
|
||||
|
||||
if (((flags & (JUST_USER | JUST_GROUP)) == (JUST_USER | JUST_GROUP))
|
||||
|
@ -48,7 +48,7 @@ static const struct option install_long_options[] = {
|
||||
{ "owner", 0, NULL, 'o' },
|
||||
{ 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
||||
extern int install_main(int argc, char **argv)
|
||||
{
|
||||
struct stat statbuf;
|
||||
@ -116,7 +116,7 @@ extern int install_main(int argc, char **argv)
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
|
||||
cp_mv_stat2(argv[argc - 1], &statbuf, lstat);
|
||||
for (i = optind; i < argc - 1; i++) {
|
||||
unsigned char *dest;
|
||||
@ -137,15 +137,15 @@ extern int install_main(int argc, char **argv)
|
||||
/* Set the user and group id */
|
||||
if (lchown(dest, uid, gid) == -1) {
|
||||
bb_perror_msg("cannot change ownership of %s", dest);
|
||||
ret = EXIT_FAILURE;
|
||||
ret = EXIT_FAILURE;
|
||||
}
|
||||
if (flags & INSTALL_OPT_STRIP) {
|
||||
if (execlp("strip", "strip", dest, NULL) == -1) {
|
||||
bb_error_msg("strip failed");
|
||||
ret = EXIT_FAILURE;
|
||||
ret = EXIT_FAILURE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return(ret);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini ln implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -88,14 +88,14 @@ extern int ln_main(int argc, char **argv)
|
||||
if (flag & LN_SYMLINK) {
|
||||
link_func = symlink;
|
||||
}
|
||||
|
||||
|
||||
if (link_func(*argv, src) != 0) {
|
||||
bb_perror_msg(src);
|
||||
status = EXIT_FAILURE;
|
||||
}
|
||||
|
||||
free(src_name);
|
||||
|
||||
|
||||
} while ((++argv)[1]);
|
||||
|
||||
return status;
|
||||
|
@ -315,7 +315,7 @@ static int count_dirs(struct dnode **dn, int nfiles, int notsubdirs)
|
||||
if (S_ISDIR(dn[i]->dstat.st_mode)
|
||||
&& (notsubdirs
|
||||
|| ((dn[i]->name[0] != '.')
|
||||
|| (dn[i]->name[1]
|
||||
|| (dn[i]->name[1]
|
||||
&& ((dn[i]->name[1] != '.')
|
||||
|| dn[i]->name[2])))))
|
||||
dirs++;
|
||||
@ -1055,7 +1055,7 @@ extern int ls_main(int argc, char **argv)
|
||||
if ((all_fmt & STYLE_MASK) == STYLE_LONG && (all_fmt & LIST_ID_NUMERIC))
|
||||
all_fmt &= ~LIST_ID_NAME; /* don't list names if numeric uid */
|
||||
#endif
|
||||
|
||||
|
||||
/* choose a display format */
|
||||
if ((all_fmt & STYLE_MASK) == STYLE_AUTO)
|
||||
#if STYLE_AUTO != 0
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (C) 2003 Glenn L. McGrath
|
||||
* Copyright (C) 2003 Erik Andersen
|
||||
*
|
||||
* Copyright (C) 2003-2004 Erik Andersen
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
|
@ -50,7 +50,7 @@ extern int mknod_main(int argc, char **argv)
|
||||
dev = (bb_xgetularg10_bnd(argv[2], 0, 255) << 8)
|
||||
+ bb_xgetularg10_bnd(argv[3], 0, 255);
|
||||
}
|
||||
|
||||
|
||||
if (argc == 2) {
|
||||
name = *argv;
|
||||
if (mknod(name, mode, dev) == 0) {
|
||||
|
@ -75,7 +75,7 @@ extern int mv_main(int argc, char **argv)
|
||||
goto DO_MOVE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
do {
|
||||
dest = concat_path_file(last, bb_get_last_path_component(*argv));
|
||||
|
||||
@ -84,7 +84,7 @@ extern int mv_main(int argc, char **argv)
|
||||
}
|
||||
|
||||
DO_MOVE:
|
||||
|
||||
|
||||
if (dest_exists && !(flags & OPT_FILEUTILS_FORCE) &&
|
||||
((access(dest, W_OK) < 0 && isatty(0)) ||
|
||||
(flags & OPT_FILEUTILS_INTERACTIVE))) {
|
||||
@ -119,7 +119,7 @@ DO_MOVE:
|
||||
bb_perror_msg("cannot remove `%s'", dest);
|
||||
goto RET_1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((copy_file(*argv, dest,
|
||||
FILEUTILS_RECUR | FILEUTILS_PRESERVE_STATUS) >= 0) &&
|
||||
(remove_file(*argv, FILEUTILS_RECUR | FILEUTILS_FORCE) >= 0)) {
|
||||
@ -132,7 +132,7 @@ RET_1:
|
||||
RET_0:
|
||||
if (dest != last) {
|
||||
free((void *) dest);
|
||||
}
|
||||
}
|
||||
} while (*++argv != last);
|
||||
|
||||
return (status);
|
||||
|
@ -106,7 +106,7 @@ static int print_esc __P((char *escstart));
|
||||
static int print_formatted __P((char *format, int argc, char **argv));
|
||||
static long xstrtol __P((char *s));
|
||||
static unsigned long xstrtoul __P((char *s));
|
||||
static void print_direc __P( (char *start, size_t length,
|
||||
static void print_direc __P( (char *start, size_t length,
|
||||
int field_width, int precision, char *argument));
|
||||
static void print_esc_char __P((int c));
|
||||
static void print_esc_string __P((char *str));
|
||||
@ -214,7 +214,7 @@ static int print_formatted(char *format, int argc, char **argv)
|
||||
++f;
|
||||
++direc_length;
|
||||
}
|
||||
/*
|
||||
/*
|
||||
if (!strchr ("diouxXfeEgGcs", *f))
|
||||
fprintf(stderr, "%%%c: invalid directive", *f);
|
||||
*/
|
||||
|
@ -66,7 +66,7 @@ extern int rmdir_main(int argc, char **argv)
|
||||
}
|
||||
break;
|
||||
} while (1);
|
||||
|
||||
|
||||
} while (*++argv);
|
||||
|
||||
return status;
|
||||
|
@ -118,7 +118,7 @@ int tail_main(int argc, char **argv)
|
||||
/* Allow legacy syntax of an initial numeric option without -n. */
|
||||
if (argc >=2 && ((argv[1][0] == '+') || ((argv[1][0] == '-')
|
||||
/* && (isdigit)(argv[1][1]) */
|
||||
&& (((unsigned int)(argv[1][1] - '0')) <= 9))))
|
||||
&& (((unsigned int)(argv[1][1] - '0')) <= 9))))
|
||||
{
|
||||
optind = 2;
|
||||
optarg = argv[1];
|
||||
|
@ -97,7 +97,7 @@ int tee_main(int argc, char **argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Now we need to check for i/o errors on stdin and the various
|
||||
/* Now we need to check for i/o errors on stdin and the various
|
||||
* output files. Since we know that the first entry in the output
|
||||
* file table is stdout, we can save one "if ferror" test by
|
||||
* setting the first entry to stdin and checking stdout error
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* test implementation for busybox
|
||||
*
|
||||
* Copyright (c) by a whole pile of folks:
|
||||
* Copyright (c) by a whole pile of folks:
|
||||
*
|
||||
* test(1); version 7-like -- author Erik Baalbergen
|
||||
* modified by Eric Gisin to be used as built-in.
|
||||
@ -10,7 +10,7 @@
|
||||
* (-x -c -b -p -u -g -k) plus Korn's -L -nt -ot -ef and new -S (socket).
|
||||
* modified by J.T. Conklin for NetBSD.
|
||||
* modified by Herbert Xu to be used as built-in in ash.
|
||||
* modified by Erik Andersen <andersen@codepoet.org> to be used
|
||||
* modified by Erik Andersen <andersen@codepoet.org> to be used
|
||||
* in busybox.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini touch implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* Copyright (c) Michiel Huisjes
|
||||
*
|
||||
* This version of tr is adapted from Minix tr and was modified
|
||||
* This version of tr is adapted from Minix tr and was modified
|
||||
* by Erik Andersen <andersen@codepoet.org> to be used in busybox.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -20,7 +20,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*
|
||||
* Original copyright notice is retained at the end of this file.
|
||||
*/
|
||||
|
||||
@ -213,24 +213,24 @@ extern int tr_main(int argc, char **argv)
|
||||
/*
|
||||
* Copyright (c) 1987,1997, Prentice Hall
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use of the MINIX operating system in source and
|
||||
* binary forms, with or without modification, are permitted provided
|
||||
* that the following conditions are met:
|
||||
*
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
*
|
||||
*
|
||||
* Neither the name of Prentice Hall nor the names of the software
|
||||
* authors or contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior
|
||||
* written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS, AUTHORS, AND
|
||||
* CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Mini true implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -18,7 +18,7 @@
|
||||
* Based on specification from
|
||||
* http://www.opengroup.org/onlinepubs/007904975/utilities/uuencode.html
|
||||
*
|
||||
* Bugs: the spec doesnt mention anything about "`\n`\n" prior to the "end" line
|
||||
* Bugs: the spec doesnt mention anything about "`\n`\n" prior to the "end" line
|
||||
*/
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ static int read_stduu(FILE *src_stream, FILE *dst_stream)
|
||||
if (length > 60) {
|
||||
bb_error_msg_and_die("Line too long");
|
||||
}
|
||||
|
||||
|
||||
line_ptr++;
|
||||
/* Tolerate an overly long line to acomadate a possible exta '`' */
|
||||
if (strlen(line_ptr) < length) {
|
||||
|
@ -26,7 +26,7 @@
|
||||
/* Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org)
|
||||
*
|
||||
* Rewritten to fix a number of problems and do some size optimizations.
|
||||
* Problems in the previous busybox implementation (besides bloat) included:
|
||||
* Problems in the previous busybox implementation (besides bloat) included:
|
||||
* 1) broken 'wc -c' optimization (read note below)
|
||||
* 2) broken handling of '-' args
|
||||
* 3) no checking of ferror on EOF returns
|
||||
@ -110,33 +110,33 @@ int wc_main(int argc, char **argv)
|
||||
char status = EXIT_SUCCESS;
|
||||
char in_word;
|
||||
char print_type;
|
||||
|
||||
|
||||
print_type = bb_getopt_ulflags(argc, argv, wc_opts);
|
||||
|
||||
|
||||
if (print_type == 0) {
|
||||
print_type = (1 << WC_LINES) | (1 << WC_WORDS) | (1 << WC_CHARS);
|
||||
}
|
||||
|
||||
|
||||
argv += optind;
|
||||
if (!*argv) {
|
||||
*--argv = (char *) bb_msg_standard_input;
|
||||
}
|
||||
|
||||
|
||||
memset(totals, 0, sizeof(totals));
|
||||
|
||||
|
||||
pcounts = counts;
|
||||
|
||||
|
||||
do {
|
||||
++num_files;
|
||||
if (!(fp = bb_wfopen_input(*argv))) {
|
||||
status = EXIT_FAILURE;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
memset(counts, 0, sizeof(counts));
|
||||
linepos = 0;
|
||||
in_word = 0;
|
||||
|
||||
|
||||
do {
|
||||
++counts[WC_CHARS];
|
||||
c = getc(fp);
|
||||
@ -177,21 +177,21 @@ int wc_main(int argc, char **argv)
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
counts[WC_WORDS] += in_word;
|
||||
in_word = 0;
|
||||
if (c == EOF) {
|
||||
break;
|
||||
}
|
||||
} while (1);
|
||||
|
||||
|
||||
if (totals[WC_LENGTH] < counts[WC_LENGTH]) {
|
||||
totals[WC_LENGTH] = counts[WC_LENGTH];
|
||||
}
|
||||
totals[WC_LENGTH] -= counts[WC_LENGTH];
|
||||
|
||||
|
||||
bb_fclose_nonstdin(fp);
|
||||
|
||||
|
||||
OUTPUT:
|
||||
s = fmt_str + 1; /* Skip the leading space on 1st pass. */
|
||||
u = 0;
|
||||
@ -202,16 +202,16 @@ int wc_main(int argc, char **argv)
|
||||
}
|
||||
totals[u] += pcounts[u];
|
||||
} while (++u < 4);
|
||||
|
||||
|
||||
s += 8; /* Set the format to the empty string. */
|
||||
|
||||
|
||||
if (*argv != bb_msg_standard_input) {
|
||||
s -= 3; /* We have a name, so do %s conversion. */
|
||||
}
|
||||
bb_printf(s, *argv);
|
||||
|
||||
|
||||
} while (*++argv);
|
||||
|
||||
|
||||
/* If more than one file was processed, we want the totals. To save some
|
||||
* space, we set the pcounts ptr to the totals array. This has the side
|
||||
* effect of trashing the totals array after outputting it, but that's
|
||||
@ -222,6 +222,6 @@ int wc_main(int argc, char **argv)
|
||||
pcounts = totals;
|
||||
goto OUTPUT;
|
||||
}
|
||||
|
||||
|
||||
bb_fflush_stdout_and_exit(status);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*----------------------------------------------------------------------
|
||||
* Mini who is used to display user name, login time,
|
||||
* Mini who is used to display user name, login time,
|
||||
* idle time and host name.
|
||||
*
|
||||
* Author: Da Chen <dchen@ayrnetworks.com>
|
||||
@ -10,7 +10,7 @@
|
||||
* as published by the Free Software Foundation:
|
||||
* http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* Copyright (c) 2002 AYR Networks, Inc.
|
||||
* Copyright (c) 2002 AYR Networks, Inc.
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
@ -30,21 +30,21 @@ extern int who_main(int argc, char **argv)
|
||||
struct utmp *ut;
|
||||
struct stat st;
|
||||
int devlen, len;
|
||||
time_t now, idle;
|
||||
time_t now, idle;
|
||||
|
||||
if (argc > 1)
|
||||
if (argc > 1)
|
||||
bb_show_usage();
|
||||
|
||||
setutent();
|
||||
devlen = sizeof("/dev/") - 1;
|
||||
printf("USER TTY IDLE FROM HOST\n");
|
||||
printf("USER TTY IDLE FROM HOST\n");
|
||||
|
||||
while ((ut = getutent()) != NULL) {
|
||||
char name[40];
|
||||
|
||||
if (ut->ut_user[0] && ut->ut_type == USER_PROCESS) {
|
||||
if (ut->ut_user[0] && ut->ut_type == USER_PROCESS) {
|
||||
len = strlen(ut->ut_line);
|
||||
if (ut->ut_line[0] == '/') {
|
||||
if (ut->ut_line[0] == '/') {
|
||||
strncpy(name, ut->ut_line, len);
|
||||
name[len] = '\0';
|
||||
strcpy(ut->ut_line, ut->ut_line + devlen);
|
||||
@ -53,27 +53,27 @@ extern int who_main(int argc, char **argv)
|
||||
strncpy(name+devlen, ut->ut_line, len);
|
||||
name[devlen+len] = '\0';
|
||||
}
|
||||
|
||||
|
||||
printf("%-10s %-8s ", ut->ut_user, ut->ut_line);
|
||||
|
||||
if (stat(name, &st) == 0) {
|
||||
now = time(NULL);
|
||||
now = time(NULL);
|
||||
idle = now - st.st_atime;
|
||||
|
||||
|
||||
if (idle < 60)
|
||||
printf("00:00m ");
|
||||
else if (idle < (60 * 60))
|
||||
else if (idle < (60 * 60))
|
||||
printf("00:%02dm ", (int)(idle / 60));
|
||||
else if (idle < (24 * 60 * 60))
|
||||
else if (idle < (24 * 60 * 60))
|
||||
printf("%02d:%02dm ", (int)(idle / (60 * 60)),
|
||||
(int)(idle % (60 * 60)) / 60);
|
||||
else if (idle < (24 * 60 * 60 * 365))
|
||||
else if (idle < (24 * 60 * 60 * 365))
|
||||
printf("%03ddays ", (int)(idle / (24 * 60 * 60)));
|
||||
else
|
||||
else
|
||||
printf("%02dyears ", (int) (idle / (24 * 60 * 60 * 365)));
|
||||
} else
|
||||
printf("%-8s ", "?");
|
||||
|
||||
} else
|
||||
printf("%-8s ", "?");
|
||||
|
||||
printf("%-12.12s %s\n", ctime(&(ut->ut_tv.tv_sec)) + 4, ut->ut_host);
|
||||
}
|
||||
}
|
||||
|
20
debian/changelog
vendored
20
debian/changelog
vendored
@ -100,7 +100,7 @@ busybox-cvs (0.60.99.cvs20030426-10) unstable; urgency=low
|
||||
busybox-cvs (0.60.99.cvs20030426-9) unstable; urgency=low
|
||||
|
||||
* modutils/depmod.c
|
||||
- fix base_dir for modules.dep
|
||||
- fix base_dir for modules.dep
|
||||
|
||||
-- Bastian Blank <waldi@debian.org> Sat, 07 Jun 2003 14:52:54 +0200
|
||||
|
||||
@ -236,13 +236,13 @@ busybox-cvs (0.60.99.cvs20030114-1) unstable; urgency=low
|
||||
busybox-cvs (0.60.99.cvs20030105-1) unstable; urgency=low
|
||||
|
||||
* Fix ip command build failure on ia64 (Closes: #172580
|
||||
* Dont build with BSD partition table support in fdisk, fails on m68k
|
||||
* Dont build with BSD partition table support in fdisk, fails on m68k
|
||||
|
||||
-- Glenn McGrath <bug1@home> Sun, 5 Jan 2003 12:48:05 +1100
|
||||
|
||||
busybox-cvs (0.60.99.cvs20030104-2) unstable; urgency=low
|
||||
|
||||
* floppy-retriever needs the cut command in the udeb
|
||||
* floppy-retriever needs the cut command in the udeb
|
||||
|
||||
-- Glenn McGrath <bug1@debian.org> Sat, 4 Jan 2003 17:13:05 +1100
|
||||
|
||||
@ -380,7 +380,7 @@ busybox (1:0.51-4) unstable; urgency=low
|
||||
busybox (1:0.51-3) unstable; urgency=low
|
||||
|
||||
* This is the "I am an idiot" release.
|
||||
* Make cp and mv work again (closes: #97290)
|
||||
* Make cp and mv work again (closes: #97290)
|
||||
* Fix the version number.
|
||||
|
||||
-- Erik Andersen <andersee@debian.org> Sat, 12 May 2001 17:35:58 -0600
|
||||
@ -401,13 +401,13 @@ busybox (0.51-1) unstable; urgency=low
|
||||
for complete details)
|
||||
* Force USE_SYSTEM_PWD_GRP=false, so busybox bypasses
|
||||
the glibc NSS libraries. (closes: #93362)
|
||||
* Fixed a bug in sed's address range handling (closes: #91758)
|
||||
* Fixed a bug in sed's address range handling (closes: #91758)
|
||||
* Removed irrelevant cruft from the bottem of debian/changelog
|
||||
|
||||
-- Erik Andersen <andersee@debian.org> Tue, 10 Apr 2001 14:07:29 -0600
|
||||
|
||||
busybox (0.50-2) unstable; urgency=low
|
||||
|
||||
|
||||
* Enabled freeramdisk and pivot_root in the udeb (closes: #91336)
|
||||
* Disabled lash (the busybox shell) in the udeb (closes: #91337)
|
||||
* fixed a bug in syslog, a problem with rebooting when booted as
|
||||
@ -417,7 +417,7 @@ busybox (0.50-2) unstable; urgency=low
|
||||
|
||||
|
||||
busybox (0.50-2) unstable; urgency=low
|
||||
|
||||
|
||||
* Enabled freeramdisk and pivot_root in the udeb (closes: #91336)
|
||||
* Disabled lash (the busybox shell) in the udeb (closes: #91337)
|
||||
* fixed a bug in syslog, a problem with rebooting when booted as
|
||||
@ -446,7 +446,7 @@ busybox (0.49-1) unstable; urgency=low
|
||||
busybox (0.48-1) unstable; urgency=low
|
||||
|
||||
* Lots more source updates and bug fixes. See changelog for details.
|
||||
* Now includes .udeb support for the debian-installer. The .udeb
|
||||
* Now includes .udeb support for the debian-installer. The .udeb
|
||||
probably needs some more work, but this should be a good start.
|
||||
|
||||
-- Erik Andersen <andersee@debian.org> Wed, 13 Dec 2000 08:36:07 -0700
|
||||
@ -465,11 +465,11 @@ busybox (0.46-1) unstable; urgency=low
|
||||
|
||||
busybox (0.45-1) unstable; urgency=low
|
||||
|
||||
* First attempt at packaging BusyBox as a .deb. This has been in
|
||||
* First attempt at packaging BusyBox as a .deb. This has been in
|
||||
in the Debian boot-floppies CVS tree forever. Hopefully, having it as a
|
||||
standalone app will make life easier for me, the debian-installer team, and
|
||||
everyone else as well...
|
||||
* I have created a busybox-static that can be used as a rescue shell when you
|
||||
* I have created a busybox-static that can be used as a rescue shell when you
|
||||
hose your system. Just invoke "busybox sh" to fir up the shell. This has
|
||||
every app provided by busybox staically linked in. There have been several
|
||||
times in the past that I would have loved to have this sitting on my system
|
||||
|
4
debian/control
vendored
4
debian/control
vendored
@ -64,7 +64,7 @@ Description: Tiny utilities for the debian-installer
|
||||
counterparts.
|
||||
.
|
||||
busybox-udeb is used by the debian-installer, so unless you are working
|
||||
on the debian-installer, this package is not for you. Installing this
|
||||
on the debian-installer, this package is not for you. Installing this
|
||||
on your Debian system is a very, very bad idea. You have been warned.
|
||||
|
||||
Package: busybox-cvs-floppy-udeb
|
||||
@ -83,6 +83,6 @@ Description: Tiny utilities for the debian-installer floppy images
|
||||
counterparts.
|
||||
.
|
||||
busybox-udeb is used by the debian-installer, so unless you are working
|
||||
on the debian-installer, this package is not for you. Installing this
|
||||
on the debian-installer, this package is not for you. Installing this
|
||||
on your Debian system is a very, very bad idea. You have been warned.
|
||||
|
||||
|
@ -33,7 +33,7 @@ config CONFIG_RUN_PARTS
|
||||
It is useful to set up a directory like cron.daily, where you need to
|
||||
execute all the scripts in that directory.
|
||||
|
||||
In this implementation of run-parts some features (such as report mode)
|
||||
In this implementation of run-parts some features (such as report mode)
|
||||
are not implemented.
|
||||
|
||||
Unless you know that run-parts is used in some of your scripts
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile for busybox
|
||||
#
|
||||
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -40,7 +40,7 @@ extern int mktemp_main(int argc, char **argv)
|
||||
}
|
||||
else if (opt != 'q') {
|
||||
bb_show_usage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (optind + 1 != argc) {
|
||||
|
@ -8,7 +8,7 @@
|
||||
* Based on the Debian run-parts program, version 1.15
|
||||
* Copyright (C) 1996 Jeff Noxon <jeff@router.patch.net>,
|
||||
* Copyright (C) 1996-1999 Guy Maor <maor@debian.org>
|
||||
*
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -31,21 +31,21 @@
|
||||
* attempt to write a program! :-) . */
|
||||
|
||||
/* This piece of code is heavily based on the original version of run-parts,
|
||||
* taken from debian-utils. I've only removed the long options and a the
|
||||
* taken from debian-utils. I've only removed the long options and a the
|
||||
* report mode. As the original run-parts support only long options, I've
|
||||
* broken compatibility because the BusyBox policy doesn't allow them.
|
||||
* The supported options are:
|
||||
* broken compatibility because the BusyBox policy doesn't allow them.
|
||||
* The supported options are:
|
||||
* -t test. Print the name of the files to be executed, without
|
||||
* execute them.
|
||||
* -a ARG argument. Pass ARG as an argument the program executed. It can
|
||||
* -a ARG argument. Pass ARG as an argument the program executed. It can
|
||||
* be repeated to pass multiple arguments.
|
||||
* -u MASK umask. Set the umask of the program executed to MASK. */
|
||||
|
||||
/* TODO
|
||||
/* TODO
|
||||
* done - convert calls to error in perror... and remove error()
|
||||
* done - convert malloc/realloc to their x... counterparts
|
||||
* done - convert malloc/realloc to their x... counterparts
|
||||
* done - remove catch_sigchld
|
||||
* done - use bb's concat_path_file()
|
||||
* done - use bb's concat_path_file()
|
||||
* done - declare run_parts_main() as extern and any other function as static?
|
||||
*/
|
||||
|
||||
@ -85,7 +85,7 @@ int run_parts_main(int argc, char **argv)
|
||||
/* Set the umask of the programs executed */
|
||||
case 'u':
|
||||
/* Check and set the umask of the program executed. As stated in the original
|
||||
* run-parts, the octal conversion in libc is not foolproof; it will take the
|
||||
* run-parts, the octal conversion in libc is not foolproof; it will take the
|
||||
* 8 and 9 digits under some circumstances. We'll just have to live with it.
|
||||
*/
|
||||
umask(bb_xgetlarg(optarg, 8, 0, 07777));
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Which implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
|
||||
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -53,7 +53,7 @@ extern int which_main(int argc, char **argv)
|
||||
count = 5;
|
||||
}
|
||||
|
||||
while (argc-- > 0) {
|
||||
while (argc-- > 0) {
|
||||
char *buf;
|
||||
char *path_n;
|
||||
char found = 0;
|
||||
|
@ -26,7 +26,7 @@ nodes in /dev, a few configuration files in /etc, and a Linux kernel.
|
||||
|
||||
BusyBox is maintained by <a href=
|
||||
"http://codepoet.org/andersen/erik/erik.html">Erik Andersen</a>, and
|
||||
licensed under the
|
||||
licensed under the
|
||||
<a href= "http://www.gnu.org/copyleft/gpl.html">GNU GENERAL PUBLIC LICENSE</a>
|
||||
|
||||
<p>
|
||||
@ -37,7 +37,7 @@ licensed under the
|
||||
Please visit our sponsors and thank them for their
|
||||
support! They have provided money for equipment and
|
||||
bandwidth. Next time you need help with a project,
|
||||
consider these fine companies!
|
||||
consider these fine companies!
|
||||
|
||||
|
||||
<ul>
|
||||
@ -57,7 +57,7 @@ consider these fine companies!
|
||||
</ul>
|
||||
|
||||
If you wish to be a sponsor, or if you have already contributed and would like
|
||||
your name added here, email <a href= "mailto:andersen@codepoet.org">Erik</a>.
|
||||
your name added here, email <a href= "mailto:andersen@codepoet.org">Erik</a>.
|
||||
|
||||
|
||||
<!--#include file="footer.html" -->
|
||||
|
@ -213,7 +213,7 @@ gnudict begin
|
||||
/PentE { stroke [] 0 setdash gsave
|
||||
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
|
||||
closepath stroke grestore } def
|
||||
/CircE { stroke [] 0 setdash
|
||||
/CircE { stroke [] 0 setdash
|
||||
hpt 0 360 arc stroke } def
|
||||
/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
|
||||
/DiaW { stroke [] 0 setdash vpt add M
|
||||
@ -233,7 +233,7 @@ gnudict begin
|
||||
/PentW { stroke [] 0 setdash gsave
|
||||
translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
|
||||
Opaque stroke grestore } def
|
||||
/CircW { stroke [] 0 setdash
|
||||
/CircW { stroke [] 0 setdash
|
||||
hpt 0 360 arc Opaque stroke } def
|
||||
/BoxFill { gsave Rec 1 setgray fill grestore } def
|
||||
end
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
The code and graphics on this website (and it's mirror sites, if any) are
|
||||
Copyright (c) 1999-2003 by Erik Andersen. All rights reserved.
|
||||
Copyright (c) 1999-2004 by Erik Andersen. All rights reserved.
|
||||
|
||||
Documents on this Web site including their graphical elements, design, and
|
||||
layout are protected by trade dress and other laws and MAY BE COPIED OR
|
||||
|
@ -18,8 +18,8 @@ CVS modules by running the following command (all on one line):
|
||||
cvs -z3 -d:pserver:anonymous@busybox.net:/var/cvs co -c </pre>
|
||||
|
||||
<p>
|
||||
If you wish, you can then check out a local copy of any of the
|
||||
available modules. The following is an example of how to grab
|
||||
If you wish, you can then check out a local copy of any of the
|
||||
available modules. The following is an example of how to grab
|
||||
a copy of busybox and tinylogin:
|
||||
<pre>
|
||||
cvs -z3 -d:pserver:anonymous@busybox.net:/var/cvs co -P busybox tinylogin</pre>
|
||||
@ -41,7 +41,7 @@ recommend you should use the same:
|
||||
diff -ubBwpN
|
||||
checkout -P</pre>
|
||||
|
||||
<p>
|
||||
<p>
|
||||
Once you've checked out a copy of the source tree, you can update your
|
||||
source tree at any time so it is in sync with the latest and greatest by
|
||||
running the command:
|
||||
|
@ -12,16 +12,16 @@ For the impatient, the following is probably about all you need to know:
|
||||
<dl>
|
||||
<dt><pre>cvs checkout -c</pre>
|
||||
<dd>Will list the modules available for checkout
|
||||
<dt><pre>cvs checkout < module name ></pre>
|
||||
<dt><pre>cvs checkout < module name ></pre>
|
||||
<dd>Will checkout the named module
|
||||
<dt><pre>cvs co < module name ></pre>
|
||||
<dt><pre>cvs co < module name ></pre>
|
||||
<dd>Same thing
|
||||
<dt><pre>cvs update</pre>
|
||||
|
||||
<dd>Updates your local archive so it is in sync with the repository
|
||||
-- your local updates are left intact. Tries to merge upstream updates
|
||||
<dd>Updates your local archive so it is in sync with the repository
|
||||
-- your local updates are left intact. Tries to merge upstream updates
|
||||
into your local updates. You will see the following tags when it is
|
||||
updating your local repository: C means conflict, U means update,
|
||||
updating your local repository: C means conflict, U means update,
|
||||
P means patched, and M means modified.
|
||||
<dt><pre>cvs up</pre>
|
||||
<dd>Same thing
|
||||
|
@ -4,8 +4,8 @@
|
||||
<h3>CVS Read/Write Access</h3>
|
||||
|
||||
If you want to be able to commit things to CVS, first contribute some
|
||||
stuff to show you are serious. Then, very nicely ask
|
||||
<a href="mailto:andersen@codepoet.org">Erik Andersen</a> if he will set you up with
|
||||
stuff to show you are serious. Then, very nicely ask
|
||||
<a href="mailto:andersen@codepoet.org">Erik Andersen</a> if he will set you up with
|
||||
an account. To access CVS, you will want to add the following to set up your environment:
|
||||
<pre>
|
||||
$ export CVS_RSH=/usr/bin/ssh
|
||||
@ -16,7 +16,7 @@ username...
|
||||
<p>
|
||||
|
||||
To obtain commit access, you will need to demonstrate you are
|
||||
serious by submitting a few good patches first. Then, you will need to
|
||||
serious by submitting a few good patches first. Then, you will need to
|
||||
select a user-name to use when committing stuff, and finally, you will
|
||||
need to send me the username you have selected, an ssh key, and the email
|
||||
address where you prefer email to be sent (I will forward any email sent
|
||||
@ -24,8 +24,8 @@ to you, but not store it).
|
||||
|
||||
<p>
|
||||
Note that if you would prefer to keep your communications with me
|
||||
private, you can encrypt your email using my
|
||||
<a href="http://www.codepoet.org/~andersen/erik/gpg.asc">public key</a>.
|
||||
private, you can encrypt your email using my
|
||||
<a href="http://www.codepoet.org/~andersen/erik/gpg.asc">public key</a>.
|
||||
|
||||
<!--#include file="footer.html" -->
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
|
||||
<h3>Documentation</h3>
|
||||
Current documentation for BusyBox includes:
|
||||
Current documentation for BusyBox includes:
|
||||
|
||||
<ul>
|
||||
<li><a href=
|
||||
|
@ -8,7 +8,7 @@ Source for the latest release can always be
|
||||
downloaded from <a href="downloads">http://www.busybox.net/downloads</a>.
|
||||
|
||||
<p>
|
||||
You can also obtain <a href= "downloads/snapshots/">Daily Snapshots</a> of
|
||||
You can also obtain <a href= "downloads/snapshots/">Daily Snapshots</a> of
|
||||
the latest stable, and the latest development CVS source trees.
|
||||
|
||||
<p>
|
||||
|
@ -11,7 +11,7 @@
|
||||
<font face="arial, helvetica, sans-serif" size="-1">
|
||||
<a HREF="/copyright.txt">Copyright © 1999-2003 Erik Andersen</a>
|
||||
<br>
|
||||
Mail all comments, insults, suggestions and bribes to
|
||||
Mail all comments, insults, suggestions and bribes to
|
||||
<br>
|
||||
Erik Andersen <A HREF="mailto:andersen@codepoet.org">andersen@codepoet.org</A><BR>
|
||||
</font>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user