Merge pull request #64 from 39bit/master
Unicode support for length checking in /nick
This commit is contained in:
commit
f614e83497
@ -33,7 +33,7 @@ function nick:action(msg)
|
||||
else
|
||||
output = target.name .. ' currently has no nickname.'
|
||||
end
|
||||
elseif string.len(input) > 32 then
|
||||
elseif utilities.utf8_len(input) > 32 then
|
||||
output = 'The character limit for nicknames is 32.'
|
||||
elseif input == '--' or input == utilities.char.em_dash then
|
||||
self.database.users[target.id_str].nickname = nil
|
||||
|
@ -61,6 +61,18 @@ function utilities.input(s)
|
||||
return s:sub(s:find(' ')+1)
|
||||
end
|
||||
|
||||
-- Calculates the length of the given string as UTF-8 characters
|
||||
function utilities.utf8_len(s)
|
||||
local chars = 0
|
||||
for i = 1, string.len(s) do
|
||||
local b = string.byte(s, i)
|
||||
if b < 128 or b >= 192 then
|
||||
chars = chars + 1
|
||||
end
|
||||
end
|
||||
return chars
|
||||
end
|
||||
|
||||
-- I swear, I copied this from PIL, not yago! :)
|
||||
function utilities.trim(str) -- Trims whitespace from a string.
|
||||
local s = str:gsub('^%s*(.-)%s*$', '%1')
|
||||
|
Reference in New Issue
Block a user