X-Git-Url: https://git.ladys.computer/Shushe/blobdiff_plain/dd8581764fb0ddb86e84d68f3a90ddfe3b96102f..f5ac8c9751642c78bc8338ca65d3a61a200a7a11:/GNUmakefile?ds=sidebyside diff --git a/GNUmakefile b/GNUmakefile index ab8e828..53db7f2 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -150,7 +150,7 @@ MAGICDIR := $(patsubst ./%,%,$(THISDIR)/magic) # # By default, `find´ will ignore hidden files, those which begin with a # period, and those which are likely to cause problems for `make´. -FINDRULES := -flags -nohidden -and ! '(' '(' -name '[.-]*' -or -name '*[:|$$%]*' ')' -and -prune ')' +FINDRULES := -flags -nohidden -and ! '(' '(' -name '[.-]*' -or -name '*[][*?:|$$%\#;]*' ')' -and -prune ')' FINDINCLUDERULES := $(FINDRULES) # The list of parsers for plaintext file types. @@ -218,18 +218,20 @@ override perdec = $(foreach encoded,$1,$(shell $(PRINTF) '%s\n' $(call quote,$(e # The encoding assumes the input is a “u·r·i component”; e·g that the # resulting string should only contain `pchar´ (but can contain any # `sub-delim´). -override perenc = $(foreach unencoded,$1,$(call perdec,$(shell $(PRINTF) '%s' $(call quote,$(unencoded)) | $(OD) -t x1 | $(SED) 's/^[0-9]*//;s/2[146-9A-Ea-e]/%&/g;s/3[0-9AaBbDd]/%&/g;s/40/%&/g;s/[46][1-9A-Fa-f]/%&/g;s/[57][0-9Aa]/%&/g;s/7[Ee]/%&/g;s/[ ][0-9A-Fa-f]\{2\}/%25&/g' | $(TR) -d ' \n' | $(TR) 'abcdef' 'ABCDEF'))) +override perenc = $(foreach unencoded,$1,$(call perdec,$(shell $(PRINTF) '%s' $(call quote,$(unencoded)) | $(OD) -t x1 | $(SED) 's/^[0-9]*//;s/2[146-9A-Ea-e]/%&/g;s/3[0-9AaBbDd]/%&/g;s/40/%&/g;s/[46][1-9A-Fa-f]/%&/g;s/[57][0-9Aa]/%&/g;s/5[Ff]/%&/g;s/7[Ee]/%&/g;s/[ ][0-9A-Fa-f]\{2\}/%25&/g' | $(TR) -d ' \n' | $(TR) 'abcdef' 'ABCDEF'))) # (callable) Percent‐encode each component in the given paths. +# +# ☡ This will remove leading and trailing slashes. override pathenc = $(foreach path,$1,$(subst $(space),/,$(call perenc,$(subst /, ,$(path))))) # (overridable) Collect all of the applicable includes from the # includes directory. -sourceincludes := $(shell $(FIND) $(FINDOPTS) $(INCLUDEDIR) -type f '(' $(FINDRULES) ')') +sourceincludes := $(shell $(FIND) $(foreach dir,$(INCLUDEDIR),$(call quote,$(dir))) -type f '(' $(FINDRULES) ')') # (overridable) Collect all of the applicable source files from the # source directory, removing any which are also includes. -sourcefiles := $(filter-out $(sourceincludes),$(shell $(FIND) $(FINDOPTS) $(SRCDIR) -type f '(' $(FINDRULES) ')')) +sourcefiles := $(filter-out $(sourceincludes),$(shell $(FIND) $(foreach dir,$(SRCDIR),$(call quote,$(dir))) -type f '(' $(FINDRULES) ')')) ifdef GIT ifneq ($(wildcard $(THISDIR)/.git),)