1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2025-02-06 03:48:28 +01:00
No description
Find a file
epriestley 9ac0b69798 [Wilds] Sanitize UTF8 output in tsprintf(...) under Windows
Summary:
Ref T13209. In PHP, when you `echo` or `print` certain invalid sequences to the `cmd.exe` terminal under Windows 10, the entire string just vanishes into the ether.

I ran into this because `arc unit` was reporting "1 failing test" but not actually printing a test failure. That's because the failing test was the surrogate filtering test, and the test failure contained a reserved UTF16 surrogate sequence ("Expected: <filtered result>; Actual: <unfiltered result>"). See D19724.

To try to limit the damage this can cause, explicitly `phutil_utf8ize(...)` the output under Windows. When we don't //need// to do this I think it's slightly better not to (occasionally, the raw input might be useful in debugging or understanding something) which is why I'm not just doing it unconditionally.

Test Plan:
  - Wrote a script which did `echo tsprintf("%s", "<invalid surrogate sequence>");`.
  - On Windows 10 in `cmd.exe`, saw it print something instead of printing nothing.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13209

Differential Revision: https://secure.phabricator.com/D19725
2018-10-03 07:48:43 -07:00
bin [Wilds] Rewrite "arc" entrypoints for toolsets 2018-09-21 15:55:08 -07:00
externals [Wilds] Remove include_path mangling and drop support for "externals/includes" 2018-09-21 16:44:11 -07:00
resources [Wilds] Update "arc shell-complete" for toolsets 2018-09-25 16:02:13 -07:00
scripts [Wilds] Make more test cases (mostly related to the phutil -> arcanist move) pass 2018-10-01 16:36:12 -07:00
src [Wilds] Sanitize UTF8 output in tsprintf(...) under Windows 2018-10-03 07:48:43 -07:00
support [Wilds] Make more test cases (mostly related to the phutil -> arcanist move) pass 2018-10-01 16:36:12 -07:00
.arcconfig Set "history.immutable" to "false" explicitly in .arcconfig in Arcanist 2016-08-03 08:13:09 -07:00
.arclint Fold ArcanistPhutilXHPASTLinter into ArcanistXHPASTLinter 2015-11-13 07:08:40 +11:00
.arcunit Rough version of configuration driven unit test engine 2015-08-11 06:54:16 +10:00
.editorconfig Test XHPAST linter rules in isolation 2015-11-19 08:57:23 +11:00
.gitignore [Wilds] Update "arc shell-complete" for toolsets 2018-09-25 16:02:13 -07:00
LICENSE Fix text lint issues 2015-04-07 18:09:27 +10:00
NOTICE Remove duplicate newline 2014-07-17 08:25:22 +10:00
README.md Move README to Markdown 2015-04-13 13:01:16 -07:00

Arcanist is the command-line tool for Phabricator. It allows you to interact with Phabricator installs to send code for review, download patches, transfer files, view status, make API calls, and various other things. You can read more in the User Guide

For more information about Phabricator, see http://phabricator.org/.

LICENSE

Arcanist is released under the Apache 2.0 license except as otherwise noted.