Lines Matching +full:two +full:- +full:word
1 # $NetBSD: var-op-sunsh.mk,v 1.10 2022/02/09 21:09:24 rillig Exp $
3 # Tests for the :sh= variable assignment operator, which runs its right-hand
4 # side through the shell. It is a seldom-used alternative to the !=
7 .MAKEFLAGS: -dL # Enable sane error messages
11 VAR:sh= echo colon-sh
12 .if ${VAR} != "colon-sh"
18 VAR :sh = echo colon-sh-spaced
19 .if ${VAR} != "colon-sh-spaced"
23 # Until 2020-10-04, the ':sh' could even be followed by other characters.
27 # Since 2020-10-04, this is a normal variable assignment to the variable named
29 VAR:shell= echo colon-shell
33 .if ${${:UVAR\:shell}} != "echo colon-shell"
38 # Until 2020-10-04, the last of them was interpreted as the ':sh'
41 # Since 2020-10-04, the colons are part of the variable name.
42 VAR:shoe:shore= echo two-colons
43 .if ${${:UVAR\:shoe\:shore}} != "echo two-colons"
47 # Until 2020-10-04, the following expression was wrongly marked as
52 # There are two different syntactical elements that look exactly the same:
55 # 2020-10-04, the parser regarded it as an assignment operator modifier, in
57 VAR.${:Uecho 123:sh}= ok-123
58 .if ${VAR.123} != "ok-123"
62 # Same pattern here. Until 2020-10-04, the ':sh' inside the nested expression
65 VAR.${:U echo\:shell}= ok-shell
66 .if ${VAR.${:U echo\:shell}} != "ok-shell"
70 # Until 2020-10-04, the word 'shift' was also affected since it starts with
87 # The ':sh' is the only word that may occur between the variable name and
89 # to a parse error since the left-hand side of an assignment must be
90 # exactly one word.
96 # The word ':sh' is not the only thing that can occur after a variable name.
124 VAR :sh += echo two
125 .if ${VAR} != "one echo two"
135 VAR :sh != echo echo echo echo spaces-around
136 .if ${VAR} != "echo echo echo spaces-around"
144 VAR:sh != echo echo echo echo space-after
145 .if ${${:UVAR\:sh}} != "echo echo echo space-after"