From c432cd67fc1d33401602309fffd451980ad569c9 Mon Sep 17 00:00:00 2001 From: DX-MON Date: Wed, 2 Apr 2014 19:55:24 +0100 Subject: [PATCH] Found out that nothing was ever getting returned from the heuristic function "find_by_heuristics", and that headers matching C, Obj-C and C++ were never getting checked heuristically --- lib/linguist/heuristics.rb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/linguist/heuristics.rb b/lib/linguist/heuristics.rb index c7f31a42..e6d17686 100644 --- a/lib/linguist/heuristics.rb +++ b/lib/linguist/heuristics.rb @@ -12,23 +12,25 @@ module Linguist # # Returns an array of Languages or [] def self.find_by_heuristics(data, languages) + matches = [] if active? - if languages.all? { |l| ["Objective-C", "C++"].include?(l) } - disambiguate_c(data, languages) + if languages.all? { |l| ["Objective-C", "C++", "C"].include?(l) } + matches = disambiguate_c(data, languages) end if languages.all? { |l| ["Perl", "Prolog"].include?(l) } - disambiguate_pl(data, languages) + matches = disambiguate_pl(data, languages) end if languages.all? { |l| ["ECL", "Prolog"].include?(l) } - disambiguate_ecl(data, languages) + matches = disambiguate_ecl(data, languages) end if languages.all? { |l| ["TypeScript", "XML"].include?(l) } - disambiguate_ts(data, languages) + matches = disambiguate_ts(data, languages) end if languages.all? { |l| ["Common Lisp", "OpenCL"].include?(l) } - disambiguate_cl(data, languages) + matches = disambiguate_cl(data, languages) end end + matches end # .h extensions are ambigious between C, C++, and Objective-C.