Module:Citation/CS1: Difference between revisions

    No edit summary
    m (deprecated enumerated parameter error message fix;)
    Line 3,836: Line 3,836:
    local function validate (name, cite_class, empty)
    local function validate (name, cite_class, empty)
    local name = tostring (name);
    local name = tostring (name);
    local enum_name; -- for enumerated parameters, is name with enumerator replaced with '#'
    local state;
    local state;
    local function state_test (state, name) -- local function to do testing of state values
    local function state_test (state, name) -- local function to do testing of state values
    Line 3,859: Line 3,860:


    -- limited enumerated parameters list
    -- limited enumerated parameters list
    name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
    enum_name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
    state = whitelist.limited_numbered_arguments[name];
    state = whitelist.limited_numbered_arguments[enum_name];
    if true == state_test (state, name) then return true; end
    if true == state_test (state, name) then return true; end


    Line 3,875: Line 3,876:


    -- all enumerated parameters allowed
    -- all enumerated parameters allowed
    name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
    enum_name = name:gsub("%d+", "#" ); -- replace digit(s) with # (last25 becomes last#) (mw.ustring because non-Western 'local' digits)
    state = whitelist.numbered_arguments[name];
    state = whitelist.numbered_arguments[enum_name];
    if true == state_test (state, name) then return true; end
    if true == state_test (state, name) then return true; end


    Line 4,055: Line 4,056:
    elseif not utilities.is_set (v) then -- for empty parameters
    elseif not utilities.is_set (v) then -- for empty parameters
    if not validate (k, config.CitationClass, true) then -- is this empty parameter a valid parameter
    if not validate (k, config.CitationClass, true) then -- is this empty parameter a valid parameter
    k = ('' == k) and k:gsub ('^$', '(empty string)') or k; -- when k is empty string (or was space(s) trimmed to empty string), replace with descriptive text
    k = ('' == k) and '(empty string)' or k; -- when k is empty string (or was space(s) trimmed to empty string), replace with descriptive text
    table.insert (empty_unknowns, utilities.wrap_style ('parameter', k)); -- format for error message and add to the list
    table.insert (empty_unknowns, utilities.wrap_style ('parameter', k)); -- format for error message and add to the list
    end
    end