Module Name: src Committed By: apb Date: Sun Aug 24 15:10:13 UTC 2014
Modified Files: src/usr.bin/make/unit-tests: escape.exp escape.mk Log Message: Our practice, despite what POSIX might say, is that "\#" in a variable assignment stores "#" as part of the value. The "\" is not taken literally, and the "#" does not begin a comment. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/escape.exp cvs rdiff -u -r1.5 -r1.6 src/usr.bin/make/unit-tests/escape.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/unit-tests/escape.exp diff -u src/usr.bin/make/unit-tests/escape.exp:1.2 src/usr.bin/make/unit-tests/escape.exp:1.3 --- src/usr.bin/make/unit-tests/escape.exp:1.2 Sun Aug 24 14:04:35 2014 +++ src/usr.bin/make/unit-tests/escape.exp Sun Aug 24 15:10:13 2014 @@ -4,12 +4,16 @@ VAR1BSa=:111\aaa: VAR1BSA=:111\aaa: VAR1BSda=:111\${a}: VAR1BSdA=:111\${A}: +VAR1BSc=:111# backslash escapes comment char, so this is part of the value: +VAR1BSsc=:111\ : var-2bs VAR2BS=:222\\222: VAR2BSa=:222\\aaa: VAR2BSA=:222\\aaa: VAR2BSda=:222\\${a}: VAR2BSdA=:222\\${A}: +VAR2BSc=:222\\: +VAR2BSsc=:222\\: var-1bsnl VAR1BSNL=:111 111: VAR1BSNLa=:111 aaa: @@ -17,13 +21,15 @@ VAR1BSNLA=:111 aaa: VAR1BSNLda=:111 ${a}: VAR1BSNLdA=:111 ${A}: VAR1BSNLc=:111: +VAR1BSNLsc=:111: var-2bsnl VAR2BSNL=:222\ 222=: VAR2BSNLa=:222\ aaa=: VAR2BSNLA=:222\ aaa=: VAR2BSNLda=:222\ ${a}=: VAR2BSNLdA=:222\ ${A}=: -VAR2BSNLc=:222\=: +VAR2BSNLc=:222\: +VAR2BSNLsc=:222\: var-3bsnl VAR3BSNL=:333\\ 333=: VAR3BSNLa=:333\\ aaa=: @@ -31,6 +37,7 @@ VAR3BSNLA=:333\\ aaa=: VAR3BSNLda=:333\\ ${a}=: VAR3BSNLdA=:333\\ ${A}=: VAR3BSNLc=:333\\: +VAR3BSNLsc=:333\\: var-1bsnl-space VAR1BSNL00=:first line: VAR1BSNL0=:first line no space on second line: Index: src/usr.bin/make/unit-tests/escape.mk diff -u src/usr.bin/make/unit-tests/escape.mk:1.5 src/usr.bin/make/unit-tests/escape.mk:1.6 --- src/usr.bin/make/unit-tests/escape.mk:1.5 Sun Aug 24 14:38:38 2014 +++ src/usr.bin/make/unit-tests/escape.mk Sun Aug 24 15:10:13 2014 @@ -1,4 +1,4 @@ -# $Id: escape.mk,v 1.5 2014/08/24 14:38:38 apb Exp $ +# $Id: escape.mk,v 1.6 2014/08/24 15:10:13 apb Exp $ # # Test backslash escaping. @@ -27,6 +27,10 @@ # <backslash><anything other than newline> is not mentioned. I think # this implies that <backslash> should be taken literally everywhere # except before <newline>. +# +# Our practice, despite what POSIX might say, is that "\#" +# in a variable assignment stores "#" as part of the value. +# The "\" is not taken literally, and the "#" does not begin a comment. all: .PHONY # We will add dependencies like "all: yet-another-test" later. @@ -51,9 +55,12 @@ VAR1BSa = 111\${a} VAR1BSA = 111\${A} VAR1BSda = 111\$${a} VAR1BSdA = 111\$${A} +VAR1BSc = 111\# backslash escapes comment char, so this is part of the value +VAR1BSsc = 111\ # This is a comment. Value ends with <backslash><space> all: var-1bs -var-1bs: .PHONY __printvars VAR1BS VAR1BSa VAR1BSA VAR1BSda VAR1BSdA +var-1bs: .PHONY __printvars VAR1BS VAR1BSa VAR1BSA VAR1BSda VAR1BSdA \ + VAR1BSc VAR1BSsc # Double backslash in variable should be taken as two literal backslashes. # @@ -62,9 +69,12 @@ VAR2BSa = 222\\${a} VAR2BSA = 222\\${A} VAR2BSda = 222\\$${a} VAR2BSdA = 222\\$${A} +VAR2BSc = 222\\# backslash does not escape comment char, so this is a comment +VAR2BSsc = 222\\ # This is a comment. Value ends with <backslash><backslash> all: var-2bs -var-2bs: .PHONY __printvars VAR2BS VAR2BSa VAR2BSA VAR2BSda VAR2BSdA +var-2bs: .PHONY __printvars VAR2BS VAR2BSa VAR2BSA VAR2BSda VAR2BSdA \ + VAR2BSc VAR2BSsc # Backslash-newline in a variable setting is replaced by a single space. # @@ -80,11 +90,14 @@ VAR1BSNLdA = 111\ $${A} VAR1BSNLc = 111\ # this should be processed as a comment +VAR1BSNLsc = 111\ + # this should be processed as a comment all: var-1bsnl var-1bsnl: .PHONY var-1bsnl: .PHONY __printvars \ - VAR1BSNL VAR1BSNLa VAR1BSNLA VAR1BSNLda VAR1BSNLdA VAR1BSNLc + VAR1BSNL VAR1BSNLa VAR1BSNLA VAR1BSNLda VAR1BSNLdA \ + VAR1BSNLc VAR1BSNLsc # Double-backslash-newline in a variable setting. # First one should be taken literally, and last should escape the newline. @@ -106,10 +119,13 @@ VAR2BSNLdA = 222\\ $${A}= VAR2BSNLc = 222\\ # this should be processed as a comment +VAR2BSNLsc = 222\\ + # this should be processed as a comment all: var-2bsnl var-2bsnl: .PHONY __printvars \ - VAR2BSNL VAR2BSNLa VAR2BSNLA VAR2BSNLda VAR2BSNLdA VAR2BSNLc + VAR2BSNL VAR2BSNLa VAR2BSNLA VAR2BSNLda VAR2BSNLdA \ + VAR2BSNLc VARR2BSNLsc # Triple-backslash-newline in a variable setting. # First two should be taken literally, and last should escape the newline. @@ -131,10 +147,13 @@ VAR3BSNLdA = 333\\\ $${A}= VAR3BSNLc = 333\\\ # this should be processed as a comment +VAR3BSNLsc = 333\\\ + # this should be processed as a comment all: var-3bsnl var-3bsnl: .PHONY __printvars \ - VAR3BSNL VAR3BSNLa VAR3BSNLA VAR3BSNLda VAR3BSNLdA VAR3BSNLc + VAR3BSNL VAR3BSNLa VAR3BSNLA VAR3BSNLda VAR3BSNLdA \ + VAR3BSNLc VAR3BSNLsc # Backslash-newline in a variable setting, plus any amount of white space # on the next line, is replaced by a single space.