From 24b7e76f14711aa1bc9aec57d9e5922054f32b37 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 10 Dec 2019 01:21:43 +0000 Subject: [PATCH] README: v2: Draft - Introduce &. and friends Signed-off-by: Ian Jackson --- README | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/README b/README index 6dd1a05..6ab45b9 100644 --- a/README +++ b/README @@ -218,27 +218,37 @@ empty string). The assumption is that filenames are usually lowercase and variables usually uppercase. Otherwise, use another syntax: +&/ => sub/dir/ or nothing &_ => sub_dir_ or TOP_ -&=_ => sub_dir or TOP +&. => sub/dir or . + (This implies that `&./' works roughly like `&/', although + it can produce a needless `./') -&/ => sub/dir/ or nothing -&=/ => sub/dir or . +&= => sub_dir or TOP +^^^ rarely needed. TBD, maybe one of + &._ &_. &\_ &% &$_ + & &[varnameprefix] + $(patsubst %_,&_,%) &^lc => $(top_srcdir)/sub/dir/lc &^/ => $(top_srcdir)/sub/dir/ +&^. => $(top_srcdir)/sub/dir &~lc => $(top_srcdir)/lc &~/ => $(top_srcdir)/ +&~. => $(top_srcdir) In general: - = return subdir without delimiter (not allowed with `^' `~') ^ pathname of this subdirectory in source tree ~ pathname of top level of source tree - / terminates the escape (needed if next is not lwsp or space) + / terminates the path escape } needed if next is + _ terminates the var escape } not lwsp or space) + . terminates path escape giving dir name (excluding /) + = terminates var escape giving only prefix part (rarely needed) lwsp starts multi-word processing (see below) So pathname syntax is a subset of: - '&' [ '^' | '~' ] [ lc | '/' ] + '&' [ '^' | '~' ] [ lc | '/' | '.' | '=' ] && => && for convenience in shell runes &@ => & general escaping mechanism -- 2.30.2