Summary:
For some reason it may happen that a specific command line argument receives a null argument
from PHP, instead of just an empty string.
Nowadays, this null value probably breaks almost whatever GNU/Linux or FreeBSD or Microsoft Windows
etc. implementations since everyone expect to receive a string.
This used to work in the past since functions like strpos() or strlen() accepted null, but not
anymore. This generate a deprecation warning since PHP 8.1, that is elevated as exception from
Phabricator/Phorge and breaking features.
Without getting into implementation logics (which doesn't make sense to fix all of them) the
calling function should just be kind. So we normalize nonsense null values to an empty string.
Note: this was the expected behavior prior to PHP 8.1.
Now we do that normalization explicitly, in this early point.
After this fix, also T15368 should probably be fixed.
Closes T15367
Test Plan:
- run "arc patch <something valid>"
- to you it must continue to work
- (to @ton it starts working right now)
Reviewers: O1 Blessed Committers, avivey
Reviewed By: O1 Blessed Committers, avivey
Subscribers: speck, tobiaswiese, Matthew, Cigaryno, ton
Maniphest Tasks: T15367
Differential Revision: https://we.phorge.it/D25205