Version 1.1.4

- typos in descriptions
- ambiguous variable definitions
- bumped version for all versions of WoW (Classic Era, WotLK, Retail)
- added TOCs for all versions of WoW, removed release script
master 1.1.4
Lothar Buchholz 2 years ago
parent a75d631423
commit 97ee953b19

File diff suppressed because it is too large Load Diff

@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Version 1.1.4 - 2022-09-28
### Changed
- typos in descriptions
- ambiguous variable definitions
- bumped version for all versions of WoW (Classic Era, WotLK, Retail)
## Version 1.1.3 - 2021-10-06 ## Version 1.1.3 - 2021-10-06
### Changed ### Changed
- bumped version for all versions of WoW (Classic Era, Season of Mastery, BCC, Retail) - bumped version for all versions of WoW (Classic Era, Season of Mastery, BCC, Retail)
@ -131,7 +137,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Version 0.3.0 - 2020-05-27 ## Version 0.3.0 - 2020-05-27
### Fixed ### Fixed
- fixed DB storange and debug printing - fixed DB storage and debug printing
## Version 0.2.2 (unreleased) - 2020-05-26 ## Version 0.2.2 (unreleased) - 2020-05-26
### Added ### Added

@ -1,37 +1,16 @@
## Interface: 11401 ## Interface: 90207
## Interface-Classic: 11401
## Interface-BCC: 20502
## Interface-Retail: 90100
## Title: Grichelde ## Title: Grichelde
## Notes: Replaces characters of your chat input line before sending. ## Notes: Replaces characters of your chat input line before sending.
## Notes-de: Ersetzt eingegebene Zeichen in der Chat-Zeile vor dem Versenden. ## Notes-de: Ersetzt eingegebene Zeichen in der Chat-Zeile vor dem Versenden.
#@debug@ ## Version: 1.1.4
## Version: 1.1.3
#@end-debug@
#@non-debug@
# ## Version: @project-version@
#@end-non-debug@
## Author: Teilzeit-Jedi ## Author: Teilzeit-Jedi
## eMail: tj@teilzeit-jedi.de ## eMail: tj@teilzeit-jedi.de
#@version-classic@ ## X-Build: Retail
## X-Build: Classic ## X-Compatible: 11403
## X-Compatible: 20502 ## X-Compatible: 20504
## X-Compatible: 90100 ## X-Compatible: 30400
#@end-version-classic@
#@non-version-classic@
#@version-bcc@
# ## X-Build: BCC
# ## X-Compatible: 11401
# ## X-Compatible: 90100
#@end-version-bcc@
#@version-retail@
# ## X-Build: Retail
# ## X-Compatible: 11401
# ## X-Compatible: 20502
#@end-version-retail@
#@end-non-version-classic@
## X-Curse-Project-ID: 385480 ## X-Curse-Project-ID: 385480
## X-License: GPLv3 ## X-License: GPLv3
@ -42,7 +21,6 @@
## OptionalDeps: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon ## OptionalDeps: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon
## SavedVariables: GricheldeDB ## SavedVariables: GricheldeDB
#@no-lib-strip@
Libs\LibStub\LibStub.lua Libs\LibStub\LibStub.lua
Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
Libs\AceAddon-3.0\AceAddon-3.0.xml Libs\AceAddon-3.0\AceAddon-3.0.xml
@ -56,7 +34,6 @@ Libs\AceGUI-3.0\AceGUI-3.0.xml
Libs\AceConfig-3.0\AceConfig-3.0.xml Libs\AceConfig-3.0\AceConfig-3.0.xml
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua
#@end-no-lib-strip@
Grichelde.lua Grichelde.lua
GricheldeConstants.lua GricheldeConstants.lua
@ -69,7 +46,3 @@ GricheldeUpgrade.lua
GricheldeOptions.lua GricheldeOptions.lua
GricheldeMinimap.lua GricheldeMinimap.lua
GricheldeChat.lua GricheldeChat.lua
#@do-not-package@
GricheldeTest.lua
#@end-do-not-package@

