Hello community,

here is the log from the commit of package gawk for openSUSE:Factory
checked in at Wed Sep 28 14:07:36 CEST 2011.



--------
--- gawk/gawk.changes   2011-08-10 06:03:06.000000000 +0200
+++ /mounts/work_src_done/STABLE/gawk/gawk.changes      2011-09-27 
13:33:31.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Sep 27 11:31:28 UTC 2011 - [email protected]
+
+- Revert sub/gsub behavior to that of gawk 3.x. Upstream commit
+  16de770359370224129f23df745178efe518c02c  
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


New:
----
  gawk-revert-gsub-gawk3.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gawk.spec ++++++
--- /var/tmp/diff_new_pack.wUKIgY/_old  2011-09-28 14:07:32.000000000 +0200
+++ /var/tmp/diff_new_pack.wUKIgY/_new  2011-09-28 14:07:32.000000000 +0200
@@ -29,7 +29,8 @@
 Release:        1
 Summary:        GNU awk
 Source:         gawk-%{version}.tar.bz2
-Patch:          gawk-3.1.8.diff
+Patch1:         gawk-3.1.8.diff
+Patch2:         gawk-revert-gsub-gawk3.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -50,7 +51,9 @@
 
 %prep
 %setup -q
-%patch
+%patch1
+%patch2 -p1
+
 rm -f regex.[ch]
 chmod -x COPYING
 # force rebuild with non-broken makeinfo

++++++ gawk-revert-gsub-gawk3.patch ++++++
commit 16de770359370224129f23df745178efe518c02c
Author: Arnold D. Robbins <[email protected]>
Date:   Thu Jul 28 22:12:48 2011 +0300

    Revert sub/gsub behavior to that of gawk 3.x.

diff --git a/builtin.c b/builtin.c
index 8685d29..4d87592 100644
--- a/builtin.c
+++ b/builtin.c
@@ -2546,13 +2546,30 @@ set_how_many:
                                        repllen--;
                                        scan++;
                                }
-                       } else {
+                       } else if (do_posix) {
                                /* \& --> &, \\ --> \ */
                                if (scan[1] == '&' || scan[1] == '\\') {
                                        repllen--;
                                        scan++;
                                } /* else
                                        leave alone, it goes into the output */
+                       } else {
+                               /* gawk default behavior since 1996 */
+                               if (strncmp(scan, "\\\\\\&", 4) == 0) {
+                                       /* \\\& --> \& */
+                                       repllen -= 2;
+                                       scan += 3;
+                               } else if (strncmp(scan, "\\\\&", 3) == 0) {
+                                       /* \\& --> \<string> */
+                                       ampersands++;
+                                       repllen--;
+                                       scan += 2;
+                               } else if (scan[1] == '&') {
+                                       /* \& --> & */
+                                       repllen--;
+                                       scan++;
+                               } /* else
+                                       leave alone, it goes into the output */
                        }
                }
        }
@@ -2630,11 +2647,30 @@ set_how_many:
                                                        scan++;
                                                } else  /* \q for any q --> q */
                                                        *bp++ = *++scan;
-                                       } else {
+                                       } else if (do_posix) {
                                                /* \& --> &, \\ --> \ */
                                                if (scan[1] == '&' || scan[1] 
== '\\')
                                                        scan++;
                                                *bp++ = *scan;
+                                       } else {
+                                               /* gawk default behavior since 
1996 */
+                                               if (strncmp(scan, "\\\\\\&", 4) 
== 0) {
+                                                       /* \\\& --> \& */
+                                                       *bp++ = '\\';
+                                                       *bp++ = '&';
+                                                       scan += 3;
+                                               } else if (strncmp(scan, 
"\\\\&", 3) == 0) {
+                                                       /* \\& --> \<string> */
+                                                       *bp++ = '\\';
+                                                       for (cp = matchstart; 
cp < matchend; cp++)
+                                                               *bp++ = *cp;
+                                                       scan += 2;
+                                               } else if (scan[1] == '&') {
+                                                       /* \& --> & */
+                                                       *bp++ = '&';
+                                                       scan++;
+                                               } else
+                                                       *bp++ = *scan;
                                        }
                                } else
                                        *bp++ = *scan;
diff --git a/test/Makefile.am b/test/Makefile.am
index 82e0834..9780e79 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1376,9 +1376,14 @@ profile3:
        @sed 1,2d < awkprof.out > _$@; rm awkprof.out
        @-$(CMP) $(srcdir)/[email protected] _$@ && rm -f _$@
 
+posix2008sub:
+       @echo $@
+       @$(AWK) --posix -f $(srcdir)/[email protected] > _$@ 2>&1
+       @-$(CMP) $(srcdir)/[email protected] _$@ && rm -f _$@
+
 next:
        @echo $@
-       @-AWK="$(AWKPROG)" $(srcdir)/[email protected] > _$@ 2>&1
+       @-AWK="$(AWKPROG)" $(srcdir)/[email protected]
        @-$(CMP) $(srcdir)/[email protected] _$@ && rm -f _$@
 
 exit:
diff --git a/test/backgsub.ok b/test/backgsub.ok
index 2d3f17f..e2e265f 100644
--- a/test/backgsub.ok
+++ b/test/backgsub.ok
@@ -1 +1 @@
-\x\y\z
+\\x\\y\\z

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to