aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkeyboard-config/rules
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/xkeyboard-config/rules')
-rw-r--r--xorg-server/xkeyboard-config/rules/Makefile.am472
-rw-r--r--xorg-server/xkeyboard-config/rules/base.extras.xml.in236
-rw-r--r--xorg-server/xkeyboard-config/rules/base.ml_s.part82
-rw-r--r--xorg-server/xkeyboard-config/rules/base.o_s.part286
-rw-r--r--xorg-server/xkeyboard-config/rules/bin/ml1_s.sh19
-rw-r--r--xorg-server/xkeyboard-config/rules/bin/ml1v1_s.sh11
-rw-r--r--xorg-server/xkeyboard-config/rules/bin/ml1v_s.sh11
-rw-r--r--xorg-server/xkeyboard-config/rules/bin/ml_s.sh15
-rw-r--r--xorg-server/xkeyboard-config/rules/bin/mln_s.sh22
-rw-r--r--xorg-server/xkeyboard-config/rules/bin/mlnvn_s.sh14
-rw-r--r--xorg-server/xkeyboard-config/rules/bin/mlv_s.sh11
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/Makefile.am134
-rw-r--r--xorg-server/xkeyboard-config/rules/compat/makefile53
-rw-r--r--xorg-server/xkeyboard-config/rules/makefile197
-rw-r--r--xorg-server/xkeyboard-config/rules/merge.py13
-rw-r--r--xorg-server/xkeyboard-config/rules/xkb.dtd110
-rw-r--r--xorg-server/xkeyboard-config/rules/xml2lst.pl524
17 files changed, 1218 insertions, 992 deletions
diff --git a/xorg-server/xkeyboard-config/rules/Makefile.am b/xorg-server/xkeyboard-config/rules/Makefile.am
index f2d73ce80..dcf9e3d90 100644
--- a/xorg-server/xkeyboard-config/rules/Makefile.am
+++ b/xorg-server/xkeyboard-config/rules/Makefile.am
@@ -1,236 +1,236 @@
-SUBDIRS = bin compat
-
-if CREATE_RULES_SYMLINK
-# extra_rules_file = $(xkb_rules_symlink)
-# extra_dir_file = $(extra_rules_file).xml
-# extra_lst_file = $(extra_rules_file).lst
-
-install-data-hook:
- for file in `echo "$(xkb_rules_symlink)" | sed 's/,/ /'` ; do \
- extra_rules_file=$$file ; \
- extra_dir_file=$$extra_rules_file.xml ; \
- extra_lst_file=$$extra_rules_file.lst ; \
- ln -sf base $(DESTDIR)$(rulesdir)/$$extra_rules_file ; \
- ln -sf base.lst $(DESTDIR)$(rulesdir)/$$extra_lst_file ; \
- ln -sf base.xml $(DESTDIR)$(rulesdir)/$$extra_dir_file ; \
- done
-
-else
-install-data-hook:
-
-endif
-
-if USE_COMPAT_RULES
-
-base_parts = base.hdr.part base.lists.part \
-compat/base.lists.part \
-HDR base.m_k.part \
-HDR base.l1_k.part \
-HDR base.l_k.part \
-HDR base.o_k.part \
-HDR base.ml_g.part \
-HDR base.m_g.part \
-HDR compat/base.mlv_s.part base.mlv_s.part \
-HDR compat/base.ml_s.part base.ml_s.part \
-HDR compat/base.ml1_s.part base.ml1_s.part \
-HDR compat/base.ml1v1_s.part \
-HDR compat/base.ml2_s.part base.ml2_s.part \
-HDR compat/base.ml3_s.part base.ml3_s.part \
-HDR compat/base.ml4_s.part base.ml4_s.part \
-HDR compat/base.ml2v2_s.part \
-HDR compat/base.ml3v3_s.part \
-HDR compat/base.ml4v4_s.part \
-HDR base.m_s.part \
-HDR compat/base.lv_c.part \
-HDR compat/base.l1v1_c.part \
-HDR compat/base.l2v2_c.part \
-HDR compat/base.l3v3_c.part \
-HDR compat/base.l4v4_c.part \
-HDR base.ml_c.part \
-HDR base.ml1_c.part \
-HDR base.m_t.part \
-HDR base.lo_s.part \
-HDR base.l1o_s.part \
-HDR base.l2o_s.part \
-HDR base.l3o_s.part \
-HDR base.l4o_s.part \
-HDR compat/base.o_s.part base.o_s.part \
-HDR base.o_c.part \
-HDR base.o_t.part
-
-evdev_parts = base.hdr.part base.lists.part \
-compat/base.lists.part \
-HDR evdev.m_k.part \
-HDR base.l1_k.part \
-HDR base.l_k.part \
-HDR base.o_k.part \
-HDR base.ml_g.part \
-HDR base.m_g.part \
-HDR compat/base.mlv_s.part base.mlv_s.part \
-HDR compat/base.ml_s.part base.ml_s.part \
-HDR compat/base.ml1_s.part base.ml1_s.part \
-HDR compat/base.ml1v1_s.part \
-HDR compat/base.ml2_s.part base.ml2_s.part \
-HDR compat/base.ml3_s.part base.ml3_s.part \
-HDR compat/base.ml4_s.part base.ml4_s.part \
-HDR compat/base.ml2v2_s.part \
-HDR compat/base.ml3v3_s.part \
-HDR compat/base.ml4v4_s.part \
-HDR evdev.m_s.part \
-HDR compat/base.lv_c.part \
-HDR compat/base.l1v1_c.part \
-HDR compat/base.l2v2_c.part \
-HDR compat/base.l3v3_c.part \
-HDR compat/base.l4v4_c.part \
-HDR base.ml_c.part \
-HDR base.ml1_c.part \
-HDR base.m_t.part \
-HDR base.lo_s.part \
-HDR base.l1o_s.part \
-HDR base.l2o_s.part \
-HDR base.l3o_s.part \
-HDR base.l4o_s.part \
-HDR compat/base.o_s.part base.o_s.part \
-HDR base.o_c.part \
-HDR base.o_t.part
-
-else
-
-base_parts = base.hdr.part base.lists.part \
-HDR base.m_k.part \
-HDR base.l1_k.part \
-HDR base.l_k.part \
-HDR \
-HDR base.ml_g.part \
-HDR base.m_g.part \
-HDR base.mlv_s.part \
-HDR base.ml_s.part \
-HDR base.ml1_s.part \
-HDR \
-HDR base.ml2_s.part \
-HDR base.ml3_s.part \
-HDR base.ml4_s.part \
-HDR \
-HDR \
-HDR \
-HDR base.m_s.part \
-HDR \
-HDR \
-HDR \
-HDR \
-HDR \
-HDR base.ml_c.part \
-HDR base.ml1_c.part \
-HDR base.m_t.part \
-HDR \
-HDR base.l1o_s.part \
-HDR base.l2o_s.part \
-HDR base.l3o_s.part \
-HDR base.l4o_s.part \
-HDR base.o_s.part \
-HDR base.o_c.part \
-HDR base.o_t.part
-
-evdev_parts = base.hdr.part base.lists.part \
-HDR evdev.m_k.part \
-HDR base.l1_k.part \
-HDR base.l_k.part \
-HDR \
-HDR base.ml_g.part \
-HDR base.m_g.part \
-HDR base.mlv_s.part \
-HDR base.ml_s.part \
-HDR base.ml1_s.part \
-HDR \
-HDR base.ml2_s.part \
-HDR base.ml3_s.part \
-HDR base.ml4_s.part \
-HDR \
-HDR \
-HDR \
-HDR evdev.m_s.part \
-HDR \
-HDR \
-HDR \
-HDR \
-HDR \
-HDR base.ml_c.part \
-HDR base.ml1_c.part \
-HDR base.m_t.part \
-HDR \
-HDR base.l1o_s.part \
-HDR base.l2o_s.part \
-HDR base.l3o_s.part \
-HDR base.l4o_s.part \
-HDR base.o_s.part \
-HDR base.o_c.part \
-HDR base.o_t.part
-
-endif
-
-all_parts_dist = HDR base.hdr.part \
-base.lists.part \
-base.m_k.part \
-base.l1_k.part \
-base.l_k.part \
-base.o_k.part \
-base.ml_g.part \
-base.m_g.part \
-base.mlv_s.part \
-base.ml_s.part \
-base.ml1_s.part \
-base.ml2_s.part \
-base.ml3_s.part \
-base.ml4_s.part \
-base.m_s.part \
-base.ml_c.part \
-base.ml1_c.part \
-base.m_t.part \
-base.lo_s.part \
-base.l1o_s.part \
-base.l2o_s.part \
-base.l3o_s.part \
-base.l4o_s.part \
-base.o_s.part \
-base.o_c.part \
-base.o_t.part \
-evdev.m_k.part \
-evdev.m_s.part
-
-rules_files = base evdev xfree98
-
-lst_files = base.lst evdev.lst
-
-%.lst: %.xml
- perl $(srcdir)/xml2lst.pl < $< > $@
-
-base: $(base_parts)
- HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(base_parts)
-
-evdev: $(evdev_parts)
- HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(evdev_parts)
-
-dist_files = xkb.dtd README
-
-rules_DATA = $(rules_files) $(lst_files) $(dist_files)
-
-xml_in_files = base.xml.in evdev.xml.in base.extras.xml.in evdev.extras.xml.in
-xml_DATA = $(xml_in_files:.xml.in=.xml)
-
-$(srcdir)/evdev.xml.in: base.xml.in
- cp $< $@
-
-$(srcdir)/evdev.extras.xml.in: base.extras.xml.in
- cp $< $@
-
-EXTRA_DIST= $(xml_in_files) xfree98 \
- $(all_parts_dist) \
- xml2lst.pl merge.sh $(dist_files)
-
-CLEANFILES = base base.xml base.lst evdev evdev.xml evdev.lst base.extras.xml evdev.extras.xml
-MAINTAINERCLEANFILES = $(srcdir)/evdev.xml.in $(srcdir)/evdev.extras.xml.in
-
-rulesdir = $(xkb_base)/rules
-xmldir = $(rulesdir)
-
-@INTLTOOL_XML_NOMERGE_RULE@
+SUBDIRS = bin compat
+
+if CREATE_RULES_SYMLINK
+# extra_rules_file = $(xkb_rules_symlink)
+# extra_dir_file = $(extra_rules_file).xml
+# extra_lst_file = $(extra_rules_file).lst
+
+install-data-hook:
+ for file in `echo "$(xkb_rules_symlink)" | sed 's/,/ /'` ; do \
+ extra_rules_file=$$file ; \
+ extra_dir_file=$$extra_rules_file.xml ; \
+ extra_lst_file=$$extra_rules_file.lst ; \
+ ln -sf base $(DESTDIR)$(rulesdir)/$$extra_rules_file ; \
+ ln -sf base.lst $(DESTDIR)$(rulesdir)/$$extra_lst_file ; \
+ ln -sf base.xml $(DESTDIR)$(rulesdir)/$$extra_dir_file ; \
+ done
+
+else
+install-data-hook:
+
+endif
+
+if USE_COMPAT_RULES
+
+base_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR base.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.ml2_s.part base.ml2_s.part \
+HDR compat/base.ml3_s.part base.ml3_s.part \
+HDR compat/base.ml4_s.part base.ml4_s.part \
+HDR compat/base.ml2v2_s.part \
+HDR compat/base.ml3v3_s.part \
+HDR compat/base.ml4v4_s.part \
+HDR base.m_s.part \
+HDR compat/base.lv_c.part \
+HDR compat/base.l1v1_c.part \
+HDR compat/base.l2v2_c.part \
+HDR compat/base.l3v3_c.part \
+HDR compat/base.l4v4_c.part \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+evdev_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR evdev.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.ml2_s.part base.ml2_s.part \
+HDR compat/base.ml3_s.part base.ml3_s.part \
+HDR compat/base.ml4_s.part base.ml4_s.part \
+HDR compat/base.ml2v2_s.part \
+HDR compat/base.ml3v3_s.part \
+HDR compat/base.ml4v4_s.part \
+HDR evdev.m_s.part \
+HDR compat/base.lv_c.part \
+HDR compat/base.l1v1_c.part \
+HDR compat/base.l2v2_c.part \
+HDR compat/base.l3v3_c.part \
+HDR compat/base.l4v4_c.part \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+else
+
+base_parts = base.hdr.part base.lists.part \
+HDR base.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR base.mlv_s.part \
+HDR base.ml_s.part \
+HDR base.ml1_s.part \
+HDR \
+HDR base.ml2_s.part \
+HDR base.ml3_s.part \
+HDR base.ml4_s.part \
+HDR \
+HDR \
+HDR \
+HDR base.m_s.part \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+evdev_parts = base.hdr.part base.lists.part \
+HDR evdev.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR base.mlv_s.part \
+HDR base.ml_s.part \
+HDR base.ml1_s.part \
+HDR \
+HDR base.ml2_s.part \
+HDR base.ml3_s.part \
+HDR base.ml4_s.part \
+HDR \
+HDR \
+HDR \
+HDR evdev.m_s.part \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+endif
+
+all_parts_dist = HDR base.hdr.part \
+base.lists.part \
+base.m_k.part \
+base.l1_k.part \
+base.l_k.part \
+base.o_k.part \
+base.ml_g.part \
+base.m_g.part \
+base.mlv_s.part \
+base.ml_s.part \
+base.ml1_s.part \
+base.ml2_s.part \
+base.ml3_s.part \
+base.ml4_s.part \
+base.m_s.part \
+base.ml_c.part \
+base.ml1_c.part \
+base.m_t.part \
+base.lo_s.part \
+base.l1o_s.part \
+base.l2o_s.part \
+base.l3o_s.part \
+base.l4o_s.part \
+base.o_s.part \
+base.o_c.part \
+base.o_t.part \
+evdev.m_k.part \
+evdev.m_s.part
+
+rules_files = base evdev xfree98
+
+lst_files = base.lst evdev.lst
+
+%.lst: %.xml
+ perl $(srcdir)/xml2lst.pl < $< > $@
+
+base: $(base_parts)
+ HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(base_parts)
+
+evdev: $(evdev_parts)
+ HDR="$(srcdir)/HDR" $(srcdir)/merge.sh $@ $(evdev_parts)
+
+dist_files = xkb.dtd README
+
+rules_DATA = $(rules_files) $(lst_files) $(dist_files)
+
+xml_in_files = base.xml.in evdev.xml.in base.extras.xml.in evdev.extras.xml.in
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+
+$(srcdir)/evdev.xml.in: base.xml.in
+ cp $< $@
+
+$(srcdir)/evdev.extras.xml.in: base.extras.xml.in
+ cp $< $@
+
+EXTRA_DIST= $(xml_in_files) xfree98 \
+ $(all_parts_dist) \
+ xml2lst.pl merge.sh $(dist_files)
+
+CLEANFILES = base base.xml base.lst evdev evdev.xml evdev.lst base.extras.xml evdev.extras.xml
+MAINTAINERCLEANFILES = $(srcdir)/evdev.xml.in $(srcdir)/evdev.extras.xml.in
+
+rulesdir = $(xkb_base)/rules
+xmldir = $(rulesdir)
+
+@INTLTOOL_XML_NOMERGE_RULE@
diff --git a/xorg-server/xkeyboard-config/rules/base.extras.xml.in b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
index b068589fd..f72e4cf95 100644
--- a/xorg-server/xkeyboard-config/rules/base.extras.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
@@ -1,118 +1,118 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
-<xkbConfigRegistry>
- <modelList/>
- <layoutList>
- <layout>
- <configItem>
- <name>apl</name>
- <_shortDescription>APL</_shortDescription>
- <_description>APL</_description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList/>
- </layout>
- <layout>
- <configItem>
- <name>ir</name>
- <_shortDescription>Iran</_shortDescription>
- <_description>Iran</_description>
- <languageList><iso639Id>per</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ave</name>
- <_description>Iran Avestan</_description>
- <languageList><iso639Id>ave</iso639Id></languageList>
- </configItem>
- </variant>
- </variantList>
- </layout>
- <layout>
- <configItem>
- <name>us</name>
- <_shortDescription>USA</_shortDescription>
- <_description>USA</_description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>intl-unicode</name>
- <_description>USA International (AltGr Unicode combining)</_description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alt-intl-unicode</name>
- <_description>USA International (AltGr Unicode combining, alternative)</_description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ats</name>
- <_description>USA Atsina</_description>
- <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>crd</name>
- <_description>USA Couer D'alene Salish</_description>
- <languageList><iso639Id>crd</iso639Id></languageList>
- </configItem>
- </variant>
- </variantList>
- </layout>
- <layout>
- <configItem>
- <name>ro</name>
- <_shortDescription>Rou</_shortDescription>
- <_description>Romania</_description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ergonomic</name>
- <_description>Ergonomic Touchtype</_description>
- </configItem>
- </variant>
- </variantList>
- </layout>
- <layout>
- <configItem>
- <name>rs</name>
- <_shortDescription>SRB</_shortDescription>
- <_description>Serbia</_description>
- <languageList><iso639Id>srp</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>combiningkeys</name>
- <_description>Serbia Combining accents instead of dead keys</_description>
- </configItem>
- </variant>
- </variantList>
- </layout>
- <layout>
- <configItem>
- <name>ru</name>
- <_shortDescription>Rus</_shortDescription>
- <_description>Russia</_description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>chu</name>
- <description>Russia Church Slavonic</description>
- <languageList><iso639Id>chu</iso639Id></languageList>
- </configItem>
- </variant>
- </variantList>
- </layout>
- </layoutList>
- <optionList/>
-</xkbConfigRegistry>
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
+<xkbConfigRegistry>
+ <modelList/>
+ <layoutList>
+ <layout>
+ <configItem>
+ <name>apl</name>
+ <_shortDescription>APL</_shortDescription>
+ <_description>APL</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList/>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ir</name>
+ <_shortDescription>Iran</_shortDescription>
+ <_description>Iran</_description>
+ <languageList><iso639Id>per</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ave</name>
+ <_description>Iran Avestan</_description>
+ <languageList><iso639Id>ave</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>us</name>
+ <_shortDescription>USA</_shortDescription>
+ <_description>USA</_description>
+ <languageList><iso639Id>eng</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>intl-unicode</name>
+ <_description>USA International (AltGr Unicode combining)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>alt-intl-unicode</name>
+ <_description>USA International (AltGr Unicode combining, alternative)</_description>
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>ats</name>
+ <_description>USA Atsina</_description>
+ <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
+ </configItem>
+ </variant>
+ <variant>
+ <configItem>
+ <name>crd</name>
+ <_description>USA Couer D'alene Salish</_description>
+ <languageList><iso639Id>crd</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ro</name>
+ <_shortDescription>Rou</_shortDescription>
+ <_description>Romania</_description>
+ <languageList><iso639Id>rum</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>ergonomic</name>
+ <_description>Ergonomic Touchtype</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>rs</name>
+ <_shortDescription>SRB</_shortDescription>
+ <_description>Serbia</_description>
+ <languageList><iso639Id>srp</iso639Id></languageList>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>combiningkeys</name>
+ <_description>Serbia Combining accents instead of dead keys</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ <layout>
+ <configItem>
+ <name>ru</name>
+ <_shortDescription>Rus</_shortDescription>
+ <_description>Russia</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>chu</name>
+ <description>Russia Church Slavonic</description>
+ <languageList><iso639Id>chu</iso639Id></languageList>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
+ </layoutList>
+ <optionList/>
+</xkbConfigRegistry>
diff --git a/xorg-server/xkeyboard-config/rules/base.ml_s.part b/xorg-server/xkeyboard-config/rules/base.ml_s.part
index 5d3b46d61..50ad6e57f 100644
--- a/xorg-server/xkeyboard-config/rules/base.ml_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.ml_s.part
@@ -1,41 +1,41 @@
- ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2
- ataritt * = xfree68_vndr/ataritt(us)+%l%(v)
- amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2
- amiga * = xfree68_vndr/amiga(usa1)+%l%(v)
- classmate us = pc+%l(classmate)
- empty * = empty(basic)
- * empty = empty(basic)
- sun4 $nonlatin = latin+sun_vndr/us(type4)+%l%(v):2
- sun4 * = latin+sun_vndr/us(type4)+%l%(v)
- sun5 $nonlatin = latin+sun_vndr/us(type5)+%l%(v):2
- sun5 * = latin+sun_vndr/us(type5)+%l%(v)
- sun6 us = pc+sun_vndr/us(type6)
- sun6 en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
- sun6 $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
- sun6 * = pc+sun_vndr/us(type6)+%l%(v)
- sun6euro us = pc+sun_vndr/us(type6)
- sun6euro en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
- sun6euro $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
- sun6euro * = pc+sun_vndr/us(type6)+%l%(v)
- pc98 nec_vndr/jp = nec_vndr/jp(pc98)
- macintosh_old us = macintosh_vndr/us(oldmac)
- macintosh_old en_US = macintosh_vndr/us(oldmac)
- macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
- macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2
- macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v)
- applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2
- applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2
- $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v)
- $applealu * = macintosh_vndr/apple(alukbd)+%l%(v)
- $macs en_US = pc+macintosh_vndr/us(extended)
- $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v)
- nokiarx44 * = nokia_vndr/rx-44(%l)
- nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)
- nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v)
- nokiasu8w * = nokia_vndr/su-8w(%l)
- olpc $olpclayouts = olpc+%l%(m)
- olpc * = olpc+%l%(v)
- $thinkpads br = pc+br(thinkpad)
- htcdream $htcdreamlayouts = %l(htcdream)
- * $nonlatin = pc+us+%l%(v):2
- * * = pc+%l%(v)
+ ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2
+ ataritt * = xfree68_vndr/ataritt(us)+%l%(v)
+ amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2
+ amiga * = xfree68_vndr/amiga(usa1)+%l%(v)
+ classmate us = pc+%l(classmate)
+ empty * = empty(basic)
+ * empty = empty(basic)
+ sun4 $nonlatin = latin+sun_vndr/us(type4)+%l%(v):2
+ sun4 * = latin+sun_vndr/us(type4)+%l%(v)
+ sun5 $nonlatin = latin+sun_vndr/us(type5)+%l%(v):2
+ sun5 * = latin+sun_vndr/us(type5)+%l%(v)
+ sun6 us = pc+sun_vndr/us(type6)
+ sun6 en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
+ sun6 $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
+ sun6 * = pc+sun_vndr/us(type6)+%l%(v)
+ sun6euro us = pc+sun_vndr/us(type6)
+ sun6euro en_US = pc+sun_vndr/us(type6)+iso9995-3(basic)
+ sun6euro $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v)
+ sun6euro * = pc+sun_vndr/us(type6)+%l%(v)
+ pc98 nec_vndr/jp = nec_vndr/jp(pc98)
+ macintosh_old us = macintosh_vndr/us(oldmac)
+ macintosh_old en_US = macintosh_vndr/us(oldmac)
+ macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
+ macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2
+ macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v)
+ applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2
+ applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2
+ $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v)
+ $applealu * = macintosh_vndr/apple(alukbd)+%l%(v)
+ $macs en_US = pc+macintosh_vndr/us(extended)
+ $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v)
+ nokiarx44 * = nokia_vndr/rx-44(%l)
+ nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty)
+ nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v)
+ nokiasu8w * = nokia_vndr/su-8w(%l)
+ olpc $olpclayouts = olpc+%l%(m)
+ olpc * = olpc+%l%(v)
+ $thinkpads br = pc+br(thinkpad)
+ htcdream $htcdreamlayouts = %l(htcdream)
+ * $nonlatin = pc+us+%l%(v):2
+ * * = pc+%l%(v)
diff --git a/xorg-server/xkeyboard-config/rules/base.o_s.part b/xorg-server/xkeyboard-config/rules/base.o_s.part
index 3e23396da..fc01ea82e 100644
--- a/xorg-server/xkeyboard-config/rules/base.o_s.part
+++ b/xorg-server/xkeyboard-config/rules/base.o_s.part
@@ -1,143 +1,143 @@
- altwin:menu = +altwin(menu)
- altwin:meta_alt = +altwin(meta_alt)
- altwin:ctrl_win = +altwin(ctrl_win)
- altwin:ctrl_alt_win = +altwin(ctrl_alt_win)
- altwin:meta_win = +altwin(meta_win)
- altwin:left_meta_win = +altwin(left_meta_win)
- altwin:hyper_win = +altwin(hyper_win)
- altwin:alt_super_win = +altwin(alt_super_win)
- altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
- grp:switch = +group(switch)
- grp:lswitch = +group(lswitch)
- grp:win_switch = +group(win_switch)
- grp:lwin_switch = +group(lwin_switch)
- grp:rwin_switch = +group(rwin_switch)
- grp:toggle = +group(toggle)
- grp:shifts_toggle = +group(shifts_toggle)
- grp:ctrls_toggle = +group(ctrls_toggle)
- grp:alts_toggle = +group(alts_toggle)
- grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
- grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
- grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle)
- grp:caps_toggle = +capslock(grouplock)
- grp:caps_switch = +capslock(groupshift)
- grp:shift_caps_toggle = +group(shift_caps_toggle)
- grp:shift_caps_switch = +group(shift_caps_switch)
- grp:win_menu_switch = +group(win_menu_switch)
- grp:alt_caps_toggle = +group(alt_caps_toggle)
- grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
- grp:alt_shift_toggle = +group(alt_shift_toggle)
- grp:alt_space_toggle = +group(alt_space_toggle)
- grp:menu_toggle = +group(menu_toggle)
- grp:lwin_toggle = +group(lwin_toggle)
- grp:rwin_toggle = +group(rwin_toggle)
- grp:lshift_toggle = +group(lshift_toggle)
- grp:rshift_toggle = +group(rshift_toggle)
- grp:rctrl_switch = +group(rctrl_switch)
- grp:lctrl_toggle = +group(lctrl_toggle)
- grp:rctrl_toggle = +group(rctrl_toggle)
- grp:lalt_toggle = +group(lalt_toggle)
- grp:sclk_toggle = +group(sclk_toggle)
- grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch)
- grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu)
- lv3:switch = +level3(switch)
- lv3:ralt_switch = +level3(ralt_switch)
- lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
- lv3:ralt_alt = +level3(ralt_alt)
- lv3:lalt_switch = +level3(lalt_switch)
- lv3:alt_switch = +level3(alt_switch)
- lv3:menu_switch = +level3(menu_switch)
- lv3:win_switch = +level3(win_switch)
- lv3:lwin_switch = +level3(lwin_switch)
- lv3:rwin_switch = +level3(rwin_switch)
- lv3:enter_switch = +level3(enter_switch)
- caps:capslock = +capslock(capslock)
- caps:numlock = +capslock(numlock)
- caps:shiftlock = +capslock(shiftlock)
- caps:swapescape = +capslock(swapescape)
- caps:escape = +capslock(escape)
- caps:backspace = +capslock(backspace)
- caps:super = +capslock(super)
- caps:hyper = +capslock(hyper)
- caps:none = +capslock(none)
- caps:ctrl_modifier = +capslock(ctrl_modifier)
- ctrl:nocaps = +ctrl(nocaps)
- ctrl:lctrl_meta = +ctrl(lctrl_meta)
- ctrl:swapcaps = +ctrl(swapcaps)
- ctrl:ctrl_ac = +ctrl(ctrl_ac)
- ctrl:ctrl_aa = +ctrl(ctrl_aa)
- ctrl:ctrl_ra = +ctrl(ctrl_ra)
- ctrl:ctrl_menu = +ctrl(ctrl_menu)
- compose:ralt = +compose(ralt)
- compose:lwin = +compose(lwin)
- compose:rwin = +compose(rwin)
- compose:menu = +compose(menu)
- compose:lctrl = +compose(lctrl)
- compose:rctrl = +compose(rctrl)
- compose:caps = +compose(caps)
- compose:102 = +compose(102)
- compose:paus = +compose(paus)
- compose:prsc = +compose(prsc)
- compose:sclk = +compose(sclk)
- srvrkeys:none = +srvr_ctrl(no_srvr_keys)
- eurosign:e = +eurosign(e)
- eurosign:2 = +eurosign(2)
- eurosign:4 = +eurosign(4)
- eurosign:5 = +eurosign(5)
- rupeesign:4 = +rupeesign(4)
- keypad:oss = +keypad(oss)
- keypad:legacy = +keypad(legacy)
- keypad:legacy_wang = +keypad(legacy_wang)
- keypad:oss_wang = +keypad(oss_wang)
- keypad:future = +keypad(future)
- keypad:future_wang = +keypad(future_wang)
- keypad:hex = +keypad(ops)+keypad(hex)
- keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm)
- nbsp:none = +nbsp(none)
- nbsp:level2 = +nbsp(level2)
- nbsp:level3 = +nbsp(level3)
- nbsp:level3s = +nbsp(level3s)
- nbsp:level3n = +nbsp(level3n)
- nbsp:level4 = +nbsp(level4)
- nbsp:level4n = +nbsp(level4n)
- nbsp:level4nl = +nbsp(level4nl)
- japan:nicola_f_bs = +jp(nicola_f_bs)
- kpdl:dot = +kpdl(dot)
- kpdl:comma = +kpdl(comma)
- kpdl:dotoss = +kpdl(dotoss)
- kpdl:dotoss_latin9 = +kpdl(dotoss_latin9)
- kpdl:commaoss = +kpdl(commaoss)
- kpdl:momayyezoss = +kpdl(momayyezoss)
- kpdl:kposs = +kpdl(kposs)
- kpdl:semi = +kpdl(semi)
- shift:breaks_caps = +shift(breaks_caps)
- esperanto:qwerty = +epo(qwerty)
- esperanto:dvorak = +epo(dvorak)
- terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp)
- keypad:pointerkeys = +keypad(pointerkeys)
- apple:alupckeys = +macintosh_vndr/apple(alupckeys)
- shift:both_capslock = +shift(both_capslock)
- shift:lshift_both_capslock = +shift(lshift_both_capslock)
- shift:rshift_both_capslock = +shift(rshift_both_capslock)
- shift:both_capslock_cancel = +shift(both_capslock_cancel)
- shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel)
- shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel)
- shift:both_shiftlock = +shift(both_shiftlock)
- shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock)
- shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock)
- lv3:caps_switch = +level3(caps_switch)
- lv3:bksl_switch = +level3(bksl_switch)
- lv3:lsgt_switch = +level3(lsgt_switch)
- lv3:caps_switch_latch = +level3(caps_switch_latch)
- lv3:bksl_switch_latch = +level3(bksl_switch_latch)
- lv3:lsgt_switch_latch = +level3(lsgt_switch_latch)
- lv5:lsgt_switch_lock = +level5(lsgt_switch_lock)
- lv5:ralt_switch_lock = +level5(ralt_switch_lock)
- lv5:lwin_switch_lock = +level5(lwin_switch_lock)
- lv5:rwin_switch_lock = +level5(rwin_switch_lock)
- lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel)
- lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel)
- lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel)
- lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel)
-
-
+ altwin:menu = +altwin(menu)
+ altwin:meta_alt = +altwin(meta_alt)
+ altwin:ctrl_win = +altwin(ctrl_win)
+ altwin:ctrl_alt_win = +altwin(ctrl_alt_win)
+ altwin:meta_win = +altwin(meta_win)
+ altwin:left_meta_win = +altwin(left_meta_win)
+ altwin:hyper_win = +altwin(hyper_win)
+ altwin:alt_super_win = +altwin(alt_super_win)
+ altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin)
+ grp:switch = +group(switch)
+ grp:lswitch = +group(lswitch)
+ grp:win_switch = +group(win_switch)
+ grp:lwin_switch = +group(lwin_switch)
+ grp:rwin_switch = +group(rwin_switch)
+ grp:toggle = +group(toggle)
+ grp:shifts_toggle = +group(shifts_toggle)
+ grp:ctrls_toggle = +group(ctrls_toggle)
+ grp:alts_toggle = +group(alts_toggle)
+ grp:ctrl_shift_toggle = +group(ctrl_shift_toggle)
+ grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle)
+ grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle)
+ grp:caps_toggle = +capslock(grouplock)
+ grp:caps_switch = +capslock(groupshift)
+ grp:shift_caps_toggle = +group(shift_caps_toggle)
+ grp:shift_caps_switch = +group(shift_caps_switch)
+ grp:win_menu_switch = +group(win_menu_switch)
+ grp:alt_caps_toggle = +group(alt_caps_toggle)
+ grp:ctrl_alt_toggle = +group(ctrl_alt_toggle)
+ grp:alt_shift_toggle = +group(alt_shift_toggle)
+ grp:alt_space_toggle = +group(alt_space_toggle)
+ grp:menu_toggle = +group(menu_toggle)
+ grp:lwin_toggle = +group(lwin_toggle)
+ grp:rwin_toggle = +group(rwin_toggle)
+ grp:lshift_toggle = +group(lshift_toggle)
+ grp:rshift_toggle = +group(rshift_toggle)
+ grp:rctrl_switch = +group(rctrl_switch)
+ grp:lctrl_toggle = +group(lctrl_toggle)
+ grp:rctrl_toggle = +group(rctrl_toggle)
+ grp:lalt_toggle = +group(lalt_toggle)
+ grp:sclk_toggle = +group(sclk_toggle)
+ grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch)
+ grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu)
+ lv3:switch = +level3(switch)
+ lv3:ralt_switch = +level3(ralt_switch)
+ lv3:ralt_switch_multikey = +level3(ralt_switch_multikey)
+ lv3:ralt_alt = +level3(ralt_alt)
+ lv3:lalt_switch = +level3(lalt_switch)
+ lv3:alt_switch = +level3(alt_switch)
+ lv3:menu_switch = +level3(menu_switch)
+ lv3:win_switch = +level3(win_switch)
+ lv3:lwin_switch = +level3(lwin_switch)
+ lv3:rwin_switch = +level3(rwin_switch)
+ lv3:enter_switch = +level3(enter_switch)
+ caps:capslock = +capslock(capslock)
+ caps:numlock = +capslock(numlock)
+ caps:shiftlock = +capslock(shiftlock)
+ caps:swapescape = +capslock(swapescape)
+ caps:escape = +capslock(escape)
+ caps:backspace = +capslock(backspace)
+ caps:super = +capslock(super)
+ caps:hyper = +capslock(hyper)
+ caps:none = +capslock(none)
+ caps:ctrl_modifier = +capslock(ctrl_modifier)
+ ctrl:nocaps = +ctrl(nocaps)
+ ctrl:lctrl_meta = +ctrl(lctrl_meta)
+ ctrl:swapcaps = +ctrl(swapcaps)
+ ctrl:ctrl_ac = +ctrl(ctrl_ac)
+ ctrl:ctrl_aa = +ctrl(ctrl_aa)
+ ctrl:ctrl_ra = +ctrl(ctrl_ra)
+ ctrl:ctrl_menu = +ctrl(ctrl_menu)
+ compose:ralt = +compose(ralt)
+ compose:lwin = +compose(lwin)
+ compose:rwin = +compose(rwin)
+ compose:menu = +compose(menu)
+ compose:lctrl = +compose(lctrl)
+ compose:rctrl = +compose(rctrl)
+ compose:caps = +compose(caps)
+ compose:102 = +compose(102)
+ compose:paus = +compose(paus)
+ compose:prsc = +compose(prsc)
+ compose:sclk = +compose(sclk)
+ srvrkeys:none = +srvr_ctrl(no_srvr_keys)
+ eurosign:e = +eurosign(e)
+ eurosign:2 = +eurosign(2)
+ eurosign:4 = +eurosign(4)
+ eurosign:5 = +eurosign(5)
+ rupeesign:4 = +rupeesign(4)
+ keypad:oss = +keypad(oss)
+ keypad:legacy = +keypad(legacy)
+ keypad:legacy_wang = +keypad(legacy_wang)
+ keypad:oss_wang = +keypad(oss_wang)
+ keypad:future = +keypad(future)
+ keypad:future_wang = +keypad(future_wang)
+ keypad:hex = +keypad(ops)+keypad(hex)
+ keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm)
+ nbsp:none = +nbsp(none)
+ nbsp:level2 = +nbsp(level2)
+ nbsp:level3 = +nbsp(level3)
+ nbsp:level3s = +nbsp(level3s)
+ nbsp:level3n = +nbsp(level3n)
+ nbsp:level4 = +nbsp(level4)
+ nbsp:level4n = +nbsp(level4n)
+ nbsp:level4nl = +nbsp(level4nl)
+ japan:nicola_f_bs = +jp(nicola_f_bs)
+ kpdl:dot = +kpdl(dot)
+ kpdl:comma = +kpdl(comma)
+ kpdl:dotoss = +kpdl(dotoss)
+ kpdl:dotoss_latin9 = +kpdl(dotoss_latin9)
+ kpdl:commaoss = +kpdl(commaoss)
+ kpdl:momayyezoss = +kpdl(momayyezoss)
+ kpdl:kposs = +kpdl(kposs)
+ kpdl:semi = +kpdl(semi)
+ shift:breaks_caps = +shift(breaks_caps)
+ esperanto:qwerty = +epo(qwerty)
+ esperanto:dvorak = +epo(dvorak)
+ terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp)
+ keypad:pointerkeys = +keypad(pointerkeys)
+ apple:alupckeys = +macintosh_vndr/apple(alupckeys)
+ shift:both_capslock = +shift(both_capslock)
+ shift:lshift_both_capslock = +shift(lshift_both_capslock)
+ shift:rshift_both_capslock = +shift(rshift_both_capslock)
+ shift:both_capslock_cancel = +shift(both_capslock_cancel)
+ shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel)
+ shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel)
+ shift:both_shiftlock = +shift(both_shiftlock)
+ shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock)
+ shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock)
+ lv3:caps_switch = +level3(caps_switch)
+ lv3:bksl_switch = +level3(bksl_switch)
+ lv3:lsgt_switch = +level3(lsgt_switch)
+ lv3:caps_switch_latch = +level3(caps_switch_latch)
+ lv3:bksl_switch_latch = +level3(bksl_switch_latch)
+ lv3:lsgt_switch_latch = +level3(lsgt_switch_latch)
+ lv5:lsgt_switch_lock = +level5(lsgt_switch_lock)
+ lv5:ralt_switch_lock = +level5(ralt_switch_lock)
+ lv5:lwin_switch_lock = +level5(lwin_switch_lock)
+ lv5:rwin_switch_lock = +level5(rwin_switch_lock)
+ lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel)
+ lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel)
+ lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel)
+ lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel)
+
+
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml1_s.sh b/xorg-server/xkeyboard-config/rules/bin/ml1_s.sh
index b2d222432..b09459a5d 100644
--- a/xorg-server/xkeyboard-config/rules/bin/ml1_s.sh
+++ b/xorg-server/xkeyboard-config/rules/bin/ml1_s.sh
@@ -1,18 +1,9 @@
-#!/bin/sh
+@echo off
-INDIR=$1
-OUTFILE=base.ml1_s.part
+set OUTFILE=base.ml1_s.part
-> $OUTFILE
+if exist %OUTFILE% del %OUTFILE%
-awk '{
- if (index($2, "(") == 0) {
- printf " * %s = pc+%s%%(v[1])\n", $1, $2;
- } else {
- printf " * %s = pc+%s\n", $1, $2;
- }
-}' < $INDIR/layoutsMapping.lst >> $OUTFILE
+gawk "{ if (index($2, """(""") == 0) { printf """ * %%s = pc+%%s%%%%(v[1])\n""", $1, $2; } else { printf """ * %%s = pc+%%s\n""", $1, $2; }}" < layoutsMapping.lst >> %OUTFILE%
-awk '{
- printf " * %s(%s) = pc+%s(%s)\n", $1, $2, $3, $4;
-}' < $INDIR/variantsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s(%%s) = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml1v1_s.sh b/xorg-server/xkeyboard-config/rules/bin/ml1v1_s.sh
index 7c2b1a84c..4d492e02b 100644
--- a/xorg-server/xkeyboard-config/rules/bin/ml1v1_s.sh
+++ b/xorg-server/xkeyboard-config/rules/bin/ml1v1_s.sh
@@ -1,10 +1,7 @@
-#!/bin/sh
+@echo off
-INDIR=$1
-OUTFILE=base.ml1v1_s.part
+set OUTFILE=base.ml1v1_s.part
-> $OUTFILE
+if exist %OUTFILE% del %OUTFILE%
-awk '{
- printf " * %s %s = pc+%s(%s)\n", $1, $2, $3, $4;
-}' < $INDIR/variantsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s %%s = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml1v_s.sh b/xorg-server/xkeyboard-config/rules/bin/ml1v_s.sh
index 084d4c0be..cec1334c0 100644
--- a/xorg-server/xkeyboard-config/rules/bin/ml1v_s.sh
+++ b/xorg-server/xkeyboard-config/rules/bin/ml1v_s.sh
@@ -1,10 +1,7 @@
-#!/bin/sh
+@echo off
-INDIR=$1
-OUTFILE=base.ml1v_s.part
+set OUTFILE=base.ml1v_s.part
-> $OUTFILE
+if exist %OUTFILE% del %OUTFILE%
-awk '{
- printf " * %s %s = pc+%s(%s)\n", $1, $2, $3, $4;
-}' < $INDIR/variantsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s %%s = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/ml_s.sh b/xorg-server/xkeyboard-config/rules/bin/ml_s.sh
index 666ba870f..b7f0d9c46 100644
--- a/xorg-server/xkeyboard-config/rules/bin/ml_s.sh
+++ b/xorg-server/xkeyboard-config/rules/bin/ml_s.sh
@@ -1,14 +1,9 @@
-#!/bin/sh
+@echo off
-INDIR=$1
-OUTFILE=base.ml_s.part
+set OUTFILE=base.ml_s.part
-> $OUTFILE
+if exist %OUTFILE% del %OUTFILE%
-awk '{
- printf " * %s = pc+%s\n", $1, $2;
-}' < $INDIR/layoutsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s = pc+%%s\n""", $1, $2; }" < layoutsMapping.lst >> %OUTFILE%
-awk '{
- printf " * %s(%s) = pc+%s(%s)\n", $1, $2, $3, $4;
-}' < $INDIR/variantsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s(%%s) = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/mln_s.sh b/xorg-server/xkeyboard-config/rules/bin/mln_s.sh
index 4a615fe7d..66794a4fc 100644
--- a/xorg-server/xkeyboard-config/rules/bin/mln_s.sh
+++ b/xorg-server/xkeyboard-config/rules/bin/mln_s.sh
@@ -1,20 +1,10 @@
-#!/bin/sh
+@echo off
+set variant=%1
-variant=$1
+set OUTFILE=base.ml%variant%_s.part
-INDIR=$2
-OUTFILE=base.ml${variant}_s.part
+if exist %OUTFILE% del %OUTFILE%
-> $OUTFILE
+echo "{ if (index($2, """(""") == 0) { printf """ * %%s = +%%s%%%%(v[%variant%]):%variant%\n""", $1, $2; } else { printf """ * %%s = +%%s:%variant%\n""", $1, $2; }}" < layoutsMapping.lst >> %OUTFILE%
-awk '{
- if (index($2, "(") == 0) {
- printf " * %s = +%s%%(v['${variant}']):'${variant}'\n", $1, $2;
- } else {
- printf " * %s = +%s:'${variant}'\n", $1, $2;
- }
-}' < $INDIR/layoutsMapping.lst >> $OUTFILE
-
-awk '{
- printf " * %s(%s) = +%s(%s):'${variant}'\n", $1, $2, $3, $4;
-}' < $INDIR/variantsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s(%%s) = +%%s(%%s):%variant%\n""", $1, $2, $3, $4;}" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/mlnvn_s.sh b/xorg-server/xkeyboard-config/rules/bin/mlnvn_s.sh
index 30123874b..8e252943b 100644
--- a/xorg-server/xkeyboard-config/rules/bin/mlnvn_s.sh
+++ b/xorg-server/xkeyboard-config/rules/bin/mlnvn_s.sh
@@ -1,12 +1,8 @@
-#!/bin/sh
+@echo off
+set variant=%1
-variant=$1
+set OUTFILE=base.ml%variant%v%variant%_s.part
-INDIR=$2
-OUTFILE=base.ml${variant}v${variant}_s.part
+if exist %OUTFILE% del %OUTFILE%
-> $OUTFILE
-
-awk '{
- printf " * %s %s = +%s(%s):'${variant}'\n", $1, $2, $3, $4;
-}' < $INDIR/variantsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s %%s = +%%s(%%s):%variant%\n""", $1, $2, $3, $4;}" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/bin/mlv_s.sh b/xorg-server/xkeyboard-config/rules/bin/mlv_s.sh
index 5b466d59c..573cb930f 100644
--- a/xorg-server/xkeyboard-config/rules/bin/mlv_s.sh
+++ b/xorg-server/xkeyboard-config/rules/bin/mlv_s.sh
@@ -1,10 +1,7 @@
-#!/bin/sh
+@echo off
-INDIR=$1
-OUTFILE=base.mlv_s.part
+set OUTFILE=base.mlv_s.part
-> $OUTFILE
+if exist %OUTFILE% del %OUTFILE%
-awk '{
- printf " * %s %s = pc+%s(%s)\n", $1, $2, $3, $4;
-}' < $INDIR/variantsMapping.lst >> $OUTFILE
+gawk "{ printf """ * %%s %%s = pc+%%s(%%s)\n""", $1, $2, $3, $4; }" < variantsMapping.lst >> %OUTFILE%
diff --git a/xorg-server/xkeyboard-config/rules/compat/Makefile.am b/xorg-server/xkeyboard-config/rules/compat/Makefile.am
index 814bd25cf..37570e0da 100644
--- a/xorg-server/xkeyboard-config/rules/compat/Makefile.am
+++ b/xorg-server/xkeyboard-config/rules/compat/Makefile.am
@@ -1,67 +1,67 @@
-
-transform_files=layoutsMapping.lst variantsMapping.lst
-
-dist_parts=base.o_s.part \
-base.lv_c.part \
-base.l1v1_c.part \
-base.l2v2_c.part \
-base.l3v3_c.part \
-base.l4v4_c.part
-
-scripts_dir=$(srcdir)/../bin
-
-scripts= \
-base.ml2_s.part \
-base.ml3_s.part \
-base.ml4_s.part \
-base.ml2v2_s.part \
-base.ml3v3_s.part \
-base.ml4v4_s.part \
-base.ml_s.part \
-base.ml1_s.part \
-base.mlv_s.part \
-base.ml1v1_s.part
-
-if USE_COMPAT_RULES
-
-noinst_SCRIPTS=$(scripts) $(dist_parts)
-
-else
-
-noinst_SCRIPTS=
-
-endif
-
-base.ml2_s.part: $(scripts_dir)/mln_s.sh $(transform_files)
- sh $< 2 $(srcdir)
-
-base.ml3_s.part: $(scripts_dir)/mln_s.sh $(transform_files)
- sh $< 3 $(srcdir)
-
-base.ml4_s.part: $(scripts_dir)/mln_s.sh $(transform_files)
- sh $< 4 $(srcdir)
-
-base.ml2v2_s.part: $(scripts_dir)/mlnvn_s.sh $(transform_files)
- sh $< 2 $(srcdir)
-
-base.ml3v3_s.part: $(scripts_dir)/mlnvn_s.sh $(transform_files)
- sh $< 3 $(srcdir)
-
-base.ml4v4_s.part: $(scripts_dir)/mlnvn_s.sh $(transform_files)
- sh $< 4 $(srcdir)
-
-base.ml_s.part: $(scripts_dir)/ml_s.sh $(transform_files)
- sh $< $(srcdir)
-
-base.ml1_s.part: $(scripts_dir)/ml1_s.sh $(transform_files)
- sh $< $(srcdir)
-
-base.mlv_s.part: $(scripts_dir)/mlv_s.sh $(transform_files)
- sh $< $(srcdir)
-
-base.ml1v1_s.part: $(scripts_dir)/ml1v1_s.sh $(transform_files)
- sh $< $(srcdir)
-
-EXTRA_DIST=base.lists.part $(transform_files) $(dist_parts)
-
-CLEANFILES=$(scripts)
+
+transform_files=layoutsMapping.lst variantsMapping.lst
+
+dist_parts=base.o_s.part \
+base.lv_c.part \
+base.l1v1_c.part \
+base.l2v2_c.part \
+base.l3v3_c.part \
+base.l4v4_c.part
+
+scripts_dir=$(srcdir)/../bin
+
+scripts= \
+base.ml2_s.part \
+base.ml3_s.part \
+base.ml4_s.part \
+base.ml2v2_s.part \
+base.ml3v3_s.part \
+base.ml4v4_s.part \
+base.ml_s.part \
+base.ml1_s.part \
+base.mlv_s.part \
+base.ml1v1_s.part
+
+if USE_COMPAT_RULES
+
+noinst_SCRIPTS=$(scripts) $(dist_parts)
+
+else
+
+noinst_SCRIPTS=
+
+endif
+
+base.ml2_s.part: $(scripts_dir)/mln_s.sh $(transform_files)
+ sh $< 2 $(srcdir)
+
+base.ml3_s.part: $(scripts_dir)/mln_s.sh $(transform_files)
+ sh $< 3 $(srcdir)
+
+base.ml4_s.part: $(scripts_dir)/mln_s.sh $(transform_files)
+ sh $< 4 $(srcdir)
+
+base.ml2v2_s.part: $(scripts_dir)/mlnvn_s.sh $(transform_files)
+ sh $< 2 $(srcdir)
+
+base.ml3v3_s.part: $(scripts_dir)/mlnvn_s.sh $(transform_files)
+ sh $< 3 $(srcdir)
+
+base.ml4v4_s.part: $(scripts_dir)/mlnvn_s.sh $(transform_files)
+ sh $< 4 $(srcdir)
+
+base.ml_s.part: $(scripts_dir)/ml_s.sh $(transform_files)
+ sh $< $(srcdir)
+
+base.ml1_s.part: $(scripts_dir)/ml1_s.sh $(transform_files)
+ sh $< $(srcdir)
+
+base.mlv_s.part: $(scripts_dir)/mlv_s.sh $(transform_files)
+ sh $< $(srcdir)
+
+base.ml1v1_s.part: $(scripts_dir)/ml1v1_s.sh $(transform_files)
+ sh $< $(srcdir)
+
+EXTRA_DIST=base.lists.part $(transform_files) $(dist_parts)
+
+CLEANFILES=$(scripts)
diff --git a/xorg-server/xkeyboard-config/rules/compat/makefile b/xorg-server/xkeyboard-config/rules/compat/makefile
new file mode 100644
index 000000000..832ef5f80
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/compat/makefile
@@ -0,0 +1,53 @@
+transform_files=layoutsMapping.lst variantsMapping.lst
+
+scripts_dir=..\bin
+
+SCRIPTS= \
+base.ml2_s.part \
+base.ml3_s.part \
+base.ml4_s.part \
+base.ml2v2_s.part \
+base.ml3v3_s.part \
+base.ml4v4_s.part \
+base.ml_s.part \
+base.ml1_s.part \
+base.mlv_s.part \
+base.ml1v1_s.part
+
+
+SH=cmd /c
+
+base.ml2_s.part: mln_s.bat $(transform_files)
+ $(SH) $< 2
+
+base.ml3_s.part: mln_s.bat $(transform_files)
+ $(SH) $< 3
+
+base.ml4_s.part: mln_s.bat $(transform_files)
+ $(SH) $< 4
+
+base.ml2v2_s.part: mlnvn_s.bat $(transform_files)
+ $(SH) $< 2
+
+base.ml3v3_s.part: mlnvn_s.bat $(transform_files)
+ $(SH) $< 3
+
+base.ml4v4_s.part: mlnvn_s.bat $(transform_files)
+ $(SH) $< 4
+
+base.ml_s.part: ml_s.bat $(transform_files)
+ $(SH) $<
+
+base.ml1_s.part: ml1_s.bat $(transform_files)
+ $(SH) $<
+
+base.mlv_s.part: mlv_s.bat $(transform_files)
+ $(SH) $<
+
+base.ml1v1_s.part: ml1v1_s.bat $(transform_files)
+ $(SH) $<
+
+%.bat: $(scripts_dir)\%.sh
+ copy $< $@
+
+all: $(SCRIPTS)
diff --git a/xorg-server/xkeyboard-config/rules/makefile b/xorg-server/xkeyboard-config/rules/makefile
new file mode 100644
index 000000000..c8b2f25c2
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/makefile
@@ -0,0 +1,197 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+load_makefile compat\makefile DEBUG=$(DEBUG)
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\rules
+
+USE_COMPAT_RULES = 1
+
+if USE_COMPAT_RULES
+
+base_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR base.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.ml2_s.part base.ml2_s.part \
+HDR compat/base.ml3_s.part base.ml3_s.part \
+HDR compat/base.ml4_s.part base.ml4_s.part \
+HDR compat/base.ml2v2_s.part \
+HDR compat/base.ml3v3_s.part \
+HDR compat/base.ml4v4_s.part \
+HDR base.m_s.part \
+HDR compat/base.lv_c.part \
+HDR compat/base.l1v1_c.part \
+HDR compat/base.l2v2_c.part \
+HDR compat/base.l3v3_c.part \
+HDR compat/base.l4v4_c.part \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+evdev_parts = base.hdr.part base.lists.part \
+compat/base.lists.part \
+HDR evdev.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR base.o_k.part \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR compat/base.mlv_s.part base.mlv_s.part \
+HDR compat/base.ml_s.part base.ml_s.part \
+HDR compat/base.ml1_s.part base.ml1_s.part \
+HDR compat/base.ml1v1_s.part \
+HDR compat/base.ml2_s.part base.ml2_s.part \
+HDR compat/base.ml3_s.part base.ml3_s.part \
+HDR compat/base.ml4_s.part base.ml4_s.part \
+HDR compat/base.ml2v2_s.part \
+HDR compat/base.ml3v3_s.part \
+HDR compat/base.ml4v4_s.part \
+HDR evdev.m_s.part \
+HDR compat/base.lv_c.part \
+HDR compat/base.l1v1_c.part \
+HDR compat/base.l2v2_c.part \
+HDR compat/base.l3v3_c.part \
+HDR compat/base.l4v4_c.part \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR base.lo_s.part \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR compat/base.o_s.part base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+else
+
+base_parts = base.hdr.part base.lists.part \
+HDR base.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR base.mlv_s.part \
+HDR base.ml_s.part \
+HDR base.ml1_s.part \
+HDR \
+HDR base.ml2_s.part \
+HDR base.ml3_s.part \
+HDR base.ml4_s.part \
+HDR \
+HDR \
+HDR \
+HDR base.m_s.part \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+evdev_parts = base.hdr.part base.lists.part \
+HDR evdev.m_k.part \
+HDR base.l1_k.part \
+HDR base.l_k.part \
+HDR \
+HDR base.ml_g.part \
+HDR base.m_g.part \
+HDR base.mlv_s.part \
+HDR base.ml_s.part \
+HDR base.ml1_s.part \
+HDR \
+HDR base.ml2_s.part \
+HDR base.ml3_s.part \
+HDR base.ml4_s.part \
+HDR \
+HDR \
+HDR \
+HDR evdev.m_s.part \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR \
+HDR base.ml_c.part \
+HDR base.ml1_c.part \
+HDR base.m_t.part \
+HDR \
+HDR base.l1o_s.part \
+HDR base.l2o_s.part \
+HDR base.l3o_s.part \
+HDR base.l4o_s.part \
+HDR base.o_s.part \
+HDR base.o_c.part \
+HDR base.o_t.part
+
+endif
+rules_files = base evdev xfree98
+
+lst_files = base.lst evdev.lst
+
+$(DESTDIR)\%.lst: $(DESTDIR)\%.xml
+ perl xml2lst.pl < $< > $@
+
+$(DESTDIR)\base: compat\all $(base_parts)
+ merge $@ $(base_parts)
+
+$(DESTDIR)\evdev: compat\all $(evdev_parts)
+ merge $@ $(evdev_parts)
+
+dist_files = xkb.dtd README
+
+rules_DATA = $(rules_files) $(lst_files) $(dist_files)
+
+COMPATFILES=xorg xorg.xml xorg.lst
+$(DESTDIR)\xorg: $(DESTDIR)\base
+ copy $< $@
+$(DESTDIR)\xorg%: $(DESTDIR)\base%
+ copy $< $@
+
+rules_DATA := $(rules_DATA) $(COMPATFILES)
+
+xml_in_files = base.xml.in evdev.xml.in base.extras.xml.in evdev.extras.xml.in
+xml_DATA = $(xml_in_files:.xml.in=.xml)
+
+$(DESTDIR)\%.xml: %.xml.in
+ copy $< $@
+
+$(DESTDIR)\evdev.xml: base.xml.in
+ copy $< $@
+
+$(DESTDIR)\evdev.extras.xml: base.extras.xml.in
+ copy $< $@
+
+DATA_FILES=$(rules_DATA:%=$(DESTDIR)\%) $(xml_DATA:%=$(DESTDIR)\%)
+
+include ..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/rules/merge.py b/xorg-server/xkeyboard-config/rules/merge.py
new file mode 100644
index 000000000..442a866f2
--- /dev/null
+++ b/xorg-server/xkeyboard-config/rules/merge.py
@@ -0,0 +1,13 @@
+import sys
+
+pOUT=open(sys.argv[1],"wb")
+pHDR=open("HDR","r")
+for item in sys.argv[2:]:
+ if item == 'HDR':
+ pOUT.write("\n")
+ pOUT.write(pHDR.readline())
+ else:
+ pOUT.write(open(item,"rb").read())
+
+pOUT.close()
+
diff --git a/xorg-server/xkeyboard-config/rules/xkb.dtd b/xorg-server/xkeyboard-config/rules/xkb.dtd
index 0afa0df12..dcf35c947 100644
--- a/xorg-server/xkeyboard-config/rules/xkb.dtd
+++ b/xorg-server/xkeyboard-config/rules/xkb.dtd
@@ -1,55 +1,55 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-
- Description: XKB configuration file DTD
- Author: Sergey V. Udaltsov
-
--->
-
-<!ELEMENT xkbConfigRegistry (modelList,layoutList,optionList)>
-
-<!ATTLIST xkbConfigRegistry
- version CDATA "1.1">
-
-<!ELEMENT modelList (model*)>
-
-<!ELEMENT model (configItem)>
-
-<!ELEMENT layoutList (layout*)>
-
-<!ELEMENT layout (configItem,variantList?)>
-
-<!ELEMENT optionList (group*)>
-
-<!ELEMENT variantList (variant*)>
-
-<!ELEMENT variant (configItem)>
-
-<!ELEMENT group (configItem,option*)>
-<!ATTLIST group
- allowMultipleSelection (true|false) "false">
-
-<!ELEMENT option (configItem)>
-
-<!ELEMENT configItem (name,shortDescription*,description*,vendor?,countryList?,languageList?)>
-
-<!ATTLIST configItem
- popularity (standard|exotic) "standard">
-
-<!ELEMENT name (#PCDATA)>
-
-<!ELEMENT shortDescription (#PCDATA)>
-
-<!ELEMENT description (#PCDATA)>
-
-<!ELEMENT vendor (#PCDATA)>
-
-<!ELEMENT countryList (iso3166Id+)>
-
-<!ELEMENT iso3166Id (#PCDATA)>
-
-<!ELEMENT languageList (iso639Id+)>
-
-<!ELEMENT iso639Id (#PCDATA)>
-
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+ Description: XKB configuration file DTD
+ Author: Sergey V. Udaltsov
+
+-->
+
+<!ELEMENT xkbConfigRegistry (modelList,layoutList,optionList)>
+
+<!ATTLIST xkbConfigRegistry
+ version CDATA "1.1">
+
+<!ELEMENT modelList (model*)>
+
+<!ELEMENT model (configItem)>
+
+<!ELEMENT layoutList (layout*)>
+
+<!ELEMENT layout (configItem,variantList?)>
+
+<!ELEMENT optionList (group*)>
+
+<!ELEMENT variantList (variant*)>
+
+<!ELEMENT variant (configItem)>
+
+<!ELEMENT group (configItem,option*)>
+<!ATTLIST group
+ allowMultipleSelection (true|false) "false">
+
+<!ELEMENT option (configItem)>
+
+<!ELEMENT configItem (name,shortDescription*,description*,vendor?,countryList?,languageList?)>
+
+<!ATTLIST configItem
+ popularity (standard|exotic) "standard">
+
+<!ELEMENT name (#PCDATA)>
+
+<!ELEMENT shortDescription (#PCDATA)>
+
+<!ELEMENT description (#PCDATA)>
+
+<!ELEMENT vendor (#PCDATA)>
+
+<!ELEMENT countryList (iso3166Id+)>
+
+<!ELEMENT iso3166Id (#PCDATA)>
+
+<!ELEMENT languageList (iso639Id+)>
+
+<!ELEMENT iso639Id (#PCDATA)>
+
diff --git a/xorg-server/xkeyboard-config/rules/xml2lst.pl b/xorg-server/xkeyboard-config/rules/xml2lst.pl
index 0c6540d1e..3b5e10009 100644
--- a/xorg-server/xkeyboard-config/rules/xml2lst.pl
+++ b/xorg-server/xkeyboard-config/rules/xml2lst.pl
@@ -1,262 +1,262 @@
-#!/usr/bin/perl
-
-# converts the <rules>.xml file to the old format <rules>.lst file
-#
-# Usage:
-#
-# perl xml2lst.pl < filename.xml > filename.lst
-#
-# author Ivan Pascal
-
-$doc = new_document( 0, '');
-parse('', $doc);
-
-($reg) = node_by_name($doc, '/xkbConfigRegistry');
-@models = node_by_name($reg, 'modelList/model/configItem');
-@layouts = node_by_name($reg, 'layoutList/layout/configItem');
-@options = node_by_name($reg, 'optionList/group/configItem');
-
-print "! model\n";
-for $i (@models) {
- ($name) = node_by_name($i, 'name');
- ($descr) = node_by_name($i, 'description');
- printf(" %-15s %s\n", text_child($name), text_child($descr));
-}
-
-print "\n! layout\n";
-for $i (@layouts) {
- ($name) = node_by_name($i, 'name');
- ($descr) = node_by_name($i, 'description');
- printf(" %-15s %s\n", text_child($name), text_child($descr));
-}
-
-print "\n! variant\n";
-for $l (@layouts) {
- ($lname) = node_by_name($l, 'name');
- @variants = node_by_name($l, '../variantList/variant/configItem');
- for $v (@variants) {
- ($name) = node_by_name($v, 'name');
- ($descr) = node_by_name($v, 'description');
- printf(" %-15s %s: %s\n",
- text_child($name), text_child($lname), text_child($descr));
- }
-}
-
-print "\n! option\n";
-for $g (@options) {
- ($name) = node_by_name($g, 'name');
- ($descr) = node_by_name($g, 'description');
- printf(" %-20s %s\n", text_child($name), text_child($descr));
-
- @opts = node_by_name($g, '../option/configItem');
- for $o (@opts) {
- ($name) = node_by_name($o, 'name');
- ($descr) = node_by_name($o, 'description');
- printf(" %-20s %s\n",
- text_child($name), text_child($descr));
- }
-}
-
-sub with_attribute {
- local ($nodelist, $attrexpr) = @_;
- local ($attr, $value) = split (/=/, $attrexpr);
- local ($node, $attrvalue);
- if (defined $value && $value ne '') {
- $value =~ s/"//g;
- foreach $node (@{$nodelist}) {
- $attrvalue = node_attribute($node, $attr);
- if (defined $attrvalue && $attrvalue eq $value) {
- return $node;
- }
- }
- } else {
- foreach $node (@{$nodelist}) {
- if (! defined node_attribute($node, $attr)) {
- return $node;
- }
- }
- }
- undef;
-}
-
-# Subroutines
-
-sub parse {
- local $intag = 0;
- my (@node_stack, $parent);
- $parent = @_[1];
- local ($tag, $text);
-
- while (<>) {
- chomp;
- @str = split /([<>])/;
- shift @str if ($str[0] eq '' || $str[0] =~ /^[ \t]*$/);
-
- while (scalar @str) {
- $token = shift @str;
- if ($token eq '<') {
- $intag = 1;
- if (defined $text) {
- add_text_node($parent, $text);
- undef $text;
- }
- } elsif ($token eq '>') {
- $intag = 0;
- if ($tag =~ /^\/(.*)/) { # close tag
- $parent = pop @node_stack;
- } elsif ($tag =~ /^([^\/]*)\/$/) {
- empty_tag($parent, $1);
- } else {
- if (defined ($node = open_tag($parent, $tag))) {
- push @node_stack, $parent;
- $parent = $node;
- }
- }
- undef $tag;
- } else {
- if ($intag == 1) {
- if (defined $tag) {
- $tag .= ' '. $token;
- } else {
- $tag = $token;
- }
- } else {
- if (defined $text) {
- $text .= "\n" . $token;
- } else {
- $text = $token;
- }
- }
- }
- }
- }
-}
-
-sub new_document {
- $doc = new_node( 0, '', 'DOCUMENT');
- $doc->{CHILDREN} = [];
- return $doc;
-}
-
-sub new_node {
- local ($parent_node, $tag, $type) = @_;
-
- my %node;
- $node{PARENT} = $parent_node;
- $node{TYPE} = $type;
-
- if ($type eq 'COMMENT' || $type eq 'TEXT') {
- $node{TEXT} = $tag;
- $node{NAME} = $type;
- return \%node;
- }
-
- local ($tname, $attr) = split(' ', $tag, 2);
- $node{NAME} = $tname;
-
- if (defined $attr && $attr ne '') {
- my %attr_table;
- local @attr_list = split ( /"/, $attr);
- local ($name, $value);
- while (scalar @attr_list) {
- $name = shift @attr_list;
- $name =~ s/[ =]//g;
- next if ($name eq '');
- $value = shift @attr_list;
- $attr_table{$name} =$value;
- }
- $node{ATTRIBUTES} = \%attr_table;
- }
- return \%node;
-}
-
-sub add_node {
- local ($parent_node, $node) = @_;
- push @{$parent_node->{CHILDREN}}, $node;
-
- local $tname = $node->{NAME};
- if (defined $parent_node->{$tname}) {
- push @{$parent_node->{$tname}}, $node
- } else {
- $parent_node->{$tname} = [ $node ];
- }
-}
-
-sub empty_tag {
- local ($parent_node, $tag) = @_;
- local $node = new_node($parent_node, $tag, 'EMPTY');
- add_node($parent_node, $node);
-}
-
-sub open_tag {
- local ($parent_node, $tag) = @_;
- local $node;
-
- if ($tag =~ /^\?.*/ || $tag =~ /^\!.*/) {
- $node = new_node($parent_node, $tag, 'COMMENT');
- add_node($parent_node, $node);
- undef; return;
- } else {
- $node = new_node($parent_node, $tag, 'NODE');
- $node->{CHILDREN} = [];
- add_node($parent_node, $node);
- return $node;
- }
-}
-
-sub add_text_node {
- local ($parent_node, $text) = @_;
- local $node = new_node($parent_node, $text, 'TEXT');
- add_node($parent_node, $node);
-}
-
-sub node_by_name {
- local ($node, $name) = @_;
- local ($tagname, $path) = split(/\//, $name, 2);
-
- my @nodelist;
-
- if ($tagname eq '') {
- while ($node->{PARENT} != 0) {
- $node = $node->{PARENT};
- }
- sublist_by_name($node, $path, \@nodelist);
- } else {
- sublist_by_name($node, $name, \@nodelist);
- }
- return @nodelist;
-}
-
-sub sublist_by_name {
- local ($node, $name, $res) = @_;
- local ($tagname, $path) = split(/\//, $name, 2);
-
- if (! defined $path) {
- push @{$res}, (@{$node->{$tagname}});
- return;
- }
-
- if ($tagname eq '..' && $node->{PARENT} != 0) {
- $node = $node->{PARENT};
- sublist_by_name($node, $path, $res);
- } else {
- local $n;
- for $n (@{$node->{$tagname}}) {
- sublist_by_name($n, $path, $res);
- }
- }
-}
-
-sub node_attribute {
- local $node = @_[0];
- if (defined $node->{ATTRIBUTES}) {
- return $node->{ATTRIBUTES}{@_[1]};
- }
- undef;
-}
-
-sub text_child {
- local ($node) = @_;
- local ($child) = node_by_name($node, 'TEXT');
- return $child->{TEXT};
-}
+#!/usr/bin/perl
+
+# converts the <rules>.xml file to the old format <rules>.lst file
+#
+# Usage:
+#
+# perl xml2lst.pl < filename.xml > filename.lst
+#
+# author Ivan Pascal
+
+$doc = new_document( 0, '');
+parse('', $doc);
+
+($reg) = node_by_name($doc, '/xkbConfigRegistry');
+@models = node_by_name($reg, 'modelList/model/configItem');
+@layouts = node_by_name($reg, 'layoutList/layout/configItem');
+@options = node_by_name($reg, 'optionList/group/configItem');
+
+print "! model\n";
+for $i (@models) {
+ ($name) = node_by_name($i, 'name');
+ ($descr) = node_by_name($i, 'description');
+ printf(" %-15s %s\n", text_child($name), text_child($descr));
+}
+
+print "\n! layout\n";
+for $i (@layouts) {
+ ($name) = node_by_name($i, 'name');
+ ($descr) = node_by_name($i, 'description');
+ printf(" %-15s %s\n", text_child($name), text_child($descr));
+}
+
+print "\n! variant\n";
+for $l (@layouts) {
+ ($lname) = node_by_name($l, 'name');
+ @variants = node_by_name($l, '../variantList/variant/configItem');
+ for $v (@variants) {
+ ($name) = node_by_name($v, 'name');
+ ($descr) = node_by_name($v, 'description');
+ printf(" %-15s %s: %s\n",
+ text_child($name), text_child($lname), text_child($descr));
+ }
+}
+
+print "\n! option\n";
+for $g (@options) {
+ ($name) = node_by_name($g, 'name');
+ ($descr) = node_by_name($g, 'description');
+ printf(" %-20s %s\n", text_child($name), text_child($descr));
+
+ @opts = node_by_name($g, '../option/configItem');
+ for $o (@opts) {
+ ($name) = node_by_name($o, 'name');
+ ($descr) = node_by_name($o, 'description');
+ printf(" %-20s %s\n",
+ text_child($name), text_child($descr));
+ }
+}
+
+sub with_attribute {
+ local ($nodelist, $attrexpr) = @_;
+ local ($attr, $value) = split (/=/, $attrexpr);
+ local ($node, $attrvalue);
+ if (defined $value && $value ne '') {
+ $value =~ s/"//g;
+ foreach $node (@{$nodelist}) {
+ $attrvalue = node_attribute($node, $attr);
+ if (defined $attrvalue && $attrvalue eq $value) {
+ return $node;
+ }
+ }
+ } else {
+ foreach $node (@{$nodelist}) {
+ if (! defined node_attribute($node, $attr)) {
+ return $node;
+ }
+ }
+ }
+ undef;
+}
+
+# Subroutines
+
+sub parse {
+ local $intag = 0;
+ my (@node_stack, $parent);
+ $parent = @_[1];
+ local ($tag, $text);
+
+ while (<>) {
+ chomp;
+ @str = split /([<>])/;
+ shift @str if ($str[0] eq '' || $str[0] =~ /^[ \t]*$/);
+
+ while (scalar @str) {
+ $token = shift @str;
+ if ($token eq '<') {
+ $intag = 1;
+ if (defined $text) {
+ add_text_node($parent, $text);
+ undef $text;
+ }
+ } elsif ($token eq '>') {
+ $intag = 0;
+ if ($tag =~ /^\/(.*)/) { # close tag
+ $parent = pop @node_stack;
+ } elsif ($tag =~ /^([^\/]*)\/$/) {
+ empty_tag($parent, $1);
+ } else {
+ if (defined ($node = open_tag($parent, $tag))) {
+ push @node_stack, $parent;
+ $parent = $node;
+ }
+ }
+ undef $tag;
+ } else {
+ if ($intag == 1) {
+ if (defined $tag) {
+ $tag .= ' '. $token;
+ } else {
+ $tag = $token;
+ }
+ } else {
+ if (defined $text) {
+ $text .= "\n" . $token;
+ } else {
+ $text = $token;
+ }
+ }
+ }
+ }
+ }
+}
+
+sub new_document {
+ $doc = new_node( 0, '', 'DOCUMENT');
+ $doc->{CHILDREN} = [];
+ return $doc;
+}
+
+sub new_node {
+ local ($parent_node, $tag, $type) = @_;
+
+ my %node;
+ $node{PARENT} = $parent_node;
+ $node{TYPE} = $type;
+
+ if ($type eq 'COMMENT' || $type eq 'TEXT') {
+ $node{TEXT} = $tag;
+ $node{NAME} = $type;
+ return \%node;
+ }
+
+ local ($tname, $attr) = split(' ', $tag, 2);
+ $node{NAME} = $tname;
+
+ if (defined $attr && $attr ne '') {
+ my %attr_table;
+ local @attr_list = split ( /"/, $attr);
+ local ($name, $value);
+ while (scalar @attr_list) {
+ $name = shift @attr_list;
+ $name =~ s/[ =]//g;
+ next if ($name eq '');
+ $value = shift @attr_list;
+ $attr_table{$name} =$value;
+ }
+ $node{ATTRIBUTES} = \%attr_table;
+ }
+ return \%node;
+}
+
+sub add_node {
+ local ($parent_node, $node) = @_;
+ push @{$parent_node->{CHILDREN}}, $node;
+
+ local $tname = $node->{NAME};
+ if (defined $parent_node->{$tname}) {
+ push @{$parent_node->{$tname}}, $node
+ } else {
+ $parent_node->{$tname} = [ $node ];
+ }
+}
+
+sub empty_tag {
+ local ($parent_node, $tag) = @_;
+ local $node = new_node($parent_node, $tag, 'EMPTY');
+ add_node($parent_node, $node);
+}
+
+sub open_tag {
+ local ($parent_node, $tag) = @_;
+ local $node;
+
+ if ($tag =~ /^\?.*/ || $tag =~ /^\!.*/) {
+ $node = new_node($parent_node, $tag, 'COMMENT');
+ add_node($parent_node, $node);
+ undef; return;
+ } else {
+ $node = new_node($parent_node, $tag, 'NODE');
+ $node->{CHILDREN} = [];
+ add_node($parent_node, $node);
+ return $node;
+ }
+}
+
+sub add_text_node {
+ local ($parent_node, $text) = @_;
+ local $node = new_node($parent_node, $text, 'TEXT');
+ add_node($parent_node, $node);
+}
+
+sub node_by_name {
+ local ($node, $name) = @_;
+ local ($tagname, $path) = split(/\//, $name, 2);
+
+ my @nodelist;
+
+ if ($tagname eq '') {
+ while ($node->{PARENT} != 0) {
+ $node = $node->{PARENT};
+ }
+ sublist_by_name($node, $path, \@nodelist);
+ } else {
+ sublist_by_name($node, $name, \@nodelist);
+ }
+ return @nodelist;
+}
+
+sub sublist_by_name {
+ local ($node, $name, $res) = @_;
+ local ($tagname, $path) = split(/\//, $name, 2);
+
+ if (! defined $path) {
+ push @{$res}, (@{$node->{$tagname}});
+ return;
+ }
+
+ if ($tagname eq '..' && $node->{PARENT} != 0) {
+ $node = $node->{PARENT};
+ sublist_by_name($node, $path, $res);
+ } else {
+ local $n;
+ for $n (@{$node->{$tagname}}) {
+ sublist_by_name($n, $path, $res);
+ }
+ }
+}
+
+sub node_attribute {
+ local $node = @_[0];
+ if (defined $node->{ATTRIBUTES}) {
+ return $node->{ATTRIBUTES}{@_[1]};
+ }
+ undef;
+}
+
+sub text_child {
+ local ($node) = @_;
+ local ($child) = node_by_name($node, 'TEXT');
+ return $child->{TEXT};
+}