2c3632d14f
Lots of code refactoring, simplification and cleanup. Lots of new unit-tests providing much higher code coverage. All courtesy of rillig at netbsd. Other significant changes: o new read-only variable .SHELL which provides the path of the shell used to run scripts (as defined by the .SHELL target). o variable parsing detects more errors. o new debug option -dl: LINT mode, does the equivalent of := for all variable assignments so that file and line number are reported for variable parse errors.
23 lines
610 B
Makefile
23 lines
610 B
Makefile
# $NetBSD: varmod-match.mk,v 1.3 2020/08/16 20:03:53 rillig Exp $
|
|
#
|
|
# Tests for the :M variable modifier, which filters words that match the
|
|
# given pattern.
|
|
|
|
all: match-char-class
|
|
all: slow
|
|
|
|
|
|
NUMBERS= One Two Three Four five six seven
|
|
|
|
match-char-class:
|
|
@echo '$@:'
|
|
@echo ' uppercase numbers: ${NUMBERS:M[A-Z]*}'
|
|
@echo ' all the others: ${NUMBERS:M[^A-Z]*}'
|
|
@echo ' starts with non-s, ends with [ex]: ${NUMBERS:M[^s]*[ex]}'
|
|
|
|
|
|
# Before 2020-06-13, this expression took quite a long time in Str_Match,
|
|
# calling itself 601080390 times for 16 asterisks.
|
|
slow:
|
|
@: ${:U****************:M****************b}
|