Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OP-TEE
busybox
提交
58cdca39
B
busybox
项目概览
OP-TEE
/
busybox
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
busybox
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
58cdca39
编写于
3月 28, 2010
作者:
D
Denys Vlasenko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
apply post-1.16.0 fixes, bump version to 1.16.1
Signed-off-by:
N
Denys Vlasenko
<
vda.linux@googlemail.com
>
上级
e52b7352
变更
27
展开全部
隐藏空白更改
内联
并排
Showing
27 changed file
with
408 addition
and
314 deletion
+408
-314
Makefile
Makefile
+1
-1
TODO_config_nommu
TODO_config_nommu
+29
-6
applets/applet_tables.c
applets/applet_tables.c
+4
-2
coreutils/fsync.c
coreutils/fsync.c
+3
-0
coreutils/md5_sha1_sum.c
coreutils/md5_sha1_sum.c
+4
-2
coreutils/tail.c
coreutils/tail.c
+2
-1
coreutils/touch.c
coreutils/touch.c
+2
-2
coreutils/wc.c
coreutils/wc.c
+2
-0
editors/diff.c
editors/diff.c
+49
-35
include/usage.h
include/usage.h
+191
-183
miscutils/beep.c
miscutils/beep.c
+2
-2
miscutils/fbsplash.c
miscutils/fbsplash.c
+36
-38
miscutils/microcom.c
miscutils/microcom.c
+2
-2
networking/httpd.c
networking/httpd.c
+3
-3
networking/telnet.c
networking/telnet.c
+2
-2
networking/tftp.c
networking/tftp.c
+1
-1
networking/udhcp/dhcpd.c
networking/udhcp/dhcpd.c
+1
-1
networking/wget.c
networking/wget.c
+3
-0
scripts/defconfig
scripts/defconfig
+39
-17
shell/ash.c
shell/ash.c
+7
-6
shell/ash_test/ash-misc/nulltick1.right
shell/ash_test/ash-misc/nulltick1.right
+3
-0
shell/ash_test/ash-misc/nulltick1.tests
shell/ash_test/ash-misc/nulltick1.tests
+3
-0
shell/hush.c
shell/hush.c
+9
-3
sysklogd/syslogd.c
sysklogd/syslogd.c
+1
-1
testsuite/cpio.tests
testsuite/cpio.tests
+2
-3
util-linux/script.c
util-linux/script.c
+2
-2
util-linux/volume_id/linux_swap.c
util-linux/volume_id/linux_swap.c
+5
-1
未找到文件。
Makefile
浏览文件 @
58cdca39
VERSION
=
1
PATCHLEVEL
=
16
SUBLEVEL
=
0
SUBLEVEL
=
1
EXTRAVERSION
=
NAME
=
Unnamed
...
...
TODO_config_nommu
浏览文件 @
58cdca39
#
# Automatically generated make config: don't edit
# Busybox version: 1.1
5.0.svn
#
Fri Aug 21 00:13:18 2009
# Busybox version: 1.1
6.0
#
Wed Jan 27 21:01:26 2010
#
CONFIG_HAVE_DOT_CONFIG=y
...
...
@@ -14,6 +14,8 @@ CONFIG_HAVE_DOT_CONFIG=y
#
CONFIG_DESKTOP=y
CONFIG_EXTRA_COMPAT=y
CONFIG_INCLUDE_SUSv2=y
# CONFIG_USE_PORTABLE_CODE is not set
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
...
...
@@ -59,7 +61,6 @@ CONFIG_EXTRA_CFLAGS=""
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
CONFIG_INCLUDE_SUSv2=y
#
# Installation Options
...
...
@@ -120,6 +121,7 @@ CONFIG_DPKG_DEB=y
CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY=y
CONFIG_GUNZIP=y
CONFIG_GZIP=y
CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
CONFIG_LZOP=y
CONFIG_LZOP_COMPR_HIGH=y
CONFIG_RPM2CPIO=y
...
...
@@ -133,6 +135,7 @@ CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_UNAME_GNAME=y
CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
CONFIG_UNCOMPRESS=y
CONFIG_UNLZMA=y
CONFIG_FEATURE_LZMA_FAST=y
...
...
@@ -148,15 +151,19 @@ CONFIG_CATV=y
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
CONFIG_CHROOT=y
CONFIG_CKSUM=y
CONFIG_COMM=y
CONFIG_CP=y
CONFIG_FEATURE_CP_LONG_OPTIONS=y
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_DF=y
CONFIG_FEATURE_DF_FANCY=y
...
...
@@ -271,7 +278,7 @@ CONFIG_FEATURE_AUTOWIDTH=y
CONFIG_FEATURE_HUMAN_READABLE=y
#
# Common options for md5sum, sha1sum
# Common options for md5sum, sha1sum
, sha256sum, sha512sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
...
...
@@ -318,9 +325,8 @@ CONFIG_AWK=y
CONFIG_FEATURE_AWK_LIBM=y
CONFIG_CMP=y
CONFIG_DIFF=y
CONFIG_FEATURE_DIFF_
BINARY
=y
CONFIG_FEATURE_DIFF_
LONG_OPTIONS
=y
CONFIG_FEATURE_DIFF_DIR=y
CONFIG_FEATURE_DIFF_MINIMAL=y
CONFIG_ED=y
CONFIG_PATCH=y
CONFIG_SED=y
...
...
@@ -364,6 +370,7 @@ CONFIG_FEATURE_FIND_DELETE=y
CONFIG_FEATURE_FIND_PATH=y
CONFIG_FEATURE_FIND_REGEX=y
CONFIG_FEATURE_FIND_CONTEXT=y
CONFIG_FEATURE_FIND_LINKS=y
CONFIG_GREP=y
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
...
...
@@ -453,6 +460,7 @@ CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
# Options common to multiple modutils
#
# CONFIG_FEATURE_2_4_MODULES is not set
CONFIG_FEATURE_INSMOD_TRY_MMAP=y
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
...
...
@@ -488,12 +496,14 @@ CONFIG_FEATURE_FDISK_ADVANCED=y
CONFIG_FINDFS=y
CONFIG_FREERAMDISK=y
CONFIG_FSCK_MINIX=y
CONFIG_MKFS_EXT2=y
CONFIG_MKFS_MINIX=y
#
# Minix filesystem support
#
CONFIG_FEATURE_MINIX2=y
CONFIG_MKFS_REISER=y
CONFIG_MKFS_VFAT=y
CONFIG_GETOPT=y
CONFIG_FEATURE_GETOPT_LONG=y
...
...
@@ -506,6 +516,8 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
CONFIG_IPCRM=y
CONFIG_IPCS=y
CONFIG_LOSETUP=y
CONFIG_LSPCI=y
CONFIG_LSUSB=y
CONFIG_MDEV=y
CONFIG_FEATURE_MDEV_CONF=y
CONFIG_FEATURE_MDEV_RENAME=y
...
...
@@ -518,6 +530,7 @@ CONFIG_MORE=y
CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_VOLUMEID=y
CONFIG_FEATURE_VOLUMEID_EXT=y
CONFIG_FEATURE_VOLUMEID_BTRFS=y
CONFIG_FEATURE_VOLUMEID_REISERFS=y
CONFIG_FEATURE_VOLUMEID_FAT=y
CONFIG_FEATURE_VOLUMEID_HFS=y
...
...
@@ -595,6 +608,7 @@ CONFIG_DEVMEM=y
CONFIG_EJECT=y
CONFIG_FEATURE_EJECT_SCSI=y
CONFIG_FBSPLASH=y
CONFIG_FLASHCP=y
# CONFIG_FLASH_LOCK is not set
# CONFIG_FLASH_UNLOCK is not set
# CONFIG_FLASH_ERASEALL is not set
...
...
@@ -638,6 +652,7 @@ CONFIG_TIME=y
CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
CONFIG_VOLNAME=y
CONFIG_WALL=y
CONFIG_WATCHDOG=y
#
...
...
@@ -657,6 +672,7 @@ CONFIG_ETHER_WAKE=y
CONFIG_FAKEIDENTD=y
CONFIG_FTPD=y
CONFIG_FEATURE_FTP_WRITE=y
CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
...
...
@@ -722,6 +738,8 @@ CONFIG_NETSTAT=y
CONFIG_FEATURE_NETSTAT_WIDE=y
CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_NSLOOKUP=y
CONFIG_NTPD=y
CONFIG_FEATURE_NTPD_SERVER=y
CONFIG_PING=y
CONFIG_PING6=y
CONFIG_FEATURE_FANCY_PING=y
...
...
@@ -733,13 +751,16 @@ CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
CONFIG_TELNETD=y
CONFIG_FEATURE_TELNETD_STANDALONE=y
CONFIG_FEATURE_TELNETD_INETD_WAIT=y
CONFIG_TFTP=y
CONFIG_TFTPD=y
CONFIG_FEATURE_TFTP_GET=y
CONFIG_FEATURE_TFTP_PUT=y
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
CONFIG_TFTP_DEBUG=y
CONFIG_TRACEROUTE=y
CONFIG_TRACEROUTE6=y
CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE=y
CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y
...
...
@@ -813,6 +834,7 @@ CONFIG_FEATURE_TOP_SMP_CPU=y
CONFIG_FEATURE_TOP_DECIMALS=y
CONFIG_FEATURE_TOP_SMP_PROCESS=y
CONFIG_FEATURE_TOPMEM=y
CONFIG_FEATURE_SHOW_THREADS=y
CONFIG_UPTIME=y
CONFIG_WATCH=y
...
...
@@ -881,6 +903,7 @@ CONFIG_HUSH_CASE=y
CONFIG_HUSH_FUNCTIONS=y
CONFIG_HUSH_LOCAL=y
CONFIG_HUSH_EXPORT_N=y
CONFIG_HUSH_RANDOM_SUPPORT=y
CONFIG_LASH=y
CONFIG_MSH=y
CONFIG_SH_MATH_SUPPORT=y
...
...
applets/applet_tables.c
浏览文件 @
58cdca39
...
...
@@ -79,6 +79,7 @@ int main(int argc, char **argv)
}
printf
(
"
\n
"
);
printf
(
"#ifndef SKIP_definitions
\n
"
);
printf
(
"const char applet_names[] ALIGN1 =
\"\"\n
"
);
for
(
i
=
0
;
i
<
NUM_APPLETS
;
i
++
)
{
printf
(
"
\"
%s
\"
\"\\
0
\"\n
"
,
applets
[
i
].
name
);
...
...
@@ -120,9 +121,10 @@ int main(int argc, char **argv)
printf
(
"0x%02x,
\n
"
,
v
);
i
++
;
}
printf
(
"};
\n
\n
"
);
printf
(
"};
\n
"
);
#endif
printf
(
"#endif /* SKIP_definitions */
\n
"
);
printf
(
"
\n
"
);
printf
(
"#define MAX_APPLET_NAME_LEN %u
\n
"
,
MAX_APPLET_NAME_LEN
);
return
0
;
...
...
coreutils/fsync.c
浏览文件 @
58cdca39
...
...
@@ -7,6 +7,9 @@
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
*/
#include "libbb.h"
#ifndef O_NOATIME
# define O_NOATIME 0
#endif
/* This is a NOFORK applet. Be very careful! */
...
...
coreutils/md5_sha1_sum.c
浏览文件 @
58cdca39
...
...
@@ -101,8 +101,10 @@ int md5_sha1_sum_main(int argc UNUSED_PARAM, char **argv)
unsigned
flags
;
/*hash_algo_t hash_algo = applet_name[3];*/
if
(
ENABLE_FEATURE_MD5_SHA1_SUM_CHECK
)
flags
=
getopt32
(
argv
,
"scw"
);
if
(
ENABLE_FEATURE_MD5_SHA1_SUM_CHECK
)
{
/* -b "binary", -t "text" are ignored (shaNNNsum compat) */
flags
=
getopt32
(
argv
,
"scwbt"
);
}
else
optind
=
1
;
argv
+=
optind
;
//argc -= optind;
...
...
coreutils/tail.c
浏览文件 @
58cdca39
...
...
@@ -241,7 +241,8 @@ int tail_main(int argc, char **argv)
}
while
(
nwrite
);
}
}
xwrite
(
STDOUT_FILENO
,
buf
+
nread
-
nwrite
,
nwrite
);
if
(
nwrite
>
0
)
xwrite
(
STDOUT_FILENO
,
buf
+
nread
-
nwrite
,
nwrite
);
}
else
if
(
count
)
{
if
(
COUNT_BYTES
)
{
taillen
+=
nread
;
...
...
coreutils/touch.c
浏览文件 @
58cdca39
...
...
@@ -104,7 +104,7 @@ int touch_main(int argc UNUSED_PARAM, char **argv)
}
do
{
if
(
utimes
(
*
argv
,
reference_file
?
timebuf
:
NULL
)
!=
0
)
{
if
(
utimes
(
*
argv
,
(
reference_file
||
date_str
)
?
timebuf
:
NULL
)
!=
0
)
{
if
(
errno
==
ENOENT
)
{
/* no such file */
if
(
opts
)
{
/* creation is disabled, so ignore */
continue
;
...
...
@@ -113,7 +113,7 @@ int touch_main(int argc UNUSED_PARAM, char **argv)
fd
=
open
(
*
argv
,
O_RDWR
|
O_CREAT
,
0666
);
if
(
fd
>=
0
)
{
xclose
(
fd
);
if
(
reference_file
)
if
(
reference_file
||
date_str
)
utimes
(
*
argv
,
timebuf
);
continue
;
}
...
...
coreutils/wc.c
浏览文件 @
58cdca39
...
...
@@ -88,6 +88,8 @@ int wc_main(int argc UNUSED_PARAM, char **argv)
if
(
!
argv
[
0
])
{
*--
argv
=
(
char
*
)
bb_msg_standard_input
;
fname_fmt
=
"
\n
"
;
}
if
(
!
argv
[
1
])
{
/* zero or one filename? */
if
(
!
((
print_type
-
1
)
&
print_type
))
/* exactly one option? */
start_fmt
=
"%"
COUNT_FMT
;
}
...
...
editors/diff.c
浏览文件 @
58cdca39
...
...
@@ -227,10 +227,12 @@ struct cand {
static
int
search
(
const
int
*
c
,
int
k
,
int
y
,
const
struct
cand
*
list
)
{
int
i
,
j
;
if
(
list
[
c
[
k
]].
y
<
y
)
/* quick look for typical case */
return
k
+
1
;
for
(
i
nt
i
=
0
,
j
=
k
+
1
;;)
{
for
(
i
=
0
,
j
=
k
+
1
;;)
{
const
int
l
=
(
i
+
j
)
>>
1
;
if
(
l
>
i
)
{
const
int
t
=
list
[
c
[
l
]].
y
;
...
...
@@ -265,11 +267,13 @@ static void stone(const int *a, int n, const int *b, int *J, int pref)
int
clistlen
=
100
;
int
k
=
0
;
struct
cand
*
clist
=
xzalloc
(
clistlen
*
sizeof
(
clist
[
0
]));
struct
cand
cand
;
struct
cand
*
q
;
int
*
klist
=
xzalloc
((
n
+
2
)
*
sizeof
(
klist
[
0
]));
/*clist[0] = (struct cand){0}; - xzalloc did it */
/*klist[0] = 0; */
for
(
struct
cand
cand
=
{
1
}
;
cand
.
x
<=
n
;
cand
.
x
++
)
{
for
(
cand
.
x
=
1
;
cand
.
x
<=
n
;
cand
.
x
++
)
{
int
j
=
a
[
cand
.
x
],
oldl
=
0
;
unsigned
numtries
=
0
;
if
(
j
==
0
)
...
...
@@ -303,7 +307,7 @@ static void stone(const int *a, int n, const int *b, int *J, int pref)
}
while
((
cand
.
y
=
b
[
++
j
])
>
0
&&
numtries
<
bound
);
}
/* Unravel */
for
(
struct
cand
*
q
=
clist
+
klist
[
k
];
q
->
y
;
q
=
clist
+
q
->
pred
)
for
(
q
=
clist
+
klist
[
k
];
q
->
y
;
q
=
clist
+
q
->
pred
)
J
[
q
->
x
+
pref
]
=
q
->
y
+
pref
;
free
(
klist
);
free
(
clist
);
...
...
@@ -348,10 +352,11 @@ static void equiv(struct line *a, int n, struct line *b, int m, int *c)
static
void
unsort
(
const
struct
line
*
f
,
int
l
,
int
*
b
)
{
int
i
;
int
*
a
=
xmalloc
((
l
+
1
)
*
sizeof
(
a
[
0
]));
for
(
i
nt
i
=
1
;
i
<=
l
;
i
++
)
for
(
i
=
1
;
i
<=
l
;
i
++
)
a
[
f
[
i
].
serial
]
=
f
[
i
].
value
;
for
(
i
nt
i
=
1
;
i
<=
l
;
i
++
)
for
(
i
=
1
;
i
<=
l
;
i
++
)
b
[
i
]
=
a
[
i
];
free
(
a
);
}
...
...
@@ -370,12 +375,13 @@ static int line_compar(const void *a, const void *b)
static
void
fetch
(
FILE_and_pos_t
*
ft
,
const
off_t
*
ix
,
int
a
,
int
b
,
int
ch
)
{
for
(
int
i
=
a
;
i
<=
b
;
i
++
)
{
int
i
,
j
,
col
;
for
(
i
=
a
;
i
<=
b
;
i
++
)
{
seek_ft
(
ft
,
ix
[
i
-
1
]);
putchar
(
ch
);
if
(
option_mask32
&
FLAG
(
T
))
putchar
(
'\t'
);
for
(
int
j
=
0
,
col
=
0
;
j
<
ix
[
i
]
-
ix
[
i
-
1
];
j
++
)
{
for
(
j
=
0
,
col
=
0
;
j
<
ix
[
i
]
-
ix
[
i
-
1
];
j
++
)
{
int
c
=
fgetc
(
ft
->
ft_fp
);
if
(
c
==
EOF
)
{
printf
(
"
\n\\
No newline at end of file
\n
"
);
...
...
@@ -410,19 +416,20 @@ static NOINLINE int *create_J(FILE_and_pos_t ft[2], int nlen[2], off_t *ix[2])
{
int
*
J
,
slen
[
2
],
*
class
,
*
member
;
struct
line
*
nfile
[
2
],
*
sfile
[
2
];
int
pref
=
0
,
suff
=
0
;
int
pref
=
0
,
suff
=
0
,
i
,
j
,
delta
;
/* Lines of both files are hashed, and in the process
* their offsets are stored in the array ix[fileno]
* where fileno == 0 points to the old file, and
* fileno == 1 points to the new one.
*/
for
(
i
nt
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
unsigned
hash
;
token_t
tok
;
size_t
sz
=
100
;
nfile
[
i
]
=
xmalloc
((
sz
+
3
)
*
sizeof
(
nfile
[
i
][
0
]));
/* ft gets here without the correct position, cant use seek_ft */
ft
[
i
].
ft_pos
=
0
;
fseeko
(
ft
[
i
].
ft_fp
,
0
,
SEEK_SET
);
nlen
[
i
]
=
0
;
...
...
@@ -460,11 +467,11 @@ start:
nlen
[
i
]
--
;
/* Now we copy the line offsets into ix */
ix
[
i
]
=
xmalloc
((
nlen
[
i
]
+
2
)
*
sizeof
(
ix
[
i
][
0
]));
for
(
int
j
=
0
;
j
<
nlen
[
i
]
+
1
;
j
++
)
for
(
j
=
0
;
j
<
nlen
[
i
]
+
1
;
j
++
)
ix
[
i
][
j
]
=
nfile
[
i
][
j
].
offset
;
}
/* leng
ht
of prefix and suffix is calculated */
/* leng
th
of prefix and suffix is calculated */
for
(;
pref
<
nlen
[
0
]
&&
pref
<
nlen
[
1
]
&&
nfile
[
0
][
pref
+
1
].
value
==
nfile
[
1
][
pref
+
1
].
value
;
pref
++
);
...
...
@@ -475,10 +482,10 @@ start:
* the result being sorted and stored in sfile[fileno],
* and their sizes are stored in slen[fileno]
*/
for
(
int
j
=
0
;
j
<
2
;
j
++
)
{
for
(
j
=
0
;
j
<
2
;
j
++
)
{
sfile
[
j
]
=
nfile
[
j
]
+
pref
;
slen
[
j
]
=
nlen
[
j
]
-
pref
-
suff
;
for
(
i
nt
i
=
0
;
i
<=
slen
[
j
];
i
++
)
for
(
i
=
0
;
i
<=
slen
[
j
];
i
++
)
sfile
[
j
][
i
].
serial
=
i
;
qsort
(
sfile
[
j
]
+
1
,
slen
[
j
],
sizeof
(
*
sfile
[
j
]),
line_compar
);
}
...
...
@@ -494,7 +501,7 @@ start:
free(nfile[1]);
class = xmalloc((slen[0] + 1) * sizeof(class[0]));
for (i
nt i
= 1; i <= slen[0]; i++) /* Unsorting */
for (i = 1; i <= slen[0]; i++) /* Unsorting */
class[sfile[0][i].serial] = sfile[0][i].value;
free(nfile[0]);
#else
...
...
@@ -512,7 +519,7 @@ start:
* are initialized with 0 (no matches), so that function stone can
* then assign them their right values
*/
for
(
i
nt
i
=
0
,
delta
=
nlen
[
1
]
-
nlen
[
0
];
i
<=
nlen
[
0
];
i
++
)
for
(
i
=
0
,
delta
=
nlen
[
1
]
-
nlen
[
0
];
i
<=
nlen
[
0
];
i
++
)
J
[
i
]
=
i
<=
pref
?
i
:
i
>
(
nlen
[
0
]
-
suff
)
?
(
i
+
delta
)
:
0
;
/* Here the magic is performed */
...
...
@@ -526,14 +533,14 @@ start:
* which, due to limitations intrinsic to any hashing algorithm,
* are different but ended up confounded as the same
*/
for
(
i
nt
i
=
1
;
i
<=
nlen
[
0
];
i
++
)
{
for
(
i
=
1
;
i
<=
nlen
[
0
];
i
++
)
{
if
(
!
J
[
i
])
continue
;
seek_ft
(
&
ft
[
0
],
ix
[
0
][
i
-
1
]);
seek_ft
(
&
ft
[
1
],
ix
[
1
][
J
[
i
]
-
1
]);
for
(
int
j
=
J
[
i
];
i
<=
nlen
[
0
]
&&
J
[
i
]
==
j
;
i
++
,
j
++
)
{
for
(
j
=
J
[
i
];
i
<=
nlen
[
0
]
&&
J
[
i
]
==
j
;
i
++
,
j
++
)
{
token_t
tok0
=
0
,
tok1
=
0
;
do
{
tok0
=
read_token
(
&
ft
[
0
],
tok0
);
...
...
@@ -555,13 +562,18 @@ static bool diff(FILE* fp[2], char *file[2])
{
int
nlen
[
2
];
off_t
*
ix
[
2
];
FILE_and_pos_t
ft
[
2
]
=
{
{
fp
[
0
]
},
{
fp
[
1
]
}
};
int
*
J
=
create_J
(
ft
,
nlen
,
ix
);
bool
anychange
=
false
;
FILE_and_pos_t
ft
[
2
];
typedef
struct
{
int
a
,
b
;
}
vec_t
[
2
];
vec_t
*
vec
=
NULL
;
int
i
=
1
,
idx
=
-
1
;
int
i
=
1
,
j
,
k
,
idx
=
-
1
;
bool
anychange
=
false
;
int
*
J
;
ft
[
0
].
ft_fp
=
fp
[
0
];
ft
[
1
].
ft_fp
=
fp
[
1
];
/* note that ft[i].ft_pos is unintitalized, create_J()
* must not assume otherwise */
J
=
create_J
(
ft
,
nlen
,
ix
);
do
{
bool
nonempty
=
false
;
...
...
@@ -596,8 +608,8 @@ static bool diff(FILE* fp[2], char *file[2])
break
;
}
for
(
int
j
=
0
;
j
<
2
;
j
++
)
for
(
int
k
=
v
[
j
].
a
;
k
<
v
[
j
].
b
;
k
++
)
for
(
j
=
0
;
j
<
2
;
j
++
)
for
(
k
=
v
[
j
].
a
;
k
<
v
[
j
].
b
;
k
++
)
nonempty
|=
(
ix
[
j
][
k
+
1
]
-
ix
[
j
][
k
]
!=
1
);
vec
=
xrealloc_vector
(
vec
,
6
,
++
idx
);
...
...
@@ -612,6 +624,7 @@ static bool diff(FILE* fp[2], char *file[2])
if
(
idx
<
0
||
((
option_mask32
&
FLAG
(
B
))
&&
!
nonempty
))
goto
cont
;
if
(
!
(
option_mask32
&
FLAG
(
q
)))
{
int
lowa
;
vec_t
span
,
*
cvp
=
vec
;
if
(
!
anychange
)
{
...
...
@@ -621,7 +634,7 @@ static bool diff(FILE* fp[2], char *file[2])
}
printf
(
"@@"
);
for
(
int
j
=
0
;
j
<
2
;
j
++
)
{
for
(
j
=
0
;
j
<
2
;
j
++
)
{
int
a
=
span
[
j
].
a
=
MAX
(
1
,
(
*
cvp
)[
j
].
a
-
opt_U_context
);
int
b
=
span
[
j
].
b
=
MIN
(
nlen
[
j
],
vec
[
idx
][
j
].
b
+
opt_U_context
);
...
...
@@ -635,12 +648,12 @@ static bool diff(FILE* fp[2], char *file[2])
* Output changes in "unified" diff format--the old and new lines
* are printed together.
*/
for
(
int
lowa
=
span
[
0
].
a
;
;
lowa
=
(
*
cvp
++
)[
0
].
b
+
1
)
{
for
(
lowa
=
span
[
0
].
a
;
;
lowa
=
(
*
cvp
++
)[
0
].
b
+
1
)
{
bool
end
=
cvp
>
&
vec
[
idx
];
fetch
(
&
ft
[
0
],
ix
[
0
],
lowa
,
end
?
span
[
0
].
b
:
(
*
cvp
)[
0
].
a
-
1
,
' '
);
if
(
end
)
break
;
for
(
int
j
=
0
;
j
<
2
;
j
++
)
for
(
j
=
0
;
j
<
2
;
j
++
)
fetch
(
&
ft
[
j
],
ix
[
j
],
(
*
cvp
)[
j
].
a
,
(
*
cvp
)[
j
].
b
,
j
?
'+'
:
'-'
);
}
}
...
...
@@ -660,9 +673,9 @@ static int diffreg(char *file[2])
{
FILE
*
fp
[
2
]
=
{
stdin
,
stdin
};
bool
binary
=
false
,
differ
=
false
;
int
status
=
STATUS_SAME
;
int
status
=
STATUS_SAME
,
i
;
for
(
i
nt
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
int
fd
=
open_or_warn_stdin
(
file
[
i
]);
if
(
fd
==
-
1
)
goto
out
;
...
...
@@ -688,7 +701,7 @@ static int diffreg(char *file[2])
const
size_t
sz
=
COMMON_BUFSIZE
/
2
;
char
*
const
buf0
=
bb_common_bufsiz1
;
char
*
const
buf1
=
buf0
+
sz
;
int
i
,
j
;
int
j
,
k
;
i
=
fread
(
buf0
,
1
,
sz
,
fp
[
0
]);
j
=
fread
(
buf1
,
1
,
sz
,
fp
[
1
]);
if
(
i
!=
j
)
{
...
...
@@ -697,7 +710,7 @@ static int diffreg(char *file[2])
}
if
(
i
==
0
)
break
;
for
(
int
k
=
0
;
k
<
i
;
k
++
)
{
for
(
k
=
0
;
k
<
i
;
k
++
)
{
if
(
!
buf0
[
k
]
||
!
buf1
[
k
])
binary
=
true
;
if
(
buf0
[
k
]
!=
buf1
[
k
])
...
...
@@ -771,9 +784,10 @@ static int FAST_FUNC skip_dir(const char *filename,
static
void
diffdir
(
char
*
p
[
2
],
const
char
*
s_start
)
{
struct
dlist
list
[
2
];
int
i
;
memset
(
&
list
,
0
,
sizeof
(
list
));
for
(
i
nt
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
/*list[i].s = list[i].e = 0; - memset did it */
/*list[i].dl = NULL; */
...
...
@@ -815,7 +829,7 @@ static void diffdir(char *p[2], const char *s_start)
else
{
char
*
fullpath
[
2
],
*
path
[
2
];
/* if -N */
for
(
i
nt
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
if
(
pos
==
0
||
i
==
k
)
{
path
[
i
]
=
fullpath
[
i
]
=
concat_path_file
(
p
[
i
],
dp
[
i
]);
stat
(
fullpath
[
i
],
&
stb
[
i
]);
...
...
@@ -883,7 +897,7 @@ static const char diff_longopts[] ALIGN1 =
int
diff_main
(
int
argc
,
char
**
argv
)
MAIN_EXTERNALLY_VISIBLE
;
int
diff_main
(
int
argc
UNUSED_PARAM
,
char
**
argv
)
{
int
gotstdin
=
0
;
int
gotstdin
=
0
,
i
;
char
*
file
[
2
],
*
s_start
=
NULL
;
llist_t
*
L_arg
=
NULL
;
...
...
@@ -900,7 +914,7 @@ int diff_main(int argc UNUSED_PARAM, char **argv)
while
(
L_arg
)
label
[
!!
label
[
0
]]
=
llist_pop
(
&
L_arg
);
xfunc_error_retval
=
2
;
for
(
i
nt
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
file
[
i
]
=
argv
[
i
];
/* Compat: "diff file name_which_doesnt_exist" exits with 2 */
if
(
LONE_DASH
(
file
[
i
]))
{
...
...
include/usage.h
浏览文件 @
58cdca39
此差异已折叠。
点击以展开。
miscutils/beep.c
浏览文件 @
58cdca39
...
...
@@ -79,11 +79,11 @@ int beep_main(int argc, char **argv)
}
while
(
rep
)
{
//bb_info_msg("rep[%d] freq=%d, length=%d, delay=%d", rep, freq, length, delay);
xioctl
(
speaker
,
KIOCSOUND
,
(
void
*
)(
long
)
tickrate_div_freq
);
xioctl
(
speaker
,
KIOCSOUND
,
(
void
*
)(
uintptr_t
)
tickrate_div_freq
);
usleep
(
1000
*
length
);
ioctl
(
speaker
,
KIOCSOUND
,
(
void
*
)
0
);
if
(
--
rep
)
usleep
(
delay
);
usleep
(
1000
*
delay
);
}
}
...
...
miscutils/fbsplash.c
浏览文件 @
58cdca39
...
...
@@ -84,7 +84,7 @@ static void fb_open(const char *strfb_device)
// map the device in memory
G
.
addr
=
mmap
(
NULL
,
G
.
scr_var
.
xres
*
G
.
scr_var
.
yres
*
BYTES_PER_PIXEL
/*(G.scr_var.bits_per_pixel / 8)*/
,
*
BYTES_PER_PIXEL
/*(G.scr_var.bits_per_pixel / 8)*/
,
PROT_WRITE
,
MAP_SHARED
,
fbfd
,
0
);
if
(
G
.
addr
==
MAP_FAILED
)
bb_perror_msg_and_die
(
"mmap"
);
...
...
@@ -121,7 +121,7 @@ static void fb_drawrectangle(void)
// vertical lines
ptr1
=
(
DATA
*
)(
G
.
addr
+
(
G
.
nbar_posy
*
G
.
scr_var
.
xres
+
G
.
nbar_posx
)
*
BYTES_PER_PIXEL
);
ptr2
=
(
DATA
*
)(
G
.
addr
+
(
G
.
nbar_posy
*
G
.
scr_var
.
xres
+
G
.
nbar_posx
+
G
.
nbar_width
-
1
)
*
BYTES_PER_PIXEL
);
cnt
=
G
.
nbar_height
-
1
/* HUH?! G.nbar_posy + G.nbar_height - 1 - G.nbar_posy*/
;
cnt
=
G
.
nbar_height
-
1
;
do
{
*
ptr1
=
thispix
;
ptr1
+=
G
.
scr_var
.
xres
;
*
ptr2
=
thispix
;
ptr2
+=
G
.
scr_var
.
xres
;
...
...
@@ -216,70 +216,69 @@ static void fb_drawprogressbar(unsigned percent)
*/
static
void
fb_drawimage
(
void
)
{
char
*
head
,
*
ptr
;
FILE
*
theme_file
;
char
*
read_ptr
;
unsigned
char
*
pixline
;
unsigned
i
,
j
,
width
,
height
,
line_size
;
if
(
LONE_DASH
(
G
.
image_filename
))
if
(
LONE_DASH
(
G
.
image_filename
))
{
theme_file
=
stdin
;
else
{
}
else
{
int
fd
=
open_zipped
(
G
.
image_filename
);
if
(
fd
<
0
)
bb_simple_perror_msg_and_die
(
G
.
image_filename
);
theme_file
=
xfdopen_for_read
(
fd
);
}
head
=
xmalloc
(
256
);
/*
parse ppm header
* -
A ppm image’s magic number is the
two characters "P6".
/*
Parse ppm header:
* -
Magic:
two characters "P6".
* - Whitespace (blanks, TABs, CRs, LFs).
* - A width, formatted as ASCII characters in decimal.
* - Whitespace.
* - A height,
again in
ASCII decimal.
* - A height, ASCII decimal.
* - Whitespace.
* - The maximum color value (Maxval), again in ASCII decimal. Must be
* less than 65536.
* - The maximum color value, ASCII decimal, in 0..65535
* - Newline or other single whitespace character.
* (we support newline only)
* - A raster of Width * Height pixels in triplets of rgb
* in pure binary by 1
(or not implemented 2) bytes.
* in pure binary by 1
or 2 bytes. (we support only 1 byte)
*/
#define concat_buf bb_common_bufsiz1
read_ptr
=
concat_buf
;
while
(
1
)
{
if
(
fgets
(
head
,
256
,
theme_file
)
==
NULL
/* do not overrun the buffer */
||
strlen
(
bb_common_bufsiz1
)
>=
sizeof
(
bb_common_bufsiz1
)
-
256
)
int
w
,
h
,
max_color_val
;
int
rem
=
concat_buf
+
sizeof
(
concat_buf
)
-
read_ptr
;
if
(
rem
<
2
||
fgets
(
read_ptr
,
rem
,
theme_file
)
==
NULL
)
{
bb_error_msg_and_die
(
"bad PPM file '%s'"
,
G
.
image_filename
);
ptr
=
memchr
(
skip_whitespace
(
head
),
'#'
,
256
);
if
(
ptr
!=
NULL
)
*
ptr
=
0
;
/* ignore comments */
strcat
(
bb_common_bufsiz1
,
head
);
// width, height, max_color_val
if
(
sscanf
(
bb_common_bufsiz1
,
"P6 %u %u %u"
,
&
width
,
&
height
,
&
i
)
==
3
&&
i
<=
255
)
}
read_ptr
=
strchrnul
(
read_ptr
,
'#'
);
*
read_ptr
=
'\0'
;
/* ignore #comments */
if
(
sscanf
(
concat_buf
,
"P6 %u %u %u"
,
&
w
,
&
h
,
&
max_color_val
)
==
3
&&
max_color_val
<=
255
)
{
width
=
w
;
/* w is on stack, width may be in register */
height
=
h
;
break
;
/* If we do not find a signature throughout the whole file then
we will diagnose this via EOF on read in the head of the loop. */
}
}
if
(
ENABLE_FEATURE_CLEAN_UP
)
free
(
head
);
if
(
width
!=
G
.
scr_var
.
xres
||
height
!=
G
.
scr_var
.
yres
)
bb_error_msg_and_die
(
"PPM %dx%d does not match screen %dx%d"
,
width
,
height
,
G
.
scr_var
.
xres
,
G
.
scr_var
.
yres
);
line_size
=
width
*
3
;
pixline
=
xmalloc
(
line_size
);
if
(
width
>
G
.
scr_var
.
xres
)
width
=
G
.
scr_var
.
xres
;
if
(
height
>
G
.
scr_var
.
yres
)
height
=
G
.
scr_var
.
yres
;
pixline
=
xmalloc
(
line_size
);
for
(
j
=
0
;
j
<
height
;
j
++
)
{
unsigned
char
*
pixel
=
pixline
;
DATA
*
src
=
(
DATA
*
)(
G
.
addr
+
j
*
G
.
scr_fix
.
line_length
)
;
unsigned
char
*
pixel
;
DATA
*
src
;
if
(
fread
(
pixline
,
1
,
line_size
,
theme_file
)
!=
line_size
)
bb_error_msg_and_die
(
"bad PPM file '%s'"
,
G
.
image_filename
);
pixel
=
pixline
;
src
=
(
DATA
*
)(
G
.
addr
+
j
*
G
.
scr_fix
.
line_length
);
for
(
i
=
0
;
i
<
width
;
i
++
)
{
unsigned
thispix
;
thispix
=
(((
unsigned
)
pixel
[
0
]
<<
8
)
&
0xf800
)
...
...
@@ -289,8 +288,7 @@ static void fb_drawimage(void)
pixel
+=
3
;
}
}
if
(
ENABLE_FEATURE_CLEAN_UP
)
free
(
pixline
);
free
(
pixline
);
fclose
(
theme_file
);
}
...
...
@@ -301,7 +299,7 @@ static void fb_drawimage(void)
*/
static
void
init
(
const
char
*
cfg_filename
)
{
static
const
char
const
param_names
[]
ALIGN1
=
static
const
char
param_names
[]
ALIGN1
=
"BAR_WIDTH
\0
"
"BAR_HEIGHT
\0
"
"BAR_LEFT
\0
"
"BAR_TOP
\0
"
"BAR_R
\0
"
"BAR_G
\0
"
"BAR_B
\0
"
...
...
@@ -312,7 +310,7 @@ static void init(const char *cfg_filename)
char
*
token
[
2
];
parser_t
*
parser
=
config_open2
(
cfg_filename
,
xfopen_stdin
);
while
(
config_read
(
parser
,
token
,
2
,
2
,
"#="
,
(
PARSE_NORMAL
|
PARSE_MIN_DIE
)
&
~
(
PARSE_TRIM
|
PARSE_COLLAPSE
)))
{
(
PARSE_NORMAL
|
PARSE_MIN_DIE
)
&
~
(
PARSE_TRIM
|
PARSE_COLLAPSE
)))
{
unsigned
val
=
xatoi_u
(
token
[
1
]);
int
i
=
index_in_strings
(
param_names
,
token
[
0
]);
if
(
i
<
0
)
...
...
miscutils/microcom.c
浏览文件 @
58cdca39
...
...
@@ -119,7 +119,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv)
nfd
=
2
;
// Not safe_poll: we want to exit on signal
while
(
!
bb_got_signal
&&
poll
(
pfd
,
nfd
,
timeout
)
>
0
)
{
if
(
nfd
>
1
&&
(
pfd
[
1
].
revents
&
POLLIN
)
)
{
if
(
nfd
>
1
&&
pfd
[
1
].
revents
)
{
char
c
;
// read from stdin -> write to device
if
(
safe_read
(
STDIN_FILENO
,
&
c
,
1
)
<
1
)
{
...
...
@@ -143,7 +143,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv)
safe_poll
(
pfd
,
1
,
delay
);
skip_write:
;
}
if
(
pfd
[
0
].
revents
&
POLLIN
)
{
if
(
pfd
[
0
].
revents
)
{
#define iobuf bb_common_bufsiz1
ssize_t
len
;
// read from device -> write to stdout
...
...
networking/httpd.c
浏览文件 @
58cdca39
...
...
@@ -1167,7 +1167,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post
break
;
}
if
(
pfd
[
TO_CGI
].
revents
&
POLLOUT
)
{
if
(
pfd
[
TO_CGI
].
revents
)
{
/* hdr_cnt > 0 here due to the way pfd[TO_CGI].events set */
/* Have data from peer and can write to CGI */
count
=
safe_write
(
toCgi_wr
,
hdr_ptr
,
hdr_cnt
);
...
...
@@ -1184,7 +1184,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post
}
}
if
(
pfd
[
0
].
revents
&
POLLIN
)
{
if
(
pfd
[
0
].
revents
)
{
/* post_len > 0 && hdr_cnt == 0 here */
/* We expect data, prev data portion is eaten by CGI
* and there *is* data to read from the peer
...
...
@@ -1202,7 +1202,7 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post
}
}
if
(
pfd
[
FROM_CGI
].
revents
&
POLLIN
)
{
if
(
pfd
[
FROM_CGI
].
revents
)
{
/* There is something to read from CGI */
char
*
rbuf
=
iobuf
;
...
...
networking/telnet.c
浏览文件 @
58cdca39
...
...
@@ -618,7 +618,7 @@ int telnet_main(int argc UNUSED_PARAM, char **argv)
default:
#ifdef USE_POLL
if
(
ufds
[
0
].
revents
&
POLLIN
)
if
(
ufds
[
0
].
revents
)
#else
if
(
FD_ISSET
(
STDIN_FILENO
,
&
rfds
))
#endif
...
...
@@ -631,7 +631,7 @@ int telnet_main(int argc UNUSED_PARAM, char **argv)
}
#ifdef USE_POLL
if
(
ufds
[
1
].
revents
&
POLLIN
)
if
(
ufds
[
1
].
revents
)
#else
if
(
FD_ISSET
(
netfd
,
&
rfds
))
#endif
...
...
networking/tftp.c
浏览文件 @
58cdca39
...
...
@@ -308,7 +308,7 @@ static int tftp_protocol(
if
(
!
ENABLE_TFTP
||
our_lsa
)
{
/* tftpd */
/* Open file (must be after changing user) */
local_fd
=
open
(
local_file
,
open_mode
);
local_fd
=
open
(
local_file
,
open_mode
,
0666
);
if
(
local_fd
<
0
)
{
error_pkt_reason
=
ERR_NOFILE
;
strcpy
((
char
*
)
error_pkt_str
,
"can't open file"
);
...
...
networking/udhcp/dhcpd.c
浏览文件 @
58cdca39
...
...
@@ -61,7 +61,7 @@ int udhcpd_main(int argc UNUSED_PARAM, char **argv)
logmode
|=
LOGMODE_SYSLOG
;
}
#if ENABLE_FEATURE_UDHCP_PORT
if
(
opt
&
4
)
{
/* -P */
if
(
opt
&
8
)
{
/* -P */
SERVER_PORT
=
xatou16
(
str_P
);
CLIENT_PORT
=
SERVER_PORT
+
1
;
}
...
...
networking/wget.c
浏览文件 @
58cdca39
...
...
@@ -546,6 +546,8 @@ int wget_main(int argc UNUSED_PARAM, char **argv)
"passive-ftp
\0
"
No_argument
"
\xff
"
"header
\0
"
Required_argument
"
\xfe
"
"post-data
\0
"
Required_argument
"
\xfd
"
/* Ignored (we don't do ssl) */
"no-check-certificate
\0
"
No_argument
"
\xfc
"
;
#endif
...
...
@@ -590,6 +592,7 @@ int wget_main(int argc UNUSED_PARAM, char **argv)
if
(
use_proxy
)
{
proxy
=
getenv
(
target
.
is_ftp
?
"ftp_proxy"
:
"http_proxy"
);
if
(
proxy
&&
proxy
[
0
])
{
server
.
user
=
NULL
;
parse_url
(
proxy
,
&
server
);
}
else
{
use_proxy
=
0
;
...
...
scripts/defconfig
浏览文件 @
58cdca39
#
# Automatically generated make config: don't edit
# Busybox version: 1.1
5.0.svn
#
Fri Aug 21 00:14:11 2009
# Busybox version: 1.1
6.1
#
Sun Mar 28 20:00:00 2010
#
CONFIG_HAVE_DOT_CONFIG=y
...
...
@@ -14,6 +14,8 @@ CONFIG_HAVE_DOT_CONFIG=y
#
# CONFIG_DESKTOP is not set
# CONFIG_EXTRA_COMPAT is not set
CONFIG_INCLUDE_SUSv2=y
# CONFIG_USE_PORTABLE_CODE is not set
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
...
...
@@ -22,7 +24,7 @@ CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_FEATURE_INSTALLER=y
CONFIG_LOCALE_SUPPORT=y
# CONFIG_FEATURE_ASSUME_UNICODE is not set
CONFIG_FEATURE_ASSUME_UNICODE=y
# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
CONFIG_LONG_OPTS=y
CONFIG_FEATURE_DEVPTS=y
...
...
@@ -59,7 +61,6 @@ CONFIG_EXTRA_CFLAGS=""
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
CONFIG_INCLUDE_SUSv2=y
#
# Installation Options
...
...
@@ -120,10 +121,11 @@ CONFIG_FEATURE_CPIO_P=y
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
CONFIG_GUNZIP=y
CONFIG_GZIP=y
CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
CONFIG_LZOP=y
# CONFIG_LZOP_COMPR_HIGH is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_RPM is not set
CONFIG_RPM2CPIO=y
CONFIG_RPM=y
CONFIG_TAR=y
CONFIG_FEATURE_TAR_CREATE=y
CONFIG_FEATURE_TAR_AUTODETECT=y
...
...
@@ -133,6 +135,7 @@ CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_UNAME_GNAME=y
CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
CONFIG_UNCOMPRESS=y
CONFIG_UNLZMA=y
CONFIG_FEATURE_LZMA_FAST=y
...
...
@@ -148,15 +151,19 @@ CONFIG_CATV=y
CONFIG_CHGRP=y
CONFIG_CHMOD=y
CONFIG_CHOWN=y
CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
CONFIG_CHROOT=y
CONFIG_CKSUM=y
CONFIG_COMM=y
CONFIG_CP=y
CONFIG_FEATURE_CP_LONG_OPTIONS=y
CONFIG_CUT=y
CONFIG_DATE=y
CONFIG_FEATURE_DATE_ISOFMT=y
CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_DF=y
CONFIG_FEATURE_DF_FANCY=y
...
...
@@ -271,7 +278,7 @@ CONFIG_FEATURE_AUTOWIDTH=y
CONFIG_FEATURE_HUMAN_READABLE=y
#
# Common options for md5sum, sha1sum
# Common options for md5sum, sha1sum
, sha256sum, sha512sum
#
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
...
...
@@ -318,9 +325,8 @@ CONFIG_AWK=y
CONFIG_FEATURE_AWK_LIBM=y
CONFIG_CMP=y
CONFIG_DIFF=y
CONFIG_FEATURE_DIFF_
BINARY
=y
CONFIG_FEATURE_DIFF_
LONG_OPTIONS
=y
CONFIG_FEATURE_DIFF_DIR=y
CONFIG_FEATURE_DIFF_MINIMAL=y
CONFIG_ED=y
CONFIG_PATCH=y
CONFIG_SED=y
...
...
@@ -364,6 +370,7 @@ CONFIG_FEATURE_FIND_DELETE=y
CONFIG_FEATURE_FIND_PATH=y
CONFIG_FEATURE_FIND_REGEX=y
# CONFIG_FEATURE_FIND_CONTEXT is not set
CONFIG_FEATURE_FIND_LINKS=y
CONFIG_GREP=y
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
...
...
@@ -453,6 +460,7 @@ CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
# Options common to multiple modutils
#
# CONFIG_FEATURE_2_4_MODULES is not set
# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
...
...
@@ -467,8 +475,8 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
#
# Linux System Utilities
#
# CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set
CONFIG_ACPID=y
CONFIG_FEATURE_ACPID_COMPAT=y
CONFIG_BLKID=y
CONFIG_DMESG=y
CONFIG_FEATURE_DMESG_PRETTY=y
...
...
@@ -488,12 +496,14 @@ CONFIG_FEATURE_FDISK_ADVANCED=y
CONFIG_FINDFS=y
CONFIG_FREERAMDISK=y
CONFIG_FSCK_MINIX=y
CONFIG_MKFS_EXT2=y
CONFIG_MKFS_MINIX=y
#
# Minix filesystem support
#
CONFIG_FEATURE_MINIX2=y
# CONFIG_MKFS_REISER is not set
CONFIG_MKFS_VFAT=y
CONFIG_GETOPT=y
CONFIG_FEATURE_GETOPT_LONG=y
...
...
@@ -506,6 +516,8 @@ CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
CONFIG_IPCRM=y
CONFIG_IPCS=y
CONFIG_LOSETUP=y
CONFIG_LSPCI=y
CONFIG_LSUSB=y
CONFIG_MDEV=y
CONFIG_FEATURE_MDEV_CONF=y
CONFIG_FEATURE_MDEV_RENAME=y
...
...
@@ -518,6 +530,7 @@ CONFIG_MORE=y
CONFIG_FEATURE_USE_TERMIOS=y
CONFIG_VOLUMEID=y
CONFIG_FEATURE_VOLUMEID_EXT=y
CONFIG_FEATURE_VOLUMEID_BTRFS=y
CONFIG_FEATURE_VOLUMEID_REISERFS=y
CONFIG_FEATURE_VOLUMEID_FAT=y
CONFIG_FEATURE_VOLUMEID_HFS=y
...
...
@@ -595,11 +608,12 @@ CONFIG_DEVMEM=y
CONFIG_EJECT=y
CONFIG_FEATURE_EJECT_SCSI=y
CONFIG_FBSPLASH=y
# CONFIG_FLASH_LOCK is not set
# CONFIG_FLASH_UNLOCK is not set
# CONFIG_FLASH_ERASEALL is not set
CONFIG_FLASHCP=y
CONFIG_FLASH_LOCK=y
CONFIG_FLASH_UNLOCK=y
CONFIG_FLASH_ERASEALL=y
CONFIG_IONICE=y
# CONFIG_INOTIFYD is not set
CONFIG_INOTIFYD=y
CONFIG_LAST=y
# CONFIG_FEATURE_LAST_SMALL is not set
CONFIG_FEATURE_LAST_FANCY=y
...
...
@@ -632,8 +646,8 @@ CONFIG_RUNLEVEL=y
CONFIG_RX=y
CONFIG_SETSID=y
CONFIG_STRINGS=y
# CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set
CONFIG_TASKSET=y
CONFIG_FEATURE_TASKSET_FANCY=y
CONFIG_TIME=y
CONFIG_TIMEOUT=y
CONFIG_TTYSIZE=y
...
...
@@ -658,6 +672,7 @@ CONFIG_ETHER_WAKE=y
CONFIG_FAKEIDENTD=y
CONFIG_FTPD=y
CONFIG_FEATURE_FTP_WRITE=y
CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y
CONFIG_FTPGET=y
CONFIG_FTPPUT=y
CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
...
...
@@ -723,6 +738,8 @@ CONFIG_NETSTAT=y
CONFIG_FEATURE_NETSTAT_WIDE=y
CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_NSLOOKUP=y
CONFIG_NTPD=y
CONFIG_FEATURE_NTPD_SERVER=y
CONFIG_PING=y
CONFIG_PING6=y
CONFIG_FEATURE_FANCY_PING=y
...
...
@@ -734,13 +751,16 @@ CONFIG_FEATURE_TELNET_TTYPE=y
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
CONFIG_TELNETD=y
CONFIG_FEATURE_TELNETD_STANDALONE=y
CONFIG_FEATURE_TELNETD_INETD_WAIT=y
CONFIG_TFTP=y
CONFIG_TFTPD=y
CONFIG_FEATURE_TFTP_GET=y
CONFIG_FEATURE_TFTP_PUT=y
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
# CONFIG_TFTP_DEBUG is not set
CONFIG_TRACEROUTE=y
CONFIG_TRACEROUTE6=y
CONFIG_FEATURE_TRACEROUTE_VERBOSE=y
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
...
...
@@ -814,6 +834,7 @@ CONFIG_FEATURE_TOP_SMP_CPU=y
CONFIG_FEATURE_TOP_DECIMALS=y
CONFIG_FEATURE_TOP_SMP_PROCESS=y
CONFIG_FEATURE_TOPMEM=y
CONFIG_FEATURE_SHOW_THREADS=y
CONFIG_UPTIME=y
CONFIG_WATCH=y
...
...
@@ -878,6 +899,7 @@ CONFIG_HUSH_CASE=y
CONFIG_HUSH_FUNCTIONS=y
CONFIG_HUSH_LOCAL=y
CONFIG_HUSH_EXPORT_N=y
CONFIG_HUSH_RANDOM_SUPPORT=y
# CONFIG_LASH is not set
CONFIG_MSH=y
CONFIG_SH_MATH_SUPPORT=y
...
...
shell/ash.c
浏览文件 @
58cdca39
...
...
@@ -43,8 +43,6 @@
#endif
#include "busybox.h"
/* for applet_names */
//TODO: pull in some .h and find out do we have SINGLE_APPLET_MAIN?
//#include "applet_tables.h" doesn't work
#include <paths.h>
#include <setjmp.h>
#include <fnmatch.h>
...
...
@@ -58,12 +56,15 @@
# define CLEAR_RANDOM_T(rnd) ((void)0)
#endif
#if defined SINGLE_APPLET_MAIN
#define SKIP_definitions 1
#include "applet_tables.h"
#undef SKIP_definitions
#if NUM_APPLETS == 1
/* STANDALONE does not make sense, and won't compile */
# undef CONFIG_FEATURE_SH_STANDALONE
# undef ENABLE_FEATURE_SH_STANDALONE
# undef IF_FEATURE_SH_STANDALONE
# undef IF_NOT_FEATURE_SH_STANDALONE
(...)
# undef IF_NOT_FEATURE_SH_STANDALONE
# define ENABLE_FEATURE_SH_STANDALONE 0
# define IF_FEATURE_SH_STANDALONE(...)
# define IF_NOT_FEATURE_SH_STANDALONE(...) __VA_ARGS__
...
...
@@ -4539,7 +4540,7 @@ forkchild(struct job *jp, union node *n, int mode)
if
(
mode
==
FORK_NOJOB
/* is it `xxx` ? */
&&
n
&&
n
->
type
==
NCMD
/* is it single cmd? */
/* && n->ncmd.args->type == NARG - always true? */
&&
strcmp
(
n
->
ncmd
.
args
->
narg
.
text
,
"trap"
)
==
0
&&
n
->
ncmd
.
args
&&
strcmp
(
n
->
ncmd
.
args
->
narg
.
text
,
"trap"
)
==
0
&&
n
->
ncmd
.
args
->
narg
.
next
==
NULL
/* "trap" with no arguments */
/* && n->ncmd.args->narg.backquote == NULL - do we need to check this? */
)
{
...
...
@@ -4627,7 +4628,7 @@ forkchild(struct job *jp, union node *n, int mode)
}
#if JOBS
if
(
n
&&
n
->
type
==
NCMD
&&
strcmp
(
n
->
ncmd
.
args
->
narg
.
text
,
"jobs"
)
==
0
&&
n
->
ncmd
.
args
&&
strcmp
(
n
->
ncmd
.
args
->
narg
.
text
,
"jobs"
)
==
0
)
{
TRACE
((
"Job hack
\n
"
));
/* "jobs": we do not want to clear job list for it,
...
...
shell/ash_test/ash-misc/nulltick1.right
0 → 100644
浏览文件 @
58cdca39
Test 1
Test 2
Done
shell/ash_test/ash-misc/nulltick1.tests
0 → 100755
浏览文件 @
58cdca39
echo Test ` ` 1
echo Test `</dev/null` 2
echo Done
shell/hush.c
浏览文件 @
58cdca39
...
...
@@ -125,14 +125,18 @@
# define USE_FOR_MMU(...)
#endif
#if defined SINGLE_APPLET_MAIN
#define SKIP_definitions 1
#include "applet_tables.h"
#undef SKIP_definitions
#if NUM_APPLETS == 1
/* STANDALONE does not make sense, and won't compile */
# undef CONFIG_FEATURE_SH_STANDALONE
# undef ENABLE_FEATURE_SH_STANDALONE
# undef IF_FEATURE_SH_STANDALONE
# undef IF_NOT_FEATURE_SH_STANDALONE
# define ENABLE_FEATURE_SH_STANDALONE 0
# define IF_FEATURE_SH_STANDALONE(...)
# define IF_NOT_FEATURE_SH_STANDALONE(...) __VA_ARGS__
# define ENABLE_FEATURE_SH_STANDALONE 0
#endif
#if !ENABLE_HUSH_INTERACTIVE
...
...
@@ -3568,7 +3572,9 @@ static void execvp_or_die(char **argv)
{
debug_printf_exec
(
"execing '%s'
\n
"
,
argv
[
0
]);
sigprocmask
(
SIG_SETMASK
,
&
G
.
inherited_set
,
NULL
);
execvp
(
argv
[
0
],
argv
);
/* if FEATURE_SH_STANDALONE, "exec <applet_name>" should work,
* therefore we should use BB_EXECVP, not execvp */
BB_EXECVP
(
argv
[
0
],
argv
);
bb_perror_msg
(
"can't execute '%s'"
,
argv
[
0
]);
_exit
(
127
);
/* bash compat */
}
...
...
sysklogd/syslogd.c
浏览文件 @
58cdca39
...
...
@@ -698,7 +698,7 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv)
if
(
!
(
opts
&
OPT_nofork
))
{
bb_daemonize_or_rexec
(
DAEMON_CHDIR_ROOT
,
argv
);
}
umask
(
0
);
//umask(0); - why??
write_pidfile
(
"/var/run/syslogd.pid"
);
do_syslogd
();
/* return EXIT_SUCCESS; */
...
...
testsuite/cpio.tests
浏览文件 @
58cdca39
...
...
@@ -7,7 +7,8 @@
# ls -ln shows date. Need to remove that, it's variable.
# sed: coalesce spaces
# cut: remove date
FILTER_LS
=
"sed 's/ */ /g' | cut -d' ' -f 1-5,9-"
# grep: remove "total NNN" lines
FILTER_LS
=
"sed 's/ */ /g' | cut -d' ' -f 1-5,9- | grep -v '^total '"
# newc cpio archive of directory cpio.testdir with empty x and y hardlinks
...
...
@@ -36,7 +37,6 @@ ls -ln cpio.testdir | $FILTER_LS" \
"
\
1 blocks
0
total 0
-rw-r--r-- 2
$user
$group
0 x
-rw-r--r-- 2
$user
$group
0 y
"
\
...
...
@@ -75,7 +75,6 @@ ls -ln cpio.testdir2/cpio.testdir | $FILTER_LS" \
"
\
2 blocks
0
total 8
-rw-r--r-- 2
$user
$group
0 empty
-rw-r--r-- 2
$user
$group
0 empty1
-rw-r--r-- 2
$user
$group
2 nonempty
...
...
util-linux/script.c
浏览文件 @
58cdca39
...
...
@@ -119,7 +119,7 @@ int script_main(int argc UNUSED_PARAM, char **argv)
* for example, try "script -c true" */
break
;
}
if
(
pfd
[
0
].
revents
&
POLLIN
)
{
if
(
pfd
[
0
].
revents
)
{
errno
=
0
;
count
=
safe_read
(
pty
,
buf
,
sizeof
(
buf
));
if
(
count
<=
0
&&
errno
!=
EAGAIN
)
{
...
...
@@ -143,7 +143,7 @@ int script_main(int argc UNUSED_PARAM, char **argv)
}
}
}
if
(
pfd
[
1
].
revents
&
POLLIN
)
{
if
(
pfd
[
1
].
revents
)
{
count
=
safe_read
(
STDIN_FILENO
,
buf
,
sizeof
(
buf
));
if
(
count
<=
0
)
{
/* err/eof from stdin: don't read stdin anymore */
...
...
util-linux/volume_id/linux_swap.c
浏览文件 @
58cdca39
...
...
@@ -52,7 +52,11 @@ int FAST_FUNC volume_id_probe_linux_swap(struct volume_id *id /*,uint64_t off*/)
goto
found
;
}
if
(
memcmp
(
buf
,
"SWAPSPACE2"
,
10
)
==
0
)
{
if
(
memcmp
(
buf
,
"SWAPSPACE2"
,
10
)
==
0
||
memcmp
(
buf
,
"S1SUSPEND"
,
9
)
==
0
||
memcmp
(
buf
,
"S2SUSPEND"
,
9
)
==
0
||
memcmp
(
buf
,
"ULSUSPEND"
,
9
)
==
0
)
{
sw
=
volume_id_get_buffer
(
id
,
off
,
sizeof
(
struct
swap_header_v1_2
));
if
(
sw
==
NULL
)
return
-
1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录