Deprecate the FreeBSD make's ":U" (to-upper case) and ":L" (to-lower case)

modifiers for ":tu" and ":tl" from OSF's ODE, which made its way into
NetBSD's make, which is the source for the Portable Berkeley Make.

Submitted by:	Simon Gerraty <sjg@juniper.net>
This commit is contained in:
David E. O'Brien 2012-05-30 22:23:08 +00:00
parent 614304eccc
commit d81f04d7fa
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=236338
3 changed files with 35 additions and 1 deletions

View File

@ -15,7 +15,7 @@ NO_SHARED?= YES
.endif .endif
# Version has the RYYYYMMDDX format, where R is from RELENG_<R> # Version has the RYYYYMMDDX format, where R is from RELENG_<R>
CFLAGS+=-DMAKE_VERSION=\"5201111300\" CFLAGS+=-DMAKE_VERSION=\"10201120530\"
# There is no obvious performance improvement currently. # There is no obvious performance improvement currently.
# CFLAGS+=-DUSE_KQUEUE # CFLAGS+=-DUSE_KQUEUE

View File

@ -902,6 +902,7 @@ Replaces each word in the variable with its suffix.
Replaces each word in the variable with everything but the last component. Replaces each word in the variable with everything but the last component.
.It Cm :L .It Cm :L
Converts variable to lower-case letters. Converts variable to lower-case letters.
(deprecated)
.It Cm :M Ns Ar pattern .It Cm :M Ns Ar pattern
Select only those words that match the rest of the modifier. Select only those words that match the rest of the modifier.
The standard shell wildcard characters The standard shell wildcard characters
@ -993,8 +994,13 @@ to be replaced in
.Ar new_string . .Ar new_string .
.It Cm :T .It Cm :T
Replaces each word in the variable with its last component. Replaces each word in the variable with its last component.
.It Cm :tl
Converts variable to lower-case letters.
.It Cm :tu
Converts variable to upper-case letters.
.It Cm :U .It Cm :U
Converts variable to upper-case letters. Converts variable to upper-case letters.
(deprecated)
.It Cm :u .It Cm :u
Remove adjacent duplicate words (like Remove adjacent duplicate words (like
.Xr uniq 1 ) . .Xr uniq 1 ) .
@ -1742,6 +1748,19 @@ is set to the same value as
.Va .MAKE ; .Va .MAKE ;
support for this may be removed in the future. support for this may be removed in the future.
.Pp .Pp
The use of the
.Cm :L
and
.Cm :U
modifiers are deprecated
in
.Fx 10.0
and the more portable (among Pmake decedents)
.Cm :tl
and
.Cm :tu
should be used instead.
.Pp
Most of the more esoteric features of Most of the more esoteric features of
.Nm .Nm
should probably be avoided for greater compatibility. should probably be avoided for greater compatibility.

View File

@ -1746,6 +1746,19 @@ ParseModifier(VarParser *vp, char startc, Var *v, Boolean *freeResult)
case 'C': case 'C':
newStr = modifier_C(vp, value, v); newStr = modifier_C(vp, value, v);
break; break;
case 't':
/* :tl :tu for OSF ODE & NetBSD make compatibility */
switch (vp->ptr[1]) {
case 'l':
vp->ptr++;
goto mod_lower;
break;
case 'u':
vp->ptr++;
goto mod_upper;
break;
}
/* FALLTHROUGH */
default: default:
if (vp->ptr[1] != endc && vp->ptr[1] != ':') { if (vp->ptr[1] != endc && vp->ptr[1] != ':') {
#ifdef SUNSHCMD #ifdef SUNSHCMD
@ -1774,6 +1787,7 @@ ParseModifier(VarParser *vp, char startc, Var *v, Boolean *freeResult)
switch (vp->ptr[0]) { switch (vp->ptr[0]) {
case 'L': case 'L':
mod_lower:
{ {
const char *cp; const char *cp;
Buffer *buf; Buffer *buf;
@ -1799,6 +1813,7 @@ ParseModifier(VarParser *vp, char startc, Var *v, Boolean *freeResult)
vp->ptr++; vp->ptr++;
break; break;
case 'U': case 'U':
mod_upper:
{ {
const char *cp; const char *cp;
Buffer *buf; Buffer *buf;