package/busybox: add upstream sed patch, bump release number
authoracoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 25 Apr 2010 06:28:09 +0000 (06:28 +0000)
committeracoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 25 Apr 2010 06:28:09 +0000 (06:28 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21151 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/busybox/Makefile
package/busybox/patches/000-upstream-sed.patch [new file with mode: 0644]

index d13980c..bc2554b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
 PKG_VERSION:=1.16.1
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.busybox.net/downloads \
diff --git a/package/busybox/patches/000-upstream-sed.patch b/package/busybox/patches/000-upstream-sed.patch
new file mode 100644 (file)
index 0000000..56d2304
--- /dev/null
@@ -0,0 +1,47 @@
+diff -urpN busybox-1.16.1/editors/sed.c busybox-1.16.1-sed/editors/sed.c
+--- busybox-1.16.1/editors/sed.c       2010-03-28 13:43:35.000000000 -0400
++++ busybox-1.16.1-sed/editors/sed.c   2010-04-20 13:33:26.301975462 -0400
+@@ -936,7 +936,15 @@ static void process_files(void)
+               /* Skip blocks of commands we didn't match */
+               if (sed_cmd->cmd == '{') {
+                       if (sed_cmd->invert ? matched : !matched) {
+-                              while (sed_cmd->cmd != '}') {
++                              unsigned nest_cnt = 0;
++                              while (1) {
++                                      if (sed_cmd->cmd == '{')
++                                              nest_cnt++;
++                                      if (sed_cmd->cmd == '}') {
++                                              nest_cnt--;
++                                              if (nest_cnt == 0)
++                                                      break;
++                                      }
+                                       sed_cmd = sed_cmd->next;
+                                       if (!sed_cmd)
+                                               bb_error_msg_and_die("unterminated {");
+@@ -1031,7 +1039,7 @@ static void process_files(void)
+               case 'c':
+                       /* Only triggers on last line of a matching range. */
+                       if (!sed_cmd->in_match)
+-                              sed_puts(sed_cmd->string, NO_EOL_CHAR);
++                              sed_puts(sed_cmd->string, '\n');
+                       goto discard_line;
+               /* Read file, append contents to output */
+diff -urpN busybox-1.16.1/testsuite/sed.tests busybox-1.16.1-sed/testsuite/sed.tests
+--- busybox-1.16.1/testsuite/sed.tests 2010-03-19 22:58:07.000000000 -0400
++++ busybox-1.16.1-sed/testsuite/sed.tests     2010-04-20 13:33:26.301975462 -0400
+@@ -248,4 +248,14 @@ testing "sed beginning (^) matches only 
+       ">/usr</>lib<\n" "" \
+       "/usr/lib\n"
++testing "sed c" \
++      "sed 'crepl'" \
++      "repl\nrepl\n" "" \
++      "first\nsecond\n"
++
++testing "sed nested {}s" \
++      "sed '/asd/ { p; /s/ { s/s/c/ }; p; q }'" \
++      "qwe\nasd\nacd\nacd\n" "" \
++      "qwe\nasd\nzxc\n"
++
+ exit $FAILCOUNT