[csw-devel] SF.net SVN: gar:[21567] csw/mgar/pkg/git/trunk
bdwalton at users.sourceforge.net
bdwalton at users.sourceforge.net
Sun Jul 28 19:30:45 CEST 2013
Revision: 21567
http://gar.svn.sourceforge.net/gar/?rev=21567&view=rev
Author: bdwalton
Date: 2013-07-28 17:30:43 +0000 (Sun, 28 Jul 2013)
Log Message:
-----------
git/trunk: update the tr workaround patch
Modified Paths:
--------------
csw/mgar/pkg/git/trunk/Makefile
Added Paths:
-----------
csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch
Removed Paths:
-------------
csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch
Modified: csw/mgar/pkg/git/trunk/Makefile
===================================================================
--- csw/mgar/pkg/git/trunk/Makefile 2013-07-28 15:35:53 UTC (rev 21566)
+++ csw/mgar/pkg/git/trunk/Makefile 2013-07-28 17:30:43 UTC (rev 21567)
@@ -117,7 +117,7 @@
# to the selection of available utf8 locales.
PATCHFILES_isa-sparcv8 += 0005-Force-en_US.UTF-8-for-a-git-svn-test.patch
PATCHFILES += 0006-Patch-out-a-few-usr-share-references.patch
-PATCHFILES += 0007-t0008-ignores-Work-around-broken-solaris-tr.patch
+PATCHFILES += 0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch
fdirs = $(bindir_install) $(mandir) $(libexecdir_install)
define _git_files
Added: csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch
===================================================================
--- csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch (rev 0)
+++ csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch 2013-07-28 17:30:43 UTC (rev 21567)
@@ -0,0 +1,90 @@
+From b1ceadb4298a86763b059ac5c9136f4a7e9bb6f2 Mon Sep 17 00:00:00 2001
+From: Ben Walton <bwalton at opencsw.org>
+Date: Sun, 28 Jul 2013 14:09:19 +0200
+Subject: [PATCH] Avoid difference in tr semantics between System V and BSD
+
+Solaris' tr (both /usr/bin/ and /usr/xpg4/bin) uses the System V
+semantics for tr whereby string1's length is truncated to the length
+of string2 if string2 is shorter. The BSD semantics, as used by GNU tr
+see string2 padded to the length of string1 using the final character
+in string2. POSIX explicitly doesn't specify the correct behavior
+here, making both equally valid.
+
+This difference means that Solaris' native tr implementations produce
+different results for tr ":\t\n" "\0" than GNU tr. This breaks a few
+tests in t0008-ignores.sh.
+
+Possible fixes for this are to make string2 be "\0\0\0" or "[\0*]".
+
+Instead, use perl to perform these transliterations which means we
+don't need to worry about the difference at all. Since we're replacing
+tr with perl, we also use perl to replace the sed invocations used to
+transform the files.
+
+Replace four identical transforms with a function named
+broken_c_unquote. Replace the other two identical transforms with a
+fuction named broken_c_unquote_verbose.
+
+Signed-off-by: Ben Walton <bdwalton at gmail.com>
+---
+ t/t0008-ignores.sh | 30 ++++++++++++++++++------------
+ 1 file changed, 18 insertions(+), 12 deletions(-)
+
+diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh
+index 9c1bde1..e455eb4 100755
+--- a/t/t0008-ignores.sh
++++ b/t/t0008-ignores.sh
+@@ -37,6 +37,14 @@ test_stderr () {
+ test_cmp "$HOME/expected-stderr" "$HOME/stderr"
+ }
+
++broken_c_unquote () {
++ perl -pe 's/^"//; s/\\//; s/"$//; tr/\n/\0/' "$@"
++}
++
++broken_c_unquote_verbose () {
++ perl -pe 's/ "/ /; s/\\//; s/"$//; tr/:\t\n/\0/' "$@"
++}
++
+ stderr_contains () {
+ regexp="$1"
+ if grep "$regexp" "$HOME/stderr"
+@@ -517,12 +525,11 @@ cat <<-EOF >expected-verbose
+ $global_excludes:2:!globaltwo b/globaltwo
+ EOF
+
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
+- tr "\n" "\0" >stdin0
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
+- tr "\n" "\0" >expected-default0
+-sed -e 's/ "/ /' -e 's/\\//' -e 's/"$//' expected-verbose | \
+- tr ":\t\n" "\0" >expected-verbose0
++broken_c_unquote stdin >stdin0
++
++broken_c_unquote expected-default >expected-default0
++
++broken_c_unquote_verbose expected-verbose >expected-verbose0
+
+ test_expect_success '--stdin' '
+ expect_from_stdin <expected-default &&
+@@ -606,12 +613,11 @@ cat <<-EOF >expected-verbose
+ $global_excludes:2:!globaltwo ../b/globaltwo
+ EOF
+
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
+- tr "\n" "\0" >stdin0
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
+- tr "\n" "\0" >expected-default0
+-sed -e 's/ "/ /' -e 's/\\//' -e 's/"$//' expected-verbose | \
+- tr ":\t\n" "\0" >expected-verbose0
++broken_c_unquote stdin >stdin0
++
++broken_c_unquote expected-default >expected-default0
++
++broken_c_unquote_verbose expected-verbose >expected-verbose0
+
+ test_expect_success '--stdin from subdirectory' '
+ expect_from_stdin <expected-default &&
+--
+1.8.3.1
+
Deleted: csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch
===================================================================
--- csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch 2013-07-28 15:35:53 UTC (rev 21566)
+++ csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch 2013-07-28 17:30:43 UTC (rev 21567)
@@ -1,39 +0,0 @@
-From 4e0185d4697173873aa407ae318fa484e2f206ac Mon Sep 17 00:00:00 2001
-From: Ben Walton <bwalton at opencsw.org>
-Date: Sun, 16 Jun 2013 00:53:50 +0200
-Subject: [PATCH] t0008-ignores: Work around broken solaris tr
-
-The tr provided by solaris (both /usr/bin/ and /usr/xpg4/bin) fails
-to handle the \0 as the substitution. Replace tr with an
-equivalent perl invocation.
-
-Signed-off-by: Ben Walton <bwalton at opencsw.org>
----
- t/t0008-ignores.sh | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh
-index 9c1bde1..bd6817b 100755
---- a/t/t0008-ignores.sh
-+++ b/t/t0008-ignores.sh
-@@ -522,7 +522,7 @@ sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
- sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
- tr "\n" "\0" >expected-default0
- sed -e 's/ "/ /' -e 's/\\//' -e 's/"$//' expected-verbose | \
-- tr ":\t\n" "\0" >expected-verbose0
-+ perl -pne 's/[:\t\n]/\0/g' >expected-verbose0
-
- test_expect_success '--stdin' '
- expect_from_stdin <expected-default &&
-@@ -611,7 +611,7 @@ sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
- sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
- tr "\n" "\0" >expected-default0
- sed -e 's/ "/ /' -e 's/\\//' -e 's/"$//' expected-verbose | \
-- tr ":\t\n" "\0" >expected-verbose0
-+ perl -pne 's/[:\t\n]/\0/g' >expected-verbose0
-
- test_expect_success '--stdin from subdirectory' '
- expect_from_stdin <expected-default &&
---
-1.8.1.4
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list