diff --git a/src/parser/ArcanistDiffParser.php b/src/parser/ArcanistDiffParser.php
index 0e9627b..54da690 100644
--- a/src/parser/ArcanistDiffParser.php
+++ b/src/parser/ArcanistDiffParser.php
@@ -1020,6 +1020,16 @@ final class ArcanistDiffParser {
}
+ //For files we think are binary, double-check they're not using extensions defined as code
+ //backwards is slightly faster and way more fun
+ if($is_binary) {
+ $back_path = substr(strrev($change->getCurrentPath()), 0, 5); //5 == max of non_binary strlens
+ $reversed_non_binary_file_extensions = array("pph.","h.","php.","ppc.","lni.","sc.","lmax.","iu.");
+ foreach ($reversed_non_binary_file_extensions as $rev_ext) {
+ if(stripos($back_path, $rev_ext) === 0){
+ $is_binary = false;
+ break;
+ }
+ }
+ }
if ($is_binary) {
// SVN happily treats binary files which aren't marked with the right
// mime type as text files. Detect that junk here and mark the file