This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
run-tests.php assumes the contents of an ENV section are a simple list
of key-value-pairs, instead of evaluating the section contents as PHP
script which server-tests.php did. Since server-tests.php is gone, we
remove the superfluous and confusing scripting.
A set of hard-coded thousand separator characters (presently, `',.`) is
somewhat limited (users may prefer other separators, such as spaces or
underscores), as well as somewhat too liberal (arbitrary combinations
of different thousand separators are presently possible). Therefore we
introduce a `thousand` option analogous to `decimal`, which allows to
define the desired thousand separators as non-empty string, defaulting
to `',.`. While we easily could support empty strings here as well,
that would not make much sense, since this behavior can more easily be
accomplished by not setting the `FILTER_FLAG_ALLOW_THOUSAND` flag in
the first place.
PHP requires integer typehints to be written "int" and does not
allow "integer" as an alias. This changes type error messages to
match the actual type name and avoids confusing messages like
"must be of the type integer, integer given".
`FILTER_FLAG_SCHEME_REQUIRED` and `FILTER_FLAG_HOST_REQUIRED` are
implicitly used for `FILTER_VALIDATE_URL` so there is no need to
specify them explicitly.
Cf. https://bugs.php.net/75442.
...from FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE
The remainer of the fix would require the filter functions to only
convert to string when it makes sense for that particular filter.
(cherry picked from commit 432dc527ad)
See RFC 6531 (https://tools.ietf.org/html/rfc6531).
Encode IDNA domains.
Add the missing "Done" to the expected output.
Add the FILTER_FLAG_EMAIL_RFC6531 flag.
Fix the filter_var() call.
...from FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE
The remainer of the fix would require the filter functions to only
convert to string when it makes sense for that particular filter.