<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AISO_3166%2Fdata</id>
	<title>Module:ISO 3166/data - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AISO_3166%2Fdata"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:ISO_3166/data&amp;action=history"/>
	<updated>2026-05-09T11:38:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:ISO_3166/data&amp;diff=136564&amp;oldid=prev</id>
		<title>imported&gt;SiBr4: Fixing global variable</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:ISO_3166/data&amp;diff=136564&amp;oldid=prev"/>
		<updated>2019-02-04T16:18:54Z</updated>

		<summary type="html">&lt;p&gt;Fixing global variable&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local data = mw.loadData(&amp;quot;Module:ISO 3166/data/National&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function p.list(frame)&lt;br /&gt;
--Returns a list of subpages and associated countries&lt;br /&gt;
local codes = {}&lt;br /&gt;
for alpha2,cdata in pairs(data) do&lt;br /&gt;
  codes[#codes+1] = {alpha2,cdata.name}&lt;br /&gt;
end&lt;br /&gt;
table.sort(codes, function(t1,t2) return t1[1]&amp;lt;t2[1] end)&lt;br /&gt;
&lt;br /&gt;
local out = {&amp;quot;* [[Module:ISO 3166/data/National|National]]&amp;quot;}&lt;br /&gt;
for _,cdata in ipairs(codes) do&lt;br /&gt;
  out[#out+1] = &amp;quot;* [[Module:ISO 3166/data/&amp;quot;..cdata[1]..&amp;quot;|&amp;quot;..cdata[1]..&amp;quot; (&amp;quot;..cdata[2]..&amp;quot;)]]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
return table.concat(out,&amp;quot;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.subpagetest(frame)&lt;br /&gt;
--Returns a table row indicating the existence of data pages (see [[User:SiBr4/sandbox#Data subpage test]])&lt;br /&gt;
&lt;br /&gt;
local function cell(code,d)&lt;br /&gt;
  local sdata&lt;br /&gt;
  if not data[code] then&lt;br /&gt;
    return &amp;quot;&amp;quot; --Unassigned or reserved 3166-1 code&lt;br /&gt;
  else&lt;br /&gt;
    local sname = &amp;quot;Module:ISO 3166/data/&amp;quot;..code&lt;br /&gt;
    if not (d or mw.title.new(sname).exists) then&lt;br /&gt;
      return &amp;quot;title=\&amp;quot;&amp;quot;..data[code].name..&amp;quot;\&amp;quot; style=\&amp;quot;background:#fee;\&amp;quot;|[[&amp;quot;..sname..&amp;quot;|-]]&amp;quot; --Data subpage doesn&amp;#039;t exist&lt;br /&gt;
    else&lt;br /&gt;
      sdata = mw.loadData(sname)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  for _,_ in pairs(sdata) do&lt;br /&gt;
    return &amp;quot;title=\&amp;quot;&amp;quot;..data[code].name..&amp;quot;\&amp;quot; style=\&amp;quot;background:#efe;\&amp;quot;|n&amp;quot; --Non-empty 3166-2 entry&lt;br /&gt;
  end&lt;br /&gt;
  return &amp;quot;title=\&amp;quot;&amp;quot;..data[code].name..&amp;quot;\&amp;quot; style=\&amp;quot;background:#eef;\&amp;quot;|e&amp;quot; --Empty 3166-2 entry&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local letter = frame.args[1]&lt;br /&gt;
local out = &amp;quot;|-\n!&amp;quot;..letter..&amp;quot;*&amp;quot;&lt;br /&gt;
for i = 65, 90 do&lt;br /&gt;
  out = out..&amp;quot;\n|&amp;quot;..cell(letter..string.char(i),frame.args[2])&lt;br /&gt;
end&lt;br /&gt;
return out&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.testall(frame)&lt;br /&gt;
--Search across all subpages for problems with names&lt;br /&gt;
&lt;br /&gt;
local strip = require(&amp;quot;Module:ISO 3166&amp;quot;).strip&lt;br /&gt;
&lt;br /&gt;
local function subpage(p)&lt;br /&gt;
  return &amp;quot;[[Module:ISO 3166/data/&amp;quot;..p..&amp;quot;|/&amp;quot;..p..&amp;quot;]]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
local function testname(names,inames,dnames,page,code,name)&lt;br /&gt;
  if name then&lt;br /&gt;
  	if type(name)~=&amp;quot;string&amp;quot; then&lt;br /&gt;
  	  dnames[#dnames+1] = &amp;quot;*Unexpected non-string value in &amp;quot;..subpage(page)..&amp;quot; (&amp;quot;..code..&amp;quot;)&amp;quot;&lt;br /&gt;
  	else&lt;br /&gt;
      local sname = strip(name)&lt;br /&gt;
      if not names[sname] then&lt;br /&gt;
        inames[sname] = name&lt;br /&gt;
      else&lt;br /&gt;
        dnames[#dnames+1] = &amp;quot;*Duplicate name: \&amp;quot;&amp;quot;..name..&amp;quot;\&amp;quot; in &amp;quot;..subpage(page)&lt;br /&gt;
                            ..(names[sname]==name and &amp;quot; (exact)&amp;quot; or &amp;quot; (non-exact)&amp;quot;)..&amp;quot; (&amp;quot;..code..&amp;quot;)&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return names, inames, dnames&lt;br /&gt;
end&lt;br /&gt;
local function testnametable(names,inames,dnames,page,code,tab)&lt;br /&gt;
  if tab then&lt;br /&gt;
    if type(tab)~=&amp;quot;table&amp;quot; then&lt;br /&gt;
      dnames[#dnames+1] = &amp;quot;*Unexpected non-table value in &amp;quot;..subpage(page)..&amp;quot; (&amp;quot;..code..&amp;quot;)&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      for _,name in pairs(tab) do&lt;br /&gt;
        names, inames, dnames = testname(names,inames,dnames,page,code,name)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  return names, inames, dnames&lt;br /&gt;
end&lt;br /&gt;
local fields = {name=1,isoname=1,isonames=1,displayname=1,isodisplayname=1,isodisplaynames=1,altnames=1,lang=1,defaultlang=1,alpha3=1,numeric=1,nocode=1}&lt;br /&gt;
local function testentry(names,dnames,page,code,edata)&lt;br /&gt;
  for k,_ in pairs(edata) do&lt;br /&gt;
    if not fields[k] then&lt;br /&gt;
      dnames[#dnames+1] = &amp;quot;*Unknown field \&amp;quot;&amp;quot;..k..&amp;quot;\&amp;quot; in &amp;quot;..subpage(page)..&amp;quot; (&amp;quot;..code..&amp;quot;)&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  local inames = {}&lt;br /&gt;
  names, inames, dnames = testname(names,inames,dnames,page,code,edata.name)&lt;br /&gt;
  names, inames, dnames = testname(names,inames,dnames,page,code,edata.isoname)&lt;br /&gt;
  names, inames, dnames = testnametable(names,inames,dnames,page,code,edata.isonames)&lt;br /&gt;
  names, inames, dnames = testnametable(names,inames,dnames,page,code,edata.altnames)&lt;br /&gt;
  if not edata.nocode then&lt;br /&gt;
    names, inames, dnames = testname(names,inames,dnames,page,code,code)&lt;br /&gt;
  end&lt;br /&gt;
  if page==&amp;quot;National&amp;quot; then&lt;br /&gt;
    names, inames, dnames = testname(names,inames,dnames,page,code,edata.alpha3)&lt;br /&gt;
    names, inames, dnames = testname(names,inames,dnames,page,code,edata.numeric)&lt;br /&gt;
  end&lt;br /&gt;
  for k,v in pairs(inames) do names[k]=v end&lt;br /&gt;
  return names, dnames&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local dnames = {}&lt;br /&gt;
&lt;br /&gt;
--ISO 3166-1&lt;br /&gt;
local names = {}&lt;br /&gt;
for code,cdata in pairs(data) do&lt;br /&gt;
  names, dnames = testentry(names,dnames,&amp;quot;National&amp;quot;,code,cdata)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--ISO 3166-2&lt;br /&gt;
for code,_ in pairs(data) do&lt;br /&gt;
  names = {}&lt;br /&gt;
  local spage = &amp;quot;Module:ISO 3166/data/&amp;quot;..code&lt;br /&gt;
  if mw.title.new(spage).exists then&lt;br /&gt;
    local sdata = mw.loadData(spage)&lt;br /&gt;
    for scode,cdata in pairs(sdata) do&lt;br /&gt;
      if type(cdata)==&amp;quot;table&amp;quot; then&lt;br /&gt;
        names, dnames = testentry(names,dnames,code,scode,cdata)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if #dnames&amp;gt;0 then&lt;br /&gt;
  return table.concat(dnames,&amp;quot;\n&amp;quot;)&lt;br /&gt;
else&lt;br /&gt;
  return &amp;quot;None&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;SiBr4</name></author>
	</entry>
</feed>