Module:Citation/CS1: Difference between revisions
No edit summary |
No edit summary |
||
| Line 1,659: | Line 1,659: | ||
]] | ]] | ||
local function get_display_names (max, count, list_name, etal) | local function get_display_names (max, count, list_name, etal) | ||
if is_set ( | local border = 1; | ||
if 'etal' == | if is_set (border) then | ||
if 'etal' == border:lower():gsub("[ '%.]", '') then -- the :gsub() portion makes 'etal' from a variety of 'et al.' spellings and stylings | |||
border = count + 1; -- number of authors + 1 so display all author name plus et al. | |||
etal = true; -- overrides value set by extract_names() | etal = true; -- overrides value set by extract_names() | ||
elseif | elseif border:match ('^%d+$') then -- if is a string of numbers | ||
border = tonumber (max); -- make it a number | |||
if | if border >= count then -- if |display-xxxxors= value greater than or equal to number of authors/editors | ||
add_maint_cat ('disp_name', cfg.special_case_translation [list_name]); | add_maint_cat ('disp_name', cfg.special_case_translation [list_name]); | ||
end | end | ||
else -- not a valid keyword or number | else -- not a valid keyword or number | ||
table.insert( z.message_tail, { set_error( 'invalid_param_val', {'display-' .. list_name, | table.insert( z.message_tail, { set_error( 'invalid_param_val', {'display-' .. list_name, border}, true ) } ); -- add error message | ||
border = nil; -- unset; as if |display-xxxxors= had not been set | |||
end | end | ||
end | end | ||
return | return border, etal; | ||
end | end | ||