Module:Check for unknown parameters: Difference between revisions

    (gsub trick to avoid "Lua error in Module:Check_for_unknown_parameters at line 78: invalid capture index" at Brian Smith (rugby league, born 1954) due to |coachwin%2=64)
    (try encoding instead, will revert if this doesn't work)
    Line 51: Line 51:
    end
    end
    if not knownflag and ( not ignoreblank or isnotempty(v) )  then
    if not knownflag and ( not ignoreblank or isnotempty(v) )  then
    k = mw.text.encode(mw.text.encode(k),'%c%[%]=')
    k = mw.text.encode(mw.text.encode(k),'%c%[%]=%%')
    table.insert(values, k)
    table.insert(values, k)
    end
    end
    Line 60: Line 60:
    local vlen = mw.ustring.len(v)
    local vlen = mw.ustring.len(v)
    v = mw.ustring.sub(v, 1, (vlen < 25) and vlen or 25)
    v = mw.ustring.sub(v, 1, (vlen < 25) and vlen or 25)
    v = mw.text.encode(mw.text.encode(v),'%c%[%]=')
    v = mw.text.encode(mw.text.encode(v),'%c%[%]=%%')
    table.insert(values, k .. ' = ' .. v .. ((vlen >= 25) and ' ...' or ''))
    table.insert(values, k .. ' = ' .. v .. ((vlen >= 25) and ' ...' or ''))
    end
    end
    Line 76: Line 76:
    v = ' '
    v = ' '
    end
    end
    local r =  unknown:gsub('_VALUE_', {_VALUE_ = v})  -- avoid error with v = 'example%2' ("invalid capture index")
    local r =  unknown:gsub('_VALUE_')
    table.insert(res, r)
    table.insert(res, r)
    end
    end