diff options
author | Denis Vlasenko | 2007-08-06 03:41:08 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-08-06 03:41:08 +0000 |
commit | 8274e06677ba55532a4e1488b659f0b1e743130e (patch) | |
tree | af0a5bec322c6f2dc3214ea6a57997455cc35876 | |
parent | e013475830b2399e31f5e17758dd6674b6b60058 (diff) | |
download | busybox-8274e06677ba55532a4e1488b659f0b1e743130e.zip busybox-8274e06677ba55532a4e1488b659f0b1e743130e.tar.gz |
sed: fix 'q' command handling ("Nguyen Thai Ngoc Duy" <pclouds@gmail.com>)
add testsuite entry for it. Fix applet order checker. Fix cmp yelling.
trylink: fix error file and map file generation
applets: fix applet order
-rw-r--r-- | editors/sed.c | 11 | ||||
-rw-r--r-- | include/applets.h | 2 | ||||
-rwxr-xr-x | scripts/trylink | 13 | ||||
-rwxr-xr-x | testsuite/all_sourcecode.tests | 2 | ||||
-rwxr-xr-x | testsuite/testing.sh | 2 |
5 files changed, 20 insertions, 10 deletions
diff --git a/editors/sed.c b/editors/sed.c index d0c2ca7..4647079 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -836,6 +836,14 @@ static void puts_maybe_newline(char *s, FILE *file, char *last_puts_char, char l #define sed_puts(s, n) (puts_maybe_newline(s, G.nonstdout, &last_puts_char, n)) +static int beg_match(sed_cmd_t *sed_cmd, const char *pattern_space) +{ + int retval = sed_cmd->beg_match && !regexec(sed_cmd->beg_match, pattern_space, 0, NULL, 0); + if (retval) + G.previous_regex_ptr = sed_cmd->beg_match; + return retval; +} + /* Process all the lines in all the files */ static void process_files(void) @@ -880,8 +888,7 @@ restart: /* Or did we match the start of a numerical range? */ || (sed_cmd->beg_line > 0 && (sed_cmd->beg_line == linenum)) /* Or does this line match our begin address regex? */ - || (sed_cmd->beg_match && - !regexec(sed_cmd->beg_match, pattern_space, 0, NULL, 0)) + || (beg_match(sed_cmd, pattern_space)) /* Or did we match last line of input? */ || (sed_cmd->beg_line == -1 && next_line == NULL); diff --git a/include/applets.h b/include/applets.h index 7eefa08..b5b9fc8 100644 --- a/include/applets.h +++ b/include/applets.h @@ -217,8 +217,8 @@ USE_LS(APPLET_NOEXEC(ls, ls, _BB_DIR_BIN, _BB_SUID_NEVER, ls)) USE_LSATTR(APPLET(lsattr, _BB_DIR_BIN, _BB_SUID_NEVER)) USE_LSMOD(APPLET(lsmod, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_UNLZMA(APPLET_ODDNAME(lzmacat, unlzma, _BB_DIR_USR_BIN, _BB_SUID_NEVER, lzmacat)) -USE_MATCHPATHCON(APPLET(matchpathcon, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) USE_MAKEDEVS(APPLET(makedevs, _BB_DIR_SBIN, _BB_SUID_NEVER)) +USE_MATCHPATHCON(APPLET(matchpathcon, _BB_DIR_USR_SBIN, _BB_SUID_NEVER)) USE_MD5SUM(APPLET_ODDNAME(md5sum, md5_sha1_sum, _BB_DIR_USR_BIN, _BB_SUID_NEVER, md5sum)) USE_MDEV(APPLET(mdev, _BB_DIR_SBIN, _BB_SUID_NEVER)) USE_MESG(APPLET(mesg, _BB_DIR_USR_BIN, _BB_SUID_NEVER)) diff --git a/scripts/trylink b/scripts/trylink index bfc67bf..b8bf8b1 100755 --- a/scripts/trylink +++ b/scripts/trylink @@ -25,8 +25,9 @@ try "-Wl,--start-group $l_list -Wl,--end-group" "$@" \ # Hack: we are not supposed to know executable name, # but this hack cuts down link time mv busybox_unstripped busybox_unstripped.tmp +mv busybox.map busybox.map.tmp -# Now try to remove each lib and build without. +# Now try to remove each lib and build without it. # Stop when no lib can be removed. ever_discarded=false while test "$BBOX_LIB_LIST"; do @@ -47,17 +48,19 @@ while test "$BBOX_LIB_LIST"; do done # All libs were needed, can't remove any $all_needed && break - # If there is no space, the list has just one lib. + # If there is no space char, the list has just one lib. # I'm not sure that in this case lib really is 100% needed. # Let's try linking without it anyway... thus commented out. - #echo "$BBOX_LIB_LIST" | grep -q ' ' || break + #{ echo "$BBOX_LIB_LIST" | grep -q ' '; } || break done mv busybox_unstripped.tmp busybox_unstripped +mv busybox.map.tmp busybox.map $ever_discarded && { - # Ok, make the binary + # Make the binary with final, minimal list of libs echo "Final link with: $BBOX_LIB_LIST" l_list=`echo "$BBOX_LIB_LIST" | sed -e 's/ / -l/g' -e 's/^/-l/'` - try "-Wl,--start-group $l_list -Wl,--end-group" "$@" + try "-Wl,--start-group $l_list -Wl,--end-group" "$@" && exit 1 } +rm busybox_ld.err exit 0 # Ensure "success" exit code diff --git a/testsuite/all_sourcecode.tests b/testsuite/all_sourcecode.tests index c115878..a537dce 100755 --- a/testsuite/all_sourcecode.tests +++ b/testsuite/all_sourcecode.tests @@ -19,7 +19,7 @@ # verify the applet order is correct in applets.h, otherwise # applets won't be called properly. # -sed -n -e '/^USE_[A-Z]*(APPLET(/{s:.*(::;s:,.*::;s:"::g;p}' \ +sed -n -e '/^USE_[A-Z]*(APPLET/{s:,.*::;s:.*(::;s:"::g;p}' \ $srcdir/../include/applets.h > applet.order.current LC_ALL=C sort applet.order.current > applet.order.correct testing "Applet order" "diff -u applet.order.current applet.order.correct" "" "" "" diff --git a/testsuite/testing.sh b/testsuite/testing.sh index 01fdfbe..a886a76 100755 --- a/testsuite/testing.sh +++ b/testsuite/testing.sh @@ -76,7 +76,7 @@ testing() echo -ne "$5" | eval "$2" > actual RETVAL=$? - cmp expected actual > /dev/null + cmp expected actual >/dev/null 2>/dev/null if [ $? -ne 0 ] then FAILCOUNT=$[$FAILCOUNT+1] |