<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Module%3AUnicode_data%2Fderived_core_properties%2Fmake</id>
	<title>Module:Unicode data/derived core properties/make - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://70.231.62.181/index.php?action=history&amp;feed=atom&amp;title=Module%3AUnicode_data%2Fderived_core_properties%2Fmake"/>
	<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Module:Unicode_data/derived_core_properties/make&amp;action=history"/>
	<updated>2026-04-22T01:22:26Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>http://70.231.62.181/index.php?title=Module:Unicode_data/derived_core_properties/make&amp;diff=22863685&amp;oldid=prev</id>
		<title>imported&gt;Erutuon at 01:52, 18 September 2019</title>
		<link rel="alternate" type="text/html" href="http://70.231.62.181/index.php?title=Module:Unicode_data/derived_core_properties/make&amp;diff=22863685&amp;oldid=prev"/>
		<updated>2019-09-18T01:52:37Z</updated>

		<summary type="html">&lt;p&gt;&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;
function p.main(frame)&lt;br /&gt;
	local page = frame.args[1] or &amp;quot;User:Erutuon/Unicode/DerivedCoreProperties.txt&amp;quot;&lt;br /&gt;
	local text = assert(mw.title.new(page):getContent())&lt;br /&gt;
	local default_ignorable = text&lt;br /&gt;
		:match(&amp;quot;Derived Property: Default_Ignorable_Code_Point.-(%f[^\n]%x%x%x%x.-)%s*\n# Total code points&amp;quot;)&lt;br /&gt;
	local singles, ranges = {}, {}&lt;br /&gt;
	for code_point1, code_point2 in default_ignorable:gmatch(&amp;quot;%f[^\n%z](%x+)%.?%.?(%x*)&amp;quot;) do&lt;br /&gt;
		code_point1, code_point2 = tonumber(code_point1, 16), tonumber(code_point2, 16)&lt;br /&gt;
		local last_range = ranges[#ranges]&lt;br /&gt;
		if last_range and last_range[2] == code_point1 - 1 then&lt;br /&gt;
			last_range[2] = code_point2 or code_point1&lt;br /&gt;
		elseif singles[code_point1 - 1] then&lt;br /&gt;
			singles[code_point1 - 1] = nil&lt;br /&gt;
			table.insert(ranges, { code_point1 - 1, code_point2 or code_point1 })&lt;br /&gt;
		else&lt;br /&gt;
			if not code_point2 then&lt;br /&gt;
				singles[code_point1] = true&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(ranges, { code_point1, code_point2 })&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
		local template = [[&lt;br /&gt;
local data = {}&lt;br /&gt;
&lt;br /&gt;
data.default_ignorable = {&lt;br /&gt;
	singles = {&lt;br /&gt;
...&lt;br /&gt;
	},&lt;br /&gt;
	ranges = {&lt;br /&gt;
...&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return data&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
	local Array = require &amp;quot;Module:array&amp;quot;&lt;br /&gt;
	local printed_ranges = Array()&lt;br /&gt;
	for _, range in ipairs(ranges) do&lt;br /&gt;
		local low, high, script_code = unpack(range)&lt;br /&gt;
		printed_ranges:insert((&amp;#039;\t\t{ 0x%05X, 0x%05X },&amp;#039;):format(low, high))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local printed_singles = Array()&lt;br /&gt;
	for codepoint in require &amp;#039;Module:TableTools&amp;#039;.sortedPairs(singles) do&lt;br /&gt;
		printed_singles:insert((&amp;#039;\t\t[0x%05X] = true,&amp;#039;):format(codepoint))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local data = template&lt;br /&gt;
		:gsub(&amp;#039;%.%.%.&amp;#039;, printed_singles:concat(&amp;#039;\n&amp;#039;), 1)&lt;br /&gt;
		:gsub(&amp;#039;%.%.%.&amp;#039;, printed_ranges:concat(&amp;#039;\n&amp;#039;), 1)&lt;br /&gt;
	&lt;br /&gt;
	return mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &amp;quot;syntaxhighlight&amp;quot;,&lt;br /&gt;
		content = data,&lt;br /&gt;
		args = { lang = &amp;quot;lua&amp;quot; }&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Erutuon</name></author>
	</entry>
</feed>