lib/dtutils/string - Added check to determine if string needs to be
sanitized. Check looks for unprintable characters
and spaces.
This commit is contained in:
@@ -298,16 +298,32 @@ local function _sanitize_windows(str)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function _should_be_sanitized(str)
|
||||||
|
local old_log_level = log.log_level()
|
||||||
|
local result = false
|
||||||
|
log.log_level(dtutils_string.log_level)
|
||||||
|
if string.match(str, "[^%g]") then
|
||||||
|
result = true
|
||||||
|
end
|
||||||
|
log.log_level(old_log_level)
|
||||||
|
return result
|
||||||
|
end
|
||||||
|
|
||||||
function dtutils_string.sanitize(str)
|
function dtutils_string.sanitize(str)
|
||||||
local old_log_level = log.log_level()
|
local old_log_level = log.log_level()
|
||||||
|
local sanitized_str = nil
|
||||||
log.log_level(dtutils_string.log_level)
|
log.log_level(dtutils_string.log_level)
|
||||||
if dt.configuration.running_os == "windows" then
|
if _should_be_sanitized(str) then
|
||||||
log.log_level(old_log_level)
|
if dt.configuration.running_os == "windows" then
|
||||||
return _sanitize_windows(str)
|
sanitized_str = _sanitize_windows(str)
|
||||||
|
else
|
||||||
|
sanitized_str = _sanitize_posix(str)
|
||||||
|
end
|
||||||
else
|
else
|
||||||
log.log_level(old_log_level)
|
sanitized_str = str
|
||||||
return _sanitize_posix(str)
|
|
||||||
end
|
end
|
||||||
|
log.log_level(old_log_level)
|
||||||
|
return sanitized_str
|
||||||
end
|
end
|
||||||
|
|
||||||
dtutils_string.libdoc.functions["sanitize_lua"] = {
|
dtutils_string.libdoc.functions["sanitize_lua"] = {
|
||||||
|
|||||||
Reference in New Issue
Block a user