X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?p=subdirmk.git;a=blobdiff_plain;f=README;h=4da40911ce83909e880874de657b6d4db797992b;hp=3390adff9d4e8bca1098b7e88b7f959004a987be;hb=b809edc47e57f527900230cd744352faec4411c5;hpb=c0a97824b8b9c9ff7610d0a8413884c5ce975f12 diff --git a/README b/README index 3390adf..4da4091 100644 --- a/README +++ b/README @@ -218,30 +218,38 @@ 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 &^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 + +&\& => & general escaping mechanism +&\$ => $ & thing thing... & &^ thing thing... & @@ -266,21 +274,21 @@ So pathname syntax is a subset of: &# delete everything to end of line (useful if the RHS contains unrecognised & constructions) -&!STUFF - changes the escape sequence from & to literally STUFF - STUFF may be any series of of non-whitespace characters, - and is terminated by EOL or lwsp. &!STUFF and the lwsp - are discarded. +&:changequote NEWQUOTE + changes the escape sequence from & to literally NEWQUOTE + NEWQUOTE may be any series of of non-whitespace characters, + and is terminated by EOL or lwsp. The whole line is + discarded. - After this, write STUFF instead of &, everywhere. + After this, write NEWQUOTE instead of &, everywhere. The effect is global and lasts until the next setting. It takes effect on &:include'd files too, so maybe set it back before using &:include. Notably - STUFFSTUFF => STUFFSTUFF - \STUFF => STUFF - STUFF!& set escape back to & + NEWQUOTENEWQUOTE => NEWQUOTENEWQUOTE + NEWQUOTE\NEWQUOTE => NEWQUOTE + NEWQUOTE:changequote & set escape back to & &TARGETS_things Handled specially. If mentioned, declares that this