sed: fix 'q' command handling ("Nguyen Thai Ngoc Duy"
No binary (build failed)
—
(log yok)
| @@ -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); | |
| @@ -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)) | |
| @@ -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 | |
| @@ -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" "" "" "" | |
| @@ -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] | |