Jump to content

Module:Check for clobbered parameters/sandbox

From Wikipedia, the free encyclopedia
localp={}localfunctiontrim(s)returns:match('^%s*(.-)%s*$')endlocalfunctionisnotempty(s)returnsands:match('%S')endfunctionp.check(frame)localargs=frame.argslocalpargs=frame:getParent().argslocalchecknested=isnotempty(args['nested'])localdelimiter=isnotempty(args['delimiter'])andargs['delimiter']or';'localargpairs={}fork,vinpairs(args)doiftype(k)=='number'thenlocalplist=mw.text.split(v,delimiter)localpfound={}localcount=0forii,vvinipairs(plist)dovv=trim(vv)ifchecknestedandpargs[vv]orisnotempty(pargs[vv])thencount=count+1table.insert(pfound,vv)endendifcount>1thentable.insert(argpairs,pfound)endendendlocalwarnmsg={}localres=''localcat=''ifargs['cat']andmw.ustring.match(args['cat'],'^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:')thencat=args['cat']endlocaltemplate=args['template']and' in '..args['template']or''if#argpairs>0thenfori,vinipairs(argpairs)dotable.insert(warnmsg,mw.ustring.format('Using more than one of the following parameters%s: <code>%s</code>.',template,table.concat(v,'</code>, <code>')))ifcat~=''thenres=res..'[['..cat..'|'..(v[1]==''and' 'or'')..v[1]..']]'endendendif#warnmsg>0thenres=require('Module:If preview')._warning({table.concat(warnmsg,'<br>')})..resendreturnresendreturnp
close