<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3Alanguages%2Fchars</id>
	<title>Module:languages/chars - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3Alanguages%2Fchars"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:languages/chars&amp;action=history"/>
	<updated>2026-04-09T21:41:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:languages/chars&amp;diff=493289&amp;oldid=prev</id>
		<title>Sware at 17:34, 8 April 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:languages/chars&amp;diff=493289&amp;oldid=prev"/>
		<updated>2026-04-08T17:34:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:34, 8 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	caronbelow			= u(0x032C),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	caronbelow			= u(0x032C),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	brevebelow			= u(0x032E),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	brevebelow			= u(0x032E),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	tildebelow          = u(0x0330),&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	macronbelow			= u(0x0331),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	macronbelow			= u(0x0331),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	perispomeni			= u(0x0342),&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	perispomeni			= u(0x0342),&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:languages/chars&amp;diff=493286&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;local export = {}  local table = table local insert = table.insert local u = require(&quot;Module:string/char&quot;)  -- UTF-8 encoded strings for some commonly-used diacritics. local c = { 	prime				= u(0x02B9), 	grave				= u(0x0300), 	acute				= u(0x0301), 	circ				= u(0x0302), -- circumflex 	tilde				= u(0x0303), 	macron				= u(0x0304), 	overline			= u(0x0305), 	breve				= u(0x0306), 	dotabove			= u(0x0307), 	diaer				= u(0x0308), -- diaeresis 	ringabove			= u(0x030A), 	dacute...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:languages/chars&amp;diff=493286&amp;oldid=prev"/>
		<updated>2026-04-08T17:29:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local export = {}  local table = table local insert = table.insert local u = require(&amp;quot;Module:string/char&amp;quot;)  -- UTF-8 encoded strings for some commonly-used diacritics. local c = { 	prime				= u(0x02B9), 	grave				= u(0x0300), 	acute				= u(0x0301), 	circ				= u(0x0302), -- circumflex 	tilde				= u(0x0303), 	macron				= u(0x0304), 	overline			= u(0x0305), 	breve				= u(0x0306), 	dotabove			= u(0x0307), 	diaer				= u(0x0308), -- diaeresis 	ringabove			= u(0x030A), 	dacute...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local table = table&lt;br /&gt;
local insert = table.insert&lt;br /&gt;
local u = require(&amp;quot;Module:string/char&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-- UTF-8 encoded strings for some commonly-used diacritics.&lt;br /&gt;
local c = {&lt;br /&gt;
	prime				= u(0x02B9),&lt;br /&gt;
	grave				= u(0x0300),&lt;br /&gt;
	acute				= u(0x0301),&lt;br /&gt;
	circ				= u(0x0302), -- circumflex&lt;br /&gt;
	tilde				= u(0x0303),&lt;br /&gt;
	macron				= u(0x0304),&lt;br /&gt;
	overline			= u(0x0305),&lt;br /&gt;
	breve				= u(0x0306),&lt;br /&gt;
	dotabove			= u(0x0307),&lt;br /&gt;
	diaer				= u(0x0308), -- diaeresis&lt;br /&gt;
	ringabove			= u(0x030A),&lt;br /&gt;
	dacute				= u(0x030B), -- double acute&lt;br /&gt;
	caron				= u(0x030C),&lt;br /&gt;
	lineabove			= u(0x030D),&lt;br /&gt;
	dgrave				= u(0x030F), -- double grave&lt;br /&gt;
	invbreve			= u(0x0311), -- inverted breve&lt;br /&gt;
	turnedcommaabove	= u(0x0312),&lt;br /&gt;
	commaabove			= u(0x0313),&lt;br /&gt;
	revcommaabove		= u(0x0314), -- reversed comma above&lt;br /&gt;
	dotbelow			= u(0x0323),&lt;br /&gt;
	diaerbelow			= u(0x0324), -- diaeresis below&lt;br /&gt;
	ringbelow			= u(0x0325),&lt;br /&gt;
	cedilla				= u(0x0327),&lt;br /&gt;
	ogonek				= u(0x0328),&lt;br /&gt;
	caronbelow			= u(0x032C),&lt;br /&gt;
	brevebelow			= u(0x032E),&lt;br /&gt;
	macronbelow			= u(0x0331),&lt;br /&gt;
	perispomeni			= u(0x0342),&lt;br /&gt;
	ypogegrammeni		= u(0x0345),&lt;br /&gt;
	CGJ					= u(0x034F), -- combining grapheme joiner&lt;br /&gt;
	zigzag				= u(0x035B),&lt;br /&gt;
	dbrevebelow			= u(0x035C), -- double breve below&lt;br /&gt;
	dmacron				= u(0x035E), -- double macron&lt;br /&gt;
	dtilde				= u(0x0360), -- double tilde&lt;br /&gt;
	dinvbreve			= u(0x0361), -- double inverted breve&lt;br /&gt;
	small_a				= u(0x0363),&lt;br /&gt;
	small_e				= u(0x0364),&lt;br /&gt;
	small_i				= u(0x0365),&lt;br /&gt;
	small_o				= u(0x0366),&lt;br /&gt;
	small_u				= u(0x0367),&lt;br /&gt;
	keraia				= u(0x0374),&lt;br /&gt;
	lowerkeraia			= u(0x0375),&lt;br /&gt;
	tonos				= u(0x0384),&lt;br /&gt;
	palatalization		= u(0x0484),&lt;br /&gt;
	dasiapneumata		= u(0x0485),&lt;br /&gt;
	psilipneumata		= u(0x0486),&lt;br /&gt;
	kashida				= u(0x0640),&lt;br /&gt;
	fathatan			= u(0x064B),&lt;br /&gt;
	dammatan			= u(0x064C),&lt;br /&gt;
	kasratan			= u(0x064D),&lt;br /&gt;
	fatha				= u(0x064E),&lt;br /&gt;
	damma				= u(0x064F),&lt;br /&gt;
	kasra				= u(0x0650),&lt;br /&gt;
	shadda				= u(0x0651),&lt;br /&gt;
	sukun				= u(0x0652),&lt;br /&gt;
	hamzaabove			= u(0x0654),&lt;br /&gt;
	nunghunna			= u(0x0658),&lt;br /&gt;
	zwarakay			= u(0x0659),&lt;br /&gt;
	smallv				= u(0x065A),&lt;br /&gt;
	superalef			= u(0x0670),&lt;br /&gt;
	udatta				= u(0x0951),&lt;br /&gt;
	anudatta			= u(0x0952),&lt;br /&gt;
	tacute				= u(0x1ACB), -- triple acute&lt;br /&gt;
	dsvarita			= u(0x1CDA), -- double svarita&lt;br /&gt;
	tsvarita			= u(0x1CDB), -- triple svarita&lt;br /&gt;
	dottedgrave			= u(0x1DC0),&lt;br /&gt;
	dottedacute			= u(0x1DC1),&lt;br /&gt;
	coronis				= u(0x1FBD),&lt;br /&gt;
	psili				= u(0x1FBF),&lt;br /&gt;
	dasia				= u(0x1FEF),&lt;br /&gt;
	ZWNJ				= u(0x200C), -- zero width non-joiner&lt;br /&gt;
	ZWJ					= u(0x200D), -- zero width joiner&lt;br /&gt;
	RSQuo				= u(0x2019), -- right single quote&lt;br /&gt;
	kavyka				= u(0xA67C),&lt;br /&gt;
	VS01				= u(0xFE00), -- variation selector 1&lt;br /&gt;
	-- Punctuation for the standard_chars field.&lt;br /&gt;
	-- Note: characters are literal (i.e. no magic characters).&lt;br /&gt;
	punc			= &amp;quot; &amp;#039;,-​‌‍‐‑‒–—…∅◌&amp;quot;,&lt;br /&gt;
	-- Range covering all diacritics.&lt;br /&gt;
	diacritics		= u(0x300) .. &amp;quot;-&amp;quot; .. u(0x34E) ..&lt;br /&gt;
						u(0x350) .. &amp;quot;-&amp;quot; .. u(0x36F) ..&lt;br /&gt;
						u(0x1AB0) .. &amp;quot;-&amp;quot; .. u(0x1ACE) ..&lt;br /&gt;
						u(0x1DC0) .. &amp;quot;-&amp;quot; .. u(0x1DFF) ..&lt;br /&gt;
						u(0x20D0) .. &amp;quot;-&amp;quot; .. u(0x20F0) ..&lt;br /&gt;
						u(0xFE20) .. &amp;quot;-&amp;quot; .. u(0xFE2F),&lt;br /&gt;
}&lt;br /&gt;
-- Braille characters for the standard_chars field.&lt;br /&gt;
local braille = {}&lt;br /&gt;
for i = 0x2800, 0x28FF do&lt;br /&gt;
	insert(braille, u(i))&lt;br /&gt;
end&lt;br /&gt;
c.braille = table.concat(braille)&lt;br /&gt;
export.chars = c&lt;br /&gt;
&lt;br /&gt;
-- PUA characters, generally used in sortkeys.&lt;br /&gt;
-- Note: if the limit needs to be increased, do so in powers of 2 (due to the way memory is allocated for tables).&lt;br /&gt;
local p = {}&lt;br /&gt;
for i = 1, 32 do&lt;br /&gt;
	p[i] = u(0xF000+i-1)&lt;br /&gt;
end&lt;br /&gt;
export.puaChars = p&lt;br /&gt;
&lt;br /&gt;
local cs = {}&lt;br /&gt;
&lt;br /&gt;
-- Used for the default display_text and strip_diacritics for Grek, but parts also used directly by Albanian (sq).&lt;br /&gt;
cs[&amp;quot;Grek-displaytext&amp;quot;] = {&lt;br /&gt;
	from = {&amp;quot;Þ&amp;quot;, &amp;quot;þ&amp;quot;, c.turnedcommaabove, &amp;quot;[&amp;#039;ʼ&amp;quot; .. c.RSQuo .. c.prime .. c.keraia .. c.coronis .. c.psili .. &amp;quot;]&amp;quot;}, -- Not tonos: used as the numeral sign in entries.&lt;br /&gt;
	to = {&amp;quot;Ϸ&amp;quot;, &amp;quot;ϸ&amp;quot;, c.revcommaabove, c.RSQuo}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
cs[&amp;quot;Grek-stripdiacritics&amp;quot;] = {&lt;br /&gt;
	remove_diacritics = c.caron .. c.diaerbelow .. c.brevebelow,&lt;br /&gt;
	from = cs[&amp;quot;Grek-displaytext&amp;quot;].from,&lt;br /&gt;
	to = {&amp;quot;Ϸ&amp;quot;, &amp;quot;ϸ&amp;quot;, c.revcommaabove, &amp;quot;&amp;#039;&amp;quot;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Used in the default strip_diacritics and sort_key for Cyrs, but also used directly by Old Ruthenian (zle-ort).&lt;br /&gt;
cs[&amp;quot;Cyrs_remove_diacritics&amp;quot;] =&lt;br /&gt;
	c.grave .. c.acute .. c.dotabove .. c.diaer .. c.invbreve .. c.palatalization .. c.dasiapneumata .. c.psilipneumata .. c.dottedgrave .. c.dottedacute .. c.kavyka&lt;br /&gt;
&lt;br /&gt;
export.chars_substitutions = cs&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>