- Make will try to expand the glob characters `*`, `?`, and `[` when
followed by `]`. Forbid all of these (including both brackets in all
cases for simplicity).
- `#` and `;` are dangerous in make prerequisites (at least under
secondary expansion).
#
# By default, `find´ will ignore hidden files, those which begin with a
# period, and those which are likely to cause problems for `make´.
#
# 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.
FINDINCLUDERULES := $(FINDRULES)
# The list of parsers for plaintext file types.
- **`FINDRULES`:**
Rules to use with `find` when searching for source files.
The default ignores hidden files, those that start with a period or
- **`FINDRULES`:**
Rules to use with `find` when searching for source files.
The default ignores hidden files, those that start with a period or
- hyphen‐minus, and those which contain a pipe, buck, percent, or
- colon.
+ hyphen‐minus, and those which contain a pipe, buck, percent,
+ bracket, hash, asterisk, eroteme, semi, or colon.
- **`FINDINCLUDERULES`:**
Rules to use with `find` when searching for includes (default:
- **`FINDINCLUDERULES`:**
Rules to use with `find` when searching for includes (default:
Source files whose media type does not have an associated X·S·L·T
parser are considered “assets” and will not be transformed.
Source files whose media type does not have an associated X·S·L·T
parser are considered “assets” and will not be transformed.
-**☡ For compatibility with this program, source filenames must not
- contain Ascii whitespace, colons (`:`), pipes (`|`), bucks (`$`),
- percents (`%`) or control characters, and must not begin with a
- hyphen‐minus (`-`).**
+**☡ For compatibility with this program, source file·names must not
+ contain Ascii white·space, colons (`:`), semis (`;`), pipes (`|`),
+ bucks (`$`), percents (`%`), hashes (`#`), asterisks (`*`), brackets
+ (`[` or `]`), erotemes (`?`), or control characters, and must not
+ begin with a hyphen‐minus (`-`).**
The former characters have the potential to conflict with make syntax,
and a leading hyphen‐minus is confusable for a command‐line argument.
The former characters have the potential to conflict with make syntax,
and a leading hyphen‐minus is confusable for a command‐line argument.