@ -2,9 +2,9 @@
local _G = _G local _G = _G
local Grichelde = _G.Grichelde or {} local Grichelde = _G.Grichelde or {}
local IsAddOnLoaded, assert, nilOrEmpty, pairs, ipairs, spairs, tContains, tFilter, tInsert, tConcat, tSize, tIsEmpty, find, sub, gsub, gmatch, getNextCharUtf8, isLetter, isUpper, isLower, toUpper, toLower, capitalize, bytes2Char, trim, length, lengthUtf8 local IsAddOnLoaded, assert, nilOrEmpty, pairs, ipairs, spairs, tContains, tFilter, tInsert, tIsEmpty, find, sub, gsub, getNextCharUtf8, isUtf8MultiByte, getUtf8Sequence, isUpper, isLower, toUpper, toLower, bytes2Char, trim, length, lengthUtf8
= Grichelde.F.IsAddOnLoaded, Grichelde.F.assert, Grichelde.F.nilOrEmpty, Grichelde.F.pairs, Grichelde.F.ipairs, Grichelde.F.spairs, Grichelde.F.tContains, Grichelde.F.tFilter, Grichelde.F.tInsert, Grichelde.F.tConcat, Grichelde.F.tSize, Grichelde.F.tIsEmpty, = Grichelde.F.IsAddOnLoaded, Grichelde.F.assert, Grichelde.F.nilOrEmpty, Grichelde.F.pairs, Grichelde.F.ipairs, Grichelde.F.spairs, Grichelde.F.tContains, Grichelde.F.tFilter, Grichelde.F.tInsert, Grichelde.F.tIsEmpty,
Grichelde.F.find, Grichelde.F.sub, Grichelde.F.gsub, Grichelde.F.gmatch, Grichelde.F.getNextCharUtf8, Grichelde.F.isLetter, Grichelde.F.isUpper, Grichelde.F.isLower, Grichelde.F.toUpper, Grichelde.F.toLower, Grichelde.F.capitalize, Grichelde.F.bytes2Char, Grichelde.F.trim, Grichelde.F.length, Grichelde.F.lengthUtf8 Grichelde.F.find, Grichelde.F.sub, Grichelde.F.gsub, Grichelde.F.getNextCharUtf8, Grichelde.F.isUtf8MultiByte, Grichelde.F.getUtf8Sequence, Grichelde.F.isUpper, Grichelde.F.isLower, Grichelde.F.toUpper, Grichelde.F.toLower, Grichelde.F.bytes2Char, Grichelde.F.trim, Grichelde.F.length, Grichelde.F.lengthUtf8
--- Splits a long text in longest possible chunks of <= 255 length, split at last available space --- Splits a long text in longest possible chunks of <= 255 length, split at last available space
-- @param text string -- @param text string
@ -58,7 +58,6 @@ function Grichelde:SplitText(text)
-- must not enforce UTF-8 support here, as the positions are used -- must not enforce UTF-8 support here, as the positions are used
while ((length(newText) > 0) and (escape < Grichelde.ENDLESS_LOOP_LIMIT)) do while ((length(newText) > 0) and (escape < Grichelde.ENDLESS_LOOP_LIMIT)) do
escape = escape + 1 escape = escape + 1
local previousChar = currentChar
local first, textAhead = getNextCharUtf8(newText) local first, textAhead = getNextCharUtf8(newText)
currentChar = first currentChar = first
self:DebugPrint("SplitText : currentChar, escape: %s, %s", currentChar, escape) self:DebugPrint("SplitText : currentChar, escape: %s, %s", currentChar, escape)
@ -154,6 +153,24 @@ function Grichelde:SendChunkifiedChatMessage(message, ...)
end end
function Grichelde:ReplaceCharacters(text, replName, replTable, consolidate, replacedTexts) function Grichelde:ReplaceCharacters(text, replName, replTable, consolidate, replacedTexts)
local function convertToCaseInsensitivePatternGroup(p)
local upperP, lowerP = toUpper(p), toLower(p)
--[[
if (isUtf8MultiByte(p)) then
local sequence = nil
for _, byteSequence in spairs(getUtf8Table(upperP)) do
sequence = sequence .. byteSequence
end
else
]]
if (upperP ~= lowerP) then
return upperP .. lowerP
else
return p
end
--end
end
local function convertToCaseInsensitivePattern(pattern) local function convertToCaseInsensitivePattern(pattern)
local ciPattern = "" local ciPattern = ""
local ignored = {'^', '$', '(', ')', '.'} local ignored = {'^', '$', '(', ')', '.'}
@ -184,18 +201,13 @@ function Grichelde:ReplaceCharacters(text, replName, replTable, consolidate, rep
ciPattern = ciPattern .. "%" .. p ciPattern = ciPattern .. "%" .. p
end end
else else
local upperP, lowerP = toUpper(p), toLower(p) ciPattern = ciPattern .. convertToCaseInsensitivePatternGroup(p)
if (upperP ~= lowerP) then
ciPattern = ciPattern .. upperP .. lowerP
else
ciPattern = ciPattern .. p
end
end end
p, patRest = getNextCharUtf8(patRest) p, patRest = getNextCharUtf8(patRest)
end end
ciPattern = ciPattern .. "]" ciPattern = ciPattern .. "]"
else else
ciPattern = ciPattern .. "[" .. Grichelde.F.toUpper(p) .. Grichelde.F.toLower(p) .. "]" ciPattern = ciPattern .. "[" .. convertToCaseInsensitivePatternGroup(p) .. "]"
end end
p, patRest = getNextCharUtf8(patRest) p, patRest = getNextCharUtf8(patRest)
@ -204,9 +216,9 @@ function Grichelde:ReplaceCharacters(text, replName, replTable, consolidate, rep
return ciPattern return ciPattern
end end
local function replaceCaptures(text, replaceText, captures) local function replaceCaptures(txt, replaceText, captures)
local replText = replaceText local replText = replaceText
self:TracePrint("replaceCaptures : text: %s, #captures: %d", text, #captures) self:TracePrint("replaceCaptures : txt: %s, #captures: %d", txt, #captures)
if (#captures > 0) then if (#captures > 0) then
for i, cap in ipairs(captures) do for i, cap in ipairs(captures) do
@ -285,9 +297,6 @@ function Grichelde:ReplaceCharacters(text, replName, replTable, consolidate, rep
self:TracePrint("ReplaceCharacters : pos1: %d, pos2: %d", pos1, pos2) self:TracePrint("ReplaceCharacters : pos1: %d, pos2: %d", pos1, pos2)
self:TracePrint("ReplaceCharacters : cap1: %s, cap2: %s, cap3: %s, cap4: %s, cap5: %s, cap6: %s, cap7: %s, cap8: %s, cap9: %s", cap1, cap2, cap3, cap4, cap5, cap6, cap7, cap8, cap9) self:TracePrint("ReplaceCharacters : cap1: %s, cap2: %s, cap3: %s, cap4: %s, cap5: %s, cap6: %s, cap7: %s, cap8: %s, cap9: %s", cap1, cap2, cap3, cap4, cap5, cap6, cap7, cap8, cap9)
while (pos1 ~= nil) and (pos2 ~= nil) and (pos1 <= pos2) do while (pos1 ~= nil) and (pos2 ~= nil) and (pos1 <= pos2) do
-- continue from that position later
pos = pos2 + 1
if doStopOnMatch then if doStopOnMatch then
stopOnMatch = true stopOnMatch = true
end end
@ -297,6 +306,24 @@ function Grichelde:ReplaceCharacters(text, replName, replTable, consolidate, rep
local post = sub(result, pos2 + 1) local post = sub(result, pos2 + 1)
local wordStart = sub(pre, -1, -1) local wordStart = sub(pre, -1, -1)
local wordEnd = sub(post, 1, 1) local wordEnd = sub(post, 1, 1)
self:TracePrint("ReplaceCharacters : result: %s", result)
self:TracePrint("ReplaceCharacters : pre: %s, match: %s, post: %s, wordStart: %s, wordEnd: %s", pre, match, post, wordStart, wordEnd)
--[[
self:TracePrint("ReplaceCharacters : pos2: %d, isChar: %s", pos2, isChar(match))
while (not isChar(match) and pos2 < length(result)) do
pos2 = pos2 + 1
pre = sub(result, 1, pos1 - 1)
match = sub(result, pos1, pos2)
post = sub(result, pos2 + 1)
wordStart = sub(pre, -1, -1)
wordEnd = sub(post, 1, 1)
self:TracePrint("ReplaceCharacters : pos2: %d, isChar: %s", pos2, isChar(match))
end
]]
-- continue from that position later
pos = pos2 + 1
-- additional checks for word boundaries -- additional checks for word boundaries
local doesMatchWhen = false local doesMatchWhen = false
@ -441,8 +468,8 @@ end
-- @param text string -- @param text string
-- @param replacements table of mappings -- @param replacements table of mappings
-- @return string -- @return string
function Grichelde:ReplaceAndConsolidate(text, replacements) function Grichelde:ReplaceAndConsolidate(text, _replacements)
local replacements = replacements or self.db.profile.replacements or {} local replacements = _replacements or self.db.profile.replacements or {}
self:TracePrint("ReplaceAndConsolidate : replacements") self:TracePrint("ReplaceAndConsolidate : replacements")
self:TracePrint(replacements) self:TracePrint(replacements)
@ -531,7 +558,6 @@ function Grichelde:CheckForLink(text, currentChar)
for _, pattern in ipairs(Grichelde.IGNORE_PATTERNS.LINKS) do for _, pattern in ipairs(Grichelde.IGNORE_PATTERNS.LINKS) do
local pos1, pos2 = find(text, "^" .. pattern) local pos1, pos2 = find(text, "^" .. pattern)
if (pos1 == 1) and (pos2 ~= nil) then if (pos1 == 1) and (pos2 ~= nil) then
local match = sub(text, pos1, pos2)
self:DebugPrint("CheckForLink : Found link or texture pattern \"%s\" at (%d, %d)", pattern, pos1, pos2) self:DebugPrint("CheckForLink : Found link or texture pattern \"%s\" at (%d, %d)", pattern, pos1, pos2)
return pos2 return pos2
end end
@ -590,10 +616,10 @@ function Grichelde:CheckForRaidTargetMarkers(text, currentChar)
local translation = toLower(self.L["IgnorePattern_" .. localizedRT]) local translation = toLower(self.L["IgnorePattern_" .. localizedRT])
local localizedPattern = "^{" .. translation .. "}" local localizedPattern = "^{" .. translation .. "}"
self:TracePrint("CheckForPreversableText : localizedPattern:", localizedPattern) self:TracePrint("CheckForPreversableText : localizedPattern:", localizedPattern)
local pos1, pos2 = find(lowerText, localizedPattern) local p1, p2 = find(lowerText, localizedPattern)
if (pos1 == 1) and (pos2 ~= nil) then if (p1 == 1) and (p2 ~= nil) then
self:DebugPrint("CheckForPreversableText : Found localized raid target marker \"%s\" at (%d, %d)", localizedPattern, pos1, pos2) self:DebugPrint("CheckForPreversableText : Found localized raid target marker \"%s\" at (%d, %d)", localizedPattern, p1, p2)
return pos2 return p2
end end
end end
end end
@ -636,9 +662,9 @@ end
-- @param previousChar string(1) previous character of the text, otherwise unreachable -- @param previousChar string(1) previous character of the text, otherwise unreachable
-- @param preserveEmotes boolean ignore replacements for emotes, for testing purposes -- @param preserveEmotes boolean ignore replacements for emotes, for testing purposes
-- @return number -- @return number
function Grichelde:CheckForPreversableText(text, currentChar, previousChar, replaceEmotes) function Grichelde:CheckForPreversableText(text, currentChar, previousChar, _replaceEmotes)
self:DebugPrint("CheckForPreversableText : text:", text) self:DebugPrint("CheckForPreversableText : text:", text)
local replaceEmotes = replaceEmotes or self.db.profile.channels.emote or false local replaceEmotes = _replaceEmotes or self.db.profile.channels.emote or false
local linkPos = self:CheckForLink(text, currentChar) local linkPos = self:CheckForLink(text, currentChar)
if (linkPos ~= nil) then if (linkPos ~= nil) then
@ -679,11 +705,11 @@ end
-- @param text string the text to apply the mappings on -- @param text string the text to apply the mappings on
-- @param preserveEmotes boolean ignore replacements for emotes, for testing purposes -- @param preserveEmotes boolean ignore replacements for emotes, for testing purposes
-- @return string -- @return string
function Grichelde:ReplaceText(text, replacements, replaceEmotes) function Grichelde:ReplaceText(text, _replacements, _replaceEmotes)
local lookAheads = { '|', '*', '<', '%', '{', '(', 'o' } local lookAheads = { '|', '*', '<', '%', '{', '(', 'o' }
local newText = text local newText = text
local preserveEmotes = replaceEmotes or self.db.profile.channels.emote or false local preserveEmotes = _replaceEmotes or self.db.profile.channels.emote or false
local replacements = replacements or self.db.profile.replacements or {} local replacements = _replacements or self.db.profile.replacements or {}
local finalText, replaceText = "", "" local finalText, replaceText = "", ""
local currentChar local currentChar
local escape = 0 local escape = 0

@ -5,7 +5,9 @@ local Grichelde = _G.Grichelde or {}
-- constants and upvalues -- constants and upvalues
Grichelde.LOG_LEVEL = { DEBUG = 1, TRACE = 2 } Grichelde.LOG_LEVEL = { DEBUG = 1, TRACE = 2 }
-- chat input in client is limited to 255 bytes (unicode length is less)
Grichelde.INPUT_LIMIT = 255 Grichelde.INPUT_LIMIT = 255
-- safety measure in case malformed user input causes infinite loops on string parsing
Grichelde.ENDLESS_LOOP_LIMIT = 10000 Grichelde.ENDLESS_LOOP_LIMIT = 10000
Grichelde.MAPPING_OFFSET = 10 Grichelde.MAPPING_OFFSET = 10
Grichelde.MINIMAP_ENABLED = 1.0 Grichelde.MINIMAP_ENABLED = 1.0
@ -169,11 +171,11 @@ local function nilOrEmpty(s)
return s == nil or s:trim() == "" return s == nil or s:trim() == ""
end end
local function spairs(t, orderFunc) local function spairs(tbl, orderFunc)
-- collect the keys -- collect the keys
local sortedKeys = {} local sortedKeys = {}
-- for every non-nil value -- for every non-nil value
for key, _ in Grichelde.F.pairs(t) do for key, _ in Grichelde.F.pairs(tbl) do
Grichelde.F.tInsert(sortedKeys, key) Grichelde.F.tInsert(sortedKeys, key)
end end
@ -189,22 +191,22 @@ local function spairs(t, orderFunc)
return function() return function()
it = it + 1 it = it + 1
if (sortedKeys[it] ~= nil) then if (sortedKeys[it] ~= nil) then
return sortedKeys[it], t[sortedKeys[it]] return sortedKeys[it], tbl[sortedKeys[it]]
else else
return nil return nil
end end
end end
end end
local function tFilter(t, condition, extract) local function tFilter(type, condition, extract)
local filtered = {} local filtered = {}
for key, value in Grichelde.F.pairs(t) do for key, value in Grichelde.F.pairs(type) do
local cond = false local cond = false
if (condition) then if (condition) then
local t = Grichelde.F.type(condition) local typ = Grichelde.F.type(condition)
if (t == "function") then if (typ == "function") then
cond = condition(t, key, value) cond = condition(typ, key, value)
elseif (t == "string") or (t == "number") then elseif (typ == "string") or (typ == "number") then
cond = (value == condition) cond = (value == condition)
end end
end end
@ -212,7 +214,7 @@ local function tFilter(t, condition, extract)
if (cond) then if (cond) then
local val = value local val = value
if (extract and (Grichelde.F.type(extract) == "function")) then if (extract and (Grichelde.F.type(extract) == "function")) then
val = extract(t, key, value) val = extract(type, key, value)
end end
Grichelde.F.tInsert(filtered, val) Grichelde.F.tInsert(filtered, val)
end end
@ -220,20 +222,20 @@ local function tFilter(t, condition, extract)
return filtered return filtered
end end
local function tSize(t) local function tSize(tbl)
local size = 0 local size = 0
if (t ~= nil) then if (tbl ~= nil) then
-- for every non-nil value -- for every non-nil value
for _, _ in Grichelde.F.pairs(t) do for _, _ in Grichelde.F.pairs(tbl) do
size = size + 1 size = size + 1
end end
end end
return size return size
end end
local function tIsEmpty(t) local function tIsEmpty(tbl)
if (not t) then return true end if (not tbl) then return true end
return Grichelde.F.tNext(t) == nil return Grichelde.F.tNext(tbl) == nil
end end
local function tClone(orig) local function tClone(orig)
@ -323,11 +325,11 @@ local function isCapital(word)
return false return false
else else
local first, rest = Grichelde.F.getNextCharUtf8(word) local first, rest = Grichelde.F.getNextCharUtf8(word)
local isCapital = Grichelde.F.isUpper(first) local isCap = Grichelde.F.isUpper(first)
if (rest ~= nil) then if (rest ~= nil) then
return isCapital and Grichelde.F.isLower(rest) return isCap and Grichelde.F.isLower(rest)
else else
return isCapital return isCap
end end
end end
end end
@ -346,8 +348,8 @@ local function capitalize(word)
end end
end end
local function color(color, text) local function color(colour, text)
return color .. text .. Grichelde.COLOR_CODES.CLOSE return colour .. text .. Grichelde.COLOR_CODES.CLOSE
end end
local function cPrefix(text) local function cPrefix(text)

@ -2,8 +2,8 @@
local _G = _G local _G = _G
local Grichelde = _G.Grichelde or {} local Grichelde = _G.Grichelde or {}
local pairs, tInsert, tClone, tWipe, unpack, join, toString local pairs, tInsert, tClone, unpack, join, toString
= Grichelde.F.pairs, Grichelde.F.tInsert, Grichelde.F.tClone, Grichelde.F.tWipe, Grichelde.F.unpack, Grichelde.F.join, Grichelde.F.toString = Grichelde.F.pairs, Grichelde.F.tInsert, Grichelde.F.tClone, Grichelde.F.unpack, Grichelde.F.join, Grichelde.F.toString
function Grichelde.getDefaultConfig() function Grichelde.getDefaultConfig()
return { return {

@ -2,8 +2,8 @@
local _G = _G local _G = _G
local Grichelde = _G.Grichelde or {} local Grichelde = _G.Grichelde or {}
local cPrefix, cGreen, cRed local cGreen, cRed
= Grichelde.F.cPrefix, Grichelde.F.cGreen, Grichelde.F.cRed = Grichelde.F.cGreen, Grichelde.F.cRed
--- add Minimap button --- add Minimap button

@ -2,7 +2,7 @@
local _G = _G local _G = _G
local Grichelde = _G.Grichelde or {} local Grichelde = _G.Grichelde or {}
local find, pairs, tSize, cRed, cGreen, format = Grichelde.F.find, Grichelde.F.pairs, Grichelde.F.tSize, Grichelde.F.cRed, Grichelde.F.cGreen, Grichelde.F.format local find, pairs, tSize, cRed, cGreen = Grichelde.F.find, Grichelde.F.pairs, Grichelde.F.tSize, Grichelde.F.cRed, Grichelde.F.cGreen
function Grichelde:TestMatch(text, pattern) function Grichelde:TestMatch(text, pattern)
-- disable debug print out for testing -- disable debug print out for testing
@ -17,6 +17,7 @@ function Grichelde:TestMatch(text, pattern)
Grichelde.logLevel = oldLogLevel Grichelde.logLevel = oldLogLevel
end end
--- Invoke ingame with /run Grichelde:RunTests()
function Grichelde:RunTests() function Grichelde:RunTests()
local function test(name, replacements, testData, replaceEmotes) local function test(name, replacements, testData, replaceEmotes)
local i, ok, size = 0, 0, tSize(testData) local i, ok, size = 0, 0, tSize(testData)
@ -778,7 +779,7 @@ function Grichelde:RunTests()
if (ok == all) then if (ok == all) then
self:PrefixedPrint("All %d tests %s", all, cGreen("passed")) self:PrefixedPrint("All %d tests %s", all, cGreen("passed"))
else else
self:PrefixedPrint("%d test %s, %d tests %s", all - ok, cRed("failed"), ok, cGreen("passed")) self:PrefixedPrint("%d test%s %s, %d tests %s", all - ok, all - ok > 1 and "s" or "", cRed("failed"), ok, cGreen("passed"))
end end
-- restore old loglevel -- restore old loglevel

@ -2,8 +2,8 @@
local _G = _G local _G = _G
local Grichelde = _G.Grichelde or {} local Grichelde = _G.Grichelde or {}
local pairs, tSize, tClone, find, sub, cGreen, cOrange, cRed, toNumber local pairs, tClone, find, sub, cGreen, cOrange, cRed, toNumber
= Grichelde.F.pairs, Grichelde.F.tSize,Grichelde.F.tClone, Grichelde.F.find, Grichelde.F.sub, Grichelde.F.cGreen, Grichelde.F.cOrange, Grichelde.F.cRed, Grichelde.F.toNumber = Grichelde.F.pairs, Grichelde.F.tClone, Grichelde.F.find, Grichelde.F.sub, Grichelde.F.cGreen, Grichelde.F.cOrange, Grichelde.F.cRed, Grichelde.F.toNumber
function Grichelde:Upgrade_To_v060() function Grichelde:Upgrade_To_v060()
self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.6.0")) self:PrefixedPrint(self.L.Upgrade_ToVersion, cOrange("0.6.0"))

@ -0,0 +1,48 @@
## Interface: 20504
## Title: Grichelde
## Notes: Replaces characters of your chat input line before sending.
## Notes-de: Ersetzt eingegebene Zeichen in der Chat-Zeile vor dem Versenden.
## Version: 1.1.4
## Author: Teilzeit-Jedi
## eMail: tj@teilzeit-jedi.de
## X-Build: BCC
## X-Compatible: 11403
## X-Compatible: 30400
## X-Compatible: 90207
## X-Curse-Project-ID: 385480
## X-License: GPLv3
## X-Category: Chat/Communication
## X-Credits: Teilzeit-Jedi
## X-Embeds: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon
## OptionalDeps: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon
## SavedVariables: GricheldeDB
Libs\LibStub\LibStub.lua
Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
Libs\AceAddon-3.0\AceAddon-3.0.xml
Libs\AceLocale-3.0\AceLocale-3.0.xml
Libs\AceEvent-3.0\AceEvent-3.0.xml
Libs\AceHook-3.0\AceHook-3.0.xml
Libs\AceConsole-3.0\AceConsole-3.0.xml
Libs\AceDB-3.0\AceDB-3.0.xml
Libs\AceDBOptions-3.0\AceDBOptions-3.0.xml
Libs\AceGUI-3.0\AceGUI-3.0.xml
Libs\AceConfig-3.0\AceConfig-3.0.xml
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua
Grichelde.lua
GricheldeConstants.lua
localisation.xml
GricheldeUtils.lua
GricheldeDatabase.lua
GricheldeUpgrade.lua
GricheldeOptions.lua
GricheldeMinimap.lua
GricheldeChat.lua

@ -0,0 +1,48 @@
## Interface: 11403
## Title: Grichelde
## Notes: Replaces characters of your chat input line before sending.
## Notes-de: Ersetzt eingegebene Zeichen in der Chat-Zeile vor dem Versenden.
## Version: 1.1.4
## Author: Teilzeit-Jedi
## eMail: tj@teilzeit-jedi.de
## X-Build: Classic
## X-Compatible: 20504
## X-Compatible: 30400
## X-Compatible: 90207
## X-Curse-Project-ID: 385480
## X-License: GPLv3
## X-Category: Chat/Communication
## X-Credits: Teilzeit-Jedi
## X-Embeds: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon
## OptionalDeps: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon
## SavedVariables: GricheldeDB
Libs\LibStub\LibStub.lua
Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
Libs\AceAddon-3.0\AceAddon-3.0.xml
Libs\AceLocale-3.0\AceLocale-3.0.xml
Libs\AceEvent-3.0\AceEvent-3.0.xml
Libs\AceHook-3.0\AceHook-3.0.xml
Libs\AceConsole-3.0\AceConsole-3.0.xml
Libs\AceDB-3.0\AceDB-3.0.xml
Libs\AceDBOptions-3.0\AceDBOptions-3.0.xml
Libs\AceGUI-3.0\AceGUI-3.0.xml
Libs\AceConfig-3.0\AceConfig-3.0.xml
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua
Grichelde.lua
GricheldeConstants.lua
localisation.xml
GricheldeUtils.lua
GricheldeDatabase.lua
GricheldeUpgrade.lua
GricheldeOptions.lua
GricheldeMinimap.lua
GricheldeChat.lua

@ -0,0 +1,48 @@
## Interface: 30400
## Title: Grichelde
## Notes: Replaces characters of your chat input line before sending.
## Notes-de: Ersetzt eingegebene Zeichen in der Chat-Zeile vor dem Versenden.
## Version: 1.1.4
## Author: Teilzeit-Jedi
## eMail: tj@teilzeit-jedi.de
## X-Build: WotLK
## X-Compatible: 11403
## X-Compatible: 20504
## X-Compatible: 90207
## X-Curse-Project-ID: 385480
## X-License: GPLv3
## X-Category: Chat/Communication
## X-Credits: Teilzeit-Jedi
## X-Embeds: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon
## OptionalDeps: LibStub, CallbackHandler, Ace3, LibDataBroker, LibDBIcon
## SavedVariables: GricheldeDB
Libs\LibStub\LibStub.lua
Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
Libs\AceAddon-3.0\AceAddon-3.0.xml
Libs\AceLocale-3.0\AceLocale-3.0.xml
Libs\AceEvent-3.0\AceEvent-3.0.xml
Libs\AceHook-3.0\AceHook-3.0.xml
Libs\AceConsole-3.0\AceConsole-3.0.xml
Libs\AceDB-3.0\AceDB-3.0.xml
Libs\AceDBOptions-3.0\AceDBOptions-3.0.xml
Libs\AceGUI-3.0\AceGUI-3.0.xml
Libs\AceConfig-3.0\AceConfig-3.0.xml
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua
Grichelde.lua
GricheldeConstants.lua
localisation.xml
GricheldeUtils.lua
GricheldeDatabase.lua
GricheldeUpgrade.lua
GricheldeOptions.lua
GricheldeMinimap.lua
GricheldeChat.lua

@ -0,0 +1,9 @@
## Interface: 20400
## Title: Lib: LibStub
## Notes: Universal Library Stub
## Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel
## X-Website: http://jira.wowace.com/browse/LS
## X-Category: Library
## X-License: Public Domain
LibStub.lua

@ -1,6 +1,6 @@
# Grichelde - Text replacer # Grichelde - Text replacer
Grichelde is a WoW Addon for Classic, Burning Crusade Classic and Retail (Shadowlands) that replaces any characters or words you typed in a chat input line according to your replacement rules. Grichelde is a WoW Addon for Classic, Wrath of the Lich King Classic and Retail (Shadowlands) that replaces any characters or words you typed in a chat input line according to your replacement rules.
The replacement is done **before** the text is send to other players/in the target channel. It does **not** change text other players have written in the chat, but the text they will see **from you**. The replacement is done **before** the text is send to other players/in the target channel. It does **not** change text other players have written in the chat, but the text they will see **from you**.
Its purpose is to simulate a speaking disability of your toon and hereby strengthen immersion in roleplay. Its purpose is to simulate a speaking disability of your toon and hereby strengthen immersion in roleplay.

Loading…
Cancel
Save