diff options
Diffstat (limited to 'xorg-server/xkeyboard-config/rules')
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};
+}
|