Detect-It-Easy/db/language
DosX 11169a42e9 Add temporary Wayback guard in _setLang
Add a short-term compatibility check in db/language::_setLang to support legacy Wayback calls: if version is the boolean false, the function returns null and aborts further processing. Comment notes this is temporary and will be removed.
2026-04-07 14:02:57 +03:00

54 lines
No EOL
1.6 KiB
Text

// Detect It Easy: DiE-JS framework file
// Don't change anything unless you're sure about what you're doing
// Author: DosX
// E-Mail: collab@kay-software.ru
// GitHub: https://github.com/DosX-dev
// Telegram: @DosX_dev
function _isLangPresent(languageName) {
return _isResultPresent("language", languageName) || _isResultPresent("~language", languageName);
}
function _isLangDetected() {
return _getNumberOfResults("language") || _getNumberOfResults("~language");
}
function _setLang(languageName, version) {
// WAYBACK SUPPORT; WILL BE REMOVED.
if (typeof version === "boolean" && !version) {
return null;
}
// if "C/C++" already detected
if (_isLangPresent("C/C++") && (languageName == "C" || languageName == "C++")) {
_removeResult("language", "C/C++");
}
// if "C" or "C++"" detected
if (languageName == "C/C++" && (_isLangPresent("C") || _isLangPresent("C++"))) {
return null;
}
// False-positive detection of C
if (_isLangPresent("C") && languageName !== "C") {
_removeResult("language", "C");
}
// False-positive detection of C++
if (_isLangPresent("C++") && languageName !== "C++") {
_removeResult("language", "C++");
}
// If the language already detected
if (_isLangDetected() && (languageName == "C/C++" || languageName == "C++" || languageName == "C")) {
return null;
}
if (File.isVerbose() && !_isLangPresent(languageName)) {
var isHeurResult = (version == "HEUR");
_setResult((isHeurResult ? "~" : "") + "language", languageName, (version && !isHeurResult ? version : ""), "");
}
}