aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fontconfig/fontconfig/fontconfig.h4
-rw-r--r--libX11/modules/im/ximcp/imRmAttr.c7
-rw-r--r--libX11/nls/locale.alias.pre2751
-rw-r--r--libX11/nls/pt_BR.UTF-8/Compose.pre2
-rw-r--r--libX11/specs/XIM/xim.xml25
-rw-r--r--libX11/specs/XKB/ch01.xml22
-rw-r--r--libX11/specs/XKB/ch02.xml16
-rw-r--r--libX11/specs/XKB/ch03.xml12
-rw-r--r--libX11/specs/XKB/ch04.xml12
-rw-r--r--libX11/specs/XKB/ch05.xml14
-rw-r--r--libX11/specs/XKB/ch06.xml10
-rw-r--r--libX11/specs/XKB/ch07.xml16
-rw-r--r--libX11/specs/XKB/ch08.xml40
-rw-r--r--libX11/specs/XKB/ch09.xml16
-rw-r--r--libX11/specs/XKB/ch10.xml78
-rw-r--r--libX11/specs/XKB/ch11.xml30
-rw-r--r--libX11/specs/XKB/ch12.xml12
-rw-r--r--libX11/specs/XKB/ch13.xml26
-rw-r--r--libX11/specs/XKB/ch14.xml26
-rw-r--r--libX11/specs/XKB/ch15.xml44
-rw-r--r--libX11/specs/XKB/ch16.xml56
-rw-r--r--libX11/specs/XKB/ch17.xml22
-rw-r--r--libX11/specs/XKB/ch18.xml16
-rw-r--r--libX11/specs/XKB/ch19.xml2
-rw-r--r--libX11/specs/XKB/ch20.xml10
-rw-r--r--libX11/specs/XKB/ch21.xml17
-rw-r--r--libX11/specs/XKB/ch22.xml2
-rw-r--r--libX11/specs/i18n/framework/framework.xml164
-rw-r--r--libX11/specs/i18n/localedb/localedb.xml6
-rw-r--r--libX11/specs/i18n/trans/trans.xml32
-rw-r--r--libX11/specs/libX11/AppA.xml978
-rw-r--r--libX11/specs/libX11/AppB.xml104
-rw-r--r--libX11/specs/libX11/AppC.xml266
-rw-r--r--libX11/specs/libX11/AppD.xml204
-rw-r--r--libX11/specs/libX11/CH01.xml20
-rw-r--r--libX11/specs/libX11/CH02.xml270
-rw-r--r--libX11/specs/libX11/CH03.xml308
-rw-r--r--libX11/specs/libX11/CH04.xml204
-rw-r--r--libX11/specs/libX11/CH05.xml74
-rw-r--r--libX11/specs/libX11/CH06.xml570
-rw-r--r--libX11/specs/libX11/CH07.xml268
-rw-r--r--libX11/specs/libX11/CH08.xml464
-rw-r--r--libX11/specs/libX11/CH09.xml232
-rw-r--r--libX11/specs/libX11/CH10.xml194
-rw-r--r--libX11/specs/libX11/CH11.xml264
-rw-r--r--libX11/specs/libX11/CH12.xml344
-rw-r--r--libX11/specs/libX11/CH13.xml852
-rw-r--r--libX11/specs/libX11/CH14.xml530
-rw-r--r--libX11/specs/libX11/CH15.xml246
-rw-r--r--libX11/specs/libX11/CH16.xml394
-rw-r--r--libX11/specs/libX11/credits.xml16
-rw-r--r--libX11/specs/libX11/glossary.xml3518
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blitter.c353
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_blitter.h47
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format.c132
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format.csv61
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format.h86
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format_pack.py1388
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format_parse.py594
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_format_table.py409
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_tile.c138
-rw-r--r--mesalib/src/gallium/auxiliary/util/u_tile.h291
-rw-r--r--mesalib/src/glsl/ast_to_hir.cpp3
-rw-r--r--mesalib/src/glsl/ir.cpp8
-rw-r--r--mesalib/src/glsl/ir.h8
-rw-r--r--mesalib/src/mesa/drivers/common/meta.c3
-rw-r--r--mesalib/src/mesa/main/APIspec.xml14
-rw-r--r--mesalib/src/mesa/main/context.c8
-rw-r--r--mesalib/src/mesa/main/dd.h1
-rw-r--r--mesalib/src/mesa/main/ff_fragment_shader.cpp10
-rw-r--r--mesalib/src/mesa/main/formats.c8
-rw-r--r--mesalib/src/mesa/main/get.c3
-rw-r--r--mesalib/src/mesa/main/imports.c13
-rw-r--r--mesalib/src/mesa/main/imports.h3
-rw-r--r--mesalib/src/mesa/main/mipmap.c38
-rw-r--r--mesalib/src/mesa/main/mtypes.h7
-rw-r--r--mesalib/src/mesa/main/pack.c63
-rw-r--r--mesalib/src/mesa/main/pack.h5
-rw-r--r--mesalib/src/mesa/main/shaderapi.c32
-rw-r--r--mesalib/src/mesa/main/shaderobj.c4
-rw-r--r--mesalib/src/mesa/main/state.c18
-rw-r--r--mesalib/src/mesa/main/texcompress_fxt1.c9
-rw-r--r--mesalib/src/mesa/main/texcompress_s3tc.c16
-rw-r--r--mesalib/src/mesa/main/texformat.c204
-rw-r--r--mesalib/src/mesa/main/texstate.c18
-rw-r--r--mesalib/src/mesa/main/uniforms.c42
-rw-r--r--mesalib/src/mesa/program/ir_to_mesa.cpp37
-rw-r--r--mesalib/src/mesa/program/prog_uniform.c74
-rw-r--r--mesalib/src/mesa/program/prog_uniform.h4
-rw-r--r--mesalib/src/mesa/state_tracker/st_cb_readpixels.c40
-rw-r--r--mesalib/src/mesa/state_tracker/st_format.c453
-rw-r--r--mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp44
-rw-r--r--mesalib/src/mesa/state_tracker/st_program.c9
-rw-r--r--mesalib/src/mesa/swrast/s_context.h17
-rw-r--r--mesalib/src/mesa/swrast/s_texfetch.c74
-rw-r--r--mesalib/src/mesa/swrast/s_texfetch.h2
-rw-r--r--mesalib/src/mesa/swrast/s_texfilter.c80
-rw-r--r--mesalib/src/mesa/swrast/s_texrender.c34
-rw-r--r--mesalib/src/mesa/tnl/t_vb_program.c14
-rw-r--r--pixman/configure.ac5
-rw-r--r--pixman/pixman/pixman-bits-image.c74
-rw-r--r--pixman/pixman/pixman-fast-path.c178
-rw-r--r--pixman/pixman/pixman-image.c111
-rw-r--r--pixman/pixman/pixman-private.h29
-rw-r--r--pixman/pixman/pixman-sse2.c428
-rw-r--r--pixman/pixman/pixman-utils.c112
-rw-r--r--pixman/pixman/pixman.c123
-rw-r--r--xorg-server/xkeyboard-config/rules/base.xml.in330
-rw-r--r--xorg-server/xkeyboard-config/symbols/cz3
109 files changed, 10906 insertions, 9216 deletions
diff --git a/fontconfig/fontconfig/fontconfig.h b/fontconfig/fontconfig/fontconfig.h
index 29a6ed460..db26b97f8 100644
--- a/fontconfig/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig/fontconfig.h
@@ -605,10 +605,10 @@ FcLangSetHash (const FcLangSet *ls);
FcPublic FcStrSet *
FcLangSetGetLangs (const FcLangSet *ls);
-FcLangSet *
+FcPublic FcLangSet *
FcLangSetUnion (const FcLangSet *a, const FcLangSet *b);
-FcLangSet *
+FcPublic FcLangSet *
FcLangSetSubtract (const FcLangSet *a, const FcLangSet *b);
/* fclist.c */
diff --git a/libX11/modules/im/ximcp/imRmAttr.c b/libX11/modules/im/ximcp/imRmAttr.c
index 2e732658a..c047715f6 100644
--- a/libX11/modules/im/ximcp/imRmAttr.c
+++ b/libX11/modules/im/ximcp/imRmAttr.c
@@ -177,6 +177,8 @@ _XimMakeICAttrIDList(
else *len += new_len;
return name;
}
+ *len += new_len;
+ buf = (CARD16 *)((char *)buf + new_len);
} else if (res->xrm_name == sts_quark) {
if ((name = _XimMakeICAttrIDList(ic, res_list, res_num,
(XIMArg *)p->value, buf, &new_len,
@@ -185,9 +187,10 @@ _XimMakeICAttrIDList(
else *len += new_len;
return name;
}
+ *len += new_len;
+ buf = (CARD16 *)((char *)buf + new_len);
}
- *len += new_len;
- buf = (CARD16 *)((char *)buf + new_len);
+
if (!(res = _XimGetNestedListSeparator(res_list, res_num))) {
p++;
if (p) {
diff --git a/libX11/nls/locale.alias.pre b/libX11/nls/locale.alias.pre
index 25f06d430..7b3546099 100644
--- a/libX11/nls/locale.alias.pre
+++ b/libX11/nls/locale.alias.pre
@@ -1,1385 +1,1366 @@
-XCOMM
-XCOMM This file contains alias name of locale.
-XCOMM Each alias name is described within one line.
-XCOMM The first word is the alias name (simplified locale name)
-XCOMM the second word is full locale name.
-XCOMM
-XCOMM
-
-POSIX: C
-POSIX-UTF2: C
-C_C.C: C
-C.en: C
-C.ASCII: C
-C.iso88591: en_US.ISO8859-1
-Cextend: en_US.ISO8859-1
-Cextend.en: en_US.ISO8859-1
-English_United-States.437: C
-C.UTF-8: en_US.UTF-8
-XCOMM a3 is not an ISO 639 language code, but in Cyrillic, "Z" looks like "3".
-a3: a3_AZ.KOI8-C
-a3_AZ: a3_AZ.KOI8-C
-a3_AZ.koi8c: a3_AZ.KOI8-C
-af: af_ZA.ISO8859-1
-af_ZA: af_ZA.ISO8859-1
-af_ZA.iso88591: af_ZA.ISO8859-1
-af_ZA.ISO-8859-1: af_ZA.ISO8859-1
-af_ZA.utf8: af_ZA.UTF-8
-am: am_ET.UTF-8
-am_ET: am_ET.UTF-8
-ar: ar_AA.ISO8859-6
-ar_AA: ar_AA.ISO8859-6
-AR_AA: ar_AA.ISO8859-6
-Ar_AA: ar_AA.ISO8859-6
-AR_AA.UTF-8: ar_AA.UTF-8
-ar_AA.iso88596: ar_AA.ISO8859-6
-ar_AA.ISO-8859-6: ar_AA.ISO8859-6
-ar_AE: ar_AE.ISO8859-6
-ar_AE.iso88596: ar_AE.ISO8859-6
-ar_AE.ISO-8859-6: ar_AE.ISO8859-6
-ar_AE.utf8: ar_AE.UTF-8
-ar_BH: ar_BH.ISO8859-6
-ar_BH.iso88596: ar_BH.ISO8859-6
-ar_BH.ISO-8859-6: ar_BH.ISO8859-6
-ar_BH.utf8: ar_BH.UTF-8
-ar_DZ: ar_DZ.ISO8859-6
-ar_DZ.iso88596: ar_DZ.ISO8859-6
-ar_DZ.ISO-8859-6: ar_DZ.ISO8859-6
-ar_DZ.utf8: ar_DZ.UTF-8
-ar_EG: ar_EG.ISO8859-6
-ar_EG.iso88596: ar_EG.ISO8859-6
-ar_EG.ISO-8859-6: ar_EG.ISO8859-6
-ar_EG.utf8: ar_EG.UTF-8
-ar_IN.utf8: ar_IN.UTF-8
-ar_IN.UTF-8: ar_IN.UTF-8
-ar_IQ: ar_IQ.ISO8859-6
-ar_IQ.iso88596: ar_IQ.ISO8859-6
-ar_IQ.ISO-8859-6: ar_IQ.ISO8859-6
-ar_IQ.utf8: ar_IQ.UTF-8
-ar_JO: ar_JO.ISO8859-6
-ar_JO.iso88596: ar_JO.ISO8859-6
-ar_JO.ISO-8859-6: ar_JO.ISO8859-6
-ar_JO.utf8: ar_JO.UTF-8
-ar_KW: ar_KW.ISO8859-6
-ar_KW.iso88596: ar_KW.ISO8859-6
-ar_KW.ISO-8859-6: ar_KW.ISO8859-6
-ar_KW.utf8: ar_KW.UTF-8
-ar_LB: ar_LB.ISO8859-6
-ar_LB.iso88596: ar_LB.ISO8859-6
-ar_LB.ISO-8859-6: ar_LB.ISO8859-6
-ar_LB.utf8: ar_LB.UTF-8
-ar_LY: ar_LY.ISO8859-6
-ar_LY.iso88596: ar_LY.ISO8859-6
-ar_LY.ISO-8859-6: ar_LY.ISO8859-6
-ar_LY.utf8: ar_LY.UTF-8
-ar_MA: ar_MA.ISO8859-6
-ar_MA.iso88596: ar_MA.ISO8859-6
-ar_MA.ISO-8859-6: ar_MA.ISO8859-6
-ar_MA.utf8: ar_MA.UTF-8
-ar_OM: ar_OM.ISO8859-6
-ar_OM.iso88596: ar_OM.ISO8859-6
-ar_OM.ISO-8859-6: ar_OM.ISO8859-6
-ar_OM.utf8: ar_OM.UTF-8
-ar_QA: ar_QA.ISO8859-6
-ar_QA.iso88596: ar_QA.ISO8859-6
-ar_QA.ISO-8859-6: ar_QA.ISO8859-6
-ar_QA.utf8: ar_QA.UTF-8
-ar_SA: ar_SA.ISO8859-6
-ar_SA.iso88596: ar_SA.ISO8859-6
-ar_SA.ISO-8859-6: ar_SA.ISO8859-6
-ar_SA.utf8: ar_SA.UTF-8
-ar_SD: ar_SD.ISO8859-6
-ar_SD.iso88596: ar_SD.ISO8859-6
-ar_SD.ISO-8859-6: ar_SD.ISO8859-6
-ar_SD.utf8: ar_SD.UTF-8
-ar_SY: ar_SY.ISO8859-6
-ar_SY.iso88596: ar_SY.ISO8859-6
-ar_SY.ISO-8859-6: ar_SY.ISO8859-6
-ar_SY.utf8: ar_SY.UTF-8
-ar_TN: ar_TN.ISO8859-6
-ar_TN.iso88596: ar_TN.ISO8859-6
-ar_TN.ISO-8859-6: ar_TN.ISO8859-6
-ar_TN.utf8: ar_TN.UTF-8
-as: as_IN.UTF-8
-as_IN.utf8: as_IN.UTF-8
-as_IN.UTF-8: as_IN.UTF-8
-ar_YE: ar_YE.ISO8859-6
-ar_YE.iso88596: ar_YE.ISO8859-6
-ar_YE.ISO-8859-6: ar_YE.ISO8859-6
-ar_YE.utf8: ar_YE.UTF-8
-az: az_AZ.ISO8859-9E
-az_AZ: az_AZ.ISO8859-9E
-az_AZ.iso88599e: az_AZ.ISO8859-9E
-be: be_BY.CP1251
-be@latin: be_BY.UTF-8@latin
-be_BY: be_BY.CP1251
-be_BY@latin: be_BY.UTF-8@latin
-be_BY.cp1251: be_BY.CP1251
-be_BY.microsoftcp1251: be_BY.CP1251
-be_BY.microsoft-cp1251: be_BY.CP1251
-be_BY.MICROSOFT-CP1251: be_BY.CP1251
-be_BY.utf8: be_BY.UTF-8
-be_BY.utf8@latin: be_BY.UTF-8@latin
-bg: bg_BG.CP1251
-bg_BG: bg_BG.CP1251
-bg_BG.cp1251: bg_BG.CP1251
-bg_BG.microsoftcp1251: bg_BG.CP1251
-bg_BG.microsoft-cp1251: bg_BG.CP1251
-bg_BG.MICROSOFT-CP1251: bg_BG.CP1251
-bg_BG.iso88595: bg_BG.ISO8859-5
-bg_BG.ISO-8859-5: bg_BG.ISO8859-5
-bg_BG.koi8r: bg_BG.KOI8-R
-be_BG.utf8: bg_BG.UTF-8
-bn_IN.utf8: bn_IN.UTF-8
-bn_IN.UTF-8: bn_IN.UTF-8
-bo_IN.utf8: bo_IN.UTF-8
-bo_IN.UTF-8: bo_IN.UTF-8
-br: br_FR.ISO8859-1
-br_FR: br_FR.ISO8859-1
-br_FR.iso88591: br_FR.ISO8859-1
-br_FR.ISO-8859-1: br_FR.ISO8859-1
-br_FR.iso885914: br_FR.ISO8859-14
-br_FR.ISO-8859-14: br_FR.ISO8859-14
-br_FR.iso885915: br_FR.ISO8859-15
-br_FR.ISO-8859-15: br_FR.ISO8859-15
-br_FR.ISO-8859-15@euro: br_FR.ISO8859-15
-br_FR@euro: br_FR.ISO8859-15
-br_FR.UTF-8@euro: br_FR.UTF-8
-bs: bs_BA.ISO8859-2
-bs_BA: bs_BA.ISO8859-2
-bs_BA.iso88592: bs_BA.ISO8859-2
-bs_BA.ISO-8859-2: bs_BA.ISO8859-2
-bs_BA.ISO_8859-2: bs_BA.ISO8859-2
-ca: ca_ES.ISO8859-1
-ca_AD: ca_AD.ISO8859-1
-ca_AD@euro: ca_AD.ISO8859-15
-ca_AD.iso88591: ca_AD.ISO8859-1
-ca_AD.ISO-8859-1: ca_AD.ISO8859-1
-ca_AD.iso885915: ca_AD.ISO8859-15
-ca_AD.utf8: ca_AD.UTF-8
-ca_AD.ISO-8859-15: ca_AD.ISO8859-15
-ca_AD.ISO-8859-15@euro: ca_AD.ISO8859-15
-ca_AD.UTF-8@euro: ca_AD.UTF-8
-ca_ES: ca_ES.ISO8859-1
-ca_ES@euro: ca_ES.ISO8859-15
-ca_ES.iso88591: ca_ES.ISO8859-1
-ca_ES.ISO-8859-1: ca_ES.ISO8859-1
-ca_ES.iso885915: ca_ES.ISO8859-15
-ca_ES.utf8: ca_ES.UTF-8
-ca_ES.ISO-8859-15: ca_ES.ISO8859-15
-ca_ES.ISO-8859-15@euro: ca_ES.ISO8859-15
-ca_ES.UTF-8@euro: ca_ES.UTF-8
-ca_FR: ca_FR.ISO8859-1
-ca_FR@euro: ca_FR.ISO8859-15
-ca_FR.iso88591: ca_FR.ISO8859-1
-ca_FR.ISO-8859-1: ca_FR.ISO8859-1
-ca_FR.iso885915: ca_FR.ISO8859-15
-ca_FR.utf8: ca_FR.UTF-8
-ca_FR.ISO-8859-15: ca_FR.ISO8859-15
-ca_FR.ISO-8859-15@euro: ca_FR.ISO8859-15
-ca_FR.UTF-8@euro: ca_FR.UTF-8
-ca_IT: ca_IT.ISO8859-1
-ca_IT@euro: ca_IT.ISO8859-15
-ca_IT.iso88591: ca_IT.ISO8859-1
-ca_IT.ISO-8859-1: ca_IT.ISO8859-1
-ca_IT.iso885915: ca_IT.ISO8859-15
-ca_IT.utf8: ca_IT.UTF-8
-ca_IT.ISO-8859-15: ca_IT.ISO8859-15
-ca_IT.ISO-8859-15@euro: ca_IT.ISO8859-15
-ca_IT.UTF-8@euro: ca_IT.UTF-8
-cs: cs_CZ.ISO8859-2
-cs_CS: cs_CZ.ISO8859-2
-cs_CS.ISO8859-2: cs_CZ.ISO8859-2
-cs_CZ: cs_CZ.ISO8859-2
-cs_CZ.iso88592: cs_CZ.ISO8859-2
-cs_CS.iso8859-2: cs_CS.ISO8859-2
-cs_CZ.ISO-8859-2: cs_CZ.ISO8859-2
-cs_CZ.ISO_8859-2: cs_CZ.ISO8859-2
-cs_CZ.utf8: cs_CZ.UTF-8
-XCOMM cz is an old name for Czech (now cs), and should be deleted in the future.
-cz: cs_CZ.ISO8859-2
-cz_CZ: cs_CZ.ISO8859-2
-cz_CZ.utf8: cs_CZ.UTF-8
-cz_CZ.UTF-8: cs_CZ.UTF-8
-cy: cy_GB.ISO8859-1
-cy_GB: cy_GB.ISO8859-1
-cy_GB.iso88591: cy_GB.ISO8859-1
-cy_GB.ISO-8859-1: cy_GB.ISO8859-1
-cy_GB.iso885914: cy_GB.ISO8859-14
-cy_GB.ISO-8859-14: cy_GB.ISO8859-14
-cy_GB.iso885915: cy_GB.ISO8859-15
-cy_GB.ISO-8859-15: cy_GB.ISO8859-15
-da: da_DK.ISO8859-1
-da.ISO8859-15: da_DK.ISO8859-15
-da_DK: da_DK.ISO8859-1
-DA_DK: da_DK.ISO8859-1
-da_DK.88591: da_DK.ISO8859-1
-da_DK.88591.en: da_DK.ISO8859-1
-da_DK.iso88591: da_DK.ISO8859-1
-da_DK.ISO-8859-1: da_DK.ISO8859-1
-da_DK.ISO_8859-1: da_DK.ISO8859-1
-da_DK.iso885915: da_DK.ISO8859-15
-da_DK.ISO-8859-15: da_DK.ISO8859-15
-da_DK.8859-15: da_DK.ISO8859-15
-da_DK.utf8: da_DK.UTF-8
-DA_DK.UTF-8: da_DK.UTF-8
-de: de_DE.ISO8859-1
-de.ISO8859-15: de_DE.ISO8859-15
-de_AT: de_AT.ISO8859-1
-de_AT@euro: de_AT.ISO8859-15
-de_AT.iso88591: de_AT.ISO8859-1
-de_AT.ISO-8859-1: de_AT.ISO8859-1
-de_AT.ISO_8859-1: de_AT.ISO8859-1
-de_AT.iso885915: de_AT.ISO8859-15
-de_AT.ISO-8859-15: de_AT.ISO8859-15
-de_AT.ISO-8859-15@euro: de_AT.ISO8859-15
-de_AT.UTF-8@euro: de_AT.UTF-8
-de_AT.utf8: de_AT.UTF-8
-de_BE: de_BE.ISO8859-1
-de_BE@euro: de_BE.ISO8859-15
-de_BE.iso88591: de_BE.ISO8859-1
-de_BE.ISO_8859-1: de_BE.ISO8859-1
-de_BE.ISO-8859-1: de_BE.ISO8859-1
-de_BE.iso885915: de_BE.ISO8859-15
-de_BE.ISO_8859-15: de_BE.ISO8859-15
-de_BE.ISO-8859-15: de_BE.ISO8859-15
-de_BE.ISO-8859-15@euro: de_BE.ISO8859-15
-de_BE.UTF-8@euro: de_BE.UTF-8
-de_CH: de_CH.ISO8859-1
-de_CH.iso88591: de_CH.ISO8859-1
-de_CH.ISO_8859-1: de_CH.ISO8859-1
-de_CH.ISO-8859-1: de_CH.ISO8859-1
-de_CH.iso885915: de_CH.ISO8859-15
-de_CH.ISO_8859-15: de_CH.ISO8859-15
-de_CH.ISO-8859-15: de_CH.ISO8859-15
-de_CH.utf8: de_CH.UTF-8
-de_DE: de_DE.ISO8859-1
-de_DE@euro: de_DE.ISO8859-15
-de_DE.88591: de_DE.ISO8859-1
-de_DE.88591.en: de_DE.ISO8859-1
-de_DE.iso88591: de_DE.ISO8859-1
-de_DE.ISO-8859-1: de_DE.ISO8859-1
-de_DE.ISO_8859-1: de_DE.ISO8859-1
-de_DE.iso885915: de_DE.ISO8859-15
-de_DE.ISO-8859-15: de_DE.ISO8859-15
-de_DE.ISO_8859-15: de_DE.ISO8859-15
-de_DE.8859-15: de_DE.ISO8859-15
-de_DE.8859-15@euro: de_DE.ISO8859-15
-de_DE.ISO-8859-15@euro: de_DE.ISO8859-15
-de_DE.UTF-8@euro: de_DE.UTF-8
-de_DE.utf8: de_DE.UTF-8
-de_LU: de_LU.ISO8859-1
-de_LU@euro: de_LU.ISO8859-15
-de_LU.iso88591: de_LU.ISO8859-1
-de_LU.ISO_8859-1: de_LU.ISO8859-1
-de_LU.ISO-8859-1: de_LU.ISO8859-1
-de_LU.iso885915: de_LU.ISO8859-15
-de_LU.ISO_8859-15: de_LU.ISO8859-15
-de_LU.ISO-8859-15: de_LU.ISO8859-15
-de_LU.ISO-8859-15@euro: de_LU.ISO8859-15
-de_LU.UTF-8@euro: de_LU.UTF-8
-de_LU.utf8: de_LU.UTF-8
-GER_DE.8859: de_DE.ISO8859-1
-GER_DE.8859.in: de_DE.ISO8859-1
-ee: ee_EE.ISO8859-4
-ee_EE: ee_EE.ISO8859-4
-ee_EE.iso88594: ee_EE.ISO8859-4
-el: el_GR.ISO8859-7
-el_GR: el_GR.ISO8859-7
-el_GR.iso88597: el_GR.ISO8859-7
-el_GR.ISO-8859-7: el_GR.ISO8859-7
-el_GR@euro: el_GR.ISO8859-15
-el_GR.utf8: el_GR.UTF-8
-en: en_US.ISO8859-1
-en.ISO-8859-1: en_US.ISO8859-1
-en_AU: en_AU.ISO8859-1
-en_AU.iso88591: en_AU.ISO8859-1
-en_AU.ISO-8859-1: en_AU.ISO8859-1
-en_AU.ISO_8859-1: en_AU.ISO8859-1
-en_AU.utf8: en_AU.UTF-8
-en_BE: en_BE.ISO8859-1
-en_BE@euro: en_BE.ISO8859-15
-en_BE.utf8: en_BE.UTF-8
-en_BW: en_BW.ISO8859-1
-en_BW.iso88591: en_BW.ISO8859-1
-en_BW.ISO-8859-1: en_BW.ISO8859-1
-en_CA: en_CA.ISO8859-1
-en_CA.iso88591: en_CA.ISO8859-1
-en_CA.ISO-8859-1: en_CA.ISO8859-1
-en_CA.ISO_8859-1: en_CA.ISO8859-1
-en_CA.utf8: en_CA.UTF-8
-en_GB: en_GB.ISO8859-1
-en_GB.88591: en_GB.ISO8859-1
-en_GB.88591.en: en_GB.ISO8859-1
-en_GB.iso88591: en_GB.ISO8859-1
-en_GB.ISO-8859-1: en_GB.ISO8859-1
-en_GB.ISO_8859-1: en_GB.ISO8859-1
-en_GB.iso885915: en_GB.ISO8859-15
-en_GB.ISO-8859-15: en_GB.ISO8859-15
-en_GB.utf8: en_GB.UTF-8
-en_UK: en_GB.ISO8859-1
-ENG_GB.8859: en_GB.ISO8859-1
-ENG_GB.8859.in: en_GB.ISO8859-1
-en_HK: en_HK.ISO8859-1
-en_HK.iso88591: en_HK.ISO8859-1
-en_HK.ISO-8859-1: en_HK.ISO8859-1
-en_IE: en_IE.ISO8859-1
-en_IE.iso88591: en_IE.ISO8859-1
-en_IE.ISO-8859-1: en_IE.ISO8859-1
-en_IE.iso885915: en_IE.ISO8859-15
-en_IE.ISO-8859-15: en_IE.ISO8859-15
-en_IE.ISO-8859-15@euro: en_IE.ISO8859-15
-en_IE@euro: en_IE.ISO8859-15
-en_IE.UTF-8@euro: en_IE.UTF-8
-en_IE.utf8: en_IE.UTF-8
-en_IN: en_IN.ISO8859-1
-en_NZ: en_NZ.ISO8859-1
-en_NZ.iso88591: en_NZ.ISO8859-1
-en_NZ.ISO-8859-1: en_NZ.ISO8859-1
-en_NZ.utf8: en_NZ.UTF-8
-en_PH: en_PH.ISO8859-1
-en_PH.iso88591: en_PH.ISO8859-1
-en_PH.ISO-8859-1: en_PH.ISO8859-1
-en_SG: en_SG.ISO8859-1
-en_SG.iso88591: en_SG.ISO8859-1
-en_SG.ISO-8859-1: en_SG.ISO8859-1
-en_US: en_US.ISO8859-1
-EN_US: en_US.ISO8859-1
-en_US.88591: en_US.ISO8859-1
-en_US.88591.en: en_US.ISO8859-1
-en_US.iso88591: en_US.ISO8859-1
-en_US.ISO-8859-1: en_US.ISO8859-1
-en_US.ISO_8859-1: en_US.ISO8859-1
-en_US.iso885915: en_US.ISO8859-15
-en_US.ISO-8859-15: en_US.ISO8859-15
-en_US.8859-15: en_US.ISO8859-15
-en_US.ISO8859-15@euro: en_US.ISO8859-15
-en_US.utf8: en_US.UTF-8
-EN_US.UTF-8: en_US.UTF-8
-en_ZA: en_ZA.ISO8859-1
-en_ZA.88591: en_ZA.ISO8859-1
-en_ZA.88591.en: en_ZA.ISO8859-1
-en_ZA.iso88591: en_ZA.ISO8859-1
-en_ZA.ISO-8859-1: en_ZA.ISO8859-1
-en_ZA.ISO_8859-1: en_ZA.ISO8859-1
-en_ZA.iso885915: en_ZA.ISO8859-15
-en_ZA.ISO-8859-15: en_ZA.ISO8859-15
-en_ZA.utf8: en_ZA.UTF-8
-en_ZW: en_ZW.ISO8859-1
-en_ZW.iso88591: en_ZW.ISO8859-1
-en_ZW.ISO-8859-1: en_ZW.ISO8859-1
-eo: eo_XX.ISO8859-3
-eo_EO: eo_EO.ISO8859-3
-eo_EO.ISO8859-3: eo_EO.ISO8859-3
-eo_XX: eo_XX.ISO8859-3
-eo_XX.ISO8859-3: eo_XX.ISO8859-3
-es: es_ES.ISO8859-1
-es.UTF-8: es_ES.UTF-8
-es_AR: es_AR.ISO8859-1
-es_AR.iso88591: es_AR.ISO8859-1
-es_AR.ISO-8859-1: es_AR.ISO8859-1
-es_AR.utf8: es_AR.UTF-8
-es_BO: es_BO.ISO8859-1
-es_BO.iso88591: es_BO.ISO8859-1
-es_BO.ISO-8859-1: es_BO.ISO8859-1
-es_BO.utf8: es_BO.UTF-8
-es_CL: es_CL.ISO8859-1
-es_CL.iso88591: es_CL.ISO8859-1
-es_CL.ISO-8859-1: es_CL.ISO8859-1
-es_CL.utf8: es_CL.UTF-8
-es_CO: es_CO.ISO8859-1
-es_CO.iso88591: es_CO.ISO8859-1
-es_CO.ISO-8859-1: es_CO.ISO8859-1
-es_CO.utf8: es_CO.UTF-8
-es_CR: es_CR.ISO8859-1
-es_CR.iso88591: es_CR.ISO8859-1
-es_CR.ISO-8859-1: es_CR.ISO8859-1
-es_CR.utf8: es_CR.UTF-8
-es_DO: es_DO.ISO8859-1
-es_DO.iso88591: es_DO.ISO8859-1
-es_DO.ISO-8859-1: es_DO.ISO8859-1
-es_DO.utf8: es_DO.UTF-8
-es_EC: es_EC.ISO8859-1
-es_EC.iso88591: es_EC.ISO8859-1
-es_EC.ISO-8859-1: es_EC.ISO8859-1
-es_EC.utf8: es_EC.UTF-8
-es_ES: es_ES.ISO8859-1
-es_ES.88591: es_ES.ISO8859-1
-es_ES.88591.en: es_ES.ISO8859-1
-es_ES.iso88591: es_ES.ISO8859-1
-es_ES.ISO-8859-1: es_ES.ISO8859-1
-es_ES.ISO_8859-1: es_ES.ISO8859-1
-es_ES.iso885915: es_ES.ISO8859-15
-es_ES.ISO-8859-15: es_ES.ISO8859-15
-es_ES.ISO-8859-15@euro: es_ES.ISO8859-15
-es_ES@euro: es_ES.ISO8859-15
-es_ES.UTF-8@euro: es_ES.UTF-8
-es_ES.utf8: es_ES.UTF-8
-es_GT: es_GT.ISO8859-1
-es_GT.iso88591: es_GT.ISO8859-1
-es_GT.ISO-8859-1: es_GT.ISO8859-1
-es_GT.utf8: es_GT.UTF-8
-es_HN: es_HN.ISO8859-1
-es_HN.iso88591: es_HN.ISO8859-1
-es_HN.ISO-8859-1: es_HN.ISO8859-1
-es_HN.utf8: es_HN.UTF-8
-es_MX: es_MX.ISO8859-1
-es_MX.iso88591: es_MX.ISO8859-1
-es_MX.ISO-8859-1: es_MX.ISO8859-1
-es_MX.utf8: es_MX.UTF-8
-es_NI: es_NI.ISO8859-1
-es_NI.iso88591: es_NI.ISO8859-1
-es_NI.ISO-8859-1: es_NI.ISO8859-1
-es_NI.utf8: es_NI.UTF-8
-es_PA: es_PA.ISO8859-1
-es_PA.iso88591: es_PA.ISO8859-1
-es_PA.ISO-8859-1: es_PA.ISO8859-1
-es_PA.iso885915: es_PA.ISO8859-15
-es_PA.utf8: es_PA.UTF-8
-es_PE: es_PE.ISO8859-1
-es_PE.iso88591: es_PE.ISO8859-1
-es_PE.ISO-8859-1: es_PE.ISO8859-1
-es_PE.iso885915: es_PE.ISO8859-15
-es_PE.utf8: es_PE.UTF-8
-es_PR: es_PR.ISO8859-1
-es_PR.iso88591: es_PR.ISO8859-1
-es_PR.ISO-8859-1: es_PR.ISO8859-1
-es_PR.utf8: es_PR.UTF-8
-es_PY: es_PY.ISO8859-1
-es_PY.iso88591: es_PY.ISO8859-1
-es_PY.ISO-8859-1: es_PY.ISO8859-1
-es_PY.iso885915: es_PY.ISO8859-15
-es_PY.utf8: es_PY.UTF-8
-es_SV: es_SV.ISO8859-1
-es_SV.iso88591: es_SV.ISO8859-1
-es_SV.ISO-8859-1: es_SV.ISO8859-1
-es_SV.iso885915: es_SV.ISO8859-15
-es_SV.utf8: es_SV.UTF-8
-es_US: es_US.ISO8859-1
-es_US.iso88591: es_US.ISO8859-1
-es_US.ISO-8859-1: es_US.ISO8859-1
-es_UY: es_UY.ISO8859-1
-es_UY.iso88591: es_UY.ISO8859-1
-es_UY.ISO-8859-1: es_UY.ISO8859-1
-es_UY.iso885915: es_UY.ISO8859-15
-es_UY.utf8: es_UY.UTF-8
-es_VE: es_VE.ISO8859-1
-es_VE.iso88591: es_VE.ISO8859-1
-es_VE.ISO-8859-1: es_VE.ISO8859-1
-es_VE.iso885915: es_VE.ISO8859-15
-es_VE.utf8: es_VE.UTF-8
-#if defined(SVR4) && defined(sun)
-XCOMM Sun Solaris 2.6 has erroneously specified Estonian as a Latin-1
-XCOMM language; however this is clearly incorrect according to ISO8859.
-#endif
-XCOMM According to Estonian local standards, ISO8859-4 is not a recommended
-XCOMM charset. EVS8:2000 specifies ISO8859-15 as the base charset.
-et: et_EE.ISO8859-15
-et_EE: et_EE.ISO8859-15
-et_EE.iso88591: et_EE.ISO8859-1
-et_EE.ISO-8859-1: et_EE.ISO8859-1
-et_EE.iso88594: et_EE.ISO8859-4
-et_EE.ISO-8859-4: et_EE.ISO8859-4
-et_EE.iso885913: et_EE.ISO8859-13
-et_EE.ISO-8859-13: et_EE.ISO8859-13
-et_EE.iso885915: et_EE.ISO8859-15
-et_EE.ISO-8859-15: et_EE.ISO8859-15
-et_EE.utf8: et_EE.UTF-8
-eu: eu_ES.ISO8859-1
-eu_ES: eu_ES.ISO8859-1
-eu_ES.iso88591: eu_ES.ISO8859-1
-eu_ES.ISO-8859-1: eu_ES.ISO8859-1
-eu_ES.iso885915: eu_ES.ISO8859-15
-eu_ES.ISO-8859-15: eu_ES.ISO8859-15
-eu_ES.ISO-8859-15@euro: eu_ES.ISO8859-15
-eu_ES@euro: eu_ES.ISO8859-15
-eu_ES.UTF-8@euro: eu_ES.UTF-8
-fa: fa_IR.UTF-8
-fa_IR: fa_IR.UTF-8
-fa_IR.isiri3342: fa_IR.ISIRI-3342
-fa_IR.utf8: fa_IR.UTF-8
-fi: fi_FI.ISO8859-15
-fi.ISO8859-15: fi_FI.ISO8859-15
-fi_FI: fi_FI.ISO8859-15
-fi_FI.88591: fi_FI.ISO8859-1
-fi_FI.88591.en: fi_FI.ISO8859-1
-fi_FI.iso88591: fi_FI.ISO8859-1
-fi_FI.ISO-8859-1: fi_FI.ISO8859-1
-fi_FI.ISO_8859-1: fi_FI.ISO8859-1
-fi_FI.iso885915: fi_FI.ISO8859-15
-fi_FI.ISO-8859-15: fi_FI.ISO8859-15
-fi_FI.ISO-8859-15@euro: fi_FI.ISO8859-15
-fi_FI@euro: fi_FI.ISO8859-15
-fi_FI.utf8: fi_FI.UTF-8
-fi_FI.UTF-8@euro: fi_FI.UTF-8
-fo: fo_FO.ISO8859-1
-fo_FO: fo_FO.ISO8859-1
-fo_FO.iso88591: fo_FO.ISO8859-1
-fo_FO.ISO-8859-1: fo_FO.ISO8859-1
-fo_FO.iso885915: fo_FO.ISO8859-15
-fo_FO.ISO-8859-15: fo_FO.ISO8859-15
-fo_FO.utf8: fo_FO.UTF-8
-fr: fr_FR.ISO8859-1
-fr.ISO8859-15: fr_FR.ISO8859-15
-fr.UTF-8: fr_FR.UTF-8
-fr_BE: fr_BE.ISO8859-1
-fr_BE.88591: fr_BE.ISO8859-1
-fr_BE.88591.en: fr_BE.ISO8859-1
-fr_BE.ISO-8859-1: fr_BE.ISO8859-1
-fr_BE.ISO_8859-1: fr_BE.ISO8859-1
-fr_BE.iso885915: fr_BE.ISO8859-15
-fr_BE.ISO-8859-15: fr_BE.ISO8859-15
-fr_BE.ISO-8859-15@euro: fr_BE.ISO8859-15
-fr_BE@euro: fr_BE.ISO8859-15
-fr_BE.utf8: fr_BE.UTF-8
-fr_BE.UTF-8@euro: fr_BE.UTF-8
-fr_CA: fr_CA.ISO8859-1
-fr_CA.88591: fr_CA.ISO8859-1
-fr_CA.88591.en: fr_CA.ISO8859-1
-fr_CA.iso88591: fr_CA.ISO8859-1
-fr_CA.ISO-8859-1: fr_CA.ISO8859-1
-fr_CA.ISO_8859-1: fr_CA.ISO8859-1
-fr_CA.iso885915: fr_CA.ISO8859-15
-fr_CA.ISO-8859-15: fr_CA.ISO8859-15
-fr_CA.utf8: fr_CA.UTF-8
-fr_CH: fr_CH.ISO8859-1
-fr_CH.88591: fr_CH.ISO8859-1
-fr_CH.88591.en: fr_CH.ISO8859-1
-fr_CH.ISO-8859-1: fr_CH.ISO8859-1
-fr_CH.ISO_8859-1: fr_CH.ISO8859-1
-fr_CH.iso885915: fr_CH.ISO8859-15
-fr_CH.ISO-8859-15: fr_CH.ISO8859-15
-fr_CH.utf8: fr_CH.UTF-8
-fr_FR: fr_FR.ISO8859-1
-fr_FR.88591: fr_FR.ISO8859-1
-fr_FR.88591.en: fr_FR.ISO8859-1
-fr_FR.iso88591: fr_FR.ISO8859-1
-fr_FR.ISO-8859-1: fr_FR.ISO8859-1
-fr_FR.ISO_8859-1: fr_FR.ISO8859-1
-fr_FR.iso885915: fr_FR.ISO8859-15
-fr_FR.ISO-8859-15: fr_FR.ISO8859-15
-fr_FR.ISO-8859-15@euro: fr_FR.ISO8859-15
-fr_FR@euro: fr_FR.ISO8859-15
-fr_FR.UTF-8@euro: fr_FR.UTF-8
-fr_FR.utf8: fr_FR.UTF-8
-fr_LU: fr_LU.ISO8859-1
-fr_LU.88591: fr_LU.ISO8859-1
-fr_LU.88591.en: fr_LU.ISO8859-1
-fr_LU.iso88591: fr_LU.ISO8859-1
-fr_LU.ISO-8859-1: fr_LU.ISO8859-1
-fr_LU.ISO_8859-1: fr_LU.ISO8859-1
-fr_LU.iso885915: fr_LU.ISO8859-15
-fr_LU.ISO-8859-15: fr_LU.ISO8859-15
-fr_LU.ISO-8859-15@euro: fr_LU.ISO8859-15
-fr_LU@euro: fr_LU.ISO8859-15
-fr_LU.UTF-8@euro: fr_LU.UTF-8
-fr_LU.utf8: fr_LU.UTF-8
-FRE_FR.8859: fr_FR.ISO8859-1
-FRE_FR.8859.in: fr_FR.ISO8859-1
-ga: ga_IE.ISO8859-1
-ga_IE: ga_IE.ISO8859-1
-ga_IE.iso88591: ga_IE.ISO8859-1
-ga_IE.ISO-8859-1: ga_IE.ISO8859-1
-ga_IE.iso885914: ga_IE.ISO8859-14
-ga_IE.ISO-8859-14: ga_IE.ISO8859-14
-ga_IE.iso885915: ga_IE.ISO8859-15
-ga_IE.ISO-8859-15: ga_IE.ISO8859-15
-ga_IE.ISO-8859-15@euro: ga_IE.ISO8859-15
-ga_IE@euro: ga_IE.ISO8859-15
-ga_IE.UTF-8@euro: ga_IE.UTF-8
-ga_IE.utf8: ga_IE.UTF-8
-gd: gd_GB.ISO8859-1
-gd_GB: gd_GB.ISO8859-1
-gd_GB.iso88591: gd_GB.ISO8859-1
-gd_GB.ISO-8859-1: gd_GB.ISO8859-1
-gd_GB.iso885914: gd_GB.ISO8859-14
-gd_GB.ISO-8859-14: gd_GB.ISO8859-14
-gd_GB.iso885915: gd_GB.ISO8859-15
-gd_GB.ISO-8859-15: gd_GB.ISO8859-15
-gl: gl_ES.ISO8859-1
-gl_ES: gl_ES.ISO8859-1
-gl_ES.iso88591: gl_ES.ISO8859-1
-gl_ES.ISO-8859-1: gl_ES.ISO8859-1
-gl_ES.iso885915: gl_ES.ISO8859-15
-gl_ES.ISO-8859-15: gl_ES.ISO8859-15
-gl_ES.ISO-8859-15@euro: gl_ES.ISO8859-15
-gl_ES@euro: gl_ES.ISO8859-15
-gl_ES.UTF-8@euro: gl_ES.UTF-8
-gl_ES.utf8: gl_ES.UTF-8
-gu_IN.utf8: gu_IN.UTF-8
-gu_IN.UTF-8: gu_IN.UTF-8
-gv: gv_GB.ISO8859-1
-gv_GB: gv_GB.ISO8859-1
-gv_GB.iso88591: gv_GB.ISO8859-1
-gv_GB.ISO-8859-1: gv_GB.ISO8859-1
-gv_GB.iso885914: gv_GB.ISO8859-14
-gv_GB.ISO-8859-14: gv_GB.ISO8859-14
-gv_GB.iso885915: gv_GB.ISO8859-15
-gv_GB.ISO-8859-15: gv_GB.ISO8859-15
-he: he_IL.ISO8859-8
-he_IL: he_IL.ISO8859-8
-HE_IL: he_IL.ISO8859-8
-he_IL.iso88598: he_IL.ISO8859-8
-he_IL.ISO-8859-8: he_IL.ISO8859-8
-he_IL.cp1255: he_IL.CP1255
-he_IL.microsoftcp1255: he_IL.CP1255
-he_IL.microsoft-cp1255: he_IL.CP1255
-he_IL.MICROSOFT-CP1255: he_IL.CP1255
-he_IL.utf8: he_IL.UTF-8
-HE_IL.UTF-8: he_IL.UTF-8
-hi: hi_IN.ISCII-DEV
-hi_IN: hi_IN.ISCII-DEV
-HI_IN: hi_IN.ISCII-DEV
-hi_IN.isciidev: hi_IN.ISCII-DEV
-hi_IN.utf8: hi_IN.UTF-8
-HI_IN.UTF-8: hi_IN.UTF-8
-hne: hne_IN.UTF-8
-hne_IN.utf8: hne_IN.UTF-8
-hne_IN.UTF-8: hne_IN.UTF-8
-hr: hr_HR.ISO8859-2
-hr_HR: hr_HR.ISO8859-2
-hr_HR.iso88592: hr_HR.ISO8859-2
-hr_HR.ISO-8859-2: hr_HR.ISO8859-2
-hr_HR.ISO_8859-2: hr_HR.ISO8859-2
-hr_HR.utf8: hr_HR.UTF-8
-hu: hu_HU.ISO8859-2
-hu_HU: hu_HU.ISO8859-2
-hu_HU.iso88592: hu_HU.ISO8859-2
-hu_HU.ISO-8859-2: hu_HU.ISO8859-2
-hu_HU.utf8: hu_HU.UTF-8
-XCOMM in was the old ISO code for Indonesian (now id). These lines should be
-XCOMM deleted in the future.
-in: id_ID.ISO8859-1
-in_ID: id_ID.ISO8859-1
-is: is_IS.ISO8859-1
-is_IS: is_IS.ISO8859-1
-is_IS.iso88591: is_IS.ISO8859-1
-is_IS.ISO-8859-1: is_IS.ISO8859-1
-is_IS.ISO_8859-1: is_IS.ISO8859-1
-is_IS.iso885915: is_IS.ISO8859-15
-is_IS.ISO-8859-15: is_IS.ISO8859-15
-is_IS.utf8: is_IS.UTF-8
-it: it_IT.ISO8859-1
-it.ISO8859-15: it_IT.ISO8859-15
-it.UTF-8: it_IT.UTF-8
-it_CH: it_CH.ISO8859-1
-it_CH.iso88591: it_CH.ISO8859-1
-it_CH.ISO_8859-1: it_CH.ISO8859-1
-it_CH.ISO-8859-1: it_CH.ISO8859-1
-it_CH.iso885915: it_CH.ISO8859-15
-it_CH.utf8: it_CH.UTF-8
-it_IT: it_IT.ISO8859-1
-it_IT.88591: it_IT.ISO8859-1
-it_IT.88591.en: it_IT.ISO8859-1
-it_IT.iso88591: it_IT.ISO8859-1
-it_IT.ISO-8859-1: it_IT.ISO8859-1
-it_IT.ISO_8859-1: it_IT.ISO8859-1
-it_IT.iso885915: it_IT.ISO8859-15
-it_IT.ISO-8859-15: it_IT.ISO8859-15
-it_IT.ISO-8859-15@euro: it_IT.ISO8859-15
-it_IT@euro: it_IT.ISO8859-15
-it_IT.utf8: it_IT.UTF-8
-it_IT.UTF-8@euro: it_IT.UTF-8
-iu: iu_CA.NUNACOM-8
-iu_CA: iu_CA.NUNACOM-8
-iu_CA.nunacom8: iu_CA.NUNACOM-8
-XCOMM iw was the old ISO code for Hebrew (now he). These lines should be
-XCOMM deleted in the future.
-iw: he_IL.ISO8859-8
-iw_IL: he_IL.ISO8859-8
-Iw_IL: he_IL.ISO8859-8
-iw_IL.iso88598: he_IL.ISO8859-8
-iw_IL.ISO-8859-8: he_IL.ISO8859-8
-#ifndef __uxp__
-ja_JP: ja_JP.eucJP
-#else /* __uxp__ */
-ja_JP: ja_JP.U90
-ja_JP.U90: ja_JP.U90
-ja_JP.S90: ja_JP.S90
-#endif /* __uxp__ */
-ja: ja_JP.eucJP
-ja.JIS: ja_JP.JIS7
-ja.SJIS: ja_JP.SJIS
-ja_JP.ujis: ja_JP.eucJP
-Jp_JP: ja_JP.eucJP
-ja_JP.AJEC: ja_JP.eucJP
-ja_JP.EUC: ja_JP.eucJP
-ja_JP.EUC-JP: ja_JP.eucJP
-ja_JP.EUC_JP: ja_JP.eucJP
-ja_JP.eucjp: ja_JP.eucJP
-ja_JP.ISO-2022-JP: ja_JP.JIS7
-ja_JP.JIS: ja_JP.JIS7
-ja_JP.jis7: ja_JP.JIS7
-ja_JP.mscode: ja_JP.SJIS
-ja_JP.PCK: ja_JP.SJIS
-ja_JP.SJIS: ja_JP.SJIS
-ja_JP.sjis: ja_JP.SJIS
-ja_JP.utf8: ja_JP.UTF-8
-JA_JP.utf8: ja_JP.UTF-8
-ka: ka_GE.GEORGIAN-ACADEMY
-ka_GE: ka_GE.GEORGIAN-ACADEMY
-ka_GE.georgianacademy: ka_GE.GEORGIAN-ACADEMY
-ka_GE.georgianrs: ka_GE.GEORGIAN-ACADEMY
-ka_GE.georgianps: ka_GE.GEORGIAN-PS
-kl: kl_GL.ISO8859-1
-kl_GL: kl_GL.ISO8859-1
-kl_GL.iso88591: kl_GL.ISO8859-1
-kl_GL.ISO-8859-1: kl_GL.ISO8859-1
-kl_GL.iso885915: kl_GL.ISO8859-15
-kl_GL.utf8: kl_GL.UTF-8
-kn: kn_IN.UTF-8
-kn_IN.utf8: kn_IN.UTF-8
-kn_IN.UTF-8: kn_IN.UTF-8
-ko: ko_KR.eucKR
-ko.UTF-8: ko_KR.UTF-8
-ko_KR: ko_KR.eucKR
-KO_KR: ko_KR.eucKR
-ko_KR.EUC: ko_KR.eucKR
-ko_KR.EUC-KR: ko_KR.eucKR
-ko_KR.euc: ko_KR.eucKR
-ko_KR.euckr: ko_KR.eucKR
-ko_KR.utf8: ko_KR.UTF-8
-KO_KR.UTF-8: ko_KR.UTF-8
-ks: ks_IN.UTF-8
-ks_IN.utf8: ks_IN.UTF-8
-ks_IN.UTF-8: ks_IN.UTF-8
-ks_IN@devanagari: ks_IN@devanagari.UTF-8
-ks_IN@devanagari.utf8: ks_IN@devanagari.UTF-8
-ks_IN@devanagari.UTF-8: ks_IN@devanagari.UTF-8
-kw: kw_GB.ISO8859-1
-kw_GB: kw_GB.ISO8859-1
-kw_GB.iso88591: kw_GB.ISO8859-1
-kw_GB.ISO-8859-1: kw_GB.ISO8859-1
-kw_GB.iso885914: kw_GB.ISO8859-14
-kw_GB.ISO-8859-14: kw_GB.ISO8859-14
-kw_GB.iso885915: kw_GB.ISO8859-15
-kw_GB.ISO-8859-15: kw_GB.ISO8859-15
-ky: ky_KG.UTF-8
-ky_KG: ky_KG.UTF-8
-ky_KG.utf8: ky_KG.UTF-8
-ky_KG.UTF-8: ky_KG.UTF-8
-lo: lo_LA.MULELAO-1
-lo_LA: lo_LA.MULELAO-1
-lo_LA.cp1133: lo_LA.IBM-CP1133
-lo_LA.ibmcp1133: lo_LA.IBM-CP1133
-lo_LA.mulelao1: lo_LA.MULELAO-1
-#if defined(VeryOldFreeBSD)
-XCOMM most locales in FreeBSD 2.1.[56] do not work, allow use of FreeBSD's
-XCOMM generic Latin-1 locale name. N.B. "lt" is a bad code to use for a
-XCOMM generic Latin-1 locale anyway because it is the country code for
-XCOMM Lithuania, which by default uses Latin-7 (ISO-8859-13).
-lt_LN.ISO_8859-1: lt_LN.ISO8859-1
-#endif
-lt: lt_LT.ISO8859-13
-lt_LT: lt_LT.ISO8859-13
-lt_LT.iso88594: lt_LT.ISO8859-4
-lt_LT.ISO-8859-4: lt_LT.ISO8859-4
-lt_LT.ISO_8859-4: lt_LT.ISO8859-4
-lt_LT.iso885913: lt_LT.ISO8859-13
-lt_LT.ISO-8859-13: lt_LT.ISO8859-13
-lt_LT.ISO_8859-13: lt_LT.ISO8859-13
-lt_LT.utf8: lt_LT.UTF-8
-lv: lv_LV.ISO8859-13
-lv_LV: lv_LV.ISO8859-13
-lv_LV.iso88594: lv_LV.ISO8859-4
-lv_LV.ISO-8859-4: lv_LV.ISO8859-4
-lv_LV.iso885913: lv_LV.ISO8859-13
-lv_LV.ISO-8859-13: lv_LV.ISO8859-13
-lv_LV.ISO_8859-13: lv_LV.ISO8859-13
-lv_LV.utf8: lv_LV.UTF-8
-mai: mai_IN.UTF-8
-mai_IN.utf8: mai_IN.UTF-8
-mai_IN.UTF-8: mai_IN.UTF-8
-mi: mi_NZ.ISO8859-1
-mi_NZ: mi_NZ.ISO8859-1
-mi_NZ.iso88591: mi_NZ.ISO8859-1
-mk: mk_MK.ISO8859-5
-mk_MK: mk_MK.ISO8859-5
-mk_MK.iso88595: mk_MK.ISO8859-5
-mk_MK.ISO-8859-5: mk_MK.ISO8859-5
-mk_MK.cp1251: mk_MK.CP1251
-mk_MK.microsoftcp1251: mk_MK.CP1251
-mk_MK.microsoft-cp1251: mk_MK.CP1251
-mk_MK.MICROSOFT-CP1251: mk_MK.CP1251
-mk_MK.utf8: mk_MK.UTF-8
-ml: ml_IN.UTF-8
-ml_IN.utf8: ml_IN.UTF-8
-ml_IN.UTF-8: ml_IN.UTF-8
-mr: mr_IN.UTF-8
-mr_IN: mr_IN.UTF-8
-mr_IN.utf8: mr_IN.UTF-8
-mr_IN.UTF-8: mr_IN.UTF-8
-ms: ms_MY.ISO8859-1
-ms_MY: ms_MY.ISO8859-1
-ms_MY.iso88591: ms_MY.ISO8859-1
-ms_MY.ISO-8859-1: ms_MY.ISO8859-1
-mt: mt_MT.ISO8859-3
-mt_MT: mt_MT.ISO8859-3
-mt_MT.ISO-8859-3: mt_MT.ISO8859-3
-nb: nb_NO.ISO8859-1
-nb_NO: nb_NO.ISO8859-1
-nb_NO.88591: nb_NO.ISO8859-1
-nb_NO.iso88591: nb_NO.ISO8859-1
-nb_NO.ISO-8859-1: nb_NO.ISO8859-1
-nb_NO.iso885915: nb_NO.ISO8859-15
-nb_NO.ISO-8859-15: nb_NO.ISO8859-15
-nb_NO.utf8: nb_NO.UTF-8
-ne_NP.utf8: ne_NP.UTF-8
-ne_NP.UTF-8: ne_NP.UTF-8
-nl: nl_NL.ISO8859-1
-nl.ISO8859-15: nl_NL.ISO8859-15
-nl_BE: nl_BE.ISO8859-1
-nl_BE.88591: nl_BE.ISO8859-1
-nl_BE.88591.en: nl_BE.ISO8859-1
-nl_BE.iso88591: nl_BE.ISO8859-1
-nl_BE.ISO-8859-1: nl_BE.ISO8859-1
-nl_BE.ISO_8859-1: nl_BE.ISO8859-1
-nl_BE.iso885915: nl_BE.ISO8859-15
-nl_BE.ISO-8859-15: nl_BE.ISO8859-15
-nl_BE.ISO-8859-15@euro: nl_BE.ISO8859-15
-nl_BE@euro: nl_BE.ISO8859-15
-nl_BE.utf8: nl_BE.UTF-8
-nl_BE.UTF-8@euro: nl_BE.UTF-8
-nl_NL: nl_NL.ISO8859-1
-nl_NL.88591: nl_NL.ISO8859-1
-nl_NL.88591.en: nl_NL.ISO8859-1
-nl_NL.iso88591: nl_NL.ISO8859-1
-nl_NL.ISO-8859-1: nl_NL.ISO8859-1
-nl_NL.ISO_8859-1: nl_NL.ISO8859-1
-nl_NL.iso885915: nl_NL.ISO8859-15
-nl_NL.ISO-8859-15: nl_NL.ISO8859-15
-nl_NL.ISO-8859-15@euro: nl_NL.ISO8859-15
-nl_NL@euro: nl_NL.ISO8859-15
-nl_NL.utf8: nl_NL.UTF-8
-nl_NL.UTF-8@euro: nl_NL.UTF-8
-nn: nn_NO.ISO8859-1
-nn_NO: nn_NO.ISO8859-1
-nn_NO.88591: nn_NO.ISO8859-1
-nn_NO.ISO-8859-1: nn_NO.ISO8859-1
-nn_NO.ISO_8859-1: nn_NO.ISO8859-1
-nn_NO.iso885915: nn_NO.ISO8859-15
-nn_NO.ISO-8859-15: nn_NO.ISO8859-15
-nn_NO.utf8: nn_NO.UTF-8
-no: no_NO.ISO8859-1
-no_NO: no_NO.ISO8859-1
-no_NO.88591: no_NO.ISO8859-1
-no_NO.88591.en: no_NO.ISO8859-1
-no_NO.iso88591: no_NO.ISO8859-1
-no_NO.ISO-8859-1: no_NO.ISO8859-1
-no_NO.ISO8859-1@bokmal: no_NO.ISO8859-1
-no_NO.ISO8859-1@nynorsk: no_NO.ISO8859-1
-no_NO.iso885915: no_NO.ISO8859-15
-no_NO.ISO-8859-15: no_NO.ISO8859-15
-no_NO.utf8: no_NO.UTF-8
-nr: nr_ZA.ISO8859-1
-nr_ZA: nr_ZA.ISO8859-1
-nr_ZA.iso88591: nr_ZA.ISO8859-1
-nr_ZA.utf8: nr_ZA.UTF-8
-nso: nso_ZA.ISO8859-15
-nso_ZA: nso_ZA.ISO8859-15
-nso_ZA.iso885915: nso_ZA.ISO8859-15
-nso_ZA.utf8: nso_ZA.UTF-8
-ny: ny_NO.ISO8859-1
-ny_NO: ny_NO.ISO8859-1
-ny_NO.88591: ny_NO.ISO8859-1
-ny_NO.ISO_8859-1: ny_NO.ISO8859-1
-ny_NO.iso885915: ny_NO.ISO8859-15
-no@nynorsk: ny_NO.ISO8859-1
-nynorsk: nn_NO.ISO8859-1
-oc: oc_FR.ISO8859-1
-oc_FR: oc_FR.ISO8859-1
-oc_FR.iso88591: oc_FR.ISO8859-1
-oc_FR.ISO-8859-1: oc_FR.ISO8859-1
-oc_FR.iso885915: oc_FR.ISO8859-15
-oc_FR.ISO-8859-15: oc_FR.ISO8859-15
-oc_FR@euro: oc_FR.ISO8859-15
-or: or_IN.UTF-8
-or_IN.utf8: or_IN.UTF-8
-or_IN.UTF-8: or_IN.UTF-8
-pa: pa_IN.UTF-8
-pa_IN.utf8: pa_IN.UTF-8
-pa_IN.UTF-8: pa_IN.UTF-8
-pa_PK.utf8: pa_PK.UTF-8
-pd: pd_US.ISO8859-1
-pd_DE: pd_DE.ISO8859-1
-pd_US: pd_US.ISO8859-1
-pd_DE.iso88591: pd_DE.ISO8859-1
-pd_US.iso88591: pd_US.ISO8859-1
-pd_DE.iso885915: pd_DE.ISO8859-15
-pd_US.iso885915: pd_US.ISO8859-15
-ph: ph_PH.ISO8859-1
-ph_PH: ph_PH.ISO8859-1
-ph_PH.iso88591: ph_PH.ISO8859-1
-pl: pl_PL.ISO8859-2
-pl.UTF-8: pl_PL.UTF-8
-pl_PL: pl_PL.ISO8859-2
-pl_PL.iso88592: pl_PL.ISO8859-2
-pl_PL.ISO-8859-2: pl_PL.ISO8859-2
-pl_PL.utf8: pl_PL.UTF-8
-pp: pp_AN.ISO8859-1
-pp_AN: pp_AN.ISO8859-1
-pp_AN.iso88591: pp_AN.ISO8859-1
-pt: pt_PT.ISO8859-1
-pt.ISO8859-15: pt_PT.ISO8859-15
-pt_BR: pt_BR.ISO8859-1
-pt_BR.88591: pt_BR.ISO8859-1
-pt_BR.88591.en: pt_BR.ISO8859-1
-pt_BR.iso88591: pt_BR.ISO8859-1
-pt_BR.ISO-8859-1: pt_BR.ISO8859-1
-pt_BR.ISO_8859-1: pt_BR.ISO8859-1
-pt_BR.iso885915: pt_BR.ISO8859-15
-pt_BR.utf8: pt_BR.UTF-8
-pt_PT: pt_PT.ISO8859-1
-pt_PT.88591: pt_PT.ISO8859-1
-pt_PT.88591.en: pt_PT.ISO8859-1
-pt_PT.iso88591: pt_PT.ISO8859-1
-pt_PT.ISO-8859-1: pt_PT.ISO8859-1
-pt_PT.ISO_8859-1: pt_PT.ISO8859-1
-pt_PT.iso885915: pt_PT.ISO8859-15
-pt_PT.ISO-8859-15: pt_PT.ISO8859-15
-pt_PT.ISO-8859-15@euro: pt_PT.ISO8859-15
-pt_PT@euro: pt_PT.ISO8859-15
-pt_PT.utf8: pt_PT.UTF-8
-pt_PT.UTF-8@euro: pt_PT.UTF-8
-ro: ro_RO.ISO8859-2
-ro_RO: ro_RO.ISO8859-2
-ro_RO.iso88592: ro_RO.ISO8859-2
-ro_RO.ISO-8859-2: ro_RO.ISO8859-2
-ro_RO.utf8: ro_RO.UTF-8
-ru: ru_RU.UTF-8
-ru.koi8-r: ru_RU.KOI8-R
-ru.UTF-8: ru_RU.UTF-8
-ru_RU: ru_RU.UTF-8
-ru_RU.utf8: ru_RU.UTF-8
-ru_RU.iso88595: ru_RU.ISO8859-5
-ru_RU.ISO-8859-5: ru_RU.ISO8859-5
-ru_RU.koi8r: ru_RU.KOI8-R
-ru_RU.cp1251: ru_RU.CP1251
-ru_RU.microsoftcp1251: ru_RU.CP1251
-ru_RU.microsoft-cp1251: ru_RU.CP1251
-ru_RU.MICROSOFT-CP1251: ru_RU.CP1251
-#if defined(INCLUDE_ru_SU)
-XCOMM ru_SU is redundant now
-ru_SU: ru_RU.KOI8-R
-ru_SU.ISO8859-5: ru_RU.ISO8859-5
-ru_SU.KOI8-R: ru_RU.KOI8-R
-#endif
-ru_UA: ru_UA.KOI8-U
-ru_UA.koi8u: ru_UA.KOI8-U
-ru_UA.cp1251: ru_UA.CP1251
-ru_UA.microsoftcp1251: ru_UA.CP1251
-ru_UA.microsoft-cp1251: ru_UA.CP1251
-ru_UA.MICROSOFT-CP1251: ru_UA.CP1251
-rw: rw_RW.ISO8859-1
-rw_RW: rw_RW.ISO8859-1
-rw_RW.iso8859-1: rw_RW.ISO8859-1
-rw_RW.ISO-8859-1: rw_RW.ISO8859-1
-rw_RW.utf8: rw_RW.UTF-8
-sd: sd_IN.UTF-8
-sd_IN.utf8: sd_IN.UTF-8
-sd: sd_IN@devanagari.UTF-8
-sd_IN@devanagari.utf8: sd_IN@devanagari.UTF-8
-sd_IN@devanagari.UTF-8: sd_IN@devanagari.UTF-8
-se_NO: se_NO.UTF-8
-se_NO.utf8: se_NO.UTF-8
-XCOMM sh was the old ISO code for Serbo-Croatian (now individual sr and hr).
-XCOMM YU was the old ISO code for Yugoslavia (later CS for Serbia&Montenegro).
-XCOMM CS was the old ISO code for Serbia&Montenegro (now separate RS and ME).
-XCOMM These lines should be deleted in the future.
-sh: sr_RS.UTF-8@latin
-sh_BA.ISO8859-2@bosnia: sr_CS.ISO8859-2
-sh_HR.iso88592: hr_HR.ISO8859-2
-sh_YU: sr_RS.UTF-8@latin
-sh_YU.utf8: sr_RS.UTF-8@latin
-si: si_LK.UTF-8
-si_LK: si_LK.UTF-8
-sk: sk_SK.ISO8859-2
-sk_SK: sk_SK.ISO8859-2
-sk_SK.iso88592: sk_SK.ISO8859-2
-sk_SK.ISO-8859-2: sk_SK.ISO8859-2
-sk_SK.utf8: sk_SK.UTF-8
-sl: sl_SI.ISO8859-2
-sl_SI: sl_SI.ISO8859-2
-sl_SI.iso88592: sl_SI.ISO8859-2
-sl_SI.ISO-8859-2: sl_SI.ISO8859-2
-sl_SI.utf8: sl_SI.UTF-8
-sq: sq_AL.ISO8859-2
-sq_AL: sq_AL.ISO8859-2
-sq_AL.iso88592: sq_AL.ISO8859-2
-sq_AL.ISO-8859-2: sq_AL.ISO8859-2
-sq_AL.utf8: sq_AL.UTF-8
-XCOMM YU was the old ISO code for Yugoslavia (later CS for Serbia&Montenegro).
-XCOMM CS was the old ISO code for Serbia&Montenegro (now separate RS and ME).
-XCOMM Some of these lines should be deleted in the future.
-sr: sr_RS.UTF-8
-sr_YU: sr_RS.UTF-8@latin
-sr@cyrillic: sr_RS.UTF-8
-sr_YU@cyrillic: sr_RS.UTF-8
-sr_YU.utf8: sr_RS.UTF-8
-sr_YU.UTF-8@cyrillic: sr_RS.UTF-8
-sr_CS: sr_RS.UTF-8
-sr@Latn: sr_RS.UTF-8@latin
-sr_CS@Latn: sr_RS.UTF-8@latin
-sr_CS.utf8: sr_RS.UTF-8
-sr_CS.UTF-8@Latn: sr_RS.UTF-8@latin
-sr_RS: sr_RS.UTF-8
-sr@latin: sr_RS.UTF-8@latin
-sr_RS@latin: sr_RS.UTF-8@latin
-sr_RS@Latn: sr_RS.UTF-8@latin
-sr_RS.UTF-8@Latn: sr_RS.UTF-8@latin
-sr_RS.utf8: sr_RS.UTF-8
-sr_ME: sr_ME.UTF-8
-sr_ME.utf8: sr_ME.UTF-8
-ss: ss_ZA.ISO8859-1
-ss_ZA: ss_ZA.ISO8859-1
-ss_ZA.iso88591: ss_ZA.ISO8859-1
-ss_ZA.utf8: ss_ZA.UTF-8
-st: st_ZA.ISO8859-1
-st_ZA: st_ZA.ISO8859-1
-st_ZA.iso88591: st_ZA.ISO8859-1
-st_ZA.utf8: st_ZA.UTF-8
-sv: sv_SE.ISO8859-1
-sv.ISO8859-15: sv_SE.ISO8859-15
-sv.UTF-8: sv_SE.UTF-8
-sv_FI: sv_FI.ISO8859-1
-sv_FI.iso88591: sv_FI.ISO8859-1
-sv_FI.ISO-8859-1: sv_FI.ISO8859-1
-sv_FI.iso885915: sv_FI.ISO8859-15
-sv_FI.ISO-8859-15: sv_FI.ISO8859-15
-sv_FI.ISO-8859-15@euro: sv_FI.ISO8859-15
-sv_FI@euro: sv_FI.ISO8859-15
-sv_FI.UTF-8@euro: sv_FI.UTF-8
-sv_FI.utf8: sv_FI.UTF-8
-sv_SE: sv_SE.ISO8859-1
-sv_SE.88591: sv_SE.ISO8859-1
-sv_SE.88591.en: sv_SE.ISO8859-1
-sv_SE.iso88591: sv_SE.ISO8859-1
-sv_SE.ISO-8859-1: sv_SE.ISO8859-1
-sv_SE.ISO_8859-1: sv_SE.ISO8859-1
-sv_SE.iso885915: sv_SE.ISO8859-15
-sv_SE.ISO-8859-15: sv_SE.ISO8859-15
-sv_SE@euro: sv_SE.ISO8859-15
-sv_SE.utf8: sv_SE.UTF-8
-ta: ta_IN.TSCII-0
-ta_IN: ta_IN.TSCII-0
-ta_IN.tscii: ta_IN.TSCII-0
-ta_IN.tscii0: ta_IN.TSCII-0
-te: te_IN.UTF-8
-te_IN.utf8: te_IN.UTF-8
-te_IN.UTF-8: te_IN.UTF-8
-tg: tg_TJ.KOI8-C
-tg_TJ: tg_TJ.KOI8-C
-tg_TJ.koi8c: tg_TJ.KOI8-C
-th: th_TH.ISO8859-11
-th_TH: th_TH.ISO8859-11
-th_TH.ISO-8859-11: th_TH.ISO8859-11
-th_TH.tis620: th_TH.TIS620
-th_TH.TIS-620: th_TH.TIS620
-th_TH.TACTIS: th_TH.TIS620
-th_TH.utf8: th_TH.UTF-8
-tl: tl_PH.ISO8859-1
-tl_PH: tl_PH.ISO8859-1
-tl_PH.iso88591: tl_PH.ISO8859-1
-tl_PH.ISO-8859-1: tl_PH.ISO8859-1
-tn: tn_ZA.ISO8859-15
-tn_ZA: tn_ZA.ISO8859-15
-tn_ZA.iso8859-15: tn_ZA.ISO8859-15
-tn_ZA.utf8: tn_ZA.UTF-8
-tr: tr_TR.ISO8859-9
-tr_TR: tr_TR.ISO8859-9
-TR_TR: tr_TR.ISO8859-9
-tr_TR.iso88599: tr_TR.ISO8859-9
-tr_TR.ISO-8859-9: tr_TR.ISO8859-9
-tr_TR.utf8: tr_TR.UTF-8
-TR_TR.utf8: tr_TR.UTF-8
-ts: ts_ZA.ISO8859-1
-ts_ZA: ts_ZA.ISO8859-1
-ts_ZA.iso88591: ts_ZA.ISO8859-1
-ts_ZA.utf8: ts_ZA.UTF-8
-tt: tt_RU.TATAR-CYR
-tt_RU: tt_RU.TATAR-CYR
-tt_RU.tatarcyr: tt_RU.TATAR-CYR
-tt_RU.koi8c: tt_RU.KOI8-C
-uk: uk_UA.KOI8-U
-uk_UA: uk_UA.KOI8-U
-uk_UA.iso88595: uk_UA.ISO8859-5
-uk_UA.koi8u: uk_UA.KOI8-U
-uk_UA.cp1251: uk_UA.CP1251
-uk_UA.microsoftcp1251: uk_UA.CP1251
-uk_UA.microsoft-cp1251: uk_UA.CP1251
-uk_UA.MICROSOFT-CP1251: uk_UA.CP1251
-uk_UA.utf8: uk_UA.UTF-8
-ur: ur_IN.UTF-8
-ur_IN.utf8: ur_IN.UTF-8
-ur_IN.UTF-8: ur_IN.UTF-8
-ur: ur_PK.CP1256
-ur_PK: ur_PK.CP1256
-ur_PK.cp1256: ur_PK.CP1256
-ur_PK.microsoftcp1256: ur_PK.CP1256
-ur_PK.microsoft-cp1256: ur_PK.CP1256
-ur_PK.MICROSOFT-CP1256: ur_PK.CP1256
-uz: uz_UZ.UTF-8
-uz_UZ: uz_UZ.UTF-8
-uz_UZ.ISO-8859-1: uz_UZ.ISO8859-1
-uz_UZ@cyrillic: uz_UZ.UTF-8
-uz_UZ.UTF-8@cyrillic: uz_UZ.UTF-8
-ve: ve_ZA.UTF-8
-ve_ZA: ve_ZA.UTF-8
-ve_ZA.utf8: ve_ZA.UTF-8
-vi: vi_VN.TCVN
-vi_VN: vi_VN.TCVN
-Vi_VN: vi_VN.TCVN
-VI_VN: vi_VN.TCVN
-vi_VN.tcvn: vi_VN.TCVN
-vi_VN.tcvn5712: vi_VN.TCVN
-vi_VN.viscii: vi_VN.VISCII
-vi_VN.viscii111: vi_VN.VISCII
-vi_VN.utf8: vi_VN.UTF-8
-VI_VN.UTF-8: vi_VN.UTF-8
-wa: wa_BE.ISO8859-1
-wa_BE: wa_BE.ISO8859-1
-wa_BE.iso88591: wa_BE.ISO8859-1
-wa_BE.ISO-8859-1: wa_BE.ISO8859-1
-wa_BE.iso885915: wa_BE.ISO8859-15
-wa_BE.ISO-8859-15: wa_BE.ISO8859-15
-wa_BE.ISO-8859-15@euro: wa_BE.ISO8859-15
-wa_BE@euro: wa_BE.ISO8859-15
-xh: xh_ZA.ISO8859-1
-xh_ZA: xh_ZA.ISO8859-1
-xh_ZA.iso88591: xh_ZA.ISO8859-1
-xh_ZA.utf8: xh_ZA.UTF-8
-yi: yi_US.CP1255
-yi_US: yi_US.CP1255
-yi_US.cp1255: yi_US.CP1255
-yi_US.microsoftcp1255: yi_US.CP1255
-yi_US.microsoft-cp1255: yi_US.CP1255
-yi_US.MICROSOFT-CP1255: yi_US.CP1255
-zh_CN: zh_CN.gb2312
-zh_CN.Big5: zh_TW.big5
-zh_CN.EUC: zh_CN.eucCN
-zh_CN.GB2312: zh_CN.gb2312
-zh_CN.GBK: zh_CN.gbk
-zh_CN.GB18030: zh_CN.gb18030
-zh_CN.big5: zh_TW.big5
-zh_CN.euc: zh_CN.eucCN
-zh_CN.utf8: zh_CN.UTF-8
-ZH_CN.UTF-8: zh_CN.UTF-8
-zh_HK: zh_HK.big5hkscs
-zh_HK.BIG5HK: zh_HK.big5hkscs
-zh_HK.Big5hkscs: zh_HK.big5hkscs
-zh_HK.Big5-hkscs: zh_HK.big5hkscs
-zh_HK.Big5_hkscs: zh_HK.big5hkscs
-zh_HK.Big5HKSCS: zh_HK.big5hkscs
-zh_HK.BIG5-HKSCS: zh_HK.big5hkscs
-zh_HK.BIG5_HKSCS: zh_HK.big5hkscs
-zh_HK.Big5: zh_HK.big5
-zh_HK.utf8: zh_HK.UTF-8
-ZH_HK.UTF-8: zh_HK.UTF-8
-ZH_SG.UTF-8: zh_SG.UTF-8
-zh_TW: zh_TW.big5
-zh_TW.Big5: zh_TW.big5
-zh_TW.BIG5: zh_TW.big5
-Zh_TW.big5: zh_TW.big5
-zh_TW.EUC: zh_TW.eucTW
-zh_TW.EUC-TW: zh_TW.eucTW
-zh_TW.utf8: zh_TW.UTF-8
-ZH_TW.UTF-8: zh_TW.UTF-8
-zu: zu_ZA.ISO8859-1
-zu_ZA: zu_ZA.ISO8859-1
-zu_ZA.iso88591: zu_ZA.ISO8859-1
-zu_ZA.utf8: zu_ZA.UTF-8
-
-XCOMM The following locale names are used in SCO 3.0
-english_uk.8859: en_GB.ISO8859-1
-english_us.8859: en_US.ISO8859-1
-english_us.ascii: en_US.ISO8859-1
-french_france.8859: fr_FR.ISO8859-1
-german_germany.8859: de_DE.ISO8859-1
-portuguese_brazil.8859: pt_BR.ISO8859-1
-spanish_spain.8859: es_ES.ISO8859-1
-XCOMM The following locale names are used in HPUX 9.x
-american.iso88591: en_US.ISO8859-1
-arabic.iso88596: ar_AA.ISO8859-6
-bokmal: nb_NO.ISO8859-1
-bokmål: nb_NO.ISO8859-1
-bulgarian: bg_BG.CP1251
-c-french.iso88591: fr_CA.ISO8859-1
-catalan: ca_ES.ISO8859-1
-chinese-s: zh_CN.eucCN
-chinese-t: zh_TW.eucTW
-croatian: hr_HR.ISO8859-2
-czech: cs_CZ.ISO8859-2
-danish: da_DK.ISO8859-1
-dansk: da_DK.ISO8859-1
-danish.iso88591: da_DK.ISO8859-1
-deutsch: de_DE.ISO8859-1
-dutch: nl_NL.ISO8859-1
-dutch.iso88591: nl_BE.ISO8859-1
-eesti: et_EE.ISO8859-1
-english.iso88591: en_EN.ISO8859-1
-estonian: et_EE.ISO8859-1
-finnish: fi_FI.ISO8859-1
-finnish.iso88591: fi_FI.ISO8859-1
-français: fr_FR.ISO8859-1
-french: fr_FR.ISO8859-1
-french.iso88591: fr_CH.ISO8859-1
-galego: gl_ES.ISO8859-1
-galician: gl_ES.ISO8859-1
-german: de_DE.ISO8859-1
-german.iso88591: de_CH.ISO8859-1
-greek: el_GR.ISO8859-7
-greek.iso88597: el_GR.ISO8859-7
-hebrew: iw_IL.ISO8859-8
-hebrew.iso88598: iw_IL.ISO8859-8
-hrvatski: hr_HR.ISO8859-2
-hungarian: hu_HU.ISO8859-2
-icelandic.iso88591: is_IS.ISO8859-1
-icelandic: is_IS.ISO8859-1
-italian: it_IT.ISO8859-1
-italian.iso88591: it_IT.ISO8859-1
-japanese: ja_JP.eucJP
-japanese.euc: ja_JP.eucJP
-japanese.sjis: ja_JP.SJIS
-korean: ko_KR.eucKR
-korean.euc: ko_KR.eucKR
-lithuanian: lt_LT.ISO8859-13
-norwegian: no_NO.ISO8859-1
-norwegian.iso88591: no_NO.ISO8859-1
-polish: pl_PL.ISO8859-2
-portuguese: pt_PT.ISO8859-1
-portuguese.iso88591: pt_PT.ISO8859-1
-romanian: ro_RO.ISO8859-2
-rumanian: ro_RO.ISO8859-2
-russian: ru_RU.ISO8859-5
-serbocroatian: sr_RS.UTF-8@latin
-sinhala: si_LK.UTF-8
-slovak: sk_SK.ISO8859-2
-slovene: sl_SI.ISO8859-2
-slovenian: sl_SI.ISO8859-2
-spanish: es_ES.ISO8859-1
-spanish.iso88591: es_ES.ISO8859-1
-swedish: sv_SE.ISO8859-1
-swedish.iso88591: sv_SE.ISO8859-1
-turkish: tr_TR.ISO8859-9
-turkish.iso88599: tr_TR.ISO8859-9
-thai: th_TH.ISO8859-11
-univ.utf8: en_US.UTF-8
-XCOMM Digital Unix utf
-universal.utf8@ucs4: en_US.UTF-8
-XCOMM Solaris and SunOS have iso_8859_1 and iso_8859_15 LC_CTYPES
-XCOMM to augment LANG=C
-iso_8859_1: en_US.ISO8859-1
-iso_8859_15: en_US.ISO8859-15
-#ifdef WIN32
-XCOMM Microsoft Windows/NT 4.0 SP3
-XCOMM parser doesn't grok embedded spaces in locale name
-Afrikaans_South Africa.1252: af_ZA.iso8859-1
-Arabic_Bahrain.1256: ar_BH.iso8859-6
-Arabic_Algeria.1256: ar_DZ.iso8859-6
-Arabic_Egypt.1256: ar_EG.iso8859-6
-Arabic_Iraq.1256: ar_IQ.iso8859-6
-Arabic_Jordan.1256: ar_JO.iso8859-6
-Arabic_Kuwait.1256: ar_KW.iso8859-6
-Arabic_Lebanon.1256: ar_LB.iso8859-6
-Arabic_Libya.1256: ar_LY.iso8859-6
-Arabic_Morocco.1256: ar_MA.iso8859-6
-Arabic_Oman.1256: ar_OM.iso8859-6
-Arabic_Qatar.1256: ar_QA.iso8859-6
-Arabic_Saudi Arabia.1256: ar_SA.iso8859-6
-Arabic_Tunisia.1256: ar_TN.iso8859-6
-Arabic_Yemen.1256: ar_YE.iso8859-6
-Belarusian_Belarus.1251: be_BY.iso8859-5
-Bulgarian_Bulgaria.1251: bg_BG.iso8859-5
-Catalan_Andorra.1252: ca_AD.iso8859-1
-Catalan_Spain.1252: ca_ES.iso8859-1
-Catalan_France.1252: ca_FR.iso8859-1
-Catalan_Italy.1252: ca_IT.iso8859-1
-Czech_Czech Republic.1250: cs_CZ.iso8859-2
-Danish_Denmark.1252: da_DK.iso8859-1
-German_Austria.1252: de_AT.iso8859-1
-German_Switzerland.1252: de_CH.iso8859-1
-German_Germany.1252: de_DE.iso8859-1
-German_Liechtenstein.1252: de_LI.iso8859-1
-German_Luxembourg.1252: de_LU.iso8859-1
-Greek_Greece.1253: el_GR.iso8859-7
-English_Australia.1252: en_AU.iso8859-1
-English_Belize.1252: en_BZ.iso8859-1
-English_Canada.1252: en_CA.iso8859-1
-English_Ireland.1252: en_IE.iso8859-1
-English_Jamaica.1252: en_JM.iso8859-1
-English_New Zealand.1252: en_NZ.iso8859-1
-English_Trinidad y Tobago.1252: en_TT.iso8859-1
-English_United Kingdom.1252: en_UK.iso8859-1
-English_United States.1252: en_US.iso8859-1
-English_South Africa.1252: en_ZA.iso8859-1
-Spanish_Argentina.1252: es_AR.iso8859-1
-Spanish_Bolivia.1252: es_BO.iso8859-1
-Spanish_Chile.1252: es_CL.iso8859-1
-Spanish_Colombia.1252: es_CO.iso8859-1
-Spanish_Costa Rica.1252: es_CR.iso8859-1
-Spanish_Dominican Republic.1252: es_DO.iso8859-1
-Spanish_Ecuador.1252: es_EC.iso8859-1
-Spanish - Modern Sort_Spain.1252: es_ES.iso8859-1
-Spanish - Traditional Sort_Spain.1252: es_ES.iso8859-1
-Spanish_Guatemala.1252: es_GT.iso8859-1
-Spanish_Honduras.1252: es_HN.iso8859-1
-Spanish_Mexican.1252: es_MX.iso8859-1
-Spanish_Nicaragua.1252: es_NI.iso8859-1
-Spanish_Panama.1252: es_PA.iso8859-1
-Spanish_Paraguay.1252: es_PY.iso8859-1
-Spanish_Peru.1252: es_PE.iso8859-1
-Spanish_Puerto Rico.1252: es_PR.iso8859-1
-Spanish_El Salvador.1252: es_SV.iso8859-1
-Spanish_Uruguay.1252: es_UY.iso8859-1
-Spanish_Venezuela.1252: es_VE.iso8859-1
-Estonian_Estonia.1257: et_EE.iso8859-13
-Basque_Spain.1252: eu_ES.iso8859-1
-Finnish_Finland.1252: fi_FI.iso8859-1
-French_Belgium.1252: fr_BE.iso8859-1
-French_Canada.1252: fr_CA.iso8859-1
-French_Switzerland.1252: fr_CH.iso8859-1
-French_France.1252: fr_FR.iso8859-1
-French_Luxembourg.1252: fr_LU.iso8859-1
-Faeroese_Faeroe Islands.1252: fo_FO.iso8859-1
-Hebrew_Israel.1255: he_IL.iso8859-8
-Croatian_Croatia.1250: hr_HR.iso8859-2
-Hungarian_Hungary.1250: hu_HU.iso8859-2
-Indonesian_Indonesia.1252: id_ID.iso8859-1
-Icelandic_Iceland.1252: is_IS.iso8859-1
-Italian_Switzerland.1252: it_CH.iso8859-1
-Italian_Italy.1252: it_IT.iso8859-1
-Japanese_Japan.932: ja_JP.SJIS
-Korean_Korea.949: ko_KR.EUC
-Lithuanian_Lithuania.1257: lt_LT.iso8859-13
-Latvian_Latvia.1257: lv_LV.iso8859-13
-Dutch_Belgium.1252: nl_BE.iso8859-1
-Dutch_Netherlands.1252: nl_NL.iso8859-1
-Norwegian (Nynorsk)_Norway.1252: no_NO.iso8859-1
-Norwegian (Bokmål)_Norway.1252: no_NO.iso8859-1
-Polish_Poland.1250: pl_PL.iso8859-2
-Portuguese_Brazil.1252: pt_BR.iso8859-1
-Portuguese_Portugal.1252: pt_PT.iso8859-1
-Romanian_Romania.1250: ro_RO.iso8859-2
-Russian_Russia.1251: ru_RU.iso8859-5
-Slovak_Slovakia.1250: sk_SK.iso8859-2
-Slovene_Slovenia.1250: sl_SI.iso8859-2
-Albanian_Albania.1250: sq_AL.iso8859-2
-Serbian (Latin)_Serbia.1250: sr_RS.UTF-8@latin
-Swedish_Finland.1252: sv_FI.iso8859-1
-Swedish_Sweden.1252: sv_SE.iso8859-1
-Turkish_Turkey.1254: tr_TR.iso8859-9
-Ukrainian_Ukraine.1251: uk_UA.iso8859-5
-Chinese(PRC)_People's Republic of China.936: zh_CN.EUC
-Chinese(PRC)_Hong Kong.950: zh_HK.EUC
-Chinese(Singapore)_Signapore.936: zh_SG.EUC
-Chinese(Taiwan)_Taiwan.950: zh_TW.EUC
-#endif
-XCOMM Other miscellaneous locale names
-ISO8859-1: en_US.ISO8859-1
-ISO-8859-1: en_US.ISO8859-1
-#ifndef __uxp__
-japan: ja_JP.eucJP
-#else
-japan: ja_JP.U90
-#endif
-Japanese-EUC: ja_JP.eucJP
+XCOMM
+XCOMM This file contains alias name of locale.
+XCOMM Each alias name is described within one line.
+XCOMM The first word is the alias name (simplified locale name)
+XCOMM the second word is full locale name.
+XCOMM
+XCOMM
+
+POSIX: C
+POSIX-UTF2: C
+C_C.C: C
+C.en: C
+C.ASCII: C
+C.iso88591: en_US.ISO8859-1
+Cextend: en_US.ISO8859-1
+Cextend.en: en_US.ISO8859-1
+English_United-States.437: C
+C.UTF-8: en_US.UTF-8
+XCOMM a3 is not an ISO 639 language code, but in Cyrillic, "Z" looks like "3".
+a3: a3_AZ.KOI8-C
+a3_AZ: a3_AZ.KOI8-C
+a3_AZ.koi8c: a3_AZ.KOI8-C
+af: af_ZA.ISO8859-1
+af_ZA: af_ZA.ISO8859-1
+af_ZA.iso88591: af_ZA.ISO8859-1
+af_ZA.ISO-8859-1: af_ZA.ISO8859-1
+af_ZA.utf8: af_ZA.UTF-8
+am: am_ET.UTF-8
+am_ET: am_ET.UTF-8
+ar: ar_AA.ISO8859-6
+ar_AA: ar_AA.ISO8859-6
+AR_AA: ar_AA.ISO8859-6
+Ar_AA: ar_AA.ISO8859-6
+AR_AA.UTF-8: ar_AA.UTF-8
+ar_AA.iso88596: ar_AA.ISO8859-6
+ar_AA.ISO-8859-6: ar_AA.ISO8859-6
+ar_AE: ar_AE.ISO8859-6
+ar_AE.iso88596: ar_AE.ISO8859-6
+ar_AE.ISO-8859-6: ar_AE.ISO8859-6
+ar_AE.utf8: ar_AE.UTF-8
+ar_BH: ar_BH.ISO8859-6
+ar_BH.iso88596: ar_BH.ISO8859-6
+ar_BH.ISO-8859-6: ar_BH.ISO8859-6
+ar_BH.utf8: ar_BH.UTF-8
+ar_DZ: ar_DZ.ISO8859-6
+ar_DZ.iso88596: ar_DZ.ISO8859-6
+ar_DZ.ISO-8859-6: ar_DZ.ISO8859-6
+ar_DZ.utf8: ar_DZ.UTF-8
+ar_EG: ar_EG.ISO8859-6
+ar_EG.iso88596: ar_EG.ISO8859-6
+ar_EG.ISO-8859-6: ar_EG.ISO8859-6
+ar_EG.utf8: ar_EG.UTF-8
+ar_IN.utf8: ar_IN.UTF-8
+ar_IQ: ar_IQ.ISO8859-6
+ar_IQ.iso88596: ar_IQ.ISO8859-6
+ar_IQ.ISO-8859-6: ar_IQ.ISO8859-6
+ar_IQ.utf8: ar_IQ.UTF-8
+ar_JO: ar_JO.ISO8859-6
+ar_JO.iso88596: ar_JO.ISO8859-6
+ar_JO.ISO-8859-6: ar_JO.ISO8859-6
+ar_JO.utf8: ar_JO.UTF-8
+ar_KW: ar_KW.ISO8859-6
+ar_KW.iso88596: ar_KW.ISO8859-6
+ar_KW.ISO-8859-6: ar_KW.ISO8859-6
+ar_KW.utf8: ar_KW.UTF-8
+ar_LB: ar_LB.ISO8859-6
+ar_LB.iso88596: ar_LB.ISO8859-6
+ar_LB.ISO-8859-6: ar_LB.ISO8859-6
+ar_LB.utf8: ar_LB.UTF-8
+ar_LY: ar_LY.ISO8859-6
+ar_LY.iso88596: ar_LY.ISO8859-6
+ar_LY.ISO-8859-6: ar_LY.ISO8859-6
+ar_LY.utf8: ar_LY.UTF-8
+ar_MA: ar_MA.ISO8859-6
+ar_MA.iso88596: ar_MA.ISO8859-6
+ar_MA.ISO-8859-6: ar_MA.ISO8859-6
+ar_MA.utf8: ar_MA.UTF-8
+ar_OM: ar_OM.ISO8859-6
+ar_OM.iso88596: ar_OM.ISO8859-6
+ar_OM.ISO-8859-6: ar_OM.ISO8859-6
+ar_OM.utf8: ar_OM.UTF-8
+ar_QA: ar_QA.ISO8859-6
+ar_QA.iso88596: ar_QA.ISO8859-6
+ar_QA.ISO-8859-6: ar_QA.ISO8859-6
+ar_QA.utf8: ar_QA.UTF-8
+ar_SA: ar_SA.ISO8859-6
+ar_SA.iso88596: ar_SA.ISO8859-6
+ar_SA.ISO-8859-6: ar_SA.ISO8859-6
+ar_SA.utf8: ar_SA.UTF-8
+ar_SD: ar_SD.ISO8859-6
+ar_SD.iso88596: ar_SD.ISO8859-6
+ar_SD.ISO-8859-6: ar_SD.ISO8859-6
+ar_SD.utf8: ar_SD.UTF-8
+ar_SY: ar_SY.ISO8859-6
+ar_SY.iso88596: ar_SY.ISO8859-6
+ar_SY.ISO-8859-6: ar_SY.ISO8859-6
+ar_SY.utf8: ar_SY.UTF-8
+ar_TN: ar_TN.ISO8859-6
+ar_TN.iso88596: ar_TN.ISO8859-6
+ar_TN.ISO-8859-6: ar_TN.ISO8859-6
+ar_TN.utf8: ar_TN.UTF-8
+as: as_IN.UTF-8
+as_IN.utf8: as_IN.UTF-8
+ar_YE: ar_YE.ISO8859-6
+ar_YE.iso88596: ar_YE.ISO8859-6
+ar_YE.ISO-8859-6: ar_YE.ISO8859-6
+ar_YE.utf8: ar_YE.UTF-8
+az: az_AZ.ISO8859-9E
+az_AZ: az_AZ.ISO8859-9E
+az_AZ.iso88599e: az_AZ.ISO8859-9E
+be: be_BY.CP1251
+be@latin: be_BY.UTF-8@latin
+be_BY: be_BY.CP1251
+be_BY@latin: be_BY.UTF-8@latin
+be_BY.cp1251: be_BY.CP1251
+be_BY.microsoftcp1251: be_BY.CP1251
+be_BY.microsoft-cp1251: be_BY.CP1251
+be_BY.MICROSOFT-CP1251: be_BY.CP1251
+be_BY.utf8: be_BY.UTF-8
+be_BY.utf8@latin: be_BY.UTF-8@latin
+bg: bg_BG.CP1251
+bg_BG: bg_BG.CP1251
+bg_BG.cp1251: bg_BG.CP1251
+bg_BG.microsoftcp1251: bg_BG.CP1251
+bg_BG.microsoft-cp1251: bg_BG.CP1251
+bg_BG.MICROSOFT-CP1251: bg_BG.CP1251
+bg_BG.iso88595: bg_BG.ISO8859-5
+bg_BG.ISO-8859-5: bg_BG.ISO8859-5
+bg_BG.koi8r: bg_BG.KOI8-R
+be_BG.utf8: bg_BG.UTF-8
+bn_IN.utf8: bn_IN.UTF-8
+bo_IN.utf8: bo_IN.UTF-8
+br: br_FR.ISO8859-1
+br_FR: br_FR.ISO8859-1
+br_FR.iso88591: br_FR.ISO8859-1
+br_FR.ISO-8859-1: br_FR.ISO8859-1
+br_FR.iso885914: br_FR.ISO8859-14
+br_FR.ISO-8859-14: br_FR.ISO8859-14
+br_FR.iso885915: br_FR.ISO8859-15
+br_FR.ISO-8859-15: br_FR.ISO8859-15
+br_FR.ISO-8859-15@euro: br_FR.ISO8859-15
+br_FR@euro: br_FR.ISO8859-15
+br_FR.UTF-8@euro: br_FR.UTF-8
+bs: bs_BA.ISO8859-2
+bs_BA: bs_BA.ISO8859-2
+bs_BA.iso88592: bs_BA.ISO8859-2
+bs_BA.ISO-8859-2: bs_BA.ISO8859-2
+bs_BA.ISO_8859-2: bs_BA.ISO8859-2
+ca: ca_ES.ISO8859-1
+ca_AD: ca_AD.ISO8859-1
+ca_AD@euro: ca_AD.ISO8859-15
+ca_AD.iso88591: ca_AD.ISO8859-1
+ca_AD.ISO-8859-1: ca_AD.ISO8859-1
+ca_AD.iso885915: ca_AD.ISO8859-15
+ca_AD.utf8: ca_AD.UTF-8
+ca_AD.ISO-8859-15: ca_AD.ISO8859-15
+ca_AD.ISO-8859-15@euro: ca_AD.ISO8859-15
+ca_AD.UTF-8@euro: ca_AD.UTF-8
+ca_ES: ca_ES.ISO8859-1
+ca_ES@euro: ca_ES.ISO8859-15
+ca_ES.iso88591: ca_ES.ISO8859-1
+ca_ES.ISO-8859-1: ca_ES.ISO8859-1
+ca_ES.iso885915: ca_ES.ISO8859-15
+ca_ES.utf8: ca_ES.UTF-8
+ca_ES.ISO-8859-15: ca_ES.ISO8859-15
+ca_ES.ISO-8859-15@euro: ca_ES.ISO8859-15
+ca_ES.UTF-8@euro: ca_ES.UTF-8
+ca_FR: ca_FR.ISO8859-1
+ca_FR@euro: ca_FR.ISO8859-15
+ca_FR.iso88591: ca_FR.ISO8859-1
+ca_FR.ISO-8859-1: ca_FR.ISO8859-1
+ca_FR.iso885915: ca_FR.ISO8859-15
+ca_FR.utf8: ca_FR.UTF-8
+ca_FR.ISO-8859-15: ca_FR.ISO8859-15
+ca_FR.ISO-8859-15@euro: ca_FR.ISO8859-15
+ca_FR.UTF-8@euro: ca_FR.UTF-8
+ca_IT: ca_IT.ISO8859-1
+ca_IT@euro: ca_IT.ISO8859-15
+ca_IT.iso88591: ca_IT.ISO8859-1
+ca_IT.ISO-8859-1: ca_IT.ISO8859-1
+ca_IT.iso885915: ca_IT.ISO8859-15
+ca_IT.utf8: ca_IT.UTF-8
+ca_IT.ISO-8859-15: ca_IT.ISO8859-15
+ca_IT.ISO-8859-15@euro: ca_IT.ISO8859-15
+ca_IT.UTF-8@euro: ca_IT.UTF-8
+cs: cs_CZ.ISO8859-2
+cs_CS: cs_CZ.ISO8859-2
+cs_CS.ISO8859-2: cs_CZ.ISO8859-2
+cs_CZ: cs_CZ.ISO8859-2
+cs_CZ.iso88592: cs_CZ.ISO8859-2
+cs_CS.iso8859-2: cs_CS.ISO8859-2
+cs_CZ.ISO-8859-2: cs_CZ.ISO8859-2
+cs_CZ.ISO_8859-2: cs_CZ.ISO8859-2
+cs_CZ.utf8: cs_CZ.UTF-8
+XCOMM cz is an old name for Czech (now cs), and should be deleted in the future.
+cz: cs_CZ.ISO8859-2
+cz_CZ: cs_CZ.ISO8859-2
+cz_CZ.utf8: cs_CZ.UTF-8
+cz_CZ.UTF-8: cs_CZ.UTF-8
+cy: cy_GB.ISO8859-1
+cy_GB: cy_GB.ISO8859-1
+cy_GB.iso88591: cy_GB.ISO8859-1
+cy_GB.ISO-8859-1: cy_GB.ISO8859-1
+cy_GB.iso885914: cy_GB.ISO8859-14
+cy_GB.ISO-8859-14: cy_GB.ISO8859-14
+cy_GB.iso885915: cy_GB.ISO8859-15
+cy_GB.ISO-8859-15: cy_GB.ISO8859-15
+da: da_DK.ISO8859-1
+da.ISO8859-15: da_DK.ISO8859-15
+da_DK: da_DK.ISO8859-1
+DA_DK: da_DK.ISO8859-1
+da_DK.88591: da_DK.ISO8859-1
+da_DK.88591.en: da_DK.ISO8859-1
+da_DK.iso88591: da_DK.ISO8859-1
+da_DK.ISO-8859-1: da_DK.ISO8859-1
+da_DK.ISO_8859-1: da_DK.ISO8859-1
+da_DK.iso885915: da_DK.ISO8859-15
+da_DK.ISO-8859-15: da_DK.ISO8859-15
+da_DK.8859-15: da_DK.ISO8859-15
+da_DK.utf8: da_DK.UTF-8
+DA_DK.UTF-8: da_DK.UTF-8
+de: de_DE.ISO8859-1
+de.ISO8859-15: de_DE.ISO8859-15
+de_AT: de_AT.ISO8859-1
+de_AT@euro: de_AT.ISO8859-15
+de_AT.iso88591: de_AT.ISO8859-1
+de_AT.ISO-8859-1: de_AT.ISO8859-1
+de_AT.ISO_8859-1: de_AT.ISO8859-1
+de_AT.iso885915: de_AT.ISO8859-15
+de_AT.ISO-8859-15: de_AT.ISO8859-15
+de_AT.ISO-8859-15@euro: de_AT.ISO8859-15
+de_AT.UTF-8@euro: de_AT.UTF-8
+de_AT.utf8: de_AT.UTF-8
+de_BE: de_BE.ISO8859-1
+de_BE@euro: de_BE.ISO8859-15
+de_BE.iso88591: de_BE.ISO8859-1
+de_BE.ISO_8859-1: de_BE.ISO8859-1
+de_BE.ISO-8859-1: de_BE.ISO8859-1
+de_BE.iso885915: de_BE.ISO8859-15
+de_BE.ISO_8859-15: de_BE.ISO8859-15
+de_BE.ISO-8859-15: de_BE.ISO8859-15
+de_BE.ISO-8859-15@euro: de_BE.ISO8859-15
+de_BE.UTF-8@euro: de_BE.UTF-8
+de_CH: de_CH.ISO8859-1
+de_CH.iso88591: de_CH.ISO8859-1
+de_CH.ISO_8859-1: de_CH.ISO8859-1
+de_CH.ISO-8859-1: de_CH.ISO8859-1
+de_CH.iso885915: de_CH.ISO8859-15
+de_CH.ISO_8859-15: de_CH.ISO8859-15
+de_CH.ISO-8859-15: de_CH.ISO8859-15
+de_CH.utf8: de_CH.UTF-8
+de_DE: de_DE.ISO8859-1
+de_DE@euro: de_DE.ISO8859-15
+de_DE.88591: de_DE.ISO8859-1
+de_DE.88591.en: de_DE.ISO8859-1
+de_DE.iso88591: de_DE.ISO8859-1
+de_DE.ISO-8859-1: de_DE.ISO8859-1
+de_DE.ISO_8859-1: de_DE.ISO8859-1
+de_DE.iso885915: de_DE.ISO8859-15
+de_DE.ISO-8859-15: de_DE.ISO8859-15
+de_DE.ISO_8859-15: de_DE.ISO8859-15
+de_DE.8859-15: de_DE.ISO8859-15
+de_DE.8859-15@euro: de_DE.ISO8859-15
+de_DE.ISO-8859-15@euro: de_DE.ISO8859-15
+de_DE.UTF-8@euro: de_DE.UTF-8
+de_DE.utf8: de_DE.UTF-8
+de_LU: de_LU.ISO8859-1
+de_LU@euro: de_LU.ISO8859-15
+de_LU.iso88591: de_LU.ISO8859-1
+de_LU.ISO_8859-1: de_LU.ISO8859-1
+de_LU.ISO-8859-1: de_LU.ISO8859-1
+de_LU.iso885915: de_LU.ISO8859-15
+de_LU.ISO_8859-15: de_LU.ISO8859-15
+de_LU.ISO-8859-15: de_LU.ISO8859-15
+de_LU.ISO-8859-15@euro: de_LU.ISO8859-15
+de_LU.UTF-8@euro: de_LU.UTF-8
+de_LU.utf8: de_LU.UTF-8
+GER_DE.8859: de_DE.ISO8859-1
+GER_DE.8859.in: de_DE.ISO8859-1
+ee: ee_EE.ISO8859-4
+ee_EE: ee_EE.ISO8859-4
+ee_EE.iso88594: ee_EE.ISO8859-4
+el: el_GR.ISO8859-7
+el_GR: el_GR.ISO8859-7
+el_GR.iso88597: el_GR.ISO8859-7
+el_GR.ISO-8859-7: el_GR.ISO8859-7
+el_GR@euro: el_GR.ISO8859-15
+el_GR.utf8: el_GR.UTF-8
+en: en_US.ISO8859-1
+en.ISO-8859-1: en_US.ISO8859-1
+en_AU: en_AU.ISO8859-1
+en_AU.iso88591: en_AU.ISO8859-1
+en_AU.ISO-8859-1: en_AU.ISO8859-1
+en_AU.ISO_8859-1: en_AU.ISO8859-1
+en_AU.utf8: en_AU.UTF-8
+en_BE: en_BE.ISO8859-1
+en_BE@euro: en_BE.ISO8859-15
+en_BE.utf8: en_BE.UTF-8
+en_BW: en_BW.ISO8859-1
+en_BW.iso88591: en_BW.ISO8859-1
+en_BW.ISO-8859-1: en_BW.ISO8859-1
+en_CA: en_CA.ISO8859-1
+en_CA.iso88591: en_CA.ISO8859-1
+en_CA.ISO-8859-1: en_CA.ISO8859-1
+en_CA.ISO_8859-1: en_CA.ISO8859-1
+en_CA.utf8: en_CA.UTF-8
+en_GB: en_GB.ISO8859-1
+en_GB.88591: en_GB.ISO8859-1
+en_GB.88591.en: en_GB.ISO8859-1
+en_GB.iso88591: en_GB.ISO8859-1
+en_GB.ISO-8859-1: en_GB.ISO8859-1
+en_GB.ISO_8859-1: en_GB.ISO8859-1
+en_GB.iso885915: en_GB.ISO8859-15
+en_GB.ISO-8859-15: en_GB.ISO8859-15
+en_GB.utf8: en_GB.UTF-8
+en_UK: en_GB.ISO8859-1
+ENG_GB.8859: en_GB.ISO8859-1
+ENG_GB.8859.in: en_GB.ISO8859-1
+en_HK: en_HK.ISO8859-1
+en_HK.iso88591: en_HK.ISO8859-1
+en_HK.ISO-8859-1: en_HK.ISO8859-1
+en_IE: en_IE.ISO8859-1
+en_IE.iso88591: en_IE.ISO8859-1
+en_IE.ISO-8859-1: en_IE.ISO8859-1
+en_IE.iso885915: en_IE.ISO8859-15
+en_IE.ISO-8859-15: en_IE.ISO8859-15
+en_IE.ISO-8859-15@euro: en_IE.ISO8859-15
+en_IE@euro: en_IE.ISO8859-15
+en_IE.UTF-8@euro: en_IE.UTF-8
+en_IE.utf8: en_IE.UTF-8
+en_IN: en_IN.ISO8859-1
+en_NZ: en_NZ.ISO8859-1
+en_NZ.iso88591: en_NZ.ISO8859-1
+en_NZ.ISO-8859-1: en_NZ.ISO8859-1
+en_NZ.utf8: en_NZ.UTF-8
+en_PH: en_PH.ISO8859-1
+en_PH.iso88591: en_PH.ISO8859-1
+en_PH.ISO-8859-1: en_PH.ISO8859-1
+en_SG: en_SG.ISO8859-1
+en_SG.iso88591: en_SG.ISO8859-1
+en_SG.ISO-8859-1: en_SG.ISO8859-1
+en_US: en_US.ISO8859-1
+EN_US: en_US.ISO8859-1
+en_US.88591: en_US.ISO8859-1
+en_US.88591.en: en_US.ISO8859-1
+en_US.iso88591: en_US.ISO8859-1
+en_US.ISO-8859-1: en_US.ISO8859-1
+en_US.ISO_8859-1: en_US.ISO8859-1
+en_US.iso885915: en_US.ISO8859-15
+en_US.ISO-8859-15: en_US.ISO8859-15
+en_US.8859-15: en_US.ISO8859-15
+en_US.ISO8859-15@euro: en_US.ISO8859-15
+en_US.utf8: en_US.UTF-8
+EN_US.UTF-8: en_US.UTF-8
+en_ZA: en_ZA.ISO8859-1
+en_ZA.88591: en_ZA.ISO8859-1
+en_ZA.88591.en: en_ZA.ISO8859-1
+en_ZA.iso88591: en_ZA.ISO8859-1
+en_ZA.ISO-8859-1: en_ZA.ISO8859-1
+en_ZA.ISO_8859-1: en_ZA.ISO8859-1
+en_ZA.iso885915: en_ZA.ISO8859-15
+en_ZA.ISO-8859-15: en_ZA.ISO8859-15
+en_ZA.utf8: en_ZA.UTF-8
+en_ZW: en_ZW.ISO8859-1
+en_ZW.iso88591: en_ZW.ISO8859-1
+en_ZW.ISO-8859-1: en_ZW.ISO8859-1
+eo: eo_XX.ISO8859-3
+eo_EO: eo_EO.ISO8859-3
+eo_EO.ISO8859-3: eo_EO.ISO8859-3
+eo_XX: eo_XX.ISO8859-3
+eo_XX.ISO8859-3: eo_XX.ISO8859-3
+es: es_ES.ISO8859-1
+es.UTF-8: es_ES.UTF-8
+es_AR: es_AR.ISO8859-1
+es_AR.iso88591: es_AR.ISO8859-1
+es_AR.ISO-8859-1: es_AR.ISO8859-1
+es_AR.utf8: es_AR.UTF-8
+es_BO: es_BO.ISO8859-1
+es_BO.iso88591: es_BO.ISO8859-1
+es_BO.ISO-8859-1: es_BO.ISO8859-1
+es_BO.utf8: es_BO.UTF-8
+es_CL: es_CL.ISO8859-1
+es_CL.iso88591: es_CL.ISO8859-1
+es_CL.ISO-8859-1: es_CL.ISO8859-1
+es_CL.utf8: es_CL.UTF-8
+es_CO: es_CO.ISO8859-1
+es_CO.iso88591: es_CO.ISO8859-1
+es_CO.ISO-8859-1: es_CO.ISO8859-1
+es_CO.utf8: es_CO.UTF-8
+es_CR: es_CR.ISO8859-1
+es_CR.iso88591: es_CR.ISO8859-1
+es_CR.ISO-8859-1: es_CR.ISO8859-1
+es_CR.utf8: es_CR.UTF-8
+es_DO: es_DO.ISO8859-1
+es_DO.iso88591: es_DO.ISO8859-1
+es_DO.ISO-8859-1: es_DO.ISO8859-1
+es_DO.utf8: es_DO.UTF-8
+es_EC: es_EC.ISO8859-1
+es_EC.iso88591: es_EC.ISO8859-1
+es_EC.ISO-8859-1: es_EC.ISO8859-1
+es_EC.utf8: es_EC.UTF-8
+es_ES: es_ES.ISO8859-1
+es_ES.88591: es_ES.ISO8859-1
+es_ES.88591.en: es_ES.ISO8859-1
+es_ES.iso88591: es_ES.ISO8859-1
+es_ES.ISO-8859-1: es_ES.ISO8859-1
+es_ES.ISO_8859-1: es_ES.ISO8859-1
+es_ES.iso885915: es_ES.ISO8859-15
+es_ES.ISO-8859-15: es_ES.ISO8859-15
+es_ES.ISO-8859-15@euro: es_ES.ISO8859-15
+es_ES@euro: es_ES.ISO8859-15
+es_ES.UTF-8@euro: es_ES.UTF-8
+es_ES.utf8: es_ES.UTF-8
+es_GT: es_GT.ISO8859-1
+es_GT.iso88591: es_GT.ISO8859-1
+es_GT.ISO-8859-1: es_GT.ISO8859-1
+es_GT.utf8: es_GT.UTF-8
+es_HN: es_HN.ISO8859-1
+es_HN.iso88591: es_HN.ISO8859-1
+es_HN.ISO-8859-1: es_HN.ISO8859-1
+es_HN.utf8: es_HN.UTF-8
+es_MX: es_MX.ISO8859-1
+es_MX.iso88591: es_MX.ISO8859-1
+es_MX.ISO-8859-1: es_MX.ISO8859-1
+es_MX.utf8: es_MX.UTF-8
+es_NI: es_NI.ISO8859-1
+es_NI.iso88591: es_NI.ISO8859-1
+es_NI.ISO-8859-1: es_NI.ISO8859-1
+es_NI.utf8: es_NI.UTF-8
+es_PA: es_PA.ISO8859-1
+es_PA.iso88591: es_PA.ISO8859-1
+es_PA.ISO-8859-1: es_PA.ISO8859-1
+es_PA.iso885915: es_PA.ISO8859-15
+es_PA.utf8: es_PA.UTF-8
+es_PE: es_PE.ISO8859-1
+es_PE.iso88591: es_PE.ISO8859-1
+es_PE.ISO-8859-1: es_PE.ISO8859-1
+es_PE.iso885915: es_PE.ISO8859-15
+es_PE.utf8: es_PE.UTF-8
+es_PR: es_PR.ISO8859-1
+es_PR.iso88591: es_PR.ISO8859-1
+es_PR.ISO-8859-1: es_PR.ISO8859-1
+es_PR.utf8: es_PR.UTF-8
+es_PY: es_PY.ISO8859-1
+es_PY.iso88591: es_PY.ISO8859-1
+es_PY.ISO-8859-1: es_PY.ISO8859-1
+es_PY.iso885915: es_PY.ISO8859-15
+es_PY.utf8: es_PY.UTF-8
+es_SV: es_SV.ISO8859-1
+es_SV.iso88591: es_SV.ISO8859-1
+es_SV.ISO-8859-1: es_SV.ISO8859-1
+es_SV.iso885915: es_SV.ISO8859-15
+es_SV.utf8: es_SV.UTF-8
+es_US: es_US.ISO8859-1
+es_US.iso88591: es_US.ISO8859-1
+es_US.ISO-8859-1: es_US.ISO8859-1
+es_UY: es_UY.ISO8859-1
+es_UY.iso88591: es_UY.ISO8859-1
+es_UY.ISO-8859-1: es_UY.ISO8859-1
+es_UY.iso885915: es_UY.ISO8859-15
+es_UY.utf8: es_UY.UTF-8
+es_VE: es_VE.ISO8859-1
+es_VE.iso88591: es_VE.ISO8859-1
+es_VE.ISO-8859-1: es_VE.ISO8859-1
+es_VE.iso885915: es_VE.ISO8859-15
+es_VE.utf8: es_VE.UTF-8
+#if defined(SVR4) && defined(sun)
+XCOMM Sun Solaris 2.6 has erroneously specified Estonian as a Latin-1
+XCOMM language; however this is clearly incorrect according to ISO8859.
+#endif
+XCOMM According to Estonian local standards, ISO8859-4 is not a recommended
+XCOMM charset. EVS8:2000 specifies ISO8859-15 as the base charset.
+et: et_EE.ISO8859-15
+et_EE: et_EE.ISO8859-15
+et_EE.iso88591: et_EE.ISO8859-1
+et_EE.ISO-8859-1: et_EE.ISO8859-1
+et_EE.iso88594: et_EE.ISO8859-4
+et_EE.ISO-8859-4: et_EE.ISO8859-4
+et_EE.iso885913: et_EE.ISO8859-13
+et_EE.ISO-8859-13: et_EE.ISO8859-13
+et_EE.iso885915: et_EE.ISO8859-15
+et_EE.ISO-8859-15: et_EE.ISO8859-15
+et_EE.utf8: et_EE.UTF-8
+eu: eu_ES.ISO8859-1
+eu_ES: eu_ES.ISO8859-1
+eu_ES.iso88591: eu_ES.ISO8859-1
+eu_ES.ISO-8859-1: eu_ES.ISO8859-1
+eu_ES.iso885915: eu_ES.ISO8859-15
+eu_ES.ISO-8859-15: eu_ES.ISO8859-15
+eu_ES.ISO-8859-15@euro: eu_ES.ISO8859-15
+eu_ES@euro: eu_ES.ISO8859-15
+eu_ES.UTF-8@euro: eu_ES.UTF-8
+fa: fa_IR.UTF-8
+fa_IR: fa_IR.UTF-8
+fa_IR.isiri3342: fa_IR.ISIRI-3342
+fa_IR.utf8: fa_IR.UTF-8
+fi: fi_FI.ISO8859-15
+fi.ISO8859-15: fi_FI.ISO8859-15
+fi_FI: fi_FI.ISO8859-15
+fi_FI.88591: fi_FI.ISO8859-1
+fi_FI.88591.en: fi_FI.ISO8859-1
+fi_FI.iso88591: fi_FI.ISO8859-1
+fi_FI.ISO-8859-1: fi_FI.ISO8859-1
+fi_FI.ISO_8859-1: fi_FI.ISO8859-1
+fi_FI.iso885915: fi_FI.ISO8859-15
+fi_FI.ISO-8859-15: fi_FI.ISO8859-15
+fi_FI.ISO-8859-15@euro: fi_FI.ISO8859-15
+fi_FI@euro: fi_FI.ISO8859-15
+fi_FI.utf8: fi_FI.UTF-8
+fi_FI.UTF-8@euro: fi_FI.UTF-8
+fo: fo_FO.ISO8859-1
+fo_FO: fo_FO.ISO8859-1
+fo_FO.iso88591: fo_FO.ISO8859-1
+fo_FO.ISO-8859-1: fo_FO.ISO8859-1
+fo_FO.iso885915: fo_FO.ISO8859-15
+fo_FO.ISO-8859-15: fo_FO.ISO8859-15
+fo_FO.utf8: fo_FO.UTF-8
+fr: fr_FR.ISO8859-1
+fr.ISO8859-15: fr_FR.ISO8859-15
+fr.UTF-8: fr_FR.UTF-8
+fr_BE: fr_BE.ISO8859-1
+fr_BE.88591: fr_BE.ISO8859-1
+fr_BE.88591.en: fr_BE.ISO8859-1
+fr_BE.ISO-8859-1: fr_BE.ISO8859-1
+fr_BE.ISO_8859-1: fr_BE.ISO8859-1
+fr_BE.iso885915: fr_BE.ISO8859-15
+fr_BE.ISO-8859-15: fr_BE.ISO8859-15
+fr_BE.ISO-8859-15@euro: fr_BE.ISO8859-15
+fr_BE@euro: fr_BE.ISO8859-15
+fr_BE.utf8: fr_BE.UTF-8
+fr_BE.UTF-8@euro: fr_BE.UTF-8
+fr_CA: fr_CA.ISO8859-1
+fr_CA.88591: fr_CA.ISO8859-1
+fr_CA.88591.en: fr_CA.ISO8859-1
+fr_CA.iso88591: fr_CA.ISO8859-1
+fr_CA.ISO-8859-1: fr_CA.ISO8859-1
+fr_CA.ISO_8859-1: fr_CA.ISO8859-1
+fr_CA.iso885915: fr_CA.ISO8859-15
+fr_CA.ISO-8859-15: fr_CA.ISO8859-15
+fr_CA.utf8: fr_CA.UTF-8
+fr_CH: fr_CH.ISO8859-1
+fr_CH.88591: fr_CH.ISO8859-1
+fr_CH.88591.en: fr_CH.ISO8859-1
+fr_CH.ISO-8859-1: fr_CH.ISO8859-1
+fr_CH.ISO_8859-1: fr_CH.ISO8859-1
+fr_CH.iso885915: fr_CH.ISO8859-15
+fr_CH.ISO-8859-15: fr_CH.ISO8859-15
+fr_CH.utf8: fr_CH.UTF-8
+fr_FR: fr_FR.ISO8859-1
+fr_FR.88591: fr_FR.ISO8859-1
+fr_FR.88591.en: fr_FR.ISO8859-1
+fr_FR.iso88591: fr_FR.ISO8859-1
+fr_FR.ISO-8859-1: fr_FR.ISO8859-1
+fr_FR.ISO_8859-1: fr_FR.ISO8859-1
+fr_FR.iso885915: fr_FR.ISO8859-15
+fr_FR.ISO-8859-15: fr_FR.ISO8859-15
+fr_FR.ISO-8859-15@euro: fr_FR.ISO8859-15
+fr_FR@euro: fr_FR.ISO8859-15
+fr_FR.UTF-8@euro: fr_FR.UTF-8
+fr_FR.utf8: fr_FR.UTF-8
+fr_LU: fr_LU.ISO8859-1
+fr_LU.88591: fr_LU.ISO8859-1
+fr_LU.88591.en: fr_LU.ISO8859-1
+fr_LU.iso88591: fr_LU.ISO8859-1
+fr_LU.ISO-8859-1: fr_LU.ISO8859-1
+fr_LU.ISO_8859-1: fr_LU.ISO8859-1
+fr_LU.iso885915: fr_LU.ISO8859-15
+fr_LU.ISO-8859-15: fr_LU.ISO8859-15
+fr_LU.ISO-8859-15@euro: fr_LU.ISO8859-15
+fr_LU@euro: fr_LU.ISO8859-15
+fr_LU.UTF-8@euro: fr_LU.UTF-8
+fr_LU.utf8: fr_LU.UTF-8
+FRE_FR.8859: fr_FR.ISO8859-1
+FRE_FR.8859.in: fr_FR.ISO8859-1
+ga: ga_IE.ISO8859-1
+ga_IE: ga_IE.ISO8859-1
+ga_IE.iso88591: ga_IE.ISO8859-1
+ga_IE.ISO-8859-1: ga_IE.ISO8859-1
+ga_IE.iso885914: ga_IE.ISO8859-14
+ga_IE.ISO-8859-14: ga_IE.ISO8859-14
+ga_IE.iso885915: ga_IE.ISO8859-15
+ga_IE.ISO-8859-15: ga_IE.ISO8859-15
+ga_IE.ISO-8859-15@euro: ga_IE.ISO8859-15
+ga_IE@euro: ga_IE.ISO8859-15
+ga_IE.UTF-8@euro: ga_IE.UTF-8
+ga_IE.utf8: ga_IE.UTF-8
+gd: gd_GB.ISO8859-1
+gd_GB: gd_GB.ISO8859-1
+gd_GB.iso88591: gd_GB.ISO8859-1
+gd_GB.ISO-8859-1: gd_GB.ISO8859-1
+gd_GB.iso885914: gd_GB.ISO8859-14
+gd_GB.ISO-8859-14: gd_GB.ISO8859-14
+gd_GB.iso885915: gd_GB.ISO8859-15
+gd_GB.ISO-8859-15: gd_GB.ISO8859-15
+gl: gl_ES.ISO8859-1
+gl_ES: gl_ES.ISO8859-1
+gl_ES.iso88591: gl_ES.ISO8859-1
+gl_ES.ISO-8859-1: gl_ES.ISO8859-1
+gl_ES.iso885915: gl_ES.ISO8859-15
+gl_ES.ISO-8859-15: gl_ES.ISO8859-15
+gl_ES.ISO-8859-15@euro: gl_ES.ISO8859-15
+gl_ES@euro: gl_ES.ISO8859-15
+gl_ES.UTF-8@euro: gl_ES.UTF-8
+gl_ES.utf8: gl_ES.UTF-8
+gu_IN.utf8: gu_IN.UTF-8
+gv: gv_GB.ISO8859-1
+gv_GB: gv_GB.ISO8859-1
+gv_GB.iso88591: gv_GB.ISO8859-1
+gv_GB.ISO-8859-1: gv_GB.ISO8859-1
+gv_GB.iso885914: gv_GB.ISO8859-14
+gv_GB.ISO-8859-14: gv_GB.ISO8859-14
+gv_GB.iso885915: gv_GB.ISO8859-15
+gv_GB.ISO-8859-15: gv_GB.ISO8859-15
+he: he_IL.ISO8859-8
+he_IL: he_IL.ISO8859-8
+HE_IL: he_IL.ISO8859-8
+he_IL.iso88598: he_IL.ISO8859-8
+he_IL.ISO-8859-8: he_IL.ISO8859-8
+he_IL.cp1255: he_IL.CP1255
+he_IL.microsoftcp1255: he_IL.CP1255
+he_IL.microsoft-cp1255: he_IL.CP1255
+he_IL.MICROSOFT-CP1255: he_IL.CP1255
+he_IL.utf8: he_IL.UTF-8
+HE_IL.UTF-8: he_IL.UTF-8
+hi: hi_IN.ISCII-DEV
+hi_IN: hi_IN.ISCII-DEV
+HI_IN: hi_IN.ISCII-DEV
+hi_IN.isciidev: hi_IN.ISCII-DEV
+hi_IN.utf8: hi_IN.UTF-8
+HI_IN.UTF-8: hi_IN.UTF-8
+hne: hne_IN.UTF-8
+hne_IN.utf8: hne_IN.UTF-8
+hr: hr_HR.ISO8859-2
+hr_HR: hr_HR.ISO8859-2
+hr_HR.iso88592: hr_HR.ISO8859-2
+hr_HR.ISO-8859-2: hr_HR.ISO8859-2
+hr_HR.ISO_8859-2: hr_HR.ISO8859-2
+hr_HR.utf8: hr_HR.UTF-8
+hu: hu_HU.ISO8859-2
+hu_HU: hu_HU.ISO8859-2
+hu_HU.iso88592: hu_HU.ISO8859-2
+hu_HU.ISO-8859-2: hu_HU.ISO8859-2
+hu_HU.utf8: hu_HU.UTF-8
+XCOMM in was the old ISO code for Indonesian (now id). These lines should be
+XCOMM deleted in the future.
+in: id_ID.ISO8859-1
+in_ID: id_ID.ISO8859-1
+is: is_IS.ISO8859-1
+is_IS: is_IS.ISO8859-1
+is_IS.iso88591: is_IS.ISO8859-1
+is_IS.ISO-8859-1: is_IS.ISO8859-1
+is_IS.ISO_8859-1: is_IS.ISO8859-1
+is_IS.iso885915: is_IS.ISO8859-15
+is_IS.ISO-8859-15: is_IS.ISO8859-15
+is_IS.utf8: is_IS.UTF-8
+it: it_IT.ISO8859-1
+it.ISO8859-15: it_IT.ISO8859-15
+it.UTF-8: it_IT.UTF-8
+it_CH: it_CH.ISO8859-1
+it_CH.iso88591: it_CH.ISO8859-1
+it_CH.ISO_8859-1: it_CH.ISO8859-1
+it_CH.ISO-8859-1: it_CH.ISO8859-1
+it_CH.iso885915: it_CH.ISO8859-15
+it_CH.utf8: it_CH.UTF-8
+it_IT: it_IT.ISO8859-1
+it_IT.88591: it_IT.ISO8859-1
+it_IT.88591.en: it_IT.ISO8859-1
+it_IT.iso88591: it_IT.ISO8859-1
+it_IT.ISO-8859-1: it_IT.ISO8859-1
+it_IT.ISO_8859-1: it_IT.ISO8859-1
+it_IT.iso885915: it_IT.ISO8859-15
+it_IT.ISO-8859-15: it_IT.ISO8859-15
+it_IT.ISO-8859-15@euro: it_IT.ISO8859-15
+it_IT@euro: it_IT.ISO8859-15
+it_IT.utf8: it_IT.UTF-8
+it_IT.UTF-8@euro: it_IT.UTF-8
+iu: iu_CA.NUNACOM-8
+iu_CA: iu_CA.NUNACOM-8
+iu_CA.nunacom8: iu_CA.NUNACOM-8
+XCOMM iw was the old ISO code for Hebrew (now he). These lines should be
+XCOMM deleted in the future.
+iw: he_IL.ISO8859-8
+iw_IL: he_IL.ISO8859-8
+Iw_IL: he_IL.ISO8859-8
+iw_IL.iso88598: he_IL.ISO8859-8
+iw_IL.ISO-8859-8: he_IL.ISO8859-8
+#ifndef __uxp__
+ja_JP: ja_JP.eucJP
+#else /* __uxp__ */
+ja_JP: ja_JP.U90
+ja_JP.U90: ja_JP.U90
+ja_JP.S90: ja_JP.S90
+#endif /* __uxp__ */
+ja: ja_JP.eucJP
+ja.JIS: ja_JP.JIS7
+ja.SJIS: ja_JP.SJIS
+ja_JP.ujis: ja_JP.eucJP
+Jp_JP: ja_JP.eucJP
+ja_JP.AJEC: ja_JP.eucJP
+ja_JP.EUC: ja_JP.eucJP
+ja_JP.EUC-JP: ja_JP.eucJP
+ja_JP.EUC_JP: ja_JP.eucJP
+ja_JP.eucjp: ja_JP.eucJP
+ja_JP.ISO-2022-JP: ja_JP.JIS7
+ja_JP.JIS: ja_JP.JIS7
+ja_JP.jis7: ja_JP.JIS7
+ja_JP.mscode: ja_JP.SJIS
+ja_JP.PCK: ja_JP.SJIS
+ja_JP.SJIS: ja_JP.SJIS
+ja_JP.sjis: ja_JP.SJIS
+ja_JP.utf8: ja_JP.UTF-8
+JA_JP.utf8: ja_JP.UTF-8
+ka: ka_GE.GEORGIAN-ACADEMY
+ka_GE: ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianacademy: ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianrs: ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianps: ka_GE.GEORGIAN-PS
+kl: kl_GL.ISO8859-1
+kl_GL: kl_GL.ISO8859-1
+kl_GL.iso88591: kl_GL.ISO8859-1
+kl_GL.ISO-8859-1: kl_GL.ISO8859-1
+kl_GL.iso885915: kl_GL.ISO8859-15
+kl_GL.utf8: kl_GL.UTF-8
+kn: kn_IN.UTF-8
+kn_IN.utf8: kn_IN.UTF-8
+ko: ko_KR.eucKR
+ko.UTF-8: ko_KR.UTF-8
+ko_KR: ko_KR.eucKR
+KO_KR: ko_KR.eucKR
+ko_KR.EUC: ko_KR.eucKR
+ko_KR.EUC-KR: ko_KR.eucKR
+ko_KR.euc: ko_KR.eucKR
+ko_KR.euckr: ko_KR.eucKR
+ko_KR.utf8: ko_KR.UTF-8
+KO_KR.UTF-8: ko_KR.UTF-8
+ks: ks_IN.UTF-8
+ks_IN.utf8: ks_IN.UTF-8
+ks_IN@devanagari: ks_IN@devanagari.UTF-8
+ks_IN@devanagari.utf8: ks_IN@devanagari.UTF-8
+kw: kw_GB.ISO8859-1
+kw_GB: kw_GB.ISO8859-1
+kw_GB.iso88591: kw_GB.ISO8859-1
+kw_GB.ISO-8859-1: kw_GB.ISO8859-1
+kw_GB.iso885914: kw_GB.ISO8859-14
+kw_GB.ISO-8859-14: kw_GB.ISO8859-14
+kw_GB.iso885915: kw_GB.ISO8859-15
+kw_GB.ISO-8859-15: kw_GB.ISO8859-15
+ky: ky_KG.UTF-8
+ky_KG: ky_KG.UTF-8
+ky_KG.UTF-8: ky_KG.UTF-8
+lo: lo_LA.MULELAO-1
+lo_LA: lo_LA.MULELAO-1
+lo_LA.cp1133: lo_LA.IBM-CP1133
+lo_LA.ibmcp1133: lo_LA.IBM-CP1133
+lo_LA.mulelao1: lo_LA.MULELAO-1
+#if defined(VeryOldFreeBSD)
+XCOMM most locales in FreeBSD 2.1.[56] do not work, allow use of FreeBSD's
+XCOMM generic Latin-1 locale name. N.B. "lt" is a bad code to use for a
+XCOMM generic Latin-1 locale anyway because it is the country code for
+XCOMM Lithuania, which by default uses Latin-7 (ISO-8859-13).
+lt_LN.ISO_8859-1: lt_LN.ISO8859-1
+#endif
+lt: lt_LT.ISO8859-13
+lt_LT: lt_LT.ISO8859-13
+lt_LT.iso88594: lt_LT.ISO8859-4
+lt_LT.ISO-8859-4: lt_LT.ISO8859-4
+lt_LT.ISO_8859-4: lt_LT.ISO8859-4
+lt_LT.iso885913: lt_LT.ISO8859-13
+lt_LT.ISO-8859-13: lt_LT.ISO8859-13
+lt_LT.ISO_8859-13: lt_LT.ISO8859-13
+lt_LT.utf8: lt_LT.UTF-8
+lv: lv_LV.ISO8859-13
+lv_LV: lv_LV.ISO8859-13
+lv_LV.iso88594: lv_LV.ISO8859-4
+lv_LV.ISO-8859-4: lv_LV.ISO8859-4
+lv_LV.iso885913: lv_LV.ISO8859-13
+lv_LV.ISO-8859-13: lv_LV.ISO8859-13
+lv_LV.ISO_8859-13: lv_LV.ISO8859-13
+lv_LV.utf8: lv_LV.UTF-8
+mai: mai_IN.UTF-8
+mai_IN.utf8: mai_IN.UTF-8
+mi: mi_NZ.ISO8859-1
+mi_NZ: mi_NZ.ISO8859-1
+mi_NZ.iso88591: mi_NZ.ISO8859-1
+mk: mk_MK.ISO8859-5
+mk_MK: mk_MK.ISO8859-5
+mk_MK.iso88595: mk_MK.ISO8859-5
+mk_MK.ISO-8859-5: mk_MK.ISO8859-5
+mk_MK.cp1251: mk_MK.CP1251
+mk_MK.microsoftcp1251: mk_MK.CP1251
+mk_MK.microsoft-cp1251: mk_MK.CP1251
+mk_MK.MICROSOFT-CP1251: mk_MK.CP1251
+mk_MK.utf8: mk_MK.UTF-8
+ml: ml_IN.UTF-8
+ml_IN.utf8: ml_IN.UTF-8
+mr: mr_IN.UTF-8
+mr_IN: mr_IN.UTF-8
+mr_IN.utf8: mr_IN.UTF-8
+ms: ms_MY.ISO8859-1
+ms_MY: ms_MY.ISO8859-1
+ms_MY.iso88591: ms_MY.ISO8859-1
+ms_MY.ISO-8859-1: ms_MY.ISO8859-1
+mt: mt_MT.ISO8859-3
+mt_MT: mt_MT.ISO8859-3
+mt_MT.ISO-8859-3: mt_MT.ISO8859-3
+nb: nb_NO.ISO8859-1
+nb_NO: nb_NO.ISO8859-1
+nb_NO.88591: nb_NO.ISO8859-1
+nb_NO.iso88591: nb_NO.ISO8859-1
+nb_NO.ISO-8859-1: nb_NO.ISO8859-1
+nb_NO.iso885915: nb_NO.ISO8859-15
+nb_NO.ISO-8859-15: nb_NO.ISO8859-15
+nb_NO.utf8: nb_NO.UTF-8
+ne_NP.utf8: ne_NP.UTF-8
+nl: nl_NL.ISO8859-1
+nl.ISO8859-15: nl_NL.ISO8859-15
+nl_BE: nl_BE.ISO8859-1
+nl_BE.88591: nl_BE.ISO8859-1
+nl_BE.88591.en: nl_BE.ISO8859-1
+nl_BE.iso88591: nl_BE.ISO8859-1
+nl_BE.ISO-8859-1: nl_BE.ISO8859-1
+nl_BE.ISO_8859-1: nl_BE.ISO8859-1
+nl_BE.iso885915: nl_BE.ISO8859-15
+nl_BE.ISO-8859-15: nl_BE.ISO8859-15
+nl_BE.ISO-8859-15@euro: nl_BE.ISO8859-15
+nl_BE@euro: nl_BE.ISO8859-15
+nl_BE.utf8: nl_BE.UTF-8
+nl_BE.UTF-8@euro: nl_BE.UTF-8
+nl_NL: nl_NL.ISO8859-1
+nl_NL.88591: nl_NL.ISO8859-1
+nl_NL.88591.en: nl_NL.ISO8859-1
+nl_NL.iso88591: nl_NL.ISO8859-1
+nl_NL.ISO-8859-1: nl_NL.ISO8859-1
+nl_NL.ISO_8859-1: nl_NL.ISO8859-1
+nl_NL.iso885915: nl_NL.ISO8859-15
+nl_NL.ISO-8859-15: nl_NL.ISO8859-15
+nl_NL.ISO-8859-15@euro: nl_NL.ISO8859-15
+nl_NL@euro: nl_NL.ISO8859-15
+nl_NL.utf8: nl_NL.UTF-8
+nl_NL.UTF-8@euro: nl_NL.UTF-8
+nn: nn_NO.ISO8859-1
+nn_NO: nn_NO.ISO8859-1
+nn_NO.88591: nn_NO.ISO8859-1
+nn_NO.ISO-8859-1: nn_NO.ISO8859-1
+nn_NO.ISO_8859-1: nn_NO.ISO8859-1
+nn_NO.iso885915: nn_NO.ISO8859-15
+nn_NO.ISO-8859-15: nn_NO.ISO8859-15
+nn_NO.utf8: nn_NO.UTF-8
+no: no_NO.ISO8859-1
+no_NO: no_NO.ISO8859-1
+no_NO.88591: no_NO.ISO8859-1
+no_NO.88591.en: no_NO.ISO8859-1
+no_NO.iso88591: no_NO.ISO8859-1
+no_NO.ISO-8859-1: no_NO.ISO8859-1
+no_NO.ISO8859-1@bokmal: no_NO.ISO8859-1
+no_NO.ISO8859-1@nynorsk: no_NO.ISO8859-1
+no_NO.iso885915: no_NO.ISO8859-15
+no_NO.ISO-8859-15: no_NO.ISO8859-15
+no_NO.utf8: no_NO.UTF-8
+nr: nr_ZA.ISO8859-1
+nr_ZA: nr_ZA.ISO8859-1
+nr_ZA.iso88591: nr_ZA.ISO8859-1
+nr_ZA.utf8: nr_ZA.UTF-8
+nso: nso_ZA.ISO8859-15
+nso_ZA: nso_ZA.ISO8859-15
+nso_ZA.iso885915: nso_ZA.ISO8859-15
+nso_ZA.utf8: nso_ZA.UTF-8
+ny: ny_NO.ISO8859-1
+ny_NO: ny_NO.ISO8859-1
+ny_NO.88591: ny_NO.ISO8859-1
+ny_NO.ISO_8859-1: ny_NO.ISO8859-1
+ny_NO.iso885915: ny_NO.ISO8859-15
+no@nynorsk: ny_NO.ISO8859-1
+nynorsk: nn_NO.ISO8859-1
+oc: oc_FR.ISO8859-1
+oc_FR: oc_FR.ISO8859-1
+oc_FR.iso88591: oc_FR.ISO8859-1
+oc_FR.ISO-8859-1: oc_FR.ISO8859-1
+oc_FR.iso885915: oc_FR.ISO8859-15
+oc_FR.ISO-8859-15: oc_FR.ISO8859-15
+oc_FR@euro: oc_FR.ISO8859-15
+or: or_IN.UTF-8
+or_IN.utf8: or_IN.UTF-8
+pa: pa_IN.UTF-8
+pa_IN.utf8: pa_IN.UTF-8
+pa_PK.utf8: pa_PK.UTF-8
+pd: pd_US.ISO8859-1
+pd_DE: pd_DE.ISO8859-1
+pd_US: pd_US.ISO8859-1
+pd_DE.iso88591: pd_DE.ISO8859-1
+pd_US.iso88591: pd_US.ISO8859-1
+pd_DE.iso885915: pd_DE.ISO8859-15
+pd_US.iso885915: pd_US.ISO8859-15
+ph: ph_PH.ISO8859-1
+ph_PH: ph_PH.ISO8859-1
+ph_PH.iso88591: ph_PH.ISO8859-1
+pl: pl_PL.ISO8859-2
+pl.UTF-8: pl_PL.UTF-8
+pl_PL: pl_PL.ISO8859-2
+pl_PL.iso88592: pl_PL.ISO8859-2
+pl_PL.ISO-8859-2: pl_PL.ISO8859-2
+pl_PL.utf8: pl_PL.UTF-8
+pp: pp_AN.ISO8859-1
+pp_AN: pp_AN.ISO8859-1
+pp_AN.iso88591: pp_AN.ISO8859-1
+pt: pt_PT.ISO8859-1
+pt.ISO8859-15: pt_PT.ISO8859-15
+pt_BR: pt_BR.ISO8859-1
+pt_BR.88591: pt_BR.ISO8859-1
+pt_BR.88591.en: pt_BR.ISO8859-1
+pt_BR.iso88591: pt_BR.ISO8859-1
+pt_BR.ISO-8859-1: pt_BR.ISO8859-1
+pt_BR.ISO_8859-1: pt_BR.ISO8859-1
+pt_BR.iso885915: pt_BR.ISO8859-15
+pt_BR.utf8: pt_BR.UTF-8
+pt_PT: pt_PT.ISO8859-1
+pt_PT.88591: pt_PT.ISO8859-1
+pt_PT.88591.en: pt_PT.ISO8859-1
+pt_PT.iso88591: pt_PT.ISO8859-1
+pt_PT.ISO-8859-1: pt_PT.ISO8859-1
+pt_PT.ISO_8859-1: pt_PT.ISO8859-1
+pt_PT.iso885915: pt_PT.ISO8859-15
+pt_PT.ISO-8859-15: pt_PT.ISO8859-15
+pt_PT.ISO-8859-15@euro: pt_PT.ISO8859-15
+pt_PT@euro: pt_PT.ISO8859-15
+pt_PT.utf8: pt_PT.UTF-8
+pt_PT.UTF-8@euro: pt_PT.UTF-8
+ro: ro_RO.ISO8859-2
+ro_RO: ro_RO.ISO8859-2
+ro_RO.iso88592: ro_RO.ISO8859-2
+ro_RO.ISO-8859-2: ro_RO.ISO8859-2
+ro_RO.utf8: ro_RO.UTF-8
+ru: ru_RU.UTF-8
+ru.koi8-r: ru_RU.KOI8-R
+ru.UTF-8: ru_RU.UTF-8
+ru_RU: ru_RU.UTF-8
+ru_RU.utf8: ru_RU.UTF-8
+ru_RU.iso88595: ru_RU.ISO8859-5
+ru_RU.ISO-8859-5: ru_RU.ISO8859-5
+ru_RU.koi8r: ru_RU.KOI8-R
+ru_RU.cp1251: ru_RU.CP1251
+ru_RU.microsoftcp1251: ru_RU.CP1251
+ru_RU.microsoft-cp1251: ru_RU.CP1251
+ru_RU.MICROSOFT-CP1251: ru_RU.CP1251
+#if defined(INCLUDE_ru_SU)
+XCOMM ru_SU is redundant now
+ru_SU: ru_RU.KOI8-R
+ru_SU.ISO8859-5: ru_RU.ISO8859-5
+ru_SU.KOI8-R: ru_RU.KOI8-R
+#endif
+ru_UA: ru_UA.KOI8-U
+ru_UA.koi8u: ru_UA.KOI8-U
+ru_UA.cp1251: ru_UA.CP1251
+ru_UA.microsoftcp1251: ru_UA.CP1251
+ru_UA.microsoft-cp1251: ru_UA.CP1251
+ru_UA.MICROSOFT-CP1251: ru_UA.CP1251
+rw: rw_RW.ISO8859-1
+rw_RW: rw_RW.ISO8859-1
+rw_RW.iso8859-1: rw_RW.ISO8859-1
+rw_RW.ISO-8859-1: rw_RW.ISO8859-1
+rw_RW.utf8: rw_RW.UTF-8
+sd: sd_IN.UTF-8
+sd_IN.utf8: sd_IN.UTF-8
+sd: sd_IN@devanagari.UTF-8
+sd_IN@devanagari.utf8: sd_IN@devanagari.UTF-8
+se_NO: se_NO.UTF-8
+se_NO.utf8: se_NO.UTF-8
+XCOMM sh was the old ISO code for Serbo-Croatian (now individual sr and hr).
+XCOMM YU was the old ISO code for Yugoslavia (later CS for Serbia&Montenegro).
+XCOMM CS was the old ISO code for Serbia&Montenegro (now separate RS and ME).
+XCOMM These lines should be deleted in the future.
+sh: sr_RS.UTF-8@latin
+sh_BA.ISO8859-2@bosnia: sr_CS.ISO8859-2
+sh_HR.iso88592: hr_HR.ISO8859-2
+sh_YU: sr_RS.UTF-8@latin
+sh_YU.utf8: sr_RS.UTF-8@latin
+si: si_LK.UTF-8
+si_LK: si_LK.UTF-8
+sk: sk_SK.ISO8859-2
+sk_SK: sk_SK.ISO8859-2
+sk_SK.iso88592: sk_SK.ISO8859-2
+sk_SK.ISO-8859-2: sk_SK.ISO8859-2
+sk_SK.utf8: sk_SK.UTF-8
+sl: sl_SI.ISO8859-2
+sl_SI: sl_SI.ISO8859-2
+sl_SI.iso88592: sl_SI.ISO8859-2
+sl_SI.ISO-8859-2: sl_SI.ISO8859-2
+sl_SI.utf8: sl_SI.UTF-8
+sq: sq_AL.ISO8859-2
+sq_AL: sq_AL.ISO8859-2
+sq_AL.iso88592: sq_AL.ISO8859-2
+sq_AL.ISO-8859-2: sq_AL.ISO8859-2
+sq_AL.utf8: sq_AL.UTF-8
+XCOMM YU was the old ISO code for Yugoslavia (later CS for Serbia&Montenegro).
+XCOMM CS was the old ISO code for Serbia&Montenegro (now separate RS and ME).
+XCOMM Some of these lines should be deleted in the future.
+sr: sr_RS.UTF-8
+sr_YU: sr_RS.UTF-8@latin
+sr@cyrillic: sr_RS.UTF-8
+sr_YU@cyrillic: sr_RS.UTF-8
+sr_YU.utf8: sr_RS.UTF-8
+sr_YU.UTF-8@cyrillic: sr_RS.UTF-8
+sr_CS: sr_RS.UTF-8
+sr@Latn: sr_RS.UTF-8@latin
+sr_CS@Latn: sr_RS.UTF-8@latin
+sr_CS.utf8: sr_RS.UTF-8
+sr_CS.UTF-8@Latn: sr_RS.UTF-8@latin
+sr_RS: sr_RS.UTF-8
+sr@latin: sr_RS.UTF-8@latin
+sr_RS@latin: sr_RS.UTF-8@latin
+sr_RS@Latn: sr_RS.UTF-8@latin
+sr_RS.UTF-8@Latn: sr_RS.UTF-8@latin
+sr_RS.utf8: sr_RS.UTF-8
+sr_ME: sr_ME.UTF-8
+sr_ME.utf8: sr_ME.UTF-8
+ss: ss_ZA.ISO8859-1
+ss_ZA: ss_ZA.ISO8859-1
+ss_ZA.iso88591: ss_ZA.ISO8859-1
+ss_ZA.utf8: ss_ZA.UTF-8
+st: st_ZA.ISO8859-1
+st_ZA: st_ZA.ISO8859-1
+st_ZA.iso88591: st_ZA.ISO8859-1
+st_ZA.utf8: st_ZA.UTF-8
+sv: sv_SE.ISO8859-1
+sv.ISO8859-15: sv_SE.ISO8859-15
+sv.UTF-8: sv_SE.UTF-8
+sv_FI: sv_FI.ISO8859-1
+sv_FI.iso88591: sv_FI.ISO8859-1
+sv_FI.ISO-8859-1: sv_FI.ISO8859-1
+sv_FI.iso885915: sv_FI.ISO8859-15
+sv_FI.ISO-8859-15: sv_FI.ISO8859-15
+sv_FI.ISO-8859-15@euro: sv_FI.ISO8859-15
+sv_FI@euro: sv_FI.ISO8859-15
+sv_FI.UTF-8@euro: sv_FI.UTF-8
+sv_FI.utf8: sv_FI.UTF-8
+sv_SE: sv_SE.ISO8859-1
+sv_SE.88591: sv_SE.ISO8859-1
+sv_SE.88591.en: sv_SE.ISO8859-1
+sv_SE.iso88591: sv_SE.ISO8859-1
+sv_SE.ISO-8859-1: sv_SE.ISO8859-1
+sv_SE.ISO_8859-1: sv_SE.ISO8859-1
+sv_SE.iso885915: sv_SE.ISO8859-15
+sv_SE.ISO-8859-15: sv_SE.ISO8859-15
+sv_SE@euro: sv_SE.ISO8859-15
+sv_SE.utf8: sv_SE.UTF-8
+ta: ta_IN.TSCII-0
+ta_IN: ta_IN.TSCII-0
+ta_IN.tscii: ta_IN.TSCII-0
+ta_IN.tscii0: ta_IN.TSCII-0
+te: te_IN.UTF-8
+te_IN.utf8: te_IN.UTF-8
+tg: tg_TJ.KOI8-C
+tg_TJ: tg_TJ.KOI8-C
+tg_TJ.koi8c: tg_TJ.KOI8-C
+th: th_TH.ISO8859-11
+th_TH: th_TH.ISO8859-11
+th_TH.ISO-8859-11: th_TH.ISO8859-11
+th_TH.tis620: th_TH.TIS620
+th_TH.TIS-620: th_TH.TIS620
+th_TH.TACTIS: th_TH.TIS620
+th_TH.utf8: th_TH.UTF-8
+tl: tl_PH.ISO8859-1
+tl_PH: tl_PH.ISO8859-1
+tl_PH.iso88591: tl_PH.ISO8859-1
+tl_PH.ISO-8859-1: tl_PH.ISO8859-1
+tn: tn_ZA.ISO8859-15
+tn_ZA: tn_ZA.ISO8859-15
+tn_ZA.iso8859-15: tn_ZA.ISO8859-15
+tn_ZA.utf8: tn_ZA.UTF-8
+tr: tr_TR.ISO8859-9
+tr_TR: tr_TR.ISO8859-9
+TR_TR: tr_TR.ISO8859-9
+tr_TR.iso88599: tr_TR.ISO8859-9
+tr_TR.ISO-8859-9: tr_TR.ISO8859-9
+tr_TR.utf8: tr_TR.UTF-8
+TR_TR.utf8: tr_TR.UTF-8
+ts: ts_ZA.ISO8859-1
+ts_ZA: ts_ZA.ISO8859-1
+ts_ZA.iso88591: ts_ZA.ISO8859-1
+ts_ZA.utf8: ts_ZA.UTF-8
+tt: tt_RU.TATAR-CYR
+tt_RU: tt_RU.TATAR-CYR
+tt_RU.tatarcyr: tt_RU.TATAR-CYR
+tt_RU.koi8c: tt_RU.KOI8-C
+uk: uk_UA.KOI8-U
+uk_UA: uk_UA.KOI8-U
+uk_UA.iso88595: uk_UA.ISO8859-5
+uk_UA.koi8u: uk_UA.KOI8-U
+uk_UA.cp1251: uk_UA.CP1251
+uk_UA.microsoftcp1251: uk_UA.CP1251
+uk_UA.microsoft-cp1251: uk_UA.CP1251
+uk_UA.MICROSOFT-CP1251: uk_UA.CP1251
+uk_UA.utf8: uk_UA.UTF-8
+ur: ur_IN.UTF-8
+ur_IN.utf8: ur_IN.UTF-8
+ur: ur_PK.CP1256
+ur_PK: ur_PK.CP1256
+ur_PK.cp1256: ur_PK.CP1256
+ur_PK.microsoftcp1256: ur_PK.CP1256
+ur_PK.microsoft-cp1256: ur_PK.CP1256
+ur_PK.MICROSOFT-CP1256: ur_PK.CP1256
+uz: uz_UZ.UTF-8
+uz_UZ: uz_UZ.UTF-8
+uz_UZ.ISO-8859-1: uz_UZ.ISO8859-1
+uz_UZ@cyrillic: uz_UZ.UTF-8
+uz_UZ.UTF-8@cyrillic: uz_UZ.UTF-8
+ve: ve_ZA.UTF-8
+ve_ZA: ve_ZA.UTF-8
+ve_ZA.utf8: ve_ZA.UTF-8
+vi: vi_VN.TCVN
+vi_VN: vi_VN.TCVN
+Vi_VN: vi_VN.TCVN
+VI_VN: vi_VN.TCVN
+vi_VN.tcvn: vi_VN.TCVN
+vi_VN.tcvn5712: vi_VN.TCVN
+vi_VN.viscii: vi_VN.VISCII
+vi_VN.viscii111: vi_VN.VISCII
+vi_VN.utf8: vi_VN.UTF-8
+VI_VN.UTF-8: vi_VN.UTF-8
+wa: wa_BE.ISO8859-1
+wa_BE: wa_BE.ISO8859-1
+wa_BE.iso88591: wa_BE.ISO8859-1
+wa_BE.ISO-8859-1: wa_BE.ISO8859-1
+wa_BE.iso885915: wa_BE.ISO8859-15
+wa_BE.ISO-8859-15: wa_BE.ISO8859-15
+wa_BE.ISO-8859-15@euro: wa_BE.ISO8859-15
+wa_BE@euro: wa_BE.ISO8859-15
+xh: xh_ZA.ISO8859-1
+xh_ZA: xh_ZA.ISO8859-1
+xh_ZA.iso88591: xh_ZA.ISO8859-1
+xh_ZA.utf8: xh_ZA.UTF-8
+yi: yi_US.CP1255
+yi_US: yi_US.CP1255
+yi_US.cp1255: yi_US.CP1255
+yi_US.microsoftcp1255: yi_US.CP1255
+yi_US.microsoft-cp1255: yi_US.CP1255
+yi_US.MICROSOFT-CP1255: yi_US.CP1255
+zh_CN: zh_CN.gb2312
+zh_CN.Big5: zh_TW.big5
+zh_CN.EUC: zh_CN.eucCN
+zh_CN.GB2312: zh_CN.gb2312
+zh_CN.GBK: zh_CN.gbk
+zh_CN.GB18030: zh_CN.gb18030
+zh_CN.big5: zh_TW.big5
+zh_CN.euc: zh_CN.eucCN
+zh_CN.utf8: zh_CN.UTF-8
+ZH_CN.UTF-8: zh_CN.UTF-8
+zh_HK: zh_HK.big5hkscs
+zh_HK.BIG5HK: zh_HK.big5hkscs
+zh_HK.Big5hkscs: zh_HK.big5hkscs
+zh_HK.Big5-hkscs: zh_HK.big5hkscs
+zh_HK.Big5_hkscs: zh_HK.big5hkscs
+zh_HK.Big5HKSCS: zh_HK.big5hkscs
+zh_HK.BIG5-HKSCS: zh_HK.big5hkscs
+zh_HK.BIG5_HKSCS: zh_HK.big5hkscs
+zh_HK.Big5: zh_HK.big5
+zh_HK.utf8: zh_HK.UTF-8
+ZH_HK.UTF-8: zh_HK.UTF-8
+ZH_SG.UTF-8: zh_SG.UTF-8
+zh_TW: zh_TW.big5
+zh_TW.Big5: zh_TW.big5
+zh_TW.BIG5: zh_TW.big5
+Zh_TW.big5: zh_TW.big5
+zh_TW.EUC: zh_TW.eucTW
+zh_TW.EUC-TW: zh_TW.eucTW
+zh_TW.utf8: zh_TW.UTF-8
+ZH_TW.UTF-8: zh_TW.UTF-8
+zu: zu_ZA.ISO8859-1
+zu_ZA: zu_ZA.ISO8859-1
+zu_ZA.iso88591: zu_ZA.ISO8859-1
+zu_ZA.utf8: zu_ZA.UTF-8
+
+XCOMM The following locale names are used in SCO 3.0
+english_uk.8859: en_GB.ISO8859-1
+english_us.8859: en_US.ISO8859-1
+english_us.ascii: en_US.ISO8859-1
+french_france.8859: fr_FR.ISO8859-1
+german_germany.8859: de_DE.ISO8859-1
+portuguese_brazil.8859: pt_BR.ISO8859-1
+spanish_spain.8859: es_ES.ISO8859-1
+XCOMM The following locale names are used in HPUX 9.x
+american.iso88591: en_US.ISO8859-1
+arabic.iso88596: ar_AA.ISO8859-6
+bokmal: nb_NO.ISO8859-1
+bokmål: nb_NO.ISO8859-1
+bulgarian: bg_BG.CP1251
+c-french.iso88591: fr_CA.ISO8859-1
+catalan: ca_ES.ISO8859-1
+chinese-s: zh_CN.eucCN
+chinese-t: zh_TW.eucTW
+croatian: hr_HR.ISO8859-2
+czech: cs_CZ.ISO8859-2
+danish: da_DK.ISO8859-1
+dansk: da_DK.ISO8859-1
+danish.iso88591: da_DK.ISO8859-1
+deutsch: de_DE.ISO8859-1
+dutch: nl_NL.ISO8859-1
+dutch.iso88591: nl_BE.ISO8859-1
+eesti: et_EE.ISO8859-1
+english.iso88591: en_EN.ISO8859-1
+estonian: et_EE.ISO8859-1
+finnish: fi_FI.ISO8859-1
+finnish.iso88591: fi_FI.ISO8859-1
+français: fr_FR.ISO8859-1
+french: fr_FR.ISO8859-1
+french.iso88591: fr_CH.ISO8859-1
+galego: gl_ES.ISO8859-1
+galician: gl_ES.ISO8859-1
+german: de_DE.ISO8859-1
+german.iso88591: de_CH.ISO8859-1
+greek: el_GR.ISO8859-7
+greek.iso88597: el_GR.ISO8859-7
+hebrew: iw_IL.ISO8859-8
+hebrew.iso88598: iw_IL.ISO8859-8
+hrvatski: hr_HR.ISO8859-2
+hungarian: hu_HU.ISO8859-2
+icelandic.iso88591: is_IS.ISO8859-1
+icelandic: is_IS.ISO8859-1
+italian: it_IT.ISO8859-1
+italian.iso88591: it_IT.ISO8859-1
+japanese: ja_JP.eucJP
+japanese.euc: ja_JP.eucJP
+japanese.sjis: ja_JP.SJIS
+korean: ko_KR.eucKR
+korean.euc: ko_KR.eucKR
+lithuanian: lt_LT.ISO8859-13
+norwegian: no_NO.ISO8859-1
+norwegian.iso88591: no_NO.ISO8859-1
+polish: pl_PL.ISO8859-2
+portuguese: pt_PT.ISO8859-1
+portuguese.iso88591: pt_PT.ISO8859-1
+romanian: ro_RO.ISO8859-2
+rumanian: ro_RO.ISO8859-2
+russian: ru_RU.ISO8859-5
+serbocroatian: sr_RS.UTF-8@latin
+sinhala: si_LK.UTF-8
+slovak: sk_SK.ISO8859-2
+slovene: sl_SI.ISO8859-2
+slovenian: sl_SI.ISO8859-2
+spanish: es_ES.ISO8859-1
+spanish.iso88591: es_ES.ISO8859-1
+swedish: sv_SE.ISO8859-1
+swedish.iso88591: sv_SE.ISO8859-1
+turkish: tr_TR.ISO8859-9
+turkish.iso88599: tr_TR.ISO8859-9
+thai: th_TH.ISO8859-11
+univ.utf8: en_US.UTF-8
+XCOMM Digital Unix utf
+universal.utf8@ucs4: en_US.UTF-8
+XCOMM Solaris and SunOS have iso_8859_1 and iso_8859_15 LC_CTYPES
+XCOMM to augment LANG=C
+iso_8859_1: en_US.ISO8859-1
+iso_8859_15: en_US.ISO8859-15
+#ifdef WIN32
+XCOMM Microsoft Windows/NT 4.0 SP3
+XCOMM parser doesn't grok embedded spaces in locale name
+Afrikaans_South Africa.1252: af_ZA.iso8859-1
+Arabic_Bahrain.1256: ar_BH.iso8859-6
+Arabic_Algeria.1256: ar_DZ.iso8859-6
+Arabic_Egypt.1256: ar_EG.iso8859-6
+Arabic_Iraq.1256: ar_IQ.iso8859-6
+Arabic_Jordan.1256: ar_JO.iso8859-6
+Arabic_Kuwait.1256: ar_KW.iso8859-6
+Arabic_Lebanon.1256: ar_LB.iso8859-6
+Arabic_Libya.1256: ar_LY.iso8859-6
+Arabic_Morocco.1256: ar_MA.iso8859-6
+Arabic_Oman.1256: ar_OM.iso8859-6
+Arabic_Qatar.1256: ar_QA.iso8859-6
+Arabic_Saudi Arabia.1256: ar_SA.iso8859-6
+Arabic_Tunisia.1256: ar_TN.iso8859-6
+Arabic_Yemen.1256: ar_YE.iso8859-6
+Belarusian_Belarus.1251: be_BY.iso8859-5
+Bulgarian_Bulgaria.1251: bg_BG.iso8859-5
+Catalan_Andorra.1252: ca_AD.iso8859-1
+Catalan_Spain.1252: ca_ES.iso8859-1
+Catalan_France.1252: ca_FR.iso8859-1
+Catalan_Italy.1252: ca_IT.iso8859-1
+Czech_Czech Republic.1250: cs_CZ.iso8859-2
+Danish_Denmark.1252: da_DK.iso8859-1
+German_Austria.1252: de_AT.iso8859-1
+German_Switzerland.1252: de_CH.iso8859-1
+German_Germany.1252: de_DE.iso8859-1
+German_Liechtenstein.1252: de_LI.iso8859-1
+German_Luxembourg.1252: de_LU.iso8859-1
+Greek_Greece.1253: el_GR.iso8859-7
+English_Australia.1252: en_AU.iso8859-1
+English_Belize.1252: en_BZ.iso8859-1
+English_Canada.1252: en_CA.iso8859-1
+English_Ireland.1252: en_IE.iso8859-1
+English_Jamaica.1252: en_JM.iso8859-1
+English_New Zealand.1252: en_NZ.iso8859-1
+English_Trinidad y Tobago.1252: en_TT.iso8859-1
+English_United Kingdom.1252: en_UK.iso8859-1
+English_United States.1252: en_US.iso8859-1
+English_South Africa.1252: en_ZA.iso8859-1
+Spanish_Argentina.1252: es_AR.iso8859-1
+Spanish_Bolivia.1252: es_BO.iso8859-1
+Spanish_Chile.1252: es_CL.iso8859-1
+Spanish_Colombia.1252: es_CO.iso8859-1
+Spanish_Costa Rica.1252: es_CR.iso8859-1
+Spanish_Dominican Republic.1252: es_DO.iso8859-1
+Spanish_Ecuador.1252: es_EC.iso8859-1
+Spanish - Modern Sort_Spain.1252: es_ES.iso8859-1
+Spanish - Traditional Sort_Spain.1252: es_ES.iso8859-1
+Spanish_Guatemala.1252: es_GT.iso8859-1
+Spanish_Honduras.1252: es_HN.iso8859-1
+Spanish_Mexican.1252: es_MX.iso8859-1
+Spanish_Nicaragua.1252: es_NI.iso8859-1
+Spanish_Panama.1252: es_PA.iso8859-1
+Spanish_Paraguay.1252: es_PY.iso8859-1
+Spanish_Peru.1252: es_PE.iso8859-1
+Spanish_Puerto Rico.1252: es_PR.iso8859-1
+Spanish_El Salvador.1252: es_SV.iso8859-1
+Spanish_Uruguay.1252: es_UY.iso8859-1
+Spanish_Venezuela.1252: es_VE.iso8859-1
+Estonian_Estonia.1257: et_EE.iso8859-13
+Basque_Spain.1252: eu_ES.iso8859-1
+Finnish_Finland.1252: fi_FI.iso8859-1
+French_Belgium.1252: fr_BE.iso8859-1
+French_Canada.1252: fr_CA.iso8859-1
+French_Switzerland.1252: fr_CH.iso8859-1
+French_France.1252: fr_FR.iso8859-1
+French_Luxembourg.1252: fr_LU.iso8859-1
+Faeroese_Faeroe Islands.1252: fo_FO.iso8859-1
+Hebrew_Israel.1255: he_IL.iso8859-8
+Croatian_Croatia.1250: hr_HR.iso8859-2
+Hungarian_Hungary.1250: hu_HU.iso8859-2
+Indonesian_Indonesia.1252: id_ID.iso8859-1
+Icelandic_Iceland.1252: is_IS.iso8859-1
+Italian_Switzerland.1252: it_CH.iso8859-1
+Italian_Italy.1252: it_IT.iso8859-1
+Japanese_Japan.932: ja_JP.SJIS
+Korean_Korea.949: ko_KR.EUC
+Lithuanian_Lithuania.1257: lt_LT.iso8859-13
+Latvian_Latvia.1257: lv_LV.iso8859-13
+Dutch_Belgium.1252: nl_BE.iso8859-1
+Dutch_Netherlands.1252: nl_NL.iso8859-1
+Norwegian (Nynorsk)_Norway.1252: no_NO.iso8859-1
+Norwegian (Bokmål)_Norway.1252: no_NO.iso8859-1
+Polish_Poland.1250: pl_PL.iso8859-2
+Portuguese_Brazil.1252: pt_BR.iso8859-1
+Portuguese_Portugal.1252: pt_PT.iso8859-1
+Romanian_Romania.1250: ro_RO.iso8859-2
+Russian_Russia.1251: ru_RU.iso8859-5
+Slovak_Slovakia.1250: sk_SK.iso8859-2
+Slovene_Slovenia.1250: sl_SI.iso8859-2
+Albanian_Albania.1250: sq_AL.iso8859-2
+Serbian (Latin)_Serbia.1250: sr_RS.UTF-8@latin
+Swedish_Finland.1252: sv_FI.iso8859-1
+Swedish_Sweden.1252: sv_SE.iso8859-1
+Turkish_Turkey.1254: tr_TR.iso8859-9
+Ukrainian_Ukraine.1251: uk_UA.iso8859-5
+Chinese(PRC)_People's Republic of China.936: zh_CN.EUC
+Chinese(PRC)_Hong Kong.950: zh_HK.EUC
+Chinese(Singapore)_Signapore.936: zh_SG.EUC
+Chinese(Taiwan)_Taiwan.950: zh_TW.EUC
+#endif
+XCOMM Other miscellaneous locale names
+ISO8859-1: en_US.ISO8859-1
+ISO-8859-1: en_US.ISO8859-1
+#ifndef __uxp__
+japan: ja_JP.eucJP
+#else
+japan: ja_JP.U90
+#endif
+Japanese-EUC: ja_JP.eucJP
diff --git a/libX11/nls/pt_BR.UTF-8/Compose.pre b/libX11/nls/pt_BR.UTF-8/Compose.pre
index bd938aa1b..641c96999 100644
--- a/libX11/nls/pt_BR.UTF-8/Compose.pre
+++ b/libX11/nls/pt_BR.UTF-8/Compose.pre
@@ -74,7 +74,7 @@ XCOMM on some keyboards.
<Multi_key> <space> <minus> : "~" asciitilde
XCOMM Spaces
-<Multi_key> <space> <space> : " " nobreakspace # NO-BREAK SPACE
+<Multi_key> <space> <space> : "\240" nobreakspace # NO-BREAK SPACE
<Multi_key> <space> <period>: " " U2008 # PUNCTUATION SPACE
<Multi_key> <o> <c> : "©" copyright
diff --git a/libX11/specs/XIM/xim.xml b/libX11/specs/XIM/xim.xml
index 23558ea39..fa4941153 100644
--- a/libX11/specs/XIM/xim.xml
+++ b/libX11/specs/XIM/xim.xml
@@ -374,11 +374,9 @@ synchronization problem between the IM library and the IM Server.
Using this method, the IM library forwards all KeyPress and KeyRelease
events to the IM Server (as required by the Event Flow Control model
described in
-<link linkend="event_flow_control">
-<xref linkend="event_flow_control"></xref></link>)
+<xref linkend='Event_Flow_Control' xrefstyle='select: title'/>)
and synchronizes with the IM Server (as described in
-<link linkend="filtering_events">
-<xref linkend="filtering_events"></xref></link>).
+<xref linkend='Filtering_Events' xrefstyle='select: title'/>).
</para>
</sect3>
@@ -405,8 +403,7 @@ client, and these problems could possibly cause the loss or duplication
of key events. For this reason, the BackEnd method is the core method
supported, and the FrontEnd method is made available as an extension for
performance purposes. (Refer to
-<link linkend="common_extensions">
-<xref linkend="common_extensions"></xref></link>
+<xref linkend="common_extensions" xrefstyle='select: title'/>
for more information.)
</para>
@@ -426,7 +423,7 @@ Fig.1 The Flow of Events
</sect3>
</sect2>
-<sect2 id="event_flow_control">
+<sect2 id='Event_Flow_Control'>
<title>Event Flow Control</title>
<!-- .XS -->
<!-- (SN Event Flow Control -->
@@ -466,8 +463,7 @@ message in order to switch the event flow in the Dynamic Event Flow.
<para>
<!-- .LP -->
The protocol for this process is described in
-<link linkend="event_flow_control_2">
-<xref linkend="event_flow_control_2"></xref></link>.
+<xref linkend='Event_Flow_Control_2' xrefstyle='select: title'/>.
</para>
</sect2>
</sect1>
@@ -511,8 +507,7 @@ The address information retrievable from the
<function>TRANSPORT</function>
target is a transport-specific name.
The preregistered formats for transport-specific names are listed in
-<link linkend="transport_list">
-<xref linkend="transport_list"></xref></link>.
+<xref linkend="transport_list" xrefstyle='select: title'/>.
Additional transport-specific names may be registered with X Consortium.
</para>
@@ -1431,7 +1426,7 @@ XIM_CLOSE_REPLY (IM Server -&gt; IM library)
</sect2>
-<sect2 id="event_flow_control_2">
+<sect2 id='Event_Flow_Control_2'>
<title>Event Flow Control</title>
<!-- .XS -->
<!-- (SN Event Flow Control -->
@@ -1933,7 +1928,7 @@ is an asynchronous request.
</sect2>
-<sect2 id="filtering_events">
+<sect2 id='Filtering_Events'>
<title>Filtering Events</title>
<para>
Event filtering is mainly provided for BackEnd method to allow input method
@@ -3534,7 +3529,7 @@ The arguments of the XChangeProperty are as follows:
<para>
The read/write property ATOM allocates the following strings by
-<function>XInternAtom</function>.
+<olink targetdoc='libX11' targetptr='XInternAtom'><function>XInternAtom</function></olink>.
</para>
<para>
@@ -3844,7 +3839,7 @@ The arguments of the XChangeProperty are as follows:
<para>
(*1) The read/write property ATOM allocates some strings, which are not
-allocated by the client, by <function>XInternAtom</function>.
+allocated by the client, by <olink targetdoc='libX11' targetptr='XInternAtom'><function>XInternAtom</function></olink>.
</para>
<para>
diff --git a/libX11/specs/XKB/ch01.xml b/libX11/specs/XKB/ch01.xml
index 5079a411a..e756d1a96 100644
--- a/libX11/specs/XKB/ch01.xml
+++ b/libX11/specs/XKB/ch01.xml
@@ -1,4 +1,4 @@
-<chapter id='overview'>
+<chapter id='Overview'>
<title>Overview</title>
<para>
@@ -6,7 +6,7 @@ The X Keyboard Extension provides capabilities that are lacking or are
cumbersome in the core X protocol.
</para>
-<sect1 id='core_x_protocol_support_for_keyboards'>
+<sect1 id='Core_X_Protocol_Support_for_Keyboards'>
<title>Core X Protocol Support for Keyboards</title>
<para>
@@ -74,7 +74,7 @@ heuristics.
</itemizedlist>
</sect1>
-<sect1 id='xkb_keyboard_extension_support_for_keyboards'>
+<sect1 id='Xkb_Keyboard_Extension_Support_for_Keyboards'>
<title>Xkb Keyboard Extension Support for Keyboards</title>
<para>
@@ -93,7 +93,7 @@ designed to make keyboards more accessible to people with movement impairments.
</sect1>
-<sect1 id='xkb_extension_components'>
+<sect1 id='Xkb_Extension_Components'>
<title>Xkb Extension Components</title>
<para>
@@ -214,7 +214,7 @@ configuration from its database of named components. Partial reconfiguration
and incremental reconfiguration are both supported.
</para>
-<sect2 id='groups_and_shift_levels'>
+<sect2 id='Groups_and_Shift_Levels'>
<title>Groups and Shift Levels</title>
<para>
@@ -225,7 +225,7 @@ description of groups and levels.
</sect2>
-<sect2 id='radio_groups'>
+<sect2 id='Radio_Groups'>
<title>Radio Groups</title>
<para>
@@ -242,7 +242,7 @@ XkbKB_RadioGroup</emphasis>
</sect2>
</sect1>
-<sect1 id='client_types'>
+<sect1 id='Client_Types'>
<title>Client Types</title>
<para>
@@ -285,7 +285,7 @@ operate properly.
</sect1>
-<sect1 id='compatibility_with_the_core_protocol'>
+<sect1 id='Compatibility_With_the_Core_Protocol'>
<title>Compatibility With the Core Protocol</title>
<para>
@@ -301,7 +301,7 @@ configuration.
</sect1>
-<sect1 id='additional_protocol_errors'>
+<sect1 id='Additional_Protocol_Errors'>
<title>Additional Protocol Errors</title>
<para>
@@ -315,7 +315,7 @@ BadKeyboard</emphasis>
</sect1>
-<sect1 id='extension_library_functions'>
+<sect1 id='Extension_Library_Functions'>
<title>Extension Library Functions</title>
<para>
@@ -345,7 +345,7 @@ directly manipulate the new capabilities.
</para>
-<sect2 id='error_indications'>
+<sect2 id='Error_Indications'>
<title>Error Indications</title>
<para>
diff --git a/libX11/specs/XKB/ch02.xml b/libX11/specs/XKB/ch02.xml
index 55f15a322..57286a475 100644
--- a/libX11/specs/XKB/ch02.xml
+++ b/libX11/specs/XKB/ch02.xml
@@ -1,6 +1,6 @@
-<chapter id='initialization_and_general_programming_information'>
+<chapter id='Initialization_and_General_Programming_Information'>
<title>Initialization and General Programming Information</title>
-<sect1 id='extension_header_files'>
+<sect1 id='Extension_Header_Files'>
<title>Extension Header Files</title>
<para>
The following include files are part of the Xkb standard:
@@ -48,7 +48,7 @@ keyboard geometry descriptions.
</listitem>
</itemizedlist>
</sect1>
-<sect1 id='extension_name'>
+<sect1 id='Extension_Name'>
<title>Extension Name</title>
<para>
The name of the Xkb extension is given in <emphasis>
@@ -70,7 +70,7 @@ XInitExtension</emphasis>
directly.
</para>
</sect1>
-<sect1 id='determining_library_compatibility'>
+<sect1 id='Determining_Library_Compatibility'>
<title>Determining Library Compatibility</title>
<para>
If an application is dynamically linked, both the X server and the client-side
@@ -160,7 +160,7 @@ XkbQueryExtension</emphasis>
</para>
</sect1>
-<sect1 id='initializing_the_keyboard_extension'>
+<sect1 id='Initializing_the_Keyboard_Extension'>
<title>Initializing the Keyboard Extension</title>
<para>
Call <emphasis>
@@ -469,7 +469,7 @@ XkbOD_Success</emphasis>
</itemizedlist>
</sect1>
-<sect1 id='disabling_the_keyboard_extension'>
+<sect1 id='Disabling_the_Keyboard_Extension'>
<title>Disabling the Keyboard Extension</title>
<para>
If a server supports the Xkb extension, the X library normally implements
@@ -538,7 +538,7 @@ False</emphasis>
</para>
</sect1>
-<sect1 id='protocol_errors'>
+<sect1 id='Protocol_Errors'>
<title>Protocol Errors</title>
<para>
Many of the Xkb extension library functions described in this document can
@@ -712,7 +712,7 @@ indicated ID
</table>
</sect1>
-<sect1 id='display_and_device_specifications_in_function_calls'>
+<sect1 id='Display_and_Device_Specifications_in_Function_Calls'>
<title>Display and Device Specifications in Function Calls</title>
<para>
Where a connection to the server is passed as an argument (Display*) and an
diff --git a/libX11/specs/XKB/ch03.xml b/libX11/specs/XKB/ch03.xml
index 5ea411c4e..06d6d93f0 100644
--- a/libX11/specs/XKB/ch03.xml
+++ b/libX11/specs/XKB/ch03.xml
@@ -1,4 +1,4 @@
-<chapter id='data_structures'>
+<chapter id='Data_Structures'>
<title>Data Structures</title>
<para>
@@ -27,7 +27,7 @@ structures. You should use them instead of allocating and freeing the
structures yourself.
</para>
-<sect1 id='allocating_xkb_data_structures'>
+<sect1 id='Allocating_Xkb_Data_Structures'>
<title>Allocating Xkb Data Structures</title>
<para>
@@ -62,7 +62,7 @@ might be invalidated by calls to allocator functions.
</para>
</sect1>
-<sect1 id='adding_data_and_editing_data_structures'>
+<sect1 id='Adding_Data_and_Editing_Data_Structures'>
<title>Adding Data and Editing Data Structures</title>
<para>
@@ -141,7 +141,7 @@ num_</emphasis>
</sect1>
-<sect1 id='making_changes_to_the_servers_keyboard_description'>
+<sect1 id='Making_Changes_to_the_Servers_Keyboard_Description'>
<title>Making Changes to the Server’s Keyboard Description</title>
<para>
@@ -178,7 +178,7 @@ changes data structure causes indeterminate behavior.
</sect1>
-<sect1 id='tracking_keyboard_changes_in_the_server'>
+<sect1 id='Tracking_Keyboard_Changes_in_the_Server'>
<title>Tracking Keyboard Changes in the Server</title>
<para>
@@ -224,7 +224,7 @@ keyboard description.
</para>
</sect1>
-<sect1 id='freeing_data_structures'>
+<sect1 id='Freeing_Data_Structures'>
<title>Freeing Data Structures</title>
<para>
diff --git a/libX11/specs/XKB/ch04.xml b/libX11/specs/XKB/ch04.xml
index dc9065d79..f267ee512 100644
--- a/libX11/specs/XKB/ch04.xml
+++ b/libX11/specs/XKB/ch04.xml
@@ -1,4 +1,4 @@
-<chapter id='xkb_events'>
+<chapter id='Xkb_Events'>
<title>Xkb Events</title>
<para>
@@ -39,7 +39,7 @@ XkbSelectEventDetails</emphasis>
specify have been met.
</para>
-<sect1 id='xkb_event_types'>
+<sect1 id='Xkb_Event_Types'>
<title>Xkb Event Types</title>
<para>
@@ -264,7 +264,7 @@ event.
</table>
</sect1>
-<sect1 id='xkb_event_data_structures'>
+<sect1 id='Xkb_Event_Data_Structures'>
<title>Xkb Event Data Structures</title>
<para>
@@ -334,7 +334,7 @@ chapters where the events are described.
</sect1>
-<sect1 id='selecting_xkb_events'>
+<sect1 id='Selecting_Xkb_Events'>
<title>Selecting Xkb Events</title>
<para>
@@ -635,7 +635,7 @@ XkbSelectEventDetails</emphasis>
</para>
-<sect2 id='event_masks'>
+<sect2 id='Event_Masks'>
<title>Event Masks</title>
<para>
@@ -767,7 +767,7 @@ XkbSelectEvents</emphasis>
</sect2>
</sect1>
-<sect1 id='unified_xkb_event_type'>
+<sect1 id='Unified_Xkb_Event_Type'>
<title>Unified Xkb Event Type</title>
<para>
diff --git a/libX11/specs/XKB/ch05.xml b/libX11/specs/XKB/ch05.xml
index 3785c44d7..626a0c040 100644
--- a/libX11/specs/XKB/ch05.xml
+++ b/libX11/specs/XKB/ch05.xml
@@ -1,4 +1,4 @@
-<chapter id='keyboard_state'>
+<chapter id='Keyboard_State'>
<title>Keyboard State</title>
<para>
@@ -13,7 +13,7 @@ Keyboard state encompasses all of the transitory information necessary to map a
</mediaobject>
-<sect1 id='keyboard_state_description'>
+<sect1 id='Keyboard_State_Description'>
<title>Keyboard State Description</title>
<para>
The Xkb keyboard state is comprised of the state of all keyboard modifiers, the keyboard group, and the state of the pointer buttons. These are grouped into the following components:
@@ -294,10 +294,10 @@ The X11 protocol interpretation of modifiers does not include direct support for
</sect1>
-<sect1 id='changing_the_keyboard_state'>
+<sect1 id='Changing_the_Keyboard_State'>
<title>Changing the Keyboard State</title>
-<sect2 id='changing_modifiers'>
+<sect2 id='Changing_Modifiers'>
<title>Changing Modifiers</title>
<para>
@@ -492,7 +492,7 @@ False</emphasis>
</sect2>
-<sect2 id='changing_groups'>
+<sect2 id='Changing_Groups'>
<title>Changing Groups</title>
<para>
@@ -645,7 +645,7 @@ False</emphasis>
</sect2>
</sect1>
-<sect1 id='determining_keyboard_state'>
+<sect1 id='Determining_Keyboard_State'>
<title>Determining Keyboard State</title>
<para>
@@ -739,7 +739,7 @@ All group values are expressed as group indices in the range [0..3]. Modifiers a
</sect1>
-<sect1 id='tracking_keyboard_state'>
+<sect1 id='Tracking_Keyboard_State'>
<title>Tracking Keyboard State</title>
<para>
diff --git a/libX11/specs/XKB/ch06.xml b/libX11/specs/XKB/ch06.xml
index 3bd77fab2..f74137131 100644
--- a/libX11/specs/XKB/ch06.xml
+++ b/libX11/specs/XKB/ch06.xml
@@ -1,4 +1,4 @@
-<chapter id='complete_keyboard_description'>
+<chapter id='Complete_Keyboard_Description'>
<title>Complete Keyboard Description</title>
<para>
@@ -8,7 +8,7 @@ this single structure and provides references to other sections of this
document that discuss the major Xkb components in detail.
</para>
-<sect1 id='the_xkbdescrec_structure'>
+<sect1 id='The_XkbDescRec_Structure'>
<title>The XkbDescRec Structure</title>
<para>
@@ -189,7 +189,7 @@ XkbDescRec</emphasis>
</table>
</sect1>
-<sect1 id='obtaining_a_keyboard_description_from_the_server'>
+<sect1 id='Obtaining_a_Keyboard_Description_from_the_Server'>
<title>Obtaining a Keyboard Description from the Server</title>
<para>
@@ -277,7 +277,7 @@ XkbFreeKeyboard</emphasis>
</sect1>
-<sect1 id='tracking_changes_to_the_keyboard_description_in_the_server'>
+<sect1 id='Tracking_Changes_to_the_Keyboard_Description_in_the_Server'>
<title>Tracking Changes to the Keyboard Description in the Server</title>
<para>
@@ -288,7 +288,7 @@ tracking changes to the keyboard description.
</sect1>
-<sect1 id='allocating_and_freeing_a_keyboard_description'>
+<sect1 id='Allocating_and_Freeing_a_Keyboard_Description'>
<title>Allocating and Freeing a Keyboard Description</title>
<para>
diff --git a/libX11/specs/XKB/ch07.xml b/libX11/specs/XKB/ch07.xml
index cd1b7dbd0..93d61d8cc 100644
--- a/libX11/specs/XKB/ch07.xml
+++ b/libX11/specs/XKB/ch07.xml
@@ -1,4 +1,4 @@
-<chapter id='virtual_modifiers'>
+<chapter id='Virtual_Modifiers'>
<title>Virtual Modifiers</title>
<para>
@@ -62,7 +62,7 @@ specify the desired behavior, without regard for the actual physical bindings
in effect.
</para>
-<sect1 id='virtual_modifier_names_and_masks'>
+<sect1 id='Virtual_Modifier_Names_and_Masks'>
<title>Virtual Modifier Names and Masks</title>
<para>
@@ -101,7 +101,7 @@ XkbGetNames</emphasis>
</sect1>
-<sect1 id='modifier_definitions'>
+<sect1 id='Modifier_Definitions'>
<title>Modifier Definitions</title>
<para>
@@ -158,7 +158,7 @@ for the keyboard mapping of interest.
</sect1>
-<sect1 id='binding_virtual_modifiers_to_real_modifiers'>
+<sect1 id='Binding_Virtual_Modifiers_to_Real_Modifiers'>
<title>Binding Virtual Modifiers to Real Modifiers</title>
<para>
@@ -174,7 +174,7 @@ Figure 16.2. <!-- xref -->
</sect1>
-<sect1 id='virtual_modifier_key_mapping'>
+<sect1 id='Virtual_Modifier_Key_Mapping'>
<title>Virtual Modifier Key Mapping</title>
<para>
@@ -326,7 +326,7 @@ client has not requested it) while the server’s corresponding definition may
contain virtual modifier information. </para></note>
-<sect2 id='inactive_modifier_sets'>
+<sect2 id='Inactive_Modifier_Sets'>
<title>Inactive Modifier Sets</title>
<para>
@@ -364,7 +364,7 @@ virtual modifiers are bound.
</sect2>
</sect1>
-<sect1 id='conventions'>
+<sect1 id='Conventions'>
<title>Conventions</title>
<para>
@@ -384,7 +384,7 @@ following names are suggested:
</literallayout>
</sect1>
-<sect1 id='example'>
+<sect1 id='Example'>
<title>Example</title>
<para>
diff --git a/libX11/specs/XKB/ch08.xml b/libX11/specs/XKB/ch08.xml
index 0d19a3d7a..87c0c08f8 100644
--- a/libX11/specs/XKB/ch08.xml
+++ b/libX11/specs/XKB/ch08.xml
@@ -1,4 +1,4 @@
-<chapter id='indicators'>
+<chapter id='Indicators'>
<title>Indicators</title>
<para>
@@ -42,7 +42,7 @@ keyboard indicators, which makes it straightforward to provide an on-screen
used for manipulating them.
</para>
-<sect1 id='indicator_names'>
+<sect1 id='Indicator_Names'>
<title>Indicator Names</title>
<para>
@@ -62,7 +62,7 @@ XkbGetNames</emphasis>
</sect1>
-<sect1 id='indicator_data_structures'>
+<sect1 id='Indicator_Data_Structures'>
<title>Indicator Data Structures</title>
<para>
@@ -74,7 +74,7 @@ XkbIndicatorMapRec</emphasis>
</para>
-<sect2 id='xkbindicatorrec'>
+<sect2 id='XkbIndicatorRec'>
<title>XkbIndicatorRec</title>
<para>
@@ -129,7 +129,7 @@ phys_indicators</emphasis>
</sect2>
-<sect2 id='xkbindicatormaprec'>
+<sect2 id='XkbIndicatorMapRec'>
<title>XkbIndicatorMapRec</title>
<para>
@@ -191,7 +191,7 @@ For more information on the effects of explicit changes to indicators and the
relationship to the indicator map, see section 8.4.1. <!-- xref -->
</para>
-<sect3 id='xkbindicatormaprec_flags_field'>
+<sect3 id='XkbIndicatorMapRec_flags_field'>
<title>XkbIndicatorMapRec flags field</title>
<para>
@@ -306,7 +306,7 @@ indicator on. If the conditions do not match, Xkb turns the indicator off.
</sect3>
-<sect3 id='xkbindicatormaprec_which_groups_and_groups_fields'>
+<sect3 id='XkbIndicatorMapRec_which_groups_and_groups_fields'>
<title>XkbIndicatorMapRec which_groups and groups fields</title>
<para>
@@ -520,7 +520,7 @@ groups</emphasis>
</table>
</sect3>
-<sect3 id='xkbindicatormaprec_which_mods_and_mods_fields'>
+<sect3 id='XkbIndicatorMapRec_which_mods_and_mods_fields'>
<title>XkbIndicatorMapRec which_mods and mods fields</title>
<para>
@@ -787,7 +787,7 @@ mods</emphasis>
</table>
</sect3>
-<sect3 id='xkbindicatormaprec_ctrls_field'>
+<sect3 id='XkbIndicatorMapRec_ctrls_field'>
<title>XkbIndicatorMapRec ctrls field</title>
<para>
@@ -824,7 +824,7 @@ ctrls</emphasis>
</sect3>
</sect2>
</sect1>
-<sect1 id='getting_information_about_indicators'>
+<sect1 id='Getting_Information_About_Indicators'>
<title>Getting Information About Indicators</title>
<para>
@@ -842,7 +842,7 @@ XkbIndicatorRec</emphasis>
</para>
-<sect2 id='getting_indicator_state'>
+<sect2 id='Getting_Indicator_State'>
<title>Getting Indicator State</title>
<para>
@@ -923,7 +923,7 @@ XkbGetIndicatorState</emphasis>
</sect2>
-<sect2 id='getting_indicator_information_by_index'>
+<sect2 id='Getting_Indicator_Information_by_Index'>
<title>Getting Indicator Information by Index</title>
<para>
@@ -1018,7 +1018,7 @@ XkbFreeIndicatorMaps</emphasis>
</sect2>
-<sect2 id='getting_indicator_information_by_name'>
+<sect2 id='Getting_Indicator_Information_by_Name'>
<title>Getting Indicator Information by Name</title>
<para>
@@ -1189,7 +1189,7 @@ BadImplementation</emphasis>
</sect2>
</sect1>
-<sect1 id='changing_indicator_maps_and_state'>
+<sect1 id='Changing_Indicator_Maps_and_State'>
<title>Changing Indicator Maps and State</title>
<para>
@@ -1216,7 +1216,7 @@ XkbChangeIndicators</emphasis>.
</para>
-<sect2 id='effects_of_explicit_changes_on_indicators'>
+<sect2 id='Effects_of_Explicit_Changes_on_Indicators'>
<title>Effects of Explicit Changes on Indicators</title>
<para>
@@ -1314,7 +1314,7 @@ ctrls</emphasis>
</sect2>
-<sect2 id='changing_indicator_maps_by_index'>
+<sect2 id='Changing_Indicator_Maps_by_Index'>
<title>Changing Indicator Maps by Index</title>
<para>
@@ -1380,7 +1380,7 @@ desc</emphasis>
</sect2>
-<sect2 id='changing_indicator_maps_by_name'>
+<sect2 id='Changing_Indicator_Maps_by_Name'>
<title>Changing Indicator Maps by Name</title>
<para>
@@ -1567,7 +1567,7 @@ XkbNamesNotify</emphasis>
</sect2>
-<sect2 id='the_xkbindicatorchangesrec_structure'>
+<sect2 id='The_XkbIndicatorChangesRec_Structure'>
<title>The XkbIndicatorChangesRec Structure</title>
<para>
@@ -1704,7 +1704,7 @@ XkbIndicatorMapNotify</emphasis>
</sect2>
</sect1>
-<sect1 id='tracking_changes_to_indicator_state_or_map'>
+<sect1 id='Tracking_Changes_to_Indicator_State_or_Map'>
<title>Tracking Changes to Indicator State or Map</title>
<para>
@@ -1983,7 +1983,7 @@ BadMatch</emphasis>
</sect1>
-<sect1 id='allocating_and_freeing_indicator_maps'>
+<sect1 id='Allocating_and_Freeing_Indicator_Maps'>
<title>Allocating and Freeing Indicator Maps</title>
<para>
diff --git a/libX11/specs/XKB/ch09.xml b/libX11/specs/XKB/ch09.xml
index d04669a12..9a6bc9b73 100644
--- a/libX11/specs/XKB/ch09.xml
+++ b/libX11/specs/XKB/ch09.xml
@@ -1,4 +1,4 @@
-<chapter id='bells'>
+<chapter id='Bells'>
<title>Bells</title>
<para>
@@ -95,7 +95,7 @@ This chapter describes bell names, the functions used to generate named bells,
and the events the server generates for bells.
</para>
-<sect1 id='bell_names'>
+<sect1 id='Bell_Names'>
<title>Bell Names</title>
<para>
@@ -192,7 +192,7 @@ XkbBellNotify</emphasis>
</table>
</sect1>
-<sect1 id='audible_bells'>
+<sect1 id='Audible_Bells'>
<title>Audible Bells</title>
<para>
@@ -232,7 +232,7 @@ information on auto-reset controls, see section 10.1.2. <!-- xref -->
</para>
</sect1>
-<sect1 id='bell_functions'>
+<sect1 id='Bell_Functions'>
<title>Bell Functions</title>
<para>
@@ -334,7 +334,7 @@ XkbBellNotifyEvent</emphasis>
</tgroup>
</table>
-<sect2 id='generating_named_bells'>
+<sect2 id='Generating_Named_Bells'>
<title>Generating Named Bells</title>
<para>
@@ -564,7 +564,7 @@ XkbBell</emphasis>
</para>
</sect2>
-<sect2 id='generating_named_bell_events'>
+<sect2 id='Generating_Named_Bell_Events'>
<title>Generating Named Bell Events</title>
<para>
@@ -787,7 +787,7 @@ without first initializing the keyboard extension.
</para>
</sect2>
-<sect2 id='forcing_a_server_generated_bell'>
+<sect2 id='Forcing_a_Server_Generated_Bell'>
<title>Forcing a Server-Generated Bell</title>
<para>
@@ -980,7 +980,7 @@ XkbBell</emphasis>
</sect2>
</sect1>
-<sect1 id='detecting_bells'>
+<sect1 id='Detecting_Bells'>
<title>Detecting Bells</title>
<para>
diff --git a/libX11/specs/XKB/ch10.xml b/libX11/specs/XKB/ch10.xml
index 76acd032f..97ce484e1 100644
--- a/libX11/specs/XKB/ch10.xml
+++ b/libX11/specs/XKB/ch10.xml
@@ -1,4 +1,4 @@
-<chapter id='keyboard_controls'>
+<chapter id='Keyboard_Controls'>
<title>Keyboard Controls</title>
<para>
@@ -197,7 +197,7 @@ XkbControlsRec</emphasis>
once follow at the end of the chapter.
</para>
-<sect1 id='controls_that_enable_and_disable_other_controls'>
+<sect1 id='Controls_that_Enable_and_Disable_Other_Controls'>
<title>Controls that Enable and Disable Other Controls</title>
<para>
@@ -211,7 +211,7 @@ AutoReset</emphasis>
</para>
-<sect2 id='the_enabledcontrols_control'>
+<sect2 id='The_EnabledControls_Control'>
<title>The EnabledControls Control</title>
<para>
@@ -337,7 +337,7 @@ its behavior in detail.
</sect2>
-<sect2 id='the_autoreset_control'>
+<sect2 id='The_AutoReset_Control'>
<title>The AutoReset Control</title>
<para>
@@ -597,7 +597,7 @@ changes</emphasis>
</sect2>
</sect1>
-<sect1 id='control_for_bell_behavior'>
+<sect1 id='Control_for_Bell_Behavior'>
<title>Control for Bell Behavior</title>
<para>
@@ -607,7 +607,7 @@ AudibleBell</emphasis>
</para>
-<sect2 id='the_audiblebell_control'>
+<sect2 id='The_AudibleBell_Control'>
<title>The AudibleBell Control</title>
<para>
@@ -627,7 +627,7 @@ sound is forced. See section 9.2. <!-- xref -->
</sect2>
</sect1>
-<sect1 id='controls_for_repeat_key_behavior'>
+<sect1 id='Controls_for_Repeat_Key_Behavior'>
<title>Controls for Repeat Key Behavior</title>
<para>
@@ -650,7 +650,7 @@ down.
</para>
-<sect2 id='the_perkeyrepeat_control'>
+<sect2 id='The_PerKeyRepeat_Control'>
<title>The PerKeyRepeat Control</title>
<para>
@@ -672,7 +672,7 @@ XkbControlsRec</emphasis>
</sect2>
-<sect2 id='the_repeatkeys_control'>
+<sect2 id='The_RepeatKeys_Control'>
<title>The RepeatKeys Control</title>
<para>
@@ -865,7 +865,7 @@ False</emphasis>
</sect2>
-<sect2 id='the_detectableautorepeat_control'>
+<sect2 id='The_DetectableAutorepeat_Control'>
<title>The DetectableAutorepeat Control</title>
<para>
@@ -1110,7 +1110,7 @@ False</emphasis>
</sect2>
</sect1>
-<sect1 id='controls_for_keyboard_overlays_overlay1_and_overlay2_controls'>
+<sect1 id='Controls_for_Keyboard_Overlays_Overlay1_and_Overlay2_Controls'>
<title>Controls for Keyboard Overlays (Overlay1 and Overlay2 Controls)</title>
<para>
@@ -1159,7 +1159,7 @@ XkbKB_Overlay2</emphasis>
</sect1>
-<sect1 id='controls_for_using_the_mouse_from_the_keyboard'>
+<sect1 id='Controls_for_Using_the_Mouse_from_the_Keyboard'>
<title>Controls for Using the Mouse from the Keyboard</title>
<para>
@@ -1183,7 +1183,7 @@ discussed in Chapter 16. <!-- xref -->
</para>
-<sect2 id='the_mousekeys_control'>
+<sect2 id='The_MouseKeys_Control'>
<title>The MouseKeys Control</title>
<para>
@@ -1226,7 +1226,7 @@ Shift+Alt+NumLock</emphasis>
, but this may vary depending on the keymap.</para></note>
</sect2>
-<sect2 id='the_mousekeysaccel_control'>
+<sect2 id='The_MouseKeysAccel_Control'>
<title>The MouseKeysAccel Control</title>
<para>
@@ -1302,7 +1302,7 @@ XkbSA_MovePtr</emphasis>
action (see section 16.1) specifies relative or absolute pointer motion. <!-- xref -->
</para>
-<sect3 id='absolute_pointer_motion'>
+<sect3 id='Absolute_Pointer_Motion'>
<title>Absolute Pointer Motion</title>
<para>
@@ -1319,7 +1319,7 @@ stays at the same X position.
</sect3>
-<sect3 id='relative_pointer_motion'>
+<sect3 id='Relative_Pointer_Motion'>
<title>Relative Pointer Motion</title>
<para>
@@ -1474,7 +1474,7 @@ MouseKeys Acceleration</H5>
</sect3>
</sect2>
</sect1>
-<sect1 id='controls_for_better_keyboard_access_by_physically_impaired_persons'>
+<sect1 id='Controls_for_Better_Keyboard_Access_by_Physically_ImpairedPersons'>
<title>Controls for Better Keyboard Access by Physically Impaired
Persons</title>
@@ -1493,7 +1493,7 @@ Wisconsin-Madison WI 53705-2280. Phone: 608-262-6966. e-mail: info@trace.wisc.ed
</para></footnote>.
</para>
-<sect2 id='the_accessxkeys_control'>
+<sect2 id='The_AccessXKeys_Control'>
<title>The AccessXKeys Control</title>
<para>
@@ -1561,7 +1561,7 @@ in state, as described in section 10.6.3, or <!-- xref -->
</para>
</sect2>
-<sect2 id='the_accessxtimeout_control'>
+<sect2 id='The_AccessXTimeout_Control'>
<title>The AccessXTimeout Control</title>
<para>
@@ -1849,7 +1849,7 @@ False</emphasis>
</sect2>
-<sect2 id='the_accessxfeedback_control'>
+<sect2 id='The_AccessXFeedback_Control'>
<title>The AccessXFeedback Control</title>
<para>
@@ -1989,7 +1989,7 @@ XkbBellNotify</emphasis>
</sect2>
-<sect2 id='accessxnotify_events'>
+<sect2 id='AccessXNotify_Events'>
<title>AccessXNotify Events</title>
<para>
@@ -2089,7 +2089,7 @@ BounceKeys</emphasis>
debounce delay.
</para>
-<sect3 id='selecting_for_accessx_events'>
+<sect3 id='Selecting_for_AccessX_Events'>
<title>Selecting for AccessX Events</title>
<para>
@@ -2183,7 +2183,7 @@ values_for_bits</emphasis>
</sect3>
</sect2>
-<sect2 id='stickykeys_repeatkeys_and_mousekeys_events'>
+<sect2 id='StickyKeys_RepeatKeys_and_MouseKeys_Events'>
<title>StickyKeys, RepeatKeys, and MouseKeys Events</title>
<para>
@@ -2211,7 +2211,7 @@ MouseKeys</emphasis>
</sect2>
-<sect2 id='the_slowkeys_control'>
+<sect2 id='The_SlowKeys_Control'>
<title>The SlowKeys Control</title>
<para>
@@ -2399,7 +2399,7 @@ False</emphasis>
</sect2>
-<sect2 id='the_bouncekeys_control'>
+<sect2 id='The_BounceKeys_Control'>
<title>The BounceKeys Control</title>
<para>
@@ -2581,7 +2581,7 @@ False</emphasis>
</para>
</sect2>
-<sect2 id='the_stickykeys_control'>
+<sect2 id='The_StickyKeys_Control'>
<title>The StickyKeys Control</title>
<para>
@@ -2698,7 +2698,7 @@ configured: one to automatically disable it, and one to control the latching
behavior of modifier keys.
</para>
-<sect3 id='stickykeys_options'>
+<sect3 id='StickyKeys_Options'>
<title>StickyKeys Options</title>
<para>
@@ -2904,7 +2904,7 @@ False</emphasis>
</sect3>
</sect2>
</sect1>
-<sect1 id='controls_for_general_keyboard_mapping'>
+<sect1 id='Controls_for_General_Keyboard_Mapping'>
<title>Controls for General Keyboard Mapping</title>
<para>
@@ -2944,7 +2944,7 @@ IgnoreGroupLock</emphasis>
specifying a grab for every possible modifier combination.
</para>
-<sect2 id='the_groupswrap_control'>
+<sect2 id='The_GroupsWrap_Control'>
<title>The GroupsWrap Control</title>
<para>
@@ -3019,7 +3019,7 @@ group_info</emphasis>
, which also normalizes a group under certain circumstances.</para></note>
</sect2>
-<sect2 id='the_ignorelockmods_control'>
+<sect2 id='The_IgnoreLockMods_Control'>
<title>The IgnoreLockMods Control</title>
<para>
@@ -3202,7 +3202,7 @@ False</emphasis>
</para>
</sect2>
-<sect2 id='the_ignoregrouplock_control'>
+<sect2 id='The_IgnoreGroupLock_Control'>
<title>The IgnoreGroupLock Control</title>
<para>
@@ -3222,7 +3222,7 @@ functions (see section 10.1) to change its state. <!-- xref -->
</sect2>
-<sect2 id='the_internalmods_control'>
+<sect2 id='The_InternalMods_Control'>
<title>The InternalMods Control</title>
<para>
@@ -3397,7 +3397,7 @@ False</emphasis>
</sect2>
</sect1>
-<sect1 id='the_xkbcontrolsrec_structure'>
+<sect1 id='The_XkbControlsRec_Structure'>
<title>The XkbControlsRec Structure</title>
<para>
@@ -4303,7 +4303,7 @@ indicates that the key is a repeating key.
</sect3>
</sect2>
</sect1>
-<sect1 id='querying_controls'>
+<sect1 id='Querying_Controls'>
<title>Querying Controls</title>
<para>
@@ -4443,7 +4443,7 @@ which</emphasis>
</sect1>
-<sect1 id='changing_controls'>
+<sect1 id='Changing_Controls'>
<title>Changing Controls</title>
<para>
@@ -4585,7 +4585,7 @@ XkbChangeEnabledControls</emphasis>
</para>
-<sect2 id='the_xkbcontrolschangesrec_structure'>
+<sect2 id='The_XkbControlsChangesRec_Structure'>
<title>The XkbControlsChangesRec Structure</title>
<para>
@@ -4707,7 +4707,7 @@ dpy</emphasis>
</sect2>
</sect1>
-<sect1 id='tracking_changes_to_keyboard_controls'>
+<sect1 id='Tracking_Changes_to_Keyboard_Controls'>
<title>Tracking Changes to Keyboard Controls</title>
<para>
@@ -5019,7 +5019,7 @@ BadMatch</emphasis>
</sect1>
-<sect1 id='allocating_and_freeing_an_xkbcontrolsrec'>
+<sect1 id='Allocating_and_Freeing_an_XkbControlsRec'>
<title>Allocating and Freeing an XkbControlsRec</title>
<para>
@@ -5208,7 +5208,7 @@ NULL.</emphasis>
</para>
</sect1>
-<sect1 id='the_miscellaneous_per_client_controls'>
+<sect1 id='The_Miscellaneous_Per_client_Controls'>
<title>The Miscellaneous Per-client Controls</title>
<para>
diff --git a/libX11/specs/XKB/ch11.xml b/libX11/specs/XKB/ch11.xml
index fe05e9cb2..1d8d1dc2a 100644
--- a/libX11/specs/XKB/ch11.xml
+++ b/libX11/specs/XKB/ch11.xml
@@ -1,4 +1,4 @@
-<chapter id='x_library_controls'>
+<chapter id='X_Library_Controls'>
<title>X Library Controls</title>
<para>
@@ -53,7 +53,7 @@ normally; however, the feedback that would normally occur with the controls
enabled may be missing.
</para>
-<sect1 id='controls_affecting_keycode_to_string_translation'>
+<sect1 id='Controls_Affecting_Keycode_to_String_Translation'>
<title>Controls Affecting Keycode-to-String Translation</title>
<para>
@@ -71,7 +71,7 @@ affecting simple string lookups are:
<emphasis>LevelOneUsesShiftAndLock</emphasis>
</programlisting></para>
-<sect2 id='forcelatin1lookup'>
+<sect2 id='ForceLatin1Lookup'>
<title>ForceLatin1Lookup</title>
<para>
@@ -89,7 +89,7 @@ is disabled, allowing characters outside of the Latin1 set to be returned.
</sect2>
-<sect2 id='consumelookupmods'>
+<sect2 id='ConsumeLookupMods'>
<title>ConsumeLookupMods</title>
<para>
@@ -166,7 +166,7 @@ refer to Chapter 12.
</sect2>
-<sect2 id='alwaysconsumeshiftandlock'>
+<sect2 id='AlwaysConsumeShiftAndLock'>
<title>AlwaysConsumeShiftAndLock</title>
<para>
@@ -187,7 +187,7 @@ AlwaysConsumeShiftAndLock</emphasis>
</sect2>
</sect1>
-<sect1 id='controls_affecting_compose_processing'>
+<sect1 id='Controls_Affecting_Compose_Processing'>
<title>Controls Affecting Compose Processing</title>
<para>
@@ -216,7 +216,7 @@ the compose processing controls is optional in an Xkb implementation.
</para>
-<sect2 id='consumekeysoncomposefail'>
+<sect2 id='ConsumeKeysOnComposeFail'>
<title>ConsumeKeysOnComposeFail</title>
<para>
@@ -255,7 +255,7 @@ ConsumeKeysOnComposeFail</emphasis>
</sect2>
-<sect2 id='composeled'>
+<sect2 id='ComposeLED'>
<title>ComposeLED</title>
<para>
@@ -288,7 +288,7 @@ this purpose.
</sect2>
-<sect2 id='beeponcomposefail'>
+<sect2 id='BeepOnComposeFail'>
<title>BeepOnComposeFail</title>
<para>
@@ -325,10 +325,10 @@ ComposeFail</emphasis>
</sect2>
</sect1>
-<sect1 id='controls_effecting_event_delivery'>
+<sect1 id='Controls_Effecting_Event_Delivery'>
<title>Controls Effecting Event Delivery</title>
-<sect2 id='ignorenewkeyboards'>
+<sect2 id='IgnoreNewKeyboards'>
<title>IgnoreNewKeyboards</title>
<para>
@@ -361,7 +361,7 @@ MappingNotify</emphasis>
</sect2>
</sect1>
-<sect1 id='manipulating_the_library_controls'>
+<sect1 id='Manipulating_the_Library_Controls'>
<title>Manipulating the Library Controls</title>
<para>
@@ -418,7 +418,7 @@ defined in Table 11.1. <!-- xref -->
</tgroup>
</table>
-<sect2 id='determining_which_library_controls_are_implemented'>
+<sect2 id='Determining_Which_Library_Controls_are_Implemented'>
<title>Determining Which Library Controls are Implemented</title>
<para>
@@ -459,7 +459,7 @@ library and is composed of an inclusive OR of bits from Table 11.1.
</sect2>
-<sect2 id='determining_the_state_of_the_library_controls'>
+<sect2 id='Determining_the_State_of_the_Library_Controls'>
<title>Determining the State of the Library Controls</title>
<para>
@@ -502,7 +502,7 @@ is enabled does not imply that it is actually implemented.
</para>
</sect2>
-<sect2 id='changing_the_state_of_the_library_controls'>
+<sect2 id='Changing_the_State_of_the_Library_Controls'>
<title>Changing the State of the Library Controls</title>
<para>
diff --git a/libX11/specs/XKB/ch12.xml b/libX11/specs/XKB/ch12.xml
index 1f10261c7..928d83828 100644
--- a/libX11/specs/XKB/ch12.xml
+++ b/libX11/specs/XKB/ch12.xml
@@ -1,4 +1,4 @@
-<chapter id='interpreting_key_events'>
+<chapter id='Interpreting_Key_Events'>
<title>Interpreting Key Events</title>
<para>
@@ -7,7 +7,7 @@ to directly interpret Xkb data structures. Xkb also modifies the behavior of
several core X library functions.
</para>
-<sect1 id='effects_of_xkb_on_the_core_x_library'>
+<sect1 id='Effects_of_Xkb_on_the_Core_X_Library'>
<title>Effects of Xkb on the Core X Library</title>
<para>
@@ -24,7 +24,7 @@ includes ways to control or disable it.
</para>
-<sect2 id='effects_of_xkb_on_event_state'>
+<sect2 id='Effects_of_Xkb_on_Event_State'>
<title>Effects of Xkb on Event State</title>
<para>
@@ -38,7 +38,7 @@ by the core protocol.
</sect2>
-<sect2 id='effects_of_xkb_on_mappingnotify_events'>
+<sect2 id='Effects_of_Xkb_on_MappingNotify_Events'>
<title>Effects of Xkb on MappingNotify Events</title>
<para>
@@ -112,7 +112,7 @@ requesting notification of changes to the legal range of keycodes.
</sect2>
-<sect2 id='x_library_functions_affected_by_xkb'>
+<sect2 id='X_Library_Functions_Affected_by_Xkb'>
<title>X Library Functions Affected by Xkb</title>
<para>
@@ -228,7 +228,7 @@ the keysym are consumed and are not used to look up the string.
</sect2>
</sect1>
-<sect1 id='xkb_event_and_keymap_functions'>
+<sect1 id='Xkb_Event_and_Keymap_Functions'>
<title>Xkb Event and Keymap Functions</title>
<para>
diff --git a/libX11/specs/XKB/ch13.xml b/libX11/specs/XKB/ch13.xml
index 6f8fce033..101003817 100644
--- a/libX11/specs/XKB/ch13.xml
+++ b/libX11/specs/XKB/ch13.xml
@@ -1,4 +1,4 @@
-<chapter id='keyboard_geometry'>
+<chapter id='Keyboard_Geometry'>
<title>Keyboard Geometry</title>
<para>
@@ -244,7 +244,7 @@ section.
Keyboard with Four Sections</H5>
-->
-<sect1 id='shapes_and_outlines'>
+<sect1 id='Shapes_and_Outlines'>
<title>Shapes and Outlines</title>
<para>
@@ -348,7 +348,7 @@ degraded image of the keyboard.
</para>
</sect1>
-<sect1 id='sections'>
+<sect1 id='Sections'>
<title>Sections</title>
<para>
@@ -436,7 +436,7 @@ containing the entire section.
</listitem>
</itemizedlist>
</sect1>
-<sect1 id='rows_and_keys'>
+<sect1 id='Rows_and_Keys'>
<title>Rows and Keys</title>
<para>
@@ -464,7 +464,7 @@ between a key and its predecessor.
</sect1>
-<sect1 id='doodads'>
+<sect1 id='Doodads'>
<title>Doodads</title>
<para>
@@ -629,7 +629,7 @@ XkbLogoDoodad</emphasis>
</table>
</sect1>
-<sect1 id='overlay_rows_and_overlay_keys'>
+<sect1 id='Overlay_Rows_and_Overlay_Keys'>
<title>Overlay Rows and Overlay Keys</title>
<para>
@@ -660,7 +660,7 @@ while the key specified in over must not be.
</sect1>
-<sect1 id='drawing_a_keyboard_representation'>
+<sect1 id='Drawing_a_Keyboard_Representation'>
<title>Drawing a Keyboard Representation</title>
<para>
@@ -678,7 +678,7 @@ To draw a representation of the keyboard, draw in the following order:
</programlisting></para>
</sect1>
-<sect1 id='geometry_data_structures'>
+<sect1 id='Geometry_Data_Structures'>
<title>Geometry Data Structures</title>
<para>
@@ -956,7 +956,7 @@ angle</emphasis>
degrees.
</para>
-<sect2 id='doodadrec_structures'>
+<sect2 id='DoodadRec_Structures'>
<title>DoodadRec Structures</title>
<para>
@@ -1071,7 +1071,7 @@ typedef struct _XkbLogoDoodad {
</sect2>
</sect1>
-<sect1 id='getting_keyboard_geometry_from_the_server'>
+<sect1 id='Getting_Keyboard_Geometry_From_the_Server'>
<title>Getting Keyboard Geometry From the Server</title>
<para>
@@ -1202,7 +1202,7 @@ name</emphasis>
</para>
</sect1>
-<sect1 id='using_keyboard_geometry'>
+<sect1 id='Using_Keyboard_Geometry'>
<title>Using Keyboard Geometry</title>
<para>
@@ -1544,7 +1544,7 @@ under</emphasis>
</sect1>
-<sect1 id='adding_elements_to_a_keyboard_geometry'>
+<sect1 id='Adding_Elements_to_a_Keyboard_Geometry'>
<title>Adding Elements to a Keyboard Geometry</title>
<para>
@@ -2402,7 +2402,7 @@ NULL</emphasis>
</sect1>
-<sect1 id='allocating_and_freeing_geometry_components'>
+<sect1 id='Allocating_and_Freeing_Geometry_Components'>
<title>Allocating and Freeing Geometry Components</title>
<para>
diff --git a/libX11/specs/XKB/ch14.xml b/libX11/specs/XKB/ch14.xml
index cc376dba4..518e1aca4 100644
--- a/libX11/specs/XKB/ch14.xml
+++ b/libX11/specs/XKB/ch14.xml
@@ -1,4 +1,4 @@
-<chapter id='xkb_keyboard_mapping'>
+<chapter id='Xkb_Keyboard_Mapping'>
<title>Xkb Keyboard Mapping</title>
<para>
@@ -30,7 +30,7 @@ Chapter 15, "Xkb Client Keyboard Mapping" and Chapter 16, "Xkb Server Keyboard
Mapping."
</para>
-<sect1 id='notation_and_terminology'>
+<sect1 id='Notation_and_Terminology'>
<title>Notation and Terminology</title>
<para>
@@ -118,7 +118,7 @@ A</emphasis>
.
</para>
-<sect2 id='core_implementation'>
+<sect2 id='Core_Implementation'>
<title>Core Implementation</title>
<para>
@@ -161,7 +161,7 @@ Num_Lock</emphasis>
</sect2>
-<sect2 id='xkb_implementation'>
+<sect2 id='Xkb_Implementation'>
<title>Xkb Implementation</title>
<para>
@@ -209,7 +209,7 @@ detail in section 16.2. <!-- xref -->
</sect2>
</sect1>
-<sect1 id='getting_map_components_from_the_server'>
+<sect1 id='Getting_Map_Components_from_the_Server'>
<title>Getting Map Components from the Server</title>
<para>
@@ -571,7 +571,7 @@ the reply from the server was invalid).
</para>
</sect1>
-<sect1 id='changing_map_components_in_the_server'>
+<sect1 id='Changing_Map_Components_in_the_Server'>
<title>Changing Map Components in the Server</title>
<para>
@@ -679,7 +679,7 @@ helper functions and provides a pointer to where they are defined.
</para>
-<sect2 id='the_xkbmapchangesrec_structure'>
+<sect2 id='The_XkbMapChangesRec_Structure'>
<title>The XkbMapChangesRec Structure</title>
<para>
@@ -944,7 +944,7 @@ BadValue</emphasis>
</sect2>
</sect1>
-<sect1 id='tracking_changes_to_map_components'>
+<sect1 id='Tracking_Changes_to_Map_Components'>
<title>Tracking Changes to Map Components</title>
<para>
@@ -1042,7 +1042,7 @@ resized</emphasis>
</sect1>
-<sect1 id='allocating_and_freeing_client_and_server_maps'>
+<sect1 id='Allocating_and_Freeing_Client_and_Server_Maps'>
<title>Allocating and Freeing Client and Server Maps</title>
<para>
@@ -1082,7 +1082,7 @@ Xfree</emphasis>
</para>
-<sect2 id='allocating_an_empty_client_map'>
+<sect2 id='Allocating_an_Empty_Client_Map'>
<title>Allocating an Empty Client Map</title>
<para>
@@ -1271,7 +1271,7 @@ BadValue</emphasis>
</sect2>
-<sect2 id='freeing_a_client_map'>
+<sect2 id='Freeing_a_Client_Map'>
<title>Freeing a Client Map</title>
<para>
@@ -1363,7 +1363,7 @@ NULL.</emphasis>
</sect2>
-<sect2 id='allocating_an_empty_server_map'>
+<sect2 id='Allocating_an_Empty_Server_Map'>
<title>Allocating an Empty Server Map</title>
<para>
@@ -1548,7 +1548,7 @@ BadAlloc</emphasis>
</sect2>
-<sect2 id='freeing_a_server_map'>
+<sect2 id='Freeing_a_Server_Map'>
<title>Freeing a Server Map</title>
<para>
diff --git a/libX11/specs/XKB/ch15.xml b/libX11/specs/XKB/ch15.xml
index 25ee61f5f..5ab96ae13 100644
--- a/libX11/specs/XKB/ch15.xml
+++ b/libX11/specs/XKB/ch15.xml
@@ -1,4 +1,4 @@
-<chapter id='xkb_client_keyboard_mapping'>
+<chapter id='Xkb_Client_Keyboard_Mapping'>
<title>Xkb Client Keyboard Mapping</title>
<para>
@@ -25,7 +25,7 @@ Figure 15.1 shows the relationships between elements in the client map:
Xkb Client Map</H5>
-->
-<sect1 id='the_xkbclientmaprec_structure'>
+<sect1 id='The_XkbClientMapRec_Structure'>
<title>The XkbClientMapRec Structure</title>
<para>
@@ -58,7 +58,7 @@ XkbClientMapRec</emphasis>
</sect1>
-<sect1 id='key_types'>
+<sect1 id='Key_Types'>
<title>Key Types</title>
<para>
@@ -398,7 +398,7 @@ level-one symbols.
</para>
-<sect2 id='the_canonical_key_types'>
+<sect2 id='The_Canonical_Key_Types'>
<title>The Canonical Key Types</title>
<para>
@@ -423,7 +423,7 @@ types</emphasis>
<emphasis>XkbKeypadIndex</emphasis>
</programlisting></para>
-<sect3 id='one_level'>
+<sect3 id='ONE_LEVEL'>
<title>ONE_LEVEL</title>
<para>
@@ -451,7 +451,7 @@ XkbOneLevelIndex</emphasis>
</sect3>
-<sect3 id='two_level'>
+<sect3 id='TWO_LEVEL'>
<title>TWO_LEVEL</title>
<para>
@@ -484,7 +484,7 @@ XkbTwoLevelIndex</emphasis>
</sect3>
-<sect3 id='alphabetic'>
+<sect3 id='ALPHABETIC'>
<title>ALPHABETIC</title>
<para>
@@ -561,7 +561,7 @@ XkbAlphabeticIndex</emphasis>
</sect3>
-<sect3 id='keypad'>
+<sect3 id='KEYPAD'>
<title>KEYPAD</title>
<para>
@@ -635,7 +635,7 @@ XkbKeypadIndex</emphasis>
</sect3>
-<sect3 id='initializing_the_canonical_key_types_in_a_new_client_map'>
+<sect3 id='Initializing_the_Canonical_Key_Types_in_a_New_Client_Map'>
<title>Initializing the Canonical Key Types in a New Client Map</title>
<para>
@@ -740,7 +740,7 @@ xkb</emphasis>
</sect3>
</sect2>
-<sect2 id='getting_key_types_from_the_server'>
+<sect2 id='Getting_Key_Types_from_the_Server'>
<title>Getting Key Types from the Server</title>
<para>
@@ -834,7 +834,7 @@ num</emphasis>
</sect2>
-<sect2 id='changing_the_number_of_levels_in_a_key_type'>
+<sect2 id='Changing_the_Number_of_Levels_in_a_Key_Type'>
<title>Changing the Number of Levels in a Key Type</title>
<para>
@@ -1004,7 +1004,7 @@ Success</emphasis>
</sect2>
-<sect2 id='copying_key_types'>
+<sect2 id='Copying_Key_Types'>
<title>Copying Key Types</title>
<para>
@@ -1182,7 +1182,7 @@ Success</emphasis>
</sect2>
</sect1>
-<sect1 id='key_symbol_map'>
+<sect1 id='Key_Symbol_Map'>
<title>Key Symbol Map</title>
<para>
@@ -1264,7 +1264,7 @@ These fields are described in detail in the following sections.
</para>
-<sect2 id='per_key_key_type_indices'>
+<sect2 id='Per_Key_Key_Type_Indices'>
<title>Per-Key Key Type Indices</title>
<para>
@@ -1392,7 +1392,7 @@ group</emphasis>
</sect2>
-<sect2 id='per_key_group_information'>
+<sect2 id='Per_Key_Group_Information'>
<title>Per-Key Group Information</title>
<para>
@@ -1646,7 +1646,7 @@ XkbSymMapRec</emphasis>
</sect2>
-<sect2 id='key_width'>
+<sect2 id='Key_Width'>
<title>Key Width</title>
<para>
@@ -1664,7 +1664,7 @@ symbols or set of types bound to a key are changed.
</sect2>
-<sect2 id='offset_in_to_the_symbol_map'>
+<sect2 id='Offset_in_to_the_Symbol_Map'>
<title>Offset in to the Symbol Map</title>
<para>
@@ -1974,7 +1974,7 @@ keycode</emphasis>
</sect2>
-<sect2 id='getting_the_symbol_map_for_keys_from_the_server'>
+<sect2 id='Getting_the_Symbol_Map_for_Keys_from_the_Server'>
<title>Getting the Symbol Map for Keys from the Server</title>
<para>
@@ -2090,7 +2090,7 @@ BadAlloc</emphasis>
</sect2>
-<sect2 id='changing_the_number_of_groups_and_types_bound_to_a_key'>
+<sect2 id='Changing_the_Number_of_Groups_and_Types_Bound_to_a_Key'>
<title>Changing the Number of Groups and Types Bound to a Key</title>
<para>
@@ -2332,7 +2332,7 @@ BadAlloc</emphasis>
</sect2>
-<sect2 id='changing_the_number_of_symbols_bound_to_a_key'>
+<sect2 id='Changing_the_Number_of_Symbols_Bound_to_a_Key'>
<title>Changing the Number of Symbols Bound to a Key</title>
<para>
@@ -2458,7 +2458,7 @@ a key.</para></note>
</sect2>
</sect1>
-<sect1 id='the_per_key_modifier_map'>
+<sect1 id='The_Per_Key_Modifier_Map'>
<title>The Per-Key Modifier Map</title>
<para>
@@ -2496,7 +2496,7 @@ Chapter 16).
</para>
-<sect2 id='getting_the_per_key_modifier_map_from_the_server'>
+<sect2 id='Getting_the_Per_Key_Modifier_Map_from_the_Server'>
<title>Getting the Per-Key Modifier Map from the Server</title>
<para>
diff --git a/libX11/specs/XKB/ch16.xml b/libX11/specs/XKB/ch16.xml
index 515323f7b..2cfdd8e2d 100644
--- a/libX11/specs/XKB/ch16.xml
+++ b/libX11/specs/XKB/ch16.xml
@@ -1,4 +1,4 @@
-<chapter id='xkb_server_keyboard_mapping'>
+<chapter id='Xkb_Server_Keyboard_Mapping'>
<title>Xkb Server Keyboard Mapping</title>
<para>
@@ -72,7 +72,7 @@ vmodmap</emphasis>
and are defined in section 16.4.
</para>
-<sect1 id='key_actions'>
+<sect1 id='Key_Actions'>
<title>Key Actions</title>
<para>
@@ -410,7 +410,7 @@ keycode</emphasis>
</para>
-<sect2 id='the_xkbaction_structure'>
+<sect2 id='The_XkbAction_Structure'>
<title>The XkbAction Structure</title>
<para>
@@ -448,7 +448,7 @@ structures for each action in detail.
</sect2>
-<sect2 id='the_xkbanyaction_structure'>
+<sect2 id='The_XkbAnyAction_Structure'>
<title>The XkbAnyAction Structure</title>
<para>
@@ -598,7 +598,7 @@ have an associated data structure.
</table>
</sect2>
-<sect2 id='actions_for_changing_modifiers_state'>
+<sect2 id='Actions_for_Changing_Modifiers_State'>
<title>Actions for Changing Modifiers’ State</title>
<para>
@@ -973,7 +973,7 @@ XkbISOAction</emphasis>
</sect2>
-<sect2 id='actions_for_changing_group_state'>
+<sect2 id='Actions_for_Changing_Group_State'>
<title>Actions for Changing Group State</title>
<para>
@@ -1272,7 +1272,7 @@ XkbISOAction</emphasis>
</sect2>
-<sect2 id='actions_for_moving_the_pointer'>
+<sect2 id='Actions_for_Moving_the_Pointer'>
<title>Actions for Moving the Pointer</title>
<para>
@@ -1563,7 +1563,7 @@ y</emphasis>
</sect2>
-<sect2 id='actions_for_simulating_pointer_button_press_and_release'>
+<sect2 id='Actions_for_Simulating_Pointer_Button_Press_and_Release'>
<title>Actions for Simulating Pointer Button Press and Release</title>
<para>
@@ -1782,7 +1782,7 @@ XkbSA_LockPtrBtn</emphasis>
</table>
</sect2>
-<sect2 id='actions_for_changing_the_pointer_button_simulated'>
+<sect2 id='Actions_for_Changing_the_Pointer_Button_Simulated'>
<title>Actions for Changing the Pointer Button Simulated</title>
<para>
@@ -1982,7 +1982,7 @@ val</emphasis>
</sect2>
-<sect2 id='actions_for_locking_modifiers_and_group'>
+<sect2 id='Actions_for_Locking_Modifiers_and_Group'>
<title>Actions for Locking Modifiers and Group</title>
<para>
@@ -2424,7 +2424,7 @@ SA_LockControls</emphasis>
</table>
</sect2>
-<sect2 id='actions_for_changing_the_active_screen'>
+<sect2 id='Actions_for_Changing_the_Active_Screen'>
<title>Actions for Changing the Active Screen</title>
<para>
@@ -2596,7 +2596,7 @@ s</emphasis>
</sect2>
-<sect2 id='actions_for_changing_boolean_controls_state'>
+<sect2 id='Actions_for_Changing_Boolean_Controls_State'>
<title>Actions for Changing Boolean Controls State</title>
<para>
@@ -2858,7 +2858,7 @@ ctrls</emphasis>
</sect2>
-<sect2 id='actions_for_generating_messages'>
+<sect2 id='Actions_for_Generating_Messages'>
<title>Actions for Generating Messages</title>
<para>
@@ -2954,7 +2954,7 @@ XkbActionMessageLength</emphasis>
unsigned characters and may be set to anything the keymap designer wishes.
</para>
-<sect3 id='detecting_key_action_messages'>
+<sect3 id='Detecting_Key_Action_Messages'>
<title>Detecting Key Action Messages</title>
<para>
@@ -3090,7 +3090,7 @@ XkbActionMessageLength</emphasis>
</sect3>
</sect2>
-<sect2 id='actions_for_generating_a_different_keycode'>
+<sect2 id='Actions_for_Generating_a_Different_Keycode'>
<title>Actions for Generating a Different Keycode</title>
<para>
@@ -3351,7 +3351,7 @@ v</emphasis>
</literallayout>
</sect2>
-<sect2 id='actions_for_generating_devicebuttonpress_and_devicebuttonrelease'>
+<sect2 id='Actions_for_Generating_DeviceButtonPress_and_DeviceButtonRelease'>
<title>Actions for Generating DeviceButtonPress and DeviceButtonRelease</title>
<para>
@@ -3531,7 +3531,7 @@ XkbSA_LockDeviceBtn</emphasis>
</table>
</sect2>
-<sect2 id='actions_for_simulating_events_from_device_valuators'>
+<sect2 id='Actions_for_Simulating_Events_from_Device_Valuators'>
<title>Actions for Simulating Events from Device Valuators</title>
<para>
@@ -3683,7 +3683,7 @@ For a dial box with eight dials, any value in the range 0..7 would be correct.
</sect2>
-<sect2 id='obtaining_key_actions_for_keys_from_the_server'>
+<sect2 id='Obtaining_Key_Actions_for_Keys_from_the_Server'>
<title>Obtaining Key Actions for Keys from the Server</title>
<para>
@@ -3802,7 +3802,7 @@ BadAlloc</emphasis>
</sect2>
-<sect2 id='changing_the_number_of_actions_bound_to_a_key'>
+<sect2 id='Changing_the_Number_of_Actions_Bound_to_a_Key'>
<title>Changing the Number of Actions Bound to a Key</title>
<para>
@@ -3932,7 +3932,7 @@ a key.</para></note>
</sect2>
</sect1>
-<sect1 id='key_behavior'>
+<sect1 id='Key_Behavior'>
<title>Key Behavior</title>
<para>
@@ -3944,7 +3944,7 @@ pressed again.
</para>
-<sect2 id='radio_groups2'>
+<sect2 id='Radio_Groups_2'>
<title>Radio Groups</title>
<para>
@@ -3989,7 +3989,7 @@ currently defined is:
</programlisting></para>
</sect2>
-<sect2 id='the_xkbbehavior_structure'>
+<sect2 id='The_XkbBehavior_Structure'>
<title>The XkbBehavior Structure</title>
<para>
@@ -4123,7 +4123,7 @@ keyboard to implement the behavior.
</sect2>
-<sect2 id='obtaining_key_behaviors_for_keys_from_the_server'>
+<sect2 id='Obtaining_Key_Behaviors_for_Keys_from_the_Server'>
<title>Obtaining Key Behaviors for Keys from the Server</title>
<para>
@@ -4242,7 +4242,7 @@ BadAlloc</emphasis>
</sect2>
</sect1>
-<sect1 id='explicit_components_avoiding_automatic_remapping_by_the_server'>
+<sect1 id='Explicit_ComponentsAvoiding_Automatic_Remapping_by_the_Server'>
<title>Explicit Components—Avoiding Automatic Remapping by the Server</title>
<para>
@@ -4354,7 +4354,7 @@ match the key.
</tgroup>
</table>
-<sect2 id='obtaining_explicit_components_for_keys_from_the_server'>
+<sect2 id='Obtaining_Explicit_Components_for_Keys_from_the_Server'>
<title>Obtaining Explicit Components for Keys from the Server</title>
<para>
@@ -4473,7 +4473,7 @@ BadAlloc</emphasis>
</sect2>
</sect1>
-<sect1 id='virtual_modifier_mapping'>
+<sect1 id='Virtual_Modifier_Mapping'>
<title>Virtual Modifier Mapping</title>
<para>
@@ -4565,7 +4565,7 @@ keyboard description are shown in Figure 16.2.
Virtual Modifier Relationships</H5>
-->
-<sect2 id='obtaining_virtual_modifier_bindings_from_the_server'>
+<sect2 id='Obtaining_Virtual_Modifier_Bindings_from_the_Server'>
<title>Obtaining Virtual Modifier Bindings from the Server</title>
<para>
@@ -4670,7 +4670,7 @@ BadAlloc</emphasis>.
</sect2>
-<sect2 id='obtaining_per_key_virtual_modifier_mappings_from_the_server'>
+<sect2 id='Obtaining_Per_Key_Virtual_Modifier_Mappings_from_the_Server'>
<title>Obtaining Per-Key Virtual Modifier Mappings from the Server</title>
<para>
diff --git a/libX11/specs/XKB/ch17.xml b/libX11/specs/XKB/ch17.xml
index 3c44da5c1..2bf30275b 100644
--- a/libX11/specs/XKB/ch17.xml
+++ b/libX11/specs/XKB/ch17.xml
@@ -1,4 +1,4 @@
-<chapter id='the_xkb_compatibility_map'>
+<chapter id='The_Xkb_Compatibility_Map'>
<title>The Xkb Compatibility Map</title>
<para>
@@ -122,7 +122,7 @@ subsequent transformations have a particular result.
</para>
-<sect1 id='the_xkbcompatmap_structure'>
+<sect1 id='The_XkbCompatMap_Structure'>
<title>The XkbCompatMap Structure</title>
<para>
@@ -171,7 +171,7 @@ override controls are used in each of the three cases where compatibility
transformations are made.
</para>
-<sect2 id='xkb_state_to_core_protocol_state_transformation'>
+<sect2 id='Xkb_State_to_Core_Protocol_State_Transformation'>
<title>Xkb State to Core Protocol State Transformation</title>
<para>
@@ -247,7 +247,7 @@ event as zero.
</para>
</sect2>
-<sect2 id='core_keyboard_mapping_to_xkb_keyboard_mapping_transformation'>
+<sect2 id='Core_Keyboard_Mapping_to_Xkb_Keyboard_Mapping_Transformation'>
<title>Core Keyboard Mapping to Xkb Keyboard Mapping Transformation</title>
<para>
@@ -399,7 +399,7 @@ XkbCompatMapRec</emphasis>
(see Figure 17.3).
</para>
-<sect3 id='symbol_interpretations_the_xkbsyminterpretrec_structure'>
+<sect3 id='Symbol_Interpretations__the_XkbSymInterpretRec_Structure'>
<title>Symbol Interpretations — the XkbSymInterpretRec Structure</title>
<para>
@@ -671,7 +671,7 @@ KB_Lock</emphasis>
</sect3>
</sect2>
-<sect2 id='xkb_keyboard_mapping_to_core_keyboard_mapping_transformations'>
+<sect2 id='Xkb_Keyboard_Mapping_to_Core_Keyboard_Mapping_Transformations'>
<title>Xkb Keyboard Mapping to Core Keyboard Mapping Transformations</title>
<para>
@@ -733,7 +733,7 @@ modifier mapping.
</sect2>
</sect1>
-<sect1 id='getting_compatibility_map_components_from_the_server'>
+<sect1 id='Getting_Compatibility_Map_Components_From_the_Server'>
<title>Getting Compatibility Map Components From the Server</title>
<para>
@@ -883,7 +883,7 @@ BadLength</emphasis>
</sect1>
-<sect1 id='using_the_compatibility_map'>
+<sect1 id='Using_the_Compatibility_Map'>
<title>Using the Compatibility Map</title>
<para>
@@ -1241,7 +1241,7 @@ bindings of the key.
</sect1>
-<sect1 id='changing_the_servers_compatibility_map'>
+<sect1 id='Changing_the_Servers_Compatibility_Map'>
<title>Changing the Server’s Compatibility Map</title>
<para>
@@ -1456,7 +1456,7 @@ NULL</emphasis>
</sect1>
-<sect1 id='tracking_changes_to_the_compatibility_map'>
+<sect1 id='Tracking_Changes_to_the_Compatibility_Map'>
<title>Tracking Changes to the Compatibility Map</title>
<para>
@@ -1585,7 +1585,7 @@ compat.sym_interpret</emphasis>
</sect1>
-<sect1 id='allocating_and_freeing_the_compatibility_map'>
+<sect1 id='Allocating_and_Freeing_the_Compatibility_Map'>
<title>Allocating and Freeing the Compatibility Map</title>
<para>
diff --git a/libX11/specs/XKB/ch18.xml b/libX11/specs/XKB/ch18.xml
index 025d777f9..98239bf2f 100644
--- a/libX11/specs/XKB/ch18.xml
+++ b/libX11/specs/XKB/ch18.xml
@@ -1,4 +1,4 @@
-<chapter id='symbolic_names'>
+<chapter id='Symbolic_Names'>
<title>Symbolic Names</title>
<para>
@@ -26,7 +26,7 @@ names</emphasis>
component of the keyboard description.
</para>
-<sect1 id='the_xkbnamesrec_structure'>
+<sect1 id='The_XkbNamesRec_Structure'>
<title>The XkbNamesRec Structure</title>
<para>
@@ -227,7 +227,7 @@ radio_groups</emphasis>
</sect1>
-<sect1 id='symbolic_names_masks'>
+<sect1 id='Symbolic_Names_Masks'>
<title>Symbolic Names Masks</title>
<para>
@@ -361,7 +361,7 @@ description are shown in Table 18.1.
</table>
</sect1>
-<sect1 id='getting_symbolic_names_from_the_server'>
+<sect1 id='Getting_Symbolic_Names_From_the_Server'>
<title>Getting Symbolic Names From the Server</title>
<para>
@@ -495,7 +495,7 @@ XkbFreeNames</emphasis>
</sect1>
-<sect1 id='changing_symbolic_names_on_the_server'>
+<sect1 id='Changing_Symbolic_Names_on_the_Server'>
<title>Changing Symbolic Names on the Server</title>
<para>
@@ -621,7 +621,7 @@ num_types</emphasis>
<sect2>
<title/>
-<sect3 id='the_xkbnamechangesrec_structure'>
+<sect3 id='The_XkbNameChangesRec_Structure'>
<title>The XkbNameChangesRec Structure</title>
<para>
@@ -814,7 +814,7 @@ changes</emphasis>
</sect3>
</sect2>
</sect1>
-<sect1 id='tracking_name_changes'>
+<sect1 id='Tracking_Name_Changes'>
<title>Tracking Name Changes</title>
<para>
@@ -1044,7 +1044,7 @@ BadMatch</emphasis>
</sect1>
-<sect1 id='allocating_and_freeing_symbolic_names'>
+<sect1 id='Allocating_and_Freeing_Symbolic_Names'>
<title>Allocating and Freeing Symbolic Names</title>
<para>
diff --git a/libX11/specs/XKB/ch19.xml b/libX11/specs/XKB/ch19.xml
index 9e675b358..b00afc34b 100644
--- a/libX11/specs/XKB/ch19.xml
+++ b/libX11/specs/XKB/ch19.xml
@@ -1,4 +1,4 @@
-<chapter id='replacing_a_keyboard_on_the_fly'>
+<chapter id='Replacing_a_Keyboard_On_the_Fly'>
<title>Replacing a Keyboard "On the Fly"</title>
<para>
diff --git a/libX11/specs/XKB/ch20.xml b/libX11/specs/XKB/ch20.xml
index e58686f35..20d5b27d4 100644
--- a/libX11/specs/XKB/ch20.xml
+++ b/libX11/specs/XKB/ch20.xml
@@ -1,4 +1,4 @@
-<chapter id='server_database_of_keyboard_components'>
+<chapter id='Server_Database_of_Keyboard_Components'>
<title>Server Database of Keyboard Components</title>
<para>
@@ -117,7 +117,7 @@ When a keyboard description is built, the components are processed in the order
in which they appear in Table 20.1; later definitions override earlier ones.
</para>
-<sect1 id='component_names'>
+<sect1 id='Component_Names'>
<title>Component Names</title>
<para>
@@ -151,7 +151,7 @@ use of other characters is implementation-dependent.
</para>
</sect1>
-<sect1 id='listing_the_known_keyboard_components'>
+<sect1 id='Listing_the_Known_Keyboard_Components'>
<title>Listing the Known Keyboard Components</title>
<para>
@@ -389,7 +389,7 @@ XkbComponentListRec</emphasis>
</sect1>
-<sect1 id='component_hints'>
+<sect1 id='Component_Hints'>
<title>Component Hints</title>
<para>
@@ -523,7 +523,7 @@ XkbLC_AlternateGroup</emphasis>
</table>
</sect1>
-<sect1 id='building_a_keyboard_description_using_the_server_database'>
+<sect1 id='Building_a_Keyboard_Description_Using_the_Server_Database'>
<title>Building a Keyboard Description Using the Server Database</title>
<para>
diff --git a/libX11/specs/XKB/ch21.xml b/libX11/specs/XKB/ch21.xml
index aef8378fe..bd5738991 100644
--- a/libX11/specs/XKB/ch21.xml
+++ b/libX11/specs/XKB/ch21.xml
@@ -1,4 +1,4 @@
-<chapter id='attaching_xkb_actions_to_x_input_extension_devices'>
+<chapter id='Attaching_Xkb_Actions_to_X_Input_Extension_Devices'>
<title>Attaching Xkb Actions to X Input Extension Devices</title>
<para>
@@ -154,7 +154,7 @@ KeyClass</emphasis>
silently if Xkb access to those devices is not supported by the X server.
</para>
-<sect1 id='xkbdeviceinforec'>
+<sect1 id='XkbDeviceInfoRec'>
<title>XkbDeviceInfoRec</title>
<para>
@@ -364,7 +364,7 @@ them.
</para>
</sect1>
-<sect1 id='querying_xkb_features_for_non_keyclass_input_extension_devices'>
+<sect1 id='Querying_Xkb_Features_for_Non_KeyClass_Input_Extension_Devices'>
<title>Querying Xkb Features for Non-KeyClass Input Extension Devices</title>
<para>
@@ -923,8 +923,7 @@ Match</emphasis>
</sect1>
-<sect1
-id='allocating_initializing_and_freeing_the_xkbdeviceinforec_structure'>
+<sect1 id='Allocating_Initializing_and_Freeing_the_XkbDeviceInfoRecStructure'>
<title>Allocating, Initializing, and Freeing the XkbDeviceInfoRec
Structure</title>
@@ -1319,8 +1318,8 @@ themselves are preserved.
</sect1>
-<sect1 id='setting_xkb_features_for_non_keyclass_input_extension_devices_'>
-<title>Setting Xkb Features for Non-KeyClass Input Extension Devices </title>
+<sect1 id='Setting_Xkb_Features_for_Non_KeyClass_Input_Extension_Devices'>
+<title>Setting Xkb Features for Non-KeyClass Input Extension Devices</title>
<para>
The Xkb extension allows clients to assign any key action to either core
@@ -1681,7 +1680,7 @@ BadMatch</emphasis>
</sect1>
-<sect1 id='xkbextensiondevicenotify_event'>
+<sect1 id='XkbExtensionDeviceNotify_Event'>
<title>XkbExtensionDeviceNotify Event</title>
<para>
@@ -1783,7 +1782,7 @@ state or configuration.
</sect1>
-<sect1 id='tracking_changes_to_extension_devices'>
+<sect1 id='Tracking_Changes_to_Extension_Devices'>
<title>Tracking Changes to Extension Devices</title>
<para>
diff --git a/libX11/specs/XKB/ch22.xml b/libX11/specs/XKB/ch22.xml
index ba16bffbc..8a509b7d4 100644
--- a/libX11/specs/XKB/ch22.xml
+++ b/libX11/specs/XKB/ch22.xml
@@ -1,4 +1,4 @@
-<chapter id='debugging_aids'>
+<chapter id='Debugging_Aids'>
<title>Debugging Aids</title>
<para>
diff --git a/libX11/specs/i18n/framework/framework.xml b/libX11/specs/i18n/framework/framework.xml
index a6ec1d9c4..79688e712 100644
--- a/libX11/specs/i18n/framework/framework.xml
+++ b/libX11/specs/i18n/framework/framework.xml
@@ -71,9 +71,9 @@ in this Software without prior written authorization from X Consortium.
</legalnotice>
</bookinfo>
-<chapter id="framework_">
+<chapter id='Framework'>
<title>Framework</title>
-<sect1 id="preface">
+<sect1 id='Preface'>
<title>Preface</title>
<para>
This document proposes to define the structures, methods and their
@@ -163,7 +163,7 @@ dependent.
The loader is called in
<function>_XOpenLC, </function>
but caller of
-<function>_XOpenLC </function>
+<xref linkend='_XOpenLC' xrefstyle='select: title'/>
does not need to care about its inside. For example, if the loader is
implemented with dynamic load functions, and the dynamic module is
expected to be unloaded when the corresponding XLCd is freed,
@@ -201,7 +201,7 @@ typedef int XlcPosition;
#define XlcTail
</literallayout>
-<funcsynopsis id='_xlcaddloader'>
+<funcsynopsis id='_XlcAddLoader'>
<funcprototype>
<funcdef>Bool <function> _XlcAddLoader</function></funcdef>
<paramdef>XLCdLoadProc<parameter> proc</parameter></paramdef>
@@ -211,7 +211,7 @@ typedef int XlcPosition;
<para>
The
-<function>_XlcAddLoader</function>
+<xref linkend='_XlcAddLoader' xrefstyle='select: title'/>
function registers the specified locale loader "<emphasis remap='I'>proc</emphasis>" to the
internal loader list. The position specifies that the loader
"<emphasis remap='I'>proc</emphasis>" should be placed in the top of the loader list(XlcHead)
@@ -227,7 +227,7 @@ when calling time.
<function>Remove a loader</function>
</para>
-<funcsynopsis id='_xlcremoveloader'>
+<funcsynopsis id='_XlcRemoveLoader'>
<funcprototype>
<funcdef>void <function> _XlcRemoveLoader</function></funcdef>
<paramdef>XLCdLoadProc<parameter> proc</parameter></paramdef>
@@ -236,7 +236,7 @@ when calling time.
<para>
The
-<function>_XlcRemoveLoader</function>
+<xref linkend='_XlcRemoveLoader' xrefstyle='select: title'/>
function removes the locale loader specified by "<emphasis remap='I'>proc</emphasis>" from the
loader list.
</para>
@@ -280,7 +280,7 @@ independently each other.
<function>Open a Locale Method</function>
</para>
-<funcsynopsis id='_xopenlc'>
+<funcsynopsis id='_XOpenLC'>
<funcprototype>
<funcdef>XLCd <function> _XOpenLC</function></funcdef>
<paramdef>char<parameter> *name</parameter></paramdef>
@@ -289,18 +289,18 @@ independently each other.
<para>
The
-<function>_XOpenLC</function>
+<xref linkend='_XOpenLC' xrefstyle='select: title'/>
function opens a locale method which corresponds to the
specified locale name.
-<function>_XOpenLC</function>
+<xref linkend='_XOpenLC' xrefstyle='select: title'/>
calls a locale object loader, which is registered via
<function>_XlcAddLoader into the internal loader list. If the called loader </function>
is valid and successfully opens a locale,
-<function>_XOpenLC</function>
+<xref linkend='_XOpenLC' xrefstyle='select: title'/>
returns the XLCd. If the loader is invalid or failed to open a locale,
-<function>_XOpenLC</function>
+<xref linkend='_XOpenLC' xrefstyle='select: title'/>
calls the next loader. If all registered loaders cannot open a locale,
-<function>_XOpenLC</function>
+<xref linkend='_XOpenLC' xrefstyle='select: title'/>
returns NULL.
</para>
@@ -316,7 +316,7 @@ function returns an XLCd that are bound to current locale.
<emphasis role="bold">Close a Locale Method</emphasis>
</para>
-<funcsynopsis id='_xcloselc'>
+<funcsynopsis id='_XCloseLC'>
<funcprototype>
<funcdef>void <function> _XCloseLC</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -326,7 +326,7 @@ function returns an XLCd that are bound to current locale.
<para>
<!-- .LP -->
The
-<function>_XCloseLC</function>
+<xref linkend='_XCloseLC' xrefstyle='select: title'/>
function close a locale method the specified lcd.
</para>
@@ -334,7 +334,7 @@ function close a locale method the specified lcd.
<emphasis role="bold">Obtain Locale Method values</emphasis>
</para>
-<funcsynopsis id='_xgetlcvalues'>
+<funcsynopsis id='_XGetLCValues'>
<funcprototype>
<funcdef>char *<function>_XGetLCValues</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -343,7 +343,7 @@ function close a locale method the specified lcd.
<para>
The
-<function>_XGetLCValues</function>
+<xref linkend='_XGetLCValues' xrefstyle='select: title'/>
function returns NULL if no error occurred; otherwise, it returns the
name of the first argument that could not be obtained.
The following values are defined as standard arguments. Other values
@@ -445,7 +445,7 @@ typedef struct _XlcCharSetRec {
<emphasis role="bold">Get an XlcCharSet</emphasis>
</para>
-<funcsynopsis id='_xlcgetcharset'>
+<funcsynopsis id='_XlcGetCharSet'>
<funcprototype>
<funcdef>XlcCharSet <function> _XlcGetCharSet</function></funcdef>
<paramdef>char<parameter> *name</parameter></paramdef>
@@ -454,10 +454,10 @@ typedef struct _XlcCharSetRec {
<para>
The
-<function>_XlcGetCharSet</function>
+<xref linkend='_XlcGetCharSet' xrefstyle='select: title'/>
function gets an XlcCharSet which corresponds to the charset name
specified by "<emphasis remap='I'>name</emphasis>".
-<function>_XlcGetCharSet </function>
+<xref linkend='_XlcGetCharSet' xrefstyle='select: title'/>
returns NULL, if no XlcCharSet bound to specified "<emphasis remap='I'>name</emphasis>".
</para>
@@ -600,7 +600,7 @@ The following character sets are pre-registered.
<emphasis role="bold">Add an XlcCharSet</emphasis>
</para>
-<funcsynopsis id='_xlcaddcharset'>
+<funcsynopsis id='_XlcAddCharSet'>
<funcprototype>
<funcdef>Bool <function> _XlcAddCharSet</function></funcdef>
<paramdef>XlcCharSet<parameter> charset</parameter></paramdef>
@@ -609,7 +609,7 @@ The following character sets are pre-registered.
<para>
The
-<function>_XlcAddCharSet</function>
+<xref linkend='_XlcAddCharSet' xrefstyle='select: title'/>
function registers XlcCharSet specified by "<emphasis remap='I'>charset</emphasis>".
</para>
@@ -619,7 +619,7 @@ function registers XlcCharSet specified by "<emphasis remap='I'>charset</emphasi
<function>Obtain Character Set values</function>
</para>
-<funcsynopsis id='_xlcgetcsvalues'>
+<funcsynopsis id='_XlcGetCSValues'>
<funcprototype>
<funcdef>char * <function> _XlcGetCSValues</function></funcdef>
<paramdef>XlcCharSet<parameter> charset</parameter></paramdef>
@@ -629,7 +629,7 @@ function registers XlcCharSet specified by "<emphasis remap='I'>charset</emphasi
<para>
The
-<function>_XlcGetCSValues</function>
+<xref linkend='_XlcGetCSValues' xrefstyle='select: title'/>
function returns NULL if no error occurred;
otherwise, it returns the name of the first argument that could not
be obtained. The following values are defined as standard arguments.
@@ -726,7 +726,7 @@ typedef struct _XlcConvRec {
<function>Open a converter</function>
</para>
-<funcsynopsis id='_xlcopenconverter'>
+<funcsynopsis id='_XlcOpenConverter'>
<funcprototype>
<funcdef>XlcConv <function> _XlcOpenConverter</function></funcdef>
<paramdef>XLCd<parameter> from_lcd</parameter></paramdef>
@@ -737,7 +737,7 @@ typedef struct _XlcConvRec {
</funcsynopsis>
<para>
-<function>_XlcOpenConverter </function>
+<xref linkend='_XlcOpenConverter' xrefstyle='select: title'/>
function opens the converter which converts a text from specified
"<emphasis remap='I'>from_type</emphasis>" to specified "<emphasis remap='I'>to_type</emphasis>" encoding. If the
function cannot find proper converter or cannot open a corresponding
@@ -809,7 +809,7 @@ dependent.
<emphasis role="bold">Close a converter</emphasis>
</para>
-<funcsynopsis id='_xlccloseconverter'>
+<funcsynopsis id='_XlcCloseConverter'>
<funcprototype>
<funcdef>void <function> _XlcCloseConverter</function></funcdef>
<paramdef>XlcConv<parameter> conv</parameter></paramdef>
@@ -818,7 +818,7 @@ dependent.
<para>
The
-<function>_XlcCloseConverter</function>
+<xref linkend='_XlcCloseConverter' xrefstyle='select: title'/>
function closes the specified converter "<emphasis remap='I'>conv</emphasis>".
</para>
@@ -826,7 +826,7 @@ function closes the specified converter "<emphasis remap='I'>conv</emphasis>".
<emphasis role="bold">Code conversion</emphasis>
</para>
-<funcsynopsis id='_xlcconvert'>
+<funcsynopsis id='_XlcConvert'>
<funcprototype>
<funcdef>int <function> _XlcConvert</function></funcdef>
<paramdef>XlcConv<parameter> conv</parameter></paramdef>
@@ -841,7 +841,7 @@ function closes the specified converter "<emphasis remap='I'>conv</emphasis>".
<para>
The
-<function>_XlcConvert</function>
+<xref linkend='_XlcConvert' xrefstyle='select: title'/>
function converts a sequence of characters from one type, in the array
specified by "<emphasis remap='I'>from</emphasis>", into a sequence of corresponding characters
in another type, in the array specified by "<emphasis remap='I'>to</emphasis>". The types are
@@ -900,7 +900,7 @@ More than one segment cannot be converted in a call.
<emphasis role="bold">Reset a converter</emphasis>
</para>
-<funcsynopsis id='_xlcresetconverter'>
+<funcsynopsis id='_XlcResetConverter'>
<funcprototype>
<funcdef>void <function> _XlcResetConverter</function></funcdef>
<paramdef>XlcConv<parameter> conv</parameter></paramdef>
@@ -909,7 +909,7 @@ More than one segment cannot be converted in a call.
<para>
The
-<function>_XlcResetConverter </function>
+<xref linkend='_XlcResetConverter' xrefstyle='select: title'/>
function reset the specified converter "<emphasis remap='I'>conv</emphasis>".
</para>
@@ -925,7 +925,7 @@ typedef XlcConv (*XlcOpenConverterProc)(<emphasis remap='I'>from_lcd</emphasis>,
char <emphasis remap='I'>*to_type</emphasis>;
</literallayout>
-<funcsynopsis id='_xlcsetconverter'>
+<funcsynopsis id='_XlcSetConverter'>
<funcprototype>
<funcdef>Bool <function> _XlcSetConverter</function></funcdef>
<paramdef>XLCd<parameter> from_lcd</parameter></paramdef>
@@ -960,7 +960,7 @@ X Locale Database Definition document.
<emphasis role="bold">Get a resource from database</emphasis>
</para>
-<funcsynopsis id='_xlcgetresource'>
+<funcsynopsis id='_XlcGetResource'>
<funcprototype>
<funcdef>void <function> _XlcGetResource</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -973,7 +973,7 @@ X Locale Database Definition document.
<para>
The
-<function>_XlcGetResource</function>
+<xref linkend='_XlcGetResource' xrefstyle='select: title'/>
function obtains a locale dependent data which is associated with the
locale of specified "<emphasis remap='I'>lcd</emphasis>".
The locale data is provided by system locale or by X Locale Database
@@ -999,7 +999,7 @@ or freed by caller.
<emphasis role="bold">Get a locale relative file name</emphasis>
</para>
-<funcsynopsis id='_xlcfilename'>
+<funcsynopsis id='_XlcFileName'>
<funcprototype>
<funcdef>char *<function>_XlcFileName</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -1009,18 +1009,18 @@ or freed by caller.
<para>
The
-<function>_XlcFileName</function>
+<xref linkend='_XlcFileName' xrefstyle='select: title'/>
functions returns a file name which is bound to the specified "<emphasis remap='I'>lcd</emphasis>"
and "<emphasis remap='I'>category</emphasis>", as a null-terminated string. If no file name can
be found, or there is no readable file for the found file name,
-<function>_XlcFileName</function>
+<xref linkend='_XlcFileName' xrefstyle='select: title'/>
returns NULL. The returned file name should be freed by caller.
</para>
<para>
The rule for searching a file name is implementation dependent.
In current implementation,
-<function>_XlcFileName </function>
+<xref linkend='_XlcFileName' xrefstyle='select: title'/>
uses "{category}.dir" file as mapping table, which has pairs of
strings, a full locale name and a corresponding file name.
</para>
@@ -1034,14 +1034,14 @@ strings, a full locale name and a corresponding file name.
<emphasis role="bold">Compare Latin-1 strings</emphasis>
</para>
-<funcsynopsis id='_xlccompareisolatin1'>
+<funcsynopsis id='_XlcCompareISOLatin1'>
<funcprototype>
<funcdef>int <function> _XlcCompareISOLatin1</function></funcdef>
<paramdef>char*str1,<parameter> *str2</parameter></paramdef>
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='_xlcncompareisolatin1'>
+<funcsynopsis id='_XlcNCompareISOLatin1'>
<funcprototype>
<funcdef>int <function> _XlcNCompareISOLatin1</function></funcdef>
<paramdef>char*str1,<parameter> *str2</parameter></paramdef>
@@ -1071,7 +1071,7 @@ except that at most "<emphasis remap='I'>len</emphasis>" bytes are compared.
<emphasis role="bold">Resource Utility</emphasis>
</para>
-<funcsynopsis id='xlcnumber'>
+<funcsynopsis id='XlcNumber'>
<funcprototype>
<funcdef>int <function> XlcNumber</function></funcdef>
<paramdef>ArrayType<parameter> array</parameter></paramdef>
@@ -1082,7 +1082,7 @@ except that at most "<emphasis remap='I'>len</emphasis>" bytes are compared.
Similar to XtNumber.
</para>
-<funcsynopsis id='_xlccopyfromarg'>
+<funcsynopsis id='_XlcCopyFromArg'>
<funcprototype>
<funcdef>void <function> _XlcCopyFromArg</function></funcdef>
<paramdef>char<parameter> *src</parameter></paramdef>
@@ -1091,7 +1091,7 @@ Similar to XtNumber.
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='_xlccopytoarg'>
+<funcsynopsis id='_XlcCopyToArg'>
<funcprototype>
<funcdef>void <function> _XlcCopyToArg</function></funcdef>
<paramdef>char<parameter> *src</parameter></paramdef>
@@ -1107,7 +1107,7 @@ and
<function>_XtCopyToArg.</function>
</para>
-<funcsynopsis id='_xlccountvalist'>
+<funcsynopsis id='_XlcCountVaList'>
<funcprototype>
<funcdef>void <function> _XlcCountVaList</function></funcdef>
<paramdef>va_list<parameter> var</parameter></paramdef>
@@ -1120,7 +1120,7 @@ Similar to
<function>_XtCountVaList.</function>
</para>
-<funcsynopsis id='_xlcvatoarglist'>
+<funcsynopsis id='_XlcVaToArgList'>
<funcprototype>
<funcdef>void <function> _XlcVaToArgList</function></funcdef>
<paramdef>va_list<parameter> var</parameter></paramdef>
@@ -1152,7 +1152,7 @@ typedef struct _XlcResource {
#define XlcIgnoreMask (1L&lt;&lt;4)
</literallayout>
-<funcsynopsis id='_xlccompileresourcelist'>
+<funcsynopsis id='_XlcCompileResourceList'>
<funcprototype>
<funcdef>void <function> _XlcCompileResourceList</function></funcdef>
<paramdef>XlcResourceList<parameter> resources</parameter></paramdef>
@@ -1165,7 +1165,7 @@ Similar to
<function>_XtCompileResourceList.</function>
</para>
-<funcsynopsis id='_xlcgetvalues'>
+<funcsynopsis id='_XlcGetValues'>
<funcprototype>
<funcdef>char * <function> _XlcGetValues</function></funcdef>
<paramdef>XPointer<parameter> base</parameter></paramdef>
@@ -1181,7 +1181,7 @@ Similar to
Similar to XtGetSubvalues.
</para>
-<funcsynopsis id='_xlcsetvalues'>
+<funcsynopsis id='_XlcSetValues'>
<funcprototype>
<funcdef>char * <function> _XlcSetValues</function></funcdef>
<paramdef>XPointer<parameter> base</parameter></paramdef>
@@ -1205,7 +1205,7 @@ Similar to XtSetSubvalues.
The following are ANSI C/MSE Compatible Functions for non-ANSI C environment.
</para>
-<funcsynopsis id='_xmblen'>
+<funcsynopsis id='_Xmblen'>
<funcprototype>
<funcdef>int <function> _Xmblen</function></funcdef>
<paramdef>char<parameter> *str</parameter></paramdef>
@@ -1215,7 +1215,7 @@ The following are ANSI C/MSE Compatible Functions for non-ANSI C environment.
<para>
The
-<function>_Xmblen </function>
+<xref linkend='_Xmblen' xrefstyle='select: title'/>
function returns the number of characters pointed to by "<emphasis remap='I'>str</emphasis>".
Only "<emphasis remap='I'>len</emphasis>" bytes in "<emphasis remap='I'>str</emphasis>" are used in determining the
character count returned. "<emphasis remap='I'>Str</emphasis>" may point at characters from
@@ -1224,12 +1224,12 @@ any valid codeset in the current locale.
<para>
The call
-<function>_Xmblen</function>
+<xref linkend='_Xmblen' xrefstyle='select: title'/>
is equivalent to
_Xmbtowc(_Xmbtowc((<emphasis remap='I'>wchar_t*</emphasis>)NULL, <emphasis remap='I'>str</emphasis>, <emphasis remap='I'>len</emphasis>))
</para>
-<funcsynopsis id='_xmbtowc'>
+<funcsynopsis id='_Xmbtowc'>
<funcprototype>
<funcdef>int <function> _Xmbtowc</function></funcdef>
<paramdef>wchar_t<parameter> *wstr</parameter></paramdef>
@@ -1240,7 +1240,7 @@ _Xmbtowc(_Xmbtowc((<emphasis remap='I'>wchar_t*</emphasis>)NULL, <emphasis remap
<para>
The
-<function>_Xmbtowc</function>
+<xref linkend='_Xmbtowc' xrefstyle='select: title'/>
function converts the character(s) pointed to by "<emphasis remap='I'>str</emphasis>"
to their wide character representation(s) pointed to by "<emphasis remap='I'>wstr</emphasis>".
"<emphasis remap='I'>Len</emphasis>" is the number of bytes in "<emphasis remap='I'>str</emphasis>" to be converted.
@@ -1249,12 +1249,12 @@ The return value is the number of characters converted.
<para>
The call
-<function>_Xmbtowc</function>
+<xref linkend='_Xmbtowc' xrefstyle='select: title'/>
is equivalent to
_Xlcmbtowc((XLCd)NULL, <emphasis remap='I'>wstr</emphasis>, <emphasis remap='I'>str</emphasis>, <emphasis remap='I'>len</emphasis>)
</para>
-<funcsynopsis id='_xlcmbtowc'>
+<funcsynopsis id='_Xlcmbtowc'>
<funcprototype>
<funcdef>int <function> _Xlcmbtowc</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -1266,7 +1266,7 @@ _Xlcmbtowc((XLCd)NULL, <emphasis remap='I'>wstr</emphasis>, <emphasis remap='I'>
<para>
The
-<function>_Xlcmbtowc</function>
+<xref linkend='_Xlcmbtowc' xrefstyle='select: title'/>
function is identical to
<function>_Xmbtowc, </function>
except that it requires the "<emphasis remap='I'>lcd</emphasis>" argument. If "<emphasis remap='I'>lcd</emphasis>"
@@ -1277,7 +1277,7 @@ calls
to determine the current locale.
</para>
-<funcsynopsis id='_xwctomb'>
+<funcsynopsis id='_Xwctomb'>
<funcprototype>
<funcdef>int <function> _Xwctomb</function></funcdef>
<paramdef>char<parameter> *str</parameter></paramdef>
@@ -1287,7 +1287,7 @@ to determine the current locale.
<para>
The
-<function>_Xwctomb </function>
+<xref linkend='_Xwctomb' xrefstyle='select: title'/>
function converts a single wide character pointed to by "<emphasis remap='I'>wc</emphasis>" to
its multibyte representation pointed to by "<emphasis remap='I'>str</emphasis>".
On success, the return value is 1.
@@ -1295,12 +1295,12 @@ On success, the return value is 1.
<para>
The call
-<function>_Xwctomb</function>
+<xref linkend='_Xwctomb' xrefstyle='select: title'/>
is equivalent to
_Xlcwctomb((XLCd)NULL, <emphasis remap='I'>str</emphasis>, <emphasis remap='I'>wstr</emphasis>)
</para>
-<funcsynopsis id='_xlcwctomb'>
+<funcsynopsis id='_Xlcwctomb'>
<funcprototype>
<funcdef>int <function> _Xlcwctomb</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -1311,7 +1311,7 @@ _Xlcwctomb((XLCd)NULL, <emphasis remap='I'>str</emphasis>, <emphasis remap='I'>w
<para>
The
-<function>_Xlcwctomb</function>
+<xref linkend='_Xlcwctomb' xrefstyle='select: title'/>
function is identical to _Xwctomb, except that it requires the
"<emphasis remap='I'>lcd</emphasis>" argument. If "<emphasis remap='I'>lcd</emphasis>" is (XLCd) NULL,
<function>_Xlcwctomb, </function>
@@ -1320,7 +1320,7 @@ calls
to determine the current locale.
</para>
-<funcsynopsis id='_xmbstowcs'>
+<funcsynopsis id='_Xmbstowcs'>
<funcprototype>
<funcdef>int <function> _Xmbstowcs</function></funcdef>
<paramdef>wchar_t<parameter> *wstr</parameter></paramdef>
@@ -1331,7 +1331,7 @@ to determine the current locale.
<para>
The
-<function>_Xmbstowcs</function>
+<xref linkend='_Xmbstowcs' xrefstyle='select: title'/>
function converts the NULL-terminated string pointed to by "<emphasis remap='I'>str</emphasis>"
to its wide character string representation pointed to by "<emphasis remap='I'>wstr</emphasis>".
"<emphasis remap='I'>Len</emphasis>" is the number of characters in "<emphasis remap='I'>str</emphasis>" to be converted.
@@ -1339,12 +1339,12 @@ to its wide character string representation pointed to by "<emphasis remap='I'>w
<para>
The call
-<function>_Xmbstowcs</function>
+<xref linkend='_Xmbstowcs' xrefstyle='select: title'/>
is equivalent to
_Xlcmbstowcs((XLCd)NULL, <emphasis remap='I'>wstr</emphasis>, <emphasis remap='I'>str</emphasis>, <emphasis remap='I'>len</emphasis>)
</para>
-<funcsynopsis id='_xlcmbstowcs'>
+<funcsynopsis id='_Xlcmbstowcs'>
<funcprototype>
<funcdef>int <function> _Xlcmbstowcs</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -1356,7 +1356,7 @@ _Xlcmbstowcs((XLCd)NULL, <emphasis remap='I'>wstr</emphasis>, <emphasis remap='I
<para>
The
-<function>_Xlcmbstowcs </function>
+<xref linkend='_Xlcmbstowcs' xrefstyle='select: title'/>
function is identical to _Xmbstowcs, except that it requires the
"<emphasis remap='I'>lcd</emphasis>" argument. If "<emphasis remap='I'>lcd</emphasis>" is (XLCd) NULL,
<function>_Xlcmbstowcs, </function>
@@ -1365,7 +1365,7 @@ calls
to determine the current locale.
</para>
-<funcsynopsis id='_xwcstombs'>
+<funcsynopsis id='_Xwcstombs'>
<funcprototype>
<funcdef>int <function> _Xwcstombs</function></funcdef>
<paramdef>char<parameter> *str</parameter></paramdef>
@@ -1376,7 +1376,7 @@ to determine the current locale.
<para>
The
-<function>_Xwcstombs </function>
+<xref linkend='_Xwcstombs' xrefstyle='select: title'/>
function converts the (wchar_t) NULL terminated wide character string
pointed to by "<emphasis remap='I'>wstr</emphasis>" to the NULL terminated multibyte string
pointed to by "<emphasis remap='I'>str</emphasis>".
@@ -1384,12 +1384,12 @@ pointed to by "<emphasis remap='I'>str</emphasis>".
<para>
The call
-<function>_Xwcstombs </function>
+<xref linkend='_Xwcstombs' xrefstyle='select: title'/>
is equivalent to
_Xlcwcstombs((XLCd)NULL, <emphasis remap='I'>str</emphasis>, <emphasis remap='I'>wstr</emphasis>, <emphasis remap='I'>len</emphasis>)
</para>
-<funcsynopsis id='_xlcwcstombs'>
+<funcsynopsis id='_Xlcwcstombs'>
<funcprototype>
<funcdef>int <function> _Xlcwcstombs</function></funcdef>
<paramdef>XLCd<parameter> lcd</parameter></paramdef>
@@ -1401,7 +1401,7 @@ _Xlcwcstombs((XLCd)NULL, <emphasis remap='I'>str</emphasis>, <emphasis remap='I'
<para>
The
-<function>_Xlcwcstombs </function>
+<xref linkend='_Xlcwcstombs' xrefstyle='select: title'/>
function is identical to _Xwcstombs, except that it requires the
"<emphasis remap='I'>lcd</emphasis>" argument. If "<emphasis remap='I'>lcd</emphasis>" is (XLCd) NULL,
<function>_Xlcwcstombs, </function>
@@ -1410,7 +1410,7 @@ calls
to determine the current locale.
</para>
-<funcsynopsis id='_xwcslen'>
+<funcsynopsis id='_Xwcslen'>
<funcprototype>
<funcdef>int <function> _Xwcslen</function></funcdef>
<paramdef>wchar_t<parameter> *wstr</parameter></paramdef>
@@ -1419,12 +1419,12 @@ to determine the current locale.
<para>
The
-<function>_Xwcslen </function>
+<xref linkend='_Xwcslen' xrefstyle='select: title'/>
function returns the count of wide characters in the (wchar_t) NULL
terminated wide character string pointed to by "<emphasis remap='I'>wstr</emphasis>".
</para>
-<funcsynopsis id='_xwcscpy'>
+<funcsynopsis id='_Xwcscpy'>
<funcprototype>
<funcdef>wchar_t *<function> _Xwcscpy</function></funcdef>
<paramdef>wchar_t<parameter> *wstr1</parameter></paramdef>
@@ -1432,7 +1432,7 @@ terminated wide character string pointed to by "<emphasis remap='I'>wstr</emphas
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='_xwcsncpy'>
+<funcsynopsis id='_Xwcsncpy'>
<funcprototype>
<funcdef>wchar_t * <function> _Xwcsncpy</function></funcdef>
<paramdef>wchar_t<parameter> *wstr1</parameter></paramdef>
@@ -1443,7 +1443,7 @@ terminated wide character string pointed to by "<emphasis remap='I'>wstr</emphas
<para>
The
-<function>_Xwcscpy </function>
+<xref linkend='_Xwcscpy' xrefstyle='select: title'/>
function copies the (wchar_t) NULL terminated wide character string
pointed to by "<emphasis remap='I'>wstr2</emphasis>" to the object pointed at by "<emphasis remap='I'>wstr1</emphasis>".
"<emphasis remap='I'>Wstr1</emphasis>" is (wchar_t) NULL terminated. The return value is a
@@ -1452,21 +1452,21 @@ pointer to "<emphasis remap='I'>wstr1</emphasis>".
<para>
The
-<function>_Xwcsncpy</function>
+<xref linkend='_Xwcsncpy' xrefstyle='select: title'/>
function is identical to
<function>_Xwcscpy, </function>
except that it copies "<emphasis remap='I'>len</emphasis>" wide characters from the object
pointed to by "<emphasis remap='I'>wstr2</emphasis>" to the object pointed to "<emphasis remap='I'>wstr1</emphasis>".
</para>
-<funcsynopsis id='_xwcscmp'>
+<funcsynopsis id='_Xwcscmp'>
<funcprototype>
<funcdef>int <function> _Xwcscmp</function></funcdef>
<paramdef>wchar_t*wstr1,<parameter> *wstr2</parameter></paramdef>
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='_xwcsncmp'>
+<funcsynopsis id='_Xwcsncmp'>
<funcprototype>
<funcdef>int <function> _Xwcsncmp</function></funcdef>
<paramdef>wchar_t*wstr1,<parameter> *wstr2</parameter></paramdef>
@@ -1476,7 +1476,7 @@ pointed to by "<emphasis remap='I'>wstr2</emphasis>" to the object pointed to "<
<para>
The
-<function>_Xwcscmp </function>
+<xref linkend='_Xwcscmp' xrefstyle='select: title'/>
function compares two (wchar_t) NULL terminated wide character strings.
The value returned is an integer less than, equal to, or greater than zero,
depending on whether "<emphasis remap='I'>wstr1</emphasis>" is lexicographicly less then, equal to,
@@ -1485,7 +1485,7 @@ or greater than "<emphasis remap='I'>str2</emphasis>".
<para>
The
-<function>_Xwcsncmp </function>
+<xref linkend='_Xwcsncmp' xrefstyle='select: title'/>
function is identical to
<function>_XlcCompareISOLatin1, </function>
except that at most "<emphasis remap='I'>len</emphasis>" wide characters are compared.
diff --git a/libX11/specs/i18n/localedb/localedb.xml b/libX11/specs/i18n/localedb/localedb.xml
index c2feccff8..c08516125 100644
--- a/libX11/specs/i18n/localedb/localedb.xml
+++ b/libX11/specs/i18n/localedb/localedb.xml
@@ -75,7 +75,7 @@ this Software without prior written authorization from the X Consortium.
</legalnotice>
</bookinfo>
-<chapter id="localeDatabase">
+<chapter id='LocaleDB'>
<title>LocaleDB</title>
<sect1 id="General">
@@ -302,8 +302,8 @@ unescaped, is ignored.
</para>
</sect1>
-<sect1 id="Contents_of_Database_">
-<title>Contents of Database </title>
+<sect1 id='Contents_of_Database'>
+<title>Contents of Database</title>
<para>
The available categories and classes depend on implementation, because
different platform will require different information set.
diff --git a/libX11/specs/i18n/trans/trans.xml b/libX11/specs/i18n/trans/trans.xml
index fe16c1d98..afbc69403 100644
--- a/libX11/specs/i18n/trans/trans.xml
+++ b/libX11/specs/i18n/trans/trans.xml
@@ -75,7 +75,7 @@ this Software without prior written authorization from the X Consortium.
</legalnotice>
</bookinfo>
-<chapter id="xim_transport_specification">
+<chapter id='X_Transport_Specification'>
<title>X Transport Specification</title>
<sect1 id="Introduction">
@@ -269,7 +269,7 @@ described below.
</sect2>
</sect1>
-<sect1 id="The_interface_transport_layer_functions">
+<sect1 id='The_interfacetransport_layer_functions'>
<title>The interface/transport layer functions</title>
<para>
Following functions are used for the transport interface.
@@ -339,7 +339,7 @@ provided so as to make easier to implement the Protocol Layer.
<title>Opening connection</title>
<para>
<!-- .LP -->
-When <function>XOpenIM</function> is called, the following function is called to connect
+When <olink targetdoc='libX11' targetptr='XOpenIM'><function>XOpenIM</function></olink> is called, the following function is called to connect
with the IM Server.
</para>
@@ -369,7 +369,7 @@ connection is established successfully, this function returns True.
The Alternative Entry for this function is:
</para>
-<funcsynopsis id='_ximconnect'>
+<funcsynopsis id='_XimConnect'>
<funcprototype>
<funcdef>Bool <function> _XimConnect</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -397,7 +397,7 @@ Specifies XIM structure address.
<!-- .XE -->
<para>
<!-- .LP -->
-When <function>XCloseIM</function> is called, the following function is called to
+When <olink targetdoc='libX11' targetptr='XCloseIM'><function>XCloseIM</function></olink> is called, the following function is called to
disconnect the connection with the IM Server. The Alternative Entry
for this function is:
</para>
@@ -429,7 +429,7 @@ connection is closed successfully, this function returns True. The
Alternative Entry for this function is:
</para>
-<funcsynopsis id='_ximshutdown'>
+<funcsynopsis id='_XimShutdown'>
<funcprototype>
<funcdef>Bool <function>_XimShutdown</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -458,7 +458,7 @@ The following function is called, when Xlib needs to write data to the
IM Server.
</para>
-<funcsynopsis id='_ximwrite'>
+<funcsynopsis id='_XimWrite'>
<funcprototype>
<funcdef>Bool <function> _XimWrite</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -559,7 +559,7 @@ The following function is called when Xlib waits for response from IM
server synchronously.
</para>
-<funcsynopsis id='_ximread'>
+<funcsynopsis id='_XimRead'>
<funcprototype>
<funcdef>Bool <function> _XimRead</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -798,7 +798,7 @@ transport layer. If data transfer is completed, the function returns
True. The Alternative Entry for this function is:
</para>
-<funcsynopsis id='_ximflush'>
+<funcsynopsis id='_XimFlush'>
<funcprototype>
<funcdef>void <function> _XimFlush</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -833,7 +833,7 @@ will call asynchronous data handler in the protocol layer. Then it
calls dispatchers in the transport layer. The dispatchers are
implemented by the protocol layer. This function must store the
information and prepare for later call of the dispatchers using
-<function>_XimCallDispatcher</function>.
+<xref linkend='_XimCallDispatcher' xrefstyle='select: title'/>.
</para>
<para>
@@ -953,7 +953,7 @@ that the data has been processed by the upper layer. The Alternative
Entry for this function is:
</para>
-<funcsynopsis id='_ximregisterdispatcher'>
+<funcsynopsis id='_XimRegisterDispatcher'>
<funcprototype>
<funcdef>Bool <function> _XimRegisterDispatcher</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -1062,7 +1062,7 @@ Protocol packet unit or not.
The Alternative Entry for this function is:
</para>
-<funcsynopsis id='_ximcalldispatcher'>
+<funcsynopsis id='_XimCallDispatcher'>
<funcprototype>
<funcdef>Bool <function> _XimCallDispatcher</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -1363,8 +1363,8 @@ lager than this size, is sent via Property.
</sect3>
-<sect3 id="read_write_">
-<title>read/write </title>
+<sect3 id='readwrite'>
+<title>read/write</title>
<para>
The data is transferred via either ClientMessage or Window Property in
the X Window System.
@@ -1589,7 +1589,7 @@ The arguments of the XChangeProperty are as follows:
<para>
(*1) The read/write property ATOM allocates the following strings by
-<function>XInternAtom</function>.
+<olink targetdoc='libX11' targetptr='XInternAtom'><function>XInternAtom</function></olink>.
"_clientXXX"
</para>
@@ -1888,7 +1888,7 @@ The arguments of the XChangeProperty are as follows:
<para>
(*1) The read/write property ATOM allocates some strings, which are not
-allocated by the client, by <function>XInternAtom</function>.
+allocated by the client, by <olink targetdoc='libX11' targetptr='XInternAtom'><function>XInternAtom</function></olink>.
</para>
<para>
diff --git a/libX11/specs/libX11/AppA.xml b/libX11/specs/libX11/AppA.xml
index 0bd585cdd..6e168ac88 100644
--- a/libX11/specs/libX11/AppA.xml
+++ b/libX11/specs/libX11/AppA.xml
@@ -20,130 +20,130 @@ and the corresponding protocol request that it generates.
</thead>
<tbody>
<row>
- <entry><function>XActivateScreenSaver</function></entry>
+ <entry><xref linkend='XActivateScreenSaver' xrefstyle='select: title'/></entry>
<entry><systemitem>ForceScreenSaver</systemitem></entry></row>
<row>
- <entry><function>XAddHost</function></entry>
+ <entry><xref linkend='XAddHost' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeHosts</systemitem></entry>
</row>
<row>
- <entry><function>XAddHosts</function></entry>
+ <entry><xref linkend='XAddHosts' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeHosts</systemitem></entry>
</row>
<row>
- <entry><function>XAddToSaveSet</function></entry>
+ <entry><xref linkend='XAddToSaveSet' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeSaveSet</systemitem></entry>
</row>
<row>
- <entry><function>XAllocColor</function></entry>
+ <entry><xref linkend='XAllocColor' xrefstyle='select: title'/></entry>
<entry><systemitem>AllocColor</systemitem></entry>
</row>
<row>
- <entry><function>XAllocColorCells</function></entry>
+ <entry><xref linkend='XAllocColorCells' xrefstyle='select: title'/></entry>
<entry><systemitem>AllocColorCells</systemitem></entry>
</row>
<row>
- <entry><function>XAllocColorPlanes</function></entry>
+ <entry><xref linkend='XAllocColorPlanes' xrefstyle='select: title'/></entry>
<entry><systemitem>AllocColorPlanes</systemitem></entry>
</row>
<row>
- <entry><function>XAllocNamedColor</function></entry>
+ <entry><xref linkend='XAllocNamedColor' xrefstyle='select: title'/></entry>
<entry><systemitem>AllocNamedColor</systemitem></entry>
</row>
<row>
- <entry><function>XAllowEvents</function></entry>
+ <entry><xref linkend='XAllowEvents' xrefstyle='select: title'/></entry>
<entry><systemitem>AllowEvents</systemitem></entry>
</row>
<row>
- <entry><function>XAutoRepeatOff</function></entry>
+ <entry><xref linkend='XAutoRepeatOff' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeKeyboardControl</systemitem></entry>
</row>
<row>
- <entry><function>XAutoRepeatOn</function></entry>
+ <entry><xref linkend='XAutoRepeatOn' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeKeyboardControl</systemitem></entry>
</row>
<row>
- <entry><function>XBell</function></entry>
+ <entry><xref linkend='XBell' xrefstyle='select: title'/></entry>
<entry><systemitem>Bell</systemitem></entry>
</row>
<row>
- <entry><function>XChangeActivePointerGrab</function></entry>
+ <entry><xref linkend='XChangeActivePointerGrab' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeActivePointerGrab</systemitem></entry>
</row>
<row>
- <entry><function>XChangeGC</function></entry>
+ <entry><xref linkend='XChangeGC' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XChangeKeyboardControl</function></entry>
+ <entry><xref linkend='XChangeKeyboardControl' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeKeyboardControl</systemitem></entry>
</row>
<row>
- <entry><function>XChangeKeyboardMapping</function></entry>
+ <entry><xref linkend='XChangeKeyboardMapping' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeKeyboardMapping</systemitem></entry>
</row>
<row>
- <entry><function>XChangePointerControl</function></entry>
+ <entry><xref linkend='XChangePointerControl' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangePointerControl</systemitem></entry>
</row>
<row>
- <entry><function>XChangeProperty</function></entry>
+ <entry><xref linkend='XChangeProperty' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XChangeSaveSet</function></entry>
+ <entry><xref linkend='XChangeSaveSet' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeSaveSet</systemitem></entry>
</row>
<row>
- <entry><function>XChangeWindowAttributes</function></entry>
+ <entry><xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XCirculateSubwindows</function></entry>
+ <entry><xref linkend='XCirculateSubwindows' xrefstyle='select: title'/></entry>
<entry><systemitem>CirculateWindow</systemitem></entry>
</row>
<row>
- <entry><function>XCirculateSubwindowsDown</function></entry>
+ <entry><xref linkend='XCirculateSubwindowsDown' xrefstyle='select: title'/></entry>
<entry><systemitem>CirculateWindow</systemitem></entry>
</row>
<row>
- <entry><function>XCirculateSubwindowsUp</function></entry>
+ <entry><xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/></entry>
<entry><systemitem>CirculateWindow</systemitem></entry>
</row>
<row>
- <entry><function>XClearArea</function></entry>
+ <entry><xref linkend='XClearArea' xrefstyle='select: title'/></entry>
<entry><systemitem>ClearArea</systemitem></entry>
</row>
<row>
- <entry><function>XClearWindow</function></entry>
+ <entry><xref linkend='XClearWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ClearArea</systemitem></entry>
</row>
<row>
- <entry><function>XConfigureWindow</function></entry>
+ <entry><xref linkend='XConfigureWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry><function>XConvertSelection</function></entry>
+ <entry><xref linkend='XConvertSelection' xrefstyle='select: title'/></entry>
<entry><systemitem>ConvertSelection</systemitem></entry>
</row>
<row>
- <entry><function>XCopyArea</function></entry>
+ <entry><xref linkend='XCopyArea' xrefstyle='select: title'/></entry>
<entry><systemitem>CopyArea</systemitem></entry>
</row>
<row>
- <entry><function>XCopyColormapAndFree</function></entry>
+ <entry><xref linkend='XCopyColormapAndFree' xrefstyle='select: title'/></entry>
<entry><systemitem>CopyColormapAndFree</systemitem></entry>
</row>
<row>
- <entry><function>XCopyGC</function></entry>
+ <entry><xref linkend='XCopyGC' xrefstyle='select: title'/></entry>
<entry><systemitem>CopyGC</systemitem></entry>
</row>
<row>
- <entry><function>XCopyPlane</function></entry>
+ <entry><xref linkend='XCopyPlane' xrefstyle='select: title'/></entry>
<entry><systemitem>CopyPlane</systemitem></entry>
</row>
<row>
- <entry morerows="3"><function>XCreateBitmapFromData</function></entry>
+ <entry morerows="3"><xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateGC</systemitem></entry>
</row>
<row>
@@ -159,27 +159,27 @@ and the corresponding protocol request that it generates.
<entry><systemitem>PutImage</systemitem></entry>
</row>
<row>
- <entry><function>XCreateColormap</function></entry>
+ <entry><xref linkend='XCreateColormap' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateColormap</systemitem></entry>
</row>
<row>
- <entry><function>XCreateFontCursor</function></entry>
+ <entry><xref linkend='XCreateFontCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateGlyphCursor</systemitem></entry>
</row>
<row>
- <entry><function>XCreateGC</function></entry>
+ <entry><xref linkend='XCreateGC' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateGC</systemitem></entry>
</row>
<row>
- <entry><function>XCreateGlyphCursor</function></entry>
+ <entry><xref linkend='XCreateGlyphCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateGlyphCursor</systemitem></entry>
</row>
<row>
- <entry><function>XCreatePixmap</function></entry>
+ <entry><xref linkend='XCreatePixmap' xrefstyle='select: title'/></entry>
<entry><systemitem>CreatePixmap</systemitem></entry>
</row>
<row>
- <entry><function>XCreatePixmapCursor</function></entry>
+ <entry><xref linkend='XCreatePixmapCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateCursor</systemitem></entry>
</row>
<row>
@@ -199,243 +199,243 @@ and the corresponding protocol request that it generates.
<entry><systemitem>PutImage</systemitem></entry>
</row>
<row>
- <entry><function>XCreateSimpleWindow</function></entry>
+ <entry><xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateWindow</systemitem></entry>
</row>
<row>
- <entry><function>XCreateWindow</function></entry>
+ <entry><xref linkend='XCreateWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateWindow</systemitem></entry>
</row>
<row>
- <entry><function>XDefineCursor</function></entry>
+ <entry><xref linkend='XDefineCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XDeleteProperty</function></entry>
+ <entry><xref linkend='XDeleteProperty' xrefstyle='select: title'/></entry>
<entry><systemitem>DeleteProperty</systemitem></entry>
</row>
<row>
- <entry><function>XDestroySubwindows</function></entry>
+ <entry><xref linkend='XDestroySubwindows' xrefstyle='select: title'/></entry>
<entry><systemitem>DestroySubwindows</systemitem></entry>
</row>
<row>
- <entry><function>XDestroyWindow</function></entry>
+ <entry><xref linkend='XDestroyWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>DestroyWindow</systemitem></entry>
</row>
<row>
- <entry><function>XDisableAccessControl</function></entry>
+ <entry><xref linkend='XDisableAccessControl' xrefstyle='select: title'/></entry>
<entry><systemitem>SetAccessControl</systemitem></entry>
</row>
<row>
- <entry><function>XDrawArc</function></entry>
+ <entry><xref linkend='XDrawArc' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyArc</systemitem></entry>
</row>
<row>
- <entry><function>XDrawArcs</function></entry>
+ <entry><xref linkend='XDrawArcs' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyArc</systemitem></entry>
</row>
<row>
- <entry><function>XDrawImageString</function></entry>
+ <entry><xref linkend='XDrawImageString' xrefstyle='select: title'/></entry>
<entry><systemitem>ImageText8</systemitem></entry>
</row>
<row>
- <entry><function>XDrawImageString16</function></entry>
+ <entry><xref linkend='XDrawImageString16' xrefstyle='select: title'/></entry>
<entry><systemitem>ImageText16</systemitem></entry>
</row>
<row>
- <entry><function>XDrawLine</function></entry>
+ <entry><xref linkend='XDrawLine' xrefstyle='select: title'/></entry>
<entry><systemitem>PolySegment</systemitem></entry>
</row>
<row>
- <entry><function>XDrawLines</function></entry>
+ <entry><xref linkend='XDrawLines' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyLine</systemitem></entry>
</row>
<row>
- <entry><function>XDrawPoint</function></entry>
+ <entry><xref linkend='XDrawPoint' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyPoint</systemitem></entry>
</row>
<row>
- <entry><function>XDrawPoints</function></entry>
+ <entry><xref linkend='XDrawPoints' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyPoint</systemitem></entry>
</row>
<row>
- <entry><function>XDrawRectangle</function></entry>
+ <entry><xref linkend='XDrawRectangle' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyRectangle</systemitem></entry>
</row>
<row>
- <entry><function>XDrawRectangles</function></entry>
+ <entry><xref linkend='XDrawRectangles' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyRectangle</systemitem></entry>
</row>
<row>
- <entry><function>XDrawSegments</function></entry>
+ <entry><xref linkend='XDrawSegments' xrefstyle='select: title'/></entry>
<entry><systemitem>PolySegment</systemitem></entry>
</row>
<row>
- <entry><function>XDrawString</function></entry>
+ <entry><xref linkend='XDrawString' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyText8</systemitem></entry>
</row>
<row>
- <entry><function>XDrawString16</function></entry>
+ <entry><xref linkend='XDrawString16' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyText16</systemitem></entry>
</row>
<row>
- <entry><function>XDrawText</function></entry>
+ <entry><xref linkend='XDrawText' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyText8</systemitem></entry>
</row>
<row>
- <entry><function>XDrawText16</function></entry>
+ <entry><xref linkend='XDrawText16' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyText16</systemitem></entry>
</row>
<row>
- <entry><function>XEnableAccessControl</function></entry>
+ <entry><xref linkend='XEnableAccessControl' xrefstyle='select: title'/></entry>
<entry><systemitem>SetAccessControl</systemitem></entry>
</row>
<row>
- <entry><function>XFetchBytes</function></entry>
+ <entry><xref linkend='XFetchBytes' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XFetchName</function></entry>
+ <entry><xref linkend='XFetchName' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XFillArc</function></entry>
+ <entry><xref linkend='XFillArc' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyFillArc</systemitem></entry>
</row>
<row>
- <entry><function>XFillArcs</function></entry>
+ <entry><xref linkend='XFillArcs' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyFillArc</systemitem></entry>
</row>
<row>
- <entry><function>XFillPolygon</function></entry>
+ <entry><xref linkend='XFillPolygon' xrefstyle='select: title'/></entry>
<entry><systemitem>FillPoly</systemitem></entry>
</row>
<row>
- <entry><function>XFillRectangle</function></entry>
+ <entry><xref linkend='XFillRectangle' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyFillRectangle</systemitem></entry>
</row>
<row>
- <entry><function>XFillRectangles</function></entry>
+ <entry><xref linkend='XFillRectangles' xrefstyle='select: title'/></entry>
<entry><systemitem>PolyFillRectangle</systemitem></entry>
</row>
<row>
- <entry><function>XForceScreenSaver</function></entry>
+ <entry><xref linkend='XForceScreenSaver' xrefstyle='select: title'/></entry>
<entry><systemitem>ForceScreenSaver</systemitem></entry>
</row>
<row>
- <entry><function>XFreeColormap</function></entry>
+ <entry><xref linkend='XFreeColormap' xrefstyle='select: title'/></entry>
<entry><systemitem>FreeColormap</systemitem></entry>
</row>
<row>
- <entry><function>XFreeColors</function></entry>
+ <entry><xref linkend='XFreeColors' xrefstyle='select: title'/></entry>
<entry><systemitem>FreeColors</systemitem></entry>
</row>
<row>
- <entry><function>XFreeCursor</function></entry>
+ <entry><xref linkend='XFreeCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>FreeCursor</systemitem></entry>
</row>
<row>
- <entry><function>XFreeFont</function></entry>
+ <entry><xref linkend='XFreeFont' xrefstyle='select: title'/></entry>
<entry><systemitem>CloseFont</systemitem></entry>
</row>
<row>
- <entry><function>XFreeGC</function></entry>
+ <entry><xref linkend='XFreeGC' xrefstyle='select: title'/></entry>
<entry><systemitem>FreeGC</systemitem></entry>
</row>
<row>
- <entry><function>XFreePixmap</function></entry>
+ <entry><xref linkend='XFreePixmap' xrefstyle='select: title'/></entry>
<entry><systemitem>FreePixmap</systemitem></entry>
</row>
<row>
- <entry><function>XGetAtomName</function></entry>
+ <entry><xref linkend='XGetAtomName' xrefstyle='select: title'/></entry>
<entry><systemitem>GetAtomName</systemitem></entry>
</row>
<row>
- <entry><function>XGetClassHint</function></entry>
+ <entry><xref linkend='XGetClassHint' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetFontPath</function></entry>
+ <entry><xref linkend='XGetFontPath' xrefstyle='select: title'/></entry>
<entry><systemitem>GetFontPath</systemitem></entry>
</row>
<row>
- <entry><function>XGetGeometry</function></entry>
+ <entry><xref linkend='XGetGeometry' xrefstyle='select: title'/></entry>
<entry><systemitem>GetGeometry</systemitem></entry>
</row>
<row>
- <entry><function>XGetIconName</function></entry>
+ <entry><xref linkend='XGetIconName' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetIconSizes</function></entry>
+ <entry><xref linkend='XGetIconSizes' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetImage</function></entry>
+ <entry><xref linkend='XGetImage' xrefstyle='select: title'/></entry>
<entry><systemitem>GetImage</systemitem></entry>
</row>
<row>
- <entry><function>XGetInputFocus</function></entry>
+ <entry><xref linkend='XGetInputFocus' xrefstyle='select: title'/></entry>
<entry><systemitem>GetInputFocus</systemitem></entry>
</row>
<row>
- <entry><function>XGetKeyboardControl</function></entry>
+ <entry><xref linkend='XGetKeyboardControl' xrefstyle='select: title'/></entry>
<entry><systemitem>GetKeyboardControl</systemitem></entry>
</row>
<row>
- <entry><function>XGetKeyboardMapping</function></entry>
+ <entry><xref linkend='XGetKeyboardMapping' xrefstyle='select: title'/></entry>
<entry><systemitem>GetKeyboardMapping</systemitem></entry>
</row>
<row>
- <entry><function>XGetModifierMapping</function></entry>
+ <entry><xref linkend='XGetModifierMapping' xrefstyle='select: title'/></entry>
<entry><systemitem>GetModifierMapping</systemitem></entry>
</row>
<row>
- <entry><function>XGetMotionEvents</function></entry>
+ <entry><xref linkend='XGetMotionEvents' xrefstyle='select: title'/></entry>
<entry><systemitem>GetMotionEvents</systemitem></entry>
</row>
<row>
- <entry><function>XGetNormalHints</function></entry>
+ <entry><xref linkend='XGetNormalHints' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetPointerControl</function></entry>
+ <entry><xref linkend='XGetPointerControl' xrefstyle='select: title'/></entry>
<entry><systemitem>GetPointerControl</systemitem></entry>
</row>
<row>
- <entry><function>XGetPointerMapping</function></entry>
+ <entry><xref linkend='XGetPointerMapping' xrefstyle='select: title'/></entry>
<entry><systemitem>GetPointerMapping</systemitem></entry>
</row>
<row>
- <entry><function>XGetRGBColormaps</function></entry>
+ <entry><xref linkend='XGetRGBColormaps' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetScreenSaver</function></entry>
+ <entry><xref linkend='XGetScreenSaver' xrefstyle='select: title'/></entry>
<entry><systemitem>GetScreenSaver</systemitem></entry>
</row>
<row>
- <entry><function>XGetSelectionOwner</function></entry>
+ <entry><xref linkend='XGetSelectionOwner' xrefstyle='select: title'/></entry>
<entry><systemitem>GetSelectionOwner</systemitem></entry>
</row>
<row>
- <entry><function>XGetSizeHints</function></entry>
+ <entry><xref linkend='XGetSizeHints' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetTextProperty</function></entry>
+ <entry><xref linkend='XGetTextProperty' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetTransientForHint</function></entry>
+ <entry><xref linkend='XGetTransientForHint' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetWMClientMachine</function></entry>
+ <entry><xref linkend='XGetWMClientMachine' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XGetWMColormapWindows</function></entry>
+ <entry morerows="1"><xref linkend='XGetWMColormapWindows' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
@@ -443,23 +443,23 @@ and the corresponding protocol request that it generates.
<entry><systemitem>InternAtom</systemitem></entry>
</row>
<row>
- <entry><function>XGetWMHints</function></entry>
+ <entry><xref linkend='XGetWMHints' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetWMIconName</function></entry>
+ <entry><xref linkend='XGetWMIconName' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetWMName</function></entry>
+ <entry><xref linkend='XGetWMName' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetWMNormalHints</function></entry>
+ <entry><xref linkend='XGetWMNormalHints' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XGetWMProtocols</function></entry>
+ <entry morerows="1"><xref linkend='XGetWMProtocols' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
@@ -467,11 +467,11 @@ and the corresponding protocol request that it generates.
<entry><systemitem>InternAtom</systemitem></entry>
</row>
<row>
- <entry><function>XGetWMSizeHints</function></entry>
+ <entry><xref linkend='XGetWMSizeHints' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XGetWindowAttributes</function></entry>
+ <entry morerows="1"><xref linkend='XGetWindowAttributes' xrefstyle='select: title'/></entry>
<entry><systemitem>GetWindowAttributes</systemitem></entry>
</row>
<row>
@@ -479,35 +479,35 @@ and the corresponding protocol request that it generates.
<entry><systemitem>GetGeometry</systemitem></entry>
</row>
<row>
- <entry><function>XGetWindowProperty</function></entry>
+ <entry><xref linkend='XGetWindowProperty' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGetZoomHints</function></entry>
+ <entry><xref linkend='XGetZoomHints' xrefstyle='select: title'/></entry>
<entry><systemitem>GetProperty</systemitem></entry>
</row>
<row>
- <entry><function>XGrabButton</function></entry>
+ <entry><xref linkend='XGrabButton' xrefstyle='select: title'/></entry>
<entry><systemitem>GrabButton</systemitem></entry>
</row>
<row>
- <entry><function>XGrabKey</function></entry>
+ <entry><xref linkend='XGrabKey' xrefstyle='select: title'/></entry>
<entry><systemitem>GrabKey</systemitem></entry>
</row>
<row>
- <entry><function>XGrabKeyboard</function></entry>
+ <entry><xref linkend='XGrabKeyboard' xrefstyle='select: title'/></entry>
<entry><systemitem>GrabKeyboard</systemitem></entry>
</row>
<row>
- <entry><function>XGrabPointer</function></entry>
+ <entry><xref linkend='XGrabPointer' xrefstyle='select: title'/></entry>
<entry><systemitem>GrabPointer</systemitem></entry>
</row>
<row>
- <entry><function>XGrabServer</function></entry>
+ <entry><xref linkend='XGrabServer' xrefstyle='select: title'/></entry>
<entry><systemitem>GrabServer</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XIconifyWindow</function></entry>
+ <entry morerows="1"><xref linkend='XIconifyWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>InternAtom</systemitem></entry>
</row>
<row>
@@ -515,51 +515,51 @@ and the corresponding protocol request that it generates.
<entry><systemitem>SendEvent</systemitem></entry>
</row>
<row>
- <entry><function>XInitExtension</function></entry>
+ <entry><xref linkend='XInitExtension' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryExtension</systemitem></entry>
</row>
<row>
- <entry><function>XInstallColormap</function></entry>
+ <entry><xref linkend='XInstallColormap' xrefstyle='select: title'/></entry>
<entry><systemitem>InstallColormap</systemitem></entry>
</row>
<row>
- <entry><function>XInternAtom</function></entry>
+ <entry><xref linkend='XInternAtom' xrefstyle='select: title'/></entry>
<entry><systemitem>InternAtom</systemitem></entry>
</row>
<row>
- <entry><function>XKillClient</function></entry>
+ <entry><xref linkend='XKillClient' xrefstyle='select: title'/></entry>
<entry><systemitem>KillClient</systemitem></entry>
</row>
<row>
- <entry><function>XListExtensions</function></entry>
+ <entry><xref linkend='XListExtensions' xrefstyle='select: title'/></entry>
<entry><systemitem>ListExtensions</systemitem></entry>
</row>
<row>
- <entry><function>XListFonts</function></entry>
+ <entry><xref linkend='XListFonts' xrefstyle='select: title'/></entry>
<entry><systemitem>ListFonts</systemitem></entry>
</row>
<row>
- <entry><function>XListFontsWithInfo</function></entry>
+ <entry><xref linkend='XListFontsWithInfo' xrefstyle='select: title'/></entry>
<entry><systemitem>ListFontsWithInfo</systemitem></entry>
</row>
<row>
- <entry><function>XListHosts</function></entry>
+ <entry><xref linkend='XListHosts' xrefstyle='select: title'/></entry>
<entry><systemitem>ListHosts</systemitem></entry>
</row>
<row>
- <entry><function>XListInstalledColormaps</function></entry>
+ <entry><xref linkend='XListInstalledColormaps' xrefstyle='select: title'/></entry>
<entry><systemitem>ListInstalledColormaps</systemitem></entry>
</row>
<row>
- <entry><function>XListProperties</function></entry>
+ <entry><xref linkend='XListProperties' xrefstyle='select: title'/></entry>
<entry><systemitem>ListProperties</systemitem></entry>
</row>
<row>
- <entry><function>XLoadFont</function></entry>
+ <entry><xref linkend='XLoadFont' xrefstyle='select: title'/></entry>
<entry><systemitem>OpenFont</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XLoadQueryFont</function></entry>
+ <entry morerows="1"><xref linkend='XLoadQueryFont' xrefstyle='select: title'/></entry>
<entry><systemitem>OpenFont</systemitem></entry>
</row>
<row>
@@ -567,15 +567,15 @@ and the corresponding protocol request that it generates.
<entry><systemitem>QueryFont</systemitem></entry>
</row>
<row>
- <entry><function>XLookupColor</function></entry>
+ <entry><xref linkend='XLookupColor' xrefstyle='select: title'/></entry>
<entry><systemitem>LookupColor</systemitem></entry>
</row>
<row>
- <entry><function>XLowerWindow</function></entry>
+ <entry><xref linkend='XLowerWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XMapRaised</function></entry>
+ <entry morerows="1"><xref linkend='XMapRaised' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
@@ -583,95 +583,95 @@ and the corresponding protocol request that it generates.
<entry><systemitem>MapWindow</systemitem></entry>
</row>
<row>
- <entry><function>XMapSubwindows</function></entry>
+ <entry><xref linkend='XMapSubwindows' xrefstyle='select: title'/></entry>
<entry><systemitem>MapSubwindows</systemitem></entry>
</row>
<row>
- <entry><function>XMapWindow</function></entry>
+ <entry><xref linkend='XMapWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>MapWindow</systemitem></entry>
</row>
<row>
- <entry><function>XMoveResizeWindow</function></entry>
+ <entry><xref linkend='XMoveResizeWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry><function>XMoveWindow</function></entry>
+ <entry><xref linkend='XMoveWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry><function>XNoOp</function></entry>
+ <entry><xref linkend='XNoOp' xrefstyle='select: title'/></entry>
<entry><systemitem>NoOperation</systemitem></entry>
</row>
<row>
- <entry><function>XOpenDisplay</function></entry>
+ <entry><xref linkend='XOpenDisplay' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateGC</systemitem></entry>
</row>
<row>
- <entry><function>XParseColor</function></entry>
+ <entry><xref linkend='XParseColor' xrefstyle='select: title'/></entry>
<entry><systemitem>LookupColor</systemitem></entry>
</row>
<row>
- <entry><function>XPutImage</function></entry>
+ <entry><xref linkend='XPutImage' xrefstyle='select: title'/></entry>
<entry><systemitem>PutImage</systemitem></entry>
</row>
<row>
- <entry><function>XQueryBestCursor</function></entry>
+ <entry><xref linkend='XQueryBestCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryBestSize</systemitem></entry>
</row>
<row>
- <entry><function>XQueryBestSize</function></entry>
+ <entry><xref linkend='XQueryBestSize' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryBestSize</systemitem></entry>
</row>
<row>
- <entry><function>XQueryBestStipple</function></entry>
+ <entry><xref linkend='XQueryBestStipple' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryBestSize</systemitem></entry>
</row>
<row>
- <entry><function>XQueryBestTile</function></entry>
+ <entry><xref linkend='XQueryBestTile' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryBestSize</systemitem></entry>
</row>
<row>
- <entry><function>XQueryColor</function></entry>
+ <entry><xref linkend='XQueryColor' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryColors</systemitem></entry>
</row>
<row>
- <entry><function>XQueryColors</function></entry>
+ <entry><xref linkend='XQueryColors' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryColors</systemitem></entry>
</row>
<row>
- <entry><function>XQueryExtension</function></entry>
+ <entry><xref linkend='XQueryExtension' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryExtension</systemitem></entry>
</row>
<row>
- <entry><function>XQueryFont</function></entry>
+ <entry><xref linkend='XQueryFont' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryFont</systemitem></entry>
</row>
<row>
- <entry><function>XQueryKeymap</function></entry>
+ <entry><xref linkend='XQueryKeymap' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryKeymap</systemitem></entry>
</row>
<row>
- <entry><function>XQueryPointer</function></entry>
+ <entry><xref linkend='XQueryPointer' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryPointer</systemitem></entry>
</row>
<row>
- <entry><function>XQueryTextExtents</function></entry>
+ <entry><xref linkend='XQueryTextExtents' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryTextExtents</systemitem></entry>
</row>
<row>
- <entry><function>XQueryTextExtents16</function></entry>
+ <entry><xref linkend='XQueryTextExtents16' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryTextExtents</systemitem></entry>
</row>
<row>
- <entry><function>XQueryTree</function></entry>
+ <entry><xref linkend='XQueryTree' xrefstyle='select: title'/></entry>
<entry><systemitem>QueryTree</systemitem></entry>
</row>
<row>
- <entry><function>XRaiseWindow</function></entry>
+ <entry><xref linkend='XRaiseWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry morerows="3"><function>XReadBitmapFile</function></entry>
+ <entry morerows="3"><xref linkend='XReadBitmapFile' xrefstyle='select: title'/></entry>
<entry><systemitem>CreateGC</systemitem></entry>
</row>
<row>
@@ -687,11 +687,11 @@ and the corresponding protocol request that it generates.
<entry><systemitem>PutImage</systemitem></entry>
</row>
<row>
- <entry><function>XRecolorCursor</function></entry>
+ <entry><xref linkend='XRecolorCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>RecolorCursor</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XReconfigureWMWindow</function></entry>
+ <entry morerows="1"><xref linkend='XReconfigureWMWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
@@ -699,203 +699,203 @@ and the corresponding protocol request that it generates.
<entry><systemitem>SendEvent</systemitem></entry>
</row>
<row>
- <entry><function>XRemoveFromSaveSet</function></entry>
+ <entry><xref linkend='XRemoveFromSaveSet' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeSaveSet</systemitem></entry>
</row>
<row>
- <entry><function>XRemoveHost</function></entry>
+ <entry><xref linkend='XRemoveHost' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeHosts</systemitem></entry>
</row>
<row>
- <entry><function>XRemoveHosts</function></entry>
+ <entry><xref linkend='XRemoveHosts' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeHosts</systemitem></entry>
</row>
<row>
- <entry><function>XReparentWindow</function></entry>
+ <entry><xref linkend='XReparentWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ReparentWindow</systemitem></entry>
</row>
<row>
- <entry><function>XResetScreenSaver</function></entry>
+ <entry><xref linkend='XResetScreenSaver' xrefstyle='select: title'/></entry>
<entry><systemitem>ForceScreenSaver</systemitem></entry>
</row>
<row>
- <entry><function>XResizeWindow</function></entry>
+ <entry><xref linkend='XResizeWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry><function>XRestackWindows</function></entry>
+ <entry><xref linkend='XRestackWindows' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry><function>XRotateBuffers</function></entry>
+ <entry><xref linkend='XRotateBuffers' xrefstyle='select: title'/></entry>
<entry><systemitem>RotateProperties</systemitem></entry>
</row>
<row>
- <entry><function>XRotateWindowProperties</function></entry>
+ <entry><xref linkend='XRotateWindowProperties' xrefstyle='select: title'/></entry>
<entry><systemitem>RotateProperties</systemitem></entry>
</row>
<row>
- <entry><function>XSelectInput</function></entry>
+ <entry><xref linkend='XSelectInput' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XSendEvent</function></entry>
+ <entry><xref linkend='XSendEvent' xrefstyle='select: title'/></entry>
<entry><systemitem>SendEvent</systemitem></entry>
</row>
<row>
- <entry><function>XSetAccessControl</function></entry>
+ <entry><xref linkend='XSetAccessControl' xrefstyle='select: title'/></entry>
<entry><systemitem>SetAccessControl</systemitem></entry>
</row>
<row>
- <entry><function>XSetArcMode</function></entry>
+ <entry><xref linkend='XSetArcMode' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetBackground</function></entry>
+ <entry><xref linkend='XSetBackground' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetClassHint</function></entry>
+ <entry><xref linkend='XSetClassHint' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetClipMask</function></entry>
+ <entry><xref linkend='XSetClipMask' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetClipOrigin</function></entry>
+ <entry><xref linkend='XSetClipOrigin' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetClipRectangles</function></entry>
+ <entry><xref linkend='XSetClipRectangles' xrefstyle='select: title'/></entry>
<entry><systemitem>SetClipRectangles</systemitem></entry>
</row>
<row>
- <entry><function>XSetCloseDownMode</function></entry>
+ <entry><xref linkend='XSetCloseDownMode' xrefstyle='select: title'/></entry>
<entry><systemitem>SetCloseDownMode</systemitem></entry>
</row>
<row>
- <entry><function>XSetCommand</function></entry>
+ <entry><xref linkend='XSetCommand' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetDashes</function></entry>
+ <entry><xref linkend='XSetDashes' xrefstyle='select: title'/></entry>
<entry><systemitem>SetDashes</systemitem></entry>
</row>
<row>
- <entry><function>XSetFillRule</function></entry>
+ <entry><xref linkend='XSetFillRule' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetFillStyle</function></entry>
+ <entry><xref linkend='XSetFillStyle' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetFont</function></entry>
+ <entry><xref linkend='XSetFont' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetFontPath</function></entry>
+ <entry><xref linkend='XSetFontPath' xrefstyle='select: title'/></entry>
<entry><systemitem>SetFontPath</systemitem></entry>
</row>
<row>
- <entry><function>XSetForeground</function></entry>
+ <entry><xref linkend='XSetForeground' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetFunction</function></entry>
+ <entry><xref linkend='XSetFunction' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetGraphicsExposures</function></entry>
+ <entry><xref linkend='XSetGraphicsExposures' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetIconName</function></entry>
+ <entry><xref linkend='XSetIconName' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetIconSizes</function></entry>
+ <entry><xref linkend='XSetIconSizes' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetInputFocus</function></entry>
+ <entry><xref linkend='XSetInputFocus' xrefstyle='select: title'/></entry>
<entry><systemitem>SetInputFocus</systemitem></entry>
</row>
<row>
- <entry><function>XSetLineAttributes</function></entry>
+ <entry><xref linkend='XSetLineAttributes' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetModifierMapping</function></entry>
+ <entry><xref linkend='XSetModifierMapping' xrefstyle='select: title'/></entry>
<entry><systemitem>SetModifierMapping</systemitem></entry>
</row>
<row>
- <entry><function>XSetNormalHints</function></entry>
+ <entry><xref linkend='XSetNormalHints' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetPlaneMask</function></entry>
+ <entry><xref linkend='XSetPlaneMask' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetPointerMapping</function></entry>
+ <entry><xref linkend='XSetPointerMapping' xrefstyle='select: title'/></entry>
<entry><systemitem>SetPointerMapping</systemitem></entry>
</row>
<row>
- <entry><function>XSetRGBColormaps</function></entry>
+ <entry><xref linkend='XSetRGBColormaps' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetScreenSaver</function></entry>
+ <entry><xref linkend='XSetScreenSaver' xrefstyle='select: title'/></entry>
<entry><systemitem>SetScreenSaver</systemitem></entry>
</row>
<row>
- <entry><function>XSetSelectionOwner</function></entry>
+ <entry><xref linkend='XSetSelectionOwner' xrefstyle='select: title'/></entry>
<entry><systemitem>SetSelectionOwner</systemitem></entry>
</row>
<row>
- <entry><function>XSetSizeHints</function></entry>
+ <entry><xref linkend='XSetSizeHints' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetStandardProperties</function></entry>
+ <entry><xref linkend='XSetStandardProperties' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetState</function></entry>
+ <entry><xref linkend='XSetState' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetStipple</function></entry>
+ <entry><xref linkend='XSetStipple' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetSubwindowMode</function></entry>
+ <entry><xref linkend='XSetSubwindowMode' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetTextProperty</function></entry>
+ <entry><xref linkend='XSetTextProperty' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetTile</function></entry>
+ <entry><xref linkend='XSetTile' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetTransientForHint</function></entry>
+ <entry><xref linkend='XSetTransientForHint' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetTSOrigin</function></entry>
+ <entry><xref linkend='XSetTSOrigin' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeGC</systemitem></entry>
</row>
<row>
- <entry><function>XSetWMClientMachine</function></entry>
+ <entry><xref linkend='XSetWMClientMachine' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XSetWMColormapWindows</function></entry>
+ <entry morerows="1"><xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
@@ -903,27 +903,27 @@ and the corresponding protocol request that it generates.
<entry><systemitem>InternAtom</systemitem></entry>
</row>
<row>
- <entry><function>XSetWMHints</function></entry>
+ <entry><xref linkend='XSetWMHints' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetWMIconName</function></entry>
+ <entry><xref linkend='XSetWMIconName' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetWMName</function></entry>
+ <entry><xref linkend='XSetWMName' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetWMNormalHints</function></entry>
+ <entry><xref linkend='XSetWMNormalHints' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetWMProperties</function></entry>
+ <entry><xref linkend='XSetWMProperties' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XSetWMProtocols</function></entry>
+ <entry morerows="1"><xref linkend='XSetWMProtocols' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
@@ -931,63 +931,63 @@ and the corresponding protocol request that it generates.
<entry><systemitem>InternAtom</systemitem></entry>
</row>
<row>
- <entry><function>XSetWMSizeHints</function></entry>
+ <entry><xref linkend='XSetWMSizeHints' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XSetWindowBackground</function></entry>
+ <entry><xref linkend='XSetWindowBackground' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XSetWindowBackgroundPixmap</function></entry>
+ <entry><xref linkend='XSetWindowBackgroundPixmap' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XSetWindowBorder</function></entry>
+ <entry><xref linkend='XSetWindowBorder' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XSetWindowBorderPixmap</function></entry>
+ <entry><xref linkend='XSetWindowBorderPixmap' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XSetWindowBorderWidth</function></entry>
+ <entry><xref linkend='XSetWindowBorderWidth' xrefstyle='select: title'/></entry>
<entry><systemitem>ConfigureWindow</systemitem></entry>
</row>
<row>
- <entry><function>XSetWindowColormap</function></entry>
+ <entry><xref linkend='XSetWindowColormap' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XSetZoomHints</function></entry>
+ <entry><xref linkend='XSetZoomHints' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XStoreBuffer</function></entry>
+ <entry><xref linkend='XStoreBuffer' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XStoreBytes</function></entry>
+ <entry><xref linkend='XStoreBytes' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XStoreColor</function></entry>
+ <entry><xref linkend='XStoreColor' xrefstyle='select: title'/></entry>
<entry><systemitem>StoreColors</systemitem></entry>
</row>
<row>
- <entry><function>XStoreColors</function></entry>
+ <entry><xref linkend='XStoreColors' xrefstyle='select: title'/></entry>
<entry><systemitem>StoreColors</systemitem></entry>
</row>
<row>
- <entry><function>XStoreName</function></entry>
+ <entry><xref linkend='XStoreName' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeProperty</systemitem></entry>
</row>
<row>
- <entry><function>XStoreNamedColor</function></entry>
+ <entry><xref linkend='XStoreNamedColor' xrefstyle='select: title'/></entry>
<entry><systemitem>StoreNamedColor</systemitem></entry>
</row>
<row>
- <entry><function>XSync</function></entry>
+ <entry><xref linkend='XSync' xrefstyle='select: title'/></entry>
<entry><systemitem>GetInputFocus</systemitem></entry>
</row>
<row>
@@ -995,55 +995,55 @@ and the corresponding protocol request that it generates.
<entry><systemitem>GetInputFocus</systemitem></entry>
</row>
<row>
- <entry><function>XTranslateCoordinates</function></entry>
+ <entry><xref linkend='XTranslateCoordinates' xrefstyle='select: title'/></entry>
<entry><systemitem>TranslateCoordinates</systemitem></entry>
</row>
<row>
- <entry><function>XUndefineCursor</function></entry>
+ <entry><xref linkend='XUndefineCursor' xrefstyle='select: title'/></entry>
<entry><systemitem>ChangeWindowAttributes</systemitem></entry>
</row>
<row>
- <entry><function>XUngrabButton</function></entry>
+ <entry><xref linkend='XUngrabButton' xrefstyle='select: title'/></entry>
<entry><systemitem>UngrabButton</systemitem></entry>
</row>
<row>
- <entry><function>XUngrabKey</function></entry>
+ <entry><xref linkend='XUngrabKey' xrefstyle='select: title'/></entry>
<entry><systemitem>UngrabKey</systemitem></entry>
</row>
<row>
- <entry><function>XUngrabKeyboard</function></entry>
+ <entry><xref linkend='XUngrabKeyboard' xrefstyle='select: title'/></entry>
<entry><systemitem>UngrabKeyboard</systemitem></entry>
</row>
<row>
- <entry><function>XUngrabPointer</function></entry>
+ <entry><xref linkend='XUngrabPointer' xrefstyle='select: title'/></entry>
<entry><systemitem>UngrabPointer</systemitem></entry>
</row>
<row>
- <entry><function>XUngrabServer</function></entry>
+ <entry><xref linkend='XUngrabServer' xrefstyle='select: title'/></entry>
<entry><systemitem>UngrabServer</systemitem></entry>
</row>
<row>
- <entry><function>XUninstallColormap</function></entry>
+ <entry><xref linkend='XUninstallColormap' xrefstyle='select: title'/></entry>
<entry><systemitem>UninstallColormap</systemitem></entry>
</row>
<row>
- <entry><function>XUnloadFont</function></entry>
+ <entry><xref linkend='XUnloadFont' xrefstyle='select: title'/></entry>
<entry><systemitem>CloseFont</systemitem></entry>
</row>
<row>
- <entry><function>XUnmapSubwindows</function></entry>
+ <entry><xref linkend='XUnmapSubwindows' xrefstyle='select: title'/></entry>
<entry><systemitem>UnmapSubwindows</systemitem></entry>
</row>
<row>
- <entry><function>XUnmapWindow</function></entry>
+ <entry><xref linkend='XUnmapWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>UnmapWindow</systemitem></entry>
</row>
<row>
- <entry><function>XWarpPointer</function></entry>
+ <entry><xref linkend='XWarpPointer' xrefstyle='select: title'/></entry>
<entry><systemitem>WarpPointer</systemitem></entry>
</row>
<row>
- <entry morerows="1"><function>XWithdrawWindow</function></entry>
+ <entry morerows="1"><xref linkend='XWithdrawWindow' xrefstyle='select: title'/></entry>
<entry><systemitem>SendEvent</systemitem></entry>
</row>
<row>
@@ -1069,387 +1069,387 @@ order) and the Xlib functions that reference it.
<tbody>
<row>
<entry><systemitem>AllocColor</systemitem></entry>
- <entry><function>XAllocColor</function></entry>
+ <entry><xref linkend='XAllocColor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>AllocColorCells</systemitem></entry>
- <entry><function>XAllocColorCells</function></entry>
+ <entry><xref linkend='XAllocColorCells' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>AllocColorPlanes</systemitem></entry>
- <entry><function>XAllocColorPlanes</function></entry>
+ <entry><xref linkend='XAllocColorPlanes' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>AllocNamedColor</systemitem></entry>
- <entry><function>XAllocNamedColor</function></entry>
+ <entry><xref linkend='XAllocNamedColor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>AllowEvents</systemitem></entry>
- <entry><function>XAllowEvents</function></entry>
+ <entry><xref linkend='XAllowEvents' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>Bell</systemitem></entry>
- <entry><function>XBell</function></entry>
+ <entry><xref linkend='XBell' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ChangeActivePointerGrab</systemitem></entry>
- <entry><function>XChangeActivePointerGrab</function></entry>
+ <entry><xref linkend='XChangeActivePointerGrab' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="17"><systemitem>ChangeGC</systemitem></entry>
- <entry><function>XChangeGC</function></entry>
+ <entry><xref linkend='XChangeGC' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetArcMode</function></entry>
+ <entry><xref linkend='XSetArcMode' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetBackground</function></entry>
+ <entry><xref linkend='XSetBackground' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetClipMask</function></entry>
+ <entry><xref linkend='XSetClipMask' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetClipOrigin</function></entry>
+ <entry><xref linkend='XSetClipOrigin' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetFillRule</function></entry>
+ <entry><xref linkend='XSetFillRule' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetFillStyle</function></entry>
+ <entry><xref linkend='XSetFillStyle' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetFont</function></entry>
+ <entry><xref linkend='XSetFont' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetForeground</function></entry>
+ <entry><xref linkend='XSetForeground' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetFunction</function></entry>
+ <entry><xref linkend='XSetFunction' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetGraphicsExposures</function></entry>
+ <entry><xref linkend='XSetGraphicsExposures' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetLineAttributes</function></entry>
+ <entry><xref linkend='XSetLineAttributes' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetPlaneMask</function></entry>
+ <entry><xref linkend='XSetPlaneMask' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetState</function></entry>
+ <entry><xref linkend='XSetState' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetStipple</function></entry>
+ <entry><xref linkend='XSetStipple' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetSubwindowMode</function></entry>
+ <entry><xref linkend='XSetSubwindowMode' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetTile</function></entry>
+ <entry><xref linkend='XSetTile' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetTSOrigin</function></entry>
+ <entry><xref linkend='XSetTSOrigin' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="3"><systemitem>ChangeHosts</systemitem></entry>
- <entry><function>XAddHost</function></entry>
+ <entry><xref linkend='XAddHost' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XAddHosts</function></entry>
+ <entry><xref linkend='XAddHosts' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XRemoveHost</function></entry>
+ <entry><xref linkend='XRemoveHost' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XRemoveHosts</function></entry>
+ <entry><xref linkend='XRemoveHosts' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="2"><systemitem>ChangeKeyboardControl</systemitem></entry>
- <entry><function>XAutoRepeatOff</function></entry>
+ <entry><xref linkend='XAutoRepeatOff' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XAutoRepeatOn</function></entry>
+ <entry><xref linkend='XAutoRepeatOn' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XChangeKeyboardControl</function></entry>
+ <entry><xref linkend='XChangeKeyboardControl' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ChangeKeyboardMapping</systemitem></entry>
- <entry><function>XChangeKeyboardMapping</function></entry>
+ <entry><xref linkend='XChangeKeyboardMapping' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ChangePointerControl</systemitem></entry>
- <entry><function>XChangePointerControl</function></entry>
+ <entry><xref linkend='XChangePointerControl' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="23"><systemitem>ChangeProperty</systemitem></entry>
- <entry><function>XChangeProperty</function></entry>
+ <entry><xref linkend='XChangeProperty' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetClassHint</function></entry>
+ <entry><xref linkend='XSetClassHint' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetCommand</function></entry>
+ <entry><xref linkend='XSetCommand' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetIconName</function></entry>
+ <entry><xref linkend='XSetIconName' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetIconSizes</function></entry>
+ <entry><xref linkend='XSetIconSizes' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetNormalHints</function></entry>
+ <entry><xref linkend='XSetNormalHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetRGBColormaps</function></entry>
+ <entry><xref linkend='XSetRGBColormaps' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetSizeHints</function></entry>
+ <entry><xref linkend='XSetSizeHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetStandardProperties</function></entry>
+ <entry><xref linkend='XSetStandardProperties' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetTextProperty</function></entry>
+ <entry><xref linkend='XSetTextProperty' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetTransientForHint</function></entry>
+ <entry><xref linkend='XSetTransientForHint' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMClientMachine</function></entry>
+ <entry><xref linkend='XSetWMClientMachine' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMColormapWindows</function></entry>
+ <entry><xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMHints</function></entry>
+ <entry><xref linkend='XSetWMHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMIconName</function></entry>
+ <entry><xref linkend='XSetWMIconName' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMName</function></entry>
+ <entry><xref linkend='XSetWMName' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMNormalHints</function></entry>
+ <entry><xref linkend='XSetWMNormalHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMProperties</function></entry>
+ <entry><xref linkend='XSetWMProperties' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMProtocols</function></entry>
+ <entry><xref linkend='XSetWMProtocols' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMSizeHints</function></entry>
+ <entry><xref linkend='XSetWMSizeHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetZoomHints</function></entry>
+ <entry><xref linkend='XSetZoomHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XStoreBuffer</function></entry>
+ <entry><xref linkend='XStoreBuffer' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XStoreBytes</function></entry>
+ <entry><xref linkend='XStoreBytes' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XStoreName</function></entry>
+ <entry><xref linkend='XStoreName' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="2"><systemitem>ChangeSaveSet</systemitem></entry>
- <entry><function>XAddToSaveSet</function></entry>
+ <entry><xref linkend='XAddToSaveSet' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XChangeSaveSet</function></entry>
+ <entry><xref linkend='XChangeSaveSet' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XRemoveFromSaveSet</function></entry>
+ <entry><xref linkend='XRemoveFromSaveSet' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="8"><systemitem>ChangeWindowAttributes</systemitem></entry>
- <entry><function>XChangeWindowAttributes</function></entry>
+ <entry><xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XDefineCursor</function></entry>
+ <entry><xref linkend='XDefineCursor' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSelectInput</function></entry>
+ <entry><xref linkend='XSelectInput' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWindowBackground</function></entry>
+ <entry><xref linkend='XSetWindowBackground' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWindowBackgroundPixmap</function></entry>
+ <entry><xref linkend='XSetWindowBackgroundPixmap' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWindowBorder</function></entry>
+ <entry><xref linkend='XSetWindowBorder' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWindowBorderPixmap</function></entry>
+ <entry><xref linkend='XSetWindowBorderPixmap' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWindowColormap</function></entry>
+ <entry><xref linkend='XSetWindowColormap' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XUndefineCursor</function></entry>
+ <entry><xref linkend='XUndefineCursor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="2"><systemitem>CirculateWindow</systemitem></entry>
- <entry><function>XCirculateSubwindowsDown</function></entry>
+ <entry><xref linkend='XCirculateSubwindowsDown' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCirculateSubwindowsUp</function></entry>
+ <entry><xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCirculateSubwindows</function></entry>
+ <entry><xref linkend='XCirculateSubwindows' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>ClearArea</systemitem></entry>
- <entry><function>XClearArea</function></entry>
+ <entry><xref linkend='XClearArea' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XClearWindow</function></entry>
+ <entry><xref linkend='XClearWindow' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>CloseFont</systemitem></entry>
- <entry><function>XFreeFont</function></entry>
+ <entry><xref linkend='XFreeFont' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XUnloadFont</function></entry>
+ <entry><xref linkend='XUnloadFont' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="9"><systemitem>ConfigureWindow</systemitem></entry>
- <entry><function>XConfigureWindow</function></entry>
+ <entry><xref linkend='XConfigureWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XLowerWindow</function></entry>
+ <entry><xref linkend='XLowerWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XMapRaised</function></entry>
+ <entry><xref linkend='XMapRaised' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XMoveResizeWindow</function></entry>
+ <entry><xref linkend='XMoveResizeWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XMoveWindow</function></entry>
+ <entry><xref linkend='XMoveWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XRaiseWindow</function></entry>
+ <entry><xref linkend='XRaiseWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XReconfigureWMWindow</function></entry>
+ <entry><xref linkend='XReconfigureWMWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XResizeWindow</function></entry>
+ <entry><xref linkend='XResizeWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XRestackWindows</function></entry>
+ <entry><xref linkend='XRestackWindows' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWindowBorderWidth</function></entry>
+ <entry><xref linkend='XSetWindowBorderWidth' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ConvertSelection</systemitem></entry>
- <entry><function>XConvertSelection</function></entry>
+ <entry><xref linkend='XConvertSelection' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>CopyArea</systemitem></entry>
- <entry><function>XCopyArea</function></entry>
+ <entry><xref linkend='XCopyArea' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>CopyColormapAndFree</systemitem></entry>
- <entry><function>XCopyColormapAndFree</function></entry>
+ <entry><xref linkend='XCopyColormapAndFree' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>CopyGC</systemitem></entry>
- <entry><function>XCopyGC</function></entry>
+ <entry><xref linkend='XCopyGC' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>CopyPlane</systemitem></entry>
- <entry><function>XCopyPlane</function></entry>
+ <entry><xref linkend='XCopyPlane' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>CreateColormap</systemitem></entry>
- <entry><function>XCreateColormap</function></entry>
+ <entry><xref linkend='XCreateColormap' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>CreateCursor</systemitem></entry>
- <entry><function>XCreatePixmapCursor</function></entry>
+ <entry><xref linkend='XCreatePixmapCursor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="4"><systemitem>CreateGC</systemitem></entry>
- <entry><function>XCreateGC</function></entry>
+ <entry><xref linkend='XCreateGC' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCreateBitmapFromData</function></entry>
+ <entry><xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/></entry>
</row>
<row>
@@ -1457,27 +1457,27 @@ order) and the Xlib functions that reference it.
</row>
<row>
- <entry><function>XOpenDisplay</function></entry>
+ <entry><xref linkend='XOpenDisplay' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XReadBitmapFile</function></entry>
+ <entry><xref linkend='XReadBitmapFile' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>CreateGlyphCursor</systemitem></entry>
- <entry><function>XCreateFontCursor</function></entry>
+ <entry><xref linkend='XCreateFontCursor' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCreateGlyphCursor</function></entry>
+ <entry><xref linkend='XCreateGlyphCursor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="3"><systemitem>CreatePixmap</systemitem></entry>
- <entry><function>XCreatePixmap</function></entry>
+ <entry><xref linkend='XCreatePixmap' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCreateBitmapFromData</function></entry>
+ <entry><xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/></entry>
</row>
<row>
@@ -1485,63 +1485,63 @@ order) and the Xlib functions that reference it.
</row>
<row>
- <entry><function>XReadBitmapFile</function></entry>
+ <entry><xref linkend='XReadBitmapFile' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>CreateWindow</systemitem></entry>
- <entry><function>XCreateSimpleWindow</function></entry>
+ <entry><xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCreateWindow</function></entry>
+ <entry><xref linkend='XCreateWindow' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>DeleteProperty</systemitem></entry>
- <entry><function>XDeleteProperty</function></entry>
+ <entry><xref linkend='XDeleteProperty' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>DestroySubwindows</systemitem></entry>
- <entry><function>XDestroySubwindows</function></entry>
+ <entry><xref linkend='XDestroySubwindows' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>DestroyWindow</systemitem></entry>
- <entry><function>XDestroyWindow</function></entry>
+ <entry><xref linkend='XDestroyWindow' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>FillPoly</systemitem></entry>
- <entry><function>XFillPolygon</function></entry>
+ <entry><xref linkend='XFillPolygon' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="2"><systemitem>ForceScreenSaver</systemitem></entry>
- <entry><function>XActivateScreenSaver</function></entry>
+ <entry><xref linkend='XActivateScreenSaver' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XForceScreenSaver</function></entry>
+ <entry><xref linkend='XForceScreenSaver' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XResetScreenSaver</function></entry>
+ <entry><xref linkend='XResetScreenSaver' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>FreeColormap</systemitem></entry>
- <entry><function>XFreeColormap</function></entry>
+ <entry><xref linkend='XFreeColormap' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>FreeColors</systemitem></entry>
- <entry><function>XFreeColors</function></entry>
+ <entry><xref linkend='XFreeColors' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>FreeCursor</systemitem></entry>
- <entry><function>XFreeCursor</function></entry>
+ <entry><xref linkend='XFreeCursor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="3"><systemitem>FreeGC</systemitem></entry>
- <entry><function>XFreeGC</function></entry>
+ <entry><xref linkend='XFreeGC' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCreateBitmapFromData</function></entry>
+ <entry><xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/></entry>
</row>
<row>
@@ -1549,39 +1549,39 @@ order) and the Xlib functions that reference it.
</row>
<row>
- <entry><function>XReadBitmapFile</function></entry>
+ <entry><xref linkend='XReadBitmapFile' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>FreePixmap</systemitem></entry>
- <entry><function>XFreePixmap</function></entry>
+ <entry><xref linkend='XFreePixmap' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetAtomName</systemitem></entry>
- <entry><function>XGetAtomName</function></entry>
+ <entry><xref linkend='XGetAtomName' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetFontPath</systemitem></entry>
- <entry><function>XGetFontPath</function></entry>
+ <entry><xref linkend='XGetFontPath' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>GetGeometry</systemitem></entry>
- <entry><function>XGetGeometry</function></entry>
+ <entry><xref linkend='XGetGeometry' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWindowAttributes</function></entry>
+ <entry><xref linkend='XGetWindowAttributes' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetImage</systemitem></entry>
- <entry><function>XGetImage</function></entry>
+ <entry><xref linkend='XGetImage' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="2"><systemitem>GetInputFocus</systemitem></entry>
- <entry><function>XGetInputFocus</function></entry>
+ <entry><xref linkend='XGetInputFocus' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSync</function></entry>
+ <entry><xref linkend='XSync' xrefstyle='select: title'/></entry>
</row>
<row>
@@ -1589,307 +1589,307 @@ order) and the Xlib functions that reference it.
</row>
<row>
<entry><systemitem>GetKeyboardControl</systemitem></entry>
- <entry><function>XGetKeyboardControl</function></entry>
+ <entry><xref linkend='XGetKeyboardControl' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetKeyboardMapping</systemitem></entry>
- <entry><function>XGetKeyboardMapping</function></entry>
+ <entry><xref linkend='XGetKeyboardMapping' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetModifierMapping</systemitem></entry>
- <entry><function>XGetModifierMapping</function></entry>
+ <entry><xref linkend='XGetModifierMapping' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetMotionEvents</systemitem></entry>
- <entry><function>XGetMotionEvents</function></entry>
+ <entry><xref linkend='XGetMotionEvents' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetPointerControl</systemitem></entry>
- <entry><function>XGetPointerControl</function></entry>
+ <entry><xref linkend='XGetPointerControl' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetPointerMapping</systemitem></entry>
- <entry><function>XGetPointerMapping</function></entry>
+ <entry><xref linkend='XGetPointerMapping' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="19"><systemitem>GetProperty</systemitem></entry>
- <entry><function>XFetchBytes</function></entry>
+ <entry><xref linkend='XFetchBytes' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XFetchName</function></entry>
+ <entry><xref linkend='XFetchName' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetClassHint</function></entry>
+ <entry><xref linkend='XGetClassHint' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetIconName</function></entry>
+ <entry><xref linkend='XGetIconName' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetIconSizes</function></entry>
+ <entry><xref linkend='XGetIconSizes' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetNormalHints</function></entry>
+ <entry><xref linkend='XGetNormalHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetRGBColormaps</function></entry>
+ <entry><xref linkend='XGetRGBColormaps' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetSizeHints</function></entry>
+ <entry><xref linkend='XGetSizeHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetTextProperty</function></entry>
+ <entry><xref linkend='XGetTextProperty' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetTransientForHint</function></entry>
+ <entry><xref linkend='XGetTransientForHint' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMClientMachine</function></entry>
+ <entry><xref linkend='XGetWMClientMachine' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMColormapWindows</function></entry>
+ <entry><xref linkend='XGetWMColormapWindows' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMHints</function></entry>
+ <entry><xref linkend='XGetWMHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMIconName</function></entry>
+ <entry><xref linkend='XGetWMIconName' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMName</function></entry>
+ <entry><xref linkend='XGetWMName' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMNormalHints</function></entry>
+ <entry><xref linkend='XGetWMNormalHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMProtocols</function></entry>
+ <entry><xref linkend='XGetWMProtocols' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMSizeHints</function></entry>
+ <entry><xref linkend='XGetWMSizeHints' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWindowProperty</function></entry>
+ <entry><xref linkend='XGetWindowProperty' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetZoomHints</function></entry>
+ <entry><xref linkend='XGetZoomHints' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetSelectionOwner</systemitem></entry>
- <entry><function>XGetSelectionOwner</function></entry>
+ <entry><xref linkend='XGetSelectionOwner' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GetWindowAttributes</systemitem></entry>
- <entry><function>XGetWindowAttributes</function></entry>
+ <entry><xref linkend='XGetWindowAttributes' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GrabButton</systemitem></entry>
- <entry><function>XGrabButton</function></entry>
+ <entry><xref linkend='XGrabButton' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GrabKey</systemitem></entry>
- <entry><function>XGrabKey</function></entry>
+ <entry><xref linkend='XGrabKey' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GrabKeyboard</systemitem></entry>
- <entry><function>XGrabKeyboard</function></entry>
+ <entry><xref linkend='XGrabKeyboard' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GrabPointer</systemitem></entry>
- <entry><function>XGrabPointer</function></entry>
+ <entry><xref linkend='XGrabPointer' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>GrabServer</systemitem></entry>
- <entry><function>XGrabServer</function></entry>
+ <entry><xref linkend='XGrabServer' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ImageText8</systemitem></entry>
- <entry><function>XDrawImageString</function></entry>
+ <entry><xref linkend='XDrawImageString' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ImageText16</systemitem></entry>
- <entry><function>XDrawImageString16</function></entry>
+ <entry><xref linkend='XDrawImageString16' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>InstallColormap</systemitem></entry>
- <entry><function>XInstallColormap</function></entry>
+ <entry><xref linkend='XInstallColormap' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="5"><systemitem>InternAtom</systemitem></entry>
- <entry><function>XGetWMColormapWindows</function></entry>
+ <entry><xref linkend='XGetWMColormapWindows' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XGetWMProtocols</function></entry>
+ <entry><xref linkend='XGetWMProtocols' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XIconifyWindow</function></entry>
+ <entry><xref linkend='XIconifyWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XInternAtom</function></entry>
+ <entry><xref linkend='XInternAtom' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMColormapWindows</function></entry>
+ <entry><xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetWMProtocols</function></entry>
+ <entry><xref linkend='XSetWMProtocols' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>KillClient</systemitem></entry>
- <entry><function>XKillClient</function></entry>
+ <entry><xref linkend='XKillClient' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ListExtensions</systemitem></entry>
- <entry><function>XListExtensions</function></entry>
+ <entry><xref linkend='XListExtensions' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ListFonts</systemitem></entry>
- <entry><function>XListFonts</function></entry>
+ <entry><xref linkend='XListFonts' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ListFontsWithInfo</systemitem></entry>
- <entry><function>XListFontsWithInfo</function></entry>
+ <entry><xref linkend='XListFontsWithInfo' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ListHosts</systemitem></entry>
- <entry><function>XListHosts</function></entry>
+ <entry><xref linkend='XListHosts' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ListInstalledColormaps</systemitem></entry>
- <entry><function>XListInstalledColormaps</function></entry>
+ <entry><xref linkend='XListInstalledColormaps' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ListProperties</systemitem></entry>
- <entry><function>XListProperties</function></entry>
+ <entry><xref linkend='XListProperties' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>LookupColor</systemitem></entry>
- <entry><function>XLookupColor</function></entry>
+ <entry><xref linkend='XLookupColor' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XParseColor</function></entry>
+ <entry><xref linkend='XParseColor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>MapSubwindows</systemitem></entry>
- <entry><function>XMapSubwindows</function></entry>
+ <entry><xref linkend='XMapSubwindows' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>MapWindow</systemitem></entry>
- <entry><function>XMapRaised</function></entry>
+ <entry><xref linkend='XMapRaised' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XMapWindow</function></entry>
+ <entry><xref linkend='XMapWindow' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>NoOperation</systemitem></entry>
- <entry><function>XNoOp</function></entry>
+ <entry><xref linkend='XNoOp' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>OpenFont</systemitem></entry>
- <entry><function>XLoadFont</function></entry>
+ <entry><xref linkend='XLoadFont' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XLoadQueryFont</function></entry>
+ <entry><xref linkend='XLoadQueryFont' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolyArc</systemitem></entry>
- <entry><function>XDrawArc</function></entry>
+ <entry><xref linkend='XDrawArc' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XDrawArcs</function></entry>
+ <entry><xref linkend='XDrawArcs' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolyFillArc</systemitem></entry>
- <entry><function>XFillArc</function></entry>
+ <entry><xref linkend='XFillArc' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XFillArcs</function></entry>
+ <entry><xref linkend='XFillArcs' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolyFillRectangle</systemitem></entry>
- <entry><function>XFillRectangle</function></entry>
+ <entry><xref linkend='XFillRectangle' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XFillRectangles</function></entry>
+ <entry><xref linkend='XFillRectangles' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>PolyLine</systemitem></entry>
- <entry><function>XDrawLines</function></entry>
+ <entry><xref linkend='XDrawLines' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolyPoint</systemitem></entry>
- <entry><function>XDrawPoint</function></entry>
+ <entry><xref linkend='XDrawPoint' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XDrawPoints</function></entry>
+ <entry><xref linkend='XDrawPoints' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolyRectangle</systemitem></entry>
- <entry><function>XDrawRectangle</function></entry>
+ <entry><xref linkend='XDrawRectangle' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XDrawRectangles</function></entry>
+ <entry><xref linkend='XDrawRectangles' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolySegment</systemitem></entry>
- <entry><function>XDrawLine</function></entry>
+ <entry><xref linkend='XDrawLine' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XDrawSegments</function></entry>
+ <entry><xref linkend='XDrawSegments' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolyText8</systemitem></entry>
- <entry><function>XDrawString</function></entry>
+ <entry><xref linkend='XDrawString' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XDrawText</function></entry>
+ <entry><xref linkend='XDrawText' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>PolyText16</systemitem></entry>
- <entry><function>XDrawString16</function></entry>
+ <entry><xref linkend='XDrawString16' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XDrawText16</function></entry>
+ <entry><xref linkend='XDrawText16' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="3"><systemitem>PutImage</systemitem></entry>
- <entry><function>XPutImage</function></entry>
+ <entry><xref linkend='XPutImage' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XCreateBitmapFromData</function></entry>
+ <entry><xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/></entry>
</row>
<row>
@@ -1897,191 +1897,191 @@ order) and the Xlib functions that reference it.
</row>
<row>
- <entry><function>XReadBitmapFile</function></entry>
+ <entry><xref linkend='XReadBitmapFile' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="3"><systemitem>QueryBestSize</systemitem></entry>
- <entry><function>XQueryBestCursor</function></entry>
+ <entry><xref linkend='XQueryBestCursor' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XQueryBestSize</function></entry>
+ <entry><xref linkend='XQueryBestSize' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XQueryBestStipple</function></entry>
+ <entry><xref linkend='XQueryBestStipple' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XQueryBestTile</function></entry>
+ <entry><xref linkend='XQueryBestTile' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>QueryColors</systemitem></entry>
- <entry><function>XQueryColor</function></entry>
+ <entry><xref linkend='XQueryColor' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XQueryColors</function></entry>
+ <entry><xref linkend='XQueryColors' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>QueryExtension</systemitem></entry>
- <entry><function>XInitExtension</function></entry>
+ <entry><xref linkend='XInitExtension' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XQueryExtension</function></entry>
+ <entry><xref linkend='XQueryExtension' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>QueryFont</systemitem></entry>
- <entry><function>XLoadQueryFont</function></entry>
+ <entry><xref linkend='XLoadQueryFont' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XQueryFont</function></entry>
+ <entry><xref linkend='XQueryFont' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>QueryKeymap</systemitem></entry>
- <entry><function>XQueryKeymap</function></entry>
+ <entry><xref linkend='XQueryKeymap' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>QueryPointer</systemitem></entry>
- <entry><function>XQueryPointer</function></entry>
+ <entry><xref linkend='XQueryPointer' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>QueryTextExtents</systemitem></entry>
- <entry><function>XQueryTextExtents</function></entry>
+ <entry><xref linkend='XQueryTextExtents' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XQueryTextExtents16</function></entry>
+ <entry><xref linkend='XQueryTextExtents16' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>QueryTree</systemitem></entry>
- <entry><function>XQueryTree</function></entry>
+ <entry><xref linkend='XQueryTree' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>RecolorCursor</systemitem></entry>
- <entry><function>XRecolorCursor</function></entry>
+ <entry><xref linkend='XRecolorCursor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>ReparentWindow</systemitem></entry>
- <entry><function>XReparentWindow</function></entry>
+ <entry><xref linkend='XReparentWindow' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>RotateProperties</systemitem></entry>
- <entry><function>XRotateBuffers</function></entry>
+ <entry><xref linkend='XRotateBuffers' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XRotateWindowProperties</function></entry>
+ <entry><xref linkend='XRotateWindowProperties' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="3"><systemitem>SendEvent</systemitem></entry>
- <entry><function>XIconifyWindow</function></entry>
+ <entry><xref linkend='XIconifyWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XReconfigureWMWindow</function></entry>
+ <entry><xref linkend='XReconfigureWMWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSendEvent</function></entry>
+ <entry><xref linkend='XSendEvent' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XWithdrawWindow</function></entry>
+ <entry><xref linkend='XWithdrawWindow' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="2"><systemitem>SetAccessControl</systemitem></entry>
- <entry><function>XDisableAccessControl</function></entry>
+ <entry><xref linkend='XDisableAccessControl' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XEnableAccessControl</function></entry>
+ <entry><xref linkend='XEnableAccessControl' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetAccessControl</function></entry>
+ <entry><xref linkend='XSetAccessControl' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetClipRectangles</systemitem></entry>
- <entry><function>XSetClipRectangles</function></entry>
+ <entry><xref linkend='XSetClipRectangles' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetCloseDownMode</systemitem></entry>
- <entry><function>XSetCloseDownMode</function></entry>
+ <entry><xref linkend='XSetCloseDownMode' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetDashes</systemitem></entry>
- <entry><function>XSetDashes</function></entry>
+ <entry><xref linkend='XSetDashes' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetFontPath</systemitem></entry>
- <entry><function>XSetFontPath</function></entry>
+ <entry><xref linkend='XSetFontPath' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetInputFocus</systemitem></entry>
- <entry><function>XSetInputFocus</function></entry>
+ <entry><xref linkend='XSetInputFocus' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetModifierMapping</systemitem></entry>
- <entry><function>XSetModifierMapping</function></entry>
+ <entry><xref linkend='XSetModifierMapping' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetPointerMapping</systemitem></entry>
- <entry><function>XSetPointerMapping</function></entry>
+ <entry><xref linkend='XSetPointerMapping' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>SetScreenSaver</systemitem></entry>
- <entry><function>XGetScreenSaver</function></entry>
+ <entry><xref linkend='XGetScreenSaver' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XSetScreenSaver</function></entry>
+ <entry><xref linkend='XSetScreenSaver' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>SetSelectionOwner</systemitem></entry>
- <entry><function>XSetSelectionOwner</function></entry>
+ <entry><xref linkend='XSetSelectionOwner' xrefstyle='select: title'/></entry>
</row>
<row>
<entry morerows="1"><systemitem>StoreColors</systemitem></entry>
- <entry><function>XStoreColor</function></entry>
+ <entry><xref linkend='XStoreColor' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XStoreColors</function></entry>
+ <entry><xref linkend='XStoreColors' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>StoreNamedColor</systemitem></entry>
- <entry><function>XStoreNamedColor</function></entry>
+ <entry><xref linkend='XStoreNamedColor' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>TranslateCoordinates</systemitem></entry>
- <entry><function>XTranslateCoordinates</function></entry>
+ <entry><xref linkend='XTranslateCoordinates' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>UngrabButton</systemitem></entry>
- <entry><function>XUngrabButton</function></entry>
+ <entry><xref linkend='XUngrabButton' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>UngrabKey</systemitem></entry>
- <entry><function>XUngrabKey</function></entry>
+ <entry><xref linkend='XUngrabKey' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>UngrabKeyboard</systemitem></entry>
- <entry><function>XUngrabKeyboard</function></entry>
+ <entry><xref linkend='XUngrabKeyboard' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>UngrabPointer</systemitem></entry>
- <entry><function>XUngrabPointer</function></entry>
+ <entry><xref linkend='XUngrabPointer' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>UngrabServer</systemitem></entry>
- <entry><function>XUngrabServer</function></entry>
+ <entry><xref linkend='XUngrabServer' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>UninstallColormap</systemitem></entry>
- <entry><function>XUninstallColormap</function></entry>
+ <entry><xref linkend='XUninstallColormap' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>UnmapSubwindows</systemitem></entry>
@@ -2089,15 +2089,15 @@ order) and the Xlib functions that reference it.
</row>
<row>
<entry morerows="1"><systemitem>UnmapWindow</systemitem></entry>
- <entry><function>XUnmapWindow</function></entry>
+ <entry><xref linkend='XUnmapWindow' xrefstyle='select: title'/></entry>
</row>
<row>
- <entry><function>XWithdrawWindow</function></entry>
+ <entry><xref linkend='XWithdrawWindow' xrefstyle='select: title'/></entry>
</row>
<row>
<entry><systemitem>WarpPointer</systemitem></entry>
- <entry><function>XWarpPointer</function></entry>
+ <entry><xref linkend='XWarpPointer' xrefstyle='select: title'/></entry>
</row>
</tbody>
</tgroup>
diff --git a/libX11/specs/libX11/AppB.xml b/libX11/specs/libX11/AppB.xml
index ca435fb01..8c424bda1 100644
--- a/libX11/specs/libX11/AppB.xml
+++ b/libX11/specs/libX11/AppB.xml
@@ -1,52 +1,52 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
- "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<appendix id="x_font_cursors">
-<title>X Font Cursors</title>
-<para>
-The following are the available cursors that can be used with
-<function>XCreateFontCursor</function>.
-</para>
-<literallayout class="monospaced">
-#define XC_X_cursor 0 #define XC_ll_angle 76
-#define XC_arrow 2 #define XC_lr_angle 78
-#define XC_based_arrow_down 4 #define XC_man 80
-#define XC_based_arrow_up 6 #define XC_middlebutton 82
-#define XC_boat 8 #define XC_mouse 84
-#define XC_bogosity 10 #define XC_pencil 86
-#define XC_bottom_left_corner 12 #define XC_pirate 88
-#define XC_bottom_right_corner 14 #define XC_plus 90
-#define XC_bottom_side 16 #define XC_question_arrow 92
-#define XC_bottom_tee 18 #define XC_right_ptr 94
-#define XC_box_spiral 20 #define XC_right_side 96
-#define XC_center_ptr 22 #define XC_right_tee 98
-#define XC_circle 24 #define XC_rightbutton 100
-#define XC_clock 26 #define XC_rtl_logo 102
-#define XC_coffee_mug 28 #define XC_sailboat 104
-#define XC_cross 30 #define XC_sb_down_arrow 106
-#define XC_cross_reverse 32 #define XC_sb_h_double_arrow 108
-#define XC_crosshair 34 #define XC_sb_left_arrow 110
-#define XC_diamond_cross 36 #define XC_sb_right_arrow 112
-#define XC_dot 38 #define XC_sb_up_arrow 114
-#define XC_dot_box_mask 40 #define XC_sb_v_double_arrow 116
-#define XC_double_arrow 42 #define XC_shuttle 118
-#define XC_draft_large 44 #define XC_sizing 120
-#define XC_draft_small 46 #define XC_spider 122
-#define XC_draped_box 48 #define XC_spraycan 124
-#define XC_exchange 50 #define XC_star 126
-#define XC_fleur 52 #define XC_target 128
-#define XC_gobbler 54 #define XC_tcross 130
-#define XC_gumby 56 #define XC_top_left_arrow 132
-#define XC_hand1 58 #define XC_top_left_corner 134
-#define XC_hand2 60 #define XC_top_right_corner 136
-#define XC_heart 62 #define XC_top_side 138
-#define XC_icon 64 #define XC_top_tee 140
-#define XC_iron_cross 66 #define XC_trek 142
-#define XC_left_ptr 68 #define XC_ul_angle 144
-#define XC_left_side 70 #define XC_umbrella 146
-#define XC_left_tee 72 #define XC_ur_angle 148
-#define XC_leftbutton 74 #define XC_watch 150
- #define XC_xterm 152
-</literallayout>
-</appendix>
-
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<appendix id="x_font_cursors">
+<title>X Font Cursors</title>
+<para>
+The following are the available cursors that can be used with
+<xref linkend='XCreateFontCursor' xrefstyle='select: title'/>.
+</para>
+<literallayout class="monospaced">
+#define XC_X_cursor 0 #define XC_ll_angle 76
+#define XC_arrow 2 #define XC_lr_angle 78
+#define XC_based_arrow_down 4 #define XC_man 80
+#define XC_based_arrow_up 6 #define XC_middlebutton 82
+#define XC_boat 8 #define XC_mouse 84
+#define XC_bogosity 10 #define XC_pencil 86
+#define XC_bottom_left_corner 12 #define XC_pirate 88
+#define XC_bottom_right_corner 14 #define XC_plus 90
+#define XC_bottom_side 16 #define XC_question_arrow 92
+#define XC_bottom_tee 18 #define XC_right_ptr 94
+#define XC_box_spiral 20 #define XC_right_side 96
+#define XC_center_ptr 22 #define XC_right_tee 98
+#define XC_circle 24 #define XC_rightbutton 100
+#define XC_clock 26 #define XC_rtl_logo 102
+#define XC_coffee_mug 28 #define XC_sailboat 104
+#define XC_cross 30 #define XC_sb_down_arrow 106
+#define XC_cross_reverse 32 #define XC_sb_h_double_arrow 108
+#define XC_crosshair 34 #define XC_sb_left_arrow 110
+#define XC_diamond_cross 36 #define XC_sb_right_arrow 112
+#define XC_dot 38 #define XC_sb_up_arrow 114
+#define XC_dot_box_mask 40 #define XC_sb_v_double_arrow 116
+#define XC_double_arrow 42 #define XC_shuttle 118
+#define XC_draft_large 44 #define XC_sizing 120
+#define XC_draft_small 46 #define XC_spider 122
+#define XC_draped_box 48 #define XC_spraycan 124
+#define XC_exchange 50 #define XC_star 126
+#define XC_fleur 52 #define XC_target 128
+#define XC_gobbler 54 #define XC_tcross 130
+#define XC_gumby 56 #define XC_top_left_arrow 132
+#define XC_hand1 58 #define XC_top_left_corner 134
+#define XC_hand2 60 #define XC_top_right_corner 136
+#define XC_heart 62 #define XC_top_side 138
+#define XC_icon 64 #define XC_top_tee 140
+#define XC_iron_cross 66 #define XC_trek 142
+#define XC_left_ptr 68 #define XC_ul_angle 144
+#define XC_left_side 70 #define XC_umbrella 146
+#define XC_left_tee 72 #define XC_ur_angle 148
+#define XC_leftbutton 74 #define XC_watch 150
+ #define XC_xterm 152
+</literallayout>
+</appendix>
+
diff --git a/libX11/specs/libX11/AppC.xml b/libX11/specs/libX11/AppC.xml
index 72103095b..c2e7f54fb 100644
--- a/libX11/specs/libX11/AppC.xml
+++ b/libX11/specs/libX11/AppC.xml
@@ -42,13 +42,13 @@ Basic Protocol Support Routines
</para>
<para>
The basic protocol requests for extensions are
-<function>XQueryExtension</function>
+<xref linkend='XQueryExtension' xrefstyle='select: title'/>
and
-<function>XListExtensions</function>.
+<xref linkend='XListExtensions' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryExtension</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xqueryextension'>
+<funcsynopsis id='XQueryExtension'>
<funcprototype>
<funcdef>Bool <function>XQueryExtension</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -96,29 +96,29 @@ and
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryExtension</function>
+<xref linkend='XQueryExtension' xrefstyle='select: title'/>
function determines if the named extension is present.
If the extension is not present,
-<function>XQueryExtension</function>
+<xref linkend='XQueryExtension' xrefstyle='select: title'/>
returns
<symbol>False</symbol>;
otherwise, it returns
<symbol>True</symbol>.
If the extension is present,
-<function>XQueryExtension</function>
+<xref linkend='XQueryExtension' xrefstyle='select: title'/>
returns the major opcode for the extension to major_opcode_return;
otherwise,
it returns zero.
Any minor opcode and the request formats are specific to the
extension.
If the extension involves additional event types,
-<function>XQueryExtension</function>
+<xref linkend='XQueryExtension' xrefstyle='select: title'/>
returns the base event type code to first_event_return;
otherwise,
it returns zero.
The format of the events is specific to the extension.
If the extension involves additional error codes,
-<function>XQueryExtension</function>
+<xref linkend='XQueryExtension' xrefstyle='select: title'/>
returns the base error code to first_error_return;
otherwise,
it returns zero.
@@ -134,7 +134,7 @@ are all considered different names.
</para>
<indexterm significance="preferred"><primary>XListExtensions</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlistextensions'>
+<funcsynopsis id='XListExtensions'>
<funcprototype>
<funcdef>char **<function>XListExtensions</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -168,7 +168,7 @@ Returns the number of extensions listed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XListExtensions</function>
+<xref linkend='XListExtensions' xrefstyle='select: title'/>
function returns a list of all extensions supported by the server.
If the data returned by the server is in the Latin Portable Character Encoding,
then the returned strings are in the Host Portable Character Encoding.
@@ -176,7 +176,7 @@ Otherwise, the result is implementation-dependent.
</para>
<indexterm significance="preferred"><primary>XFreeExtensionList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreeextensionlist'>
+<funcsynopsis id='XFreeExtensionList'>
<funcprototype>
<funcdef><function>XFreeExtensionList</function></funcdef>
<paramdef>char<parameter> **list</parameter></paramdef>
@@ -199,9 +199,9 @@ Specifies the list of extension names.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeExtensionList</function>
+<xref linkend='XFreeExtensionList' xrefstyle='select: title'/>
function frees the memory allocated by
-<function>XListExtensions</function>.
+<xref linkend='XListExtensions' xrefstyle='select: title'/>.
<!-- .SH -->
Hooking into Xlib
</para>
@@ -219,7 +219,7 @@ called stubs.
In extensions, stubs first should check to see if they have initialized
themselves on a connection.
If they have not, they then should call
-<function>XInitExtension</function>
+<xref linkend='XInitExtension' xrefstyle='select: title'/>
to attempt to initialize themselves on the connection.
</para>
<para>
@@ -234,7 +234,7 @@ called when these events occur.
The
<structname>XExtCodes</structname>
structure returns the information from
-<function>XInitExtension</function>
+<xref linkend='XInitExtension' xrefstyle='select: title'/>
and is defined in
<filename class="headerfile">&lt;X11/Xlib.h&gt;</filename>:
</para>
@@ -257,7 +257,7 @@ typedef struct _XExtCodes { /* public to extension, cannot be changed */
<!-- .eM -->
<indexterm significance="preferred"><primary>XInitExtension</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xinitextension'>
+<funcsynopsis id='XInitExtension'>
<funcprototype>
<funcdef>XExtCodes *<function>XInitExtension</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -291,7 +291,7 @@ Specifies the extension name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XInitExtension</function>
+<xref linkend='XInitExtension' xrefstyle='select: title'/>
function determines if the named extension exists.
Then, it allocates storage for maintaining the
information about the extension on the connection,
@@ -299,7 +299,7 @@ chains this onto the extension list for the connection,
and returns the information the stub implementor will need to access
the extension.
If the extension does not exist,
-<function>XInitExtension</function>
+<xref linkend='XInitExtension' xrefstyle='select: title'/>
returns NULL.
</para>
<para>
@@ -321,7 +321,7 @@ This extension number is unique only to a single connection.
<!-- .LP -->
<indexterm significance="preferred"><primary>XAddExtension</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xaddextension'>
+<funcsynopsis id='XAddExtension'>
<funcprototype>
<funcdef>XExtCodes *<function>XAddExtension</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -344,7 +344,7 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
For local Xlib extensions, the
-<function>XAddExtension</function>
+<xref linkend='XAddExtension' xrefstyle='select: title'/>
function allocates the
<structname>XExtCodes</structname>
structure, bumps the extension number count,
@@ -369,7 +369,7 @@ extension.
</para>
<indexterm significance="preferred"><primary>XESetCloseDisplay</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetclosedisplay'>
+<funcsynopsis id='XESetCloseDisplay'>
<funcprototype>
<funcdef>int <function>XESetCloseDisplay</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -414,7 +414,7 @@ Specifies the procedure to call when the display is closed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetCloseDisplay</function>
+<xref linkend='XESetCloseDisplay' xrefstyle='select: title'/>
function defines a procedure to be called whenever
<function>XCloseDisplay</function>
is called.
@@ -437,7 +437,7 @@ with these arguments:
</para>
<indexterm significance="preferred"><primary>XESetCreateGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetcreategc'>
+<funcsynopsis id='XESetCreateGC'>
<funcprototype>
<funcdef>int *<function>XESetCreateGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -482,7 +482,7 @@ Specifies the procedure to call when a GC is closed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetCreateGC</function>
+<xref linkend='XESetCreateGC' xrefstyle='select: title'/>
function defines a procedure to be called whenever
a new GC is created.
It returns any previously defined procedure, usually NULL.
@@ -504,7 +504,7 @@ your procedure is called with these arguments:
</para>
<indexterm significance="preferred"><primary>XESetCopyGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetcopygc'>
+<funcsynopsis id='XESetCopyGC'>
<funcprototype>
<funcdef>int *<function>XESetCopyGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -549,7 +549,7 @@ Specifies the procedure to call when GC components are copied.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetCopyGC</function>
+<xref linkend='XESetCopyGC' xrefstyle='select: title'/>
function defines a procedure to be called whenever
a GC is copied.
It returns any previously defined procedure, usually NULL.
@@ -567,7 +567,7 @@ your procedure is called with these arguments:
</funcprototype>
</funcsynopsis>
</para>
-<funcsynopsis id='xesetfreegc'>
+<funcsynopsis id='XESetFreeGC'>
<funcprototype>
<funcdef>int *<function>XESetFreeGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -611,7 +611,7 @@ Specifies the procedure to call when a GC is freed.
<para>
The
-<function>XESetFreeGC</function>
+<xref linkend='XESetFreeGC' xrefstyle='select: title'/>
function defines a procedure to be called whenever
a GC is freed.
It returns any previously defined procedure, usually NULL.
@@ -638,7 +638,7 @@ your procedure is called with these arguments:
<!-- .eM -->
<indexterm significance="preferred"><primary>XESetCreateFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetcreatefont'>
+<funcsynopsis id='XESetCreateFont'>
<funcprototype>
<funcdef>int *<function>XESetCreateFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -683,20 +683,20 @@ Specifies the procedure to call when a font is created.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetCreateFont</function>
+<xref linkend='XESetCreateFont' xrefstyle='select: title'/>
function defines a procedure to be called whenever
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
and
-<function>XQueryFont</function>
+<xref linkend='XQueryFont' xrefstyle='select: title'/>
are called.
It returns any previously defined procedure, usually NULL.
</para>
<para>
<!-- .LP -->
When
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
or
-<function>XQueryFont</function>
+<xref linkend='XQueryFont' xrefstyle='select: title'/>
is called,
your procedure is called with these arguments:
<!-- .LP -->
@@ -717,7 +717,7 @@ your procedure is called with these arguments:
<!-- .eM -->
<indexterm significance="preferred"><primary>XESetFreeFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetfreefont'>
+<funcsynopsis id='XESetFreeFont'>
<funcprototype>
<funcdef>int *<function>XESetFreeFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -762,16 +762,16 @@ Specifies the procedure to call when a font is freed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetFreeFont</function>
+<xref linkend='XESetFreeFont' xrefstyle='select: title'/>
function defines a procedure to be called whenever
-<function>XFreeFont</function>
+<xref linkend='XFreeFont' xrefstyle='select: title'/>
is called.
It returns any previously defined procedure, usually NULL.
</para>
<para>
<!-- .LP -->
When
-<function>XFreeFont</function>
+<xref linkend='XFreeFont' xrefstyle='select: title'/>
is called, your procedure is called with these arguments:
<!-- .LP -->
<!-- .sM -->
@@ -791,9 +791,9 @@ is called, your procedure is called with these arguments:
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetWireToEvent</function>
+<xref linkend='XESetWireToEvent' xrefstyle='select: title'/>
and
-<function>XESetEventToWire</function>
+<xref linkend='XESetEventToWire' xrefstyle='select: title'/>
functions allow you to define new events to the library.
An
<structname>XEvent</structname>
@@ -829,7 +829,7 @@ in the structure will be fully portable between machines.
<!-- .NE -->
<indexterm significance="preferred"><primary>XESetWireToEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetwiretoevent'>
+<funcsynopsis id='XESetWireToEvent'>
<funcprototype>
<funcdef>int *<function>XESetWireToEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -874,7 +874,7 @@ Specifies the procedure to call when converting an event.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetWireToEvent</function>
+<xref linkend='XESetWireToEvent' xrefstyle='select: title'/>
function defines a procedure to be called when an event
needs to be converted from wire format
(<structname>xEvent</structname>)
@@ -882,7 +882,7 @@ to host format
(<structname>XEvent</structname>).
The event number defines which protocol event number to install a
conversion procedure for.
-<function>XESetWireToEvent</function>
+<xref linkend='XESetWireToEvent' xrefstyle='select: title'/>
returns any previously defined procedure.
<!-- .NT -->
You can replace a core event conversion function with one
@@ -931,13 +931,13 @@ if it should not be placed in the queue.
<para>
<!-- .LP -->
To initialize the serial number component of the event, call
-<function>_XSetLastRequestRead</function>
+<xref linkend='_XSetLastRequestRead' xrefstyle='select: title'/>
with the event and use the return value.
</para>
<!-- .LP -->
<indexterm significance="preferred"><primary>_XSetLastRequestRead</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetlastrequestread'>
+<funcsynopsis id='_XSetLastRequestRead'>
<funcprototype>
<funcdef>unsigned long<function>_XSetLastRequestRead</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -971,7 +971,7 @@ Specifies the wire event structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>_XSetLastRequestRead</function>
+<xref linkend='_XSetLastRequestRead' xrefstyle='select: title'/>
function computes and returns a complete serial number from the partial
serial number in the event.
<!-- .sp -->
@@ -979,7 +979,7 @@ serial number in the event.
<!-- .LP -->
<indexterm significance="preferred"><primary>XESetEventToWire</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xeseteventtowire'>
+<funcsynopsis id='XESetEventToWire'>
<funcprototype>
<funcdef>Status *<function>XESetEventToWire</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1024,7 +1024,7 @@ Specifies the procedure to call when converting an event.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetEventToWire</function>
+<xref linkend='XESetEventToWire' xrefstyle='select: title'/>
function defines a procedure to be called when an event
needs to be converted from host format
(<structname>XEvent</structname>)
@@ -1033,7 +1033,7 @@ to wire format
form.
The event number defines which protocol event number to install a
conversion procedure for.
-<function>XESetEventToWire</function>
+<xref linkend='XESetEventToWire' xrefstyle='select: title'/>
returns any previously defined procedure.
It returns zero if the conversion fails or nonzero otherwise.
<!-- .NT -->
@@ -1071,7 +1071,7 @@ structure.
</para>
<indexterm significance="preferred"><primary>XESetWireToError</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetwiretoerror'>
+<funcsynopsis id='XESetWireToError'>
<funcprototype>
<funcdef>Bool *<function>XESetWireToError</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1116,12 +1116,12 @@ Specifies the procedure to call when an error is received.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetWireToError</function>
+<xref linkend='XESetWireToError' xrefstyle='select: title'/>
function defines a procedure to be called when an extension
error needs to be converted from wire format to host format.
The error number defines which protocol error code to install
the conversion procedure for.
-<function>XESetWireToError</function>
+<xref linkend='XESetWireToError' xrefstyle='select: title'/>
returns any previously defined procedure.
</para>
<para>
@@ -1166,7 +1166,7 @@ otherwise, it should return
</para>
<indexterm significance="preferred"><primary>XESetError</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xeseterror'>
+<funcsynopsis id='XESetError'>
<funcprototype>
<funcdef>int *<function>XESetError</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1219,7 +1219,7 @@ case, and are typically programmed to be synchronous).
<para>
<!-- .LP -->
When Xlib detects a protocol error in
-<function>_XReply</function>,
+<xref linkend='_XReply' xrefstyle='select: title'/>,
it calls your procedure with these arguments:
<!-- .LP -->
<!-- .sM -->
@@ -1240,7 +1240,7 @@ it calls your procedure with these arguments:
The err argument is a pointer to the 32-byte wire format error.
The codes argument is a pointer to the extension codes structure.
The ret_code argument is the return code you may want
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
returned to.
</para>
<para>
@@ -1252,12 +1252,12 @@ the client's error handler is called.
see <link linkend="Using_the_Default_Error_Handlers">section 11.8.2</link>.)
If your procedure returns nonzero,
the error is suppressed, and
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
returns the value of ret_code.
</para>
<indexterm significance="preferred"><primary>XESetErrorString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xeseterrorstring'>
+<funcsynopsis id='XESetErrorString'>
<funcprototype>
<funcdef>char *<function>XESetErrorString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1302,9 +1302,9 @@ Specifies the procedure to call to obtain an error string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetErrorText</function>
+<xref linkend='XGetErrorText' xrefstyle='select: title'/>
function returns a string to the user for an error.
-<function>XESetErrorString</function>
+<xref linkend='XESetErrorString' xrefstyle='select: title'/>
allows you to define a procedure to be called that
should return a pointer to the error message.
The following is an example.
@@ -1333,7 +1333,7 @@ error message into buffer.
</para>
<indexterm significance="preferred"><primary>XESetPrintErrorValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetprinterrorvalues'>
+<funcsynopsis id='XESetPrintErrorValues'>
<funcprototype>
<funcdef>void *<function>XESetPrintErrorValues</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1378,7 +1378,7 @@ Specifies the procedure to call when an error is printed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XESetPrintErrorValues</function>
+<xref linkend='XESetPrintErrorValues' xrefstyle='select: title'/>
function defines a procedure to be called when an extension
error is printed, to print the error values.
Use this function for extension errors that contain additional error values
@@ -1409,13 +1409,13 @@ The structure pointed at by ev is guaranteed to be as large as an
structure and so can be cast to a type larger than an
<structname>XErrorEvent</structname>
to obtain additional values set by using
-<function>XESetWireToError</function>.
+<xref linkend='XESetWireToError' xrefstyle='select: title'/>.
The underlying type of the fp argument is system dependent;
on a <acronym>POSIX</acronym>-compliant system, fp should be cast to type FILE*.
</para>
<indexterm significance="preferred"><primary>XESetFlushGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xesetflushgc'>
+<funcsynopsis id='XESetFlushGC'>
<funcprototype>
<funcdef>int *<function>XESetFlushGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1460,9 +1460,9 @@ Specifies the procedure to call when a GC is flushed.
<!-- .LP -->
<!-- .eM -->
The procedure set by the
-<function>XESetFlushGC</function>
+<xref linkend='XESetFlushGC' xrefstyle='select: title'/>
function has the same interface as the procedure set by the
-<function>XESetCopyGC</function>
+<xref linkend='XESetCopyGC' xrefstyle='select: title'/>
function, but is called when a GC cache needs to be updated in the server.
</para>
<indexterm significance="preferred"><primary>XESetBeforeFlush</primary></indexterm>
@@ -1603,7 +1603,7 @@ union { Display *display;
<!-- .eM -->
<indexterm significance="preferred"><primary>XEHeadOfExtensionList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xeheadofextensionlist'>
+<funcsynopsis id='XEHeadOfExtensionList'>
<funcprototype>
<funcdef>XExtData **<function>XEHeadOfExtensionList</function></funcdef>
<paramdef>XEDataObject<parameter> object</parameter></paramdef>
@@ -1626,12 +1626,12 @@ Specifies the object.
<!-- .LP -->
<!-- .eM -->
The
-<function>XEHeadOfExtensionList</function>
+<xref linkend='XEHeadOfExtensionList' xrefstyle='select: title'/>
function returns a pointer to the list of extension structures attached
to the specified object.
In concert with
-<function>XAddToExtensionList</function>,
-<function>XEHeadOfExtensionList</function>
+<xref linkend='XAddToExtensionList' xrefstyle='select: title'/>,
+<xref linkend='XEHeadOfExtensionList' xrefstyle='select: title'/>
allows an extension to attach arbitrary data to any of the structures
of types contained in
<structname>XEDataObject</structname>.
@@ -1639,7 +1639,7 @@ of types contained in
<!-- .LP -->
<indexterm significance="preferred"><primary>XAddToExtensionList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xaddtoextensionlist'>
+<funcsynopsis id='XAddToExtensionList'>
<funcprototype>
<funcdef><function>XAddToExtensionList</function></funcdef>
<paramdef>XExtData<parameter> **structure</parameter></paramdef>
@@ -1679,7 +1679,7 @@ before calling this function.
</para>
<indexterm significance="preferred"><primary>XFindOnExtensionList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfindonextensionlist'>
+<funcsynopsis id='XFindOnExtensionList'>
<funcprototype>
<funcdef>XExtData *<function>XFindOnExtensionList</function></funcdef>
<paramdef>struct_XExtData<parameter> **structure</parameter></paramdef>
@@ -1705,7 +1705,7 @@ Specifies the extension list.
<listitem>
<para>
Specifies the extension number from
-<function>XInitExtension</function>.
+<xref linkend='XInitExtension' xrefstyle='select: title'/>.
</para>
</listitem>
</varlistentry>
@@ -1714,7 +1714,7 @@ Specifies the extension number from
<!-- .LP -->
<!-- .eM -->
The
-<function>XFindOnExtensionList</function>
+<xref linkend='XFindOnExtensionList' xrefstyle='select: title'/>
function returns the first extension data structure
for the extension numbered number.
It is expected that an extension will add at most one extension
@@ -1724,13 +1724,13 @@ There is no way to find additional structures.
<para>
<!-- .LP -->
The
-<function>XAllocID</function>
+<xref linkend='XAllocID' xrefstyle='select: title'/>
macro, which allocates and returns a resource ID, is defined in
<filename class="headerfile">&lt;X11/Xlib.h&gt;</filename>.
</para>
<indexterm significance="preferred"><primary>XAllocID</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xallocid'>
+<funcsynopsis id='XAllocID'>
<funcprototype>
<funcdef><function>XAllocID</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1760,12 +1760,12 @@ It returns a resource ID that you can use when creating new resources.
<para>
<!-- .LP -->
The
-<function>XAllocIDs</function>
+<xref linkend='XAllocIDs' xrefstyle='select: title'/>
macro allocates and returns an array of resource ID.
</para>
<indexterm significance="preferred"><primary>XAllocIDs</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xallocids'>
+<funcsynopsis id='XAllocIDs'>
<funcprototype>
<funcdef><function>XAllocIDs</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1814,7 +1814,7 @@ This macro is a call through the
structure to an internal resource ID allocator.
It returns resource IDs to the array supplied by the caller.
To correctly handle automatic reuse of resource IDs, you must call
-<function>XAllocIDs</function>
+<xref linkend='XAllocIDs' xrefstyle='select: title'/>
when requesting multiple resource IDs. This call might generate
protocol requests.
<!-- .SH -->
@@ -1832,17 +1832,17 @@ in its GC.
<para>
<!-- .LP -->
The
-<function>FlushGC</function>
+<xref linkend='FlushGC' xrefstyle='select: title'/>
macro checks the dirty bits in the library's GC structure and calls
-<function>_XFlushGCCache</function>
+<xref linkend='_XFlushGCCache' xrefstyle='select: title'/>
if any elements have changed.
The
-<function>FlushGC</function>
+<xref linkend='FlushGC' xrefstyle='select: title'/>
macro is defined as follows:
</para>
<indexterm significance="preferred"><primary>FlushGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='flushgc'>
+<funcsynopsis id='FlushGC'>
<funcprototype>
<funcdef><function>FlushGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1882,17 +1882,17 @@ using it, so if you only stored the value in the cache without
forcing a protocol request, the resource might be destroyed before being
set into the GC.
You can use the
-<function>_XFlushGCCache</function>
+<xref linkend='_XFlushGCCache' xrefstyle='select: title'/>
procedure
to force the cache to be flushed.
The
-<function>_XFlushGCCache</function>
+<xref linkend='_XFlushGCCache' xrefstyle='select: title'/>
procedure
is defined as follows:
</para>
<indexterm significance="preferred"><primary>_XFlushGCCache</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='_xflushgccache'>
+<funcsynopsis id='_XFlushGCCache'>
<funcprototype>
<funcdef><function>_XFlushGCCache</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1945,7 +1945,7 @@ to just extend the previous graphics request by extending the length
field of the request and appending the data to the buffer.
This can improve performance by five times or more in naive programs.
For example, here is the source for the
-<function>XDrawPoint</function>
+<xref linkend='XDrawPoint' xrefstyle='select: title'/>
stub.
(Writing extension stubs is discussed in the next section.)
</para>
@@ -2007,7 +2007,7 @@ there is a symbol defined in
of EPERBATCH on the number of requests batched.
Most of the performance benefit occurs in the first few merged requests.
Note that
-<function>FlushGC</function>
+<xref linkend='FlushGC' xrefstyle='select: title'/>
is called <emphasis remap='I'>before</emphasis> picking up the value of last_req,
because it may modify this field.
<!-- .SH -->
@@ -2314,7 +2314,7 @@ architecture.
Two calls, which are generally implemented as macros, have been provided.
<indexterm significance="preferred"><primary>LockDisplay</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='lockdisplay'>
+<funcsynopsis id='LockDisplay'>
<funcprototype>
<funcdef><function>LockDisplay</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2324,7 +2324,7 @@ Two calls, which are generally implemented as macros, have been provided.
</para>
<!-- .LP -->
<indexterm significance="preferred"><primary>UnlockDisplay</primary></indexterm>
-<funcsynopsis id='unlockdisplay'>
+<funcsynopsis id='UnlockDisplay'>
<funcprototype>
<funcdef><function>UnlockDisplay</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2427,13 +2427,13 @@ req-&gt;arg2 = arg2;
...
</programlisting>
A few stub procedures (such as
-<function>XCreateGC</function>
+<xref linkend='XCreateGC' xrefstyle='select: title'/>
and
-<function>XCreatePixmap</function>)
+<xref linkend='XCreatePixmap' xrefstyle='select: title'/>)
return a resource ID to the caller but pass a resource ID as an argument
to the protocol request.
Such procedures use the macro
-<function>XAllocID</function>
+<xref linkend='XAllocID' xrefstyle='select: title'/>
to allocate a resource ID from the range of IDs
that were assigned to this client when it opened the connection.
</para>
@@ -2448,13 +2448,13 @@ return (rid);
Finally, some stub procedures transmit a fixed amount of variable-length
data after the request.
Typically, these procedures (such as
-<function>XMoveWindow</function>
+<xref linkend='XMoveWindow' xrefstyle='select: title'/>
and
-<function>XSetBackground</function>)
+<xref linkend='XSetBackground' xrefstyle='select: title'/>)
are special cases of more general functions like
-<function>XMoveResizeWindow</function>
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>
and
-<function>XChangeGC</function>.
+<xref linkend='XChangeGC' xrefstyle='select: title'/>.
These procedures use
<function>GetReqExtra</function>,
which is the same as
@@ -2491,23 +2491,23 @@ then you must round the length up and shift it before adding:
req-&gt;length += (nbytes+3)&gt;&gt;2;
</programlisting>
To transmit variable-length data, use the
-<function>Data</function>
+<xref linkend='Data' xrefstyle='select: title'/>
macros.
If the data fits into the output buffer,
then this macro copies it to the buffer.
If it does not fit, however,
the
-<function>Data</function>
+<xref linkend='Data' xrefstyle='select: title'/>
macro calls
<function>_XSend</function>,
which transmits first the contents of the buffer and then your data.
The
-<function>Data</function>
+<xref linkend='Data' xrefstyle='select: title'/>
macros take three arguments:
the display, a pointer to the beginning of the data,
and the number of bytes to be sent.
<!-- .sM -->
-<funcsynopsis id='data'>
+<funcsynopsis id='Data'>
<funcprototype>
<funcdef><function>Data</function></funcdef>
<paramdef><parameter> display</parameter></paramdef>
@@ -2519,7 +2519,7 @@ and the number of bytes to be sent.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>Data</function>,
+<xref linkend='Data' xrefstyle='select: title'/>,
<function>Data16</function>,
and
<function>Data32</function>
@@ -2536,13 +2536,13 @@ If the protocol request requires a reply,
then call the procedure
<function>_XSend</function>
instead of the
-<function>Data</function>
+<xref linkend='Data' xrefstyle='select: title'/>
macro.
<function>_XSend</function>
takes the same arguments, but because it sends your data immediately instead of
copying it into the output buffer (which would later be flushed
anyway by the following call on
-<function>_XReply</function>),
+<xref linkend='_XReply' xrefstyle='select: title'/>),
it is faster.
<!-- .SH -->
Replies
@@ -2551,20 +2551,20 @@ Replies
<!-- .LP -->
If the protocol request has a reply,
then call
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
after you have finished dealing with
all the fixed-length and variable-length arguments.
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
flushes the output buffer and waits for an
<structname>xReply</structname>
packet to arrive.
If any events arrive in the meantime,
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
places them in the queue for later use.
</para>
<indexterm significance="preferred"><primary>_XReply</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='_xreply'>
+<funcsynopsis id='_XReply'>
<funcprototype>
<funcdef>Status <function>_XReply</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2621,12 +2621,12 @@ should be discarded.
<!-- .LP -->
<!-- .eM -->
The
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
function waits for a reply packet and copies its contents into the
specified rep.
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
handles error and event packets that occur before the reply is received.
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
takes four arguments:
</para>
<itemizedlist>
@@ -2655,7 +2655,7 @@ in the reply structure
<listitem>
<para>
A Boolean that indicates whether
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
is to discard any additional bytes
beyond those it was told to read
</para>
@@ -2693,7 +2693,7 @@ larger, but compatible,
<structname>xGetWindowAttributesReply</structname>
that contains additional attribute data at the end.
<!-- .NE -->
-<function>_XReply</function>
+<xref linkend='_XReply' xrefstyle='select: title'/>
returns
<symbol>True</symbol>
if it received a reply successfully or
@@ -2725,12 +2725,12 @@ change the
to
<symbol>False</symbol>,
and use the appropriate
-<function>_XRead</function>
+<xref linkend='_XRead' xrefstyle='select: title'/>
function to read the variable-length data.
</para>
<!-- .LP -->
<!-- .sM -->
-<funcsynopsis id='_xread'>
+<funcsynopsis id='_XRead'>
<funcprototype>
<funcdef><function>_XRead</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2775,12 +2775,12 @@ Specifies the number of bytes required.
<!-- .LP -->
<!-- .eM -->
The
-<function>_XRead</function>
+<xref linkend='_XRead' xrefstyle='select: title'/>
function reads the specified number of bytes into data_return.
</para>
<!-- .LP -->
<!-- .sM -->
-<funcsynopsis id='_xread16'>
+<funcsynopsis id='_XRead16'>
<funcprototype>
<funcdef><function>_XRead16</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2825,14 +2825,14 @@ Specifies the number of bytes required.
<!-- .LP -->
<!-- .eM -->
The
-<function>_XRead16</function>
+<xref linkend='_XRead16' xrefstyle='select: title'/>
function reads the specified number of bytes,
unpacking them as 16-bit quantities,
into the specified array as shorts.
</para>
<!-- .LP -->
<!-- .sM -->
-<funcsynopsis id='_xread32'>
+<funcsynopsis id='_XRead32'>
<funcprototype>
<funcdef><function>_XRead32</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2877,14 +2877,14 @@ Specifies the number of bytes required.
<!-- .LP -->
<!-- .eM -->
The
-<function>_XRead32</function>
+<xref linkend='_XRead32' xrefstyle='select: title'/>
function reads the specified number of bytes,
unpacking them as 32-bit quantities,
into the specified array as longs.
</para>
<!-- .LP -->
<!-- .sM -->
-<funcsynopsis id='_xread16pad'>
+<funcsynopsis id='_XRead16Pad'>
<funcprototype>
<funcdef><function>_XRead16Pad</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2929,17 +2929,17 @@ Specifies the number of bytes required.
<!-- .LP -->
<!-- .eM -->
The
-<function>_XRead16Pad</function>
+<xref linkend='_XRead16Pad' xrefstyle='select: title'/>
function reads the specified number of bytes,
unpacking them as 16-bit quantities,
into the specified array as shorts.
If the number of bytes is not a multiple of four,
-<function>_XRead16Pad</function>
+<xref linkend='_XRead16Pad' xrefstyle='select: title'/>
reads and discards up to two additional pad bytes.
</para>
<!-- .LP -->
<!-- .sM -->
-<funcsynopsis id='_xreadpad'>
+<funcsynopsis id='_XReadPad'>
<funcprototype>
<funcdef><function>_XReadPad</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2984,10 +2984,10 @@ Specifies the number of bytes required.
<!-- .LP -->
<!-- .eM -->
The
-<function>_XReadPad</function>
+<xref linkend='_XReadPad' xrefstyle='select: title'/>
function reads the specified number of bytes into data_return.
If the number of bytes is not a multiple of four,
-<function>_XReadPad</function>
+<xref linkend='_XReadPad' xrefstyle='select: title'/>
reads and discards up to three additional pad bytes.
</para>
<para>
@@ -3039,7 +3039,7 @@ critical section:
</para>
<indexterm significance="preferred"><primary>_XAllocScratch</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='_xallocscratch'>
+<funcsynopsis id='_XAllocScratch'>
<funcprototype>
<funcdef>char *<function>_XAllocScratch</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3078,14 +3078,14 @@ that might permit another thread to execute inside Xlib. For example,
the pointer cannot be assumed valid after any use of the
<function>GetReq</function>
or
-<function>Data</function>
+<xref linkend='Data' xrefstyle='select: title'/>
families of macros,
after any use of
-<function>_XReply</function>,
+<xref linkend='_XReply' xrefstyle='select: title'/>,
or after any use of the
<function>_XSend</function>
or
-<function>_XRead</function>
+<xref linkend='_XRead' xrefstyle='select: title'/>
families of functions.
</para>
<para>
@@ -3096,7 +3096,7 @@ critical sections:
</para>
<indexterm significance="preferred"><primary>_XAllocTemp</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='_xalloctemp'>
+<funcsynopsis id='_XAllocTemp'>
<funcprototype>
<funcdef>char *<function>_XAllocTemp</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3135,7 +3135,7 @@ The following function returns the storage:
</para>
<indexterm significance="preferred"><primary>_XFreeTemp</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='_xfreetemp'>
+<funcsynopsis id='_XFreeTemp'>
<funcprototype>
<funcdef>void <function>_XFreeTemp</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3180,7 +3180,7 @@ Specifies the size of the buffer.
<!-- .LP -->
<!-- .eM -->
You must pass back the same pointer and size that were returned by
-<function>_XAllocTemp</function>.
+<xref linkend='_XAllocTemp' xrefstyle='select: title'/>.
<!-- .SH -->
Portability Considerations
</para>
@@ -3288,7 +3288,7 @@ Call your initialization procedure and pass to it the display pointer.
<listitem>
<para>
Once in your initialization procedure, call
-<function>XInitExtension</function>;
+<xref linkend='XInitExtension' xrefstyle='select: title'/>;
if it succeeds, store the pointer returned into this array.
Make sure to establish a close display handler to allow you to zero the entry.
Do whatever other initialization your extension requires.
diff --git a/libX11/specs/libX11/AppD.xml b/libX11/specs/libX11/AppD.xml
index a8cd375c3..f3c0e2f6a 100644
--- a/libX11/specs/libX11/AppD.xml
+++ b/libX11/specs/libX11/AppD.xml
@@ -47,16 +47,16 @@ Get X environment defaults
<para>
To specify a minimum set of properties describing the simplest application,
use
-<function>XSetStandardProperties</function>.
+<xref linkend='XSetStandardProperties' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
and sets all or portions of the
<property>WM_NAME</property>, <property>WM_ICON_NAME</property>, <property>WM_HINTS</property>, <property>WM_COMMAND</property>,
and <property>WM_NORMAL_HINTS</property> properties.
</para>
<indexterm significance="preferred"><primary>XSetStandardProperties</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetstandardproperties'>
+<funcsynopsis id='XSetStandardProperties'>
<funcprototype>
<funcdef><function>XSetStandardProperties</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -159,22 +159,22 @@ Specifies a pointer to the size hints for the window in its normal state.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetStandardProperties</function>
+<xref linkend='XSetStandardProperties' xrefstyle='select: title'/>
function provides a means by which simple applications set the
most essential properties with a single call.
-<function>XSetStandardProperties</function>
+<xref linkend='XSetStandardProperties' xrefstyle='select: title'/>
should be used to give a window manager some information about
your program's preferences.
It should not be used by applications that need
to communicate more information than is possible with
-<function>XSetStandardProperties</function>.
+<xref linkend='XSetStandardProperties' xrefstyle='select: title'/>.
(Typically, argv is the argv array of your main program.)
If the strings are not in the Host Portable Character Encoding,
the result is implementation-dependent.
</para>
<para>
<!-- .LP -->
-<function>XSetStandardProperties</function>
+<xref linkend='XSetStandardProperties' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -199,13 +199,13 @@ header file and use the <property>WM_NORMAL_HINTS</property> property.
<!-- .LP -->
<!-- .sp -->
To set the size hints for a given window in its normal state, use
-<function>XSetNormalHints</function>.
+<xref linkend='XSetNormalHints' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XSetWMNormalHints</function>.
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetNormalHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetnormalhints'>
+<funcsynopsis id='XSetNormalHints'>
<funcprototype>
<funcdef><function>XSetNormalHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -250,15 +250,15 @@ Specifies a pointer to the size hints for the window in its normal state.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetNormalHints</function>
+<xref linkend='XSetNormalHints' xrefstyle='select: title'/>
function sets the size hints structure for the specified window.
Applications use
-<function>XSetNormalHints</function>
+<xref linkend='XSetNormalHints' xrefstyle='select: title'/>
to inform the window manager of the size
or position desirable for that window.
In addition,
an application that wants to move or resize itself should call
-<function>XSetNormalHints</function>
+<xref linkend='XSetNormalHints' xrefstyle='select: title'/>
and specify its new desired location and size
as well as making direct Xlib calls to move or resize.
This is because window managers may ignore redirected
@@ -271,13 +271,13 @@ an application not only must assign values to the appropriate members
in the hints structure but also must set the flags member of the structure
to indicate which information is present and where it came from.
A call to
-<function>XSetNormalHints</function>
+<xref linkend='XSetNormalHints' xrefstyle='select: title'/>
is meaningless, unless the flags member is set to indicate which members of
the structure have been assigned values.
</para>
<para>
<!-- .LP -->
-<function>XSetNormalHints</function>
+<xref linkend='XSetNormalHints' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -288,13 +288,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To return the size hints for a window in its normal state, use
-<function>XGetNormalHints</function>.
+<xref linkend='XGetNormalHints' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XGetWMNormalHints</function>.
+<xref linkend='XGetWMNormalHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetNormalHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetnormalhints'>
+<funcsynopsis id='XGetNormalHints'>
<funcprototype>
<funcdef>Status <function>XGetNormalHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -339,14 +339,14 @@ Returns the size hints for the window in its normal state.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetNormalHints</function>
+<xref linkend='XGetNormalHints' xrefstyle='select: title'/>
function returns the size hints for a window in its normal state.
It returns a nonzero status if it succeeds or zero if
the application specified no normal size hints for this window.
</para>
<para>
<!-- .LP -->
-<function>XGetNormalHints</function>
+<xref linkend='XGetNormalHints' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -359,13 +359,13 @@ The next two functions set and read the <property>WM_ZOOM_HINTS</property> prope
<para>
<!-- .LP -->
To set the zoom hints for a window, use
-<function>XSetZoomHints</function>.
+<xref linkend='XSetZoomHints' xrefstyle='select: title'/>.
This function is no longer supported by the
<emphasis remap='I'>Inter-Client Communication Conventions Manual</emphasis>.
</para>
<indexterm significance="preferred"><primary>XSetZoomHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetzoomhints'>
+<funcsynopsis id='XSetZoomHints'>
<funcprototype>
<funcdef><function>XSetZoomHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -412,13 +412,13 @@ Specifies a pointer to the zoom hints.
Many window managers think of windows in one of three states:
iconic, normal, or zoomed.
The
-<function>XSetZoomHints</function>
+<xref linkend='XSetZoomHints' xrefstyle='select: title'/>
function provides the window manager with information for the window in the
zoomed state.
</para>
<para>
<!-- .LP -->
-<function>XSetZoomHints</function>
+<xref linkend='XSetZoomHints' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -429,13 +429,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To read the zoom hints for a window, use
-<function>XGetZoomHints</function>.
+<xref linkend='XGetZoomHints' xrefstyle='select: title'/>.
This function is no longer supported by the
<emphasis remap='I'>Inter-Client Communication Conventions Manual</emphasis>.
</para>
<indexterm significance="preferred"><primary>XGetZoomHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetzoomhints'>
+<funcsynopsis id='XGetZoomHints'>
<funcprototype>
<funcdef>Status <function>XGetZoomHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -480,14 +480,14 @@ Returns the zoom hints.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetZoomHints</function>
+<xref linkend='XGetZoomHints' xrefstyle='select: title'/>
function returns the size hints for a window in its zoomed state.
It returns a nonzero status if it succeeds or zero if
the application specified no zoom size hints for this window.
</para>
<para>
<!-- .LP -->
-<function>XGetZoomHints</function>
+<xref linkend='XGetZoomHints' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -496,13 +496,13 @@ error.
<!-- .LP -->
<!-- .sp -->
To set the value of any property of type <property>WM_SIZE_HINTS</property>, use
-<function>XSetSizeHints</function>.
+<xref linkend='XSetSizeHints' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XSetWMSizeHints</function>.
+<xref linkend='XSetWMSizeHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetSizeHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetsizehints'>
+<funcsynopsis id='XSetSizeHints'>
<funcprototype>
<funcdef><function>XSetSizeHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -558,20 +558,20 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetSizeHints</function>
+<xref linkend='XSetSizeHints' xrefstyle='select: title'/>
function sets the
<structname>XSizeHints</structname>
structure for the named property and the specified window.
This is used by
-<function>XSetNormalHints</function>
+<xref linkend='XSetNormalHints' xrefstyle='select: title'/>
and
-<function>XSetZoomHints</function>
+<xref linkend='XSetZoomHints' xrefstyle='select: title'/>
and can be used to set the value of any property of type <property>WM_SIZE_HINTS</property>.
Thus, it may be useful if other properties of that type get defined.
</para>
<para>
<!-- .LP -->
-<function>XSetSizeHints</function>
+<xref linkend='XSetSizeHints' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadAtom</errorname>,
@@ -583,13 +583,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To read the value of any property of type <property>WM_SIZE_HINTS</property>, use
-<function>XGetSizeHints</function>.
+<xref linkend='XGetSizeHints' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XGetWMSizeHints</function>.
+<xref linkend='XGetWMSizeHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetSizeHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetsizehints'>
+<funcsynopsis id='XGetSizeHints'>
<funcprototype>
<funcdef>Status <function>XGetSizeHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -645,24 +645,24 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetSizeHints</function>
+<xref linkend='XGetSizeHints' xrefstyle='select: title'/>
function returns the
<structname>XSizeHints</structname>
structure for the named property and the specified window.
This is used by
-<function>XGetNormalHints</function>
+<xref linkend='XGetNormalHints' xrefstyle='select: title'/>
and
-<function>XGetZoomHints</function>.
+<xref linkend='XGetZoomHints' xrefstyle='select: title'/>.
It also can be used to retrieve the value of any property of type
<property>WM_SIZE_HINTS</property>.
Thus, it may be useful if other properties of that type get defined.
-<function>XGetSizeHints</function>
+<xref linkend='XGetSizeHints' xrefstyle='select: title'/>
returns a nonzero status if a size hint was defined
or zero otherwise.
</para>
<para>
<!-- .LP -->
-<function>XGetSizeHints</function>
+<xref linkend='XGetSizeHints' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
@@ -676,13 +676,13 @@ errors.
To get the
<structname>XStandardColormap</structname>
structure associated with one of the described atoms, use
-<function>XGetStandardColormap</function>.
+<xref linkend='XGetStandardColormap' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XGetRGBColormaps</function>.
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetStandardColormap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetstandardcolormap'>
+<funcsynopsis id='XGetStandardColormap'>
<funcprototype>
<funcdef>Status <function>XGetStandardColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -738,17 +738,17 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetStandardColormap</function>
+<xref linkend='XGetStandardColormap' xrefstyle='select: title'/>
function returns the colormap definition associated with the atom supplied
as the property argument.
-<function>XGetStandardColormap</function>
+<xref linkend='XGetStandardColormap' xrefstyle='select: title'/>
returns a nonzero status if successful and zero otherwise.
For example,
to fetch the standard
<symbol>GrayScale</symbol>
colormap for a display,
you use
-<function>XGetStandardColormap</function>
+<xref linkend='XGetStandardColormap' xrefstyle='select: title'/>
with the following syntax:
<programlisting>
XGetStandardColormap(dpy, DefaultRootWindow(dpy), &amp;cmap, XA_RGB_GRAY_MAP);
@@ -758,7 +758,7 @@ semantics of standard colormaps.
</para>
<para>
<!-- .LP -->
-<function>XGetStandardColormap</function>
+<xref linkend='XGetStandardColormap' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
@@ -769,13 +769,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set a standard colormap, use
-<function>XSetStandardColormap</function>.
+<xref linkend='XSetStandardColormap' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XSetRGBColormaps</function>.
+<xref linkend='XSetRGBColormaps' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetStandardColormap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetstandardcolormap'>
+<funcsynopsis id='XSetStandardColormap'>
<funcprototype>
<funcdef><function>XSetStandardColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -831,12 +831,12 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetStandardColormap</function>
+<xref linkend='XSetStandardColormap' xrefstyle='select: title'/>
function usually is only used by window or session managers.
</para>
<para>
<!-- .LP -->
-<function>XSetStandardColormap</function>
+<xref linkend='XSetStandardColormap' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadAtom</errorname>,
@@ -851,14 +851,14 @@ errors.
<para>
To parse window geometry given a user-specified position
and a default position, use
-<function>XGeometry</function>.
+<xref linkend='XGeometry' xrefstyle='select: title'/>.
This function has been superseded by
-<function>XWMGeometry</function>.
+<xref linkend='XWMGeometry' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Window</primary><secondary>determining location</secondary></indexterm>
<indexterm significance="preferred"><primary>XGeometry</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgeometry'>
+<funcsynopsis id='XGeometry'>
<funcprototype>
<funcdef>int <function>XGeometry</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1018,19 +1018,19 @@ size of the increments fwidth and fheight
and any additional interior space (xadder and yadder)
to make it easy to compute the resulting size.
The
-<function>XGeometry</function>
+<xref linkend='XGeometry' xrefstyle='select: title'/>
function returns the position the window should be placed given a position and
a default position.
-<function>XGeometry</function>
+<xref linkend='XGeometry' xrefstyle='select: title'/>
determines the placement of
a window using a geometry specification as specified by
-<function>XParseGeometry</function>
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>
and the additional information about the window.
Given a fully qualified default geometry specification and
an incomplete geometry specification,
-<function>XParseGeometry</function>
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>
returns a bitmask value as defined above in the
-<function>XParseGeometry</function>
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>
call,
by using the position argument.
</para>
@@ -1049,16 +1049,16 @@ geometry specifications.
<title>Getting the X Environment Defaults</title>
<para>
The
-<function>XGetDefault</function>
+<xref linkend='XGetDefault' xrefstyle='select: title'/>
function provides a primitive interface to the resource manager facilities
-discussed in <link linkend="resource_manager_functions">chapter 15</link>.
+discussed in <link linkend='Resource_Manager_Functions'>chapter 15</link>.
It is only useful in very simple applications.
</para>
<!-- .LP -->
<!-- .sp -->
<indexterm significance="preferred"><primary>XGetDefault</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetdefault'>
+<funcsynopsis id='XGetDefault'>
<funcprototype>
<funcdef>char *<function>XGetDefault</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1104,31 +1104,31 @@ Specifies the option name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetDefault</function>
+<xref linkend='XGetDefault' xrefstyle='select: title'/>
function returns the value of the resource <emphasis remap='I'>prog</emphasis>.<emphasis remap='I'>option</emphasis>,
where <emphasis remap='I'>prog</emphasis> is the program argument with the directory prefix removed
and <emphasis remap='I'>option</emphasis> must be a single component.
Note that multilevel resources cannot be used with
-<function>XGetDefault</function>.
+<xref linkend='XGetDefault' xrefstyle='select: title'/>.
The class "Program.Name" is always used for the resource lookup.
If the specified option name does not exist for this program,
-<function>XGetDefault</function>
+<xref linkend='XGetDefault' xrefstyle='select: title'/>
returns NULL.
The strings returned by
-<function>XGetDefault</function>
+<xref linkend='XGetDefault' xrefstyle='select: title'/>
are owned by Xlib and should not be modified or freed by the client.
</para>
<para>
<!-- .LP -->
If a database has been set with
-<function>XrmSetDatabase</function>,
+<xref linkend='XrmSetDatabase' xrefstyle='select: title'/>,
that database is used for the lookup.
Otherwise, a database is created
and is set in the display (as if by calling
-<function>XrmSetDatabase</function>).
+<xref linkend='XrmSetDatabase' xrefstyle='select: title'/>).
The database is created in the current locale.
To create a database,
-<function>XGetDefault</function>
+<xref linkend='XGetDefault' xrefstyle='select: title'/>
uses resources from the RESOURCE_MANAGER property on the root
window of screen zero.
If no such property exists,
@@ -1138,13 +1138,13 @@ this file is
<function>"$HOME/.Xdefaults"</function>.
<indexterm><primary>Files</primary><secondary><filename>$HOME/.Xdefaults</filename></secondary></indexterm>
After loading these defaults,
-<function>XGetDefault</function>
+<xref linkend='XGetDefault' xrefstyle='select: title'/>
merges additional defaults specified by the XENVIRONMENT
environment variable.
If XENVIRONMENT is defined,
it contains a full path name for the additional resource file.
If XENVIRONMENT is not defined,
-<function>XGetDefault</function>
+<xref linkend='XGetDefault' xrefstyle='select: title'/>
looks for
"<filename>$HOME/.Xdefaults-<replaceable>name</replaceable></filename>" ,
where <replaceable>name</replaceable> specifies the name of the machine on which the application
@@ -1179,10 +1179,10 @@ These functions are provided mainly for compatibility with X Version 10
and have no server support.
That is, they call other Xlib functions, not the server directly.
Thus, if you just have straight lines to draw, using
-<function>XDrawLines</function>
+<xref linkend='XDrawLines' xrefstyle='select: title'/>
<indexterm><primary>XDrawLines</primary></indexterm>
or
-<function>XDrawSegments</function>
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>
<indexterm><primary>XDrawSegments</primary></indexterm>
is much faster.
</para>
@@ -1190,9 +1190,9 @@ is much faster.
<!-- .LP -->
The functions discussed here provide all the functionality of the
X Version 10 functions
-<function>XDraw</function>,
+<xref linkend='XDraw' xrefstyle='select: title'/>,
<indexterm ><primary>X10 compatibility</primary><secondary>XDraw</secondary></indexterm>
-<function>XDrawFilled</function>,
+<xref linkend='XDrawFilled' xrefstyle='select: title'/>,
<indexterm><primary>X10 compatibility</primary><secondary>XDrawFilled</secondary></indexterm>
<function>XDrawPatterned</function>,
<indexterm ><primary>X10 compatibility</primary><secondary>XDrawPatterned</secondary></indexterm>
@@ -1219,7 +1219,7 @@ Just how the graphics context you use is set up actually
determines whether you get dashes or not, and so on.
Lines are properly joined if they connect and include
the closing of a closed figure (see
-<function>XDrawLines</function>).
+<xref linkend='XDrawLines' xrefstyle='select: title'/>).
The functions discussed here fail (return zero) only if they run out of memory
or are passed a
<structname>Vertex</structname>
@@ -1237,7 +1237,7 @@ set.
<!-- .LP -->
<!-- .sp -->
To achieve the effects of the X Version 10
-<function>XDraw</function>,
+<xref linkend='XDraw' xrefstyle='select: title'/>,
<indexterm ><primary>X10 compatibility</primary><secondary>XDraw</secondary></indexterm>
<function>XDrawDashed</function>,
<indexterm><primary>X10 compatibility</primary><secondary>XDrawDashed</secondary></indexterm>
@@ -1245,14 +1245,14 @@ and
<function>XDrawPatterned</function>,
<indexterm ><primary>X10 compatibility</primary><secondary>XDrawPatterned</secondary></indexterm>
use
-<function>XDraw</function>.
+<xref linkend='XDraw' xrefstyle='select: title'/>.
</para>
<para>
#include &lt;X11/X10.h&gt;
</para>
-<funcsynopsis id='xdraw'>
+<funcsynopsis id='XDraw'>
<funcprototype>
<funcdef>Status <function>XDraw</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1319,7 +1319,7 @@ Specifies how many vertices are in vlist.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDraw</function>
+<xref linkend='XDraw' xrefstyle='select: title'/>
function draws an arbitrary polygon or curve.
The figure drawn is defined by the specified list of vertices (vlist).
The points are connected by lines as specified in the flags in the
@@ -1451,15 +1451,15 @@ To achieve the effects of the X Version 10
<function>XDrawTiled</function>
<indexterm><primary>X10 compatibility</primary><secondary>XDrawTiled</secondary></indexterm>
and
-<function>XDrawFilled</function>,
+<xref linkend='XDrawFilled' xrefstyle='select: title'/>,
<indexterm><primary>X10 compatibility</primary><secondary>XDrawFilled</secondary></indexterm>
use
-<function>XDrawFilled</function>.
+<xref linkend='XDrawFilled' xrefstyle='select: title'/>.
</para>
<para>#include &lt;X11/X10.h&gt;</para>
-<funcsynopsis id='xdrawfilled'>
+<funcsynopsis id='XDrawFilled'>
<funcprototype>
<funcdef>Status <function>XDrawFilled</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1527,7 +1527,7 @@ Specifies how many vertices are in vlist.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDrawFilled</function>
+<xref linkend='XDrawFilled' xrefstyle='select: title'/>
function draws arbitrary polygons or curves and then fills them.
</para>
<para>
@@ -1611,11 +1611,11 @@ bucket.
To return a pointer to a new
<function>XAssocTable</function>,
use
-<function>XCreateAssocTable</function>.
+<xref linkend='XCreateAssocTable' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XCreateAssocTable</primary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xcreateassoctable'>
+<funcsynopsis id='XCreateAssocTable'>
<funcprototype>
<funcdef>XAssocTable *<function>XCreateAssocTable</function></funcdef>
<paramdef>int<parameter> size</parameter></paramdef>
@@ -1657,11 +1657,11 @@ a NULL pointer is returned.
To create an entry in a given
<function>XAssocTable</function>,
use
-<function>XMakeAssoc</function>.
+<xref linkend='XMakeAssoc' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XMakeAssoc</primary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xmakeassoc'>
+<funcsynopsis id='XMakeAssoc'>
<funcprototype>
<funcdef><function>XMakeAssoc</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1717,7 +1717,7 @@ Specifies the data to be associated with the X resource ID.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMakeAssoc</function>
+<xref linkend='XMakeAssoc' xrefstyle='select: title'/>
function inserts data into an
<function>XAssocTable</function>
keyed on an XID.
@@ -1732,11 +1732,11 @@ the highest XID.
To obtain data from a given
<function>XAssocTable</function>,
use
-<function>XLookUpAssoc</function>.
+<xref linkend='XLookUpAssoc' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLookUpAssoc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlookupassoc'>
+<funcsynopsis id='XLookUpAssoc'>
<funcprototype>
<funcdef>char *<function>XLookUpAssoc</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1781,12 +1781,12 @@ Specifies the X resource ID.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLookUpAssoc</function>
+<xref linkend='XLookUpAssoc' xrefstyle='select: title'/>
function retrieves the data stored in an
<function>XAssocTable</function>
by its XID.
If an appropriately matching XID can be found in the table,
-<function>XLookUpAssoc</function>
+<xref linkend='XLookUpAssoc' xrefstyle='select: title'/>
returns the data associated with it.
If the x_id cannot be found in the table,
it returns NULL.
@@ -1797,11 +1797,11 @@ it returns NULL.
To delete an entry from a given
<function>XAssocTable</function>,
use
-<function>XDeleteAssoc</function>.
+<xref linkend='XDeleteAssoc' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDeleteAssoc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdeleteassoc'>
+<funcsynopsis id='XDeleteAssoc'>
<funcprototype>
<funcdef><function>XDeleteAssoc</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1846,7 +1846,7 @@ Specifies the X resource ID.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDeleteAssoc</function>
+<xref linkend='XDeleteAssoc' xrefstyle='select: title'/>
function deletes an association in an
<function>XAssocTable</function>
keyed on its XID.
@@ -1860,11 +1860,11 @@ Deleting associations in no way impairs the performance of an
To free the memory associated with a given
<function>XAssocTable</function>,
use
-<function>XDestroyAssocTable</function>.
+<xref linkend='XDestroyAssocTable' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDestroyAssocTable</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdestroyassoctable'>
+<funcsynopsis id='XDestroyAssocTable'>
<funcprototype>
<funcdef><function>XDestroyAssocTable</function></funcdef>
<paramdef>XAssocTable<parameter> *table</parameter></paramdef>
diff --git a/libX11/specs/libX11/CH01.xml b/libX11/specs/libX11/CH01.xml
index 21750aba1..8d2092420 100644
--- a/libX11/specs/libX11/CH01.xml
+++ b/libX11/specs/libX11/CH01.xml
@@ -151,7 +151,7 @@ which will be called when the error is reported.
<indexterm><primary>XSync</primary></indexterm>
If a client does not want a request to execute asynchronously,
it can follow the request with a call to
-<function>XSync</function>,
+<xref linkend='XSync' xrefstyle='select: title'/>,
which blocks until all previously buffered
asynchronous events have been sent and acted on.
As an important side effect,
@@ -206,12 +206,12 @@ programs must be prepared to handle (or ignore) events of all types.
Input events (for example, a key pressed or the pointer moved)
arrive asynchronously from the server and are queued until they are
requested by an explicit call (for example,
-<function>XNextEvent</function>
+<xref linkend='XNextEvent' xrefstyle='select: title'/>
or
-<function>XWindowEvent</function>).
+<xref linkend='XWindowEvent' xrefstyle='select: title'/>).
In addition, some library
functions (for example,
-<function>XRaiseWindow</function>)
+<xref linkend='XRaiseWindow' xrefstyle='select: title'/>)
generate
<symbol>Expose</symbol>
and
@@ -220,7 +220,7 @@ events.
These events also arrive asynchronously, but the client may
<indexterm><primary>XSync</primary></indexterm>
wish to explicitly wait for them by calling
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
after calling a function that can cause the server to generate events.
</para>
</sect1>
@@ -316,7 +316,7 @@ reference this file directly.
<indexterm><primary>Headers</primary><secondary>&lt;X11/Xcms.h&gt;</secondary></indexterm>
<para>
This file contains symbols for much of the color management facilities
-described in <link linkend="color_management_functions">chapter 6</link>.
+described in <link linkend='Color_Management_Functions'>chapter 6</link>.
All functions, types, and symbols with the prefix "Xcms",
plus the Color Conversion Contexts macros, are declared in this file.
<filename class="headerfile">&lt;X11/Xlib.h&gt;</filename>
@@ -334,8 +334,8 @@ must be included before including this file.
This file declares various functions, types, and symbols used for
inter-client communication and application utility functions,
which are described in chapters
-<link linkend="inter_client_communication_functions">14</link> and
-<link linkend="application_utility_functions">16</link>.
+<link linkend='Inter_Client_Communication_Functions'>14</link> and
+<link linkend='Application_Utility_Functions'>16</link>.
<filename class="headerfile">&lt;X11/Xlib.h&gt;</filename> must be included before including this file.
</para>
</listitem>
@@ -349,7 +349,7 @@ which are described in chapters
<para>
This file declares all functions, types, and symbols for the
resource manager facilities, which are described in
-<link linkend="resource_manager_functions">chapter 15</link>.
+<link linkend='Resource_Manager_Functions'>chapter 15</link>.
<filename class="headerfile">&lt;X11/Xlib.h&gt;</filename> <!-- xref -->
must be included before including this file.
</para>
@@ -683,7 +683,7 @@ rather than presume control of the entire screen.
What you do inside of your top-level window, however,
is up to your application.
For further information,
-see <link linkend="inter_client_communication_functions">chapter 14</link>
+see <link linkend='Inter_Client_Communication_Functions'>chapter 14</link>
and the <citetitle>Inter-Client Communication Conventions Manual</citetitle>.
</para>
</listitem>
diff --git a/libX11/specs/libX11/CH02.xml b/libX11/specs/libX11/CH02.xml
index 4a57266bd..12df68ee4 100644
--- a/libX11/specs/libX11/CH02.xml
+++ b/libX11/specs/libX11/CH02.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="display_functions">
+<chapter id='Display_Functions'>
<title>Display Functions</title>
<para>
Before your program can use a display, you must establish a connection
@@ -63,10 +63,10 @@ Use internal connections
<para>
<!-- .LP -->
To open a connection to the X server that controls a display, use
-<function>XOpenDisplay</function>.
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XOpenDisplay</primary></indexterm>
</para>
-<funcsynopsis id='xopendisplay'>
+<funcsynopsis id='XOpenDisplay'>
<funcprototype>
<funcdef>Display *<function>XOpenDisplay</function></funcdef>
<paramdef>char *<parameter>display_name</parameter></paramdef>
@@ -157,9 +157,9 @@ The screen_number sets an internal variable that can be accessed by
using the
<function>DefaultScreen</function>
macro or the
-<function>XDefaultScreen</function>
+<xref linkend='XDefaultScreen' xrefstyle='select: title'/>
function if you are using languages other than C
-(see <link linkend="Display_Macros_">section 2.2.1</link>).
+(see <link linkend='Display_Macros'>section 2.2.1</link>).
</para>
</listitem>
</varlistentry>
@@ -179,13 +179,13 @@ dual-headed:0.1
<para>
<!-- .LP -->
The
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
function returns a
<type>Display</type>
structure that serves as the
connection to the X server and that contains all the information
about that X server.
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
connects your application to the X server through <acronym>TCP</acronym>
or DECnet communications protocols,
or through some local inter-process communication protocol.
@@ -194,7 +194,7 @@ or through some local inter-process communication protocol.
If the protocol is specified as "tcp", "inet", or "inet6", or
if no protocol is specified and the hostname is a host machine name and a single colon (:)
separates the hostname and display number,
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
connects using <acronym>TCP</acronym> streams. (If the protocol is specified as "inet", <acronym>TCP</acronym> over
IPv4 is used. If the protocol is specified as "inet6", <acronym>TCP</acronym> over IPv6 is used.
Otherwise, the implementation determines which <acronym>IP</acronym> version is used.)
@@ -202,7 +202,7 @@ If the hostname and protocol are both not specified,
Xlib uses whatever it believes is the fastest transport.
If the hostname is a host machine name and a double colon (::)
separates the hostname and display number,
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
connects using DECnet.
A single X server can support any or all of these transport mechanisms
simultaneously.
@@ -213,7 +213,7 @@ mechanisms.
<!-- .LP -->
<indexterm><primary>Display</primary></indexterm>
If successful,
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
returns a pointer to a
<type>Display</type>
structure,
@@ -223,16 +223,16 @@ which is defined in
<indexterm><primary>Files</primary><secondary><filename class="headerfile">&lt;X11/Xlib.h&gt;</filename></secondary></indexterm>
<indexterm><primary>Headers</primary><secondary><filename class="headerfile">&lt;X11/Xlib.h&gt;</filename></secondary></indexterm>
If
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
does not succeed, it returns NULL.
After a successful call to
-<function>XOpenDisplay</function>,
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>,
all of the screens in the display can be used by the client.
The screen number specified in the display_name argument is returned
by the
<function>DefaultScreen</function>
macro (or the
-<function>XDefaultScreen</function>
+<xref linkend='XDefaultScreen' xrefstyle='select: title'/>
function).
You can access elements of the
<type>Display</type>
@@ -243,7 +243,7 @@ For information about using macros and functions to obtain information from
the
<type>Display</type>
structure,
-see <link linkend="Display_Macros_">section 2.2.1</link>.
+see <link linkend='Display_Macros'>section 2.2.1</link>.
</para>
<para>
<!-- .LP -->
@@ -295,21 +295,21 @@ Applications must never directly modify or inspect these private members of the
structure.
<!-- .NT Note -->
The
-<function>XDisplayWidth</function>,
-<function>XDisplayHeight</function>,
-<function>XDisplayCells</function>,
-<function>XDisplayPlanes</function>,
-<function>XDisplayWidthMM</function>,
+<xref linkend='XDisplayWidth' xrefstyle='select: title'/>,
+<xref linkend='XDisplayHeight' xrefstyle='select: title'/>,
+<xref linkend='XDisplayCells' xrefstyle='select: title'/>,
+<xref linkend='XDisplayPlanes' xrefstyle='select: title'/>,
+<xref linkend='XDisplayWidthMM' xrefstyle='select: title'/>,
and
-<function>XDisplayHeightMM</function>
+<xref linkend='XDisplayHeightMM' xrefstyle='select: title'/>
functions in the next sections are misnamed.
These functions really should be named Screen<emphasis remap='I'>whatever</emphasis>
and XScreen<emphasis remap='I'>whatever</emphasis>, not Display<emphasis remap='I'>whatever</emphasis> or XDisplay<emphasis remap='I'>whatever</emphasis>.
Our apologies for the resulting confusion.
<!-- .NE -->
</para>
-<sect2 id="Display_Macros_">
-<title>Display Macros </title>
+<sect2 id='Display_Macros'>
+<title>Display Macros</title>
<!-- .XS -->
<!-- (SN Display Macros -->
<!-- .XE -->
@@ -357,7 +357,7 @@ The names are intended to convey the expected relative intensity of the colors.
<para>
BlackPixel(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xblackpixel'>
+<funcsynopsis id='XBlackPixel'>
<funcprototype>
<funcdef>unsigned long <function>XBlackPixel</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -402,7 +402,7 @@ Both return the black pixel value for the specified screen.
<para>
WhitePixel(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xwhitepixel'>
+<funcsynopsis id='XWhitePixel'>
<funcprototype>
<funcdef>unsigned long <function>XWhitePixel</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -447,7 +447,7 @@ Both return the white pixel value for the specified screen.
<para>
ConnectionNumber(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xconnectionnumber'>
+<funcsynopsis id='XConnectionNumber'>
<funcprototype>
<funcdef>int <function>XConnectionNumber</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -484,7 +484,7 @@ this is the file descriptor of the connection.
<para>
DefaultColormap(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdefaultcolormap'>
+<funcsynopsis id='XDefaultColormap'>
<funcprototype>
<funcdef>Colormap <function>XDefaultColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -530,7 +530,7 @@ Most routine allocations of color should be made out of this colormap.
<para>
DefaultDepth(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdefaultdepth'>
+<funcsynopsis id='XDefaultDepth'>
<funcprototype>
<funcdef>int <function>XDefaultDepth</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -568,7 +568,7 @@ Specifies the appropriate screen number on the host server.
Both return the depth (number of planes) of the default root window for the
specified screen.
Other depths may also be supported on this screen (see
-<function>XMatchVisualInfo</function>).
+<xref linkend='XMatchVisualInfo' xrefstyle='select: title'/>).
</para>
<para>
<!-- .LP -->
@@ -581,7 +581,7 @@ To determine the number of depths that are available on a given screen, use
<para>
DefaultGC(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdefaultgc'>
+<funcsynopsis id='XDefaultGC'>
<funcprototype>
<funcdef>GC <function>XDefaultGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -636,7 +636,7 @@ can be allocated,
sets count_return to the number of available depths.
Otherwise, it does not set count_return and returns NULL.
To release the memory allocated for the array of depths, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -699,7 +699,7 @@ This GC should never be freed.
<para>
DefaultRootWindow(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xdefaultrootwindow'>
+<funcsynopsis id='XDefaultRootWindow'>
<funcprototype>
<funcdef>Window <function>XDefaultRootWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -733,7 +733,7 @@ Both return the root window for the default screen.
<para>
DefaultScreenOfDisplay(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xdefaultscreenofdisplay'>
+<funcsynopsis id='XDefaultScreenOfDisplay'>
<funcprototype>
<funcdef>Screen *<function>XDefaultScreenOfDisplay</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -767,7 +767,7 @@ Both return a pointer to the default screen.
<para>
ScreenOfDisplay(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xscreenofdisplay'>
+<funcsynopsis id='XScreenOfDisplay'>
<funcprototype>
<funcdef>Screen *<function>XScreenOfDisplay</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -812,7 +812,7 @@ Both return a pointer to the indicated screen.
<para>
DefaultScreen(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xdefaultscreen'>
+<funcsynopsis id='XDefaultScreen'>
<funcprototype>
<funcdef>int <function>XDefaultScreen</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -837,7 +837,7 @@ Specifies the connection to the X server.
<indexterm significance="preferred"><primary>DefaultScreen</primary></indexterm>
<indexterm significance="preferred"><primary>XDefaultScreen</primary></indexterm>
Both return the default screen number referenced by the
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
function.
This macro or function should be used to retrieve the screen number
in applications that will use only a single screen.
@@ -850,7 +850,7 @@ in applications that will use only a single screen.
<para>
DefaultVisual(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdefaultvisual'>
+<funcsynopsis id='XDefaultVisual'>
<funcprototype>
<funcdef>Visual *<function>XDefaultVisual</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -897,7 +897,7 @@ see <link linkend="Visual_Types">section 3.1</link>.
<para>
DisplayCells(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdisplaycells'>
+<funcsynopsis id='XDisplayCells'>
<funcprototype>
<funcdef>int <function>XDisplayCells</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -942,7 +942,7 @@ Both return the number of entries in the default colormap.
<para>
DisplayPlanes(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdisplayplanes'>
+<funcsynopsis id='XDisplayPlanes'>
<funcprototype>
<funcdef>int <function>XDisplayPlanes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -989,7 +989,7 @@ see the glossary.
<para>
DisplayString(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xdisplaystring'>
+<funcsynopsis id='XDisplayString'>
<funcprototype>
<funcdef>char *<function>XDisplayString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1014,7 +1014,7 @@ Specifies the connection to the X server.
<indexterm significance="preferred"><primary>DisplayString</primary></indexterm>
<indexterm significance="preferred"><primary>XDisplayString</primary></indexterm>
Both return the string that was passed to
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
when the current display was opened.
On <acronym>POSIX</acronym>-conformant systems,
if the passed string was NULL, these return the value of
@@ -1033,7 +1033,7 @@ child process as well as for printing error messages.
<para>
LastKnownRequestProcessed(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xlastknownrequestprocessed'>
+<funcsynopsis id='XLastKnownRequestProcessed'>
<funcprototype>
<funcdef>unsigned long <function>XLastKnownRequestProcessed</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1057,28 +1057,28 @@ Specifies the connection to the X server.
<!-- .eM -->
<indexterm significance="preferred"><primary>XExtendedMaxRequestSize</primary></indexterm>
The
-<function>XExtendedMaxRequestSize</function>
+<olink targetdoc='bigreq' targetptr='XExtendedMaxRequestSize'><function>XExtendedMaxRequestSize</function></olink>
function returns zero if the specified display does not support an
extended-length protocol encoding; otherwise,
it returns the maximum request size (in 4-byte units) supported
by the server using the extended-length encoding.
The Xlib functions
-<function>XDrawLines</function>,
-<function>XDrawArcs</function>,
-<function>XFillPolygon</function>,
-<function>XChangeProperty</function>,
-<function>XSetClipRectangles</function>,
+<xref linkend='XDrawLines' xrefstyle='select: title'/>,
+<xref linkend='XDrawArcs' xrefstyle='select: title'/>,
+<xref linkend='XFillPolygon' xrefstyle='select: title'/>,
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>,
+<xref linkend='XSetClipRectangles' xrefstyle='select: title'/>,
and
-<function>XSetRegion</function>
+<xref linkend='XSetRegion' xrefstyle='select: title'/>
will use the extended-length encoding as necessary, if supported
by the server. Use of the extended-length encoding in other Xlib
functions (for example,
-<function>XDrawPoints</function>,
-<function>XDrawRectangles</function>,
-<function>XDrawSegments</function>,
-<function>XFillArcs</function>,
-<function>XFillRectangles</function>,
-<function>XPutImage</function>)
+<xref linkend='XDrawPoints' xrefstyle='select: title'/>,
+<xref linkend='XDrawRectangles' xrefstyle='select: title'/>,
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>,
+<xref linkend='XFillArcs' xrefstyle='select: title'/>,
+<xref linkend='XFillRectangles' xrefstyle='select: title'/>,
+<xref linkend='XPutImage' xrefstyle='select: title'/>)
is permitted but not required; an Xlib implementation may choose to
split the data across multiple smaller requests instead.
</para>
@@ -1123,13 +1123,13 @@ The protocol guarantees the size to be no smaller than 4096 units
(16384 bytes).
Xlib automatically breaks data up into multiple protocol requests
as necessary for the following functions:
-<function>XDrawPoints</function>,
-<function>XDrawRectangles</function>,
-<function>XDrawSegments</function>,
-<function>XFillArcs</function>,
-<function>XFillRectangles</function>,
+<xref linkend='XDrawPoints' xrefstyle='select: title'/>,
+<xref linkend='XDrawRectangles' xrefstyle='select: title'/>,
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>,
+<xref linkend='XFillArcs' xrefstyle='select: title'/>,
+<xref linkend='XFillRectangles' xrefstyle='select: title'/>,
and
-<function>XPutImage</function>.
+<xref linkend='XPutImage' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -1176,7 +1176,7 @@ are received.
<para>
NextRequest(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xnextrequest'>
+<funcsynopsis id='XNextRequest'>
<funcprototype>
<funcdef>unsigned long <function>XNextRequest</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1212,7 +1212,7 @@ Serial numbers are maintained separately for each display connection.
<para>
ProtocolVersion(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xprotocolversion'>
+<funcsynopsis id='XProtocolVersion'>
<funcprototype>
<funcdef>int <function>XProtocolVersion</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1247,7 +1247,7 @@ the connected display.
<para>
ProtocolRevision(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xprotocolrevision'>
+<funcsynopsis id='XProtocolRevision'>
<funcprototype>
<funcdef>int <function>XProtocolRevision</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1281,7 +1281,7 @@ Both return the minor protocol revision number of the X server.
<para>
QLength(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xqlength'>
+<funcsynopsis id='XQLength'>
<funcprototype>
<funcdef>int <function>XQLength</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1308,7 +1308,7 @@ Specifies the connection to the X server.
Both return the length of the event queue for the connected display.
Note that there may be more events that have not been read into
the queue yet (see
-<function>XEventsQueued</function>).
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>).
</para>
<para>
<!-- .LP -->
@@ -1318,7 +1318,7 @@ the queue yet (see
<para>
RootWindow(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xrootwindow'>
+<funcsynopsis id='XRootWindow'>
<funcprototype>
<funcdef>Window <function>XRootWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1367,7 +1367,7 @@ and for creating top-level windows.
<para>
ScreenCount(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xscreencount'>
+<funcsynopsis id='XScreenCount'>
<funcprototype>
<funcdef>int <function>XScreenCount</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1401,7 +1401,7 @@ Both return the number of available screens.
<para>
ServerVendor(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xservervendor'>
+<funcsynopsis id='XServerVendor'>
<funcprototype>
<funcdef>char *<function>XServerVendor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1439,7 +1439,7 @@ Otherwise, the contents of the string are implementation-dependent.
<para>
VendorRelease(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xvendorrelease'>
+<funcsynopsis id='XVendorRelease'>
<funcprototype>
<funcdef>int <function>XVendorRelease</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1514,7 +1514,7 @@ To obtain the pixmap format information for a given display, use
<para>
ImageByteOrder(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='ximagebyteorder'>
+<funcsynopsis id='XImageByteOrder'>
<funcprototype>
<funcdef>int <function>XImageByteOrder</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1560,7 +1560,7 @@ returns NULL.
To free the allocated storage for the
<structname>XPixmapFormatValues</structname>
structures, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -1617,7 +1617,7 @@ or
<para>
BitmapUnit(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xbitmapunit'>
+<funcsynopsis id='XBitmapUnit'>
<funcprototype>
<funcdef>int <function>XBitmapUnit</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1652,7 +1652,7 @@ The scanline is calculated in multiples of this value.
<para>
BitmapBitOrder(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xbitmpabitorder'>
+<funcsynopsis id='XBitmapBitOrder'>
<funcprototype>
<funcdef>int <function>XBitmapBitOrder</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1692,7 +1692,7 @@ or
<para>
BitmapPad(<emphasis remap='I'>display</emphasis>)
</para>
-<funcsynopsis id='xbitmappad'>
+<funcsynopsis id='XBitmapPad'>
<funcprototype>
<funcdef>int <function>XBitmapPad</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1727,7 +1727,7 @@ by this macro or function.
<para>
DisplayHeight(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdisplayheight'>
+<funcsynopsis id='XDisplayHeight'>
<funcprototype>
<funcdef>int <function>XDisplayHeight</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1773,7 +1773,7 @@ in pixels.
<para>
DisplayHeightMM(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdisplayheightmm'>
+<funcsynopsis id='XDisplayHeightMM'>
<funcprototype>
<funcdef>int <function>XDisplayHeightMM</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1818,7 +1818,7 @@ Both return the height of the specified screen in millimeters.
<para>
DisplayWidth(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdisplaywidth'>
+<funcsynopsis id='XDisplayWidth'>
<funcprototype>
<funcdef>int <function>XDisplayWidth</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1863,7 +1863,7 @@ Both return the width of the screen in pixels.
<para>
DisplayWidthMM(<emphasis remap='I'>display</emphasis>, <emphasis remap='I'>screen_number</emphasis>)
</para>
-<funcsynopsis id='xdisplaywidthmm'>
+<funcsynopsis id='XDisplayWidthMM'>
<funcprototype>
<funcdef>int <function>XDisplayWidthMM</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1922,7 +1922,7 @@ structure.
<para>
BlackPixelOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xblackpixelofscreen'>
+<funcsynopsis id='XBlackPixelOfScreen'>
<funcprototype>
<funcdef>unsigned long <function>XBlackPixelOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -1958,7 +1958,7 @@ Both return the black pixel value of the specified screen.
<para>
WhitePixelOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xwhitepixelofscreen'>
+<funcsynopsis id='XWhitePixelOfScreen'>
<funcprototype>
<funcdef>unsigned long <function>XWhitePixelOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -1994,7 +1994,7 @@ Both return the white pixel value of the specified screen.
<para>
CellsOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xcellsofscreen'>
+<funcsynopsis id='XCellsOfScreen'>
<funcprototype>
<funcdef>int <function>XCellsOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2031,7 +2031,7 @@ of the specified screen.
<para>
DefaultColormapOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xdefaultcolormapofscreen'>
+<funcsynopsis id='XDefaultColormapOfScreen'>
<funcprototype>
<funcdef>Colormap <function>XDefaultColormapOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2067,7 +2067,7 @@ Both return the default colormap of the specified screen.
<para>
DefaultDepthOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xdefaultdepthofscreen'>
+<funcsynopsis id='XDefaultDepthOfScreen'>
<funcprototype>
<funcdef>int <function>XDefaultDepthOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2103,7 +2103,7 @@ Both return the depth of the root window.
<para>
DefaultGCOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xdefaultgcofscreen'>
+<funcsynopsis id='XDefaultGCOfScreen'>
<funcprototype>
<funcdef>GC <function>XDefaultGCOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2141,7 +2141,7 @@ The GC must never be freed.
<para>
DefaultVisualOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xdefaultvisualofscreen'>
+<funcsynopsis id='XDefaultVisualOfScreen'>
<funcprototype>
<funcdef>Visual *<function>XDefaultVisualOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2179,7 +2179,7 @@ see <link linkend="Visual_Types">section 3.1</link>.
<para>
DoesBackingStore(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xdoesbackingstore'>
+<funcsynopsis id='XDoesBackingStore'>
<funcprototype>
<funcdef>int <function>XDoesBackingStore</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2222,7 +2222,7 @@ or
<para>
DoesSaveUnders(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xdoessaveunders'>
+<funcsynopsis id='XDoesSaveUnders'>
<funcprototype>
<funcdef>Bool <function>XDoesSaveUnders</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2266,7 +2266,7 @@ the screen does not support save unders
<para>
DisplayOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xdisplayofscreen'>
+<funcsynopsis id='XDisplayOfScreen'>
<funcprototype>
<funcdef>Display *<function>XDisplayOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2303,7 +2303,7 @@ Both return the display of the specified screen.
<para>
EventMaskOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xeventmaskofscreen'>
+<funcsynopsis id='XEventMaskOfScreen'>
<funcprototype>
<funcdef>long <function>XEventMaskOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2376,7 +2376,7 @@ at connection setup time.
<para>
WidthOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xwidthofscreen'>
+<funcsynopsis id='XWidthOfScreen'>
<funcprototype>
<funcdef>int <function>XWidthOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2412,7 +2412,7 @@ Both return the width of the specified screen in pixels.
<para>
HeightOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xheightofscreen'>
+<funcsynopsis id='XHeightOfScreen'>
<funcprototype>
<funcdef>int <function>XHeightOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2448,7 +2448,7 @@ Both return the height of the specified screen in pixels.
<para>
WidthMMOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xwidthmmofscreen'>
+<funcsynopsis id='XWidthMMOfScreen'>
<funcprototype>
<funcdef>int <function>XWidthMMOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2484,7 +2484,7 @@ Both return the width of the specified screen in millimeters.
<para>
HeightMMOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xheightmmofscreen'>
+<funcsynopsis id='XHeightMMOfScreen'>
<funcprototype>
<funcdef>int <function>XHeightMMOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2520,7 +2520,7 @@ Both return the height of the specified screen in millimeters.
<para>
MaxCmapsOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xmaxcmapsofscreen'>
+<funcsynopsis id='XMaxCmapsOfScreen'>
<funcprototype>
<funcdef>int <function>XMaxCmapsOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2558,7 +2558,7 @@ by the specified screen
<para>
MinCmapsOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xmincmapsofscreen'>
+<funcsynopsis id='XMinCmapsOfScreen'>
<funcprototype>
<funcdef>int <function>XMinCmapsOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2596,7 +2596,7 @@ by the specified screen
<para>
PlanesOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xplanesofscreen'>
+<funcsynopsis id='XPlanesOfScreen'>
<funcprototype>
<funcdef>int <function>XPlanesOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2632,7 +2632,7 @@ Both return the depth of the root window.
<para>
RootWindowOfScreen(<emphasis remap='I'>screen</emphasis>)
</para>
-<funcsynopsis id='xrootwindowofscreen'>
+<funcsynopsis id='XRootWindowOfScreen'>
<funcprototype>
<funcdef>Window <function>XRootWindowOfScreen</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -2672,11 +2672,11 @@ Both return the root window of the specified screen.
To execute a
<systemitem>NoOperation</systemitem>
protocol request, use
-<function>XNoOp</function>.
+<xref linkend='XNoOp' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XNoOp</primary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xnoop'>
+<funcsynopsis id='XNoOp'>
<funcprototype>
<funcdef><function>XNoOp</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2695,7 +2695,7 @@ protocol request, use
<!-- .LP -->
<!-- .eM -->
The
-<function>XNoOp</function>
+<xref linkend='XNoOp' xrefstyle='select: title'/>
function sends a
<systemitem>NoOperation</systemitem>
protocol request to the X server,
@@ -2710,11 +2710,11 @@ thereby exercising the connection.
<para>
<!-- .LP -->
To free in-memory data that was created by an Xlib function, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XFree</primary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xfree'>
+<funcsynopsis id='XFree'>
<funcprototype>
<funcdef>XFree</funcdef>
<paramdef>void<parameter> *data</parameter></paramdef>
@@ -2738,7 +2738,7 @@ Specifies the data that is to be freed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFree</function>
+<xref linkend='XFree' xrefstyle='select: title'/>
function is a general-purpose Xlib routine that frees the specified data.
You must use it to free any objects that were allocated by Xlib,
unless an alternate function is explicitly specified for the object.
@@ -2798,7 +2798,7 @@ and
or other resources that the client has created
on this display, unless the close-down mode of the resource has been changed
(see
-<function>XSetCloseDownMode</function>).
+<xref linkend='XSetCloseDownMode' xrefstyle='select: title'/>).
Therefore, these windows, resource IDs, and other resources should never be
referenced again or an error will be generated.
Before exiting, you should call
@@ -2806,7 +2806,7 @@ Before exiting, you should call
explicitly so that any pending errors are reported as
<function>XCloseDisplay</function>
performs a final
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
operation.
<indexterm><primary>Resource IDs</primary></indexterm>
<indexterm><primary>XCloseDisplay</primary></indexterm>
@@ -2824,11 +2824,11 @@ error.
Xlib provides a function to permit the resources owned by a client
to survive after the client's connection is closed.
To change a client's close-down mode, use
-<function>XSetCloseDownMode</function>.
+<xref linkend='XSetCloseDownMode' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XSetCloseDownMode</primary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xsetclosedownmode'>
+<funcsynopsis id='XSetCloseDownMode'>
<funcprototype>
<funcdef>XSetCloseDownMode</funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2867,7 +2867,7 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetCloseDownMode</function>
+<xref linkend='XSetCloseDownMode' xrefstyle='select: title'/>
defines what will happen to the client's resources at connection close.
A connection starts in
<symbol>DestroyAll</symbol>
@@ -2877,18 +2877,18 @@ close_mode argument is
<symbol>RetainPermanent</symbol>
or
<symbol>RetainTemporary</symbol>,
-see <link linkend="Using_X_Server_Connection_Close_Operations_">section 2.6</link>.
+see <link linkend='Using_X_Server_Connection_Close_Operations'>section 2.6</link>.
</para>
<para>
<!-- .LP -->
-<function>XSetCloseDownMode</function>
+<xref linkend='XSetCloseDownMode' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
</para>
</sect1>
-<sect1 id="Using_X_Server_Connection_Close_Operations_">
-<title>Using X Server Connection Close Operations </title>
+<sect1 id='Using_X_Server_Connection_Close_Operations'>
+<title>Using X Server Connection Close Operations</title>
<!-- .XS -->
<!-- (SN Using X Server Connection Close Operations -->
<!-- .XE -->
@@ -2905,15 +2905,15 @@ automatic operations:
<para>
It disowns all selections owned by the client
(see
-<function>XSetSelectionOwner</function>).
+<xref linkend='XSetSelectionOwner' xrefstyle='select: title'/>).
</para>
</listitem>
<listitem>
<para>
It performs an
-<function>XUngrabPointer</function>
+<xref linkend='XUngrabPointer' xrefstyle='select: title'/>
and
-<function>XUngrabKeyboard</function>
+<xref linkend='XUngrabKeyboard' xrefstyle='select: title'/>
if the client has actively grabbed the pointer
or the keyboard.
</para>
@@ -2921,7 +2921,7 @@ or the keyboard.
<listitem>
<para>
It performs an
-<function>XUngrabServer</function>
+<xref linkend='XUngrabServer' xrefstyle='select: title'/>
if the client has grabbed the server.
</para>
</listitem>
@@ -2940,7 +2940,7 @@ or
<symbol>RetainTemporary</symbol>.
However, this does not prevent other client applications from explicitly
destroying the resources (see
-<function>XSetCloseDownMode</function>).
+<xref linkend='XSetCloseDownMode' xrefstyle='select: title'/>).
</para>
</listitem>
</itemizedlist>
@@ -3144,7 +3144,7 @@ the display is unlocked by this thread.
Nested calls to
<function>XLockDisplay</function>
work correctly; the display will not actually be unlocked until
-<function>XUnlockDisplay</function>
+<xref linkend='XUnlockDisplay' xrefstyle='select: title'/>
has been called the same number of times as
<function>XLockDisplay</function>.
This function has no effect unless Xlib was successfully initialized
@@ -3155,11 +3155,11 @@ for threads using
<!-- .LP -->
<!-- .sp -->
To unlock a display, use
-<function>XUnlockDisplay</function>.
+<xref linkend='XUnlockDisplay' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XUnlockDisplay</primary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xunlockdisplay'>
+<funcsynopsis id='XUnlockDisplay'>
<funcprototype>
<funcdef>XUnlockDisplay</funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3182,13 +3182,13 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUnlockDisplay</function>
+<xref linkend='XUnlockDisplay' xrefstyle='select: title'/>
function allows other threads to use the specified display again.
Any threads that have blocked on the display are allowed to continue.
Nested locking works correctly; if
<function>XLockDisplay</function>
has been called multiple times by a thread, then
-<function>XUnlockDisplay</function>
+<xref linkend='XUnlockDisplay' xrefstyle='select: title'/>
must be called an equal number of times before the display is
actually unlocked.
This function has no effect unless Xlib was successfully initialized
@@ -3206,7 +3206,7 @@ for threads using
In addition to the connection to the X server, an Xlib implementation
may require connections to other kinds of servers (for example, to
input method servers as described in
-<link linkend="locales_and_internationalized_text_functions">chapter 13</link>).
+<link linkend='Locales_and_Internationalized_Text_Functions'>chapter 13</link>).
Toolkits and clients
that use multiple displays, or that use displays in combination with
other inputs, need to obtain these additional connections to correctly
@@ -3218,7 +3218,7 @@ facilities.
<para>
<!-- .LP -->
To track internal connections for a display, use
-<function>XAddConnectionWatch</function>.
+<xref linkend='XAddConnectionWatch' xrefstyle='select: title'/>.
</para>
<funcsynopsis id='xconnectionwatch'>
<funcprototype>
@@ -3231,7 +3231,7 @@ To track internal connections for a display, use
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='xaddconnectionwatch'>
+<funcsynopsis id='XAddConnectionWatch'>
<funcprototype>
<funcdef>Status XAddConnectionWatch</funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3276,7 +3276,7 @@ Specifies the additional client data.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAddConnectionWatch</function>
+<xref linkend='XAddConnectionWatch' xrefstyle='select: title'/>
function registers a procedure to be called each time Xlib opens or closes an
internal connection for the specified display. The procedure is passed the
display, the specified client_data, the file descriptor for the connection,
@@ -3294,9 +3294,9 @@ the location pointed to by watch_data will hold this same private data pointer.
This function can be called at any time after a display is opened.
If internal connections already exist, the registered procedure will
immediately be called for each of them, before
-<function>XAddConnectionWatch</function>
+<xref linkend='XAddConnectionWatch' xrefstyle='select: title'/>
returns.
-<function>XAddConnectionWatch</function>
+<xref linkend='XAddConnectionWatch' xrefstyle='select: title'/>
returns a nonzero status if the procedure is successfully registered;
otherwise, it returns zero.
</para>
@@ -3377,14 +3377,14 @@ was initially registered.
<!-- .LP -->
<!-- .sp -->
To process input on an internal connection, use
-<function>XProcessInternalConnection</function>.
+<xref linkend='XProcessInternalConnection' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XProcessInternalConnection</primary></indexterm>
<!-- .sM -->
</para>
<para>
()
</para>
-<funcsynopsis id='xprocessinternalconnection'>
+<funcsynopsis id='XProcessInternalConnection'>
<funcprototype>
<funcdef>void <function>XProcessInternalConnection</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3418,7 +3418,7 @@ Specifies the file descriptor.
<!-- .LP -->
<!-- .eM -->
The
-<function>XProcessInternalConnection</function>
+<xref linkend='XProcessInternalConnection' xrefstyle='select: title'/>
function processes input available on an internal connection.
This function should be called for an internal connection only
after an operating system facility (for example,
@@ -3432,14 +3432,14 @@ the effect is not defined.
<!-- .LP -->
<!-- .sp -->
To obtain all of the current internal connections for a display, use
-<function>XInternalConnectionNumbers</function>.
+<xref linkend='XInternalConnectionNumbers' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XInternalConnectionNumbers</primary></indexterm>
<!-- .sM -->
</para>
<para>
()
</para>
-<funcsynopsis id='xinternalconnectionnumbers'>
+<funcsynopsis id='XInternalConnectionNumbers'>
<funcprototype>
<funcdef>Status <function>XInternalConnectionNumbers</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3485,12 +3485,12 @@ Returns the number of (Cn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XInternalConnectionNumbers</function>
+<xref linkend='XInternalConnectionNumbers' xrefstyle='select: title'/>
function returns a list of the file descriptors for all internal
connections currently open for the specified display.
When the allocated list is no longer needed,
free it by using
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
This functions returns a nonzero status if the list is successfully allocated;
otherwise, it returns zero.
</para>
diff --git a/libX11/specs/libX11/CH03.xml b/libX11/specs/libX11/CH03.xml
index c2c70cbdd..a16a3bb77 100644
--- a/libX11/specs/libX11/CH03.xml
+++ b/libX11/specs/libX11/CH03.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="window_functions"><title>Window Functions</title>
+<chapter id='Window_Functions'><title>Window Functions</title>
<sect1 id="Visual_Types">
<title>Visual Types</title>
<!-- .XS -->
@@ -23,7 +23,7 @@ Because default windows and visual types are defined for each screen,
most simple applications need not deal with this complexity.
Xlib provides macros and functions that return the default root window,
the default depth of the default root window, and the default visual type
-(see sections <link linkend="Display_Macros_">2.2.1</link>
+(see sections <link linkend='Display_Macros'>2.2.1</link>
and <link linkend="Determining_the_Appropriate_Visual_Type">16.7</link>).
</para>
<para>
@@ -176,11 +176,11 @@ this is the size of an individual pixel subfield.
To obtain the visual ID from a
<structname>Visual</structname>,
use
-<function>XVisualIDFromVisual</function>.
+<xref linkend='XVisualIDFromVisual' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XVisualIDFromVisual</primary></indexterm>
</para>
<!-- .sM -->
-<funcsynopsis id='xvisualidfromvisual'>
+<funcsynopsis id='XVisualIDFromVisual'>
<funcprototype>
<funcdef>VisualID <function>XVisualIDFromVisual</function></funcdef>
<paramdef>Visual *<parameter>visual</parameter></paramdef>
@@ -203,7 +203,7 @@ Specifies the visual type.
<!-- .LP -->
<!-- .eM -->
The
-<function>XVisualIDFromVisual</function>
+<xref linkend='XVisualIDFromVisual' xrefstyle='select: title'/>
function returns the visual ID for the specified visual type.
</para>
</sect1>
@@ -330,7 +330,7 @@ An application may wish to create a window long before it is
mapped to the screen.
When a window is eventually mapped to the screen
(using
-<function>XMapWindow</function>),
+<xref linkend='XMapWindow' xrefstyle='select: title'/>),
<indexterm><primary>XMapWindow</primary></indexterm>
the X server generates an
<symbol>Expose</symbol>
@@ -356,9 +356,9 @@ To set an attribute of a window,
set the appropriate member of the
<structname>XSetWindowAttributes</structname>
structure and OR in the corresponding value bitmask in your subsequent calls to
-<function>XCreateWindow</function>
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>
and
-<function>XChangeWindowAttributes</function>,
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>,
or use one of the other convenience functions that set the appropriate
attribute.
The symbols for the value mask bits and the
@@ -1072,7 +1072,7 @@ or
<symbol>False</symbol>
(default).
Window managers use this information to avoid tampering with pop-up windows
-(see also <link linkend="inter_client_communication_functions">chapter 14</link>).
+(see also <link linkend='Inter_Client_Communication_Functions'>chapter 14</link>).
</para>
</sect2>
<sect2 id="Colormap_Attribute">
@@ -1093,7 +1093,7 @@ error results.
X servers capable of supporting multiple
hardware colormaps can use this information,
and window managers can use it for calls to
-<function>XInstallColormap</function>.
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>.
You can set the colormap attribute to a colormap or to
<symbol>CopyFromParent</symbol>
(default).
@@ -1147,7 +1147,7 @@ or
window, and any change in the parent's cursor will cause an
immediate change in the displayed cursor.
By calling
-<function>XFreeCursor</function>,
+<xref linkend='XFreeCursor' xrefstyle='select: title'/>,
the cursor can be freed immediately as long as no further explicit reference
to it is made.
</para>
@@ -1167,7 +1167,7 @@ which are discussed in the appropriate toolkit documentation.
If you do not use a toolkit, however,
you must provide some standard information or hints for the window
manager by using the Xlib inter-client communication functions
-(see <link linkend="inter_client_communication_functions">chapter 14</link>).
+(see <link linkend='Inter_Client_Communication_Functions'>chapter 14</link>).
</para>
<para>
<!-- .LP -->
@@ -1211,15 +1211,15 @@ you should set these properties for top-level windows before mapping them.
<para>
<!-- .LP -->
For further information,
-see <link linkend="inter_client_communication_functions">chapter 14</link> and
+see <link linkend='Inter_Client_Communication_Functions'>chapter 14</link> and
the <emphasis remap='I'>Inter-Client Communication Conventions Manual</emphasis>.
</para>
<para>
<!-- .LP -->
-<function>XCreateWindow</function>
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>
is the more general function that allows you to set specific window attributes
when you create a window.
-<function>XCreateSimpleWindow</function>
+<xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/>
creates a window that inherits its attributes from its parent window.
</para>
<para>
@@ -1245,11 +1245,11 @@ Extension packages can define other classes of windows.
<para>
<!-- .LP -->
To create an unmapped window and set its window attributes, use
-<function>XCreateWindow</function>.
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatewindow'>
+<funcsynopsis id='XCreateWindow'>
<funcprototype>
<funcdef>Window <function>XCreateWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1424,7 +1424,7 @@ set to indicate which attributes have been set in the structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateWindow</function>
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>
function creates an unmapped subwindow for a specified parent window,
returns the window ID of the created window,
and causes the X server to generate a
@@ -1480,11 +1480,11 @@ error results.
<!-- .LP -->
The created window is not yet displayed (mapped) on the user's display.
To display the window, call
-<function>XMapWindow</function>.
+<xref linkend='XMapWindow' xrefstyle='select: title'/>.
The new window initially uses the same cursor as
its parent.
A new cursor can be defined for the new window by calling
-<function>XDefineCursor</function>.
+<xref linkend='XDefineCursor' xrefstyle='select: title'/>.
<indexterm><primary>Cursor</primary><secondary>Initial State</secondary></indexterm>
<indexterm><primary>XDefineCursor</primary></indexterm>
The window will not be visible on the screen unless it and all of its
@@ -1492,7 +1492,7 @@ ancestors are mapped and it is not obscured by any of its ancestors.
</para>
<para>
<!-- .LP -->
-<function>XCreateWindow</function>
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadColor</errorname>,
@@ -1510,11 +1510,11 @@ errors.
To create an unmapped
<symbol>InputOutput</symbol>
subwindow of a given parent window, use
-<function>XCreateSimpleWindow</function>.
+<xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateSimpleWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatesimplewindow'>
+<funcsynopsis id='XCreateSimpleWindow'>
<funcprototype>
<funcdef>Window <function>XCreateSimpleWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1634,7 +1634,7 @@ Specifies the background pixel value of the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateSimpleWindow</function>
+<xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/>
function creates an unmapped
<symbol>InputOutput</symbol>
subwindow for a specified parent window, returns the
@@ -1649,14 +1649,14 @@ The border_width for an
window must be zero, or a
<errorname>BadMatch</errorname>
error results.
-<function>XCreateSimpleWindow</function>
+<xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/>
inherits its depth, class, and visual from its parent.
All other window attributes, except background and border,
have their default values.
</para>
<para>
<!-- .LP -->
-<function>XCreateSimpleWindow</function>
+<xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadMatch</errorname>,
@@ -1680,11 +1680,11 @@ subwindows of a window.
<!-- .LP -->
<!-- .sp -->
To destroy a window and all of its subwindows, use
-<function>XDestroyWindow</function>.
+<xref linkend='XDestroyWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDestroyWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdestroywindow'>
+<funcsynopsis id='XDestroyWindow'>
<funcprototype>
<funcdef><function>XDestroyWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1718,7 +1718,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDestroyWindow</function>
+<xref linkend='XDestroyWindow' xrefstyle='select: title'/>
function destroys the specified window as well as all of its subwindows and causes
the X server to generate a
<symbol>DestroyNotify</symbol>
@@ -1741,7 +1741,7 @@ events on other windows that were obscured by the window being destroyed.
</para>
<para>
<!-- .LP -->
-<function>XDestroyWindow</function>
+<xref linkend='XDestroyWindow' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -1750,11 +1750,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To destroy all subwindows of a specified window, use
-<function>XDestroySubwindows</function>.
+<xref linkend='XDestroySubwindows' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDestroySubwindows</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdestroysubwindows'>
+<funcsynopsis id='XDestroySubwindows'>
<funcprototype>
<funcdef><function>XDestroySubwindows</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1788,7 +1788,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDestroySubwindows</function>
+<xref linkend='XDestroySubwindows' xrefstyle='select: title'/>
function destroys all inferior windows of the specified window,
in bottom-to-top stacking order.
It causes the X server to generate a
@@ -1796,7 +1796,7 @@ It causes the X server to generate a
event for each window.
If any mapped
subwindows were actually destroyed,
-<function>XDestroySubwindows</function>
+<xref linkend='XDestroySubwindows' xrefstyle='select: title'/>
causes the X server to generate
<symbol>Expose</symbol>
events on the specified window.
@@ -1807,21 +1807,21 @@ The subwindows should never be referenced again.
</para>
<para>
<!-- .LP -->
-<function>XDestroySubwindows</function>
+<xref linkend='XDestroySubwindows' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
</para>
</sect1>
-<sect1 id="Mapping_Windows_">
-<title>Mapping Windows </title>
+<sect1 id='Mapping_Windows'>
+<title>Mapping Windows</title>
<!-- .XS -->
<!-- (SN Mapping Windows -->
<!-- .XE -->
<para>
<!-- .LP -->
A window is considered mapped if an
-<function>XMapWindow</function>
+<xref linkend='XMapWindow' xrefstyle='select: title'/>
call has been made on it.
It may not be visible on the screen for one of the following reasons:
</para>
@@ -1876,7 +1876,7 @@ A window manager that wants to provide decoration might
reparent the child into a frame first.
For further information,
see <link linkend="Override_Redirect_Flag">sections 3.2.8</link>
-and <link linkend="Window_State_Change_Events_">10.10</link>.
+and <link linkend='Window_State_Change_Events'>10.10</link>.
Only a single client at a time can select for
<symbol>SubstructureRedirectMask</symbol>.
</para>
@@ -1894,11 +1894,11 @@ event.
<!-- .LP -->
<!-- .sp -->
To map a given window, use
-<function>XMapWindow</function>.
+<xref linkend='XMapWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XMapWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmapwindow'>
+<funcsynopsis id='XMapWindow'>
<funcprototype>
<funcdef><function>XMapWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1932,7 +1932,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMapWindow</function>
+<xref linkend='XMapWindow' xrefstyle='select: title'/>
function
maps the window and all of its
subwindows that have had map requests.
@@ -1954,7 +1954,7 @@ and if some other client has selected
on the parent window, then the X server generates a
<symbol>MapRequest</symbol>
event, and the
-<function>XMapWindow</function>
+<xref linkend='XMapWindow' xrefstyle='select: title'/>
function does not map the window.
Otherwise, the window is mapped, and the X server generates a
<symbol>MapNotify</symbol>
@@ -1984,7 +1984,7 @@ Similar tiling and exposure take place for any newly viewable inferiors.
If the window is an
<symbol>InputOutput</symbol>
window,
-<function>XMapWindow</function>
+<xref linkend='XMapWindow' xrefstyle='select: title'/>
generates
<symbol>Expose</symbol>
events on each
@@ -2011,7 +2011,7 @@ with window managers.
</para>
<para>
<!-- .LP -->
-<function>XMapWindow</function>
+<xref linkend='XMapWindow' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2020,11 +2020,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To map and raise a window, use
-<function>XMapRaised</function>.
+<xref linkend='XMapRaised' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XMapRaised</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmapraised'>
+<funcsynopsis id='XMapRaised'>
<funcprototype>
<funcdef><function>XMapRaised</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2058,20 +2058,20 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMapRaised</function>
+<xref linkend='XMapRaised' xrefstyle='select: title'/>
function
essentially is similar to
-<function>XMapWindow</function>
+<xref linkend='XMapWindow' xrefstyle='select: title'/>
in that it maps the window and all of its
subwindows that have had map requests.
However, it also raises the specified window to the top of the stack.
For additional information,
see
-<function>XMapWindow</function>.
+<xref linkend='XMapWindow' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XMapRaised</function>
+<xref linkend='XMapRaised' xrefstyle='select: title'/>
can generate multiple
<errorname>BadWindow</errorname>
errors.
@@ -2080,11 +2080,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To map all subwindows for a specified window, use
-<function>XMapSubwindows</function>.
+<xref linkend='XMapSubwindows' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XMapSubwindows</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmapsubwindows'>
+<funcsynopsis id='XMapSubwindows'>
<funcprototype>
<funcdef><function>XMapSubwindows</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2118,7 +2118,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMapSubwindows</function>
+<xref linkend='XMapSubwindows' xrefstyle='select: title'/>
<indexterm><primary>XMapSubwindows</primary></indexterm>
function maps all subwindows for a specified window in top-to-bottom stacking
order.
@@ -2131,7 +2131,7 @@ only once, for all of the windows, rather than for each window.
</para>
<para>
<!-- .LP -->
-<function>XMapSubwindows</function>
+<xref linkend='XMapSubwindows' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2150,11 +2150,11 @@ Xlib provides functions that you can use to unmap a window or all subwindows.
<!-- .LP -->
<!-- .sp -->
To unmap a window, use
-<function>XUnmapWindow</function>.
+<xref linkend='XUnmapWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUnmapWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xunmapwindow'>
+<funcsynopsis id='XUnmapWindow'>
<funcprototype>
<funcdef><function>XUnmapWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2188,14 +2188,14 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUnmapWindow</function>
+<xref linkend='XUnmapWindow' xrefstyle='select: title'/>
function unmaps the specified window and causes the X server to generate an
<symbol>UnmapNotify</symbol>
<indexterm><primary>UnmapNotify Event</primary></indexterm>
<indexterm><primary>XUnmapWindow</primary></indexterm>
event.
If the specified window is already unmapped,
-<function>XUnmapWindow</function>
+<xref linkend='XUnmapWindow' xrefstyle='select: title'/>
has no effect.
Normal exposure processing on formerly obscured windows is performed.
Any child window will no longer be visible until another map call is
@@ -2208,7 +2208,7 @@ events on windows that were formerly obscured by it.
</para>
<para>
<!-- .LP -->
-<function>XUnmapWindow</function>
+<xref linkend='XUnmapWindow' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2217,11 +2217,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To unmap all subwindows for a specified window, use
-<function>XUnmapSubwindows</function>.
+<xref linkend='XUnmapSubwindows' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUnmapSubwindows</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xunmapsubwindows'>
+<funcsynopsis id='XUnmapSubwindows'>
<funcprototype>
<funcdef><function>XUnmapSubwindows</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2255,7 +2255,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUnmapSubwindows</function>
+<xref linkend='XUnmapSubwindows' xrefstyle='select: title'/>
function unmaps all subwindows for the specified window in bottom-to-top
stacking order.
It causes the X server to generate an
@@ -2270,7 +2270,7 @@ only once, for all of the windows, rather than for each window.
</para>
<para>
<!-- .LP -->
-<function>XUnmapSubwindows</function>
+<xref linkend='XUnmapSubwindows' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2293,7 +2293,7 @@ To change one of these parameters,
set the appropriate member of the
<structname>XWindowChanges</structname>
structure and OR in the corresponding value mask in subsequent calls to
-<function>XConfigureWindow</function>.
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>.
The symbols for the value mask bits and the
<structname>XWindowChanges</structname>
structure are:
@@ -2524,11 +2524,11 @@ Attempts to configure a root window have no effect.
<!-- .LP -->
<!-- .sp -->
To configure a window's size, location, stacking, or border, use
-<function>XConfigureWindow</function>.
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XConfigureWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xconfigurewindow'>
+<funcsynopsis id='XConfigureWindow'>
<funcprototype>
<funcdef><function>XConfigureWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2589,7 +2589,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XConfigureWindow</function>
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>
function uses the values specified in the
<structname>XWindowChanges</structname>
structure to reconfigure a window's size, position, border, and stacking order.
@@ -2609,7 +2609,7 @@ and
<symbol>Opposite</symbol>
are performed with respect to the window's final geometry (as controlled by the
other arguments passed to
-<function>XConfigureWindow</function>),
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>),
not its initial geometry.
Any backing store contents of the window, its
inferiors, and other newly visible windows are either discarded or
@@ -2618,7 +2618,7 @@ changed to reflect the current screen contents
</para>
<para>
<!-- .LP -->
-<function>XConfigureWindow</function>
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>,
<errorname>BadValue</errorname>,
@@ -2630,11 +2630,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To move a window without changing its size, use
-<function>XMoveWindow</function>.
+<xref linkend='XMoveWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XMoveWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmovewindow'>
+<funcsynopsis id='XMoveWindow'>
<funcprototype>
<funcdef><function>XMoveWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2693,7 +2693,7 @@ Specify the x and y coordinates(Xy.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMoveWindow</function>
+<xref linkend='XMoveWindow' xrefstyle='select: title'/>
function moves the specified window to the specified x and y coordinates,
but it does not change the window's size, raise the window, or
change the mapping state of the window.
@@ -2723,7 +2723,7 @@ Otherwise, the window is moved.
</para>
<para>
<!-- .LP -->
-<function>XMoveWindow</function>
+<xref linkend='XMoveWindow' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2732,11 +2732,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To change a window's size without changing the upper-left coordinate, use
-<function>XResizeWindow</function>.
+<xref linkend='XResizeWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XResizeWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xresizewindow'>
+<funcsynopsis id='XResizeWindow'>
<funcprototype>
<funcdef><function>XResizeWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2794,7 +2794,7 @@ Specify the width and height(Wh.
<!-- .LP -->
<!-- .eM -->
The
-<function>XResizeWindow</function>
+<xref linkend='XResizeWindow' xrefstyle='select: title'/>
function changes the inside dimensions of the specified window, not including
its borders.
This function does not change the window's upper-left coordinate or
@@ -2824,7 +2824,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XResizeWindow</function>
+<xref linkend='XResizeWindow' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -2835,11 +2835,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To change the size and location of a window, use
-<function>XMoveResizeWindow</function>.
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XMoveResizeWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmoveresizewindow'>
+<funcsynopsis id='XMoveResizeWindow'>
<funcprototype>
<funcdef><function>XMoveResizeWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2920,7 +2920,7 @@ Specify the width and height(Wh.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMoveResizeWindow</function>
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>
function changes the size and location of the specified window
without raising it.
Moving and resizing a mapped window may generate an
@@ -2945,7 +2945,7 @@ Otherwise, the window size and location are changed.
</para>
<para>
<!-- .LP -->
-<function>XMoveResizeWindow</function>
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -2956,11 +2956,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To change the border width of a given window, use
-<function>XSetWindowBorderWidth</function>.
+<xref linkend='XSetWindowBorderWidth' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWindowBorderWidth</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwindowborderwidth'>
+<funcsynopsis id='XSetWindowBorderWidth'>
<funcprototype>
<funcdef><function>XSetWindowBorderWidth</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3005,12 +3005,12 @@ Specifies the width of the window border.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWindowBorderWidth</function>
+<xref linkend='XSetWindowBorderWidth' xrefstyle='select: title'/>
function sets the specified window's border width to the specified width.
</para>
<para>
<!-- .LP -->
-<function>XSetWindowBorderWidth</function>
+<xref linkend='XSetWindowBorderWidth' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3033,11 +3033,11 @@ or restack windows.
<!-- .LP -->
<!-- .sp -->
To raise a window so that no sibling window obscures it, use
-<function>XRaiseWindow</function>.
+<xref linkend='XRaiseWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRaiseWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xraisewindow'>
+<funcsynopsis id='XRaiseWindow'>
<funcprototype>
<funcdef><function>XRaiseWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3071,7 +3071,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRaiseWindow</function>
+<xref linkend='XRaiseWindow' xrefstyle='select: title'/>
function
raises the specified window to the top of the stack so that no sibling window
obscures it.
@@ -3097,7 +3097,7 @@ Otherwise, the window is raised.
</para>
<para>
<!-- .LP -->
-<function>XRaiseWindow</function>
+<xref linkend='XRaiseWindow' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3106,11 +3106,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To lower a window so that it does not obscure any sibling windows, use
-<function>XLowerWindow</function>.
+<xref linkend='XLowerWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLowerWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlowerwindow'>
+<funcsynopsis id='XLowerWindow'>
<funcprototype>
<funcdef><function>XLowerWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3144,7 +3144,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLowerWindow</function>
+<xref linkend='XLowerWindow' xrefstyle='select: title'/>
function lowers the specified window to the bottom of the stack
so that it does not obscure any sibling
windows.
@@ -3171,7 +3171,7 @@ stack.
</para>
<para>
<!-- .LP -->
-<function>XLowerWindow</function>
+<xref linkend='XLowerWindow' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3180,11 +3180,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To circulate a subwindow up or down, use
-<function>XCirculateSubwindows</function>.
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCirculateSubwindows</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcirculatesubwindows'>
+<funcsynopsis id='XCirculateSubwindows'>
<funcprototype>
<funcdef><function>XCirculateSubwindows</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3234,17 +3234,17 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XCirculateSubwindows</function>
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>
function circulates children of the specified window in the specified
direction.
If you specify
<symbol>RaiseLowest</symbol>,
-<function>XCirculateSubwindows</function>
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>
raises the lowest mapped child (if any) that is occluded
by another child to the top of the stack.
If you specify
<symbol>LowerHighest</symbol>,
-<function>XCirculateSubwindows</function>
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>
lowers the highest mapped child (if any) that occludes another child
to the bottom of the stack.
Exposure processing is then performed on formerly obscured windows.
@@ -3260,7 +3260,7 @@ event.
</para>
<para>
<!-- .LP -->
-<function>XCirculateSubwindows</function>
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -3272,11 +3272,11 @@ errors.
<!-- .sp -->
To raise the lowest mapped child of a window that is partially or completely
occluded by another child, use
-<function>XCirculateSubwindowsUp</function>.
+<xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCirculateSubwindowsUp</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcirculatesubwindowsup'>
+<funcsynopsis id='XCirculateSubwindowsUp'>
<funcprototype>
<funcdef><function>XCirculateSubwindowsUp</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3310,21 +3310,21 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCirculateSubwindowsUp</function>
+<xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/>
function raises the lowest mapped child of the specified window that
is partially
or completely
occluded by another child.
Completely unobscured children are not affected.
This is a convenience function equivalent to
-<function>XCirculateSubwindows</function>
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>
with
<symbol>RaiseLowest</symbol>
specified.
</para>
<para>
<!-- .LP -->
-<function>XCirculateSubwindowsUp</function>
+<xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3334,11 +3334,11 @@ error.
<!-- .sp -->
To lower the highest mapped child of a window that partially or
completely occludes another child, use
-<function>XCirculateSubwindowsDown</function>.
+<xref linkend='XCirculateSubwindowsDown' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCirculateSubwindowsDown</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcirculatesubwindowsdown'>
+<funcsynopsis id='XCirculateSubwindowsDown'>
<funcprototype>
<funcdef><function>XCirculateSubwindowsDown</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3372,19 +3372,19 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCirculateSubwindowsDown</function>
+<xref linkend='XCirculateSubwindowsDown' xrefstyle='select: title'/>
function lowers the highest mapped child of the specified window that partially
or completely occludes another child.
Completely unobscured children are not affected.
This is a convenience function equivalent to
-<function>XCirculateSubwindows</function>
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>
with
<symbol>LowerHighest</symbol>
specified.
</para>
<para>
<!-- .LP -->
-<function>XCirculateSubwindowsDown</function>
+<xref linkend='XCirculateSubwindowsDown' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3393,11 +3393,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To restack a set of windows from top to bottom, use
-<function>XRestackWindows</function>.
+<xref linkend='XRestackWindows' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRestackWindows</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrestackwindows'>
+<funcsynopsis id='XRestackWindows'>
<funcprototype>
<funcdef><function>XRestackWindows</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3442,7 +3442,7 @@ Specifies the number of windows to be restacked.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRestackWindows</function>
+<xref linkend='XRestackWindows' xrefstyle='select: title'/>
function restacks the windows in the order specified,
from top to bottom.
The stacking order of the first window in the windows array is unaffected,
@@ -3469,7 +3469,7 @@ Otherwise, the windows will be restacked in top-to-bottom order.
</para>
<para>
<!-- .LP -->
-<function>XRestackWindows</function>
+<xref linkend='XRestackWindows' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3486,7 +3486,7 @@ error.
<para>
<!-- .LP -->
Xlib provides functions that you can use to set window attributes.
-<function>XChangeWindowAttributes</function>
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>
is the more general function that allows you to set one or more window
attributes provided by the
<structname>XSetWindowAttributes</structname>
@@ -3498,11 +3498,11 @@ window attribute, such as a window's background.
<!-- .LP -->
<!-- .sp -->
To change one or more attributes for a given window, use
-<function>XChangeWindowAttributes</function>.
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XChangeWindowAttributes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangewindowattributes'>
+<funcsynopsis id='XChangeWindowAttributes'>
<funcprototype>
<funcdef><function>XChangeWindowAttributes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3546,7 +3546,7 @@ If valuemask is zero,
the attributes are ignored and are not referenced.
The values and restrictions are
the same as for
-<function>XCreateWindow</function>.
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>.
</para>
</listitem>
</varlistentry>
@@ -3579,14 +3579,14 @@ set to indicate which attributes have been set in the structure
<!-- .eM -->
Depending on the valuemask,
the
-<function>XChangeWindowAttributes</function>
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>
function uses the window attributes in the
<structname>XSetWindowAttributes</structname>
structure to change the specified window attributes.
Changing the background does not cause the window contents to be
changed.
To repaint the window and its background, use
-<function>XClearWindow</function>.
+<xref linkend='XClearWindow' xrefstyle='select: title'/>.
Setting the border or changing the background such that the
border tile origin changes causes the border to be repainted.
Changing the background of a root window to
@@ -3612,7 +3612,7 @@ event.
Changing the colormap of a visible window may have no
immediate effect on the screen because the map may not be installed
(see
-<function>XInstallColormap</function>).
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>).
Changing the cursor of a root window to
<symbol>None</symbol>
restores the default
@@ -3640,7 +3640,7 @@ not one per client.
</para>
<para>
<!-- .LP -->
-<function>XChangeWindowAttributes</function>
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadColor</errorname>,
@@ -3656,11 +3656,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the background of a window to a given pixel, use
-<function>XSetWindowBackground</function>.
+<xref linkend='XSetWindowBackground' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWindowBackground</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwindowbackground'>
+<funcsynopsis id='XSetWindowBackground'>
<funcprototype>
<funcdef><function>XSetWindowBackground</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3705,10 +3705,10 @@ Specifies the pixel that is to be used for the background.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWindowBackground</function>
+<xref linkend='XSetWindowBackground' xrefstyle='select: title'/>
function sets the background of the window to the specified pixel value.
Changing the background does not cause the window contents to be changed.
-<function>XSetWindowBackground</function>
+<xref linkend='XSetWindowBackground' xrefstyle='select: title'/>
uses a pixmap of undefined size filled with the pixel value you passed.
If you try to change the background of an
<symbol>InputOnly</symbol>
@@ -3718,7 +3718,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XSetWindowBackground</function>
+<xref linkend='XSetWindowBackground' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>
and
@@ -3732,12 +3732,12 @@ errors.
<para>
<!-- .LP -->
To set the background of a window to a given pixmap, use
-<function>XSetWindowBackgroundPixmap</function>.
+<xref linkend='XSetWindowBackgroundPixmap' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Window</primary><secondary>background</secondary></indexterm>
<indexterm significance="preferred"><primary>XSetWindowBackgroundPixmap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwindowbackgroundpixmap'>
+<funcsynopsis id='XSetWindowBackgroundPixmap'>
<funcprototype>
<funcdef><function>XSetWindowBackgroundPixmap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3787,7 +3787,7 @@ or
<indexterm><primary>Resource IDs</primary><secondary>freeing</secondary></indexterm>
<indexterm><primary>Freeing</primary><secondary>resources</secondary></indexterm>
The
-<function>XSetWindowBackgroundPixmap</function>
+<xref linkend='XSetWindowBackgroundPixmap' xrefstyle='select: title'/>
function sets the background pixmap of the window to the specified pixmap.
The background pixmap can immediately be freed if no further explicit
references to it are to be made.
@@ -3807,7 +3807,7 @@ the window has no defined background.
</para>
<para>
<!-- .LP -->
-<function>XSetWindowBackgroundPixmap</function>
+<xref linkend='XSetWindowBackgroundPixmap' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>,
<errorname>BadPixmap</errorname>,
@@ -3815,9 +3815,9 @@ and
<errorname>BadWindow</errorname>
errors.
<!-- .NT Note -->
-<function>XSetWindowBackground</function>
+<xref linkend='XSetWindowBackground' xrefstyle='select: title'/>
and
-<function>XSetWindowBackgroundPixmap</function>
+<xref linkend='XSetWindowBackgroundPixmap' xrefstyle='select: title'/>
do not change the current contents of the window.
<!-- .NE -->
</para>
@@ -3825,11 +3825,11 @@ do not change the current contents of the window.
<!-- .LP -->
<!-- .sp -->
To change and repaint a window's border to a given pixel, use
-<function>XSetWindowBorder</function>.
+<xref linkend='XSetWindowBorder' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWindowBorder</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwindowborder'>
+<funcsynopsis id='XSetWindowBorder'>
<funcprototype>
<funcdef><function>XSetWindowBorder</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3874,7 +3874,7 @@ Specifies the entry in the colormap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWindowBorder</function>
+<xref linkend='XSetWindowBorder' xrefstyle='select: title'/>
function sets the border of the window to the pixel value you specify.
If you attempt to perform this on an
<symbol>InputOnly</symbol>
@@ -3884,7 +3884,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XSetWindowBorder</function>
+<xref linkend='XSetWindowBorder' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>
and
@@ -3895,11 +3895,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To change and repaint the border tile of a given window, use
-<function>XSetWindowBorderPixmap</function>.
+<xref linkend='XSetWindowBorderPixmap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWindowBorderPixmap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwindowborderpixmap'>
+<funcsynopsis id='XSetWindowBorderPixmap'>
<funcprototype>
<funcdef><function>XSetWindowBorderPixmap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3945,7 +3945,7 @@ Specifies the border pixmap or
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWindowBorderPixmap</function>
+<xref linkend='XSetWindowBorderPixmap' xrefstyle='select: title'/>
function sets the border pixmap of the window to the pixmap you specify.
The border pixmap can be freed immediately if no further explicit
references to it are to be made.
@@ -3962,7 +3962,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XSetWindowBorderPixmap</function>
+<xref linkend='XSetWindowBorderPixmap' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>,
<errorname>BadPixmap</errorname>,
@@ -3974,11 +3974,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the colormap of a given window, use
-<function>XSetWindowColormap</function>.
+<xref linkend='XSetWindowColormap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWindowColormap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwindowcolormap'>
+<funcsynopsis id='XSetWindowColormap'>
<funcprototype>
<funcdef><function>XSetWindowColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4023,7 +4023,7 @@ Specifies the colormap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWindowColormap</function>
+<xref linkend='XSetWindowColormap' xrefstyle='select: title'/>
function sets the specified colormap of the specified window.
The colormap must have the same visual type as the window,
or a
@@ -4032,7 +4032,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XSetWindowColormap</function>
+<xref linkend='XSetWindowColormap' xrefstyle='select: title'/>
can generate
<errorname>BadColor</errorname>,
<errorname>BadMatch</errorname>,
@@ -4044,12 +4044,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To define which cursor will be used in a window, use
-<function>XDefineCursor</function>.
+<xref linkend='XDefineCursor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Window</primary><secondary>defining the cursor</secondary></indexterm>
<indexterm significance="preferred"><primary>XDefineCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdefinecursor'>
+<funcsynopsis id='XDefineCursor'>
<funcprototype>
<funcdef><function>XDefineCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4098,11 +4098,11 @@ If a cursor is set, it will be used when the pointer is in the window.
If the cursor is
<symbol>None</symbol>,
it is equivalent to
-<function>XUndefineCursor</function>.
+<xref linkend='XUndefineCursor' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XDefineCursor</function>
+<xref linkend='XDefineCursor' xrefstyle='select: title'/>
can generate
<errorname>BadCursor</errorname>
and
@@ -4113,12 +4113,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To undefine the cursor in a given window, use
-<function>XUndefineCursor</function>.
+<xref linkend='XUndefineCursor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Window</primary><secondary>undefining the cursor</secondary></indexterm>
<indexterm significance="preferred"><primary>XUndefineCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xundefinecursor'>
+<funcsynopsis id='XUndefineCursor'>
<funcprototype>
<funcdef><function>XUndefineCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4152,9 +4152,9 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUndefineCursor</function>
+<xref linkend='XUndefineCursor' xrefstyle='select: title'/>
function undoes the effect of a previous
-<function>XDefineCursor</function>
+<xref linkend='XDefineCursor' xrefstyle='select: title'/>
for this window.
When the pointer is in the window,
the parent's cursor will now be used.
@@ -4163,7 +4163,7 @@ the default cursor is restored.
</para>
<para>
<!-- .LP -->
-<function>XUndefineCursor</function>
+<xref linkend='XUndefineCursor' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
diff --git a/libX11/specs/libX11/CH04.xml b/libX11/specs/libX11/CH04.xml
index 5ace5e1a3..973e7907e 100644
--- a/libX11/specs/libX11/CH04.xml
+++ b/libX11/specs/libX11/CH04.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="window_information_functions">
+<chapter id='Window_Information_Functions'>
<title>Window Information Functions</title>
<para>
@@ -35,13 +35,13 @@ exists.
<!-- .sp -->
To obtain the parent, a list of children, and number of children for
a given window, use
-<function>XQueryTree</function>.
+<xref linkend='XQueryTree' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Child Window</primary></indexterm>
<indexterm><primary>Parent Window</primary></indexterm>
<indexterm significance="preferred"><primary>XQueryTree</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerytree'>
+<funcsynopsis id='XQueryTree'>
<funcprototype>
<funcdef>Status <function>XQueryTree</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -121,21 +121,21 @@ Returns the number of children.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryTree</function>
+<xref linkend='XQueryTree' xrefstyle='select: title'/>
function returns the root ID, the parent window ID,
a pointer to the list of children windows
(NULL when there are no children),
and the number of children in the list for the specified window.
The children are listed in current stacking order, from bottom-most
(first) to top-most (last).
-<function>XQueryTree</function>
+<xref linkend='XQueryTree' xrefstyle='select: title'/>
returns zero if it fails and nonzero if it succeeds.
To free a non-NULL children list when it is no longer needed, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XQueryTree</function>
+<xref linkend='XQueryTree' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -144,11 +144,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To obtain the current attributes of a given window, use
-<function>XGetWindowAttributes</function>.
+<xref linkend='XGetWindowAttributes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWindowAttributes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwindowattributes'>
+<funcsynopsis id='XGetWindowAttributes'>
<funcprototype>
<funcdef>Status <function>XGetWindowAttributes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -196,7 +196,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWindowAttributes</function>
+<xref linkend='XGetWindowAttributes' xrefstyle='select: title'/>
function returns the current attributes for the specified window to an
<structname>XWindowAttributes</structname>
structure.
@@ -358,7 +358,7 @@ having to loop over the root window fields to see which field matches.
</para>
<para>
<!-- .LP -->
-<function>XGetWindowAttributes</function>
+<xref linkend='XGetWindowAttributes' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>
and
@@ -369,11 +369,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain the current geometry of a given drawable, use
-<function>XGetGeometry</function>.
+<xref linkend='XGetGeometry' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetGeometry</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetgeometry'>
+<funcsynopsis id='XGetGeometry'>
<funcprototype>
<funcdef>Status <function>XGetGeometry</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -492,7 +492,7 @@ Returns the depth of the drawable (bits per pixel for the object).
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetGeometry</function>
+<xref linkend='XGetGeometry' xrefstyle='select: title'/>
function returns the root window and the current geometry of the drawable.
The geometry of the drawable includes the x and y coordinates, width and height,
border width, and depth.
@@ -502,7 +502,7 @@ It is legal to pass to this function a window whose class is
</para>
<para>
<!-- .LP -->
-<function>XGetGeometry</function>
+<xref linkend='XGetGeometry' xrefstyle='select: title'/>
can generate a
<errorname>BadDrawable</errorname>
error.
@@ -519,9 +519,9 @@ Applications sometimes
need to perform a coordinate transformation from the coordinate
space of one window to another window or need to determine which
window the pointing device is in.
-<function>XTranslateCoordinates</function>
+<xref linkend='XTranslateCoordinates' xrefstyle='select: title'/>
and
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
fulfill these needs (and avoid any race conditions) by
asking the X server to perform these operations.
</para>
@@ -530,11 +530,11 @@ asking the X server to perform these operations.
<!-- .sp -->
To translate a coordinate in one window to the coordinate
space of another window, use
-<function>XTranslateCoordinates</function>.
+<xref linkend='XTranslateCoordinates' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XTranslateCoordinates</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xtranslatecoordinates'>
+<funcsynopsis id='XTranslateCoordinates'>
<funcprototype>
<funcdef>Bool <function>XTranslateCoordinates</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -634,7 +634,7 @@ destination window.
<!-- .LP -->
<!-- .eM -->
If
-<function>XTranslateCoordinates</function>
+<xref linkend='XTranslateCoordinates' xrefstyle='select: title'/>
returns
<symbol>True</symbol>,
it takes the src_x and src_y coordinates relative
@@ -642,7 +642,7 @@ to the source window's origin and returns these coordinates to
dest_x_return and dest_y_return
relative to the destination window's origin.
If
-<function>XTranslateCoordinates</function>
+<xref linkend='XTranslateCoordinates' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
src_w and dest_w are on different screens,
@@ -654,7 +654,7 @@ Otherwise, child_return is set to
</para>
<para>
<!-- .LP -->
-<function>XTranslateCoordinates</function>
+<xref linkend='XTranslateCoordinates' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -664,11 +664,11 @@ error.
<!-- .sp -->
To obtain the screen coordinates of the pointer
or to determine the pointer coordinates relative to a specified window, use
-<function>XQueryPointer</function>.
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryPointer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerypointer'>
+<funcsynopsis id='XQueryPointer'>
<funcprototype>
<funcdef>Bool <function>XQueryPointer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -779,26 +779,26 @@ Returns the current state of the modifier keys and pointer buttons.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
function returns the root window the pointer is logically on and the pointer
coordinates relative to the root window's origin.
If
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
the pointer is not on the same screen as the specified window, and
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
returns
<symbol>None</symbol>
to child_return and zero to win_x_return and win_y_return.
If
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
returns
<symbol>True</symbol>,
the pointer coordinates returned to win_x_return and win_y_return
are relative to the origin of the specified window.
In this case,
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
returns the child that contains the pointer, if any,
or else
<symbol>None</symbol>
@@ -806,7 +806,7 @@ to child_return.
</para>
<para>
<!-- .LP -->
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
returns the current logical state of the keyboard buttons
and the modifier keys in mask_return.
It sets mask_return to the bitwise inclusive OR of one or more
@@ -817,11 +817,11 @@ the current state of the mouse buttons and the modifier keys.
<!-- .LP -->
Note that the logical state of a device (as seen through Xlib)
may lag the physical state if device event processing is frozen
-(see <link linkend="Pointer_Grabbing_">section 12.1</link>).
+(see <link linkend='Pointer_Grabbing'>section 12.1</link>).
</para>
<para>
<!-- .LP -->
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -851,7 +851,7 @@ property name.
Clients can store and retrieve properties associated with windows.
For efficiency reasons,
an atom is used rather than a character string.
-<function>XInternAtom</function>
+<xref linkend='XInternAtom' xrefstyle='select: title'/>
can be used to obtain the atom for property names.
<indexterm><primary>Atom</primary></indexterm>
</para>
@@ -887,7 +887,7 @@ To avoid name clashes with user symbols, the
name for each atom has the XA_ prefix.
For an explanation of the functions that let you get and set
much of the information stored in these predefined properties,
-see <link linkend="inter_client_communication_functions">chapter 14</link>.
+see <link linkend='Inter_Client_Communication_Functions'>chapter 14</link>.
</para>
<para>
<!-- .LP -->
@@ -1046,12 +1046,12 @@ see <link linkend="Font_Metrics">section 8.5</link>.
<!-- .LP -->
<!-- .sp -->
To return an atom for a given name, use
-<function>XInternAtom</function>.
+<xref linkend='XInternAtom' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Atom</primary><secondary>interning</secondary></indexterm>
<indexterm significance="preferred"><primary>XInternAtom</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xinternatom'>
+<funcsynopsis id='XInternAtom'>
<funcprototype>
<funcdef>Atom <function>XInternAtom</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1096,14 +1096,14 @@ Specifies a Boolean value that indicates whether the atom must be created.
<!-- .LP -->
<!-- .eM -->
The
-<function>XInternAtom</function>
+<xref linkend='XInternAtom' xrefstyle='select: title'/>
function returns the atom identifier associated with the specified atom_name
string.
If only_if_exists is
<symbol>False</symbol>,
the atom is created if it does not exist.
Therefore,
-<function>XInternAtom</function>
+<xref linkend='XInternAtom' xrefstyle='select: title'/>
can return
<symbol>None</symbol>.
If the atom name is not in the Host Portable Character Encoding,
@@ -1117,7 +1117,7 @@ the X server closes.
</para>
<para>
<!-- .LP -->
-<function>XInternAtom</function>
+<xref linkend='XInternAtom' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1128,12 +1128,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To return atoms for an array of names, use
-<function>XInternAtoms</function>.
+<xref linkend='XInternAtoms' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Atom</primary><secondary>interning</secondary></indexterm>
<indexterm significance="preferred"><primary>XInternAtoms</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xinternatoms'>
+<funcsynopsis id='XInternAtoms'>
<funcprototype>
<funcdef>Status <function>XInternAtoms</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1201,11 +1201,11 @@ Returns the atoms.
<!-- .LP -->
<!-- .eM -->
The
-<function>XInternAtoms</function>
+<xref linkend='XInternAtoms' xrefstyle='select: title'/>
function returns the atom identifiers associated with the specified names.
The atoms are stored in the atoms_return array supplied by the caller.
Calling this function is equivalent to calling
-<function>XInternAtom</function>
+<xref linkend='XInternAtom' xrefstyle='select: title'/>
for each of the names in turn with the specified value of only_if_exists,
but this function minimizes the number of round-trip protocol exchanges
between the client and the X server.
@@ -1218,7 +1218,7 @@ otherwise, it returns zero.
</para>
<para>
<!-- .LP -->
-<function>XInternAtoms</function>
+<xref linkend='XInternAtoms' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1229,12 +1229,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To return a name for a given atom identifier, use
-<function>XGetAtomName</function>.
+<xref linkend='XGetAtomName' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Atom</primary><secondary>getting name</secondary></indexterm>
<indexterm significance="preferred"><primary>XGetAtomName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetatomname'>
+<funcsynopsis id='XGetAtomName'>
<funcprototype>
<funcdef>char *<function>XGetAtomName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1268,18 +1268,18 @@ Specifies the atom for the property name you want returned.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetAtomName</function>
+<xref linkend='XGetAtomName' xrefstyle='select: title'/>
function returns the name associated with the specified atom.
If the data returned by the server is in the Latin Portable Character Encoding,
then the returned string is in the Host Portable Character Encoding.
Otherwise, the result is implementation-dependent.
To free the resulting string,
call
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetAtomName</function>
+<xref linkend='XGetAtomName' xrefstyle='select: title'/>
can generate a
<errorname>BadAtom</errorname>
error.
@@ -1288,12 +1288,12 @@ error.
<!-- .LP -->
<!-- .sp -->
To return the names for an array of atom identifiers, use
-<function>XGetAtomNames</function>.
+<xref linkend='XGetAtomNames' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Atom</primary><secondary>getting name</secondary></indexterm>
<indexterm significance="preferred"><primary>XGetAtomNames</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetatomnames'>
+<funcsynopsis id='XGetAtomNames'>
<funcprototype>
<funcdef>Status <function>XGetAtomNames</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1350,11 +1350,11 @@ Returns the atom names.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetAtomNames</function>
+<xref linkend='XGetAtomNames' xrefstyle='select: title'/>
function returns the names associated with the specified atoms.
The names are stored in the names_return array supplied by the caller.
Calling this function is equivalent to calling
-<function>XGetAtomName</function>
+<xref linkend='XGetAtomName' xrefstyle='select: title'/>
for each of the atoms in turn,
but this function minimizes the number of round-trip protocol exchanges
between the client and the X server.
@@ -1367,7 +1367,7 @@ otherwise, it returns zero.
</para>
<para>
<!-- .LP -->
-<function>XGetAtomNames</function>
+<xref linkend='XGetAtomNames' xrefstyle='select: title'/>
can generate a
<errorname>BadAtom</errorname>
error.
@@ -1398,19 +1398,19 @@ Xlib provides functions that you can use to obtain,
change, update, or interchange window properties.
In addition, Xlib provides other utility functions for inter-client
communication
-(see <link linkend="inter_client_communication_functions">chapter 14</link>).
+(see <link linkend='Inter_Client_Communication_Functions'>chapter 14</link>).
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To obtain the type, format, and value of a property of a given window, use
-<function>XGetWindowProperty</function>.
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>.
<indexterm><primary>Property</primary><secondary>getting</secondary></indexterm>
</para>
<!-- .LP -->
<indexterm significance="preferred"><primary>XGetWindowProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwindowproperty'>
+<funcsynopsis id='XGetWindowProperty'>
<funcprototype>
<funcdef>int <function>XGetWindowProperty</function></funcdef>
<paramdef><parameter> display</parameter></paramdef>
@@ -1559,18 +1559,18 @@ Returns the data in the specified format.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
function returns the actual type of the property; the actual format of the property;
the number of 8-bit, 16-bit, or 32-bit items transferred; the number of bytes remaining
to be read in the property; and a pointer to the data actually returned.
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
sets the return arguments as follows:
</para>
<itemizedlist>
<listitem>
<para>
If the specified property does not exist for the specified window,
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
returns
<symbol>None</symbol>
to actual_type_return and the value zero to
@@ -1583,7 +1583,7 @@ In this case, the delete argument is ignored.
<para>
If the specified property exists
but its type does not match the specified type,
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
returns the actual property type to actual_type_return,
the actual property format (never zero) to actual_format_return,
and the property length in bytes
@@ -1598,7 +1598,7 @@ The nitems_return argument is empty.
If the specified property exists and either you assign
<symbol>AnyPropertyType</symbol>
to the req_type argument or the specified type matches the actual property type,
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
returns the actual property type to actual_type_return and the actual
property format (never zero) to actual_format_return.
It also returns a value to bytes_after_return and nitems_return, by
@@ -1645,7 +1645,7 @@ array and should be cast to that type to obtain the elements.
</para>
<para>
<!-- .LP -->
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
always allocates one extra byte in prop_return
(even if the property is zero length)
and sets it to zero so that simple properties consisting of characters
@@ -1656,7 +1656,7 @@ do not have to be copied into yet another string before use.
If delete is
<symbol>True</symbol>
and bytes_after_return is zero,
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
deletes the property
from the window and generates a
<symbol>PropertyNotify</symbol>
@@ -1669,11 +1669,11 @@ The function returns
if it executes successfully.
To free the resulting data,
use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetWindowProperty</function>
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>,
<errorname>BadValue</errorname>,
@@ -1685,12 +1685,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain a given window's property list, use
-<function>XListProperties</function>.
+<xref linkend='XListProperties' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Property</primary><secondary>listing</secondary></indexterm>
<indexterm significance="preferred"><primary>XListProperties</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlistproperties'>
+<funcsynopsis id='XListProperties'>
<funcprototype>
<funcdef>Atom *<function>XListProperties</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1736,15 +1736,15 @@ Returns the length of the properties array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XListProperties</function>
+<xref linkend='XListProperties' xrefstyle='select: title'/>
function returns a pointer to an array of atom properties that are defined for
the specified window or returns NULL if no properties were found.
To free the memory allocated by this function, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XListProperties</function>
+<xref linkend='XListProperties' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -1753,7 +1753,7 @@ error.
<!-- .LP -->
<!-- .sp -->
To change a property of a given window, use
-<function>XChangeProperty</function>.
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Property</primary><secondary>changing</secondary></indexterm>
<indexterm><primary>Property</primary><secondary>appending</secondary></indexterm>
@@ -1763,7 +1763,7 @@ To change a property of a given window, use
<indexterm><primary>Property</primary><secondary>type</secondary></indexterm>
<indexterm significance="preferred"><primary>XChangeProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangeproperty'>
+<funcsynopsis id='XChangeProperty'>
<funcprototype>
<funcdef><function>XChangeProperty</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1817,7 +1817,7 @@ Specifies the property name.
Specifies the type of the property.
The X server does not interpret the type but simply
passes it back to an application that later calls
-<function>XGetWindowProperty</function>.
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>.
</para>
</listitem>
</varlistentry>
@@ -1835,7 +1835,7 @@ byte-swap operations as necessary.
If the format is 16-bit or 32-bit,
you must explicitly cast your data pointer to an (unsigned char *) in the call
to
-<function>XChangeProperty</function>.
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>.
<!-- .\" Changed name of this file to prop_mode.a on 1/13/87 -->
</para>
</listitem>
@@ -1880,12 +1880,12 @@ Specifies the number of elements of the specified data format.
<!-- .LP -->
<!-- .eM -->
The
-<function>XChangeProperty</function>
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>
function alters the property for the specified window and
causes the X server to generate a
<symbol>PropertyNotify</symbol>
event on that window.
-<function>XChangeProperty</function>
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>
performs the following:
</para>
<itemizedlist>
@@ -1893,7 +1893,7 @@ performs the following:
<para>
If mode is
<symbol>PropModeReplace</symbol>,
-<function>XChangeProperty</function>
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>
discards the previous property value and stores the new data.
</para>
</listitem>
@@ -1903,7 +1903,7 @@ If mode is
<symbol>PropModePrepend</symbol>
or
<symbol>PropModeAppend</symbol>,
-<function>XChangeProperty</function>
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>
inserts the specified data before the beginning of the existing data
or onto the end of the existing data, respectively.
The type and format must match the existing property value,
@@ -1934,7 +1934,7 @@ The lifetime of a property is not tied to the storing client.
Properties remain until explicitly deleted, until the window is destroyed,
or until the server resets.
For a discussion of what happens when the connection to the X server is closed,
-see <link linkend="Using_X_Server_Connection_Close_Operations_">section 2.6</link>.
+see <link linkend='Using_X_Server_Connection_Close_Operations'>section 2.6</link>.
The maximum size of a property is server dependent and can vary dynamically
depending on the amount of memory the server has available.
(If there is insufficient space, a
@@ -1943,7 +1943,7 @@ error results.)
</para>
<para>
<!-- .LP -->
-<function>XChangeProperty</function>
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadAtom</errorname>,
@@ -1957,12 +1957,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To rotate a window's property list, use
-<function>XRotateWindowProperties</function>.
+<xref linkend='XRotateWindowProperties' xrefstyle='select: title'/>.
</para>
<!-- .LP -->
<indexterm significance="preferred"><primary>XRotateWindowProperties</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrotatewindowproperties'>
+<funcsynopsis id='XRotateWindowProperties'>
<funcprototype>
<funcdef><function>XRotateWindowProperties</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2029,7 +2029,7 @@ Specifies the rotation amount.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRotateWindowProperties</function>
+<xref linkend='XRotateWindowProperties' xrefstyle='select: title'/>
function allows you to rotate properties on a window and causes
the X server to generate
<symbol>PropertyNotify</symbol>
@@ -2059,7 +2059,7 @@ no properties are changed.
</para>
<para>
<!-- .LP -->
-<function>XRotateWindowProperties</function>
+<xref linkend='XRotateWindowProperties' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>,
<errorname>BadMatch</errorname>,
@@ -2071,12 +2071,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To delete a property on a given window, use
-<function>XDeleteProperty</function>.
+<xref linkend='XDeleteProperty' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Property</primary><secondary>deleting</secondary></indexterm>
<indexterm significance="preferred"><primary>XDeleteProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdeleteproperty'>
+<funcsynopsis id='XDeleteProperty'>
<funcprototype>
<funcdef><function>XDeleteProperty</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2122,7 +2122,7 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDeleteProperty</function>
+<xref linkend='XDeleteProperty' xrefstyle='select: title'/>
function deletes the specified property only if the
property was defined on the specified window
and causes the X server to generate a
@@ -2131,7 +2131,7 @@ event on the window unless the property does not exist.
</para>
<para>
<!-- .LP -->
-<function>XDeleteProperty</function>
+<xref linkend='XDeleteProperty' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
@@ -2194,12 +2194,12 @@ The protocol does not constrain the semantics.
<!-- .LP -->
<!-- .sp -->
To set the selection owner, use
-<function>XSetSelectionOwner</function>.
+<xref linkend='XSetSelectionOwner' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Selection</primary><secondary>setting the owner</secondary></indexterm>
<indexterm significance="preferred"><primary>XSetSelectionOwner</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetselectionowner'>
+<funcsynopsis id='XSetSelectionOwner'>
<funcprototype>
<funcdef><function>XSetSelectionOwner</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2259,7 +2259,7 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetSelectionOwner</function>
+<xref linkend='XSetSelectionOwner' xrefstyle='select: title'/>
function changes the owner and last-change time for the specified selection
and has no effect if the specified time is earlier than the current
last-change time of the specified selection
@@ -2296,7 +2296,7 @@ reverts to
<symbol>None</symbol>,
but the last-change time is not affected.
The selection atom is uninterpreted by the X server.
-<function>XGetSelectionOwner</function>
+<xref linkend='XGetSelectionOwner' xrefstyle='select: title'/>
returns the owner window, which is reported in
<symbol>SelectionRequest</symbol>
and
@@ -2306,7 +2306,7 @@ Selections are global to the X server.
</para>
<para>
<!-- .LP -->
-<function>XSetSelectionOwner</function>
+<xref linkend='XSetSelectionOwner' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
@@ -2317,12 +2317,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To return the selection owner, use
-<function>XGetSelectionOwner</function>.
+<xref linkend='XGetSelectionOwner' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Selection</primary><secondary>getting the owner</secondary></indexterm>
<indexterm significance="preferred"><primary>XGetSelectionOwner</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetselectionowner'>
+<funcsynopsis id='XGetSelectionOwner'>
<funcprototype>
<funcdef>Window <function>XGetSelectionOwner</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2357,7 +2357,7 @@ Specifies the selection atom (Se.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetSelectionOwner</function>
+<xref linkend='XGetSelectionOwner' xrefstyle='select: title'/>
function
returns the window ID associated with the window that currently owns the
specified selection.
@@ -2370,7 +2370,7 @@ there is no owner for the selection.
</para>
<para>
<!-- .LP -->
-<function>XGetSelectionOwner</function>
+<xref linkend='XGetSelectionOwner' xrefstyle='select: title'/>
can generate a
<errorname>BadAtom</errorname>
error.
@@ -2379,12 +2379,12 @@ error.
<!-- .LP -->
<!-- .sp -->
To request conversion of a selection, use
-<function>XConvertSelection</function>.
+<xref linkend='XConvertSelection' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Selection</primary><secondary>converting</secondary></indexterm>
<indexterm significance="preferred"><primary>XConvertSelection</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xconvertselection'>
+<funcsynopsis id='XConvertSelection'>
<funcprototype>
<funcdef><function>XConvertSelection</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2464,7 +2464,7 @@ You can pass either a timestamp or
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XConvertSelection</function>
+<xref linkend='XConvertSelection' xrefstyle='select: title'/>
requests that the specified selection be converted to the specified target
type:
</para>
@@ -2494,7 +2494,7 @@ There are two predefined selection atoms: PRIMARY and SECONDARY.
</para>
<para>
<!-- .LP -->
-<function>XConvertSelection</function>
+<xref linkend='XConvertSelection' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
diff --git a/libX11/specs/libX11/CH05.xml b/libX11/specs/libX11/CH05.xml
index 134831e60..501ead0d9 100644
--- a/libX11/specs/libX11/CH05.xml
+++ b/libX11/specs/libX11/CH05.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="pixmap_and_cursor_functions">
+<chapter id='Pixmap_and_Cursor_Functions'>
<title>Pixmap and Cursor Functions</title>
<sect1 id="Creating_and_Freeing_Pixmaps">
<title>Creating and Freeing Pixmaps</title>
@@ -21,11 +21,11 @@ A bitmap is a single bit-plane pixmap.
<!-- .LP -->
<!-- .sp -->
To create a pixmap of a given size, use
-<function>XCreatePixmap</function>.
+<xref linkend='XCreatePixmap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreatePixmap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatepixmap'>
+<funcsynopsis id='XCreatePixmap'>
<funcprototype>
<funcdef>Pixmap <function>XCreatePixmap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -93,7 +93,7 @@ Specifies the depth of the pixmap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreatePixmap</function>
+<xref linkend='XCreatePixmap' xrefstyle='select: title'/>
function creates a pixmap of the width, height, and depth you specified
and returns a pixmap ID that identifies it.
It is valid to pass an
@@ -115,13 +115,13 @@ The server uses the specified drawable to determine on which screen
to create the pixmap.
The pixmap can be used only on this screen
and only with other drawables of the same depth (see
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
for an exception to this rule).
The initial contents of the pixmap are undefined.
</para>
<para>
<!-- .LP -->
-<function>XCreatePixmap</function>
+<xref linkend='XCreatePixmap' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadDrawable</errorname>,
@@ -133,11 +133,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To free all storage associated with a specified pixmap, use
-<function>XFreePixmap</function>.
+<xref linkend='XFreePixmap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreePixmap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreepixmap'>
+<funcsynopsis id='XFreePixmap'>
<funcprototype>
<funcdef><function>XFreePixmap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -171,14 +171,14 @@ Specifies the pixmap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreePixmap</function>
+<xref linkend='XFreePixmap' xrefstyle='select: title'/>
function first deletes the association between the pixmap ID and the pixmap.
Then, the X server frees the pixmap storage when there are no references to it.
The pixmap should never be referenced again.
</para>
<para>
<!-- .LP -->
-<function>XFreePixmap</function>
+<xref linkend='XFreePixmap' xrefstyle='select: title'/>
can generate a
<errorname>BadPixmap</errorname>
error.
@@ -210,7 +210,7 @@ when a pointer event occurs.
There may be limitations imposed by the hardware on
cursors as to size and whether a mask is implemented.
<indexterm><primary>XQueryBestCursor</primary></indexterm>
-<function>XQueryBestCursor</function>
+<xref linkend='XQueryBestCursor' xrefstyle='select: title'/>
can be used to find out what sizes are possible.
There is a standard font for creating cursors, but
Xlib provides functions that you can use to create cursors
@@ -220,7 +220,7 @@ from an arbitrary font or from bitmaps.
<!-- .LP -->
<!-- .sp -->
To create a cursor from the standard cursor font, use
-<function>XCreateFontCursor</function>.
+<xref linkend='XCreateFontCursor' xrefstyle='select: title'/>.
</para>
<para>
#include &lt;X11/cursorfont.h&gt;
@@ -228,7 +228,7 @@ To create a cursor from the standard cursor font, use
<indexterm significance="preferred"><primary>XCreateFontCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatefontcursor'>
+<funcsynopsis id='XCreateFontCursor'>
<funcprototype>
<funcdef>Cursor <function>XCreateFontCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -275,13 +275,13 @@ to use.
The hotspot comes from the information stored in the cursor font.
The initial colors of a cursor are a black foreground and a white
background (see
-<function>XRecolorCursor</function>).
+<xref linkend='XRecolorCursor' xrefstyle='select: title'/>).
For further information about cursor shapes,
see <link linkend="x_font_cursors">appendix B</link>.
</para>
<para>
<!-- .LP -->
-<function>XCreateFontCursor</function>
+<xref linkend='XCreateFontCursor' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -292,11 +292,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To create a cursor from font glyphs, use
-<function>XCreateGlyphCursor</function>.
+<xref linkend='XCreateGlyphCursor' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateGlyphCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreateglyphcursor'>
+<funcsynopsis id='XCreateGlyphCursor'>
<funcprototype>
<funcdef>Cursor <function>XCreateGlyphCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -384,9 +384,9 @@ Specifies the <acronym>RGB</acronym> values for the background of the source.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateGlyphCursor</function>
+<xref linkend='XCreateGlyphCursor' xrefstyle='select: title'/>
function is similar to
-<function>XCreatePixmapCursor</function>
+<xref linkend='XCreatePixmapCursor' xrefstyle='select: title'/>
except that the source and mask bitmaps are obtained from the specified
font glyphs.
The source_char must be a defined glyph in source_font,
@@ -406,7 +406,7 @@ and there is no restriction on the placement of the hotspot relative to the boun
boxes.
If no mask_char is given, all pixels of the source are displayed.
You can free the fonts immediately by calling
-<function>XFreeFont</function>
+<xref linkend='XFreeFont' xrefstyle='select: title'/>
if no further explicit references to them are to be made.
</para>
<para>
@@ -418,7 +418,7 @@ least significant byte.
</para>
<para>
<!-- .LP -->
-<function>XCreateGlyphCursor</function>
+<xref linkend='XCreateGlyphCursor' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadFont</errorname>,
@@ -431,11 +431,11 @@ errors.
<!-- .sp -->
To create a cursor from two bitmaps,
use
-<function>XCreatePixmapCursor</function>.
+<xref linkend='XCreatePixmapCursor' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreatePixmapCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatepixmapcursor'>
+<funcsynopsis id='XCreatePixmapCursor'>
<funcprototype>
<funcdef>Cursor <function>XCreatePixmapCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -527,7 +527,7 @@ Specify the x and y coordinates(Xy.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreatePixmapCursor</function>
+<xref linkend='XCreatePixmapCursor' xrefstyle='select: title'/>
function creates a cursor and returns the cursor ID associated with it.
The foreground and background <acronym>RGB</acronym> values must be specified using
foreground_color and background_color,
@@ -567,7 +567,7 @@ The X server might or might not make a copy of the pixmap.
</para>
<para>
<!-- .LP -->
-<function>XCreatePixmapCursor</function>
+<xref linkend='XCreatePixmapCursor' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -578,11 +578,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To determine useful cursor sizes, use
-<function>XQueryBestCursor</function>.
+<xref linkend='XQueryBestCursor' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryBestCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerybestcursor'>
+<funcsynopsis id='XQueryBestCursor'>
<funcprototype>
<funcdef>Status <function>XQueryBestCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -664,7 +664,7 @@ and height.
<!-- .eM -->
Some displays allow larger cursors than other displays.
The
-<function>XQueryBestCursor</function>
+<xref linkend='XQueryBestCursor' xrefstyle='select: title'/>
function provides a way to find out what size cursors are actually
possible on the display.
<indexterm ><primary>Cursor</primary><secondary>limitations</secondary></indexterm>
@@ -674,7 +674,7 @@ cannot support large ones.
</para>
<para>
<!-- .LP -->
-<function>XQueryBestCursor</function>
+<xref linkend='XQueryBestCursor' xrefstyle='select: title'/>
can generate a
<errorname>BadDrawable</errorname>
error.
@@ -683,11 +683,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To change the color of a given cursor, use
-<function>XRecolorCursor</function>.
+<xref linkend='XRecolorCursor' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRecolorCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrecolorcursor'>
+<funcsynopsis id='XRecolorCursor'>
<funcprototype>
<funcdef><function>XRecolorCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -742,7 +742,7 @@ Specifies the <acronym>RGB</acronym> values for the background of the source.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRecolorCursor</function>
+<xref linkend='XRecolorCursor' xrefstyle='select: title'/>
function changes the color of the specified cursor, and
if the cursor is being displayed on a screen,
the change is visible immediately.
@@ -752,7 +752,7 @@ structures are ignored; only the <acronym>RGB</acronym> values are used.
</para>
<para>
<!-- .LP -->
-<function>XRecolorCursor</function>
+<xref linkend='XRecolorCursor' xrefstyle='select: title'/>
can generate a
<errorname>BadCursor</errorname>
error.
@@ -761,11 +761,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To free (destroy) a given cursor, use
-<function>XFreeCursor</function>.
+<xref linkend='XFreeCursor' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeCursor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreecursor'>
+<funcsynopsis id='XFreeCursor'>
<funcprototype>
<funcdef><function>XFreeCursor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -799,7 +799,7 @@ Specifies the cursor.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeCursor</function>
+<xref linkend='XFreeCursor' xrefstyle='select: title'/>
function deletes the association between the cursor resource ID
and the specified cursor.
The cursor storage is freed when no other resource references it.
@@ -807,7 +807,7 @@ The specified cursor ID should not be referred to again.
</para>
<para>
<!-- .LP -->
-<function>XFreeCursor</function>
+<xref linkend='XFreeCursor' xrefstyle='select: title'/>
can generate a
<errorname>BadCursor</errorname>
error.
diff --git a/libX11/specs/libX11/CH06.xml b/libX11/specs/libX11/CH06.xml
index e4c54fd74..da19f7a09 100644
--- a/libX11/specs/libX11/CH06.xml
+++ b/libX11/specs/libX11/CH06.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="color_management_functions">
+<chapter id='Color_Management_Functions'>
<title>Color Management Functions</title>
<!-- .sp 2 -->
<!-- .nr H1 6 -->
@@ -138,9 +138,9 @@ At any time, there is a set of installed colormaps for a screen.
Windows using one of the installed colormaps display with true colors, and
windows using other colormaps generally display with incorrect colors.
You can control the set of installed colormaps by using
-<function>XInstallColormap</function>
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>
and
-<function>XUninstallColormap</function>.
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -301,9 +301,9 @@ If references to such a color space must be made outside the client
(for example, storing a color specification in a file),
then reference should be made by color space string prefix
(see
-<function>XcmsFormatOfPrefix</function>
+<xref linkend='XcmsFormatOfPrefix' xrefstyle='select: title'/>
and
-<function>XcmsPrefixOfFormat</function>).
+<xref linkend='XcmsPrefixOfFormat' xrefstyle='select: title'/>).
</para>
<para>
<!-- .LP -->
@@ -499,32 +499,32 @@ Color strings are used in the following functions:
<itemizedlist>
<listitem>
<para>
-<function>XAllocNamedColor</function>
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>
</para>
</listitem>
<listitem>
<para>
-<function>XcmsAllocNamedColor</function>
+<xref linkend='XcmsAllocNamedColor' xrefstyle='select: title'/>
</para>
</listitem>
<listitem>
<para>
-<function>XLookupColor</function>
+<xref linkend='XLookupColor' xrefstyle='select: title'/>
</para>
</listitem>
<listitem>
<para>
-<function>XcmsLookupColor</function>
+<xref linkend='XcmsLookupColor' xrefstyle='select: title'/>
</para>
</listitem>
<listitem>
<para>
-<function>XParseColor</function>
+<xref linkend='XParseColor' xrefstyle='select: title'/>
</para>
</listitem>
<listitem>
<para>
-<function>XStoreNamedColor</function>
+<xref linkend='XStoreNamedColor' xrefstyle='select: title'/>
</para>
</listitem>
</itemizedlist>
@@ -811,10 +811,10 @@ or in the CCC indirectly specified by means of the colormap argument.
<para>
<!-- .LP -->
To create a colormap for a screen, use
-<function>XCreateColormap</function>.</para>
+<xref linkend='XCreateColormap' xrefstyle='select: title'/>.</para>
<indexterm significance="preferred"><primary>XCreateColormap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatecolormap'>
+<funcsynopsis id='XCreateColormap'>
<funcprototype>
<funcdef>Colormap <function>XCreateColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -880,7 +880,7 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateColormap</function>
+<xref linkend='XCreateColormap' xrefstyle='select: title'/>
function creates a colormap of the specified visual type for the screen
on which the specified window resides and returns the colormap ID
associated with it.
@@ -930,23 +930,23 @@ For
and
<symbol>PseudoColor</symbol>,
the effect is as if an
-<function>XAllocColorCells</function>
+<xref linkend='XAllocColorCells' xrefstyle='select: title'/>
call returned all pixel values from zero to N - 1,
where N is the colormap entries value in the specified visual.
For
<symbol>DirectColor</symbol>,
the effect is as if an
-<function>XAllocColorPlanes</function>
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>
call returned a pixel value of zero and red_mask, green_mask,
and blue_mask values containing the same bits as the corresponding
masks in the specified visual.
However, in all cases,
none of these entries can be freed by using
-<function>XFreeColors</function>.
+<xref linkend='XFreeColors' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XCreateColormap</function>
+<xref linkend='XCreateColormap' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadMatch</errorname>,
@@ -960,11 +960,11 @@ errors.
<!-- .sp -->
To create a new colormap when the allocation out of a previously
shared colormap has failed because of resource exhaustion, use
-<function>XCopyColormapAndFree</function>.
+<xref linkend='XCopyColormapAndFree' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCopyColormapAndFree</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcopycolormapandfree'>
+<funcsynopsis id='XCopyColormapAndFree'>
<funcprototype>
<funcdef>Colormap <function>XCopyColormapAndFree</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -998,7 +998,7 @@ Specifies the colormap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCopyColormapAndFree</function>
+<xref linkend='XCopyColormapAndFree' xrefstyle='select: title'/>
function creates a colormap of the same visual type and for the same screen
as the specified colormap and returns the new colormap ID.
It also moves all of the client's existing allocation from the specified
@@ -1016,16 +1016,16 @@ If the specified colormap was not created by the client with
<symbol>AllocAll</symbol>,
the allocations to be moved are all those pixels and planes
that have been allocated by the client using
-<function>XAllocColor</function>,
-<function>XAllocNamedColor</function>,
-<function>XAllocColorCells</function>,
+<xref linkend='XAllocColor' xrefstyle='select: title'/>,
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>,
+<xref linkend='XAllocColorCells' xrefstyle='select: title'/>,
or
-<function>XAllocColorPlanes</function>
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>
and that have not been freed since they were allocated.
</para>
<para>
<!-- .LP -->
-<function>XCopyColormapAndFree</function>
+<xref linkend='XCopyColormapAndFree' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1036,11 +1036,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To destroy a colormap, use
-<function>XFreeColormap</function>.
+<xref linkend='XFreeColormap' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XFreeColormap</primary></indexterm>
</para>
<!-- .sM -->
-<funcsynopsis id='xfreecolormap'>
+<funcsynopsis id='XFreeColormap'>
<funcprototype>
<funcdef><function>XFreeColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1076,19 +1076,19 @@ Specifies the colormap (Cm.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeColormap</function>
+<xref linkend='XFreeColormap' xrefstyle='select: title'/>
function deletes the association between the colormap resource ID
and the colormap and frees the colormap storage.
However, this function has no effect on the default colormap for a screen.
If the specified colormap is an installed map for a screen,
it is uninstalled (see
-<function>XUninstallColormap</function>).
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>).
If the specified colormap is defined as the colormap for a window (by
-<function>XCreateWindow</function>,
-<function>XSetWindowColormap</function>,
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>,
+<xref linkend='XSetWindowColormap' xrefstyle='select: title'/>,
or
-<function>XChangeWindowAttributes</function>),
-<function>XFreeColormap</function>
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>),
+<xref linkend='XFreeColormap' xrefstyle='select: title'/>
changes the colormap associated with the window to
<symbol>None</symbol>
and generates a
@@ -1099,7 +1099,7 @@ X does not define the colors displayed for a window with a colormap of
</para>
<para>
<!-- .LP -->
-<function>XFreeColormap</function>
+<xref linkend='XFreeColormap' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -1114,12 +1114,12 @@ error.
<!-- .LP -->
<!-- .sp -->
To map a color name to an <acronym>RGB</acronym> value, use
-<function>XLookupColor</function>.
+<xref linkend='XLookupColor' xrefstyle='select: title'/>.
<indexterm><primary>Color</primary><secondary>naming</secondary></indexterm>
<indexterm significance="preferred"><primary>XLookupColor</primary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xlookupcolor'>
+<funcsynopsis id='XLookupColor'>
<funcprototype>
<funcdef>Status <function>XLookupColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1187,7 +1187,7 @@ Returns the closest <acronym>RGB</acronym> values provided by the hardware.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLookupColor</function>
+<xref linkend='XLookupColor' xrefstyle='select: title'/>
function looks up the string name of a color with respect to the screen
associated with the specified colormap.
It returns both the exact color values and
@@ -1196,13 +1196,13 @@ with respect to the visual type of the specified colormap.
If the color name is not in the Host Portable Character Encoding,
the result is implementation-dependent.
Use of uppercase or lowercase does not matter.
-<function>XLookupColor</function>
+<xref linkend='XLookupColor' xrefstyle='select: title'/>
returns nonzero if the name is resolved;
otherwise, it returns zero.
</para>
<para>
<!-- .LP -->
-<function>XLookupColor</function>
+<xref linkend='XLookupColor' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -1211,12 +1211,12 @@ error.
<!-- .LP -->
<!-- .sp -->
To map a color name to the exact <acronym>RGB</acronym> value, use
-<function>XParseColor</function>.
+<xref linkend='XParseColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>naming</secondary></indexterm>
<indexterm significance="preferred"><primary>XParseColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xparsecolor'>
+<funcsynopsis id='XParseColor'>
<funcprototype>
<funcdef>Status <function>XParseColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1279,20 +1279,20 @@ flags.
<!-- .LP -->
<!-- .eM -->
The
-<function>XParseColor</function>
+<xref linkend='XParseColor' xrefstyle='select: title'/>
function looks up the string name of a color with respect to the screen
associated with the specified colormap.
It returns the exact color value.
If the color name is not in the Host Portable Character Encoding,
the result is implementation-dependent.
Use of uppercase or lowercase does not matter.
-<function>XParseColor</function>
+<xref linkend='XParseColor' xrefstyle='select: title'/>
returns nonzero if the name is resolved;
otherwise, it returns zero.
</para>
<para>
<!-- .LP -->
-<function>XParseColor</function>
+<xref linkend='XParseColor' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -1301,12 +1301,12 @@ error.
<!-- .LP -->
<!-- .sp -->
To map a color name to a value in an arbitrary color space, use
-<function>XcmsLookupColor</function>.
+<xref linkend='XcmsLookupColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>naming</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsLookupColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmslookupcolor'>
+<funcsynopsis id='XcmsLookupColor'>
<funcprototype>
<funcdef>Status <function>XcmsLookupColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1398,7 +1398,7 @@ to store the color in the database.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsLookupColor</function>
+<xref linkend='XcmsLookupColor' xrefstyle='select: title'/>
function looks up the string name of a color with respect to the screen
associated with the specified colormap.
It returns both the exact color values and
@@ -1408,7 +1408,7 @@ The values are returned in the format specified by result_format.
If the color name is not in the Host Portable Character Encoding,
the result is implementation-dependent.
Use of uppercase or lowercase does not matter.
-<function>XcmsLookupColor</function>
+<xref linkend='XcmsLookupColor' xrefstyle='select: title'/>
returns
<symbol>XcmsSuccess</symbol>
or
@@ -1455,14 +1455,14 @@ times, the server counts each such allocation, not just the first one.
<!-- .LP -->
<!-- .sp -->
To allocate a read-only color cell with an <acronym>RGB</acronym> value, use
-<function>XAllocColor</function>.
+<xref linkend='XAllocColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Allocation</primary><secondary>read-only colormap cells</secondary></indexterm>
<indexterm><primary>Read-only colormap cells</primary><secondary>allocating</secondary></indexterm>
<indexterm><primary>Color</primary><secondary>allocation</secondary></indexterm>
<indexterm significance="preferred"><primary>XAllocColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xalloccolor'>
+<funcsynopsis id='XAllocColor'>
<funcprototype>
<funcdef>Status <function>XAllocColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1508,16 +1508,16 @@ Specifies and returns the values actually used in the colormap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
function allocates a read-only colormap entry corresponding to the closest
<acronym>RGB</acronym> value supported by the hardware.
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
returns the pixel value of the color closest to the specified
<acronym>RGB</acronym> elements supported by the hardware
and returns the <acronym>RGB</acronym> value actually used.
The corresponding colormap cell is read-only.
In addition,
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
returns nonzero if it succeeded or zero if it failed.
<indexterm><primary>Color map</primary></indexterm>
<indexterm><primary>Color</primary><secondary>allocation</secondary></indexterm>
@@ -1526,14 +1526,14 @@ returns nonzero if it succeeded or zero if it failed.
Multiple clients that request the same effective <acronym>RGB</acronym> value can be assigned
the same read-only entry, thus allowing entries to be shared.
When the last client deallocates a shared cell, it is deallocated.
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
does not use or affect the flags in the
<structname>XColor</structname>
structure.
</para>
<para>
<!-- .LP -->
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -1545,14 +1545,14 @@ delim %%
<!-- .LP -->
<!-- .sp -->
To allocate a read-only color cell with a color in arbitrary format, use
-<function>XcmsAllocColor</function>.
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Allocation</primary><secondary>read-only colormap cells</secondary></indexterm>
<indexterm><primary>Read-only colormap cells</primary><secondary>allocating</secondary></indexterm>
<indexterm><primary>Color</primary><secondary>allocation</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsAllocColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsalloccolor'>
+<funcsynopsis id='XcmsAllocColor'>
<funcprototype>
<funcdef>Status <function>XcmsAllocColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1609,25 +1609,25 @@ Specifies the color format for the returned color specification.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsAllocColor</function>
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>
function is similar to
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
except the color can be specified in any format.
The
-<function>XcmsAllocColor</function>
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>
function ultimately calls
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
to allocate a read-only color cell (colormap entry) with the specified color.
-<function>XcmsAllocColor</function>
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>
first converts the color specified
to an <acronym>RGB</acronym> value and then passes this to
-<function>XAllocColor</function>.
-<function>XcmsAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>.
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>
returns the pixel value of the color cell and the color specification
actually allocated.
This returned color specification is the result of converting the <acronym>RGB</acronym> value
returned by
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
into the format specified with the result_format argument.
If there is no interest in a returned color specification,
unnecessary computation can be bypassed if result_format is set to
@@ -1639,7 +1639,7 @@ the color_in_out color specification is left unchanged.
</para>
<para>
<!-- .LP -->
-<function>XcmsAllocColor</function>
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -1649,7 +1649,7 @@ error.
<!-- .sp -->
To allocate a read-only color cell using a color name and return the closest
color supported by the hardware in <acronym>RGB</acronym> format, use
-<function>XAllocNamedColor</function>.
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Allocation</primary><secondary>read-only colormap cells</secondary></indexterm>
<indexterm><primary>Read-only colormap cells</primary><secondary>allocating</secondary></indexterm>
@@ -1657,7 +1657,7 @@ color supported by the hardware in <acronym>RGB</acronym> format, use
<indexterm><primary>Color</primary><secondary>allocation</secondary></indexterm>
<indexterm significance="preferred"><primary>XAllocNamedColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xallocnamedcolor'>
+<funcsynopsis id='XAllocNamedColor'>
<funcprototype>
<funcdef>Status <function>XAllocNamedColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1725,7 +1725,7 @@ Returns the exact <acronym>RGB</acronym> values.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAllocNamedColor</function>
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>
function looks up the named color with respect to the screen that is
associated with the specified colormap.
It returns both the exact database definition and
@@ -1738,13 +1738,13 @@ Use of uppercase or lowercase does not matter.
If screen_def_return and exact_def_return
point to the same structure, the pixel field will be set correctly,
but the color values are undefined.
-<function>XAllocNamedColor</function>
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>
returns nonzero if a cell is allocated;
otherwise, it returns zero.
</para>
<para>
<!-- .LP -->
-<function>XAllocNamedColor</function>
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -1754,7 +1754,7 @@ error.
<!-- .sp -->
To allocate a read-only color cell using a color name and return the closest
color supported by the hardware in an arbitrary format, use
-<function>XcmsAllocNamedColor</function>.
+<xref linkend='XcmsAllocNamedColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Allocation</primary><secondary>read-only colormap cells</secondary></indexterm>
<indexterm><primary>Read-only colormap cells</primary><secondary>allocating</secondary></indexterm>
@@ -1762,7 +1762,7 @@ color supported by the hardware in an arbitrary format, use
<indexterm><primary>Color</primary><secondary>allocation</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsAllocNamedColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsallocnamedcolor'>
+<funcsynopsis id='XcmsAllocNamedColor'>
<funcprototype>
<funcdef>Status <function>XcmsAllocNamedColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1855,22 +1855,22 @@ to store the color in the database.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsAllocNamedColor</function>
+<xref linkend='XcmsAllocNamedColor' xrefstyle='select: title'/>
function is similar to
-<function>XAllocNamedColor</function>
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>
except that the color returned can be in any format specified.
This function
ultimately calls
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
to allocate a read-only color cell with
the color specified by a color string.
The color string is parsed into an
<structname>XcmsColor</structname>
structure (see
-<function>XcmsLookupColor</function>),
+<xref linkend='XcmsLookupColor' xrefstyle='select: title'/>),
converted
to an <acronym>RGB</acronym> value, and finally passed to
-<function>XAllocColor</function>.
+<xref linkend='XAllocColor' xrefstyle='select: title'/>.
If the color name is not in the Host Portable Character Encoding,
the result is implementation-dependent.
Use of uppercase or lowercase does not matter.
@@ -1882,7 +1882,7 @@ of parsing (exact specification) and the actual color specification
stored (screen specification).
This screen specification is the result of converting the <acronym>RGB</acronym> value
returned by
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
into the format specified in result_format.
If there is no interest in a returned color specification,
unnecessary computation can be bypassed if result_format is set to
@@ -1893,7 +1893,7 @@ but the color values are undefined.
</para>
<para>
<!-- .LP -->
-<function>XcmsAllocNamedColor</function>
+<xref linkend='XcmsAllocNamedColor' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -1904,14 +1904,14 @@ error.
To allocate read/write color cell and color plane combinations for a
<symbol>PseudoColor</symbol>
model, use
-<function>XAllocColorCells</function>.
+<xref linkend='XAllocColorCells' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Read/write colormap cells</primary><secondary>allocating</secondary></indexterm>
<indexterm><primary>Allocation</primary><secondary>read/write colormap cells</secondary></indexterm>
<indexterm><primary>Color</primary><secondary>allocation</secondary></indexterm>
<indexterm significance="preferred"><primary>XAllocColorCells</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xalloccolorcells'>
+<funcsynopsis id='XAllocColorCells'>
<funcprototype>
<funcdef>Status <function>XAllocColorCells</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2004,7 +2004,7 @@ pixels_return array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAllocColorCells</function>
+<xref linkend='XAllocColorCells' xrefstyle='select: title'/>
function allocates read/write color cells.
The number of colors must be positive and the number of planes nonnegative,
or a
@@ -2040,12 +2040,12 @@ pixel subfield) for
<symbol>DirectColor</symbol>.
The <acronym>RGB</acronym> values of the allocated
entries are undefined.
-<function>XAllocColorCells</function>
+<xref linkend='XAllocColorCells' xrefstyle='select: title'/>
returns nonzero if it succeeded or zero if it failed.
</para>
<para>
<!-- .LP -->
-<function>XAllocColorCells</function>
+<xref linkend='XAllocColorCells' xrefstyle='select: title'/>
can generate
<errorname>BadColor</errorname>
and
@@ -2058,14 +2058,14 @@ errors.
To allocate read/write color resources for a
<symbol>DirectColor</symbol>
model, use
-<function>XAllocColorPlanes</function>.
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Read/write colormap planes</primary><secondary>allocating</secondary></indexterm>
<indexterm><primary>Allocation</primary><secondary>read/write colormap planes</secondary></indexterm>
<indexterm><primary>Color</primary><secondary>allocation</secondary></indexterm>
<indexterm significance="preferred"><primary>XAllocColorPlanes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xalloccolorplanes'>
+<funcsynopsis id='XAllocColorPlanes'>
<funcprototype>
<funcdef>Status <function>XAllocColorPlanes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2116,7 +2116,7 @@ Specifies a Boolean value that indicates whether the planes must be contiguous.
<listitem>
<para>
Returns an array of pixel values.
-<function>XAllocColorPlanes</function>
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>
returns the pixel values in this array.
</para>
</listitem>
@@ -2239,18 +2239,18 @@ This is true even for
<symbol>PseudoColor</symbol>.
When the colormap entry of a pixel
value is changed (using
-<function>XStoreColors</function>,
-<function>XStoreColor</function>,
+<xref linkend='XStoreColors' xrefstyle='select: title'/>,
+<xref linkend='XStoreColor' xrefstyle='select: title'/>,
or
-<function>XStoreNamedColor</function>),
+<xref linkend='XStoreNamedColor' xrefstyle='select: title'/>),
the pixel is decomposed according to the masks,
and the corresponding independent entries are updated.
-<function>XAllocColorPlanes</function>
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>
returns nonzero if it succeeded or zero if it failed.
</para>
<para>
<!-- .LP -->
-<function>XAllocColorPlanes</function>
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>
can generate
<errorname>BadColor</errorname>
and
@@ -2262,12 +2262,12 @@ errors.
<!-- .sp -->
<indexterm><primary>Freeing</primary><secondary>colors</secondary></indexterm>
To free colormap cells, use
-<function>XFreeColors</function>.
+<xref linkend='XFreeColors' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XFreeColors</primary></indexterm>
<indexterm><primary>Color</primary><secondary>deallocation</secondary></indexterm>
<!-- .sM -->
</para>
-<funcsynopsis id='xfreecolors'>
+<funcsynopsis id='XFreeColors'>
<funcprototype>
<funcdef><function>XFreeColors</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2336,7 +2336,7 @@ Specifies the planes you want to free.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeColors</function>
+<xref linkend='XFreeColors' xrefstyle='select: title'/>
function frees the cells represented by pixels whose values are in the
pixels array.
The planes argument should not have any bits set to 1 in common with any of the
@@ -2349,14 +2349,14 @@ were allocated by the client (using
<indexterm><primary>XAllocNamedColor</primary></indexterm>
<indexterm><primary>XAllocColorCells</primary></indexterm>
<indexterm><primary>XAllocColorPlanes</primary></indexterm>
-<function>XAllocColor</function>,
-<function>XAllocNamedColor</function>,
-<function>XAllocColorCells</function>,
+<xref linkend='XAllocColor' xrefstyle='select: title'/>,
+<xref linkend='XAllocNamedColor' xrefstyle='select: title'/>,
+<xref linkend='XAllocColorCells' xrefstyle='select: title'/>,
and
-<function>XAllocColorPlanes</function>).
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>).
Note that freeing an
individual pixel obtained from
-<function>XAllocColorPlanes</function>
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>
may not actually allow
it to be reused until all of its related pixels are also freed.
Similarly,
@@ -2376,7 +2376,7 @@ client (that is, is unallocated or is only allocated by another client)
or if the colormap was created with all entries writable (by passing
<symbol>AllocAll</symbol>
to
-<function>XCreateColormap</function>),
+<xref linkend='XCreateColormap' xrefstyle='select: title'/>),
a
<errorname>BadAccess</errorname>
error results.
@@ -2385,7 +2385,7 @@ the one that gets reported is arbitrary.
</para>
<para>
<!-- .LP -->
-<function>XFreeColors</function>
+<xref linkend='XFreeColors' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadColor</errorname>,
@@ -2403,12 +2403,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To store an <acronym>RGB</acronym> value in a single colormap cell, use
-<function>XStoreColor</function>.
+<xref linkend='XStoreColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>storing</secondary></indexterm>
<indexterm significance="preferred"><primary>XStoreColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstorecolor'>
+<funcsynopsis id='XStoreColor'>
<funcprototype>
<funcdef><function>XStoreColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2454,7 +2454,7 @@ Specifies the pixel and <acronym>RGB</acronym> values.
<!-- .LP -->
<!-- .eM -->
The
-<function>XStoreColor</function>
+<xref linkend='XStoreColor' xrefstyle='select: title'/>
function changes the colormap entry of the pixel value specified in the
pixel member of the
<structname>XColor</structname>
@@ -2468,7 +2468,7 @@ If a specified pixel is not a valid index into the colormap,
a
<errorname>BadValue</errorname>
error results.
-<function>XStoreColor</function>
+<xref linkend='XStoreColor' xrefstyle='select: title'/>
also changes the red, green, and/or blue color components.
You specify which color components are to be changed by setting
<symbol>DoRed</symbol>,
@@ -2483,7 +2483,7 @@ the changes are visible immediately.
</para>
<para>
<!-- .LP -->
-<function>XStoreColor</function>
+<xref linkend='XStoreColor' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadColor</errorname>,
@@ -2495,12 +2495,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To store multiple <acronym>RGB</acronym> values in multiple colormap cells, use
-<function>XStoreColors</function>.
+<xref linkend='XStoreColors' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>storing</secondary></indexterm>
<indexterm significance="preferred"><primary>XStoreColors</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstorecolors'>
+<funcsynopsis id='XStoreColors'>
<funcprototype>
<funcdef><function>XStoreColors</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2560,7 +2560,7 @@ structures in the color definition array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XStoreColors</function>
+<xref linkend='XStoreColors' xrefstyle='select: title'/>
function changes the colormap entries of the pixel values
specified in the pixel members of the
<structname>XColor</structname>
@@ -2575,7 +2575,7 @@ in the flags member of the
structures.
If the colormap is an installed map for its screen, the
changes are visible immediately.
-<function>XStoreColors</function>
+<xref linkend='XStoreColors' xrefstyle='select: title'/>
changes the specified pixels if they are allocated writable in the colormap
by any client, even if one or more pixels generates an error.
If a specified pixel is not a valid index into the colormap, a
@@ -2589,7 +2589,7 @@ the one that gets reported is arbitrary.
</para>
<para>
<!-- .LP -->
-<function>XStoreColors</function>
+<xref linkend='XStoreColors' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadColor</errorname>,
@@ -2601,12 +2601,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To store a color of arbitrary format in a single colormap cell, use
-<function>XcmsStoreColor</function>.
+<xref linkend='XcmsStoreColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>storing</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsStoreColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsstorecolor'>
+<funcsynopsis id='XcmsStoreColor'>
<funcprototype>
<funcdef>Status <function>XcmsStoreColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2655,7 +2655,7 @@ structure remain unchanged on return.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsStoreColor</function>
+<xref linkend='XcmsStoreColor' xrefstyle='select: title'/>
function converts the color specified in the
<structname>XcmsColor</structname>
structure into <acronym>RGB</acronym> values.
@@ -2667,7 +2667,7 @@ structure, whose three flags
and
<symbol>DoBlue</symbol>)
are set, in a call to
-<function>XStoreColor</function>
+<xref linkend='XStoreColor' xrefstyle='select: title'/>
to change the color cell specified by the pixel member of the
<structname>XcmsColor</structname>
structure.
@@ -2685,22 +2685,22 @@ the changes are visible immediately.
<para>
<!-- .LP -->
Note that
-<function>XStoreColor</function>
+<xref linkend='XStoreColor' xrefstyle='select: title'/>
has no return value; therefore, an
<symbol>XcmsSuccess</symbol>
return value from this function indicates that the conversion
to <acronym>RGB</acronym> succeeded and the call to
-<function>XStoreColor</function>
+<xref linkend='XStoreColor' xrefstyle='select: title'/>
was made.
To obtain the actual color stored, use
-<function>XcmsQueryColor</function>.
+<xref linkend='XcmsQueryColor' xrefstyle='select: title'/>.
Because of the screen's hardware limitations or gamut compression,
the color stored in the colormap may not be identical
to the color specified.
</para>
<para>
<!-- .LP -->
-<function>XcmsStoreColor</function>
+<xref linkend='XcmsStoreColor' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadColor</errorname>,
@@ -2712,12 +2712,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To store multiple colors of arbitrary format in multiple colormap cells, use
-<function>XcmsStoreColors</function>.
+<xref linkend='XcmsStoreColors' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>storing</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsStoreColors</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsstorecolors'>
+<funcsynopsis id='XcmsStoreColors'>
<funcprototype>
<funcdef>Status <function>XcmsStoreColors</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2798,7 +2798,7 @@ Pass NULL if the compression status is not useful.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsStoreColors</function>
+<xref linkend='XcmsStoreColors' xrefstyle='select: title'/>
function converts the colors specified in the array of
<structname>XcmsColor</structname>
structures into <acronym>RGB</acronym> values and then uses these <acronym>RGB</acronym> specifications in
@@ -2809,7 +2809,7 @@ structures, whose three flags
and
<symbol>DoBlue</symbol>)
are set, in a call to
-<function>XStoreColors</function>
+<xref linkend='XStoreColors' xrefstyle='select: title'/>
to change the color cells specified by the pixel member of the corresponding
<structname>XcmsColor</structname>
structure.
@@ -2829,22 +2829,22 @@ the changes are visible immediately.
<para>
<!-- .LP -->
Note that
-<function>XStoreColors</function>
+<xref linkend='XStoreColors' xrefstyle='select: title'/>
has no return value; therefore, an
<symbol>XcmsSuccess</symbol>
return value from this function indicates that conversions
to <acronym>RGB</acronym> succeeded and the call to
-<function>XStoreColors</function>
+<xref linkend='XStoreColors' xrefstyle='select: title'/>
was made.
To obtain the actual colors stored, use
-<function>XcmsQueryColors</function>.
+<xref linkend='XcmsQueryColors' xrefstyle='select: title'/>.
Because of the screen's hardware limitations or gamut compression,
the colors stored in the colormap may not be identical
to the colors specified.
</para>
<para>
<!-- .LP -->
-<function>XcmsStoreColors</function>
+<xref linkend='XcmsStoreColors' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadColor</errorname>,
@@ -2856,13 +2856,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To store a color specified by name in a single colormap cell, use
-<function>XStoreNamedColor</function>.
+<xref linkend='XStoreNamedColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>storing</secondary></indexterm>
<indexterm><primary>Color</primary><secondary>naming</secondary></indexterm>
<indexterm significance="preferred"><primary>XStoreNamedColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstorenamedcolor'>
+<funcsynopsis id='XStoreNamedColor'>
<funcprototype>
<funcdef><function>XStoreNamedColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2930,7 +2930,7 @@ Specifies which red, green, and blue components are set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XStoreNamedColor</function>
+<xref linkend='XStoreNamedColor' xrefstyle='select: title'/>
function looks up the named color with respect to the screen associated with
the colormap and stores the result in the specified colormap.
The pixel argument determines the entry in the colormap.
@@ -2954,7 +2954,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XStoreNamedColor</function>
+<xref linkend='XStoreNamedColor' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadColor</errorname>,
@@ -2966,9 +2966,9 @@ errors.
<para>
<!-- .LP -->
The
-<function>XQueryColor</function>
+<xref linkend='XQueryColor' xrefstyle='select: title'/>
and
-<function>XQueryColors</function>
+<xref linkend='XQueryColors' xrefstyle='select: title'/>
functions take pixel values in the pixel member of
<structname>XColor</structname>
structures and store in the structures the <acronym>RGB</acronym> values for those
@@ -2987,12 +2987,12 @@ the one that gets reported is arbitrary.
<!-- .LP -->
<!-- .sp -->
To query the <acronym>RGB</acronym> value of a single colormap cell, use
-<function>XQueryColor</function>.
+<xref linkend='XQueryColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>querying</secondary></indexterm>
<indexterm significance="preferred"><primary>XQueryColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerycolor'>
+<funcsynopsis id='XQueryColor'>
<funcprototype>
<funcdef><function>XQueryColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3038,7 +3038,7 @@ Specifies and returns the <acronym>RGB</acronym> values for the pixel specified
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryColor</function>
+<xref linkend='XQueryColor' xrefstyle='select: title'/>
function returns the current <acronym>RGB</acronym> value for the pixel in the
<structname>XColor</structname>
structure and sets the
@@ -3050,7 +3050,7 @@ flags.
</para>
<para>
<!-- .LP -->
-<function>XQueryColor</function>
+<xref linkend='XQueryColor' xrefstyle='select: title'/>
can generate
<errorname>BadColor</errorname>
and
@@ -3061,12 +3061,12 @@ errors.
<!-- .LP -->
<!-- .sp -->
To query the <acronym>RGB</acronym> values of multiple colormap cells, use
-<function>XQueryColors</function>.
+<xref linkend='XQueryColors' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>querying</secondary></indexterm>
<indexterm significance="preferred"><primary>XQueryColors</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerycolors'>
+<funcsynopsis id='XQueryColors'>
<funcprototype>
<funcdef><function>XQueryColors</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3127,7 +3127,7 @@ structures in the color definition array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryColors</function>
+<xref linkend='XQueryColors' xrefstyle='select: title'/>
function returns the <acronym>RGB</acronym> value for each pixel in each
<structname>XColor</structname>
structure and sets the
@@ -3140,7 +3140,7 @@ flags in each structure.
</para>
<para>
<!-- .LP -->
-<function>XQueryColors</function>
+<xref linkend='XQueryColors' xrefstyle='select: title'/>
can generate
<errorname>BadColor</errorname>
and
@@ -3151,12 +3151,12 @@ errors.
<para>
<!-- .LP -->
To query the color of a single colormap cell in an arbitrary format, use
-<function>XcmsQueryColor</function>.
+<xref linkend='XcmsQueryColor' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>querying</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsQueryColor</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsquerycolor'>
+<funcsynopsis id='XcmsQueryColor'>
<funcprototype>
<funcdef>Status <function>XcmsQueryColor</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3216,7 +3216,7 @@ Specifies the color format for the returned color specification.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsQueryColor</function>
+<xref linkend='XcmsQueryColor' xrefstyle='select: title'/>
function obtains the <acronym>RGB</acronym> value
for the pixel value in the pixel member of the specified
<structname>XcmsColor</structname>
@@ -3229,7 +3229,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XcmsQueryColor</function>
+<xref linkend='XcmsQueryColor' xrefstyle='select: title'/>
can generate
<errorname>BadColor</errorname>
and
@@ -3240,12 +3240,12 @@ errors.
<para>
<!-- .LP -->
To query the color of multiple colormap cells in an arbitrary format, use
-<function>XcmsQueryColors</function>.
+<xref linkend='XcmsQueryColors' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color</primary><secondary>querying</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsQueryColors</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsquerycolors'>
+<funcsynopsis id='XcmsQueryColors'>
<funcprototype>
<funcdef>Status <function>XcmsQueryColors</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3318,7 +3318,7 @@ Specifies the color format for the returned color specification.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsQueryColors</function>
+<xref linkend='XcmsQueryColors' xrefstyle='select: title'/>
function obtains the <acronym>RGB</acronym> values
for pixel values in the pixel members of
<structname>XcmsColor</structname>
@@ -3333,7 +3333,7 @@ the one that gets reported is arbitrary.
</para>
<para>
<!-- .LP -->
-<function>XcmsQueryColors</function>
+<xref linkend='XcmsQueryColors' xrefstyle='select: title'/>
can generate
<errorname>BadColor</errorname>
and
@@ -3397,14 +3397,14 @@ There is a default CCC associated with each screen.
<!-- .LP -->
<!-- .sp -->
To obtain the CCC associated with a colormap, use
-<function>XcmsCCCOfColormap</function>.
+<xref linkend='XcmsCCCOfColormap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsCCCOfColormap</primary></indexterm>
<indexterm><primary>Colormap</primary><secondary>CCC of</secondary></indexterm>
<indexterm><primary>CCC</primary><secondary>of colormap</secondary></indexterm>
<indexterm><primary>Color Conversion Context</primary><secondary>of colormap</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscccofcolormap'>
+<funcsynopsis id='XcmsCCCOfColormap'>
<funcprototype>
<funcdef>XcmsCCC <function>XcmsCCCOfColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3439,12 +3439,12 @@ Specifies the colormap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCCCOfColormap</function>
+<xref linkend='XcmsCCCOfColormap' xrefstyle='select: title'/>
function returns the CCC associated with the specified colormap.
Once obtained,
the CCC attributes can be queried or modified.
Unless the CCC associated with the specified colormap is changed with
-<function>XcmsSetCCCOfColormap</function>,
+<xref linkend='XcmsSetCCCOfColormap' xrefstyle='select: title'/>,
this CCC is used when the specified colormap is used as an argument
to color functions.
<!-- .sp -->
@@ -3452,14 +3452,14 @@ to color functions.
<para>
<!-- .LP -->
To change the CCC associated with a colormap, use
-<function>XcmsSetCCCOfColormap</function>.
+<xref linkend='XcmsSetCCCOfColormap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsSetCCCOfColormap</primary></indexterm>
<indexterm><primary>Colormap</primary><secondary>CCC of</secondary></indexterm>
<indexterm><primary>CCC</primary><secondary>of colormap</secondary></indexterm>
<indexterm><primary>Color Conversion Context</primary><secondary>of colormap</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmssetcccofcolormap'>
+<funcsynopsis id='XcmsSetCCCOfColormap'>
<funcprototype>
<funcdef>XcmsCCC <function>XcmsSetCCCOfColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3505,12 +3505,12 @@ Specifies the CCC.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsSetCCCOfColormap</function>
+<xref linkend='XcmsSetCCCOfColormap' xrefstyle='select: title'/>
function changes the CCC associated with the specified colormap.
It returns the CCC previously associated with the colormap.
If they are not used again in the application,
CCCs should be freed by calling
-<function>XcmsFreeCCC</function>.
+<xref linkend='XcmsFreeCCC' xrefstyle='select: title'/>.
Several colormaps may share the same CCC without restriction; this
includes the CCCs generated by Xlib with each colormap. Xlib, however,
creates a new CCC with each new colormap.
@@ -3533,13 +3533,13 @@ A default CCC is associated with each screen.
<para>
<!-- .LP -->
To obtain the default CCC for a screen, use
-<function>XcmsDefaultCCC</function>.
+<xref linkend='XcmsDefaultCCC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsDefaultCCC</primary></indexterm>
<indexterm><primary>Color Conversion Context</primary><secondary>default</secondary></indexterm>
<indexterm><primary>CCC</primary><secondary>default</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsdefaultccc'>
+<funcsynopsis id='XcmsDefaultCCC'>
<funcprototype>
<funcdef>XcmsCCC <function>XcmsDefaultCCC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3574,7 +3574,7 @@ Specifies the appropriate screen number on the host server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsDefaultCCC</function>
+<xref linkend='XcmsDefaultCCC' xrefstyle='select: title'/>
function returns the default CCC for the specified screen.
Its visual is the default visual of the screen.
Its initial gamut compression and white point
@@ -3601,14 +3601,14 @@ can return.
<indexterm significance="preferred"><primary>XcmsDisplayOfCCC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='displayofccc'>
+<funcsynopsis id='DisplayOfCCC'>
<funcprototype>
<funcdef><function>DisplayOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='xcmsdisplayofccc'>
+<funcsynopsis id='XcmsDisplayOfCCC'>
<funcprototype>
<funcdef>Display *<function>XcmsDisplayOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3638,14 +3638,14 @@ Both return the display associated with the specified CCC.
<indexterm significance="preferred"><primary>VisualOfCCC</primary></indexterm>
<indexterm significance="preferred"><primary>XcmsVisualOfCCC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='visualofccc'>
+<funcsynopsis id='VisualOfCCC'>
<funcprototype>
<funcdef><function>VisualOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='xcmsvisualofccc'>
+<funcsynopsis id='XcmsVisualOfCCC'>
<funcprototype>
<funcdef>Visual *<function>XcmsVisualOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3675,14 +3675,14 @@ Both return the visual associated with the specified CCC.
<indexterm significance="preferred"><primary>ScreenNumberOfCCC</primary></indexterm>
<indexterm significance="preferred"><primary>XcmsScreenNumberOfCCC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='screennumberofccc'>
+<funcsynopsis id='ScreenNumberOfCCC'>
<funcprototype>
<funcdef><function>ScreenNumberOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='xcmsscreennumberofccc'>
+<funcsynopsis id='XcmsScreenNumberOfCCC'>
<funcprototype>
<funcdef>int <function>XcmsScreenNumberOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3712,13 +3712,13 @@ Both return the number of the screen associated with the specified CCC.
<indexterm significance="preferred"><primary>ScreenWhitePointOfCCC</primary></indexterm>
<indexterm significance="preferred"><primary>XcmsScreenWhitePointOfCCC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='screenwhitepointofccc'>
+<funcsynopsis id='ScreenWhitePointOfCCC'>
<funcprototype>
<funcdef><function>ScreenWhitePointOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='xcmsscreenwhitepointofccc'>
+<funcsynopsis id='XcmsScreenWhitePointOfCCC'>
<funcprototype>
<funcdef>XcmsColor <function>XcmsScreenWhitePointOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3748,14 +3748,14 @@ Both return the white point of the screen associated with the specified CCC.
<indexterm significance="preferred"><primary>ClientWhitePointOfCCC</primary></indexterm>
<indexterm significance="preferred"><primary>XcmsClientWhitePointOfCCC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='clientwhitepointofccc'>
+<funcsynopsis id='ClientWhitePointOfCCC'>
<funcprototype>
<funcdef> <function>ClientWhitePointOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
</funcprototype>
</funcsynopsis>
-<funcsynopsis id='xcmsclientwhitepointofccc'>
+<funcsynopsis id='XcmsClientWhitePointOfCCC'>
<funcprototype>
<funcdef>XcmsColor *<function>XcmsClientWhitePointOfCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3790,12 +3790,12 @@ Both return the Client White Point of the specified CCC.
<para>
<!-- .LP -->
To set the Client White Point in the CCC, use
-<function>XcmsSetWhitePoint</function>.
+<xref linkend='XcmsSetWhitePoint' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsSetWhitePoint</primary></indexterm>
<indexterm><primary>Client White Point</primary><secondary>of Color Conversion Context</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmssetwhitepoint'>
+<funcsynopsis id='XcmsSetWhitePoint'>
<funcprototype>
<funcdef>Status <function>XcmsSetWhitePoint</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3831,7 +3831,7 @@ Specifies the new Client White Point.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsSetWhitePoint</function>
+<xref linkend='XcmsSetWhitePoint' xrefstyle='select: title'/>
function changes the Client White Point in the specified CCC.
Note that the pixel member is ignored
and that the color specification is left unchanged upon return.
@@ -3859,14 +3859,14 @@ otherwise, it returns zero.
<!-- .LP -->
To set the gamut compression procedure and corresponding client data
in a specified CCC, use
-<function>XcmsSetCompressionProc</function>.
+<xref linkend='XcmsSetCompressionProc' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsSetCompressionProc</primary></indexterm>
<indexterm><primary>Gamut compression</primary><secondary>setting in Color Conversion Context</secondary></indexterm>
<indexterm><primary>Gamut compression</primary><secondary>procedure</secondary></indexterm>
<indexterm><primary>Gamut compression</primary><secondary>client data</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmssetcompressionproc'>
+<funcsynopsis id='XcmsSetCompressionProc'>
<funcprototype>
<funcdef>XcmsCompressionProc <function>XcmsSetCompressionProc</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3919,7 +3919,7 @@ Specifies client data for gamut compression procedure or NULL.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsSetCompressionProc</function>
+<xref linkend='XcmsSetCompressionProc' xrefstyle='select: title'/>
function first sets the gamut compression procedure and client data
in the specified CCC with the newly specified procedure and client data
and then returns the old procedure.
@@ -3929,13 +3929,13 @@ and then returns the old procedure.
<!-- .LP -->
To set the white point adjustment procedure and corresponding client data
in a specified CCC, use
-<function>XcmsSetWhiteAdjustProc</function>.
+<xref linkend='XcmsSetWhiteAdjustProc' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsSetWhiteAdjustProc</primary></indexterm>
<indexterm><primary>White point adjustment</primary><secondary>setting in Color Conversion Context</secondary></indexterm>
<indexterm><primary>White point adjustment</primary><secondary>procedure</secondary></indexterm>
<indexterm><primary>White point adjustment</primary><secondary>client data</secondary></indexterm>
-<funcsynopsis id='xcmssetwhiteadjustproc'>
+<funcsynopsis id='XcmsSetWhiteAdjustProc'>
<funcprototype>
<funcdef>XcmsWhiteAdjustProc <function>XcmsSetWhiteAdjustProc</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -3982,7 +3982,7 @@ Specifies client data for white point adjustment procedure or NULL.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsSetWhiteAdjustProc</function>
+<xref linkend='XcmsSetWhiteAdjustProc' xrefstyle='select: title'/>
function first sets the white point adjustment procedure and client data
in the specified CCC with the newly specified procedure and client data
and then returns the old procedure.
@@ -3996,23 +3996,23 @@ and then returns the old procedure.
<para>
<!-- .LP -->
You can explicitly create a CCC within your application by calling
-<function>XcmsCreateCCC</function>.
+<xref linkend='XcmsCreateCCC' xrefstyle='select: title'/>.
These created CCCs can then be used by those functions that explicitly
call for a CCC argument.
Old CCCs that will not be used by the application should be freed using
-<function>XcmsFreeCCC</function>.
+<xref linkend='XcmsFreeCCC' xrefstyle='select: title'/>.
<!-- .sp -->
</para>
<para>
<!-- .LP -->
To create a CCC, use
-<function>XcmsCreateCCC</function>.
+<xref linkend='XcmsCreateCCC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsCreateCCC</primary></indexterm>
<indexterm><primary>Color Conversion Context</primary><secondary>creation</secondary></indexterm>
<indexterm><primary>CCC</primary><secondary>creation</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscreateccc'>
+<funcsynopsis id='XcmsCreateCCC'>
<funcprototype>
<funcdef>XcmsCCC <function>XcmsCreateCCC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4126,20 +4126,20 @@ Specifies client data for use with the white point adjustment procedure or NULL.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCreateCCC</function>
+<xref linkend='XcmsCreateCCC' xrefstyle='select: title'/>
function creates a CCC for the specified display, screen, and visual.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To free a CCC, use
-<function>XcmsFreeCCC</function>.
+<xref linkend='XcmsFreeCCC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsFreeCCC</primary></indexterm>
<indexterm><primary>Color Conversion Context</primary><secondary>freeing</secondary></indexterm>
<indexterm><primary>CCC</primary><secondary>freeing</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsfreeccc'>
+<funcsynopsis id='XcmsFreeCCC'>
<funcprototype>
<funcdef>void <function>XcmsFreeCCC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -4163,7 +4163,7 @@ Specifies the CCC.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsFreeCCC</function>
+<xref linkend='XcmsFreeCCC' xrefstyle='select: title'/>
function frees the memory used for the specified CCC.
Note that default CCCs and those currently associated with colormaps
are ignored.
@@ -4180,13 +4180,13 @@ are ignored.
<!-- .sp -->
To convert an array of color specifications in arbitrary color formats
to a single destination format, use
-<function>XcmsConvertColors</function>.
+<xref linkend='XcmsConvertColors' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Color conversion</primary></indexterm>
<indexterm><primary>Color</primary><secondary>conversion</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsConvertColors</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsconvertcolors'>
+<funcsynopsis id='XcmsConvertColors'>
<funcprototype>
<funcdef>Status <function>XcmsConvertColors</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -4267,7 +4267,7 @@ Pass NULL if the compression status is not useful.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsConvertColors</function>
+<xref linkend='XcmsConvertColors' xrefstyle='select: title'/>
function converts the color specifications in the specified array of
<structname>XcmsColor</structname>
structures from their current format to a single target format,
@@ -4330,7 +4330,7 @@ following:
</para>
<indexterm significance="preferred"><primary>XcmsCompressionProc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscompressionproc'>
+<funcsynopsis id='XcmsCompressionProc'>
<funcprototype>
<funcdef>typedef Status<function>(*XcmsCompressionProc</function>)</funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -4466,7 +4466,7 @@ is the Screen White Point.
<para>
If the gamut compression procedure uses a device-independent color space not
initially accessible for use in the color management system, use
-<function>XcmsAddColorSpace</function>
+<xref linkend='XcmsAddColorSpace' xrefstyle='select: title'/>
to ensure that it is added.
</para>
</listitem>
@@ -4518,7 +4518,7 @@ then while maintaining the same Psychometric Hue Angle,
the color will be clipped to the <acronym>CIE</acronym> L*a*b* coordinates of maximum
Psychometric Chroma.
See
-<function>XcmsCIELabQueryMaxC</function>.
+<xref linkend='XcmsCIELabQueryMaxC' xrefstyle='select: title'/>.
No client data is necessary.
</para>
</listitem>
@@ -4567,7 +4567,7 @@ then, while maintaining the same Psychometric Hue Angle,
the color will be clipped to the <acronym>CIE</acronym> L*u*v* coordinates of maximum
Psychometric Chroma.
See
-<function>XcmsCIELuvQueryMaxC</function>.
+<xref linkend='XcmsCIELuvQueryMaxC' xrefstyle='select: title'/>.
No client data is necessary.
</para>
</listitem>
@@ -4657,7 +4657,7 @@ The white point adjustment procedure interface must adhere to the following:
</para>
<indexterm significance="preferred"><primary>XcmsWhiteAdjustProc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmswhiteadjustproc'>
+<funcsynopsis id='XcmsWhiteAdjustProc'>
<funcprototype>
<funcdef>typedef Status <function>(*XcmsWhiteAdjustProc</function>)</funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -4838,7 +4838,7 @@ are <acronym>CIE</acronym> u'v'Y, <acronym>CIE</acronym> XYZ, and <acronym>CIE</
When developing a custom white point adjustment procedure that uses a
device-independent color space not initially accessible for use in the
color management system, use
-<function>XcmsAddColorSpace</function>
+<xref linkend='XcmsAddColorSpace' xrefstyle='select: title'/>
to ensure that it is added.
</para>
<para>
@@ -4846,7 +4846,7 @@ to ensure that it is added.
As an example,
if the CCC specifies a white point adjustment procedure
and if the Client White Point and Screen White Point differ, the
-<function>XcmsAllocColor</function>
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>
function will use the white point adjustment
procedure twice:
</para>
@@ -4873,7 +4873,7 @@ and the adjustment procedure is
During conversion to
<structname>XcmsRGB</structname>,
the call to
-<function>XcmsAllocColor</function>
+<xref linkend='XcmsAllocColor' xrefstyle='select: title'/>
results in the following series of color specification conversions:
<!-- .\" Do these need to be font coded? -->
</para>
@@ -4925,10 +4925,10 @@ to
<para>
<!-- .LP -->
The resulting <acronym>RGB</acronym> specification is passed to
-<function>XAllocColor</function>,
+<xref linkend='XAllocColor' xrefstyle='select: title'/>,
and the <acronym>RGB</acronym>
specification returned by
-<function>XAllocColor</function>
+<xref linkend='XAllocColor' xrefstyle='select: title'/>
is converted back to
<structname>XcmsCIEuvY</structname>
by reversing the color conversion sequence.
@@ -5004,7 +5004,7 @@ The &lt;dimensions&gt; consists of a letter or letters
that identify the dimensions of the color space
that are not fixed.
For example,
-<function>XcmsTekHVCQueryMaxC</function>
+<xref linkend='XcmsTekHVCQueryMaxC' xrefstyle='select: title'/>
is given a fixed Hue and Value for which maximum Chroma is found.
</para>
<sect2 id="Red_Green_and_Blue_Queries">
@@ -5016,11 +5016,11 @@ is given a fixed Hue and Value for which maximum Chroma is found.
<!-- .LP -->
To obtain the color specification for black
(zero-intensity red, green, and blue), use
-<function>XcmsQueryBlack</function>.
+<xref linkend='XcmsQueryBlack' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsQueryBlack</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsqueryblack'>
+<funcsynopsis id='XcmsQueryBlack'>
<funcprototype>
<funcdef>Status <function>XcmsQueryBlack</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5073,7 +5073,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsQueryBlack</function>
+<xref linkend='XcmsQueryBlack' xrefstyle='select: title'/>
function returns the color specification in the specified target format
for zero-intensity red, green, and blue.
<!-- .sp -->
@@ -5082,11 +5082,11 @@ for zero-intensity red, green, and blue.
<!-- .LP -->
To obtain the color specification for blue
(full-intensity blue while red and green are zero), use
-<function>XcmsQueryBlue</function>.
+<xref linkend='XcmsQueryBlue' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsQueryBlue</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsqueryblue'>
+<funcsynopsis id='XcmsQueryBlue'>
<funcprototype>
<funcdef>Status <function>XcmsQueryBlue</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5139,7 +5139,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsQueryBlue</function>
+<xref linkend='XcmsQueryBlue' xrefstyle='select: title'/>
function returns the color specification in the specified target format
for full-intensity blue while red and green are zero.
<!-- .sp -->
@@ -5148,11 +5148,11 @@ for full-intensity blue while red and green are zero.
<!-- .LP -->
To obtain the color specification for green
(full-intensity green while red and blue are zero), use
-<function>XcmsQueryGreen</function>.
+<xref linkend='XcmsQueryGreen' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsQueryGreen</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsquerygreen'>
+<funcsynopsis id='XcmsQueryGreen'>
<funcprototype>
<funcdef>Status <function>XcmsQueryGreen</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5205,7 +5205,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsQueryGreen</function>
+<xref linkend='XcmsQueryGreen' xrefstyle='select: title'/>
function returns the color specification in the specified target format
for full-intensity green while red and blue are zero.
<!-- .sp -->
@@ -5214,11 +5214,11 @@ for full-intensity green while red and blue are zero.
<!-- .LP -->
To obtain the color specification for red
(full-intensity red while green and blue are zero), use
-<function>XcmsQueryRed</function>.
+<xref linkend='XcmsQueryRed' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsQueryRed</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsqueryred'>
+<funcsynopsis id='XcmsQueryRed'>
<funcprototype>
<funcdef>Status <function>XcmsQueryRed</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5271,7 +5271,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsQueryRed</function>
+<xref linkend='XcmsQueryRed' xrefstyle='select: title'/>
function returns the color specification in the specified target format
for full-intensity red while green and blue are zero.
</para>
@@ -5280,11 +5280,11 @@ for full-intensity red while green and blue are zero.
<!-- .sp -->
To obtain the color specification for white
(full-intensity red, green, and blue), use
-<function>XcmsQueryWhite</function>.
+<xref linkend='XcmsQueryWhite' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsQueryWhite</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsquerywhite'>
+<funcsynopsis id='XcmsQueryWhite'>
<funcprototype>
<funcdef>Status <function>XcmsQueryWhite</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5337,7 +5337,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsQueryWhite</function>
+<xref linkend='XcmsQueryWhite' xrefstyle='select: title'/>
function returns the color specification in the specified target format
for full-intensity red, green, and blue.
</para>
@@ -5368,11 +5368,11 @@ delim %%
<!-- .sp -->
To obtain the <acronym>CIE</acronym> L*a*b* coordinates of maximum Psychometric Chroma
for a given Psychometric Hue Angle and <acronym>CIE</acronym> metric lightness (L*), use
-<function>XcmsCIELabQueryMaxC</function>.
+<xref linkend='XcmsCIELabQueryMaxC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsCIELabQueryMaxC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscielabquerymaxc'>
+<funcsynopsis id='XcmsCIELabQueryMaxC'>
<funcprototype>
<funcdef>Status <function>XcmsCIELabQueryMaxC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5439,7 +5439,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELabQueryMaxC</function>
+<xref linkend='XcmsCIELabQueryMaxC' xrefstyle='select: title'/>
function, given a hue angle and lightness,
finds the point of maximum chroma displayable by the screen.
It returns this point in <acronym>CIE</acronym> L*a*b* coordinates.
@@ -5449,14 +5449,14 @@ It returns this point in <acronym>CIE</acronym> L*a*b* coordinates.
<!-- .sp -->
To obtain the <acronym>CIE</acronym> L*a*b* coordinates of maximum <acronym>CIE</acronym> metric lightness (L*)
for a given Psychometric Hue Angle and Psychometric Chroma, use
-<function>XcmsCIELabQueryMaxL</function>.
+<xref linkend='XcmsCIELabQueryMaxL' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Psychometric Hue Angle</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsCIELabQueryMaxL</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscielabquerymaxl'>
+<funcsynopsis id='XcmsCIELabQueryMaxL'>
<funcprototype>
<funcdef>Status <function>XcmsCIELabQueryMaxL</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5523,7 +5523,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELabQueryMaxL</function>
+<xref linkend='XcmsCIELabQueryMaxL' xrefstyle='select: title'/>
function, given a hue angle and chroma,
finds the point in <acronym>CIE</acronym> L*a*b* color space of maximum
lightness (L*) displayable by the screen.
@@ -5538,7 +5538,7 @@ is beyond maximum for the given hue angle.
<!-- .LP -->
To obtain the <acronym>CIE</acronym> L*a*b* coordinates of maximum Psychometric Chroma
for a given Psychometric Hue Angle, use
-<function>XcmsCIELabQueryMaxLC</function>.
+<xref linkend='XcmsCIELabQueryMaxLC' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Psychometric Hue Angle</primary></indexterm>
<indexterm><primary>Psychometric Chroma</primary></indexterm>
@@ -5547,7 +5547,7 @@ for a given Psychometric Hue Angle, use
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsCIELabQueryMaxLC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscielabquerymaxlc'>
+<funcsynopsis id='XcmsCIELabQueryMaxLC'>
<funcprototype>
<funcdef>Status <function>XcmsCIELabQueryMaxLC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5602,7 +5602,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELabQueryMaxLC</function>
+<xref linkend='XcmsCIELabQueryMaxLC' xrefstyle='select: title'/>
function, given a hue angle,
finds the point of maximum chroma displayable by the screen.
It returns this point in <acronym>CIE</acronym> L*a*b* coordinates.
@@ -5612,14 +5612,14 @@ It returns this point in <acronym>CIE</acronym> L*a*b* coordinates.
<!-- .LP -->
To obtain the <acronym>CIE</acronym> L*a*b* coordinates of minimum <acronym>CIE</acronym> metric lightness (L*)
for a given Psychometric Hue Angle and Psychometric Chroma, use
-<function>XcmsCIELabQueryMinL</function>.
+<xref linkend='XcmsCIELabQueryMinL' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Psychometric Hue Angle</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary><secondary>minimum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsCIELabQueryMinL</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscielabqueryminlc'>
+<funcsynopsis id='XcmsCIELabQueryMinL'>
<funcprototype>
<funcdef>Status <function>XcmsCIELabQueryMinL</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5686,7 +5686,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELabQueryMinL</function>
+<xref linkend='XcmsCIELabQueryMinL' xrefstyle='select: title'/>
function, given a hue angle and chroma,
finds the point of minimum lightness (L*) displayable by the screen.
It returns this point in <acronym>CIE</acronym> L*a*b* coordinates.
@@ -5725,11 +5725,11 @@ delim %%
<!-- .LP -->
To obtain the <acronym>CIE</acronym> L*u*v* coordinates of maximum Psychometric Chroma
for a given Psychometric Hue Angle and <acronym>CIE</acronym> metric lightness (L*), use
-<function>XcmsCIELuvQueryMaxC</function>.
+<xref linkend='XcmsCIELuvQueryMaxC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsCIELuvQueryMaxC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmxcieluvquerymaxc'>
+<funcsynopsis id='XcmsCIELuvQueryMaxC'>
<funcprototype>
<funcdef>Status <function>XcmsCIELuvQueryMaxC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5796,7 +5796,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELuvQueryMaxC</function>
+<xref linkend='XcmsCIELuvQueryMaxC' xrefstyle='select: title'/>
function, given a hue angle and lightness,
finds the point of maximum chroma displayable by the screen.
It returns this point in <acronym>CIE</acronym> L*u*v* coordinates.
@@ -5806,14 +5806,14 @@ It returns this point in <acronym>CIE</acronym> L*u*v* coordinates.
<!-- .LP -->
To obtain the <acronym>CIE</acronym> L*u*v* coordinates of maximum <acronym>CIE</acronym> metric lightness (L*)
for a given Psychometric Hue Angle and Psychometric Chroma, use
-<function>XcmsCIELuvQueryMaxL</function>.
+<xref linkend='XcmsCIELuvQueryMaxL' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Psychometric Hue Angle</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsCIELuvQueryMaxL</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscieluvquerymaxl'>
+<funcsynopsis id='XcmsCIELuvQueryMaxL'>
<funcprototype>
<funcdef>Status <function>XcmsCIELuvQueryMaxL</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5880,7 +5880,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELuvQueryMaxL</function>
+<xref linkend='XcmsCIELuvQueryMaxL' xrefstyle='select: title'/>
function, given a hue angle and chroma,
finds the point in <acronym>CIE</acronym> L*u*v* color space of maximum
lightness (L*) displayable by the screen.
@@ -5895,7 +5895,7 @@ is beyond maximum for the given hue angle.
<!-- .LP -->
To obtain the <acronym>CIE</acronym> L*u*v* coordinates of maximum Psychometric Chroma
for a given Psychometric Hue Angle, use
-<function>XcmsCIELuvQueryMaxLC</function>.
+<xref linkend='XcmsCIELuvQueryMaxLC' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Psychometric Hue Angle</primary></indexterm>
<indexterm><primary>Psychometric Chroma</primary></indexterm>
@@ -5904,7 +5904,7 @@ for a given Psychometric Hue Angle, use
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsCIELuvQueryMaxLC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscieluvquerymaxlc'>
+<funcsynopsis id='XcmsCIELuvQueryMaxLC'>
<funcprototype>
<funcdef>Status <function>XcmsCIELuvQueryMaxLC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -5959,7 +5959,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELuvQueryMaxLC</function>
+<xref linkend='XcmsCIELuvQueryMaxLC' xrefstyle='select: title'/>
function, given a hue angle,
finds the point of maximum chroma displayable by the screen.
It returns this point in <acronym>CIE</acronym> L*u*v* coordinates.
@@ -5969,14 +5969,14 @@ It returns this point in <acronym>CIE</acronym> L*u*v* coordinates.
<!-- .LP -->
To obtain the <acronym>CIE</acronym> L*u*v* coordinates of minimum <acronym>CIE</acronym> metric lightness (L*)
for a given Psychometric Hue Angle and Psychometric Chroma, use
-<function>XcmsCIELuvQueryMinL</function>.
+<xref linkend='XcmsCIELuvQueryMinL' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Psychometric Hue Angle</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary></indexterm>
<indexterm><primary><acronym>CIE</acronym> metric lightness</primary><secondary>minimum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsCIELuvQueryMinL</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmscieluvqueryminl'>
+<funcsynopsis id='XcmsCIELuvQueryMinL'>
<funcprototype>
<funcdef>Status <function>XcmsCIELuvQueryMinL</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -6043,7 +6043,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsCIELuvQueryMinL</function>
+<xref linkend='XcmsCIELuvQueryMinL' xrefstyle='select: title'/>
function, given a hue angle and chroma,
finds the point of minimum lightness (L*) displayable by the screen.
It returns this point in <acronym>CIE</acronym> L*u*v* coordinates.
@@ -6061,13 +6061,13 @@ is beyond maximum for the given hue angle.
<para>
<!-- .LP -->
To obtain the maximum Chroma for a given Hue and Value, use
-<function>XcmsTekHVCQueryMaxC</function>.
+<xref linkend='XcmsTekHVCQueryMaxC' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Chroma</primary></indexterm>
<indexterm><primary>Chroma</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsTekHVCQueryMaxC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmstekhvcquerymaxc'>
+<funcsynopsis id='XcmsTekHVCQueryMaxC'>
<funcprototype>
<funcdef>Status <function>XcmsTekHVCQueryMaxC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -6133,7 +6133,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsTekHVCQueryMaxC</function>
+<xref linkend='XcmsTekHVCQueryMaxC' xrefstyle='select: title'/>
function, given a Hue and Value,
determines the maximum Chroma in TekHVC color space
displayable by the screen.
@@ -6144,13 +6144,13 @@ and Value at which the maximum Chroma was found.
<para>
<!-- .LP -->
To obtain the maximum Value for a given Hue and Chroma, use
-<function>XcmsTekHVCQueryMaxV</function>.
+<xref linkend='XcmsTekHVCQueryMaxV' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Value</primary></indexterm>
<indexterm><primary>Value</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsTekHVCQueryMaxV</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmstekhvcquerymaxv'>
+<funcsynopsis id='XcmsTekHVCQueryMaxV'>
<funcprototype>
<funcdef>Status <function>XcmsTekHVCQueryMaxV</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -6216,7 +6216,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsTekHVCQueryMaxV</function>
+<xref linkend='XcmsTekHVCQueryMaxV' xrefstyle='select: title'/>
function, given a Hue and Chroma,
determines the maximum Value in TekHVC color space
displayable by the screen.
@@ -6229,7 +6229,7 @@ at which the maximum Value was found.
<!-- .LP -->
To obtain the maximum Chroma and Value at which it is reached
for a specified Hue, use
-<function>XcmsTekHVCQueryMaxVC</function>.
+<xref linkend='XcmsTekHVCQueryMaxVC' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Chroma</primary></indexterm>
<indexterm><primary>Value</primary></indexterm>
@@ -6237,7 +6237,7 @@ for a specified Hue, use
<indexterm><primary>Value</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsTekHVCQueryMaxVC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmstekhvcquerymaxvc'>
+<funcsynopsis id='XcmsTekHVCQueryMaxVC'>
<funcprototype>
<funcdef>Status <function>XcmsTekHVCQueryMaxVC</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -6293,7 +6293,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsTekHVCQueryMaxVC</function>
+<xref linkend='XcmsTekHVCQueryMaxVC' xrefstyle='select: title'/>
function, given a Hue,
determines the maximum Chroma in TekHVC color space displayable by the screen
and the Value at which that maximum Chroma is reached.
@@ -6307,7 +6307,7 @@ and the actual Hue for which the maximum Chroma was found.
To obtain a specified number of TekHVC specifications such that they
contain maximum Values for a specified Hue and the
Chroma at which the maximum Values are reached, use
-<function>XcmsTekHVCQueryMaxVSamples</function>.
+<xref linkend='XcmsTekHVCQueryMaxVSamples' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Chroma</primary></indexterm>
<indexterm><primary>Value</primary></indexterm>
@@ -6315,7 +6315,7 @@ Chroma at which the maximum Values are reached, use
<indexterm><primary>Value</primary><secondary>maximum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsTekHVCQueryMaxVSamples</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmstekhvcquerymaxvsamples'>
+<funcsynopsis id='XcmsTekHVCQueryMaxVSamples'>
<funcprototype>
<funcdef>Status <function>XcmsTekHVCQueryMaxVSamples</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -6379,7 +6379,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsTekHVCQueryMaxVSamples</function>
+<xref linkend='XcmsTekHVCQueryMaxVSamples' xrefstyle='select: title'/>
returns nsamples of maximum Value, the Chroma at which that maximum Value
is reached, and the actual Hue for which the maximum Chroma was found.
These sample points may then be used to plot the maximum Value/Chroma
@@ -6390,13 +6390,13 @@ space.
<para>
<!-- .LP -->
To obtain the minimum Value for a given Hue and Chroma, use
-<function>XcmsTekHVCQueryMinV</function>.
+<xref linkend='XcmsTekHVCQueryMinV' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Value</primary></indexterm>
<indexterm><primary>Value</primary><secondary>minimum</secondary></indexterm>
<indexterm significance="preferred"><primary>XcmsTekHVCQueryMinV</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmstekhvcqueryminv'>
+<funcsynopsis id='XcmsTekHVCQueryMinV'>
<funcprototype>
<funcdef>Status <function>XcmsTekHVCQueryMinV</function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -6462,7 +6462,7 @@ The value returned in the pixel member is undefined.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsTekHVCQueryMinV</function>
+<xref linkend='XcmsTekHVCQueryMinV' xrefstyle='select: title'/>
function, given a Hue and Chroma,
determines the minimum Value in TekHVC color space displayable by the screen.
It returns the minimum Value and the actual Hue and Chroma at which
@@ -6490,7 +6490,7 @@ Device-Independent Color Spaces
<para>
Device-independent color spaces that are derivable to <acronym>CIE</acronym> XYZ
space can be added using the
-<function>XcmsAddColorSpace</function>
+<xref linkend='XcmsAddColorSpace' xrefstyle='select: title'/>
function.
</para>
</listitem>
@@ -6506,7 +6506,7 @@ device-dependent color spaces and their functions that
convert between these color spaces and the <acronym>CIE</acronym> XYZ
color space, bundled together for a specific class of output devices.
A function set can be added using the
-<function>XcmsAddFunctionSet</function>
+<xref linkend='XcmsAddFunctionSet' xrefstyle='select: title'/>
function.
</para>
</listitem>
@@ -6550,11 +6550,11 @@ thus bypassing conversion between <acronym>CIE</acronym> u*v*Y and <acronym>CIE<
<para>
<!-- .LP -->
To add a device-independent color space, use
-<function>XcmsAddColorSpace</function>.
+<xref linkend='XcmsAddColorSpace' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsAddColorSpace</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsaddcolorspace'>
+<funcsynopsis id='XcmsAddColorSpace'>
<funcprototype>
<funcdef>Status <function>XcmsAddColorSpace</function></funcdef>
<paramdef>XcmsColorSpace<parameter> *color_space</parameter></paramdef>
@@ -6578,7 +6578,7 @@ Specifies the device-independent color space to add.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsAddColorSpace</function>
+<xref linkend='XcmsAddColorSpace' xrefstyle='select: title'/>
function makes a device-independent color space (actually an
<structname>XcmsColorSpace</structname>
structure) accessible by the color management system.
@@ -6589,16 +6589,16 @@ outside the client (for example, storing color specifications
in a file using the unregistered color space),
then reference should be made by color space prefix
(see
-<function>XcmsFormatOfPrefix</function>
+<xref linkend='XcmsFormatOfPrefix' xrefstyle='select: title'/>
and
-<function>XcmsPrefixOfFormat</function>).
+<xref linkend='XcmsPrefixOfFormat' xrefstyle='select: title'/>).
</para>
<para>
<!-- .LP -->
If the
<structname>XcmsColorSpace</structname>
structure is already accessible in the color management system,
-<function>XcmsAddColorSpace</function>
+<xref linkend='XcmsAddColorSpace' xrefstyle='select: title'/>
returns
<symbol>XcmsSuccess</symbol>.
</para>
@@ -6618,11 +6618,11 @@ must be retained for reference by Xlib.
<!-- .LP -->
To obtain the format associated with the color space
associated with a specified color string prefix, use
-<function>XcmsFormatOfPrefix</function>.
+<xref linkend='XcmsFormatOfPrefix' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsFormatOfPrefix</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsformatofprefix'>
+<funcsynopsis id='XcmsFormatOfPrefix'>
<funcprototype>
<funcdef>XcmsColorFormat <function>XcmsFormatOfPrefix</function></funcdef>
<paramdef>char<parameter> *prefix</parameter></paramdef>
@@ -6646,12 +6646,12 @@ Specifies the string that contains the color space prefix.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsFormatOfPrefix</function>
+<xref linkend='XcmsFormatOfPrefix' xrefstyle='select: title'/>
function returns the format for the specified color space prefix
(for example, the string ``CIEXYZ'').
The prefix is case-insensitive.
If the color space is not accessible in the color management system,
-<function>XcmsFormatOfPrefix</function>
+<xref linkend='XcmsFormatOfPrefix' xrefstyle='select: title'/>
returns
<symbol>XcmsUndefinedFormat</symbol>.
</para>
@@ -6660,11 +6660,11 @@ returns
<!-- .sp -->
To obtain the color string prefix associated with the color space
specified by a color format, use
-<function>XcmsPrefixOfFormat</function>.
+<xref linkend='XcmsPrefixOfFormat' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsPrefixOfFormat</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsprefixofformat'>
+<funcsynopsis id='XcmsPrefixOfFormat'>
<funcprototype>
<funcdef>char *<function>XcmsPrefixOfFormat</function></funcdef>
<paramdef>XcmsColorFormat<parameter> format</parameter></paramdef>
@@ -6688,7 +6688,7 @@ Specifies the color specification format.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsPrefixOfFormat</function>
+<xref linkend='XcmsPrefixOfFormat' xrefstyle='select: title'/>
function returns the string prefix associated with the color specification
encoding specified by the format argument.
Otherwise, if no encoding is found, it returns NULL.
@@ -6711,7 +6711,7 @@ for each additional color space.
In the case of device-independent color spaces,
a handle to this new structure (that is, by means of a global variable)
is usually made accessible to the client program for use with the
-<function>XcmsAddColorSpace</function>
+<xref linkend='XcmsAddColorSpace' xrefstyle='select: title'/>
function.
</para>
<para>
@@ -6725,9 +6725,9 @@ If references to an unregistered color space must be made outside the
client (for example, storing color specifications in a file using the
unregistered color space), then reference should be made by color space prefix
(see
-<function>XcmsFormatOfPrefix</function>
+<xref linkend='XcmsFormatOfPrefix' xrefstyle='select: title'/>
and
-<function>XcmsPrefixOfFormat</function>).
+<xref linkend='XcmsPrefixOfFormat' xrefstyle='select: title'/>).
<!-- .sM -->
</para>
<para>
@@ -6808,7 +6808,7 @@ adhere to the following software interface specification:
</para>
<indexterm significance="preferred"><primary>XcmsParseStringProc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsparsestringproc'>
+<funcsynopsis id='XcmsParseStringProc'>
<funcprototype>
<funcdef>Status <function>XcmsParseStringProc</function></funcdef>
<paramdef>char<parameter> *color_string</parameter></paramdef>
@@ -6858,7 +6858,7 @@ spaces must adhere to the
following software interface specification:
</para>
<!-- .sM -->
-<funcsynopsis id='conversionproc'>
+<funcsynopsis id='ConversionProc'>
<funcprototype>
<funcdef>Status <function><replaceable>ConversionProc</replaceable></function></funcdef>
<paramdef>XcmsCCC<parameter> ccc</parameter></paramdef>
@@ -7126,11 +7126,11 @@ its corresponding data may be stored on different root window properties.
<para>
<!-- .LP -->
To add a function set, use
-<function>XcmsAddFunctionSet</function>.
+<xref linkend='XcmsAddFunctionSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XcmsAddFunctionSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcmsaddfunctionset'>
+<funcsynopsis id='XcmsAddFunctionSet'>
<funcprototype>
<funcdef>Status <function>XcmsAddFunctionSet</function></funcdef>
<paramdef>XcmsFunctionSet<parameter> *function_set</parameter></paramdef>
@@ -7154,12 +7154,12 @@ Specifies the function set to add.
<!-- .LP -->
<!-- .eM -->
The
-<function>XcmsAddFunctionSet</function>
+<xref linkend='XcmsAddFunctionSet' xrefstyle='select: title'/>
function adds a function set to the color management system.
If the function set uses device-dependent
<structname>XcmsColorSpace</structname>
structures not accessible in the color management system,
-<function>XcmsAddFunctionSet</function>
+<xref linkend='XcmsAddFunctionSet' xrefstyle='select: title'/>
adds them.
If an added
<structname>XcmsColorSpace</structname>
@@ -7172,9 +7172,9 @@ client (for example, storing color specifications in a file
using the unregistered color space),
then reference should be made by color space prefix
(see
-<function>XcmsFormatOfPrefix</function>
+<xref linkend='XcmsFormatOfPrefix' xrefstyle='select: title'/>
and
-<function>XcmsPrefixOfFormat</function>).
+<xref linkend='XcmsPrefixOfFormat' xrefstyle='select: title'/>).
</para>
<para>
<!-- .LP -->
@@ -7207,7 +7207,7 @@ This data is stored in an
structure.
A handle to this structure (that is, by means of global variable)
is usually made accessible to the client program for use with
-<function>XcmsAddFunctionSet</function>.
+<xref linkend='XcmsAddFunctionSet' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
diff --git a/libX11/specs/libX11/CH07.xml b/libX11/specs/libX11/CH07.xml
index 0b873078a..4941db32f 100644
--- a/libX11/specs/libX11/CH07.xml
+++ b/libX11/specs/libX11/CH07.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="graphics_context_functions">
+<chapter id='Graphics_Context_Functions'>
<title>Graphics Context Functions</title>
<para>
@@ -25,7 +25,7 @@ This chapter discusses how to:
<listitem><para>Use graphics context convenience functions</para></listitem>
</itemizedlist>
-<sect1 id="Manipulating_Graphics_Context_State">
+<sect1 id='Manipulating_Graphics_ContextState'>
<title>Manipulating Graphics Context/State</title>
<!-- .XS -->
<!-- (SN Manipulating Graphics Context/State -->
@@ -47,9 +47,9 @@ resource IDs to allow Xlib to implement the transparent coalescing of changes
to GCs.
For example,
a call to
-<function>XSetForeground</function>
+<xref linkend='XSetForeground' xrefstyle='select: title'/>
of a GC followed by a call to
-<function>XSetLineAttributes</function>
+<xref linkend='XSetLineAttributes' xrefstyle='select: title'/>
results in only a single-change GC protocol request to the server.
GCs are neither expected nor encouraged to be shared between client
applications, so this write-back caching should present no problems.
@@ -63,7 +63,7 @@ To set an attribute of a GC,
set the appropriate member of the
<structname>XGCValues</structname>
structure and OR in the corresponding value bitmask in your subsequent calls to
-<function>XCreateGC</function>.
+<xref linkend='XCreateGC' xrefstyle='select: title'/>.
The symbols for the value mask bits and the
<structname>XGCValues</structname>
structure are:
@@ -720,20 +720,20 @@ any size pixmap can be used for tiling or stippling.
The fill-style defines the contents of the source for line, text, and
fill requests.
For all text and fill requests (for example,
-<function>XDrawText</function>,
-<function>XDrawText16</function>,
-<function>XFillRectangle</function>,
-<function>XFillPolygon</function>,
+<xref linkend='XDrawText' xrefstyle='select: title'/>,
+<xref linkend='XDrawText16' xrefstyle='select: title'/>,
+<xref linkend='XFillRectangle' xrefstyle='select: title'/>,
+<xref linkend='XFillPolygon' xrefstyle='select: title'/>,
and
-<function>XFillArc</function>);
+<xref linkend='XFillArc' xrefstyle='select: title'/>);
for line requests
with line-style
<symbol>LineSolid</symbol>
(for example,
-<function>XDrawLine</function>,
-<function>XDrawSegments</function>,
-<function>XDrawRectangle</function>,
-<function>XDrawArc</function>);
+<xref linkend='XDrawLine' xrefstyle='select: title'/>,
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>,
+<xref linkend='XDrawRectangle' xrefstyle='select: title'/>,
+<xref linkend='XDrawArc' xrefstyle='select: title'/>);
and for the even dashes for line requests with line-style
<symbol>LineOnOffDash</symbol>
or
@@ -825,10 +825,10 @@ of GCs.
<!-- .LP -->
The dashes value is actually a simplified form of the
more general patterns that can be set with
-<function>XSetDashes</function>.
+<xref linkend='XSetDashes' xrefstyle='select: title'/>.
Specifying a
value of N is equivalent to specifying the two-element list [N, N] in
-<function>XSetDashes</function>.
+<xref linkend='XSetDashes' xrefstyle='select: title'/>.
The value must be nonzero,
or a
<errorname>BadValue</errorname>
@@ -846,9 +846,9 @@ If clip-mask is set to
<symbol>None</symbol>,
the pixels are always drawn regardless of the clip origin.
The clip-mask also can be set by calling the
-<function>XSetClipRectangles</function>
+<xref linkend='XSetClipRectangles' xrefstyle='select: title'/>
or
-<function>XSetRegion</function>
+<xref linkend='XSetRegion' xrefstyle='select: title'/>
functions.
Only pixels where the clip-mask has a bit set to 1 are drawn.
Pixels are not drawn outside the area covered by the clip-mask
@@ -885,7 +885,7 @@ undefined by the core protocol.
<!-- .LP -->
The fill-rule defines what pixels are inside (drawn) for
paths given in
-<function>XFillPolygon</function>
+<xref linkend='XFillPolygon' xrefstyle='select: title'/>
requests and can be set to
<symbol>EvenOddRule</symbol>
or
@@ -928,7 +928,7 @@ and are inside if and only if the polygon interior is immediately below
<para>
<!-- .LP -->
The arc-mode controls filling in the
-<function>XFillArcs</function>
+<xref linkend='XFillArcs' xrefstyle='select: title'/>
function and can be set to
<symbol>ArcPieSlice</symbol>
or
@@ -946,9 +946,9 @@ The graphics-exposure flag controls
<symbol>GraphicsExpose</symbol>
event generation
for
-<function>XCopyArea</function>
+<xref linkend='XCopyArea' xrefstyle='select: title'/>
and
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
requests (and any similar requests defined by extensions).
</para>
<para>
@@ -956,12 +956,12 @@ requests (and any similar requests defined by extensions).
<!-- .sp -->
To create a new GC that is usable on a given screen with a
depth of drawable, use
-<function>XCreateGC</function>.
+<xref linkend='XCreateGC' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Graphics context</primary><secondary>initializing</secondary></indexterm>
<indexterm significance="preferred"><primary>XCreateGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreategc'>
+<funcsynopsis id='XCreateGC'>
<funcprototype>
<funcdef>GC <function>XCreateGC</function></funcdef>
<paramdef>Display <parameter> *display</parameter></paramdef>
@@ -1020,7 +1020,7 @@ Specifies any values as specified by the valuemask.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateGC</function>
+<xref linkend='XCreateGC' xrefstyle='select: title'/>
function creates a graphics context and returns a GC.
The GC can be used with any destination drawable having the same root
and depth as the specified drawable.
@@ -1030,7 +1030,7 @@ error.
</para>
<para>
<!-- .LP -->
-<function>XCreateGC</function>
+<xref linkend='XCreateGC' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadDrawable</errorname>,
@@ -1045,11 +1045,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To copy components from a source GC to a destination GC, use
-<function>XCopyGC</function>.
+<xref linkend='XCopyGC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCopyGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcopygc'>
+<funcsynopsis id='XCopyGC'>
<funcprototype>
<funcdef><function>XCopyGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1107,7 +1107,7 @@ Specifies the destination GC.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCopyGC</function>
+<xref linkend='XCopyGC' xrefstyle='select: title'/>
function copies the specified components from the source GC
to the destination GC.
The source and destination GCs must have the same root and depth,
@@ -1115,11 +1115,11 @@ or a
<errorname>BadMatch</errorname>
error results.
The valuemask specifies which component to copy, as for
-<function>XCreateGC</function>.
+<xref linkend='XCreateGC' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XCopyGC</function>
+<xref linkend='XCopyGC' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -1131,11 +1131,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To change the components in a given GC, use
-<function>XChangeGC</function>.
+<xref linkend='XChangeGC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XChangeGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangegc'>
+<funcsynopsis id='XChangeGC'>
<funcprototype>
<funcdef><function>XChangeGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1194,25 +1194,25 @@ Specifies any values as specified by the valuemask.
<!-- .LP -->
<!-- .eM -->
The
-<function>XChangeGC</function>
+<xref linkend='XChangeGC' xrefstyle='select: title'/>
function changes the components specified by valuemask for
the specified GC.
The values argument contains the values to be set.
The values and restrictions are the same as for
-<function>XCreateGC</function>.
+<xref linkend='XCreateGC' xrefstyle='select: title'/>.
Changing the clip-mask overrides any previous
-<function>XSetClipRectangles</function>
+<xref linkend='XSetClipRectangles' xrefstyle='select: title'/>
request on the context.
Changing the dash-offset or dash-list
overrides any previous
-<function>XSetDashes</function>
+<xref linkend='XSetDashes' xrefstyle='select: title'/>
request on the context.
The order in which components are verified and altered is server dependent.
If an error is generated, a subset of the components may have been altered.
</para>
<para>
<!-- .LP -->
-<function>XChangeGC</function>
+<xref linkend='XChangeGC' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadFont</errorname>,
@@ -1227,11 +1227,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain components of a given GC, use
-<function>XGetGCValues</function>.
+<xref linkend='XGetGCValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetGCValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetgcvalues'>
+<funcsynopsis id='XGetGCValues'>
<funcprototype>
<funcdef>Status <function>XGetGCValues</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1292,7 +1292,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetGCValues</function>
+<xref linkend='XGetGCValues' xrefstyle='select: title'/>
function returns the components specified by valuemask for the specified GC.
If the valuemask contains a valid set of GC mask bits
(<symbol>GCFunction</symbol>,
@@ -1318,7 +1318,7 @@ If the valuemask contains a valid set of GC mask bits
or
<symbol>GCArcMode</symbol>)
and no error occurs,
-<function>XGetGCValues</function>
+<xref linkend='XGetGCValues' xrefstyle='select: title'/>
sets the requested components in values_return and returns a nonzero status.
Otherwise, it returns a zero status.
Note that the clip-mask and dash-list (represented by the
@@ -1339,11 +1339,11 @@ if the component has never been explicitly set by the client.
<!-- .LP -->
<!-- .sp -->
To free a given GC, use
-<function>XFreeGC</function>.
+<xref linkend='XFreeGC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreegc'>
+<funcsynopsis id='XFreeGC'>
<funcprototype>
<funcdef><function>XFreeGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1377,12 +1377,12 @@ Specifies the GC.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeGC</function>
+<xref linkend='XFreeGC' xrefstyle='select: title'/>
function destroys the specified GC as well as all the associated storage.
</para>
<para>
<!-- .LP -->
-<function>XFreeGC</function>
+<xref linkend='XFreeGC' xrefstyle='select: title'/>
can generate a
<errorname>BadGC</errorname>
error.
@@ -1393,11 +1393,11 @@ error.
To obtain the
<type>GContext</type>
resource ID for a given GC, use
-<function>XGContextFromGC</function>.
+<xref linkend='XGContextFromGC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGContextFromGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgcontextfromgc'>
+<funcsynopsis id='XGContextFromGC'>
<funcprototype>
<funcdef>GContext <function>XGContextFromGC</function></funcdef>
<paramdef>GC<parameter> gc</parameter></paramdef>
@@ -1429,11 +1429,11 @@ to explicitly force sending the changes to the server.
An example might be when a protocol extension uses the GC indirectly,
in such a way that the extension interface cannot know what GC will be used.
To force sending GC component changes, use
-<function>XFlushGC</function>.
+<xref linkend='XFlushGC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFlushGC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xflushgc'>
+<funcsynopsis id='XFlushGC'>
<funcprototype>
<funcdef>void <function>XFlushGC</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1523,11 +1523,11 @@ Arc mode, subwindow mode, and graphics exposure components
<!-- .LP -->
To set the foreground, background, plane mask, and function components
for a given GC, use
-<function>XSetState</function>.
+<xref linkend='XSetState' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetState</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetstate'>
+<funcsynopsis id='XSetState'>
<funcprototype>
<funcdef><function>XSetState</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1604,7 +1604,7 @@ Specifies the plane mask.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetState</function>
+<xref linkend='XSetState' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -1616,11 +1616,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the foreground of a given GC, use
-<function>XSetForeground</function>.
+<xref linkend='XSetForeground' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetForeground</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetforeground'>
+<funcsynopsis id='XSetForeground'>
<funcprototype>
<funcdef><function>XSetForeground</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1664,7 +1664,7 @@ Specifies the foreground you want to set for the specified GC.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetForeground</function>
+<xref linkend='XSetForeground' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1675,11 +1675,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the background of a given GC, use
-<function>XSetBackground</function>.
+<xref linkend='XSetBackground' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetBackground</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetbackground'>
+<funcsynopsis id='XSetBackground'>
<funcprototype>
<funcdef><function>XSetBackground</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1723,7 +1723,7 @@ Specifies the background you want to set for the specified GC.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetBackground</function>
+<xref linkend='XSetBackground' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1734,11 +1734,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the display function in a given GC, use
-<function>XSetFunction</function>.
+<xref linkend='XSetFunction' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetFunction</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetfunction'>
+<funcsynopsis id='XSetFunction'>
<funcprototype>
<funcdef><function>XSetFunction</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1782,7 +1782,7 @@ Specifies the function you want to set for the specified GC.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetFunction</function>
+<xref linkend='XSetFunction' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -1794,11 +1794,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the plane mask of a given GC, use
-<function>XSetPlaneMask</function>.
+<xref linkend='XSetPlaneMask' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetPlaneMask</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetplanemask'>
+<funcsynopsis id='XSetPlaneMask'>
<funcprototype>
<funcdef><function>XSetPlaneMask</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1843,7 +1843,7 @@ Specifies the plane mask.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetPlaneMask</function>
+<xref linkend='XSetPlaneMask' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1859,11 +1859,11 @@ errors.
<para>
<!-- .LP -->
To set the line drawing components of a given GC, use
-<function>XSetLineAttributes</function>.
+<xref linkend='XSetLineAttributes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetLineAttributes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetlineattributes'>
+<funcsynopsis id='XSetLineAttributes'>
<funcprototype>
<funcdef><function>XSetLineAttributes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1956,7 +1956,7 @@ or
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetLineAttributes</function>
+<xref linkend='XSetLineAttributes' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -1968,11 +1968,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the dash-offset and dash-list for dashed line styles of a given GC, use
-<function>XSetDashes</function>.
+<xref linkend='XSetDashes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetDashes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetdashes'>
+<funcsynopsis id='XSetDashes'>
<funcprototype>
<funcdef><function>XSetDashes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2041,7 +2041,7 @@ Specifies the number of elements in dash_list.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetDashes</function>
+<xref linkend='XSetDashes' xrefstyle='select: title'/>
function sets the dash-offset and dash-list attributes for dashed line styles
in the specified GC.
There must be at least one element in the specified dash_list,
@@ -2080,7 +2080,7 @@ For all other lines, the major axis is the y axis.
</para>
<para>
<!-- .LP -->
-<function>XSetDashes</function>
+<xref linkend='XSetDashes' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -2089,19 +2089,19 @@ and
errors.
</para>
</sect2>
-<sect2 id="Setting_the_Fill_Style_and_Fill_Rule_">
-<title>Setting the Fill Style and Fill Rule </title>
+<sect2 id='Setting_the_Fill_Style_and_Fill_Rule'>
+<title>Setting the Fill Style and Fill Rule</title>
<!-- .XS -->
<!-- (SN Setting the Fill Style and Fill Rule -->
<!-- .XE -->
<para>
<!-- .LP -->
To set the fill-style of a given GC, use
-<function>XSetFillStyle</function>.
+<xref linkend='XSetFillStyle' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetFillStyle</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetfillstyle'>
+<funcsynopsis id='XSetFillStyle'>
<funcprototype>
<funcdef><function>XSetFillStyle</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2151,7 +2151,7 @@ or
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetFillStyle</function>
+<xref linkend='XSetFillStyle' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -2163,11 +2163,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the fill-rule of a given GC, use
-<function>XSetFillRule</function>.
+<xref linkend='XSetFillRule' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetFillRule</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetfillrule'>
+<funcsynopsis id='XSetFillRule'>
<funcprototype>
<funcdef><function>XSetFillRule</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2215,7 +2215,7 @@ or
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetFillRule</function>
+<xref linkend='XSetFillRule' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -2224,8 +2224,8 @@ and
errors.
</para>
</sect2>
-<sect2 id="Setting_the_Fill_Tile_and_Stipple_">
-<title>Setting the Fill Tile and Stipple </title>
+<sect2 id='Setting_the_Fill_Tile_and_Stipple'>
+<title>Setting the Fill Tile and Stipple</title>
<!-- .XS -->
<!-- (SN Setting the Fill Tile and Stipple -->
<!-- .XE -->
@@ -2243,11 +2243,11 @@ as well as to set the tile or stipple shape and the tile or stipple origin.
<!-- .LP -->
<!-- .sp -->
To obtain the best size of a tile, stipple, or cursor, use
-<function>XQueryBestSize</function>.
+<xref linkend='XQueryBestSize' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryBestSize</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerybestsize'>
+<funcsynopsis id='XQueryBestSize'>
<funcprototype>
<funcdef>Status <function>XQueryBestSize</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2342,7 +2342,7 @@ by the display hardware.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryBestSize</function>
+<xref linkend='XQueryBestSize' xrefstyle='select: title'/>
function returns the best or closest size to the specified size.
For
<symbol>CursorShape</symbol>,
@@ -2374,7 +2374,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XQueryBestSize</function>
+<xref linkend='XQueryBestSize' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadMatch</errorname>,
@@ -2386,11 +2386,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain the best fill tile shape, use
-<function>XQueryBestTile</function>.
+<xref linkend='XQueryBestTile' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryBestTile</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerybesttile'>
+<funcsynopsis id='XQueryBestTile'>
<funcprototype>
<funcdef>Status <function>XQueryBestTile</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2469,7 +2469,7 @@ by the display hardware.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryBestTile</function>
+<xref linkend='XQueryBestTile' xrefstyle='select: title'/>
function returns the best or closest size, that is, the size that can be
tiled fastest on the screen specified by which_screen.
The drawable indicates the screen and possibly the window class and depth.
@@ -2481,7 +2481,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XQueryBestTile</function>
+<xref linkend='XQueryBestTile' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>
and
@@ -2492,11 +2492,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain the best stipple shape, use
-<function>XQueryBestStipple</function>.
+<xref linkend='XQueryBestStipple' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryBestStipple</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerybeststipple'>
+<funcsynopsis id='XQueryBestStipple'>
<funcprototype>
<funcdef>Status <function>XQueryBestStipple</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2575,7 +2575,7 @@ by the display hardware.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryBestStipple</function>
+<xref linkend='XQueryBestStipple' xrefstyle='select: title'/>
function returns the best or closest size, that is, the size that can be
stippled fastest on the screen specified by which_screen.
The drawable indicates the screen and possibly the window class and depth.
@@ -2587,7 +2587,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XQueryBestStipple</function>
+<xref linkend='XQueryBestStipple' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>
and
@@ -2598,11 +2598,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the fill tile of a given GC, use
-<function>XSetTile</function>.
+<xref linkend='XSetTile' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetTile</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsettile'>
+<funcsynopsis id='XSetTile'>
<funcprototype>
<funcdef><function>XSetTile</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2653,7 +2653,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XSetTile</function>
+<xref linkend='XSetTile' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -2666,11 +2666,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the stipple of a given GC, use
-<function>XSetStipple</function>.
+<xref linkend='XSetStipple' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetStipple</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetstipple'>
+<funcsynopsis id='XSetStipple'>
<funcprototype>
<funcdef><function>XSetStipple</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2721,7 +2721,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XSetStipple</function>
+<xref linkend='XSetStipple' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -2734,11 +2734,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the tile or stipple origin of a given GC, use
-<function>XSetTSOrigin</function>.
+<xref linkend='XSetTSOrigin' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetTSOrigin</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsettsorigin'>
+<funcsynopsis id='XSetTSOrigin'>
<funcprototype>
<funcdef><function>XSetTSOrigin</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2799,7 +2799,7 @@ drawable is specified in the graphics request.
</para>
<para>
<!-- .LP -->
-<function>XSetTSOrigin</function>
+<xref linkend='XSetTSOrigin' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -2807,19 +2807,19 @@ and
errors.
</para>
</sect2>
-<sect2 id="Setting_the_Current_Font_">
-<title>Setting the Current Font </title>
+<sect2 id='Setting_the_Current_Font'>
+<title>Setting the Current Font</title>
<!-- .XS -->
<!-- (SN Setting the Current Font -->
<!-- .XE -->
<para>
<!-- .LP -->
To set the current font of a given GC, use
-<function>XSetFont</function>.
+<xref linkend='XSetFont' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetfont'>
+<funcsynopsis id='XSetFont'>
<funcprototype>
<funcdef><function>XSetFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2863,7 +2863,7 @@ Specifies the font.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetFont</function>
+<xref linkend='XSetFont' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadFont</errorname>,
@@ -2886,11 +2886,11 @@ and the clip-mask or set the clip-mask to a list of rectangles.
<!-- .LP -->
<!-- .sp -->
To set the clip-origin of a given GC, use
-<function>XSetClipOrigin</function>.
+<xref linkend='XSetClipOrigin' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetClipOrigin</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetcliporigin'>
+<funcsynopsis id='XSetClipOrigin'>
<funcprototype>
<funcdef><function>XSetClipOrigin</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2950,7 +2950,7 @@ destination drawable is specified in the graphics request.
</para>
<para>
<!-- .LP -->
-<function>XSetClipOrigin</function>
+<xref linkend='XSetClipOrigin' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -2961,11 +2961,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the clip-mask of a given GC to the specified pixmap, use
-<function>XSetClipMask</function>.
+<xref linkend='XSetClipMask' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetClipMask</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetclipmask'>
+<funcsynopsis id='XSetClipMask'>
<funcprototype>
<funcdef><function>XSetClipMask</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3016,7 +3016,7 @@ the pixels are always drawn (regardless of the clip-origin).
</para>
<para>
<!-- .LP -->
-<function>XSetClipMask</function>
+<xref linkend='XSetClipMask' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -3029,11 +3029,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the clip-mask of a given GC to the specified list of rectangles, use
-<function>XSetClipRectangles</function>.
+<xref linkend='XSetClipRectangles' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetClipRectangles</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetcliprectangles'>
+<funcsynopsis id='XSetClipRectangles'>
<funcprototype>
<funcdef><function>XSetClipRectangles</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3128,7 +3128,7 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetClipRectangles</function>
+<xref linkend='XSetClipRectangles' xrefstyle='select: title'/>
function changes the clip-mask in the specified GC
to the specified list of rectangles and sets the clip origin.
The output is clipped to remain contained within the
@@ -3143,10 +3143,10 @@ which effectively disables output.
This is the opposite of passing
<symbol>None</symbol>
as the clip-mask in
-<function>XCreateGC</function>,
-<function>XChangeGC</function>,
+<xref linkend='XCreateGC' xrefstyle='select: title'/>,
+<xref linkend='XChangeGC' xrefstyle='select: title'/>,
and
-<function>XSetClipMask</function>.
+<xref linkend='XSetClipMask' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -3178,7 +3178,7 @@ scanline have an identical Y origins and Y extents.
</para>
<para>
<!-- .LP -->
-<function>XSetClipRectangles</function>
+<xref linkend='XSetClipRectangles' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -3195,19 +3195,19 @@ For information about these functions,
see <link linkend="Manipulating_Regions">section 16.5</link>.
</para>
</sect2>
-<sect2 id="Setting_the_Arc_Mode_Subwindow_Mode_and_Graphics_Exposure_">
-<title>Setting the Arc Mode, Subwindow Mode, and Graphics Exposure </title>
+<sect2 id='Setting_the_Arc_Mode_Subwindow_Mode_and_Graphics_Exposure'>
+<title>Setting the Arc Mode, Subwindow Mode, and Graphics Exposure</title>
<!-- .XS -->
<!-- (SN Setting the Arc Mode, Subwindow Mode, and Graphics Exposure -->
<!-- .XE -->
<para>
<!-- .LP -->
To set the arc mode of a given GC, use
-<function>XSetArcMode</function>.
+<xref linkend='XSetArcMode' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetArcMode</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetarcmode'>
+<funcsynopsis id='XSetArcMode'>
<funcprototype>
<funcdef><function>XSetArcMode</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3255,7 +3255,7 @@ or
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetArcMode</function>
+<xref linkend='XSetArcMode' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -3267,11 +3267,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the subwindow mode of a given GC, use
-<function>XSetSubwindowMode</function>.
+<xref linkend='XSetSubwindowMode' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetSubwindowMode</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetsubwindowmode'>
+<funcsynopsis id='XSetSubwindowMode'>
<funcprototype>
<funcdef><function>XSetSubwindowMode</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3319,7 +3319,7 @@ or
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetSubwindowMode</function>
+<xref linkend='XSetSubwindowMode' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
@@ -3331,11 +3331,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To set the graphics-exposures flag of a given GC, use
-<function>XSetGraphicsExposures</function>.
+<xref linkend='XSetGraphicsExposures' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetGraphicsExposures</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetgraphicsexposures'>
+<funcsynopsis id='XSetGraphicsExposures'>
<funcprototype>
<funcdef><function>XSetGraphicsExposures</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3376,9 +3376,9 @@ Specifies a Boolean value that indicates whether you want
and
<symbol>NoExpose</symbol>
events to be reported when calling
-<function>XCopyArea</function>
+<xref linkend='XCopyArea' xrefstyle='select: title'/>
and
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
with this GC.
</para>
</listitem>
@@ -3387,7 +3387,7 @@ with this GC.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XSetGraphicsExposures</function>
+<xref linkend='XSetGraphicsExposures' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadGC</errorname>,
diff --git a/libX11/specs/libX11/CH08.xml b/libX11/specs/libX11/CH08.xml
index 8e0bae629..b2348b5ae 100644
--- a/libX11/specs/libX11/CH08.xml
+++ b/libX11/specs/libX11/CH08.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="graphics_functions">
+<chapter id='Graphics_Functions'>
<title>Graphics Functions</title>
<para>
Once you have established a connection to a display, you can use the Xlib graphics functions to:
@@ -31,20 +31,20 @@ Because pixmaps do not have defined backgrounds,
they cannot be filled by using the functions described in this section.
Instead, to accomplish an analogous operation on a pixmap,
you should use
-<function>XFillRectangle</function>,
+<xref linkend='XFillRectangle' xrefstyle='select: title'/>,
which sets the pixmap to a known value.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To clear a rectangular area of a given window, use
-<function>XClearArea</function>.
+<xref linkend='XClearArea' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Areas</primary><secondary>clearing</secondary></indexterm>
<indexterm><primary>Clearing</primary><secondary>areas</secondary></indexterm>
<indexterm significance="preferred"><primary>XClearArea</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcleararea'>
+<funcsynopsis id='XClearArea'>
<funcprototype>
<funcdef><function>XClearArea</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -138,7 +138,7 @@ events are to be generated.
<!-- .LP -->
<!-- .eM -->
The
-<function>XClearArea</function>
+<xref linkend='XClearArea' xrefstyle='select: title'/>
function paints a rectangular area in the specified window according to the
specified dimensions with the window's background pixel or pixmap.
The subwindow-mode effectively is
@@ -168,7 +168,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XClearArea</function>
+<xref linkend='XClearArea' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>,
<errorname>BadValue</errorname>,
@@ -180,13 +180,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To clear the entire area in a given window, use
-<function>XClearWindow</function>.
+<xref linkend='XClearWindow' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Window</primary><secondary>clearing</secondary></indexterm>
<indexterm><primary>Clearing</primary><secondary>windows</secondary></indexterm>
<indexterm significance="preferred"><primary>XClearWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xclearwindow'>
+<funcsynopsis id='XClearWindow'>
<funcprototype>
<funcdef><function>XClearWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -220,10 +220,10 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XClearWindow</function>
+<xref linkend='XClearWindow' xrefstyle='select: title'/>
function clears the entire area in the specified window and is
equivalent to
-<function>XClearArea</function>
+<xref linkend='XClearArea' xrefstyle='select: title'/>
(display, w, 0, 0, 0, 0,
<symbol>False</symbol>).
If the window has a defined background tile, the rectangle is tiled with a
@@ -242,7 +242,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XClearWindow</function>
+<xref linkend='XClearWindow' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>
and
@@ -264,13 +264,13 @@ Xlib provides functions that you can use to copy an area or a bit plane.
<!-- .sp -->
To copy an area between drawables of the same
root and depth, use
-<function>XCopyArea</function>.
+<xref linkend='XCopyArea' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Areas</primary><secondary>copying</secondary></indexterm>
<indexterm><primary>Copying</primary><secondary>areas</secondary></indexterm>
<indexterm significance="preferred"><primary>XCopyArea</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcopyarea'>
+<funcsynopsis id='XCopyArea'>
<funcprototype>
<funcdef><function>XCopyArea</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -398,7 +398,7 @@ Specify the x and y coordinates(Dx.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCopyArea</function>
+<xref linkend='XCopyArea' xrefstyle='select: title'/>
function combines the specified rectangle of src with the specified rectangle
of dest.
The drawables must have the same root and depth,
@@ -447,7 +447,7 @@ clip-y-origin, and clip-mask.
</para>
<para>
<!-- .LP -->
-<function>XCopyArea</function>
+<xref linkend='XCopyArea' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -459,13 +459,13 @@ errors.
<para>
<!-- .LP -->
To copy a single bit plane of a given drawable, use
-<function>XCopyPlane</function>.
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Plane</primary><secondary>copying</secondary></indexterm>
<indexterm><primary>Copying</primary><secondary>planes</secondary></indexterm>
<indexterm significance="preferred"><primary>XCopyPlane</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcopyplane'>
+<funcsynopsis id='XCopyPlane'>
<funcprototype>
<funcdef><function>XCopyPlane</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -604,7 +604,7 @@ You must set exactly one bit to 1.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
function uses a single bit plane of the specified source rectangle
combined with the specified GC to modify the specified rectangle of dest.
The drawables must have the same root but need not have the same depth.
@@ -619,7 +619,7 @@ error results.
<para>
<!-- .LP -->
Effectively,
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
forms a pixmap of the same depth as the rectangle of dest and with a
size specified by the source region.
It uses the foreground/background pixels in the GC (foreground
@@ -641,7 +641,7 @@ and clip-mask.
</para>
<para>
<!-- .LP -->
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -765,11 +765,11 @@ for these values.
<para>
<!-- .LP -->
To draw a single point in a given drawable, use
-<function>XDrawPoint</function>.
+<xref linkend='XDrawPoint' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawPoint</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawpoint'>
+<funcsynopsis id='XDrawPoint'>
<funcprototype>
<funcdef><function>XDrawPoint</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -837,11 +837,11 @@ Specify the x and y coordinates where you want the point drawn.
<!-- .eM -->
<!-- .sp -->
To draw multiple points in a given drawable, use
-<function>XDrawPoints</function>.
+<xref linkend='XDrawPoints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawPoints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawpoints'>
+<funcsynopsis id='XDrawPoints'>
<funcprototype>
<funcdef><function>XDrawPoints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -923,17 +923,17 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XDrawPoint</function>
+<xref linkend='XDrawPoint' xrefstyle='select: title'/>
function uses the foreground pixel and function components of the
GC to draw a single point into the specified drawable;
-<function>XDrawPoints</function>
+<xref linkend='XDrawPoints' xrefstyle='select: title'/>
draws multiple points this way.
<symbol>CoordModeOrigin</symbol>
treats all coordinates as relative to the origin,
and
<symbol>CoordModePrevious</symbol>
treats all coordinates after the first as relative to the previous point.
-<function>XDrawPoints</function>
+<xref linkend='XDrawPoints' xrefstyle='select: title'/>
draws the points in the order listed in the array.
</para>
<para>
@@ -943,14 +943,14 @@ foreground, subwindow-mode, clip-x-origin, clip-y-origin, and clip-mask.
</para>
<para>
<!-- .LP -->
-<function>XDrawPoint</function>
+<xref linkend='XDrawPoint' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
and
<errorname>BadMatch</errorname>
errors.
-<function>XDrawPoints</function>
+<xref linkend='XDrawPoints' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -978,11 +978,11 @@ errors.
<para>
<!-- .LP -->
To draw a single line between two points in a given drawable, use
-<function>XDrawLine</function>.
+<xref linkend='XDrawLine' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawLine</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawline'>
+<funcsynopsis id='XDrawLine'>
<funcprototype>
<funcdef><function>XDrawLine</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1072,11 +1072,11 @@ Specify the points (x1, y1) and (x2, y2) to be connected.
<!-- .eM -->
<!-- .sp -->
To draw multiple lines in a given drawable, use
-<function>XDrawLines</function>.
+<xref linkend='XDrawLines' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawLines</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawlines'>
+<funcsynopsis id='XDrawLines'>
<funcprototype>
<funcdef><function>XDrawLines</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1160,11 +1160,11 @@ or
<!-- .sp -->
To draw multiple, unconnected lines in a given drawable,
use
-<function>XDrawSegments</function>.
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawSegments</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawsegments'>
+<funcsynopsis id='XDrawSegments'>
<funcprototype>
<funcdef><function>XDrawSegments</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1231,19 +1231,19 @@ Specifies the number of segments in the array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDrawLine</function>
+<xref linkend='XDrawLine' xrefstyle='select: title'/>
function uses the components of the specified GC to
draw a line between the specified set of points (x1, y1) and (x2, y2).
It does not perform joining at coincident endpoints.
For any given line,
-<function>XDrawLine</function>
+<xref linkend='XDrawLine' xrefstyle='select: title'/>
does not draw a pixel more than once.
If lines intersect, the intersecting pixels are drawn multiple times.
</para>
<para>
<!-- .LP -->
The
-<function>XDrawLines</function>
+<xref linkend='XDrawLines' xrefstyle='select: title'/>
function uses the components of the specified GC to draw
npoints-1 lines between each pair of points (point[i], point[i+1])
in the array of
@@ -1253,7 +1253,7 @@ It draws the lines in the order listed in the array.
The lines join correctly at all intermediate points, and if the first and last
points coincide, the first and last lines also join correctly.
For any given line,
-<function>XDrawLines</function>
+<xref linkend='XDrawLines' xrefstyle='select: title'/>
does not draw a pixel more than once.
If thin (zero line-width) lines intersect,
the intersecting pixels are drawn multiple times.
@@ -1270,17 +1270,17 @@ treats all coordinates after the first as relative to the previous point.
<para>
<!-- .LP -->
The
-<function>XDrawSegments</function>
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>
function draws multiple, unconnected lines.
For each segment,
-<function>XDrawSegments</function>
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>
draws a
line between (x1, y1) and (x2, y2).
It draws the lines in the order listed in the array of
<structname>XSegment</structname>
structures and does not perform joining at coincident endpoints.
For any given line,
-<function>XDrawSegments</function>
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>
does not draw a pixel more than once.
If lines intersect, the intersecting pixels are drawn multiple times.
</para>
@@ -1291,7 +1291,7 @@ function, plane-mask, line-width,
line-style, cap-style, fill-style, subwindow-mode,
clip-x-origin, clip-y-origin, and clip-mask.
The
-<function>XDrawLines</function>
+<xref linkend='XDrawLines' xrefstyle='select: title'/>
function also uses the join-style GC component.
All three functions also use these GC mode-dependent components:
foreground, background, tile, stipple, tile-stipple-x-origin,
@@ -1299,24 +1299,24 @@ tile-stipple-y-origin, dash-offset, and dash-list.
</para>
<para>
<!-- .LP -->
-<function>XDrawLine</function>,
-<function>XDrawLines</function>,
+<xref linkend='XDrawLine' xrefstyle='select: title'/>,
+<xref linkend='XDrawLines' xrefstyle='select: title'/>,
and
-<function>XDrawSegments</function>
+<xref linkend='XDrawSegments' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
and
<errorname>BadMatch</errorname>
errors.
-<function>XDrawLines</function>
+<xref linkend='XDrawLines' xrefstyle='select: title'/>
also can generate
<errorname>BadValue</errorname>
errors.
</para>
</sect2>
-<sect2 id="Drawing_Single_and_Multiple_Rectangles_">
-<title>Drawing Single and Multiple Rectangles </title>
+<sect2 id='Drawing_Single_and_Multiple_Rectangles'>
+<title>Drawing Single and Multiple Rectangles</title>
<!-- .XS -->
<!-- (SN Drawing Single and Multiple Rectangles -->
<!-- .XE -->
@@ -1330,11 +1330,11 @@ errors.
<para>
<!-- .LP -->
To draw the outline of a single rectangle in a given drawable, use
-<function>XDrawRectangle</function>.
+<xref linkend='XDrawRectangle' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawRectangle</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawrectangle'>
+<funcsynopsis id='XDrawRectangle'>
<funcprototype>
<funcdef><function>XDrawRectangle</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1427,11 +1427,11 @@ Specify the width and height(Wh.
<!-- .sp -->
To draw the outline of multiple rectangles
in a given drawable, use
-<function>XDrawRectangles</function>.
+<xref linkend='XDrawRectangles' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawRectangles</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawrectangles'>
+<funcsynopsis id='XDrawRectangles'>
<funcprototype>
<funcdef><function>XDrawRectangles</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1498,9 +1498,9 @@ Specifies the number of rectangles in the array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDrawRectangle</function>
+<xref linkend='XDrawRectangle' xrefstyle='select: title'/>
and
-<function>XDrawRectangles</function>
+<xref linkend='XDrawRectangles' xrefstyle='select: title'/>
functions draw the outlines of the specified rectangle or rectangles as
if a five-point
<systemitem>PolyLine</systemitem>
@@ -1517,7 +1517,7 @@ protocol request were specified for each rectangle:
<!-- .LP -->
For the specified rectangle or rectangles,
these functions do not draw a pixel more than once.
-<function>XDrawRectangles</function>
+<xref linkend='XDrawRectangles' xrefstyle='select: title'/>
draws the rectangles in the order listed in the array.
If rectangles intersect,
the intersecting pixels are drawn multiple times.
@@ -1534,9 +1534,9 @@ tile-stipple-y-origin, dash-offset, and dash-list.
</para>
<para>
<!-- .LP -->
-<function>XDrawRectangle</function>
+<xref linkend='XDrawRectangle' xrefstyle='select: title'/>
and
-<function>XDrawRectangles</function>
+<xref linkend='XDrawRectangles' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -1561,11 +1561,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To draw a single arc in a given drawable, use
-<function>XDrawArc</function>.
+<xref linkend='XDrawArc' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawArc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawarc'>
+<funcsynopsis id='XDrawArc'>
<funcprototype>
<funcdef><function>XDrawArc</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1681,11 +1681,11 @@ arc, in units of degrees * 64.
<!-- .eM -->
<!-- .sp -->
To draw multiple arcs in a given drawable, use
-<function>XDrawArcs</function>.
+<xref linkend='XDrawArcs' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawArcs</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawarcs'>
+<funcsynopsis id='XDrawArcs'>
<funcprototype>
<funcdef><function>XDrawArcs</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1754,9 +1754,9 @@ Specifies the number of arcs in the array.
<!-- .EQ -->
delim %%
<!-- .EN -->
-<function>XDrawArc</function>
+<xref linkend='XDrawArc' xrefstyle='select: title'/>
draws a single circular or elliptical arc, and
-<function>XDrawArcs</function>
+<xref linkend='XDrawArcs' xrefstyle='select: title'/>
draws multiple circular or elliptical arcs.
Each arc is specified by a rectangle and two angles.
The center of the circle or ellipse is the center of the
@@ -1764,9 +1764,9 @@ rectangle, and the major and minor axes are specified by the width and height.
Positive angles indicate counterclockwise motion,
and negative angles indicate clockwise motion.
If the magnitude of angle2 is greater than 360 degrees,
-<function>XDrawArc</function>
+<xref linkend='XDrawArc' xrefstyle='select: title'/>
or
-<function>XDrawArcs</function>
+<xref linkend='XDrawArcs' xrefstyle='select: title'/>
truncates it to 360 degrees.
</para>
<para>
@@ -1827,15 +1827,15 @@ and adjust is:
<para>
<!-- .LP -->
For any given arc,
-<function>XDrawArc</function>
+<xref linkend='XDrawArc' xrefstyle='select: title'/>
and
-<function>XDrawArcs</function>
+<xref linkend='XDrawArcs' xrefstyle='select: title'/>
do not draw a pixel more than once.
If two arcs join correctly and if the line-width is greater than zero
and the arcs intersect,
-<function>XDrawArc</function>
+<xref linkend='XDrawArc' xrefstyle='select: title'/>
and
-<function>XDrawArcs</function>
+<xref linkend='XDrawArcs' xrefstyle='select: title'/>
do not draw a pixel more than once.
Otherwise,
the intersecting pixels of intersecting arcs are drawn multiple times.
@@ -1865,9 +1865,9 @@ tile-stipple-y-origin, dash-offset, and dash-list.
</para>
<para>
<!-- .LP -->
-<function>XDrawArc</function>
+<xref linkend='XDrawArc' xrefstyle='select: title'/>
and
-<function>XDrawArcs</function>
+<xref linkend='XDrawArcs' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -1919,11 +1919,11 @@ A single arc or multiple arcs
<!-- .LP -->
<!-- .sp -->
To fill a single rectangular area in a given drawable, use
-<function>XFillRectangle</function>.
+<xref linkend='XFillRectangle' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFillRectangle</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfillrectangle'>
+<funcsynopsis id='XFillRectangle'>
<funcprototype>
<funcdef><function>XFillRectangle</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2016,11 +2016,11 @@ Specify the width and height(Wh.
<!-- .eM -->
<!-- .sp -->
To fill multiple rectangular areas in a given drawable, use
-<function>XFillRectangles</function>.
+<xref linkend='XFillRectangles' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFillRectangles</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfillrectangles'>
+<funcsynopsis id='XFillRectangles'>
<funcprototype>
<funcdef><function>XFillRectangles</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2087,9 +2087,9 @@ Specifies the number of rectangles in the array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFillRectangle</function>
+<xref linkend='XFillRectangle' xrefstyle='select: title'/>
and
-<function>XFillRectangles</function>
+<xref linkend='XFillRectangles' xrefstyle='select: title'/>
functions fill the specified rectangle or rectangles
as if a four-point
<systemitem>FillPolygon</systemitem>
@@ -2108,12 +2108,12 @@ width and height dimensions, and GC you specify.
</para>
<para>
<!-- .LP -->
-<function>XFillRectangles</function>
+<xref linkend='XFillRectangles' xrefstyle='select: title'/>
fills the rectangles in the order listed in the array.
For any given rectangle,
-<function>XFillRectangle</function>
+<xref linkend='XFillRectangle' xrefstyle='select: title'/>
and
-<function>XFillRectangles</function>
+<xref linkend='XFillRectangles' xrefstyle='select: title'/>
do not draw a pixel more than once.
If rectangles intersect, the intersecting pixels are
drawn multiple times.
@@ -2129,9 +2129,9 @@ and tile-stipple-y-origin.
</para>
<para>
<!-- .LP -->
-<function>XFillRectangle</function>
+<xref linkend='XFillRectangle' xrefstyle='select: title'/>
and
-<function>XFillRectangles</function>
+<xref linkend='XFillRectangles' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -2149,13 +2149,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To fill a polygon area in a given drawable, use
-<function>XFillPolygon</function>.
+<xref linkend='XFillPolygon' xrefstyle='select: title'/>.
<indexterm><primary>Polygons</primary><secondary>filling</secondary></indexterm>
<indexterm><primary>Filling</primary><secondary>polygon</secondary></indexterm>
</para>
<indexterm significance="preferred"><primary>XFillPolygon</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfillpolygon'>
+<funcsynopsis id='XFillPolygon'>
<funcprototype>
<funcdef><function>XFillPolygon</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2252,12 +2252,12 @@ or
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XFillPolygon</function>
+<xref linkend='XFillPolygon' xrefstyle='select: title'/>
fills the region closed by the specified path.
The path is closed
automatically if the last point in the list does not coincide with the
first point.
-<function>XFillPolygon</function>
+<xref linkend='XFillPolygon' xrefstyle='select: title'/>
does not draw a pixel of the region more than once.
<symbol>CoordModeOrigin</symbol>
treats all coordinates as relative to the origin,
@@ -2329,7 +2329,7 @@ and tile-stipple-y-origin.
</para>
<para>
<!-- .LP -->
-<function>XFillPolygon</function>
+<xref linkend='XFillPolygon' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -2350,11 +2350,11 @@ errors.
<indexterm><primary>Arcs</primary><secondary>filling</secondary></indexterm>
<indexterm><primary>Filling</primary><secondary>arcs</secondary></indexterm>
To fill a single arc in a given drawable, use
-<function>XFillArc</function>.
+<xref linkend='XFillArc' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFillArc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfillarc'>
+<funcsynopsis id='XFillArc'>
<funcprototype>
<funcdef><function>XFillArc</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2470,11 +2470,11 @@ arc, in units of degrees * 64.
<!-- .eM -->
<!-- .sp -->
To fill multiple arcs in a given drawable, use
-<function>XFillArcs</function>.
+<xref linkend='XFillArcs' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFillArcs</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfillarcs'>
+<funcsynopsis id='XFillArcs'>
<funcprototype>
<funcdef><function>XFillArcs</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2541,9 +2541,9 @@ Specifies the number of arcs in the array.
<!-- .LP -->
<!-- .eM -->
For each arc,
-<function>XFillArc</function>
+<xref linkend='XFillArc' xrefstyle='select: title'/>
or
-<function>XFillArcs</function>
+<xref linkend='XFillArcs' xrefstyle='select: title'/>
fills the region closed by the infinitely thin path
described by the specified arc and, depending on the
arc-mode specified in the GC, one or two line segments.
@@ -2554,12 +2554,12 @@ For
<symbol>ArcPieSlice</symbol>,
the two line segments joining the endpoints of the arc with the center
point are used.
-<function>XFillArcs</function>
+<xref linkend='XFillArcs' xrefstyle='select: title'/>
fills the arcs in the order listed in the array.
For any given arc,
-<function>XFillArc</function>
+<xref linkend='XFillArc' xrefstyle='select: title'/>
and
-<function>XFillArcs</function>
+<xref linkend='XFillArcs' xrefstyle='select: title'/>
do not draw a pixel more than once.
If regions intersect,
the intersecting pixels are drawn multiple times.
@@ -2575,9 +2575,9 @@ and tile-stipple-y-origin.
</para>
<para>
<!-- .LP -->
-<function>XFillArc</function>
+<xref linkend='XFillArc' xrefstyle='select: title'/>
and
-<function>XFillArcs</function>
+<xref linkend='XFillArcs' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -2637,7 +2637,7 @@ The server can cache fonts for quick lookup.
Fonts are global across all screens in a server.
Several levels are possible when dealing with fonts.
Most applications simply use
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
to load a font and query the font metrics.
</para>
<para>
@@ -3017,11 +3017,11 @@ resource ID or a font ID interchangeably.
<!-- .LP -->
<!-- .sp -->
To load a given font, use
-<function>XLoadFont</function>.
+<xref linkend='XLoadFont' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLoadFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xloadfont'>
+<funcsynopsis id='XLoadFont'>
<funcprototype>
<funcdef>Font <function>XLoadFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3056,7 +3056,7 @@ which is a null-terminated string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLoadFont</function>
+<xref linkend='XLoadFont' xrefstyle='select: title'/>
function loads the specified font and returns its associated font ID.
If the font name is not in the Host Portable Character Encoding,
the result is implementation-dependent.
@@ -3069,7 +3069,7 @@ and the ``*'' character will match any number of characters.
A structured format for font names is specified in the X Consortium standard
<emphasis remap='I'>X Logical Font Description Conventions</emphasis>.
If
-<function>XLoadFont</function>
+<xref linkend='XLoadFont' xrefstyle='select: title'/>
was unsuccessful at loading the specified font,
a
<errorname>BadName</errorname>
@@ -3078,11 +3078,11 @@ Fonts are not associated with a particular screen
and can be stored as a component
of any GC.
When the font is no longer needed, call
-<function>XUnloadFont</function>.
+<xref linkend='XUnloadFont' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XLoadFont</function>
+<xref linkend='XLoadFont' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3093,11 +3093,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To return information about an available font, use
-<function>XQueryFont</function>.
+<xref linkend='XQueryFont' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xqueryfont'>
+<funcsynopsis id='XQueryFont'>
<funcprototype>
<funcdef>XFontStruct *<function>XQueryFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3133,7 +3133,7 @@ ID.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryFont</function>
+<xref linkend='XQueryFont' xrefstyle='select: title'/>
function returns a pointer to the
<structname>XFontStruct</structname>
structure, which contains information associated with the font.
@@ -3144,26 +3144,26 @@ structure will be the
<type>GContext</type>
ID, and you need to be careful when using this ID in other functions
(see
-<function>XGContextFromGC</function>).
+<xref linkend='XGContextFromGC' xrefstyle='select: title'/>).
If the font does not exist,
-<function>XQueryFont</function>
+<xref linkend='XQueryFont' xrefstyle='select: title'/>
returns NULL.
To free this data, use
-<function>XFreeFontInfo</function>.
+<xref linkend='XFreeFontInfo' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To perform a
-<function>XLoadFont</function>
+<xref linkend='XLoadFont' xrefstyle='select: title'/>
and
-<function>XQueryFont</function>
+<xref linkend='XQueryFont' xrefstyle='select: title'/>
in a single operation, use
-<function>XLoadQueryFont</function>.
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLoadQueryFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xloadqueryfont'>
+<funcsynopsis id='XLoadQueryFont'>
<funcprototype>
<funcdef>XFontStruct *<function>XLoadQueryFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3198,9 +3198,9 @@ which is a null-terminated string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
function provides the most common way for accessing a font.
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
both opens (loads) the specified font and returns a pointer to the
appropriate
<structname>XFontStruct</structname>
@@ -3208,12 +3208,12 @@ structure.
If the font name is not in the Host Portable Character Encoding,
the result is implementation-dependent.
If the font does not exist,
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
returns NULL.
</para>
<para>
<!-- .LP -->
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
can generate a
<errorname>BadAlloc</errorname>
error.
@@ -3223,15 +3223,15 @@ error.
<!-- .sp -->
To unload the font and free the storage used by the font structure
that was allocated by
-<function>XQueryFont</function>
+<xref linkend='XQueryFont' xrefstyle='select: title'/>
or
-<function>XLoadQueryFont</function>,
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>,
use
-<function>XFreeFont</function>.
+<xref linkend='XFreeFont' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreefont'>
+<funcsynopsis id='XFreeFont'>
<funcprototype>
<funcdef><function>XFreeFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3265,7 +3265,7 @@ Specifies the storage associated with the font.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeFont</function>
+<xref linkend='XFreeFont' xrefstyle='select: title'/>
function deletes the association between the font resource ID and the specified
font and frees the
<structname>XFontStruct</structname>
@@ -3275,7 +3275,7 @@ The data and the font should not be referenced again.
</para>
<para>
<!-- .LP -->
-<function>XFreeFont</function>
+<xref linkend='XFreeFont' xrefstyle='select: title'/>
can generate a
<errorname>BadFont</errorname>
error.
@@ -3284,11 +3284,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To return a given font property, use
-<function>XGetFontProperty</function>.
+<xref linkend='XGetFontProperty' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetFontProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetfontproperty'>
+<funcsynopsis id='XGetFontProperty'>
<funcprototype>
<funcdef>Bool <function>XGetFontProperty</function></funcdef>
<paramdef>XFontStruct<parameter> *font_struct</parameter></paramdef>
@@ -3334,9 +3334,9 @@ Returns the value of the font property.
<!-- .eM -->
Given the atom for that property,
the
-<function>XGetFontProperty</function>
+<xref linkend='XGetFontProperty' xrefstyle='select: title'/>
function returns the value of the specified font property.
-<function>XGetFontProperty</function>
+<xref linkend='XGetFontProperty' xrefstyle='select: title'/>
also returns
<symbol>False</symbol>
if the property was not defined or
@@ -3357,13 +3357,13 @@ it is likely that the predefined font properties will be present.
<!-- .LP -->
<!-- .sp -->
To unload a font that was loaded by
-<function>XLoadFont</function>,
+<xref linkend='XLoadFont' xrefstyle='select: title'/>,
use
-<function>XUnloadFont</function>.
+<xref linkend='XUnloadFont' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUnloadFont</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xunloadfont'>
+<funcsynopsis id='XUnloadFont'>
<funcprototype>
<funcdef><function>XUnloadFont</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3397,14 +3397,14 @@ Specifies the font.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUnloadFont</function>
+<xref linkend='XUnloadFont' xrefstyle='select: title'/>
function deletes the association between the font resource ID and the specified font.
The font itself will be freed when no other resource references it.
The font should not be referenced again.
</para>
<para>
<!-- .LP -->
-<function>XUnloadFont</function>
+<xref linkend='XUnloadFont' xrefstyle='select: title'/>
can generate a
<errorname>BadFont</errorname>
error.
@@ -3424,11 +3424,11 @@ when querying a font type for a list of available sizes and so on.
<!-- .LP -->
<!-- .sp -->
To return a list of the available font names, use
-<function>XListFonts</function>.
+<xref linkend='XListFonts' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XListFonts</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlistfonts'>
+<funcsynopsis id='XListFonts'>
<funcprototype>
<funcdef>char **<function>XListFonts</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3485,10 +3485,10 @@ Returns the actual number of font names.
<!-- .LP -->
<!-- .eM -->
The
-<function>XListFonts</function>
+<xref linkend='XListFonts' xrefstyle='select: title'/>
function returns an array of available font names
(as controlled by the font search path; see
-<function>XSetFontPath</function>)
+<xref linkend='XSetFontPath' xrefstyle='select: title'/>)
that match the string you passed to the pattern argument.
The pattern string can contain any characters,
but each asterisk (*) is a wildcard for any number of characters,
@@ -3501,21 +3501,21 @@ If the data returned by the server is in the Latin Portable Character Encoding,
then the returned strings are in the Host Portable Character Encoding.
Otherwise, the result is implementation-dependent.
If there are no matching font names,
-<function>XListFonts</function>
+<xref linkend='XListFonts' xrefstyle='select: title'/>
returns NULL.
The client should call
-<function>XFreeFontNames</function>
+<xref linkend='XFreeFontNames' xrefstyle='select: title'/>
when finished with the result to free the memory.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To free a font name array, use
-<function>XFreeFontNames</function>.
+<xref linkend='XFreeFontNames' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeFontNames</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreefontnames'>
+<funcsynopsis id='XFreeFontNames'>
<funcprototype>
<funcdef><function>XFreeFontNames</function></funcdef>
<paramdef>char<parameter> *list[]</parameter></paramdef>
@@ -3538,21 +3538,21 @@ Specifies the array of strings you want to free.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeFontNames</function>
+<xref linkend='XFreeFontNames' xrefstyle='select: title'/>
function frees the array and strings returned by
-<function>XListFonts</function>
+<xref linkend='XListFonts' xrefstyle='select: title'/>
or
-<function>XListFontsWithInfo</function>.
+<xref linkend='XListFontsWithInfo' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To obtain the names and information about available fonts, use
-<function>XListFontsWithInfo</function>.
+<xref linkend='XListFontsWithInfo' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XListFontsWithInfo</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlistfontswithinfo'>
+<funcsynopsis id='XListFontsWithInfo'>
<funcprototype>
<funcdef>char **<function>XListFontsWithInfo</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3620,12 +3620,12 @@ Returns the font information.
<!-- .LP -->
<!-- .eM -->
The
-<function>XListFontsWithInfo</function>
+<xref linkend='XListFontsWithInfo' xrefstyle='select: title'/>
function returns a list of font names that match the specified pattern and their
associated font information.
The list of names is limited to size specified by maxnames.
The information returned for each font is identical to what
-<function>XLoadQueryFont</function>
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>
would return except that the per-character metrics are not returned.
The pattern string can contain any characters,
but each asterisk (*) is a wildcard for any number of characters,
@@ -3638,28 +3638,28 @@ If the data returned by the server is in the Latin Portable Character Encoding,
then the returned strings are in the Host Portable Character Encoding.
Otherwise, the result is implementation-dependent.
If there are no matching font names,
-<function>XListFontsWithInfo</function>
+<xref linkend='XListFontsWithInfo' xrefstyle='select: title'/>
returns NULL.
</para>
<para>
<!-- .LP -->
To free only the allocated name array,
the client should call
-<function>XFreeFontNames</function>.
+<xref linkend='XFreeFontNames' xrefstyle='select: title'/>.
To free both the name array and the font information array
or to free just the font information array,
the client should call
-<function>XFreeFontInfo</function>.
+<xref linkend='XFreeFontInfo' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To free font structures and font names, use
-<function>XFreeFontInfo</function>.
+<xref linkend='XFreeFontInfo' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeFontInfo</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreefontinfo'>
+<funcsynopsis id='XFreeFontInfo'>
<funcprototype>
<funcdef><function>XFreeFontInfo</function></funcdef>
<paramdef>char<parameter> **names</parameter></paramdef>
@@ -3707,15 +3707,15 @@ Specifies the actual number of font names.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeFontInfo</function>
+<xref linkend='XFreeFontInfo' xrefstyle='select: title'/>
function frees a font structure or an array of font structures
and optionally an array of font names.
If NULL is passed for names, no font names are freed.
If a font structure for an open font (returned by
-<function>XLoadQueryFont</function>)
+<xref linkend='XLoadQueryFont' xrefstyle='select: title'/>)
is passed, the structure is freed,
but the font is not closed; use
-<function>XUnloadFont</function>
+<xref linkend='XUnloadFont' xrefstyle='select: title'/>
to close the font.
</para>
</sect2>
@@ -3739,11 +3739,11 @@ These functions return the sum of the character metrics in pixels.
<!-- .LP -->
<!-- .sp -->
To determine the width of an 8-bit character string, use
-<function>XTextWidth</function>.
+<xref linkend='XTextWidth' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XTextWidth</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xtextwidth'>
+<funcsynopsis id='XTextWidth'>
<funcprototype>
<funcdef>int <function>XTextWidth</function></funcdef>
<paramdef>XFontStruct<parameter> *font_struct</parameter></paramdef>
@@ -3789,11 +3789,11 @@ Specifies the character count in the specified string.
<!-- .eM -->
<!-- .sp -->
To determine the width of a 2-byte character string, use
-<function>XTextWidth16</function>.
+<xref linkend='XTextWidth16' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XTextWidth16</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xtextwidth16'>
+<funcsynopsis id='XTextWidth16'>
<funcprototype>
<funcdef>int <function>XTextWidth16</function></funcdef>
<paramdef>XFontStruct<parameter> *font_struct</parameter></paramdef>
@@ -3847,11 +3847,11 @@ Specifies the character count in the specified string.
<para>
<!-- .LP -->
To compute the bounding box of an 8-bit character string in a given font, use
-<function>XTextExtents</function>.
+<xref linkend='XTextExtents' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XTextExtents</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xtextextents'>
+<funcsynopsis id='XTextExtents'>
<funcprototype>
<funcdef><function>XTextExtents</function></funcdef>
<paramdef>XFontStruct<parameter> *font_struct</parameter></paramdef>
@@ -3947,11 +3947,11 @@ structure.
<!-- .eM -->
<!-- .sp -->
To compute the bounding box of a 2-byte character string in a given font, use
-<function>XTextExtents16</function>.
+<xref linkend='XTextExtents16' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XTextExtents16</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xtextextents16'>
+<funcsynopsis id='XTextExtents16'>
<funcprototype>
<funcdef><function>XTextExtents16</function></funcdef>
<paramdef>XFontStruct<parameter> *font_struct</parameter></paramdef>
@@ -4046,15 +4046,15 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XTextExtents</function>
+<xref linkend='XTextExtents' xrefstyle='select: title'/>
and
-<function>XTextExtents16</function>
+<xref linkend='XTextExtents16' xrefstyle='select: title'/>
functions
perform the size computation locally and, thereby,
avoid the round-trip overhead of
-<function>XQueryTextExtents</function>
+<xref linkend='XQueryTextExtents' xrefstyle='select: title'/>
and
-<function>XQueryTextExtents16</function>.
+<xref linkend='XQueryTextExtents16' xrefstyle='select: title'/>.
Both functions return an
<structname>XCharStruct</structname>
structure, whose members are set to the values as follows.
@@ -4094,11 +4094,11 @@ undefined characters in the string are taken to have all zero metrics.
<!-- .LP -->
To query the server for the bounding box of an 8-bit character string in a
given font, use
-<function>XQueryTextExtents</function>.
+<xref linkend='XQueryTextExtents' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryTextExtents</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerytextextents'>
+<funcsynopsis id='XQueryTextExtents'>
<funcprototype>
<funcdef><function>XQueryTextExtents</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4206,11 +4206,11 @@ structure.
<!-- .sp -->
To query the server for the bounding box of a 2-byte character string
in a given font, use
-<function>XQueryTextExtents16</function>.
+<xref linkend='XQueryTextExtents16' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryTextExtents16</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerytextextents16'>
+<funcsynopsis id='XQueryTextExtents16'>
<funcprototype>
<funcdef><function>XQueryTextExtents16</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4316,17 +4316,17 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryTextExtents</function>
+<xref linkend='XQueryTextExtents' xrefstyle='select: title'/>
and
-<function>XQueryTextExtents16</function>
+<xref linkend='XQueryTextExtents16' xrefstyle='select: title'/>
functions return the bounding box of the specified 8-bit and 16-bit
character string in the specified font or the font contained in the
specified GC.
These functions query the X server and, therefore, suffer the round-trip
overhead that is avoided by
-<function>XTextExtents</function>
+<xref linkend='XTextExtents' xrefstyle='select: title'/>
and
-<function>XTextExtents16</function>.
+<xref linkend='XTextExtents16' xrefstyle='select: title'/>.
Both functions return a
<structname>XCharStruct</structname>
structure, whose members are set to the values as follows.
@@ -4364,9 +4364,9 @@ the undefined characters in the string are also ignored.
</para>
<para>
<!-- .LP -->
-<function>XQueryTextExtents</function>
+<xref linkend='XQueryTextExtents' xrefstyle='select: title'/>
and
-<function>XQueryTextExtents16</function>
+<xref linkend='XQueryTextExtents16' xrefstyle='select: title'/>
can generate
<errorname>BadFont</errorname>
and
@@ -4404,9 +4404,9 @@ Image text characters
<para>
<!-- .LP -->
The fundamental text functions
-<function>XDrawText</function>
+<xref linkend='XDrawText' xrefstyle='select: title'/>
and
-<function>XDrawText16</function>
+<xref linkend='XDrawText16' xrefstyle='select: title'/>
use the following structures:
</para>
<para>
@@ -4452,7 +4452,7 @@ coordinates that you pass in the text drawing functions.
<para>
<!-- .LP -->
For example, consider the background rectangle drawn by
-<function>XDrawImageString</function>.
+<xref linkend='XDrawImageString' xrefstyle='select: title'/>.
If you want the upper-left corner of the background rectangle
to be at pixel coordinate (x,y), pass the (x,y + ascent)
as the baseline origin coordinates to the text functions.
@@ -4479,11 +4479,11 @@ structure.
<para>
<!-- .LP -->
To draw 8-bit characters in a given drawable, use
-<function>XDrawText</function>.
+<xref linkend='XDrawText' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawText</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawtext'>
+<funcsynopsis id='XDrawText'>
<funcprototype>
<funcdef><function>XDrawText</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4575,11 +4575,11 @@ Specifies the number of text items in the array.
<!-- .eM -->
<!-- .sp -->
To draw 2-byte characters in a given drawable, use
-<function>XDrawText16</function>.
+<xref linkend='XDrawText16' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawText16</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawtext16'>
+<funcsynopsis id='XDrawText16'>
<funcprototype>
<funcdef><function>XDrawText16</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4670,9 +4670,9 @@ Specifies the number of text items in the array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDrawText16</function>
+<xref linkend='XDrawText16' xrefstyle='select: title'/>
function is similar to
-<function>XDrawText</function>
+<xref linkend='XDrawText' xrefstyle='select: title'/>
except that it uses 2-byte or 16-bit characters.
Both functions allow complex spacing and font shifts between counted strings.
</para>
@@ -4713,9 +4713,9 @@ and tile-stipple-y-origin.
</para>
<para>
<!-- .LP -->
-<function>XDrawText</function>
+<xref linkend='XDrawText' xrefstyle='select: title'/>
and
-<function>XDrawText16</function>
+<xref linkend='XDrawText16' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadFont</errorname>,
@@ -4735,11 +4735,11 @@ errors.
<indexterm><primary>Strings</primary><secondary>drawing</secondary></indexterm>
<indexterm><primary>Drawing</primary><secondary>strings</secondary></indexterm>
To draw 8-bit characters in a given drawable, use
-<function>XDrawString</function>.
+<xref linkend='XDrawString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawstring'>
+<funcsynopsis id='XDrawString'>
<funcprototype>
<funcdef><function>XDrawString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4832,11 +4832,11 @@ Specifies the number of characters in the string argument.
<!-- .eM -->
<!-- .sp -->
To draw 2-byte characters in a given drawable, use
-<function>XDrawString16</function>.
+<xref linkend='XDrawString16' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawString16</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawstring16'>
+<funcsynopsis id='XDrawString16'>
<funcprototype>
<funcdef><function>XDrawString16</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4931,7 +4931,7 @@ additional mask for a fill operation on the drawable.
The drawable is modified only where the font character has a bit set to 1.
For fonts defined with 2-byte matrix indexing
and used with
-<function>XDrawString16</function>,
+<xref linkend='XDrawString16' xrefstyle='select: title'/>,
each byte is used as a byte2 with a byte1 of zero.
</para>
<para>
@@ -4945,9 +4945,9 @@ and tile-stipple-y-origin.
</para>
<para>
<!-- .LP -->
-<function>XDrawString</function>
+<xref linkend='XDrawString' xrefstyle='select: title'/>
and
-<function>XDrawString16</function>
+<xref linkend='XDrawString16' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -4976,11 +4976,11 @@ This prevents annoying flicker on many displays.
<!-- .LP -->
<!-- .sp -->
To draw 8-bit image text characters in a given drawable, use
-<function>XDrawImageString</function>.
+<xref linkend='XDrawImageString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawImageString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawimagestring'>
+<funcsynopsis id='XDrawImageString'>
<funcprototype>
<funcdef><function>XDrawImageString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5072,11 +5072,11 @@ Specifies the number of characters in the string argument.
<!-- .eM -->
<!-- .sp -->
To draw 2-byte image text characters in a given drawable, use
-<function>XDrawImageString16</function>.
+<xref linkend='XDrawImageString16' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDrawImageString16</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdrawimagestring16'>
+<funcsynopsis id='XDrawImageString16'>
<funcprototype>
<funcdef><function>XDrawImageString16</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5167,9 +5167,9 @@ Specifies the number of characters in the string argument.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDrawImageString16</function>
+<xref linkend='XDrawImageString16' xrefstyle='select: title'/>
function is similar to
-<function>XDrawImageString</function>
+<xref linkend='XDrawImageString' xrefstyle='select: title'/>
except that it uses 2-byte or 16-bit characters.
Both functions also use both the foreground and background pixels
of the GC in the destination.
@@ -5211,7 +5211,7 @@ font-ascent + font-descent
<!-- .LP -->
The overall-width, font-ascent, and font-descent
are as would be returned by
-<function>XQueryTextExtents</function>
+<xref linkend='XQueryTextExtents' xrefstyle='select: title'/>
using gc and string.
The function and fill-style defined in the GC are ignored for these functions.
The effective function is
@@ -5223,7 +5223,7 @@ and the effective fill-style is
<!-- .LP -->
For fonts defined with 2-byte matrix indexing
and used with
-<function>XDrawImageString</function>,
+<xref linkend='XDrawImageString' xrefstyle='select: title'/>,
each byte is used as a byte2 with a byte1 of zero.
</para>
<para>
@@ -5234,9 +5234,9 @@ clip-y-origin, and clip-mask.
</para>
<para>
<!-- .LP -->
-<function>XDrawImageString</function>
+<xref linkend='XDrawImageString' xrefstyle='select: title'/>
and
-<function>XDrawImageString16</function>
+<xref linkend='XDrawImageString16' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -5317,11 +5317,11 @@ typedef struct _XImage {
<!-- .eM -->
<!-- .sp -->
To initialize the image manipulation routines of an image structure, use
-<function>XInitImage</function>.
+<xref linkend='XInitImage' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XInitImage</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xinitimage'>
+<funcsynopsis id='XInitImage'>
<funcprototype>
<funcdef>Status <function>XInitImage</function></funcdef>
<paramdef>XImage<parameter> *image</parameter></paramdef>
@@ -5344,12 +5344,12 @@ Specifies the image.
<!-- .LP -->
<!-- .eM -->
The
-<function>XInitImage</function>
+<xref linkend='XInitImage' xrefstyle='select: title'/>
function initializes the internal image manipulation routines of an
image structure, based on the values of the various structure members.
All fields other than the manipulation routines must already be initialized.
If the bytes_per_line member is zero,
-<function>XInitImage</function>
+<xref linkend='XInitImage' xrefstyle='select: title'/>
will assume the image data is contiguous in memory and set the
bytes_per_line member to an appropriate value based on the other
members; otherwise, the value of bytes_per_line is not changed.
@@ -5375,11 +5375,11 @@ or inconsistency in the structure, in which case the image is not changed.
<!-- .sp -->
To combine an image with a rectangle of a drawable on the display,
use
-<function>XPutImage</function>.
+<xref linkend='XPutImage' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPutImage</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xputimage'>
+<funcsynopsis id='XPutImage'>
<funcprototype>
<funcdef><function>XPutImage</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5509,7 +5509,7 @@ Specify the width and height(Wh.
<!-- .LP -->
<!-- .eM -->
The
-<function>XPutImage</function>
+<xref linkend='XPutImage' xrefstyle='select: title'/>
function
combines an image with a rectangle of the specified drawable.
The section of the image defined by the src_x, src_y, width, and height
@@ -5535,7 +5535,7 @@ error results.
<!-- .LP -->
If the characteristics of the image (for example, byte_order and bitmap_unit)
differ from what the server requires,
-<function>XPutImage</function>
+<xref linkend='XPutImage' xrefstyle='select: title'/>
automatically makes the appropriate
conversions.
</para>
@@ -5549,7 +5549,7 @@ foreground and background.
</para>
<para>
<!-- .LP -->
-<function>XPutImage</function>
+<xref linkend='XPutImage' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
@@ -5563,12 +5563,12 @@ errors.
<!-- .sp -->
To return the contents of a rectangle in a given drawable on the display,
use
-<function>XGetImage</function>.
+<xref linkend='XGetImage' xrefstyle='select: title'/>.
This function specifically supports rudimentary screen dumps.
</para>
<indexterm significance="preferred"><primary>XGetImage</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetimage'>
+<funcsynopsis id='XGetImage'>
<funcprototype>
<funcdef>XImage *<function>XGetImage</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5676,7 +5676,7 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetImage</function>
+<xref linkend='XGetImage' xrefstyle='select: title'/>
function returns a pointer to an
<structname>XImage</structname>
structure.
@@ -5690,7 +5690,7 @@ display, the depth of the returned image will be the number of planes
requested.
If the format argument is
<symbol>ZPixmap</symbol>,
-<function>XGetImage</function>
+<xref linkend='XGetImage' xrefstyle='select: title'/>
returns as zero the bits in all planes not
specified in the plane_mask argument.
The function performs no range checking on the values in plane_mask and ignores
@@ -5698,7 +5698,7 @@ extraneous bits.
</para>
<para>
<!-- .LP -->
-<function>XGetImage</function>
+<xref linkend='XGetImage' xrefstyle='select: title'/>
returns the depth of the image to the depth member of the
<structname>XImage</structname>
structure.
@@ -5733,12 +5733,12 @@ The returned contents of visible regions of inferiors
of a different depth than the specified window's depth are also undefined.
The pointer cursor image is not included in the returned contents.
If a problem occurs,
-<function>XGetImage</function>
+<xref linkend='XGetImage' xrefstyle='select: title'/>
returns NULL.
</para>
<para>
<!-- .LP -->
-<function>XGetImage</function>
+<xref linkend='XGetImage' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadMatch</errorname>,
@@ -5751,11 +5751,11 @@ errors.
<!-- .LP -->
To copy the contents of a rectangle on the display
to a location within a preexisting image structure, use
-<function>XGetSubImage</function>.
+<xref linkend='XGetSubImage' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetSubImage</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetsubimage'>
+<funcsynopsis id='XGetSubImage'>
<funcprototype>
<funcdef>XImage *<function>XGetSubImage</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5899,21 +5899,21 @@ Specify the x and y coordinates(Dx.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetSubImage</function>
+<xref linkend='XGetSubImage' xrefstyle='select: title'/>
function updates dest_image with the specified subimage in the same manner as
-<function>XGetImage</function>.
+<xref linkend='XGetImage' xrefstyle='select: title'/>.
If the format argument is
<symbol>XYPixmap</symbol>,
the image contains only the bit planes you passed to the plane_mask argument.
If the format argument is
<symbol>ZPixmap</symbol>,
-<function>XGetSubImage</function>
+<xref linkend='XGetSubImage' xrefstyle='select: title'/>
returns as zero the bits in all planes not
specified in the plane_mask argument.
The function performs no range checking on the values in plane_mask and ignores
extraneous bits.
As a convenience,
-<function>XGetSubImage</function>
+<xref linkend='XGetSubImage' xrefstyle='select: title'/>
returns a pointer to the same
<structname>XImage</structname>
structure specified by dest_image.
@@ -5946,12 +5946,12 @@ the returned contents of such obscured regions are undefined.
The returned contents of visible regions of inferiors
of a different depth than the specified window's depth are also undefined.
If a problem occurs,
-<function>XGetSubImage</function>
+<xref linkend='XGetSubImage' xrefstyle='select: title'/>
returns NULL.
</para>
<para>
<!-- .LP -->
-<function>XGetSubImage</function>
+<xref linkend='XGetSubImage' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>,
<errorname>BadGC</errorname>,
diff --git a/libX11/specs/libX11/CH09.xml b/libX11/specs/libX11/CH09.xml
index d37e0863a..e239db2e9 100644
--- a/libX11/specs/libX11/CH09.xml
+++ b/libX11/specs/libX11/CH09.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="window_and_session_manager_functions">
+<chapter id='Window_and_Session_Manager_Functions'>
<title>Window and Session Manager Functions</title>
<para>
@@ -31,12 +31,12 @@ management functions to:
<para>
<!-- .LP -->
To change a window's parent to another window on the same screen, use
-<function>XReparentWindow</function>.
+<xref linkend='XReparentWindow' xrefstyle='select: title'/>.
There is no way to move a window between screens.
</para>
<indexterm significance="preferred"><primary>XReparentWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xreparentwindow'>
+<funcsynopsis id='XReparentWindow'>
<funcprototype>
<funcdef><function>XReparentWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -104,7 +104,7 @@ Specify the x and y coordinates(Xy.
<!-- .LP -->
<!-- .eM -->
If the specified window is mapped,
-<function>XReparentWindow</function>
+<xref linkend='XReparentWindow' xrefstyle='select: title'/>
automatically performs an
<systemitem>UnmapWindow</systemitem>
request on it, removes it from its current position in the hierarchy,
@@ -115,7 +115,7 @@ sibling windows.
<para>
<!-- .LP -->
After reparenting the specified window,
-<function>XReparentWindow</function>
+<xref linkend='XReparentWindow' xrefstyle='select: title'/>
causes the X server to generate a
<symbol>ReparentNotify</symbol>
event.
@@ -175,7 +175,7 @@ specified window.
</itemizedlist>
<para>
<!-- .LP -->
-<function>XReparentWindow</function>
+<xref linkend='XReparentWindow' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>
and
@@ -194,7 +194,7 @@ The save-set of a client is a list of other clients' windows that,
if they are inferiors of one of the client's windows at connection close,
should not be destroyed and should be remapped if they are unmapped.
For further information about close-connection processing,
-see <link linkend="Using_X_Server_Connection_Close_Operations_">section 2.6</link>.
+see <link linkend='Using_X_Server_Connection_Close_Operations'>section 2.6</link>.
To allow an application's window to survive when a window manager that
has reparented a window fails,
Xlib provides the save-set functions that you can
@@ -216,11 +216,11 @@ when they are destroyed.
<!-- .LP -->
<!-- .sp -->
To add or remove a window from the client's save-set, use
-<function>XChangeSaveSet</function>.
+<xref linkend='XChangeSaveSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XChangeSaveSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangesaveset'>
+<funcsynopsis id='XChangeSaveSet'>
<funcprototype>
<funcdef><function>XChangeSaveSet</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -270,7 +270,7 @@ or
<!-- .LP -->
<!-- .eM -->
Depending on the specified mode,
-<function>XChangeSaveSet</function>
+<xref linkend='XChangeSaveSet' xrefstyle='select: title'/>
either inserts or deletes the specified window from the client's save-set.
The specified window must have been created by some other client,
or a
@@ -279,7 +279,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XChangeSaveSet</function>
+<xref linkend='XChangeSaveSet' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>,
<errorname>BadValue</errorname>,
@@ -291,11 +291,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To add a window to the client's save-set, use
-<function>XAddToSaveSet</function>.
+<xref linkend='XAddToSaveSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XAddToSaveSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xaddtosaveset'>
+<funcsynopsis id='XAddToSaveSet'>
<funcprototype>
<funcdef><function>XAddToSaveSet</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -330,7 +330,7 @@ Specifies the window (Wi.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAddToSaveSet</function>
+<xref linkend='XAddToSaveSet' xrefstyle='select: title'/>
function adds the specified window to the client's save-set.
The specified window must have been created by some other client,
or a
@@ -339,7 +339,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XAddToSaveSet</function>
+<xref linkend='XAddToSaveSet' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>
and
@@ -350,11 +350,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To remove a window from the client's save-set, use
-<function>XRemoveFromSaveSet</function>.
+<xref linkend='XRemoveFromSaveSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRemoveFromSaveSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xremovefromsaveset'>
+<funcsynopsis id='XRemoveFromSaveSet'>
<funcprototype>
<funcdef><function>XRemoveFromSaveSet</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -389,7 +389,7 @@ Specifies the window (Wi.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRemoveFromSaveSet</function>
+<xref linkend='XRemoveFromSaveSet' xrefstyle='select: title'/>
function removes the specified window from the client's save-set.
The specified window must have been created by some other client,
or a
@@ -398,7 +398,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XRemoveFromSaveSet</function>
+<xref linkend='XRemoveFromSaveSet' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>
and
@@ -430,12 +430,12 @@ where M is the minimum number of installed colormaps specified for the screen
in the connection setup.
The required list is maintained as follows.
When a colormap is specified to
-<function>XInstallColormap</function>,
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>,
it is added to the head of the list;
the list is truncated at the tail, if necessary, to keep its length to
at most M.
When a colormap is specified to
-<function>XUninstallColormap</function>
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>
and it is in the required list,
it is removed from the list.
A colormap is not added to the required list when it is implicitly installed
@@ -447,11 +447,11 @@ required list.
<!-- .LP -->
<!-- .sp -->
To install a colormap, use
-<function>XInstallColormap</function>.
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XInstallColormap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xinstallcolormap'>
+<funcsynopsis id='XInstallColormap'>
<funcprototype>
<funcdef><function>XInstallColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -485,16 +485,16 @@ Specifies the colormap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XInstallColormap</function>
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>
function installs the specified colormap for its associated screen.
All windows associated with this colormap immediately display with
true colors.
You associated the windows with this colormap when you created them by calling
-<function>XCreateWindow</function>,
-<function>XCreateSimpleWindow</function>,
-<function>XChangeWindowAttributes</function>,
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>,
+<xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/>,
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>,
or
-<function>XSetWindowColormap</function>.
+<xref linkend='XSetWindowColormap' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -504,14 +504,14 @@ the X server generates a
event on each window that has that colormap.
In addition, for every other colormap that is installed as
a result of a call to
-<function>XInstallColormap</function>,
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>,
the X server generates a
<symbol>ColormapNotify</symbol>
event on each window that has that colormap.
</para>
<para>
<!-- .LP -->
-<function>XInstallColormap</function>
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -520,11 +520,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To uninstall a colormap, use
-<function>XUninstallColormap</function>.
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUninstallColormap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xuninstallcolormap'>
+<funcsynopsis id='XUninstallColormap'>
<funcprototype>
<funcdef><function>XUninstallColormap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -558,7 +558,7 @@ Specifies the colormap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUninstallColormap</function>
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>
function removes the specified colormap from the required
list for its screen.
As a result,
@@ -575,14 +575,14 @@ the X server generates a
event on each window that has that colormap.
In addition, for every other colormap that is installed or uninstalled as a
result of a call to
-<function>XUninstallColormap</function>,
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>,
the X server generates a
<symbol>ColormapNotify</symbol>
event on each window that has that colormap.
</para>
<para>
<!-- .LP -->
-<function>XUninstallColormap</function>
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>
can generate a
<errorname>BadColor</errorname>
error.
@@ -591,11 +591,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To obtain a list of the currently installed colormaps for a given screen, use
-<function>XListInstalledColormaps</function>.
+<xref linkend='XListInstalledColormaps' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XListInstalledColormaps</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlistinstalledcolormaps'>
+<funcsynopsis id='XListInstalledColormaps'>
<funcprototype>
<funcdef>Colormap *<function>XListInstalledColormaps</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -641,18 +641,18 @@ Returns the number of currently installed colormaps.
<!-- .LP -->
<!-- .eM -->
The
-<function>XListInstalledColormaps</function>
+<xref linkend='XListInstalledColormaps' xrefstyle='select: title'/>
function returns a list of the currently installed colormaps for the screen
of the specified window.
The order of the colormaps in the list is not significant
and is no explicit indication of the required list.
When the allocated list is no longer needed,
free it by using
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XListInstalledColormaps</function>
+<xref linkend='XListInstalledColormaps' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -673,11 +673,11 @@ search path for a server.
<!-- .LP -->
<!-- .sp -->
To set the font search path, use
-<function>XSetFontPath</function>.
+<xref linkend='XSetFontPath' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetFontPath</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetfontpath'>
+<funcsynopsis id='XSetFontPath'>
<funcprototype>
<funcdef><function>XSetFontPath</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -724,7 +724,7 @@ Specifies the number of directories in the path.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetFontPath</function>
+<xref linkend='XSetFontPath' xrefstyle='select: title'/>
function defines the directory search path for font lookup.
There is only one search path per X server, not one per client.
The encoding and interpretation of the strings are implementation-dependent,
@@ -742,7 +742,7 @@ The meaning of an error from this request is implementation-dependent.
</para>
<para>
<!-- .LP -->
-<function>XSetFontPath</function>
+<xref linkend='XSetFontPath' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -751,11 +751,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To get the current font search path, use
-<function>XGetFontPath</function>.
+<xref linkend='XGetFontPath' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetFontPath</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetfontpath'>
+<funcsynopsis id='XGetFontPath'>
<funcprototype>
<funcdef>char **<function>XGetFontPath</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -789,25 +789,25 @@ Returns the number of strings in the font path array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetFontPath</function>
+<xref linkend='XGetFontPath' xrefstyle='select: title'/>
function allocates and returns an array of strings containing the search path.
The contents of these strings are implementation-dependent
and are not intended to be interpreted by client applications.
When it is no longer needed,
the data in the font path should be freed by using
-<function>XFreeFontPath</function>.
+<xref linkend='XFreeFontPath' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To free data returned by
-<function>XGetFontPath</function>,
+<xref linkend='XGetFontPath' xrefstyle='select: title'/>,
use
-<function>XFreeFontPath</function>.
+<xref linkend='XFreeFontPath' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeFontPath</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreefontpath'>
+<funcsynopsis id='XFreeFontPath'>
<funcprototype>
<funcdef><function>XFreeFontPath</function></funcdef>
<paramdef>char<parameter> **list</parameter></paramdef>
@@ -830,14 +830,14 @@ Specifies the array of strings you want to free.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeFontPath</function>
+<xref linkend='XFreeFontPath' xrefstyle='select: title'/>
function
frees the data allocated by
-<function>XGetFontPath</function>.
+<xref linkend='XGetFontPath' xrefstyle='select: title'/>.
</para>
</sect1>
-<sect1 id="Grabbing_the_Server_">
-<title>Grabbing the Server </title>
+<sect1 id='Grabbing_the_Server'>
+<title>Grabbing the Server</title>
<!-- .XS -->
<!-- (SN Grabbing the Server -->
<!-- .XE -->
@@ -857,13 +857,13 @@ Although grabbing the server is highly discouraged, it is sometimes necessary.
<!-- .LP -->
<!-- .sp -->
To grab the server, use
-<function>XGrabServer</function>.
+<xref linkend='XGrabServer' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Server</primary><secondary>grabbing</secondary></indexterm>
<indexterm><primary>Grabbing</primary><secondary>server</secondary></indexterm>
<indexterm significance="preferred"><primary>XGrabServer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgrabserver'>
+<funcsynopsis id='XGrabServer'>
<funcprototype>
<funcdef><function>XGrabServer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -886,7 +886,7 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGrabServer</function>
+<xref linkend='XGrabServer' xrefstyle='select: title'/>
function disables processing of requests and close downs on all other
connections than the one this request arrived on.
You should not grab the X server any more than is absolutely necessary.
@@ -895,11 +895,11 @@ You should not grab the X server any more than is absolutely necessary.
<!-- .LP -->
<!-- .sp -->
To ungrab the server, use
-<function>XUngrabServer</function>.
+<xref linkend='XUngrabServer' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUngrabServer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xungrabserver'>
+<funcsynopsis id='XUngrabServer'>
<funcprototype>
<funcdef><function>XUngrabServer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -922,7 +922,7 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUngrabServer</function>
+<xref linkend='XUngrabServer' xrefstyle='select: title'/>
function restarts processing of requests and close downs on other connections.
You should avoid grabbing the X server as much as possible.
</para>
@@ -937,11 +937,11 @@ You should avoid grabbing the X server as much as possible.
Xlib provides a function to cause the connection to
a client to be closed and its resources to be destroyed.
To destroy a client, use
-<function>XKillClient</function>.
+<xref linkend='XKillClient' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XKillClient</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xkillclient'>
+<funcsynopsis id='XKillClient'>
<funcprototype>
<funcdef><function>XKillClient</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -976,7 +976,7 @@ Specifies any resource associated with the client that you want to destroy or
<!-- .LP -->
<!-- .eM -->
The
-<function>XKillClient</function>
+<xref linkend='XKillClient' xrefstyle='select: title'/>
function
forces a close down of the client
that created the resource
@@ -1003,14 +1003,14 @@ and use the window manager to destroy the zombie windows.
</para>
<para>
<!-- .LP -->
-<function>XKillClient</function>
+<xref linkend='XKillClient' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
</para>
</sect1>
-<sect1 id="Controlling_the_Screen_Saver_">
-<title>Controlling the Screen Saver </title>
+<sect1 id='Controlling_the_Screen_Saver'>
+<title>Controlling the Screen Saver</title>
<!-- .XS -->
<!-- (SN Controlling the Screen Saver -->
<!-- .XE -->
@@ -1024,11 +1024,11 @@ or to obtain the current screen saver values.
<!-- .LP -->
<!-- .sp -->
To set the screen saver mode, use
-<function>XSetScreenSaver</function>.
+<xref linkend='XSetScreenSaver' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetScreenSaver</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetscreensaver'>
+<funcsynopsis id='XSetScreenSaver'>
<funcprototype>
<funcdef><function>XSetScreenSaver</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1111,7 +1111,7 @@ Other negative values generate a
<errorname>BadValue</errorname>
error.
If the timeout value is nonzero,
-<function>XSetScreenSaver</function>
+<xref linkend='XSetScreenSaver' xrefstyle='select: title'/>
enables the screen saver.
An interval of 0 disables the random-pattern motion.
If no input from devices (keyboard, mouse, and so on) is generated
@@ -1134,7 +1134,7 @@ and the screen saver is not activated.
The screen saver is deactivated,
and all screen states are restored at the next
keyboard or pointer input or at the next call to
-<function>XForceScreenSaver</function>
+<xref linkend='XForceScreenSaver' xrefstyle='select: title'/>
with mode
<symbol>ScreenSaverReset</symbol>.
</para>
@@ -1150,7 +1150,7 @@ periodically.
</para>
<para>
<!-- .LP -->
-<function>XSetScreenSaver</function>
+<xref linkend='XSetScreenSaver' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -1159,11 +1159,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To force the screen saver on or off, use
-<function>XForceScreenSaver</function>.
+<xref linkend='XForceScreenSaver' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XForceScreenSaver</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xforcescreensaver'>
+<funcsynopsis id='XForceScreenSaver'>
<funcprototype>
<funcdef><function>XForceScreenSaver</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1203,20 +1203,20 @@ or
If the specified mode is
<symbol>ScreenSaverActive</symbol>
and the screen saver currently is deactivated,
-<function>XForceScreenSaver</function>
+<xref linkend='XForceScreenSaver' xrefstyle='select: title'/>
activates the screen saver even if the screen saver had been disabled
with a timeout of zero.
If the specified mode is
<symbol>ScreenSaverReset</symbol>
and the screen saver currently is enabled,
-<function>XForceScreenSaver</function>
+<xref linkend='XForceScreenSaver' xrefstyle='select: title'/>
deactivates the screen saver if it was activated,
and the activation timer is reset to its initial state
(as if device input had been received).
</para>
<para>
<!-- .LP -->
-<function>XForceScreenSaver</function>
+<xref linkend='XForceScreenSaver' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -1225,11 +1225,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To activate the screen saver, use
-<function>XActivateScreenSaver</function>.
+<xref linkend='XActivateScreenSaver' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XActivateScreenSaver</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xactivatescreensaver'>
+<funcsynopsis id='XActivateScreenSaver'>
<funcprototype>
<funcdef><function>XActivateScreenSaver</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1253,11 +1253,11 @@ Specifies the connection to the X server.
<!-- .eM -->
<!-- .sp -->
To reset the screen saver, use
-<function>XResetScreenSaver</function>.
+<xref linkend='XResetScreenSaver' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XResetScreenSaver</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xresetscreensaver'>
+<funcsynopsis id='XResetScreenSaver'>
<funcprototype>
<funcdef><function>XResetScreenSaver</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1281,11 +1281,11 @@ Specifies the connection to the X server.
<!-- .eM -->
<!-- .sp -->
To get the current screen saver values, use
-<function>XGetScreenSaver</function>.
+<xref linkend='XGetScreenSaver' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetScreenSaver</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetscreensaver'>
+<funcsynopsis id='XGetScreenSaver'>
<funcprototype>
<funcdef><function>XGetScreenSaver</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1528,11 +1528,11 @@ specify the length in byte of the type and value strings.
<!-- .LP -->
<!-- .sp -->
To add a single host, use
-<function>XAddHost</function>.
+<xref linkend='XAddHost' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XAddHost</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xaddhost'>
+<funcsynopsis id='XAddHost'>
<funcprototype>
<funcdef><function>XAddHost</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1567,7 +1567,7 @@ Specifies the host that is to be (Ho.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAddHost</function>
+<xref linkend='XAddHost' xrefstyle='select: title'/>
function adds the specified host to the access control list for that display.
The server must be on the same host as the client issuing the command, or a
<errorname>BadAccess</errorname>
@@ -1575,7 +1575,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XAddHost</function>
+<xref linkend='XAddHost' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>
and
@@ -1586,11 +1586,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To add multiple hosts at one time, use
-<function>XAddHosts</function>.
+<xref linkend='XAddHosts' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XAddHosts</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xaddhosts'>
+<funcsynopsis id='XAddHosts'>
<funcprototype>
<funcdef><function>XAddHosts</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1636,7 +1636,7 @@ Specifies the number of hosts.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAddHosts</function>
+<xref linkend='XAddHosts' xrefstyle='select: title'/>
function adds each specified host to the access control list for that display.
The server must be on the same host as the client issuing the command, or a
<errorname>BadAccess</errorname>
@@ -1644,7 +1644,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XAddHosts</function>
+<xref linkend='XAddHosts' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>
and
@@ -1655,11 +1655,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain a host list, use
-<function>XListHosts</function>.
+<xref linkend='XListHosts' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XListHosts</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlisthosts'>
+<funcsynopsis id='XListHosts'>
<funcprototype>
<funcdef>XHostAddress *<function>XListHosts</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1704,26 +1704,26 @@ Returns the state of the access control.
<!-- .LP -->
<!-- .eM -->
The
-<function>XListHosts</function>
+<xref linkend='XListHosts' xrefstyle='select: title'/>
function returns the current access control list as well as whether the use
of the list at connection setup was enabled or disabled.
-<function>XListHosts</function>
+<xref linkend='XListHosts' xrefstyle='select: title'/>
allows a program to find out what machines can make connections.
It also returns a pointer to a list of host structures that
were allocated by the function.
When no longer needed,
this memory should be freed by calling
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To remove a single host, use
-<function>XRemoveHost</function>.
+<xref linkend='XRemoveHost' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRemoveHost</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xremovehost'>
+<funcsynopsis id='XRemoveHost'>
<funcprototype>
<funcdef><function>XRemoveHost</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1758,7 +1758,7 @@ Specifies the host that is to be (Ho.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRemoveHost</function>
+<xref linkend='XRemoveHost' xrefstyle='select: title'/>
function removes the specified host from the access control list
for that display.
The server must be on the same host as the client process, or a
@@ -1770,7 +1770,7 @@ and this operation cannot be reversed unless you reset the server.
</para>
<para>
<!-- .LP -->
-<function>XRemoveHost</function>
+<xref linkend='XRemoveHost' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>
and
@@ -1781,11 +1781,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To remove multiple hosts at one time, use
-<function>XRemoveHosts</function>.
+<xref linkend='XRemoveHosts' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRemoveHosts</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xremovehosts'>
+<funcsynopsis id='XRemoveHosts'>
<funcprototype>
<funcdef><function>XRemoveHosts</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1831,7 +1831,7 @@ Specifies the number of hosts.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRemoveHosts</function>
+<xref linkend='XRemoveHosts' xrefstyle='select: title'/>
function removes each specified host from the access control list for that
display.
The X server must be on the same host as the client process, or a
@@ -1843,7 +1843,7 @@ and this operation cannot be reversed unless you reset the server.
</para>
<para>
<!-- .LP -->
-<function>XRemoveHosts</function>
+<xref linkend='XRemoveHosts' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>
and
@@ -1872,11 +1872,11 @@ at connection setup.
<!-- .LP -->
<!-- .sp -->
To change access control, use
-<function>XSetAccessControl</function>.
+<xref linkend='XSetAccessControl' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetAccessControl</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetaccesscontrol'>
+<funcsynopsis id='XSetAccessControl'>
<funcprototype>
<funcdef><function>XSetAccessControl</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1914,13 +1914,13 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetAccessControl</function>
+<xref linkend='XSetAccessControl' xrefstyle='select: title'/>
function either enables or disables the use of the access control list
at each connection setup.
</para>
<para>
<!-- .LP -->
-<function>XSetAccessControl</function>
+<xref linkend='XSetAccessControl' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>
and
@@ -1931,11 +1931,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To enable access control, use
-<function>XEnableAccessControl</function>.
+<xref linkend='XEnableAccessControl' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XEnableAccessControl</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xenableaccesscontrol'>
+<funcsynopsis id='XEnableAccessControl'>
<funcprototype>
<funcdef><function>XEnableAccessControl</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1958,12 +1958,12 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XEnableAccessControl</function>
+<xref linkend='XEnableAccessControl' xrefstyle='select: title'/>
function enables the use of the access control list at each connection setup.
</para>
<para>
<!-- .LP -->
-<function>XEnableAccessControl</function>
+<xref linkend='XEnableAccessControl' xrefstyle='select: title'/>
can generate a
<errorname>BadAccess</errorname>
error.
@@ -1972,11 +1972,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To disable access control, use
-<function>XDisableAccessControl</function>.
+<xref linkend='XDisableAccessControl' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDisableAccessControl</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdisableaccesscontrol'>
+<funcsynopsis id='XDisableAccessControl'>
<funcprototype>
<funcdef><function>XDisableAccessControl</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1999,12 +1999,12 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDisableAccessControl</function>
+<xref linkend='XDisableAccessControl' xrefstyle='select: title'/>
function disables the use of the access control list at each connection setup.
</para>
<para>
<!-- .LP -->
-<function>XDisableAccessControl</function>
+<xref linkend='XDisableAccessControl' xrefstyle='select: title'/>
can generate a
<errorname>BadAccess</errorname>
error.
diff --git a/libX11/specs/libX11/CH10.xml b/libX11/specs/libX11/CH10.xml
index d3ddd3407..0230549d4 100644
--- a/libX11/specs/libX11/CH10.xml
+++ b/libX11/specs/libX11/CH10.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="events">
+<chapter id='Events'>
<title>Events</title>
<para>
@@ -25,7 +25,7 @@ This chapter discusses the following topics associated with events:
<para>
Functions for handling events are dealt with in
-<link linkend="event_handling_functions">the next chapter</link>.
+<link linkend='Event_Handling_Functions'>the next chapter</link>.
</para>
<sect1 id="Event_Types">
@@ -341,9 +341,9 @@ Unless the client suppresses them by setting graphics-exposures in the GC to
and
<symbol>NoExpose</symbol>
are reported by default as a result of
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
and
-<function>XCopyArea</function>.
+<xref linkend='XCopyArea' xrefstyle='select: title'/>.
<symbol>SelectionClear</symbol>,
<symbol>SelectionRequest</symbol>,
<symbol>SelectionNotify</symbol>,
@@ -887,7 +887,7 @@ If no matching passive grab on the button exists,
the X server automatically starts an active grab for the client receiving
the event and sets the last-pointer-grab time to the current server time.
The effect is essentially equivalent to an
-<function>XGrabButton</function>
+<xref linkend='XGrabButton' xrefstyle='select: title'/>
with these client passed arguments:
</para>
<informaltable>
@@ -943,9 +943,9 @@ with these client passed arguments:
The active grab is automatically terminated when
the logical state of the pointer has all buttons released.
Clients can modify the active grab by calling
-<function>XUngrabPointer</function>
+<xref linkend='XUngrabPointer' xrefstyle='select: title'/>
and
-<function>XChangeActivePointerGrab</function>.
+<xref linkend='XChangeActivePointerGrab' xrefstyle='select: title'/>.
</para>
</sect2>
@@ -972,7 +972,7 @@ and the pointer events
and
<symbol>MotionNotify</symbol>.
For information about the keyboard event-handling utilities,
-see <link linkend="event_handling_functions">chapter 11</link>.
+see <link linkend='Event_Handling_Functions'>chapter 11</link>.
</para>
<para>
<!-- .LP -->
@@ -1092,9 +1092,9 @@ structure set to
to the client for the event window,
until either the key or button state changes,
the pointer leaves the event window, or the client calls
-<function>XQueryPointer</function>
+<xref linkend='XQueryPointer' xrefstyle='select: title'/>
or
-<function>XGetMotionEvents</function>.
+<xref linkend='XGetMotionEvents' xrefstyle='select: title'/>.
The server still may send
<symbol>MotionNotify</symbol>
events without is_hint set to
@@ -1396,7 +1396,7 @@ follows:
</sect2>
</sect1>
-<sect1 id="Window_Entry_Exit_Events">
+<sect1 id='Window_EntryExit_Events'>
<title>Window Entry/Exit Events</title>
<!-- .XS -->
<!-- (SN Window Entry/Exit Events -->
@@ -1452,9 +1452,9 @@ An
or
<symbol>LeaveNotify</symbol>
event also can be generated when some client application calls
-<function>XGrabPointer</function>
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>
and
-<function>XUngrabPointer</function>.
+<xref linkend='XUngrabPointer' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -1620,7 +1620,7 @@ The detail member is set to indicate the notify detail and can be
or
<symbol>NotifyNonlinearVirtual</symbol>.
</para>
-<sect2 id="Normal_Entry_Exit_Events">
+<sect2 id='Normal_EntryExit_Events'>
<title>Normal Entry/Exit Events</title>
<!-- .XS -->
<!-- (SN Normal Entry/Exit Events -->
@@ -1827,7 +1827,7 @@ structure set to
</listitem>
</itemizedlist>
</sect2>
-<sect2 id="Grab_and_Ungrab_Entry_Exit_Events">
+<sect2 id='Grab_and_Ungrab_EntryExit_Events'>
<title>Grab and Ungrab Entry/Exit Events</title>
<!-- .XS -->
<!-- (SN Grab and Ungrab Entry/Exit Events -->
@@ -1854,7 +1854,7 @@ or
structures whose mode member is set to
<symbol>NotifyUngrab</symbol>
(see
-<function>XGrabPointer</function>).
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>).
</para>
<itemizedlist>
<listitem>
@@ -1875,7 +1875,7 @@ It generates
<symbol>EnterNotify</symbol>
and
<symbol>LeaveNotify</symbol>
-events (see <link linkend="Normal_Entry_Exit_Events">section 10.6.1</link>)
+events (see <link linkend='Normal_EntryExit_Events'>section 10.6.1</link>)
with the mode members of the
<type>XEnterWindowEvent</type>
and
@@ -1907,7 +1907,7 @@ It generates
<symbol>EnterNotify</symbol>
and
<symbol>LeaveNotify</symbol>
-events (see <link linkend="Normal_Entry_Exit_Events">section 10.6.1</link>)
+events (see <link linkend='Normal_EntryExit_Events'>section 10.6.1</link>)
with the mode members of the
<type>XEnterWindowEvent</type>
and
@@ -2044,8 +2044,8 @@ the detail member is set to indicate the notify detail and can be
or
<symbol>NotifyDetailNone</symbol>.
</para>
-<sect2 id="Normal_Focus_Events_and_Focus_Events_While_Grabbed_">
-<title>Normal Focus Events and Focus Events While Grabbed </title>
+<sect2 id='Normal_Focus_Events_and_Focus_Events_While_Grabbed'>
+<title>Normal Focus Events and Focus Events While Grabbed</title>
<!-- .XS -->
<!-- (SN Normal Focus Events and Focus Events While Grabbed -->
<!-- .XE -->
@@ -2560,7 +2560,7 @@ or
structures whose mode member is set to
<symbol>NotifyUngrab</symbol>
(see
-<function>XGrabKeyboard</function>).
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>).
</para>
<itemizedlist>
<listitem>
@@ -2814,9 +2814,9 @@ The X server can report
<symbol>GraphicsExpose</symbol>
events to clients wanting information about when a destination region could not
be computed during certain graphics requests:
-<function>XCopyArea</function>
+<xref linkend='XCopyArea' xrefstyle='select: title'/>
or
-<function>XCopyPlane</function>.
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>.
The X server generates this event whenever a destination region could not be
computed because of an obscured or out-of-bounds source region.
In addition, the X server guarantees to report contiguously all of the regions exposed by
@@ -2850,9 +2850,9 @@ attribute of the graphics context to
<symbol>True</symbol>.
You also can set the graphics-expose attribute when creating a graphics
context using
-<function>XCreateGC</function>
+<xref linkend='XCreateGC' xrefstyle='select: title'/>
or by calling
-<function>XSetGraphicsExposures</function>.
+<xref linkend='XSetGraphicsExposures' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2910,12 +2910,12 @@ or
If it is
<symbol>X_CopyArea</symbol>,
a call to
-<function>XCopyArea</function>
+<xref linkend='XCopyArea' xrefstyle='select: title'/>
initiated the request.
If it is
<symbol>X_CopyPlane</symbol>,
a call to
-<function>XCopyPlane</function>
+<xref linkend='XCopyPlane' xrefstyle='select: title'/>
initiated the request.
These constants are defined in
<filename class="headerfile">&lt;X11/Xproto.h&gt;</filename>.
@@ -2950,8 +2950,8 @@ events (and possibly more) are to follow for this window.
</para>
</sect2>
</sect1>
-<sect1 id="Window_State_Change_Events_">
-<title>Window State Change Events </title>
+<sect1 id='Window_State_Change_Events'>
+<title>Window State Change Events</title>
<!-- .XS -->
<!-- (SN Window State Change Events -->
<!-- .XE -->
@@ -3037,10 +3037,10 @@ events to clients wanting information about when a window changes
its position in the stack.
The X server generates this event type whenever a window is actually restacked
as a result of a client application calling
-<function>XCirculateSubwindows</function>,
-<function>XCirculateSubwindowsUp</function>,
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>,
+<xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/>,
or
-<function>XCirculateSubwindowsDown</function>.
+<xref linkend='XCirculateSubwindowsDown' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -3120,47 +3120,47 @@ window requests made by a client application actually completes:
<para>
A window's size, position, border, and/or stacking order is reconfigured
by calling
-<function>XConfigureWindow</function>.
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>.
</para>
</listitem>
<listitem>
<para>
The window's position in the stacking order is changed by calling
-<function>XLowerWindow</function>,
-<function>XRaiseWindow</function>,
+<xref linkend='XLowerWindow' xrefstyle='select: title'/>,
+<xref linkend='XRaiseWindow' xrefstyle='select: title'/>,
or
-<function>XRestackWindows</function>.
+<xref linkend='XRestackWindows' xrefstyle='select: title'/>.
</para>
</listitem>
<listitem>
<para>
A window is moved by calling
-<function>XMoveWindow</function>.
+<xref linkend='XMoveWindow' xrefstyle='select: title'/>.
</para>
</listitem>
<listitem>
<para>
A window's size is changed by calling
-<function>XResizeWindow</function>.
+<xref linkend='XResizeWindow' xrefstyle='select: title'/>.
</para>
</listitem>
<listitem>
<para>
A window's size and location is changed by calling
-<function>XMoveResizeWindow</function>.
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>.
</para>
</listitem>
<listitem>
<para>
A window is mapped and its position in the stacking order is changed
by calling
-<function>XMapRaised</function>.
+<xref linkend='XMapRaised' xrefstyle='select: title'/>.
</para>
</listitem>
<listitem>
<para>
A window's border width is changed by calling
-<function>XSetWindowBorderWidth</function>.
+<xref linkend='XSetWindowBorderWidth' xrefstyle='select: title'/>.
</para>
</listitem>
</itemizedlist>
@@ -3256,9 +3256,9 @@ The X server can report
events to clients wanting information about creation of windows.
The X server generates this event whenever a client
application creates a window by calling
-<function>XCreateWindow</function>
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>
or
-<function>XCreateSimpleWindow</function>.
+<xref linkend='XCreateSimpleWindow' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -3326,9 +3326,9 @@ The X server can report
events to clients wanting information about which windows are destroyed.
The X server generates this event whenever a client application destroys a
window by calling
-<function>XDestroyWindow</function>
+<xref linkend='XDestroyWindow' xrefstyle='select: title'/>
or
-<function>XDestroySubwindows</function>.
+<xref linkend='XDestroySubwindows' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -3400,10 +3400,10 @@ events to clients wanting information about when a window is moved because of a
change in the size of its parent.
The X server generates this event whenever a client
application actually moves a child window as a result of resizing its parent by calling
-<function>XConfigureWindow</function>,
-<function>XMoveResizeWindow</function>,
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>,
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>,
or
-<function>XResizeWindow</function>.
+<xref linkend='XResizeWindow' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -3469,10 +3469,10 @@ The X server can report
events to clients wanting information about which windows are mapped.
The X server generates this event type whenever a client application changes the
window's state from unmapped to mapped by calling
-<function>XMapWindow</function>,
-<function>XMapRaised</function>,
-<function>XMapSubwindows</function>,
-<function>XReparentWindow</function>,
+<xref linkend='XMapWindow' xrefstyle='select: title'/>,
+<xref linkend='XMapRaised' xrefstyle='select: title'/>,
+<xref linkend='XMapSubwindows' xrefstyle='select: title'/>,
+<xref linkend='XReparentWindow' xrefstyle='select: title'/>,
or as a result of save-set processing.
</para>
<para>
@@ -3546,19 +3546,19 @@ successfully calls:
<itemizedlist>
<listitem>
<para>
-<function>XSetModifierMapping</function>
+<xref linkend='XSetModifierMapping' xrefstyle='select: title'/>
to indicate which KeyCodes are to be used as modifiers
</para>
</listitem>
<listitem>
<para>
-<function>XChangeKeyboardMapping</function>
+<xref linkend='XChangeKeyboardMapping' xrefstyle='select: title'/>
to change the keyboard mapping
</para>
</listitem>
<listitem>
<para>
-<function>XSetPointerMapping</function>
+<xref linkend='XSetPointerMapping' xrefstyle='select: title'/>
to set the pointer mapping
</para>
</listitem>
@@ -3616,7 +3616,7 @@ and count represents the number of keycodes altered.
<!-- .LP -->
To update the client application's knowledge of the keyboard,
you should call
-<function>XRefreshKeyboardMapping</function>.
+<xref linkend='XRefreshKeyboardMapping' xrefstyle='select: title'/>.
</para>
</sect2>
<sect2 id="ReparentNotify_Events">
@@ -3633,7 +3633,7 @@ The X server can report
events to clients wanting information about changing a window's parent.
The X server generates this event whenever a client
application calls
-<function>XReparentWindow</function>
+<xref linkend='XReparentWindow' xrefstyle='select: title'/>
and the window is actually reparented.
</para>
<para>
@@ -3936,10 +3936,10 @@ on a specified window.
The X server generates this event type whenever a client initiates a circulate
window request on a window and a subwindow actually needs to be restacked.
The client initiates a circulate window request on the window by calling
-<function>XCirculateSubwindows</function>,
-<function>XCirculateSubwindowsUp</function>,
+<xref linkend='XCirculateSubwindows' xrefstyle='select: title'/>,
+<xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/>,
or
-<function>XCirculateSubwindowsDown</function>.
+<xref linkend='XCirculateSubwindowsDown' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -3952,7 +3952,7 @@ Then, in the future,
the circulate window request for the specified window is not executed,
and thus, any subwindow's position in the stack is not changed.
For example, suppose a client application calls
-<function>XCirculateSubwindowsUp</function>
+<xref linkend='XCirculateSubwindowsUp' xrefstyle='select: title'/>
to raise a subwindow to the top of the stack.
If you had selected
<symbol>SubstructureRedirectMask</symbol>
@@ -4017,16 +4017,16 @@ The configure window request attempts to
reconfigure a window's size, position, border, and stacking order.
The X server generates this event whenever a different client initiates
a configure window request on a window by calling
-<function>XConfigureWindow</function>,
-<function>XLowerWindow</function>,
-<function>XRaiseWindow</function>,
-<function>XMapRaised</function>,
-<function>XMoveResizeWindow</function>,
-<function>XMoveWindow</function>,
-<function>XResizeWindow</function>,
-<function>XRestackWindows</function>,
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>,
+<xref linkend='XLowerWindow' xrefstyle='select: title'/>,
+<xref linkend='XRaiseWindow' xrefstyle='select: title'/>,
+<xref linkend='XMapRaised' xrefstyle='select: title'/>,
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>,
+<xref linkend='XMoveWindow' xrefstyle='select: title'/>,
+<xref linkend='XResizeWindow' xrefstyle='select: title'/>,
+<xref linkend='XRestackWindows' xrefstyle='select: title'/>,
or
-<function>XSetWindowBorderWidth</function>.
+<xref linkend='XSetWindowBorderWidth' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -4040,7 +4040,7 @@ events are generated when a
<systemitem>ConfigureWindow</systemitem>
protocol request is issued on a child window by another client.
For example, suppose a client application calls
-<function>XLowerWindow</function>
+<xref linkend='XLowerWindow' xrefstyle='select: title'/>
to lower a window.
If you had selected
<symbol>SubstructureRedirectMask</symbol>
@@ -4116,10 +4116,10 @@ a map window request on an unmapped window whose override_redirect member
is set to
<symbol>False</symbol>.
Clients initiate map window requests by calling
-<function>XMapWindow</function>,
-<function>XMapRaised</function>,
+<xref linkend='XMapWindow' xrefstyle='select: title'/>,
+<xref linkend='XMapRaised' xrefstyle='select: title'/>,
or
-<function>XMapSubwindows</function>.
+<xref linkend='XMapSubwindows' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -4133,7 +4133,7 @@ the map window request functions is intercepted, and you are sent a
<symbol>MapRequest</symbol>
instead.
For example, suppose a client application calls
-<function>XMapWindow</function>
+<xref linkend='XMapWindow' xrefstyle='select: title'/>
to map a window.
If you (usually a window manager) had selected
<symbol>SubstructureRedirectMask</symbol>
@@ -4190,10 +4190,10 @@ events to clients wanting information about another client's attempts to change
size of a window.
The X server generates this event whenever some other client attempts to change
the size of the specified window by calling
-<function>XConfigureWindow</function>,
-<function>XResizeWindow</function>,
+<xref linkend='XConfigureWindow' xrefstyle='select: title'/>,
+<xref linkend='XResizeWindow' xrefstyle='select: title'/>,
or
-<function>XMoveResizeWindow</function>.
+<xref linkend='XMoveResizeWindow' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -4257,18 +4257,18 @@ Changes the colormap member of the
<structname>XSetWindowAttributes</structname>
structure by
calling
-<function>XChangeWindowAttributes</function>,
-<function>XFreeColormap</function>,
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>,
+<xref linkend='XFreeColormap' xrefstyle='select: title'/>,
or
-<function>XSetWindowColormap</function>
+<xref linkend='XSetWindowColormap' xrefstyle='select: title'/>
</para>
</listitem>
<listitem>
<para>
Installs or uninstalls the colormap by calling
-<function>XInstallColormap</function>
+<xref linkend='XInstallColormap' xrefstyle='select: title'/>
or
-<function>XUninstallColormap</function>
+<xref linkend='XUninstallColormap' xrefstyle='select: title'/>
</para>
</listitem>
</itemizedlist>
@@ -4311,7 +4311,7 @@ colormap is changed, installed, or uninstalled.
For a colormap that is changed, installed, or uninstalled,
the colormap member is set to the colormap associated with the window.
For a colormap that is changed by a call to
-<function>XFreeColormap</function>,
+<xref linkend='XFreeColormap' xrefstyle='select: title'/>,
the colormap member is set to
<symbol>None</symbol>.
The new member is set to indicate whether the colormap
@@ -4386,7 +4386,7 @@ events
The X server generates
<symbol>ClientMessage</symbol>
events only when a client calls the function
-<function>XSendEvent</function>.
+<xref linkend='XSendEvent' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -4491,22 +4491,22 @@ or
The state member is set to
<symbol>PropertyNewValue</symbol>
when a property of the window is changed using
-<function>XChangeProperty</function>
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>
or
-<function>XRotateWindowProperties</function>
+<xref linkend='XRotateWindowProperties' xrefstyle='select: title'/>
(even when adding zero-length data using
-<function>XChangeProperty</function>)
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>)
and when replacing all or part of a property with identical data using
-<function>XChangeProperty</function>
+<xref linkend='XChangeProperty' xrefstyle='select: title'/>
or
-<function>XRotateWindowProperties</function>.
+<xref linkend='XRotateWindowProperties' xrefstyle='select: title'/>.
The state member is set to
<symbol>PropertyDelete</symbol>
when a property of the window is deleted using
-<function>XDeleteProperty</function>
+<xref linkend='XDeleteProperty' xrefstyle='select: title'/>
or, if the delete argument is
<symbol>True</symbol>,
-<function>XGetWindowProperty</function>.
+<xref linkend='XGetWindowProperty' xrefstyle='select: title'/>.
</para>
</sect2>
<sect2 id="SelectionClear_Events">
@@ -4523,7 +4523,7 @@ The X server reports
events to the client losing ownership of a selection.
The X server generates this event type when another client
asserts ownership of the selection by calling
-<function>XSetSelectionOwner</function>.
+<xref linkend='XSetSelectionOwner' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -4555,7 +4555,7 @@ The time member is set to the last change time recorded for the
selection.
The window member is the window that was specified by the current owner
(the owner losing the selection) in its
-<function>XSetSelectionOwner</function>
+<xref linkend='XSetSelectionOwner' xrefstyle='select: title'/>
call.
</para>
</sect2>
@@ -4573,7 +4573,7 @@ The X server reports
events to the owner of a selection.
The X server generates this event whenever a client
requests a selection conversion by calling
-<function>XConvertSelection</function>
+<xref linkend='XConvertSelection' xrefstyle='select: title'/>
for the owned selection.
</para>
<para>
@@ -4606,7 +4606,7 @@ typedef struct {
<!-- .eM -->
The owner member is set to the window
that was specified by the current owner in its
-<function>XSetSelectionOwner</function>
+<xref linkend='XSetSelectionOwner' xrefstyle='select: title'/>
call.
The requestor member is set to the window requesting the selection.
The selection member is set to the atom that names the selection.
@@ -4645,7 +4645,7 @@ This event is generated by the X server in response to a
protocol request when there is no owner for the selection.
When there is an owner, it should be generated by the owner
of the selection by using
-<function>XSendEvent</function>.
+<xref linkend='XSendEvent' xrefstyle='select: title'/>.
The owner of a selection should send this event to a requestor when a selection
has been converted and stored as a property
or when a selection conversion could
diff --git a/libX11/specs/libX11/CH11.xml b/libX11/specs/libX11/CH11.xml
index f203f6f10..9795c3220 100644
--- a/libX11/specs/libX11/CH11.xml
+++ b/libX11/specs/libX11/CH11.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="event_handling_functions">
+<chapter id='Event_Handling_Functions'>
<title>Event Handling Functions</title>
<para>
@@ -38,15 +38,15 @@ application.
One way is to set the event_mask member of the
<structname>XSetWindowAttributes</structname>
structure when you call
-<function>XCreateWindow</function>
+<xref linkend='XCreateWindow' xrefstyle='select: title'/>
and
-<function>XChangeWindowAttributes</function>.
+<xref linkend='XChangeWindowAttributes' xrefstyle='select: title'/>.
Another way is to use
-<function>XSelectInput</function>.
+<xref linkend='XSelectInput' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSelectInput</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xselectinput'>
+<funcsynopsis id='XSelectInput'>
<funcprototype>
<funcdef><function>XSelectInput</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -92,7 +92,7 @@ Specifies the event mask.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSelectInput</function>
+<xref linkend='XSelectInput' xrefstyle='select: title'/>
function requests that the X server report the events associated with the
specified event mask.
Initially, X will not report any of these events.
@@ -156,7 +156,7 @@ The server reports the event to all interested clients.
</para>
<para>
<!-- .LP -->
-<function>XSelectInput</function>
+<xref linkend='XSelectInput' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -180,11 +180,11 @@ These functions differ in the additional tasks they might perform.
<!-- .LP -->
<!-- .sp -->
To flush the output buffer, use
-<function>XFlush</function>.
+<xref linkend='XFlush' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFlush</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xflush'>
+<funcsynopsis id='XFlush'>
<funcprototype>
<funcdef><function>XFlush</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -207,15 +207,15 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFlush</function>
+<xref linkend='XFlush' xrefstyle='select: title'/>
function
flushes the output buffer.
Most client applications need not use this function because the output
buffer is automatically flushed as needed by calls to
-<function>XPending</function>,
-<function>XNextEvent</function>,
+<xref linkend='XPending' xrefstyle='select: title'/>,
+<xref linkend='XNextEvent' xrefstyle='select: title'/>,
and
-<function>XWindowEvent</function>.
+<xref linkend='XWindowEvent' xrefstyle='select: title'/>.
<indexterm><primary>XPending</primary></indexterm>
<indexterm><primary>XNextEvent</primary></indexterm>
<indexterm><primary>XWindowEvent</primary></indexterm>
@@ -226,11 +226,11 @@ Events generated by the server may be enqueued into the library's event queue.
<!-- .sp -->
To flush the output buffer and then wait until all requests have been processed,
use
-<function>XSync</function>.
+<xref linkend='XSync' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSync</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsync'>
+<funcsynopsis id='XSync'>
<funcprototype>
<funcdef><function>XSync</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -256,7 +256,7 @@ Specifies the connection to the X server.
<listitem>
<para>
Specifies a Boolean value that indicates whether
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
discards all events on the event queue.
</para>
</listitem>
@@ -266,13 +266,13 @@ discards all events on the event queue.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
function
flushes the output buffer and then waits until all requests have been received
and processed by the X server.
Any errors generated must be handled by the error handler.
For each protocol error received by Xlib,
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
calls the client application's error handling routine
(see <link linkend="Using_the_Default_Error_Handlers">section 11.8.2</link>).
Any events generated by the server are enqueued into the library's
@@ -282,17 +282,17 @@ event queue.
<!-- .LP -->
Finally, if you passed
<symbol>False</symbol>,
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
does not discard the events in the queue.
If you passed
<symbol>True</symbol>,
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
discards all events in the queue,
including those events that were on the queue before
-<function>XSync</function>
+<xref linkend='XSync' xrefstyle='select: title'/>
was called.
Client applications seldom need to call
-<function>XSync</function>.
+<xref linkend='XSync' xrefstyle='select: title'/>.
</para>
</sect1>
<sect1 id="Event_Queue_Management">
@@ -310,11 +310,11 @@ in its network connection that is not yet read into the event queue.
<!-- .LP -->
<!-- .sp -->
To check the number of events in the event queue, use
-<function>XEventsQueued</function>.
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XEventsQueued</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xeventsqueued'>
+<funcsynopsis id='XEventsQueued'>
<funcprototype>
<funcdef>int <function>XEventsQueued</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -354,53 +354,53 @@ or
<!-- .eM -->
If mode is
<symbol>QueuedAlready</symbol>,
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
returns the number of events
already in the event queue (and never performs a system call).
If mode is
<symbol>QueuedAfterFlush</symbol>,
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
returns the number of events already in the queue if the number is nonzero.
If there are no events in the queue,
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
flushes the output buffer,
attempts to read more events out of the application's connection,
and returns the number read.
If mode is
<symbol>QueuedAfterReading</symbol>,
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
returns the number of events already in the queue if the number is nonzero.
If there are no events in the queue,
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
attempts to read more events out of the application's connection
without flushing the output buffer and returns the number read.
</para>
<para>
<!-- .LP -->
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
always returns immediately without I/O if there are events already in the
queue.
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
with mode
<symbol>QueuedAfterFlush</symbol>
is identical in behavior to
-<function>XPending</function>.
-<function>XEventsQueued</function>
+<xref linkend='XPending' xrefstyle='select: title'/>.
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
with mode
<symbol>QueuedAlready</symbol>
is identical to the
-<function>XQLength</function>
+<xref linkend='XQLength' xrefstyle='select: title'/>
function.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To return the number of events that are pending, use
-<function>XPending</function>.
+<xref linkend='XPending' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPending</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xpending'>
+<funcsynopsis id='XPending'>
<funcprototype>
<funcdef>int <function>XPending</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -423,12 +423,12 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XPending</function>
+<xref linkend='XPending' xrefstyle='select: title'/>
function returns the number of events that have been received from the
X server but have not been removed from the event queue.
-<function>XPending</function>
+<xref linkend='XPending' xrefstyle='select: title'/>
is identical to
-<function>XEventsQueued</function>
+<xref linkend='XEventsQueued' xrefstyle='select: title'/>
with the mode
<symbol>QueuedAfterFlush</symbol>
specified.
@@ -470,11 +470,11 @@ predicate procedures that you provide
<para>
<!-- .LP -->
To get the next event and remove it from the queue, use
-<function>XNextEvent</function>.
+<xref linkend='XNextEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XNextEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xnextevent'>
+<funcsynopsis id='XNextEvent'>
<funcprototype>
<funcdef><function>XNextEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -508,23 +508,23 @@ Returns the next event in the queue.
<!-- .LP -->
<!-- .eM -->
The
-<function>XNextEvent</function>
+<xref linkend='XNextEvent' xrefstyle='select: title'/>
function copies the first event from the event queue into the specified
<structname>XEvent</structname>
structure and then removes it from the queue.
If the event queue is empty,
-<function>XNextEvent</function>
+<xref linkend='XNextEvent' xrefstyle='select: title'/>
flushes the output buffer and blocks until an event is received.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To peek at the event queue, use
-<function>XPeekEvent</function>.
+<xref linkend='XPeekEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPeekEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xpeekevent'>
+<funcsynopsis id='XPeekEvent'>
<funcprototype>
<funcdef><function>XPeekEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -558,11 +558,11 @@ Returns a copy of the matched event's associated structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XPeekEvent</function>
+<xref linkend='XPeekEvent' xrefstyle='select: title'/>
function returns the first event from the event queue,
but it does not remove the event from the queue.
If the queue is empty,
-<function>XPeekEvent</function>
+<xref linkend='XPeekEvent' xrefstyle='select: title'/>
flushes the output buffer and blocks until an event is received.
It then copies the event into the client-supplied
<structname>XEvent</structname>
@@ -633,10 +633,10 @@ structure.
<listitem>
<para>
Specifies the argument passed in from the
-<function>XIfEvent</function>,
-<function>XCheckIfEvent</function>,
+<xref linkend='XIfEvent' xrefstyle='select: title'/>,
+<xref linkend='XCheckIfEvent' xrefstyle='select: title'/>,
or
-<function>XPeekIfEvent</function>
+<xref linkend='XPeekIfEvent' xrefstyle='select: title'/>
function.
</para>
</listitem>
@@ -657,11 +657,11 @@ If it did not find a match, it must return
<!-- .sp -->
To check the event queue for a matching event
and, if found, remove the event from the queue, use
-<function>XIfEvent</function>.
+<xref linkend='XIfEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XIfEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xifevent'>
+<funcsynopsis id='XIfEvent'>
<funcprototype>
<funcdef><function>XIfEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -718,15 +718,15 @@ Specifies the user-supplied argument that will be passed to the predicate proced
<!-- .LP -->
<!-- .eM -->
The
-<function>XIfEvent</function>
+<xref linkend='XIfEvent' xrefstyle='select: title'/>
function completes only when the specified predicate
procedure returns
<symbol>True</symbol>
for an event,
which indicates an event in the queue matches.
-<function>XIfEvent</function>
+<xref linkend='XIfEvent' xrefstyle='select: title'/>
flushes the output buffer if it blocks waiting for additional events.
-<function>XIfEvent</function>
+<xref linkend='XIfEvent' xrefstyle='select: title'/>
removes the matching event from the queue
and copies the structure into the client-supplied
<structname>XEvent</structname>
@@ -736,11 +736,11 @@ structure.
<!-- .LP -->
<!-- .sp -->
To check the event queue for a matching event without blocking, use
-<function>XCheckIfEvent</function>.
+<xref linkend='XCheckIfEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCheckIfEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcheckifevent'>
+<funcsynopsis id='XCheckIfEvent'>
<funcprototype>
<funcdef>Bool <function>XCheckIfEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -797,14 +797,14 @@ Specifies the user-supplied argument that will be passed to the predicate proced
<!-- .LP -->
<!-- .eM -->
When the predicate procedure finds a match,
-<function>XCheckIfEvent</function>
+<xref linkend='XCheckIfEvent' xrefstyle='select: title'/>
copies the matched event into the client-supplied
<structname>XEvent</structname>
structure and returns
<symbol>True</symbol>.
(This event is removed from the queue.)
If the predicate procedure finds no match,
-<function>XCheckIfEvent</function>
+<xref linkend='XCheckIfEvent' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
and the output buffer will have been flushed.
@@ -815,11 +815,11 @@ All earlier events stored in the queue are not discarded.
<!-- .sp -->
To check the event queue for a matching event
without removing the event from the queue, use
-<function>XPeekIfEvent</function>.
+<xref linkend='XPeekIfEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPeekIfEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xpeekifevent'>
+<funcsynopsis id='XPeekIfEvent'>
<funcprototype>
<funcdef><function>XPeekIfEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -876,17 +876,17 @@ Specifies the user-supplied argument that will be passed to the predicate proced
<!-- .LP -->
<!-- .eM -->
The
-<function>XPeekIfEvent</function>
+<xref linkend='XPeekIfEvent' xrefstyle='select: title'/>
function returns only when the specified predicate
procedure returns
<symbol>True</symbol>
for an event.
After the predicate procedure finds a match,
-<function>XPeekIfEvent</function>
+<xref linkend='XPeekIfEvent' xrefstyle='select: title'/>
copies the matched event into the client-supplied
<structname>XEvent</structname>
structure without removing the event from the queue.
-<function>XPeekIfEvent</function>
+<xref linkend='XPeekIfEvent' xrefstyle='select: title'/>
flushes the output buffer if it blocks waiting for additional events.
</para>
</sect2>
@@ -904,11 +904,11 @@ or event types, allowing you to process events out of order.
<!-- .LP -->
<!-- .sp -->
To remove the next event that matches both a window and an event mask, use
-<function>XWindowEvent</function>.
+<xref linkend='XWindowEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XWindowEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xwindowevent'>
+<funcsynopsis id='XWindowEvent'>
<funcprototype>
<funcdef><function>XWindowEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -965,17 +965,17 @@ Returns the matched event's associated structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XWindowEvent</function>
+<xref linkend='XWindowEvent' xrefstyle='select: title'/>
function searches the event queue for an event that matches both the specified
window and event mask.
When it finds a match,
-<function>XWindowEvent</function>
+<xref linkend='XWindowEvent' xrefstyle='select: title'/>
removes that event from the queue and copies it into the specified
<structname>XEvent</structname>
structure.
The other events stored in the queue are not discarded.
If a matching event is not in the queue,
-<function>XWindowEvent</function>
+<xref linkend='XWindowEvent' xrefstyle='select: title'/>
flushes the output buffer and blocks until one is received.
</para>
<para>
@@ -983,17 +983,17 @@ flushes the output buffer and blocks until one is received.
<!-- .sp -->
To remove the next event that matches both a window and an event mask (if any),
use
-<function>XCheckWindowEvent</function>.
+<xref linkend='XCheckWindowEvent' xrefstyle='select: title'/>.
<indexterm><primary>XCheckWindowEvent</primary></indexterm>
This function is similar to
-<function>XWindowEvent</function>
+<xref linkend='XWindowEvent' xrefstyle='select: title'/>
except that it never blocks and it returns a
<type>Bool</type>
indicating if the event was returned.
</para>
<indexterm significance="preferred"><primary>XCheckWindowEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcheckwindowevent'>
+<funcsynopsis id='XCheckWindowEvent'>
<funcprototype>
<funcdef>Bool <function>XCheckWindowEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1050,19 +1050,19 @@ Returns the matched event's associated structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCheckWindowEvent</function>
+<xref linkend='XCheckWindowEvent' xrefstyle='select: title'/>
function searches the event queue and then the events available
on the server connection for the first event that matches the specified window
and event mask.
If it finds a match,
-<function>XCheckWindowEvent</function>
+<xref linkend='XCheckWindowEvent' xrefstyle='select: title'/>
removes that event, copies it into the specified
<structname>XEvent</structname>
structure, and returns
<symbol>True</symbol>.
The other events stored in the queue are not discarded.
If the event you requested is not available,
-<function>XCheckWindowEvent</function>
+<xref linkend='XCheckWindowEvent' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
and the output buffer will have been flushed.
@@ -1071,11 +1071,11 @@ and the output buffer will have been flushed.
<!-- .LP -->
<!-- .sp -->
To remove the next event that matches an event mask, use
-<function>XMaskEvent</function>.
+<xref linkend='XMaskEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XMaskEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmaskevent'>
+<funcsynopsis id='XMaskEvent'>
<funcprototype>
<funcdef><function>XMaskEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1120,33 +1120,33 @@ Returns the matched event's associated structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMaskEvent</function>
+<xref linkend='XMaskEvent' xrefstyle='select: title'/>
function searches the event queue for the events associated with the
specified mask.
When it finds a match,
-<function>XMaskEvent</function>
+<xref linkend='XMaskEvent' xrefstyle='select: title'/>
removes that event and copies it into the specified
<structname>XEvent</structname>
structure.
The other events stored in the queue are not discarded.
If the event you requested is not in the queue,
-<function>XMaskEvent</function>
+<xref linkend='XMaskEvent' xrefstyle='select: title'/>
flushes the output buffer and blocks until one is received.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To return and remove the next event that matches an event mask (if any), use
-<function>XCheckMaskEvent</function>.
+<xref linkend='XCheckMaskEvent' xrefstyle='select: title'/>.
This function is similar to
-<function>XMaskEvent</function>
+<xref linkend='XMaskEvent' xrefstyle='select: title'/>
except that it never blocks and it returns a
<type>Bool</type>
indicating if the event was returned.
</para>
<indexterm significance="preferred"><primary>XCheckMaskEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcheckmaskevent'>
+<funcsynopsis id='XCheckMaskEvent'>
<funcprototype>
<funcdef>Bool <function>XCheckMaskEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1191,18 +1191,18 @@ Returns the matched event's associated structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCheckMaskEvent</function>
+<xref linkend='XCheckMaskEvent' xrefstyle='select: title'/>
function searches the event queue and then any events available on the
server connection for the first event that matches the specified mask.
If it finds a match,
-<function>XCheckMaskEvent</function>
+<xref linkend='XCheckMaskEvent' xrefstyle='select: title'/>
removes that event, copies it into the specified
<structname>XEvent</structname>
structure, and returns
<symbol>True</symbol>.
The other events stored in the queue are not discarded.
If the event you requested is not available,
-<function>XCheckMaskEvent</function>
+<xref linkend='XCheckMaskEvent' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
and the output buffer will have been flushed.
@@ -1211,11 +1211,11 @@ and the output buffer will have been flushed.
<!-- .LP -->
<!-- .sp -->
To return and remove the next event in the queue that matches an event type, use
-<function>XCheckTypedEvent</function>.
+<xref linkend='XCheckTypedEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCheckTypedEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchecktypedevent'>
+<funcsynopsis id='XCheckTypedEvent'>
<funcprototype>
<funcdef>Bool <function>XCheckTypedEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1261,18 +1261,18 @@ Returns the matched event's associated structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCheckTypedEvent</function>
+<xref linkend='XCheckTypedEvent' xrefstyle='select: title'/>
function searches the event queue and then any events available
on the server connection for the first event that matches the specified type.
If it finds a match,
-<function>XCheckTypedEvent</function>
+<xref linkend='XCheckTypedEvent' xrefstyle='select: title'/>
removes that event, copies it into the specified
<structname>XEvent</structname>
structure, and returns
<symbol>True</symbol>.
The other events in the queue are not discarded.
If the event is not available,
-<function>XCheckTypedEvent</function>
+<xref linkend='XCheckTypedEvent' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
and the output buffer will have been flushed.
@@ -1282,11 +1282,11 @@ and the output buffer will have been flushed.
<!-- .sp -->
To return and remove the next event in the queue that matches an event type
and a window, use
-<function>XCheckTypedWindowEvent</function>.
+<xref linkend='XCheckTypedWindowEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCheckTypedWindowEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchecktypedwindowevent'>
+<funcsynopsis id='XCheckTypedWindowEvent'>
<funcprototype>
<funcdef>Bool <function>XCheckTypedWindowEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1343,19 +1343,19 @@ Returns the matched event's associated structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCheckTypedWindowEvent</function>
+<xref linkend='XCheckTypedWindowEvent' xrefstyle='select: title'/>
function searches the event queue and then any events available
on the server connection for the first event that matches the specified
type and window.
If it finds a match,
-<function>XCheckTypedWindowEvent</function>
+<xref linkend='XCheckTypedWindowEvent' xrefstyle='select: title'/>
removes the event from the queue, copies it into the specified
<structname>XEvent</structname>
structure, and returns
<symbol>True</symbol>.
The other events in the queue are not discarded.
If the event is not available,
-<function>XCheckTypedWindowEvent</function>
+<xref linkend='XCheckTypedWindowEvent' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
and the output buffer will have been flushed.
@@ -1370,11 +1370,11 @@ and the output buffer will have been flushed.
<para>
<!-- .LP -->
To push an event back into the event queue, use
-<function>XPutBackEvent</function>.
+<xref linkend='XPutBackEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPutBackEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xputbackevent'>
+<funcsynopsis id='XPutBackEvent'>
<funcprototype>
<funcdef><function>XPutBackEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1408,13 +1408,13 @@ Specifies the event.
<!-- .LP -->
<!-- .eM -->
The
-<function>XPutBackEvent</function>
+<xref linkend='XPutBackEvent' xrefstyle='select: title'/>
function pushes an event back onto the head of the display's event queue
by copying the event into the queue.
This can be useful if you read an event and then decide that you
would rather deal with it later.
There is no limit to the number of times in succession that you can call
-<function>XPutBackEvent</function>.
+<xref linkend='XPutBackEvent' xrefstyle='select: title'/>.
</para>
</sect1>
<sect1 id="Sending_Events_to_Other_Applications">
@@ -1425,11 +1425,11 @@ There is no limit to the number of times in succession that you can call
<para>
<!-- .LP -->
To send an event to a specified window, use
-<function>XSendEvent</function>.
+<xref linkend='XSendEvent' xrefstyle='select: title'/>.
<indexterm><primary>XSendEvent</primary></indexterm>
This function is often used in selection processing.
For example, the owner of a selection should use
-<function>XSendEvent</function>
+<xref linkend='XSendEvent' xrefstyle='select: title'/>
to send a
<symbol>SelectionNotify</symbol>
event to a requestor when a selection has been converted
@@ -1437,7 +1437,7 @@ and stored as a property.
</para>
<indexterm significance="preferred"><primary>XSendEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsendevent'>
+<funcsynopsis id='XSendEvent'>
<funcprototype>
<funcdef>Status <function>XSendEvent</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1507,7 +1507,7 @@ Specifies the event that is to be sent.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSendEvent</function>
+<xref linkend='XSendEvent' xrefstyle='select: title'/>
function identifies the destination window,
determines which clients should receive the specified events,
and ignores any active grabs.
@@ -1537,7 +1537,7 @@ otherwise, the destination window is the focus window.
<para>
<!-- .LP -->
To determine which clients should receive the specified events,
-<function>XSendEvent</function>
+<xref linkend='XSendEvent' xrefstyle='select: title'/>
uses the propagate argument as follows:
</para>
<itemizedlist>
@@ -1591,17 +1591,17 @@ otherwise unaltered and unchecked by the X server except to force send_event to
in the forwarded event and to set the serial number in the event correctly;
therefore these fields
and the display field are ignored by
-<function>XSendEvent</function>.
+<xref linkend='XSendEvent' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XSendEvent</function>
+<xref linkend='XSendEvent' xrefstyle='select: title'/>
returns zero if the conversion to wire protocol format failed
and returns nonzero otherwise.
</para>
<para>
<!-- .LP -->
-<function>XSendEvent</function>
+<xref linkend='XSendEvent' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -1635,7 +1635,7 @@ use
</para>
<indexterm significance="preferred"><primary>XDisplayMotionBufferSize</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdisplaymotionbuffersize'>
+<funcsynopsis id='XGetMotionEvents'>
<funcprototype>
<funcdef>unsigned <type>long</type></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1662,14 +1662,14 @@ and do so to a finer granularity than is reported by
<symbol>MotionNotify</symbol>
events.
The
-<function>XGetMotionEvents</function>
+<xref linkend='XGetMotionEvents' xrefstyle='select: title'/>
function makes this history available.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To get the motion history for a specified window and time, use
-<function>XGetMotionEvents</function>.
+<xref linkend='XGetMotionEvents' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetMotionEvents</primary></indexterm>
<!-- .sM -->
@@ -1743,7 +1743,7 @@ Returns the number of events from the motion history buffer.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetMotionEvents</function>
+<xref linkend='XGetMotionEvents' xrefstyle='select: title'/>
function returns all events in the motion history buffer that fall between the
specified start and stop times, inclusive, and that have coordinates
that lie within the specified window (including its borders) at its present
@@ -1752,7 +1752,7 @@ If the server does not support motion history,
if the start time is later than the stop time,
or if the start time is in the future,
no events are returned;
-<function>XGetMotionEvents</function>
+<xref linkend='XGetMotionEvents' xrefstyle='select: title'/>
returns NULL.
If the stop time is in the future, it is equivalent to specifying
<symbol>CurrentTime</symbol>.
@@ -1779,11 +1779,11 @@ The x and y members are set to the coordinates of the pointer and
are reported relative to the origin
of the specified window.
To free the data returned from this call, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetMotionEvents</function>
+<xref linkend='XGetMotionEvents' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -1824,12 +1824,12 @@ synchronous library behavior.
After completing their work,
all Xlib functions that generate protocol requests call what is known as
an after function.
-<function>XSetAfterFunction</function>
+<xref linkend='XSetAfterFunction' xrefstyle='select: title'/>
sets which function is to be called.
</para>
<indexterm significance="preferred"><primary>XSetAfterFunction</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetafterfunction'>
+<funcsynopsis id='XSetAfterFunction'>
<funcprototype>
<funcdef><type>int</type></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1863,7 +1863,7 @@ Specifies the procedure to be called.
<!-- .LP -->
<!-- .eM -->
The specified procedure is called with only a display pointer.
-<function>XSetAfterFunction</function>
+<xref linkend='XSetAfterFunction' xrefstyle='select: title'/>
returns the previous after function.
</para>
<para>
@@ -1946,11 +1946,11 @@ message and exit.
<!-- .LP -->
<!-- .sp -->
To set the error handler, use
-<function>XSetErrorHandler</function>.
+<xref linkend='XSetErrorHandler' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetErrorHandler</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xseterrorhandler'>
+<funcsynopsis id='XSetErrorHandler'>
<funcprototype>
<funcdef>int *<function>XSetErrorHandler</function></funcdef>
<paramdef>int <parameter> *handler</parameter></paramdef>
@@ -2213,12 +2213,12 @@ fixed alternatives.
<para>
<!-- .LP -->
To obtain textual descriptions of the specified error code, use
-<function>XGetErrorText</function>.
+<xref linkend='XGetErrorText' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetErrorText</primary></indexterm>
<indexterm><primary>Debugging</primary><secondary>error message strings</secondary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgeterrortext'>
+<funcsynopsis id='XGetErrorText'>
<funcprototype>
<funcdef><function>XGetErrorText</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2274,7 +2274,7 @@ Specifies the size of the buffer.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetErrorText</function>
+<xref linkend='XGetErrorText' xrefstyle='select: title'/>
function copies a null-terminated string describing the specified error code
into the specified buffer.
The returned text is in the encoding of the current locale.
@@ -2286,11 +2286,11 @@ and error strings.
<!-- .LP -->
<!-- .sp -->
To obtain error messages from the error database, use
-<function>XGetErrorDatabaseText</function>.
+<xref linkend='XGetErrorDatabaseText' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetErrorDatabaseText</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgeterrordatabasetext'>
+<funcsynopsis id='XGetErrorDatabaseText'>
<funcprototype>
<funcdef><function>XGetErrorDatabaseText</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2367,7 +2367,7 @@ Specifies the size of the buffer.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetErrorDatabaseText</function>
+<xref linkend='XGetErrorDatabaseText' xrefstyle='select: title'/>
function returns a null-terminated message
(or the default message) from the error message
database.
@@ -2431,11 +2431,11 @@ the default_string is returned to the buffer argument.
<!-- .LP -->
<!-- .sp -->
To report an error to the user when the requested display does not exist, use
-<function>XDisplayName</function>.
+<xref linkend='XDisplayName' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDisplayName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdisplayname'>
+<funcsynopsis id='XDisplayName'>
<funcprototype>
<funcdef>char *<function>XDisplayName</function></funcdef>
<paramdef>char<parameter> *string</parameter></paramdef>
@@ -2458,14 +2458,14 @@ Specifies the character string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDisplayName</function>
+<xref linkend='XDisplayName' xrefstyle='select: title'/>
function returns the name of the display that
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
would attempt to use.
If a NULL string is specified,
-<function>XDisplayName</function>
+<xref linkend='XDisplayName' xrefstyle='select: title'/>
looks in the environment for the display and returns the display name that
-<function>XOpenDisplay</function>
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>
would attempt to use.
This makes it easier to report to the user precisely which display the
program attempted to open when the initial connection attempt failed.
diff --git a/libX11/specs/libX11/CH12.xml b/libX11/specs/libX11/CH12.xml
index 8334e9eb9..e65bebc0c 100644
--- a/libX11/specs/libX11/CH12.xml
+++ b/libX11/specs/libX11/CH12.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="input_device_functions">
+<chapter id='Input_Device_Functions'>
<title>Input Device Functions</title>
<para>
@@ -18,8 +18,8 @@ You can use the Xlib input device functions to:
<listitem><para>Manipulate the keyboard encoding</para></listitem>
</itemizedlist>
-<sect1 id="Pointer_Grabbing_">
-<title>Pointer Grabbing </title>
+<sect1 id='Pointer_Grabbing'>
+<title>Pointer Grabbing</title>
<!-- .XS -->
<!-- (SN Pointer Grabbing -->
<!-- .XE -->
@@ -47,7 +47,7 @@ further mouse and keyboard events will continue to be processed.
If the keyboard or pointer is in synchronous mode, no
further events are processed until the grabbing client
allows them (see
-<function>XAllowEvents</function>).
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>).
The keyboard or pointer is considered frozen during this
interval.
The event that triggered the grab can also be replayed.
@@ -64,9 +64,9 @@ There are two kinds of grabs:
active and passive.
An active grab occurs when a single client grabs the keyboard and/or pointer
explicitly (see
-<function>XGrabPointer</function>
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>
and
-<function>XGrabKeyboard</function>).
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>).
<indexterm><primary>Passive grab</primary></indexterm>
A passive grab occurs when clients grab a particular keyboard key
or pointer button in a window,
@@ -154,13 +154,13 @@ and
<!-- .LP -->
<!-- .sp -->
To grab the pointer, use
-<function>XGrabPointer</function>.
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Grabbing</primary><secondary>pointer</secondary></indexterm>
<indexterm><primary>Pointer</primary><secondary>grabbing</secondary></indexterm>
<indexterm significance="preferred"><primary>XGrabPointer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgrabpointer'>
+<funcsynopsis id='XGrabPointer'>
<funcprototype>
<funcdef>int <function>XGrabPointer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -285,12 +285,12 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XGrabPointer</function>
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>
function actively grabs control of the pointer and returns
<symbol>GrabSuccess</symbol>
if the grab was successful.
Further pointer events are reported only to the grabbing client.
-<function>XGrabPointer</function>
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>
overrides any active pointer grab by this client.
If owner_events is
<symbol>False</symbol>,
@@ -319,7 +319,7 @@ the state of the pointer, as seen by
client applications,
appears to freeze, and the X server generates no further pointer events
until the grabbing client calls
-<function>XAllowEvents</function>
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>
or until the pointer grab is released.
Actual pointer changes are not lost while the pointer is frozen;
they are simply queued in the server for later processing.
@@ -335,7 +335,7 @@ the state of the keyboard, as seen by
client applications,
appears to freeze, and the X server generates no further keyboard events
until the grabbing client calls
-<function>XAllowEvents</function>
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>
or until the pointer grab is released.
Actual keyboard changes are not lost while the pointer is frozen;
they are simply queued in the server for later processing.
@@ -378,7 +378,7 @@ grabbed the pointer before its request was processed.
</para>
<para>
<!-- .LP -->
-<function>XGrabPointer</function>
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>
generates
<symbol>EnterNotify</symbol>
and
@@ -390,7 +390,7 @@ events.
Either if grab_window or confine_to window is not viewable
or if the confine_to window lies completely outside the boundaries of the root
window,
-<function>XGrabPointer</function>
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>
fails and returns
<symbol>GrabNotViewable</symbol>.
If the pointer is actively grabbed by some other client,
@@ -408,7 +408,7 @@ is replaced by the current X server time).
</para>
<para>
<!-- .LP -->
-<function>XGrabPointer</function>
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>
can generate
<errorname>BadCursor</errorname>,
<errorname>BadValue</errorname>,
@@ -420,13 +420,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To ungrab the pointer, use
-<function>XUngrabPointer</function>.
+<xref linkend='XUngrabPointer' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Ungrabbing</primary><secondary>pointer</secondary></indexterm>
<indexterm><primary>Pointer</primary><secondary>ungrabbing</secondary></indexterm>
<indexterm significance="preferred"><primary>XUngrabPointer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xungrabpointer'>
+<funcsynopsis id='XUngrabPointer'>
<funcprototype>
<funcdef><function>XUngrabPointer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -462,13 +462,13 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XUngrabPointer</function>
+<xref linkend='XUngrabPointer' xrefstyle='select: title'/>
function releases the pointer and any queued events
if this client has actively grabbed the pointer from
-<function>XGrabPointer</function>,
-<function>XGrabButton</function>,
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>,
+<xref linkend='XGrabButton' xrefstyle='select: title'/>,
or from a normal button press.
-<function>XUngrabPointer</function>
+<xref linkend='XUngrabPointer' xrefstyle='select: title'/>
does not release the pointer if the specified
time is earlier than the last-pointer-grab time or is later than the
current X server time.
@@ -488,13 +488,13 @@ outside the boundaries of the root window.
<!-- .LP -->
<!-- .sp -->
To change an active pointer grab, use
-<function>XChangeActivePointerGrab</function>.
+<xref linkend='XChangeActivePointerGrab' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Pointer</primary><secondary>grabbing</secondary></indexterm>
<indexterm ><primary>Changing</primary><secondary>pointer grab</secondary></indexterm>
<indexterm significance="preferred"><primary>XChangeActivePointerGrab</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangeactivepointergrab'>
+<funcsynopsis id='XChangeActivePointerGrab'>
<funcprototype>
<funcdef><function>XChangeActivePointerGrab</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -554,18 +554,18 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XChangeActivePointerGrab</function>
+<xref linkend='XChangeActivePointerGrab' xrefstyle='select: title'/>
function changes the specified dynamic parameters if the pointer is actively
grabbed by the client and if the specified time is no earlier than the
last-pointer-grab time and no later than the current X server time.
This function has no effect on the passive parameters of an
-<function>XGrabButton</function>.
+<xref linkend='XGrabButton' xrefstyle='select: title'/>.
The interpretation of event_mask and cursor is the same as described in
-<function>XGrabPointer</function>.
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XChangeActivePointerGrab</function>
+<xref linkend='XChangeActivePointerGrab' xrefstyle='select: title'/>
can generate
<errorname>BadCursor</errorname>
and
@@ -576,13 +576,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To grab a pointer button, use
-<function>XGrabButton</function>.
+<xref linkend='XGrabButton' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Grabbing</primary><secondary>buttons</secondary></indexterm>
<indexterm><primary>Button</primary><secondary>grabbing</secondary></indexterm>
<indexterm significance="preferred"><primary>XGrabButton</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgrabbutton'>
+<funcsynopsis id='XGrabButton'>
<funcprototype>
<funcdef><function>XGrabButton</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -720,11 +720,11 @@ Specifies the cursor that is to be displayed or
<!-- .LP -->
<!-- .eM -->
The
-<function>XGrabButton</function>
+<xref linkend='XGrabButton' xrefstyle='select: title'/>
function establishes a passive grab.
In the future,
the pointer is actively grabbed (as for
-<function>XGrabPointer</function>),
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>),
the last-pointer-grab time is set to the time at which the button was pressed
(as transmitted in the
<symbol>ButtonPress</symbol>
@@ -760,7 +760,7 @@ on any ancestor of grab_window.
<para>
<!-- .LP -->
The interpretation of the remaining arguments is as for
-<function>XGrabPointer</function>.
+<xref linkend='XGrabPointer' xrefstyle='select: title'/>.
The active grab is terminated automatically when the logical state of the
pointer has all buttons released
(independent of the state of the logical modifier keys).
@@ -790,7 +790,7 @@ to a physical button.
<para>
<!-- .LP -->
If some other client has already issued an
-<function>XGrabButton</function>
+<xref linkend='XGrabButton' xrefstyle='select: title'/>
with the same button/key combination on the same window, a
<errorname>BadAccess</errorname>
error results.
@@ -803,12 +803,12 @@ and a
<errorname>BadAccess</errorname>
error results (no grabs are
established) if there is a conflicting grab for any combination.
-<function>XGrabButton</function>
+<xref linkend='XGrabButton' xrefstyle='select: title'/>
has no effect on an active grab.
</para>
<para>
<!-- .LP -->
-<function>XGrabButton</function>
+<xref linkend='XGrabButton' xrefstyle='select: title'/>
can generate
<errorname>BadCursor</errorname>,
<errorname>BadValue</errorname>,
@@ -820,13 +820,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To ungrab a pointer button, use
-<function>XUngrabButton</function>.
+<xref linkend='XUngrabButton' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Ungrabbing</primary><secondary>buttons</secondary></indexterm>
<indexterm><primary>Button</primary><secondary>ungrabbing</secondary></indexterm>
<indexterm significance="preferred"><primary>XUngrabButton</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xungrabbutton'>
+<funcsynopsis id='XUngrabButton'>
<funcprototype>
<funcdef><function>XUngrabButton</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -886,7 +886,7 @@ Specifies the grab window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUngrabButton</function>
+<xref linkend='XUngrabButton' xrefstyle='select: title'/>
function releases the passive button/key combination on the specified window if
it was grabbed by this client.
A modifiers of
@@ -899,12 +899,12 @@ A button of
<symbol>AnyButton</symbol>
is equivalent to issuing the
request for all possible buttons.
-<function>XUngrabButton</function>
+<xref linkend='XUngrabButton' xrefstyle='select: title'/>
has no effect on an active grab.
</para>
<para>
<!-- .LP -->
-<function>XUngrabButton</function>
+<xref linkend='XUngrabButton' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -912,8 +912,8 @@ and
errors.
</para>
</sect1>
-<sect1 id="Keyboard_Grabbing_">
-<title>Keyboard Grabbing </title>
+<sect1 id='Keyboard_Grabbing'>
+<title>Keyboard Grabbing</title>
<!-- .XS -->
<!-- (SN Keyboard Grabbing -->
<!-- .XE -->
@@ -941,13 +941,13 @@ and
<!-- .LP -->
<!-- .sp -->
To grab the keyboard, use
-<function>XGrabKeyboard</function>.
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Keyboard</primary><secondary>grabbing</secondary></indexterm>
<indexterm><primary>Grabbing</primary><secondary>keyboard</secondary></indexterm>
<indexterm significance="preferred"><primary>XGrabKeyboard</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgrabkeyboard'>
+<funcsynopsis id='XGrabKeyboard'>
<funcprototype>
<funcdef>int <function>XGrabKeyboard</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1035,7 +1035,7 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XGrabKeyboard</function>
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>
function actively grabs control of the keyboard and generates
<symbol>FocusIn</symbol>
and
@@ -1043,7 +1043,7 @@ and
events.
Further key events are reported only to the
grabbing client.
-<function>XGrabKeyboard</function>
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>
overrides any active keyboard grab by this client.
If owner_events is
<symbol>False</symbol>,
@@ -1075,7 +1075,7 @@ If the keyboard_mode argument is
the state of the keyboard (as seen by client applications) appears to freeze,
and the X server generates no further keyboard events until the
grabbing client issues a releasing
-<function>XAllowEvents</function>
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>
call or until the keyboard grab is released.
Actual keyboard changes are not lost while the keyboard is frozen;
they are simply queued in the server for later processing.
@@ -1091,7 +1091,7 @@ If pointer_mode is
the state of the pointer (as seen by client applications) appears to freeze,
and the X server generates no further pointer events
until the grabbing client issues a releasing
-<function>XAllowEvents</function>
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>
call or until the keyboard grab is released.
Actual pointer changes are not lost while the pointer is frozen;
they are simply queued in the server for later processing.
@@ -1099,7 +1099,7 @@ they are simply queued in the server for later processing.
<para>
<!-- .LP -->
If the keyboard is actively grabbed by some other client,
-<function>XGrabKeyboard</function>
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>
fails and returns
<symbol>AlreadyGrabbed</symbol>.
If grab_window is not viewable,
@@ -1118,7 +1118,7 @@ is replaced by the current X server time).
</para>
<para>
<!-- .LP -->
-<function>XGrabKeyboard</function>
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -1129,13 +1129,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To ungrab the keyboard, use
-<function>XUngrabKeyboard</function>.
+<xref linkend='XUngrabKeyboard' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Keyboard</primary><secondary>ungrabbing</secondary></indexterm>
<indexterm><primary>Ungrabbing</primary><secondary>keyboard</secondary></indexterm>
<indexterm significance="preferred"><primary>XUngrabKeyboard</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xungrabkeyboard'>
+<funcsynopsis id='XUngrabKeyboard'>
<funcprototype>
<funcdef><function>XUngrabKeyboard</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1171,14 +1171,14 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XUngrabKeyboard</function>
+<xref linkend='XUngrabKeyboard' xrefstyle='select: title'/>
function
releases the keyboard and any queued events if this client has it actively grabbed from
either
-<function>XGrabKeyboard</function>
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>
or
-<function>XGrabKey</function>.
-<function>XUngrabKeyboard</function>
+<xref linkend='XGrabKey' xrefstyle='select: title'/>.
+<xref linkend='XUngrabKeyboard' xrefstyle='select: title'/>
does not release the keyboard and any queued events
if the specified time is earlier than
the last-keyboard-grab time or is later than the current X server time.
@@ -1196,13 +1196,13 @@ active keyboard grab becomes not viewable.
<!-- .LP -->
<!-- .sp -->
To passively grab a single key of the keyboard, use
-<function>XGrabKey</function>.
+<xref linkend='XGrabKey' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Key</primary><secondary>grabbing</secondary></indexterm>
<indexterm><primary>Grabbing</primary><secondary>keys</secondary></indexterm>
<indexterm significance="preferred"><primary>XGrabKey</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgrabkey'>
+<funcsynopsis id='XGrabKey'>
<funcprototype>
<funcdef><function>XGrabKey</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1302,11 +1302,11 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XGrabKey</function>
+<xref linkend='XGrabKey' xrefstyle='select: title'/>
function establishes a passive grab on the keyboard.
In the future,
the keyboard is actively grabbed (as for
-<function>XGrabKeyboard</function>),
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>),
the last-keyboard-grab time is set to the time at which the key was pressed
(as transmitted in the
<symbol>KeyPress</symbol>
@@ -1339,7 +1339,7 @@ on any ancestor of grab_window.
<para>
<!-- .LP -->
The interpretation of the remaining arguments is as for
-<function>XGrabKeyboard</function>.
+<xref linkend='XGrabKeyboard' xrefstyle='select: title'/>.
The active grab is terminated automatically when the logical state of the
keyboard has the specified key released
(independent of the logical state of the modifier keys).
@@ -1372,7 +1372,7 @@ error results.
<para>
<!-- .LP -->
If some other client has issued a
-<function>XGrabKey</function>
+<xref linkend='XGrabKey' xrefstyle='select: title'/>
with the same key combination on the same window, a
<errorname>BadAccess</errorname>
error results.
@@ -1388,7 +1388,7 @@ if there is a conflicting grab for any combination.
</para>
<para>
<!-- .LP -->
-<function>XGrabKey</function>
+<xref linkend='XGrabKey' xrefstyle='select: title'/>
can generate
<errorname>BadAccess</errorname>,
<errorname>BadValue</errorname>,
@@ -1400,13 +1400,13 @@ errors.
<!-- .LP -->
<!-- .sp -->
To ungrab a key, use
-<function>XUngrabKey</function>.
+<xref linkend='XUngrabKey' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Key</primary><secondary>ungrabbing</secondary></indexterm>
<indexterm><primary>Ungrabbing</primary><secondary>keys</secondary></indexterm>
<indexterm significance="preferred"><primary>XUngrabKey</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xungrabkey'>
+<funcsynopsis id='XUngrabKey'>
<funcprototype>
<funcdef><function>XUngrabKey</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1465,7 +1465,7 @@ Specifies the grab window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUngrabKey</function>
+<xref linkend='XUngrabKey' xrefstyle='select: title'/>
function releases the key combination on the specified window if it was grabbed
by this client.
It has no effect on an active grab.
@@ -1480,7 +1480,7 @@ is equivalent to issuing the request for all possible key codes.
</para>
<para>
<!-- .LP -->
-<function>XUngrabKey</function>
+<xref linkend='XUngrabKey' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -1503,11 +1503,11 @@ describes the mechanism for resuming event processing.
<!-- .LP -->
<!-- .sp -->
To allow further events to be processed when the device has been frozen, use
-<function>XAllowEvents</function>.
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XAllowEvents</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xallowevents'>
+<funcsynopsis id='XAllowEvents'>
<funcprototype>
<funcdef><function>XAllowEvents</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1564,7 +1564,7 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XAllowEvents</function>
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>
function releases some queued events if the client has caused a device
to freeze.
It has no effect if the specified time is earlier than the last-grab
@@ -1608,13 +1608,13 @@ Depending on the event_mode argument, the following occurs:
<entry><symbol>ReplayPointer</symbol></entry>
<entry>If the pointer is actively grabbed by the client and is frozen as the result of
an event having been sent to the client (either from the activation of an
- <function>XGrabButton</function>
+ <xref linkend='XGrabButton' xrefstyle='select: title'/>
or from a previous
- <function>XAllowEvents</function>
+ <xref linkend='XAllowEvents' xrefstyle='select: title'/>
with mode
<symbol>SyncPointer</symbol>
but not from an
- <function>XGrabPointer</function>),
+ <xref linkend='XGrabPointer' xrefstyle='select: title'/>),
the pointer grab is released and that event is completely reprocessed.
This time, however, the function ignores any passive grabs at or above
(toward the root of) the grab_window of the grab just released.
@@ -1653,13 +1653,13 @@ Depending on the event_mode argument, the following occurs:
<entry>If the keyboard is actively grabbed by the client and is frozen
as the result of an event having been sent to the client (either from the
activation of an
- <function>XGrabKey</function>
+ <xref linkend='XGrabKey' xrefstyle='select: title'/>
or from a previous
- <function>XAllowEvents</function>
+ <xref linkend='XAllowEvents' xrefstyle='select: title'/>
with mode
<symbol>SyncKeyboard</symbol>
but not from an
- <function>XGrabKeyboard</function>),
+ <xref linkend='XGrabKeyboard' xrefstyle='select: title'/>),
the keyboard grab is released and that event is completely reprocessed.
This time, however, the function ignores any passive grabs at or above
(toward the root of)
@@ -1732,12 +1732,12 @@ the freeze must be released on behalf of both grabs before events can
again be processed.
If a device is frozen twice by a single client,
then a single
-<function>XAllowEvents</function>
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>
releases both.
</para>
<para>
<!-- .LP -->
-<function>XAllowEvents</function>
+<xref linkend='XAllowEvents' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -1758,11 +1758,11 @@ pointer to a new position under program control.
<!-- .LP -->
<!-- .sp -->
To move the pointer to an arbitrary point in a window, use
-<function>XWarpPointer</function>.
+<xref linkend='XWarpPointer' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XWarpPointer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xwarppointer'>
+<funcsynopsis id='XWarpPointer'>
<funcprototype>
<funcdef><function>XWarpPointer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1876,11 +1876,11 @@ Specify the x and y coordinates within the destination window.
<!-- .eM -->
If dest_w is
<symbol>None</symbol>,
-<function>XWarpPointer</function>
+<xref linkend='XWarpPointer' xrefstyle='select: title'/>
moves the pointer by the offsets (dest_x, dest_y) relative to the current
position of the pointer.
If dest_w is a window,
-<function>XWarpPointer</function>
+<xref linkend='XWarpPointer' xrefstyle='select: title'/>
moves the pointer to the offsets (dest_x, dest_y) relative to the origin of
dest_w.
However, if src_w is a window,
@@ -1902,14 +1902,14 @@ The pointer should normally be left to the user.
If you do use this function, however, it generates events just as if the user
had instantaneously moved the pointer from one position to another.
Note that you cannot use
-<function>XWarpPointer</function>
+<xref linkend='XWarpPointer' xrefstyle='select: title'/>
to move the pointer outside the confine_to window of an active pointer grab.
An attempt to do so will only move the pointer as far as the closest edge of the
confine_to window.
</para>
<para>
<!-- .LP -->
-<function>XWarpPointer</function>
+<xref linkend='XWarpPointer' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -1932,11 +1932,11 @@ for input focus policy.
<!-- .LP -->
<!-- .sp -->
To set the input focus, use
-<function>XSetInputFocus</function>.
+<xref linkend='XSetInputFocus' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetInputFocus</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetinputfocus'>
+<funcsynopsis id='XSetInputFocus'>
<funcprototype>
<funcdef><function>XSetInputFocus</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2003,14 +2003,14 @@ You can pass either a timestamp or
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetInputFocus</function>
+<xref linkend='XSetInputFocus' xrefstyle='select: title'/>
function changes the input focus and the last-focus-change time.
It has no effect if the specified time is earlier than the current
last-focus-change time or is later than the current X server time.
Otherwise, the last-focus-change time is set to the specified time
(<symbol>CurrentTime</symbol>
is replaced by the current X server time).
-<function>XSetInputFocus</function>
+<xref linkend='XSetInputFocus' xrefstyle='select: title'/>
causes the X server to generate
<symbol>FocusIn</symbol>
and
@@ -2053,7 +2053,7 @@ In this case, the revert_to argument is ignored.
<para>
<!-- .LP -->
The specified focus window must be viewable at the time
-<function>XSetInputFocus</function>
+<xref linkend='XSetInputFocus' xrefstyle='select: title'/>
is called,
or a
<errorname>BadMatch</errorname>
@@ -2094,7 +2094,7 @@ events, but the last-focus-change time is not affected.
</itemizedlist>
<para>
<!-- .LP -->
-<function>XSetInputFocus</function>
+<xref linkend='XSetInputFocus' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>,
<errorname>BadValue</errorname>,
@@ -2106,11 +2106,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain the current input focus, use
-<function>XGetInputFocus</function>.
+<xref linkend='XGetInputFocus' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetInputFocus</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetinputfocus'>
+<funcsynopsis id='XGetInputFocus'>
<funcprototype>
<funcdef><function>XGetInputFocus</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2162,7 +2162,7 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetInputFocus</function>
+<xref linkend='XGetInputFocus' xrefstyle='select: title'/>
function returns the focus window and the current focus state.
</para>
</sect1>
@@ -2195,7 +2195,7 @@ parameters.
<para>
<!-- .LP -->
The
-<function>XChangeKeyboardControl</function>
+<xref linkend='XChangeKeyboardControl' xrefstyle='select: title'/>
function changes control of a keyboard and operates on a
<structname>XKeyboardControl</structname>
structure:
@@ -2325,7 +2325,7 @@ If an error is generated, a subset of the controls may have been altered.
</para>
<indexterm significance="preferred"><primary>XChangeKeyboardControl</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangekeyboardcontrol'>
+<funcsynopsis id='XChangeKeyboardControl'>
<funcprototype>
<funcdef><function>XChangeKeyboardControl</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2371,7 +2371,7 @@ Specifies one value for each bit set to 1 in the mask.
<!-- .LP -->
<!-- .eM -->
The
-<function>XChangeKeyboardControl</function>
+<xref linkend='XChangeKeyboardControl' xrefstyle='select: title'/>
function controls the keyboard characteristics defined by the
<structname>XKeyboardControl</structname>
structure.
@@ -2379,7 +2379,7 @@ The value_mask argument specifies which values are to be changed.
</para>
<para>
<!-- .LP -->
-<function>XChangeKeyboardControl</function>
+<xref linkend='XChangeKeyboardControl' xrefstyle='select: title'/>
can generate
<errorname>BadMatch</errorname>
and
@@ -2390,11 +2390,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain the current control values for the keyboard, use
-<function>XGetKeyboardControl</function>.
+<xref linkend='XGetKeyboardControl' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetKeyboardControl</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetkeyboardcontrol'>
+<funcsynopsis id='XGetKeyboardControl'>
<funcprototype>
<funcdef><function>XGetKeyboardControl</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2430,7 +2430,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetKeyboardControl</function>
+<xref linkend='XGetKeyboardControl' xrefstyle='select: title'/>
function returns the current control values for the keyboard to the
<structname>XKeyboardState</structname>
structure.
@@ -2474,11 +2474,11 @@ with the least significant bit in the byte representing key 8N.
<!-- .LP -->
<!-- .sp -->
To turn on keyboard auto-repeat, use
-<function>XAutoRepeatOn</function>.
+<xref linkend='XAutoRepeatOn' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XAutoRepeatOn</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xautorepeaton'>
+<funcsynopsis id='XAutoRepeatOn'>
<funcprototype>
<funcdef><function>XAutoRepeatOn</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2501,18 +2501,18 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAutoRepeatOn</function>
+<xref linkend='XAutoRepeatOn' xrefstyle='select: title'/>
function turns on auto-repeat for the keyboard on the specified display.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To turn off keyboard auto-repeat, use
-<function>XAutoRepeatOff</function>.
+<xref linkend='XAutoRepeatOff' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XAutoRepeatOff</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xautorepeatoff'>
+<funcsynopsis id='XAutoRepeatOff'>
<funcprototype>
<funcdef><function>XAutoRepeatOff</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2535,18 +2535,18 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAutoRepeatOff</function>
+<xref linkend='XAutoRepeatOff' xrefstyle='select: title'/>
function turns off auto-repeat for the keyboard on the specified display.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To ring the bell, use
-<function>XBell</function>.
+<xref linkend='XBell' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XBell</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xbell'>
+<funcsynopsis id='XBell'>
<funcprototype>
<funcdef><function>XBell</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2581,7 +2581,7 @@ which can range from -100 to 100 inclusive.
<!-- .LP -->
<!-- .eM -->
The
-<function>XBell</function>
+<xref linkend='XBell' xrefstyle='select: title'/>
function rings the bell on the keyboard on the specified display, if possible.
The specified volume is relative to the base volume for the keyboard.
If the value for the percent argument is not in the range -100 to 100
@@ -2613,11 +2613,11 @@ base + [(base * percent) / 100]
<para>
<!-- .LP -->
To change the base volume of the bell, use
-<function>XChangeKeyboardControl</function>.
+<xref linkend='XChangeKeyboardControl' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XBell</function>
+<xref linkend='XBell' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -2626,11 +2626,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To obtain a bit vector that describes the state of the keyboard, use
-<function>XQueryKeymap</function>.
+<xref linkend='XQueryKeymap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XQueryKeymap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xquerykeymap'>
+<funcsynopsis id='XQueryKeymap'>
<funcprototype>
<funcdef><function>XQueryKeymap</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2665,7 +2665,7 @@ Each bit represents one key of the keyboard.
<!-- .LP -->
<!-- .eM -->
The
-<function>XQueryKeymap</function>
+<xref linkend='XQueryKeymap' xrefstyle='select: title'/>
function returns a bit vector for the logical state of the keyboard,
where each bit set to 1 indicates that the corresponding key is currently
pressed down.
@@ -2682,11 +2682,11 @@ may lag the physical state if device event processing is frozen.
<!-- .LP -->
<!-- .sp -->
To set the mapping of the pointer buttons, use
-<function>XSetPointerMapping</function>.
+<xref linkend='XSetPointerMapping' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetPointerMapping</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetpointermapping'>
+<funcsynopsis id='XSetPointerMapping'>
<funcprototype>
<funcdef>int <function>XSetPointerMapping</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2731,18 +2731,18 @@ Specifies the number of items in the mapping list.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetPointerMapping</function>
+<xref linkend='XSetPointerMapping' xrefstyle='select: title'/>
function sets the mapping of the pointer.
If it succeeds, the X server generates a
<symbol>MappingNotify</symbol>
event, and
-<function>XSetPointerMapping</function>
+<xref linkend='XSetPointerMapping' xrefstyle='select: title'/>
returns
<symbol>MappingSuccess</symbol>.
Element map[i] defines the logical button number for the physical button
i+1.
The length of the list must be the same as
-<function>XGetPointerMapping</function>
+<xref linkend='XGetPointerMapping' xrefstyle='select: title'/>
would return,
or a
<errorname>BadValue</errorname>
@@ -2754,14 +2754,14 @@ or a
<errorname>BadValue</errorname>
error results.
If any of the buttons to be altered are logically in the down state,
-<function>XSetPointerMapping</function>
+<xref linkend='XSetPointerMapping' xrefstyle='select: title'/>
returns
<symbol>MappingBusy</symbol>,
and the mapping is not changed.
</para>
<para>
<!-- .LP -->
-<function>XSetPointerMapping</function>
+<xref linkend='XSetPointerMapping' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -2770,11 +2770,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To get the pointer mapping, use
-<function>XGetPointerMapping</function>.
+<xref linkend='XGetPointerMapping' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetPointerMapping</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetpointermapping'>
+<funcsynopsis id='XGetPointerMapping'>
<funcprototype>
<funcdef>int <function>XGetPointerMapping</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2819,10 +2819,10 @@ Specifies the number of items in the mapping list.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetPointerMapping</function>
+<xref linkend='XGetPointerMapping' xrefstyle='select: title'/>
function returns the current mapping of the pointer.
Pointer buttons are numbered starting from one.
-<function>XGetPointerMapping</function>
+<xref linkend='XGetPointerMapping' xrefstyle='select: title'/>
returns the number of physical buttons actually on the pointer.
The nominal mapping for a pointer is map[i]=i+1.
The nmap argument specifies the length of the array where the pointer
@@ -2833,11 +2833,11 @@ in map_return.
<!-- .LP -->
<!-- .sp -->
To control the pointer's interactive feel, use
-<function>XChangePointerControl</function>.
+<xref linkend='XChangePointerControl' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XChangePointerControl</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangepointercontrol'>
+<funcsynopsis id='XChangePointerControl'>
<funcprototype>
<funcdef><function>XChangePointerControl</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2915,7 +2915,7 @@ Specifies the acceleration threshold.
<!-- .LP -->
<!-- .eM -->
The
-<function>XChangePointerControl</function>
+<xref linkend='XChangePointerControl' xrefstyle='select: title'/>
function defines how the pointing device moves.
The acceleration, expressed as a fraction, is a
multiplier for movement.
@@ -2937,7 +2937,7 @@ for the accel_denominator argument.
</para>
<para>
<!-- .LP -->
-<function>XChangePointerControl</function>
+<xref linkend='XChangePointerControl' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -2946,11 +2946,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To get the current pointer parameters, use
-<function>XGetPointerControl</function>.
+<xref linkend='XGetPointerControl' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetPointerControl</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetpointercontrol'>
+<funcsynopsis id='XGetPointerControl'>
<funcprototype>
<funcdef><function>XGetPointerControl</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3005,7 +3005,7 @@ Returns the acceleration threshold.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetPointerControl</function>
+<xref linkend='XGetPointerControl' xrefstyle='select: title'/>
function returns the pointer's current acceleration multiplier
and acceleration threshold.
</para>
@@ -3221,11 +3221,11 @@ Rather, it merely stores it for reading and writing by clients.
<para>
<!-- .LP -->
To obtain the legal KeyCodes for a display, use
-<function>XDisplayKeycodes</function>.
+<xref linkend='XDisplayKeycodes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDisplayKeycodes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdisplaykeycodes'>
+<funcsynopsis id='XDisplayKeycodes'>
<funcprototype>
<funcdef><function>XDisplayKeycodes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3269,7 +3269,7 @@ Returns the maximum number of KeyCodes.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDisplayKeycodes</function>
+<xref linkend='XDisplayKeycodes' xrefstyle='select: title'/>
function returns the min-keycodes and max-keycodes supported by the
specified display.
The minimum number of KeyCodes returned is never less than 8,
@@ -3280,11 +3280,11 @@ Not all KeyCodes in this range are required to have corresponding keys.
<para>
<!-- .LP -->
To obtain the symbols for the specified KeyCodes, use
-<function>XGetKeyboardMapping</function>.
+<xref linkend='XGetKeyboardMapping' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetKeyboardMapping</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetkeyboardmapping'>
+<funcsynopsis id='XGetKeyboardMapping'>
<funcprototype>
<funcdef>KeySym *<function>XGetKeyboardMapping</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3341,18 +3341,18 @@ Returns the number of KeySyms per KeyCode.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetKeyboardMapping</function>
+<xref linkend='XGetKeyboardMapping' xrefstyle='select: title'/>
function returns the symbols for the specified number of KeyCodes
starting with first_keycode.
The value specified in first_keycode must be greater than
or equal to min_keycode as returned by
-<function>XDisplayKeycodes</function>,
+<xref linkend='XDisplayKeycodes' xrefstyle='select: title'/>,
or a
<errorname>BadValue</errorname>
error results.
In addition, the following expression must be less than or equal
to max_keycode as returned by
-<function>XDisplayKeycodes</function>:
+<xref linkend='XDisplayKeycodes' xrefstyle='select: title'/>:
</para>
<para>
<!-- .LP -->
@@ -3390,13 +3390,13 @@ A special KeySym value of
is used to fill in unused elements for
individual KeyCodes.
To free the storage returned by
-<function>XGetKeyboardMapping</function>,
+<xref linkend='XGetKeyboardMapping' xrefstyle='select: title'/>,
use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetKeyboardMapping</function>
+<xref linkend='XGetKeyboardMapping' xrefstyle='select: title'/>
can generate a
<errorname>BadValue</errorname>
error.
@@ -3405,11 +3405,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To change the keyboard mapping, use
-<function>XChangeKeyboardMapping</function>.
+<xref linkend='XChangeKeyboardMapping' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XChangeKeyboardMapping</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xchangekeyboardmapping'>
+<funcsynopsis id='XChangeKeyboardMapping'>
<funcprototype>
<funcdef><function>XChangeKeyboardMapping</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3477,7 +3477,7 @@ Specifies the number of KeyCodes that are to be changed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XChangeKeyboardMapping</function>
+<xref linkend='XChangeKeyboardMapping' xrefstyle='select: title'/>
function defines the symbols for the specified number of KeyCodes
starting with first_keycode.
The symbols for KeyCodes outside this range remain unchanged.
@@ -3493,13 +3493,13 @@ num_codes * keysyms_per_keycode
<!-- .LP -->
The specified first_keycode must be greater than or equal to min_keycode
returned by
-<function>XDisplayKeycodes</function>,
+<xref linkend='XDisplayKeycodes' xrefstyle='select: title'/>,
or a
<errorname>BadValue</errorname>
error results.
In addition, the following expression must be less than or equal to
max_keycode as returned by
-<function>XDisplayKeycodes</function>,
+<xref linkend='XDisplayKeycodes' xrefstyle='select: title'/>,
or a
<errorname>BadValue</errorname>
error results:
@@ -3533,7 +3533,7 @@ It is legal for
<symbol>NoSymbol</symbol>
to appear in nontrailing positions
of the effective list for a KeyCode.
-<function>XChangeKeyboardMapping</function>
+<xref linkend='XChangeKeyboardMapping' xrefstyle='select: title'/>
generates a
<symbol>MappingNotify</symbol>
event.
@@ -3545,7 +3545,7 @@ It is merely stored for reading and writing by clients.
</para>
<para>
<!-- .LP -->
-<function>XChangeKeyboardMapping</function>
+<xref linkend='XChangeKeyboardMapping' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3577,11 +3577,11 @@ typedef struct {
To create an
<structname>XModifierKeymap</structname>
structure, use
-<function>XNewModifiermap</function>.
+<xref linkend='XNewModifiermap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XNewModifiermap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xnewmodifiermap'>
+<funcsynopsis id='XNewModifiermap'>
<funcprototype>
<funcdef>XModifierKeymap *<function>XNewModifiermap</function></funcdef>
<paramdef>int<parameter> max_keys_per_mod</parameter></paramdef>
@@ -3605,7 +3605,7 @@ in the map.
<!-- .LP -->
<!-- .eM -->
The
-<function>XNewModifiermap</function>
+<xref linkend='XNewModifiermap' xrefstyle='select: title'/>
function returns a pointer to
<structname>XModifierKeymap</structname>
structure for later use.
@@ -3616,11 +3616,11 @@ structure for later use.
To add a new entry to an
<structname>XModifierKeymap</structname>
structure, use
-<function>XInsertModifiermapEntry</function>.
+<xref linkend='XInsertModifiermapEntry' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XInsertModifiermapEntry</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xinsertmodifiermapentry'>
+<funcsynopsis id='XInsertModifiermapEntry'>
<funcprototype>
<funcdef>XModifierKeymap *<function>XInsertModifiermapEntry</function></funcdef>
<paramdef>XModifierKeymap<parameter> *modmap</parameter></paramdef>
@@ -3667,7 +3667,7 @@ Specifies the modifier.
<!-- .LP -->
<!-- .eM -->
The
-<function>XInsertModifiermapEntry</function>
+<xref linkend='XInsertModifiermapEntry' xrefstyle='select: title'/>
function adds the specified KeyCode to the set that controls the specified
modifier and returns the resulting
<structname>XModifierKeymap</structname>
@@ -3679,11 +3679,11 @@ structure (expanded as needed).
To delete an entry from an
<structname>XModifierKeymap</structname>
structure, use
-<function>XDeleteModifiermapEntry</function>.
+<xref linkend='XDeleteModifiermapEntry' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDeleteModifiermapEntry</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdeletemodifiermapentry'>
+<funcsynopsis id='XDeleteModifiermapEntry'>
<funcprototype>
<funcdef>XModifierKeymap *<function>XDeleteModifiermapEntry</function></funcdef>
<paramdef>XModifierKeymap<parameter> *modmap</parameter></paramdef>
@@ -3730,7 +3730,7 @@ Specifies the modifier.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDeleteModifiermapEntry</function>
+<xref linkend='XDeleteModifiermapEntry' xrefstyle='select: title'/>
function deletes the specified KeyCode from the set that controls the
specified modifier and returns a pointer to the resulting
<structname>XModifierKeymap</structname>
@@ -3742,11 +3742,11 @@ structure.
To destroy an
<structname>XModifierKeymap</structname>
structure, use
-<function>XFreeModifiermap</function>.
+<xref linkend='XFreeModifiermap' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeModifiermap</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreemodifiermap'>
+<funcsynopsis id='XFreeModifiermap'>
<funcprototype>
<funcdef><function>XFreeModifiermap</function></funcdef>
<paramdef>XModifierKeymap<parameter> *modmap</parameter></paramdef>
@@ -3771,7 +3771,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeModifiermap</function>
+<xref linkend='XFreeModifiermap' xrefstyle='select: title'/>
function frees the specified
<structname>XModifierKeymap</structname>
structure.
@@ -3780,11 +3780,11 @@ structure.
<!-- .LP -->
<!-- .sp -->
To set the KeyCodes to be used as modifiers, use
-<function>XSetModifierMapping</function>.
+<xref linkend='XSetModifierMapping' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetModifierMapping</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetmodifiermapping'>
+<funcsynopsis id='XSetModifierMapping'>
<funcprototype>
<funcdef>int <function>XSetModifierMapping</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3820,14 +3820,14 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetModifierMapping</function>
+<xref linkend='XSetModifierMapping' xrefstyle='select: title'/>
function specifies the KeyCodes of the keys (if any) that are to be used
as modifiers.
If it succeeds,
the X server generates a
<symbol>MappingNotify</symbol>
event, and
-<function>XSetModifierMapping</function>
+<xref linkend='XSetModifierMapping' xrefstyle='select: title'/>
returns
<symbol>MappingSuccess</symbol>.
X permits at most 8 modifier keys.
@@ -3876,14 +3876,14 @@ and none of the modifiers are changed.
If the new KeyCodes specified for a modifier differ from those
currently defined and any (current or new) keys for that modifier are
in the logically down state,
-<function>XSetModifierMapping</function>
+<xref linkend='XSetModifierMapping' xrefstyle='select: title'/>
returns
<symbol>MappingBusy</symbol>,
and none of the modifiers is changed.
</para>
<para>
<!-- .LP -->
-<function>XSetModifierMapping</function>
+<xref linkend='XSetModifierMapping' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3894,11 +3894,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain the KeyCodes used as modifiers, use
-<function>XGetModifierMapping</function>.
+<xref linkend='XGetModifierMapping' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetModifierMapping</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetmodifiermapping'>
+<funcsynopsis id='XGetModifierMapping'>
<funcprototype>
<funcdef>XModifierKeymap *<function>XGetModifierMapping</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3921,12 +3921,12 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetModifierMapping</function>
+<xref linkend='XGetModifierMapping' xrefstyle='select: title'/>
function returns a pointer to a newly created
<structname>XModifierKeymap</structname>
structure that contains the keys being used as modifiers.
The structure should be freed after use by calling
-<function>XFreeModifiermap</function>.
+<xref linkend='XFreeModifiermap' xrefstyle='select: title'/>.
If only zero values appear in the set for any modifier,
that modifier is disabled.
<!-- .bp -->
diff --git a/libX11/specs/libX11/CH13.xml b/libX11/specs/libX11/CH13.xml
index 65a92e729..3a53f1f62 100644
--- a/libX11/specs/libX11/CH13.xml
+++ b/libX11/specs/libX11/CH13.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="locales_and_internationalized_text_functions">
+<chapter id='Locales_and_Internationalized_Text_Functions'>
<title>Locales and Internationalized Text Functions</title>
<para>
@@ -128,7 +128,7 @@ They will configure the locale by calling three functions:
the host locale configuration function,
<function>XSupportsLocale</function>,
and
-<function>XSetLocaleModifiers</function>.
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -142,11 +142,11 @@ is selecting one of several styles of keyboard input method.
<!-- .LP -->
<!-- .sp -->
To configure Xlib locale modifiers for the current locale, use
-<function>XSetLocaleModifiers</function>.
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetLocaleModifiers</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetlocalemodifiers'>
+<funcsynopsis id='XSetLocaleModifiers'>
<funcprototype>
<funcdef>char *<function>XSetLocaleModifiers</function></funcdef>
<paramdef>char<parameter> *modifier_list</parameter></paramdef>
@@ -169,7 +169,7 @@ Specifies the modifiers.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetLocaleModifiers</function>
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>
function sets the X modifiers for the current locale setting.
The modifier_list argument is a null-terminated string of the form
``{@<emphasis remap='I'>category</emphasis>=<emphasis remap='I'>value</emphasis>}'', that is,
@@ -198,7 +198,7 @@ If the function is successful, it returns a pointer to a string.
The contents of the string are such that a subsequent call with that string
(in the same locale) will restore the modifiers to the same settings.
If modifier_list is a NULL pointer,
-<function>XSetLocaleModifiers</function>
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>
also returns a pointer to such a string,
and the current locale modifiers are not changed.
</para>
@@ -216,7 +216,7 @@ the first successful call to set them. Whenever the locale is changed, the
modifiers that are in effect become unspecified until the next successful call
to set them.
Clients should always call
-<function>XSetLocaleModifiers</function>
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>
with a non-NULL modifier_list after setting the locale
before they call any locale-dependent Xlib routine.
</para>
@@ -279,7 +279,7 @@ overriding any category-specific settings in the local host environment.
<!-- .LP -->
The internationalized Xlib functions operate in the current locale
configured by the host environment and X locale modifiers set by
-<function>XSetLocaleModifiers</function>
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>
or in the locale and modifiers configured at the time
some object supplied to the function was created.
For each locale-dependent function,
@@ -309,7 +309,7 @@ the following table describes the locale (and modifiers) dependency:
<entry>Locale queried</entry>
</row>
<row>
- <entry><function>XSetLocaleModifiers</function></entry>
+ <entry><xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/></entry>
<entry>Locale modified</entry>
</row>
<row>
@@ -319,16 +319,16 @@ the following table describes the locale (and modifiers) dependency:
<row>
<entry><function>setlocale</function></entry>
<entry>
- <para><function>XrmGetFileDatabase</function></para>
- <para><function>XrmGetStringDatabase</function></para>
+ <para><xref linkend='XrmGetFileDatabase' xrefstyle='select: title'/></para>
+ <para><xref linkend='XrmGetStringDatabase' xrefstyle='select: title'/></para>
</entry>
<entry>Locale of <type>XrmDatabase</type></entry>
</row>
<row>
<entry><type>XrmDatabase</type></entry>
<entry>
- <para><function>XrmPutFileDatabase</function></para>
- <para><function>XrmLocaleOfDatabase</function></para>
+ <para><xref linkend='XrmPutFileDatabase' xrefstyle='select: title'/></para>
+ <para><xref linkend='XrmLocaleOfDatabase' xrefstyle='select: title'/></para>
</entry>
<entry>Locale of <type>XrmDatabase</type></entry>
</row>
@@ -338,7 +338,7 @@ the following table describes the locale (and modifiers) dependency:
</row>
<row>
<entry><function>setlocale</function></entry>
- <entry><function>XmbSetWMProperties</function></entry>
+ <entry><xref linkend='XmbSetWMProperties' xrefstyle='select: title'/></entry>
<entry>Encoding of supplied/returned
text (some WM_ property
text in environment locale)</entry>
@@ -346,10 +346,10 @@ the following table describes the locale (and modifiers) dependency:
<row>
<entry><function>setlocale</function></entry>
<entry>
- <para><function>XmbTextPropertyToTextList</function></para>
- <para><function>XwcTextPropertyToTextList</function></para>
- <para><function>XmbTextListToTextProperty</function></para>
- <para><function>XwcTextListToTextProperty</function></para>
+ <para><xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/></para>
+ <para><xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/></para>
+ <para><xref linkend='XmbTextListToTextProperty' xrefstyle='select: title'/></para>
+ <para><xref linkend='XwcTextListToTextProperty' xrefstyle='select: title'/></para>
</entry>
<entry>Encoding of supplied/returned text</entry>
</row>
@@ -359,33 +359,33 @@ the following table describes the locale (and modifiers) dependency:
</row>
<row>
<entry morerows='2'><function>setlocale</function></entry>
- <entry><function>XOpenIM</function></entry>
+ <entry><xref linkend='XOpenIM' xrefstyle='select: title'/></entry>
<entry><acronym>XIM</acronym> input method selection</entry>
</row>
<row>
- <entry><function>XRegisterIMInstantiateCallback</function></entry>
+ <entry><xref linkend='XRegisterIMInstantiateCallback' xrefstyle='select: title'/></entry>
<entry><acronym>XIM</acronym> selection</entry>
</row>
<row>
- <entry><function>XUnregisterIMInstantiateCallback</function></entry>
+ <entry><xref linkend='XUnregisterIMInstantiateCallback' xrefstyle='select: title'/></entry>
<entry><acronym>XIM</acronym> selection</entry>
</row>
<row>
<entry morerows='1'><type>XIM</type></entry>
- <entry><function>XCreateIC</function></entry>
+ <entry><xref linkend='XCreateIC' xrefstyle='select: title'/></entry>
<entry><acronym>XIC</acronym> input method configuration</entry>
</row>
<row>
- <entry><function>XLocaleOfIM</function>, and so on</entry>
+ <entry><xref linkend='XLocaleOfIM' xrefstyle='select: title'/>, and so on</entry>
<entry>Queried locale</entry>
</row>
<row>
<entry morerows='1'><type>XIC</type></entry>
- <entry><function>XmbLookupString</function></entry>
+ <entry><xref linkend='XmbLookupString' xrefstyle='select: title'/></entry>
<entry>Keyboard layout</entry>
</row>
<row>
- <entry><function>XwcLookupString</function></entry>
+ <entry><xref linkend='XwcLookupString' xrefstyle='select: title'/></entry>
<entry>Encoding of returned text</entry>
</row>
<row>
@@ -394,35 +394,35 @@ the following table describes the locale (and modifiers) dependency:
</row>
<row>
<entry morerows='1'><function>setlocale</function></entry>
- <entry><function>XOpenOM</function></entry>
+ <entry><xref linkend='XOpenOM' xrefstyle='select: title'/></entry>
<entry><acronym>XOM</acronym> output method selection</entry>
</row>
<row>
- <entry><function>XCreateFontSet</function></entry>
+ <entry><xref linkend='XCreateFontSet' xrefstyle='select: title'/></entry>
<entry>Charsets of fonts in XFontSet</entry>
</row>
<row>
<entry morerows='1'><type>XOM</type></entry>
- <entry><function>XCreateOC</function></entry>
+ <entry><xref linkend='XCreateOC' xrefstyle='select: title'/></entry>
<entry><acronym>XOC</acronym> output method configuration</entry>
</row>
<row>
- <entry><function>XLocaleOfOM</function>, and so on</entry>
+ <entry><xref linkend='XLocaleOfOM' xrefstyle='select: title'/>, and so on</entry>
<entry>Queried locale</entry>
</row>
<row>
<entry morerows='2'><type>XFontSet</type></entry>
- <entry><function>XmbDrawText</function>,</entry>
+ <entry><xref linkend='XmbDrawText' xrefstyle='select: title'/>,</entry>
<entry>Locale of supplied text</entry>
</row>
<row>
- <entry><function>XwcDrawText</function>, and so on</entry>
+ <entry><xref linkend='XwcDrawText' xrefstyle='select: title'/>, and so on</entry>
<entry>Locale of supplied text</entry>
</row>
<row>
<entry>
- <para><function>XExtentsOfFontSet</function>, and so on</para>
- <para><function>XmbTextExtents</function>,</para>
+ <para><xref linkend='XExtentsOfFontSet' xrefstyle='select: title'/>, and so on</para>
+ <para><xref linkend='XmbTextExtents' xrefstyle='select: title'/>,</para>
<para><function>XwcTextExtents</function>, and so on</para>
</entry>
<entry>Locale-dependent metrics</entry>
@@ -434,8 +434,8 @@ the following table describes the locale (and modifiers) dependency:
<row>
<entry><function>setlocale</function></entry>
<entry>
- <para><function>XGetErrorDatabaseText</function>,</para>
- <para><function>XGetErrorText</function>, and so on</para>
+ <para><xref linkend='XGetErrorDatabaseText' xrefstyle='select: title'/>,</para>
+ <para><xref linkend='XGetErrorText' xrefstyle='select: title'/>, and so on</para>
</entry>
<entry>Locale of error message</entry>
</row>
@@ -460,7 +460,7 @@ is state-dependent.
All Xlib functions behave as if they do not change the current locale
or X modifier setting.
(This means that if they do change locale or call
-<function>XSetLocaleModifiers</function>
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>
with a non-NULL argument, they must save and restore the current state on
entry and exit.)
Also, Xlib functions on implementations that conform to the ANSI C library do
@@ -503,11 +503,11 @@ A NULL identifies the end of a nested list.
<!-- .LP -->
<!-- .sp -->
To allocate a nested variable argument list dynamically, use
-<function>XVaCreateNestedList</function>.
+<xref linkend='XVaCreateNestedList' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XVaCreateNestedList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xvacreatenestedlist'>
+<funcsynopsis id='XVaCreateNestedList'>
<funcprototype>
<funcdef>XVaNestedList <function>XVaCreateNestedList</function></funcdef>
<paramdef>int<parameter> dummy</parameter></paramdef>
@@ -541,7 +541,7 @@ Specifies the variable length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XVaCreateNestedList</function>
+<xref linkend='XVaCreateNestedList' xrefstyle='select: title'/>
function allocates memory and copies its arguments into
a single list pointer,
which may be used as a value for arguments requiring a list value.
@@ -550,7 +550,7 @@ Data passed by reference is not copied;
the caller must ensure data remains valid for the lifetime
of the nested list.
The list should be freed using
-<function>XFree</function>
+<xref linkend='XFree' xrefstyle='select: title'/>
when it is no longer needed.
</para>
</sect1>
@@ -690,11 +690,11 @@ a broader, more generalized abstraction.
<para>
<!-- .LP -->
To open an output method, use
-<function>XOpenOM</function>.
+<xref linkend='XOpenOM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XOpenOM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xopenom'>
+<funcsynopsis id='XOpenOM'>
<funcprototype>
<funcdef>XOM <function>XOpenOM</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -750,12 +750,12 @@ Specifies the full class name of the application.
<!-- .LP -->
<!-- .eM -->
The
-<function>XOpenOM</function>
+<xref linkend='XOpenOM' xrefstyle='select: title'/>
function opens an output method
matching the current locale and modifiers specification.
The current locale and modifiers are bound to the output method
when
-<function>XOpenOM</function>
+<xref linkend='XOpenOM' xrefstyle='select: title'/>
is called.
The locale associated with an output method cannot be changed.
</para>
@@ -763,11 +763,11 @@ The locale associated with an output method cannot be changed.
<!-- .LP -->
The specific output method to which this call will be routed
is identified on the basis of the current locale and modifiers.
-<function>XOpenOM</function>
+<xref linkend='XOpenOM' xrefstyle='select: title'/>
will identify a default output method corresponding to the
current locale.
That default can be modified using
-<function>XSetLocaleModifiers</function>
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>
to set the output method modifier.
</para>
<para>
@@ -795,24 +795,24 @@ if res_name or res_class is NULL.
<!-- .LP -->
The res_name and res_class arguments are not assumed to exist beyond
the call to
-<function>XOpenOM</function>.
+<xref linkend='XOpenOM' xrefstyle='select: title'/>.
The specified resource database is assumed to exist for the lifetime
of the output method.
</para>
<para>
<!-- .LP -->
-<function>XOpenOM</function>
+<xref linkend='XOpenOM' xrefstyle='select: title'/>
returns NULL if no output method could be opened.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To close an output method, use
-<function>XCloseOM</function>.
+<xref linkend='XCloseOM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCloseOM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcloseom'>
+<funcsynopsis id='XCloseOM'>
<funcprototype>
<funcdef>Status <function>XCloseOM</function></funcdef>
<paramdef>XOM<parameter> om</parameter></paramdef>
@@ -835,18 +835,18 @@ Specifies the output method.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCloseOM</function>
+<xref linkend='XCloseOM' xrefstyle='select: title'/>
function closes the specified output method.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To set output method attributes, use
-<function>XSetOMValues</function>.
+<xref linkend='XSetOMValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetOMValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetomvalues'>
+<funcsynopsis id='XSetOMValues'>
<funcprototype>
<funcdef>char *<function>XSetOMValues</function></funcdef>
<paramdef>XOM<parameter> om</parameter></paramdef>
@@ -880,7 +880,7 @@ Specifies the variable-length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetOMValues</function>
+<xref linkend='XSetOMValues' xrefstyle='select: title'/>
function presents a variable argument list programming interface
for setting properties or features of the specified output method.
This function returns NULL if it succeeds;
@@ -895,11 +895,11 @@ No standard arguments are currently defined by Xlib.
<!-- .LP -->
<!-- .sp -->
To query an output method, use
-<function>XGetOMValues</function>.
+<xref linkend='XGetOMValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetOMValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetomvalues'>
+<funcsynopsis id='XGetOMValues'>
<funcprototype>
<funcdef>char *<function>XGetOMValues</function></funcdef>
<paramdef>XOM<parameter> om</parameter></paramdef>
@@ -933,7 +933,7 @@ Specifies the variable-length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetOMValues</function>
+<xref linkend='XGetOMValues' xrefstyle='select: title'/>
function presents a variable argument list programming interface
for querying properties or features of the specified output method.
This function returns NULL if it succeeds;
@@ -943,11 +943,11 @@ it returns the name of the first argument that could not be obtained.
<para>
<!-- .LP -->
To obtain the display associated with an output method, use
-<function>XDisplayOfOM</function>.
+<xref linkend='XDisplayOfOM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDisplayOfOM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdisplayofom'>
+<funcsynopsis id='XDisplayOfOM'>
<funcprototype>
<funcdef>Display *<function>XDisplayOfOM</function></funcdef>
<paramdef>XOM<parameter> om</parameter></paramdef>
@@ -970,18 +970,18 @@ Specifies the output method.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDisplayOfOM</function>
+<xref linkend='XDisplayOfOM' xrefstyle='select: title'/>
function returns the display associated with the specified output method.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To get the locale associated with an output method, use
-<function>XLocaleOfOM</function>.
+<xref linkend='XLocaleOfOM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLocaleOfOM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlocaleofom'>
+<funcsynopsis id='XLocaleOfOM'>
<funcprototype>
<funcdef>char *<function>XLocaleOfOM</function></funcdef>
<paramdef>XOM<parameter> om</parameter></paramdef>
@@ -1004,7 +1004,7 @@ Specifies the output method.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLocaleOfOM</function>
+<xref linkend='XLocaleOfOM' xrefstyle='select: title'/>
returns the locale associated with the specified output method.
</para>
</sect2>
@@ -1041,7 +1041,7 @@ The following key applies to this table.
<tbody>
<row>
<entry>G</entry>
- <entry>This value may be read using <function>XGetOMValues</function>.</entry>
+ <entry>This value may be read using <xref linkend='XGetOMValues' xrefstyle='select: title'/>.</entry>
</row>
</tbody>
</tgroup>
@@ -1127,7 +1127,7 @@ charset names.
The required charset list is owned by Xlib and should not be modified or
freed by the client.
It will be freed by a call to
-<function>XCloseOM</function>
+<xref linkend='XCloseOM' xrefstyle='select: title'/>
with the associated
<type>XOM</type>.
Until freed, its contents will not be modified by Xlib.
@@ -1154,7 +1154,7 @@ The value of the argument is a pointer to a structure of type
Clients are responsible for freeing the
<structname>XOMOrientation</structname>
structure by using
-<function>XFree</function>;
+<xref linkend='XFree' xrefstyle='select: title'/>;
this also frees the contents of the structure.
</para>
@@ -1247,7 +1247,7 @@ of the drawing origin.
<para>
<!-- .LP -->
This OM value presents functionality identical to the
-<function>XDirectionalDependentDrawing</function>
+<xref linkend='XDirectionalDependentDrawing' xrefstyle='select: title'/>
function.
</para>
</sect3>
@@ -1271,7 +1271,7 @@ dependent on the locale implementation and the font set used.
<para>
<!-- .LP -->
This OM value presents functionality identical to the
-<function>XContextualDrawing</function>
+<xref linkend='XContextualDrawing' xrefstyle='select: title'/>
function.
</para>
</sect3>
@@ -1315,11 +1315,11 @@ is defined as an upward compatible type of
<!-- .LP -->
<!-- .sp -->
To create an output context, use
-<function>XCreateOC</function>.
+<xref linkend='XCreateOC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateOC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreateoc'>
+<funcsynopsis id='XCreateOC'>
<funcprototype>
<funcdef>XOC <function>XCreateOC</function></funcdef>
<paramdef>XOM<parameter> om</parameter></paramdef>
@@ -1353,7 +1353,7 @@ Specifies the variable-length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateOC</function>
+<xref linkend='XCreateOC' xrefstyle='select: title'/>
function creates an output context within the specified output method.
</para>
<para>
@@ -1364,7 +1364,7 @@ All other output context values can be set later.
</para>
<para>
<!-- .LP -->
-<function>XCreateOC</function>
+<xref linkend='XCreateOC' xrefstyle='select: title'/>
returns NULL if no output context could be created.
NULL can be returned for any of the following reasons:
</para>
@@ -1392,7 +1392,7 @@ The output method encountered an output method implementation-dependent error.
</itemizedlist>
<para>
<!-- .LP -->
-<function>XCreateOC</function>
+<xref linkend='XCreateOC' xrefstyle='select: title'/>
can generate a
<errorname>BadAtom</errorname>
error.
@@ -1401,11 +1401,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To destroy an output context, use
-<function>XDestroyOC</function>.
+<xref linkend='XDestroyOC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDestroyOC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdestroyoc'>
+<funcsynopsis id='XDestroyOC'>
<funcprototype>
<funcdef>void <function>XDestroyOC</function></funcdef>
<paramdef>XOC<parameter> oc</parameter></paramdef>
@@ -1428,18 +1428,18 @@ Specifies the output context.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDestroyOC</function>
+<xref linkend='XDestroyOC' xrefstyle='select: title'/>
function destroys the specified output context.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To get the output method associated with an output context, use
-<function>XOMOfOC</function>.
+<xref linkend='XOMOfOC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XOMOfOC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xomofoc'>
+<funcsynopsis id='XOMOfOC'>
<funcprototype>
<funcdef>XOM <function>XOMOfOC</function></funcdef>
<paramdef>XOC<parameter> oc</parameter></paramdef>
@@ -1462,7 +1462,7 @@ Specifies the output context.
<!-- .LP -->
<!-- .eM -->
The
-<function>XOMOfOC</function>
+<xref linkend='XOMOfOC' xrefstyle='select: title'/>
function returns the output method associated with the
specified output context.
</para>
@@ -1471,9 +1471,9 @@ specified output context.
<!-- .sp -->
Xlib provides two functions for setting and reading output context values,
respectively,
-<function>XSetOCValues</function>
+<xref linkend='XSetOCValues' xrefstyle='select: title'/>
and
-<function>XGetOCValues</function>.
+<xref linkend='XGetOCValues' xrefstyle='select: title'/>.
Both functions have a variable-length argument list.
In that argument list, any <acronym>XOC</acronym> value's name must be denoted
with a character string using the X Portable Character Set.
@@ -1482,11 +1482,11 @@ with a character string using the X Portable Character Set.
<!-- .LP -->
<!-- .sp -->
To set <acronym>XOC</acronym> values, use
-<function>XSetOCValues</function>.
+<xref linkend='XSetOCValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetOCValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetocvalues'>
+<funcsynopsis id='XSetOCValues'>
<funcprototype>
<funcdef>char *<function>XSetOCValues</function></funcdef>
<paramdef>XOC<parameter> oc</parameter></paramdef>
@@ -1520,7 +1520,7 @@ Specifies the variable-length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetOCValues</function>
+<xref linkend='XSetOCValues' xrefstyle='select: title'/>
function returns NULL if no error occurred;
otherwise,
it returns the name of the first argument that could not be set.
@@ -1550,7 +1550,7 @@ matching the data type imposed by the semantics of the argument.
</para>
<para>
<!-- .LP -->
-<function>XSetOCValues</function>
+<xref linkend='XSetOCValues' xrefstyle='select: title'/>
can generate a
<errorname>BadAtom</errorname>
error.
@@ -1559,11 +1559,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To obtain <acronym>XOC</acronym> values, use
-<function>XGetOCValues</function>.
+<xref linkend='XGetOCValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetOCValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetocvalues'>
+<funcsynopsis id='XGetOCValues'>
<funcprototype>
<funcdef>char *<function>XGetOCValues</function></funcdef>
<paramdef>XOC<parameter> oc</parameter></paramdef>
@@ -1597,7 +1597,7 @@ Specifies the variable-length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetOCValues</function>
+<xref linkend='XGetOCValues' xrefstyle='select: title'/>
function returns NULL if no error occurred; otherwise,
it returns the name of the first argument that could not be obtained.
An argument might not be obtained for any of the following reasons:
@@ -1652,20 +1652,20 @@ The following keys apply to this table.
<tbody>
<row>
<entry>C</entry>
- <entry>This value must be set with <function>XCreateOC</function>.</entry>
+ <entry>This value must be set with <xref linkend='XCreateOC' xrefstyle='select: title'/>.</entry>
</row>
<row>
<entry>D</entry>
- <entry>This value may be set using <function>XCreateOC</function>.
+ <entry>This value may be set using <xref linkend='XCreateOC' xrefstyle='select: title'/>.
If it is not set,a default is provided.</entry>
</row>
<row>
<entry>G</entry>
- <entry>This value may be read using <function>XGetOCValues</function>.</entry>
+ <entry>This value may be read using <xref linkend='XGetOCValues' xrefstyle='select: title'/>.</entry>
</row>
<row>
<entry>S</entry>
- <entry>This value must be set using <function>XSetOCValues</function>.</entry>
+ <entry>This value must be set using <xref linkend='XSetOCValues' xrefstyle='select: title'/>.</entry>
</row>
</tbody>
</tgroup>
@@ -1688,17 +1688,17 @@ The following keys apply to this table.
<tbody>
<row>
<entry>BaseFontName</entry>
- <entry><function>XCreateFontSet</function></entry>
+ <entry><xref linkend='XCreateFontSet' xrefstyle='select: title'/></entry>
<entry>C-G</entry>
</row>
<row>
<entry>MissingCharSet</entry>
- <entry><function>XCreateFontSet</function></entry>
+ <entry><xref linkend='XCreateFontSet' xrefstyle='select: title'/></entry>
<entry>G</entry>
</row>
<row>
<entry>DefaultString</entry>
- <entry><function>XCreateFontSet</function></entry>
+ <entry><xref linkend='XCreateFontSet' xrefstyle='select: title'/></entry>
<entry>G</entry>
</row>
<row>
@@ -1718,7 +1718,7 @@ The following keys apply to this table.
</row>
<row>
<entry>FontInfo</entry>
- <entry><function>XFontsOfFontSet</function></entry>
+ <entry><xref linkend='XFontsOfFontSet' xrefstyle='select: title'/></entry>
<entry>G</entry>
</row>
<row>
@@ -1768,7 +1768,7 @@ If a base font name is not an <acronym>XLFD</acronym> name,
Xlib will attempt to obtain an <acronym>XLFD</acronym> name from the font properties
for the font.
If Xlib is successful, the
-<function>XGetOCValues</function>
+<xref linkend='XGetOCValues' xrefstyle='select: title'/>
function will return this <acronym>XLFD</acronym> name instead of the client-supplied name.
</para>
<para>
@@ -1778,7 +1778,7 @@ and cannot be changed.
If no fonts exist for any of the required charsets,
or if the locale definition in Xlib requires that a font exist
for a particular charset and a font is not found for that charset,
-<function>XCreateOC</function>
+<xref linkend='XCreateOC' xrefstyle='select: title'/>
returns NULL.
</para>
<para>
@@ -1786,13 +1786,13 @@ returns NULL.
When querying for the
<symbol>XNBaseFontName</symbol>
<acronym>XOC</acronym> value,
-<function>XGetOCValues</function>
+<xref linkend='XGetOCValues' xrefstyle='select: title'/>
returns a null-terminated string identifying the base font names that
Xlib used to load the fonts needed for the locale.
This string is owned by Xlib and should not be modified or freed by
the client.
The string will be freed by a call to
-<function>XDestroyOC</function>
+<xref linkend='XDestroyOC' xrefstyle='select: title'/>
with the associated
<type>XOC</type>.
Until freed, the string contents will not be modified by Xlib.
@@ -1829,7 +1829,7 @@ may be able to remap a required charset.
The missing charset list is owned by Xlib and should not be modified or
freed by the client.
It will be freed by a call to
-<function>XDestroyOC</function>
+<xref linkend='XDestroyOC' xrefstyle='select: title'/>
with the associated
<type>XOC</type>.
Until freed, its contents will not be modified by Xlib.
@@ -1869,7 +1869,7 @@ no glyphs are drawn and the escapement is zero.
The returned string is null-terminated.
It is owned by Xlib and should not be modified or freed by the client.
It will be freed by a call to
-<function>XDestroyOC</function>
+<xref linkend='XDestroyOC' xrefstyle='select: title'/>
with the associated
<type>XOC</type>.
Until freed, its contents will not be modified by Xlib.
@@ -1886,7 +1886,7 @@ The
<symbol>XNOrientation</symbol>
argument specifies the current orientation of text when drawn. The value of
this argument is one of the values returned by the
-<function>XGetOMValues</function>
+<xref linkend='XGetOMValues' xrefstyle='select: title'/>
function with the
<symbol>XNQueryOrientation</symbol>
argument specified in the
@@ -1950,16 +1950,16 @@ When querying for the
or
<symbol>XNResourceClass</symbol>
<acronym>XOC</acronym> value,
-<function>XGetOCValues</function>
+<xref linkend='XGetOCValues' xrefstyle='select: title'/>
returns a null-terminated string.
This string is owned by Xlib and should not be modified or freed by
the client.
The string will be freed by a call to
-<function>XDestroyOC</function>
+<xref linkend='XDestroyOC' xrefstyle='select: title'/>
with the associated
<type>XOC</type>
or when the associated value is changed via
-<function>XSetOCValues</function>.
+<xref linkend='XSetOCValues' xrefstyle='select: title'/>.
Until freed, the string contents will not be modified by Xlib.
</para>
</sect3>
@@ -2051,23 +2051,23 @@ is closed.
The
<symbol>XNOMAutomatic</symbol>
argument returns whether the associated output context was created by
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
or not. Because the
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
function not only destroys the output context but also closes the implicit
output method associated with it,
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
should be used with any output context created by
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
However, it is possible that a client does not know how the output context
was created.
Before a client destroys the output context,
it can query whether
<symbol>XNOMAutomatic</symbol>
is set to determine whether
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
or
-<function>XDestroyOC</function>
+<xref linkend='XDestroyOC' xrefstyle='select: title'/>
should be used to destroy the output context.
</para>
</sect3>
@@ -2093,7 +2093,7 @@ and is equivalent to the type
<!-- .LP -->
<!-- .sp -->
The
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
function is a convenience function for creating an output context using
only default values. The returned
<type>XFontSet</type>
@@ -2106,13 +2106,13 @@ has an OM value
automatically set to
<symbol>True</symbol>
so that the output context self indicates whether it was created by
-<function>XCreateOC</function>
+<xref linkend='XCreateOC' xrefstyle='select: title'/>
or
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateFontSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatefontset'>
+<funcsynopsis id='XCreateFontSet'>
<funcprototype>
<funcdef>XFontSet <function>XCreateFontSet</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2179,10 +2179,10 @@ Returns the string drawn for missing charsets.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
function creates a font set for the specified display.
The font set is bound to the current locale when
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
is called.
The font set may be used in subsequent calls to obtain font
and character information and to image text in the locale of the font set.
@@ -2216,7 +2216,7 @@ If a base font name is not an <acronym>XLFD</acronym> name,
Xlib will attempt to obtain an <acronym>XLFD</acronym> name from the font properties
for the font.
If this action is successful in obtaining an <acronym>XLFD</acronym> name, the
-<function>XBaseFontNameListOfFontSet</function>
+<xref linkend='XBaseFontNameListOfFontSet' xrefstyle='select: title'/>
function will return this <acronym>XLFD</acronym> name instead of the client-supplied name.
</para>
<para>
@@ -2340,16 +2340,16 @@ For example:
<para>
<!-- .LP -->
If
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
is unable to create the font set,
either because there is insufficient memory or because the current locale
is not supported,
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
returns NULL, missing_charset_list_return is set to NULL,
and missing_charset_count_return
is set to zero.
If fonts exist for all of the charsets required by the current locale,
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
returns a valid
<type>XFontSet</type>,
missing_charset_list_return is set to NULL,
@@ -2358,7 +2358,7 @@ and missing_charset_count_return is set to zero.
<para>
<!-- .LP -->
If no font exists for one or more of the required charsets,
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
sets missing_charset_list_return to a
list of one or more null-terminated charset names for which no font exists
and sets missing_charset_count_return to the number of missing fonts.
@@ -2371,10 +2371,10 @@ may be able to remap a required charset.
If no font exists for any of the required charsets
or if the locale definition in Xlib requires that a font exist
for a particular charset and a font is not found for that charset,
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
returns NULL.
Otherwise,
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
returns a valid
<type>XFontSet</type>
to font_set.
@@ -2386,7 +2386,7 @@ When an Xmb/wc drawing or measuring function is called with an
that has missing charsets, some characters in the locale will not be
drawable.
If def_string_return is non-NULL,
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
returns a pointer to a string that represents the glyphs
that are drawn with this
<type>XFontSet</type>
@@ -2406,7 +2406,7 @@ no glyphs are drawn, and the escapement is zero.
The returned string is null-terminated.
It is owned by Xlib and should not be modified or freed by the client.
It will be freed by a call to
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
with the associated
<type>XFontSet</type>.
Until freed, its contents will not be modified by Xlib.
@@ -2422,13 +2422,13 @@ operation in the case that some fonts did not exist.
The returned
<type>XFontSet</type>
and missing charset list should be freed with
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
and
-<function>XFreeStringList</function>,
+<xref linkend='XFreeStringList' xrefstyle='select: title'/>,
respectively.
The client-supplied base_font_name_list may be freed
by the client after calling
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2438,11 +2438,11 @@ To obtain a list of
structures and full font names given an
<type>XFontSet</type>,
use
-<function>XFontsOfFontSet</function>.
+<xref linkend='XFontsOfFontSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFontsOfFontSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfontsoffontset'>
+<funcsynopsis id='XFontsOfFontSet'>
<funcprototype>
<funcdef>int <function>XFontsOfFontSet</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -2487,7 +2487,7 @@ Returns the list of font names.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFontsOfFontSet</function>
+<xref linkend='XFontsOfFontSet' xrefstyle='select: title'/>
function returns a list of one or more
<structname>XFontStruct</structname>s
and font names for the fonts used by the Xmb and Xwc layers
@@ -2536,7 +2536,7 @@ The
and font name lists are owned by Xlib
and should not be modified or freed by the client.
They will be freed by a call to
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
with the associated
<type>XFontSet</type>.
Until freed, their contents will not be modified by Xlib.
@@ -2547,11 +2547,11 @@ Until freed, their contents will not be modified by Xlib.
To obtain the base font name list and the selected font name list given an
<type>XFontSet</type>,
use
-<function>XBaseFontNameListOfFontSet</function>.
+<xref linkend='XBaseFontNameListOfFontSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XBaseFontNameListOfFontSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xbasefontnamelistoffontset'>
+<funcsynopsis id='XBaseFontNameListOfFontSet'>
<funcprototype>
<funcdef>char *<function>XBaseFontNameListOfFontSet</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -2574,7 +2574,7 @@ Specifies the font set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XBaseFontNameListOfFontSet</function>
+<xref linkend='XBaseFontNameListOfFontSet' xrefstyle='select: title'/>
function returns the original base font name list supplied
by the client when the
<type>XFontSet</type>
@@ -2587,10 +2587,10 @@ White space may appear immediately on either side of separating commas.
<para>
<!-- .LP -->
If
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
obtained an <acronym>XLFD</acronym> name from the font properties for the font specified
by a non-<acronym>XLFD</acronym> base name, the
-<function>XBaseFontNameListOfFontSet</function>
+<xref linkend='XBaseFontNameListOfFontSet' xrefstyle='select: title'/>
function will return the <acronym>XLFD</acronym> name instead of the non-<acronym>XLFD</acronym> base name.
</para>
<para>
@@ -2598,7 +2598,7 @@ function will return the <acronym>XLFD</acronym> name instead of the non-<acrony
The base font name list is owned by Xlib and should not be modified or
freed by the client.
It will be freed by a call to
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
with the associated
<type>XFontSet</type>.
Until freed, its contents will not be modified by Xlib.
@@ -2609,11 +2609,11 @@ Until freed, its contents will not be modified by Xlib.
To obtain the locale name given an
<type>XFontSet</type>,
use
-<function>XLocaleOfFontSet</function>.
+<xref linkend='XLocaleOfFontSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLocaleOfFontSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlocaleoffontset'>
+<funcsynopsis id='XLocaleOfFontSet'>
<funcprototype>
<funcdef>char *<function>XLocaleOfFontSet</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -2636,7 +2636,7 @@ Specifies the font set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLocaleOfFontSet</function>
+<xref linkend='XLocaleOfFontSet' xrefstyle='select: title'/>
function
returns the name of the locale bound to the specified
<type>XFontSet</type>,
@@ -2647,7 +2647,7 @@ as a null-terminated string.
The returned locale name string is owned by Xlib
and should not be modified or freed by the client.
It may be freed by a call to
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
with the associated
<type>XFontSet</type>.
Until freed, it will not be modified by Xlib.
@@ -2656,17 +2656,17 @@ Until freed, it will not be modified by Xlib.
<!-- .LP -->
<!-- .sp -->
The
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
function is a convenience function for freeing an output context.
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
also frees its associated
<type>XOM</type>
if the output context was created by
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeFontSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreefontset'>
+<funcsynopsis id='XFreeFontSet'>
<funcprototype>
<funcdef>void <function>XFreeFontSet</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2700,7 +2700,7 @@ Specifies the font set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
function frees the specified font set.
The associated base font name list, font name list,
<structname>XFontStruct</structname>
@@ -2743,9 +2743,9 @@ Regardless of the character rendering order,
the origins of all characters are on the primary draw direction side
of the drawing origin.
The screen location of a particular character image may be determined with
-<function>XmbTextPerCharExtents</function>
+<xref linkend='XmbTextPerCharExtents' xrefstyle='select: title'/>
or
-<function>XwcTextPerCharExtents</function>.
+<xref linkend='XwcTextPerCharExtents' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2753,10 +2753,10 @@ The drawing functions are allowed to implement context-dependent
rendering, where the glyphs drawn for a string are not simply a
concatenation of the glyphs that represent each individual character.
A string of two characters drawn with
-<function>XmbDrawString</function>
+<xref linkend='XmbDrawString' xrefstyle='select: title'/>
may render differently than if the two characters
were drawn with separate calls to
-<function>XmbDrawString</function>.
+<xref linkend='XmbDrawString' xrefstyle='select: title'/>.
If the client appends or inserts a character
in a previously drawn string,
the client may need to redraw some adjacent characters
@@ -2766,11 +2766,11 @@ to obtain proper rendering.
<!-- .LP -->
<!-- .sp -->
To find out about direction-dependent rendering, use
-<function>XDirectionalDependentDrawing</function>.
+<xref linkend='XDirectionalDependentDrawing' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDirectionalDependentDrawing</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdirectionaldependentdrawing'>
+<funcsynopsis id='XDirectionalDependentDrawing'>
<funcprototype>
<funcdef>Bool <function>XDirectionalDependentDrawing</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -2793,7 +2793,7 @@ Specifies the font set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDirectionalDependentDrawing</function>
+<xref linkend='XDirectionalDependentDrawing' xrefstyle='select: title'/>
function returns
<symbol>True</symbol>
if the drawing functions implement implicit text directionality;
@@ -2804,11 +2804,11 @@ otherwise, it returns
<!-- .LP -->
<!-- .sp -->
To find out about context-dependent rendering, use
-<function>XContextualDrawing</function>.
+<xref linkend='XContextualDrawing' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XContextualDrawing</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcontextualdrawing'>
+<funcsynopsis id='XContextualDrawing'>
<funcprototype>
<funcdef>Bool <function>XContextualDrawing</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -2831,7 +2831,7 @@ Specifies the font set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XContextualDrawing</function>
+<xref linkend='XContextualDrawing' xrefstyle='select: title'/>
function returns
<symbol>True</symbol>
if text drawn with the font set might include context-dependent drawing;
@@ -2842,11 +2842,11 @@ otherwise, it returns
<!-- .LP -->
<!-- .sp -->
To find out about context-dependent or direction-dependent rendering, use
-<function>XContextDependentDrawing</function>.
+<xref linkend='XContextDependentDrawing' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XContextDependentDrawing</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcontextdependentdrawing'>
+<funcsynopsis id='XContextDependentDrawing'>
<funcprototype>
<funcdef>Bool <function>XContextDependentDrawing</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -2869,7 +2869,7 @@ Specifies the font set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XContextDependentDrawing</function>
+<xref linkend='XContextDependentDrawing' xrefstyle='select: title'/>
function returns
<symbol>True</symbol>
if the drawing functions implement implicit text directionality or
@@ -2919,7 +2919,7 @@ The max_ink_extent member gives the maximum extent, over all drawable characters
the rectangles that bound the character glyph image drawn in the
foreground color, relative to a constant origin.
See
-<function>XmbTextExtents</function>
+<xref linkend='XmbTextExtents' xrefstyle='select: title'/>
and
<function>XwcTextExtents</function>
for detailed semantics.
@@ -2946,9 +2946,9 @@ individual extent.
<para>
<!-- .LP -->
The rectangles for a given character in a string can be obtained from
-<function>XmbTextPerCharExtents</function>
+<xref linkend='XmbTextPerCharExtents' xrefstyle='select: title'/>
or
-<function>XwcTextPerCharExtents</function>.
+<xref linkend='XwcTextPerCharExtents' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2956,11 +2956,11 @@ or
To obtain the maximum extents structure given an
<type>XFontSet</type>,
use
-<function>XExtentsOfFontSet</function>.
+<xref linkend='XExtentsOfFontSet' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XExtentsOfFontSet</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xextentsoffontset'>
+<funcsynopsis id='XExtentsOfFontSet'>
<funcprototype>
<funcdef>XFontSetExtents *<function>XExtentsOfFontSet</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -2983,7 +2983,7 @@ Specifies the font set.
<!-- .LP -->
<!-- .eM -->
The
-<function>XExtentsOfFontSet</function>
+<xref linkend='XExtentsOfFontSet' xrefstyle='select: title'/>
function returns an
<structname>XFontSetExtents</structname>
structure for the fonts used by the Xmb and Xwc layers
@@ -2996,7 +2996,7 @@ The
structure is owned by Xlib and should not be modified
or freed by the client.
It will be freed by a call to
-<function>XFreeFontSet</function>
+<xref linkend='XFreeFontSet' xrefstyle='select: title'/>
with the associated
<type>XFontSet</type>.
Until freed, its contents will not be modified by Xlib.
@@ -3006,14 +3006,14 @@ Until freed, its contents will not be modified by Xlib.
<!-- .sp -->
To obtain the escapement in pixels of the specified text as a value,
use
-<function>XmbTextEscapement</function>
+<xref linkend='XmbTextEscapement' xrefstyle='select: title'/>
or
-<function>XwcTextEscapement</function>.
+<xref linkend='XwcTextEscapement' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbTextEscapement</primary></indexterm>
<indexterm significance="preferred"><primary>XwcTextEscapement</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbtextescapement'>
+<funcsynopsis id='XmbTextEscapement'>
<funcprototype>
<funcdef>int <function>XmbTextEscapement</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -3022,7 +3022,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwctextescapement'>
+<funcsynopsis id='XwcTextEscapement'>
<funcprototype>
<funcdef>int <function>XwcTextEscapement</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -3077,9 +3077,9 @@ Specifies the number of characters in the string argument.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbTextEscapement</function>
+<xref linkend='XmbTextEscapement' xrefstyle='select: title'/>
and
-<function>XwcTextEscapement</function>
+<xref linkend='XwcTextEscapement' xrefstyle='select: title'/>
functions return the escapement in pixels of the specified string as a value,
using the fonts loaded for the specified font set.
The escapement is the distance in pixels in the primary draw
@@ -3098,14 +3098,14 @@ the escapement is always positive.
To obtain the overall_ink_return and overall_logical_return arguments,
the overall bounding box of the string's image, and a logical bounding box,
use
-<function>XmbTextExtents</function>
+<xref linkend='XmbTextExtents' xrefstyle='select: title'/>
or
<function>XwcTextExtents</function>.
</para>
<indexterm significance="preferred"><primary>XmbTextExtents</primary></indexterm>
<indexterm significance="preferred"><primary>XwcTextExtents</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbtextextents'>
+<funcsynopsis id='XmbTextExtents'>
<funcprototype>
<funcdef>int <function>XmbTextExtents</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -3194,7 +3194,7 @@ Returns the overall logical dimensions.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbTextExtents</function>
+<xref linkend='XmbTextExtents' xrefstyle='select: title'/>
and
<function>XwcTextExtents</function>
functions set the components of the specified overall_ink_return and
@@ -3202,9 +3202,9 @@ overall_logical_return
arguments to the overall bounding box of the string's image
and a logical bounding box for spacing purposes, respectively.
They return the value returned by
-<function>XmbTextEscapement</function>
+<xref linkend='XmbTextEscapement' xrefstyle='select: title'/>
or
-<function>XwcTextEscapement</function>.
+<xref linkend='XwcTextEscapement' xrefstyle='select: title'/>.
These metrics are relative to the drawing origin of the string,
using the fonts loaded for the specified font set.
</para>
@@ -3236,7 +3236,7 @@ When the
has missing charsets,
metrics for each unavailable character are taken
from the default string returned by
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
so that the metrics represent the text as it will actually be drawn.
The behavior for an invalid codepoint is undefined.
</para>
@@ -3244,7 +3244,7 @@ The behavior for an invalid codepoint is undefined.
<!-- .LP -->
To determine the effective drawing origin for a character in a drawn string,
the client should call
-<function>XmbTextPerCharExtents</function>
+<xref linkend='XmbTextPerCharExtents' xrefstyle='select: title'/>
on the entire string, then on the character,
and subtract the x values of the returned
rectangles for the character.
@@ -3258,14 +3258,14 @@ and get the same rendering.
<!-- .sp -->
To obtain per-character information for a text string,
use
-<function>XmbTextPerCharExtents</function>
+<xref linkend='XmbTextPerCharExtents' xrefstyle='select: title'/>
or
-<function>XwcTextPerCharExtents</function>.
+<xref linkend='XwcTextPerCharExtents' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbTextPerCharExtents</primary></indexterm>
<indexterm significance="preferred"><primary>XwcTextPerCharExtents</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbtextpercharextents'>
+<funcsynopsis id='XmbTextPerCharExtents'>
<funcprototype>
<funcdef>Status <function>XmbTextPerCharExtents</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -3280,7 +3280,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwctextpercharextents'>
+<funcsynopsis id='XwcTextPerCharExtents'>
<funcprototype>
<funcdef>Status <function>XwcTextPerCharExtents</function></funcdef>
<paramdef>XFontSet<parameter> font_set</parameter></paramdef>
@@ -3403,9 +3403,9 @@ Returns the overall logical dimensions.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbTextPerCharExtents</function>
+<xref linkend='XmbTextPerCharExtents' xrefstyle='select: title'/>
and
-<function>XwcTextPerCharExtents</function>
+<xref linkend='XwcTextPerCharExtents' xrefstyle='select: title'/>
functions return the text dimensions of each character of the specified text,
using the fonts loaded for the specified font set.
Each successive element of ink_array_return and logical_array_return
@@ -3444,7 +3444,7 @@ When the
<type>XFontSet</type>
has missing charsets, metrics for each unavailable
character are taken from the default string returned by
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
so that the metrics represent the text as it will actually be drawn.
The behavior for an invalid codepoint is undefined.
</para>
@@ -3458,12 +3458,12 @@ Otherwise, the functions return a nonzero value.
<para>
<!-- .LP -->
If the overall_ink_return or overall_logical_return argument is non-NULL,
-<function>XmbTextPerCharExtents</function>
+<xref linkend='XmbTextPerCharExtents' xrefstyle='select: title'/>
and
-<function>XwcTextPerCharExtents</function>
+<xref linkend='XwcTextPerCharExtents' xrefstyle='select: title'/>
return the maximum extent of the string's metrics to overall_ink_return
or overall_logical_return, as returned by
-<function>XmbTextExtents</function>
+<xref linkend='XmbTextExtents' xrefstyle='select: title'/>
or
<function>XwcTextExtents</function>.
</para>
@@ -3478,10 +3478,10 @@ or
The functions defined in this section
draw text at a specified location in a drawable.
They are similar to the functions
-<function>XDrawText</function>,
-<function>XDrawString</function>,
+<xref linkend='XDrawText' xrefstyle='select: title'/>,
+<xref linkend='XDrawString' xrefstyle='select: title'/>,
and
-<function>XDrawImageString</function>
+<xref linkend='XDrawImageString' xrefstyle='select: title'/>
except that they work with font sets instead of single fonts
and interpret the text based on the locale of the font set
instead of treating the bytes of the string as direct font indexes.
@@ -3502,9 +3502,9 @@ No validation that all fonts conform to some width rule is performed.
<para>
<!-- .LP -->
The text functions
-<function>XmbDrawText</function>
+<xref linkend='XmbDrawText' xrefstyle='select: title'/>
and
-<function>XwcDrawText</function>
+<xref linkend='XwcDrawText' xrefstyle='select: title'/>
use the following structures:
</para>
<para>
@@ -3541,14 +3541,14 @@ typedef struct {
<!-- .eM -->
<!-- .sp -->
To draw text using multiple font sets in a given drawable, use
-<function>XmbDrawText</function>
+<xref linkend='XmbDrawText' xrefstyle='select: title'/>
or
-<function>XwcDrawText</function>.
+<xref linkend='XwcDrawText' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbDrawText</primary></indexterm>
<indexterm significance="preferred"><primary>XwcDrawText</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbdrawtext'>
+<funcsynopsis id='XmbDrawText'>
<funcprototype>
<funcdef>void <function>XmbDrawText</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3560,7 +3560,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwcdrawtext'>
+<funcsynopsis id='XwcDrawText'>
<funcprototype>
<funcdef>void <function>XwcDrawText</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3650,9 +3650,9 @@ Specifies the number of text items in the array.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbDrawText</function>
+<xref linkend='XmbDrawText' xrefstyle='select: title'/>
and
-<function>XwcDrawText</function>
+<xref linkend='XwcDrawText' xrefstyle='select: title'/>
functions allow complex spacing and font set shifts between text strings.
Each text item is processed in turn, with the origin of a text
element advanced in the primary draw direction by the escapement of the
@@ -3669,37 +3669,37 @@ will not be drawn.
</para>
<para>
<!-- .LP -->
-<function>XmbDrawText</function>
+<xref linkend='XmbDrawText' xrefstyle='select: title'/>
and
-<function>XwcDrawText</function>
+<xref linkend='XwcDrawText' xrefstyle='select: title'/>
do not perform any context-dependent rendering between text segments.
Clients may compute the drawing metrics by passing each text segment to
-<function>XmbTextExtents</function>
+<xref linkend='XmbTextExtents' xrefstyle='select: title'/>
and
<function>XwcTextExtents</function>
or
-<function>XmbTextPerCharExtents</function>
+<xref linkend='XmbTextPerCharExtents' xrefstyle='select: title'/>
and
-<function>XwcTextPerCharExtents</function>.
+<xref linkend='XwcTextPerCharExtents' xrefstyle='select: title'/>.
When the
<type>XFontSet</type>
has missing charsets, each unavailable character is drawn
with the default string returned by
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
The behavior for an invalid codepoint is undefined.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To draw text using a single font set in a given drawable, use
-<function>XmbDrawString</function>
+<xref linkend='XmbDrawString' xrefstyle='select: title'/>
or
-<function>XwcDrawString</function>.
+<xref linkend='XwcDrawString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbDrawString</primary></indexterm>
<indexterm significance="preferred"><primary>XwcDrawString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbdrawstring'>
+<funcsynopsis id='XmbDrawString'>
<funcprototype>
<funcdef>void <function>XmbDrawString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3712,7 +3712,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwcdrawstring'>
+<funcsynopsis id='XwcDrawString'>
<funcprototype>
<funcdef>void <function>XwcDrawString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3823,29 +3823,29 @@ Specifies the number of characters in the string argument.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbDrawString</function>
+<xref linkend='XmbDrawString' xrefstyle='select: title'/>
and
-<function>XwcDrawString</function>
+<xref linkend='XwcDrawString' xrefstyle='select: title'/>
functions draw the specified text with the foreground pixel.
When the
<type>XFontSet</type>
has missing charsets, each unavailable character is drawn
with the default string returned by
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
The behavior for an invalid codepoint is undefined.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To draw image text using a single font set in a given drawable, use
-<function>XmbDrawImageString</function>
+<xref linkend='XmbDrawImageString' xrefstyle='select: title'/>
or
-<function>XwcDrawImageString</function>.
+<xref linkend='XwcDrawImageString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbDrawImageString</primary></indexterm>
<indexterm significance="preferred"><primary>XwcDrawImageString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbdrawimagestring'>
+<funcsynopsis id='XmbDrawImageString'>
<funcprototype>
<funcdef>void <function>XmbDrawImageString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3858,7 +3858,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwcdrawimagestring'>
+<funcsynopsis id='XwcDrawImageString'>
<funcprototype>
<funcdef>void <function>XwcDrawImageString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3969,13 +3969,13 @@ Specifies the number of characters in the string argument.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbDrawImageString</function>
+<xref linkend='XmbDrawImageString' xrefstyle='select: title'/>
and
-<function>XwcDrawImageString</function>
+<xref linkend='XwcDrawImageString' xrefstyle='select: title'/>
functions fill a destination rectangle with the background pixel defined
in the GC and then paint the text with the foreground pixel.
The filled rectangle is the rectangle returned to overall_logical_return by
-<function>XmbTextExtents</function>
+<xref linkend='XmbTextExtents' xrefstyle='select: title'/>
or
<function>XwcTextExtents</function>
for the same text and
@@ -3987,7 +3987,7 @@ When the
<type>XFontSet</type>
has missing charsets, each unavailable character is drawn
with the default string returned by
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
The behavior for an invalid codepoint is undefined.
</para>
</sect2>
@@ -4358,7 +4358,7 @@ is an opaque data structure represented by the
<type>XIM</type>
data type.
This data structure is returned by the
-<function>XOpenIM</function>
+<xref linkend='XOpenIM' xrefstyle='select: title'/>
function, which opens an input method on a given display.
Subsequent operations on this data structure encapsulate all communication
between client and input method.
@@ -4410,13 +4410,13 @@ possibly with the same client window.
An
<type>XIC</type>
is created with the
-<function>XCreateIC</function>
+<xref linkend='XCreateIC' xrefstyle='select: title'/>
function, providing an
<type>XIM</type>
argument and affiliating the input context to the input method
for its lifetime.
When an input method is closed with
-<function>XCloseIM</function>,
+<xref linkend='XCloseIM' xrefstyle='select: title'/>,
all of its affiliated input contexts should not be used any more
(and should preferably be destroyed before closing the input method).
</para>
@@ -4458,16 +4458,16 @@ according to the needs of their application.
<!-- .LP -->
To obtain characters from an input method,
a client must call the function
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
with an input context created from that input method.
Both a locale and display are bound to an input method when it is opened,
and an input context inherits this locale and display.
Any strings returned by
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
will be encoded in that locale.
</para>
</sect3>
@@ -4479,9 +4479,9 @@ will be encoded in that locale.
<para>
<!-- .LP -->
For each text entry area in which the
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
functions are used,
there will be an associated input context.
</para>
@@ -4491,7 +4491,7 @@ When the application focus moves to a text entry area,
the application must set the input context focus to the
input context associated with that area.
The input context focus is set by calling
-<function>XSetICFocus</function>
+<xref linkend='XSetICFocus' xrefstyle='select: title'/>
with the appropriate input context.
</para>
<para>
@@ -4499,9 +4499,9 @@ with the appropriate input context.
Also, when the application focus moves out of a text entry area, the
application should unset the focus for the associated input context
by calling
-<function>XUnsetICFocus</function>.
+<xref linkend='XUnsetICFocus' xrefstyle='select: title'/>.
As an optimization, if
-<function>XSetICFocus</function>
+<xref linkend='XSetICFocus' xrefstyle='select: title'/>
is called successively on two different input contexts,
setting the focus on the second
will automatically unset the focus on the first.
@@ -4580,7 +4580,7 @@ or
in its
<structname>XIMStyles</structname>
value returned by
-<function>XGetIMValues</function>.
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>.
When a client has decided that it will provide geometry management
for an input method,
it indicates that decision by setting the
@@ -4661,9 +4661,9 @@ by which an input method can initiate a geometry change.
A filtering mechanism is provided to allow input methods
to capture X events transparently to clients.
It is expected that toolkits (or clients) using
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
will call this filter at some point in the event processing mechanism
to make sure that events needed by an input method can be filtered
by that input method.
@@ -4720,9 +4720,9 @@ by the client itself, tightly coupled with the input method logic.
<!-- .LP -->
When the user enters a keystroke,
the client calls
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>.
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>.
At this point, in the on-the-spot case,
the echo of the keystroke in the preedit has not yet been done.
Before returning to the client logic that handles the input characters,
@@ -4780,9 +4780,9 @@ As highlighted before, the input method architecture provides
preediting, which supports a type of preprocessor input composition.
In this case, composition consists of interpreting a sequence
of key events and returning a committed string via
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>.
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>.
This provides the basics for input methods.
</para>
<para>
@@ -4866,9 +4866,9 @@ and starts editing again.
<!-- .sp -->
For this reason, an input method supporting this type of conversion
should take notice of when the client calls
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
or
-<function>XwcResetIC</function>,
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>,
which is usually an indication of a context change.
</para>
</listitem>
@@ -4880,9 +4880,9 @@ while other conversions replace the client's text with new text
to achieve the reconversion or transliteration. Yet in all
cases the result of a conversion, either immediately or via preediting,
is returned by the
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
and
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
functions.
</para>
<para>
@@ -4895,7 +4895,7 @@ or
Because the input method may not support string conversions,
clients have to query the availability of string conversion
operations by checking the supported <acronym>XIC</acronym> values list by calling
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with the
<symbol>XNQueryICValuesList</symbol>
IM value.
@@ -4961,9 +4961,9 @@ additional text.
<!-- .LP -->
The interface to input methods might appear to be simply creating
an input method
-(<function>XOpenIM</function>)
+(<xref linkend='XOpenIM' xrefstyle='select: title'/>)
and freeing an input method
-(<function>XCloseIM</function>).
+(<xref linkend='XCloseIM' xrefstyle='select: title'/>).
However, input methods may
require complex communication with input method servers (IM servers),
for example:
@@ -5007,17 +5007,17 @@ functions are provided:
<colspec colname='c2'/>
<tbody>
<row>
- <entry><function>XRegisterIMInstantiateCallback</function></entry>
+ <entry><xref linkend='XRegisterIMInstantiateCallback' xrefstyle='select: title'/></entry>
<entry>This function allows clients to register a callback procedure
to be called when Xlib detects that an IM server is up and available.</entry>
</row>
<row>
- <entry><function>XOpenIM</function></entry>
+ <entry><xref linkend='XOpenIM' xrefstyle='select: title'/></entry>
<entry>A client calls this function as a result of the callback procedure
being called.</entry>
</row>
<row>
- <entry><function>XSetIMValues</function>, <function>XSetICValues</function></entry>
+ <entry><xref linkend='XSetIMValues' xrefstyle='select: title'/>, <xref linkend='XSetICValues' xrefstyle='select: title'/></entry>
<entry>These functions use the <acronym>XIM</acronym> and <acronym>XIC</acronym> values,
<symbol>XNDestroyCallback</symbol>,
to allow a client
@@ -5030,7 +5030,7 @@ functions are provided:
switching IM servers.</entry>
</row>
<row>
- <entry><function>XUnregisterIMInstantiateCallback</function></entry>
+ <entry><xref linkend='XUnregisterIMInstantiateCallback' xrefstyle='select: title'/></entry>
<entry>This function removes a callback procedure registered by the client.</entry>
</row>
</tbody>
@@ -5082,7 +5082,7 @@ to specify a set of keys for this purpose. However, the input
method might not allow clients to specify hot keys.
Therefore, clients have to query support of hot keys by checking the
supported <acronym>XIC</acronym> values list by calling
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with the
<symbol>XNQueryICValuesList</symbol>
IM value.
@@ -5109,20 +5109,20 @@ Xlib provides the ability for an application to manage the preedit state
programmatically. Two methods are provided for
retrieving the preedit state of an input context.
One method is to query the state by calling
-<function>XGetICValues</function>
+<xref linkend='XGetICValues' xrefstyle='select: title'/>
with the
<symbol>XNPreeditState</symbol>
<acronym>XIC</acronym> value.
Another method is to receive notification whenever
the preedit state is changed. To receive such notification,
an application needs to register a callback by calling
-<function>XSetICValues</function>
+<xref linkend='XSetICValues' xrefstyle='select: title'/>
with the
<symbol>XNPreeditStateNotifyCallback</symbol>
<acronym>XIC</acronym> value.
In order to change the preedit state programmatically, an application
needs to call
-<function>XSetICValues</function>
+<xref linkend='XSetICValues' xrefstyle='select: title'/>
with
<symbol>XNPreeditState</symbol>.
</para>
@@ -5133,7 +5133,7 @@ method may not provide the ability to set the state or to
retrieve the state programmatically. Therefore, clients have to
query availability of preedit state operations by checking the
supported <acronym>XIC</acronym> values list by calling
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with the
<symbol>XNQueryICValuesList</symbol>
IM value.
@@ -5148,11 +5148,11 @@ IM value.
<para>
<!-- .LP -->
To open a connection, use
-<function>XOpenIM</function>.
+<xref linkend='XOpenIM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XOpenIM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xopenim'>
+<funcsynopsis id='XOpenIM'>
<funcprototype>
<funcdef>XIM <function>XOpenIM</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5208,15 +5208,15 @@ Specifies the full class name of the application.
<!-- .LP -->
<!-- .eM -->
The
-<function>XOpenIM</function>
+<xref linkend='XOpenIM' xrefstyle='select: title'/>
function opens an input method,
matching the current locale and modifiers specification.
Current locale and modifiers are bound to the input method at opening time.
The locale associated with an input method cannot be changed dynamically.
This implies that the strings returned by
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>,
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>,
for any input context affiliated with a given input method,
will be encoded in the locale current at the time the input method is opened.
</para>
@@ -5224,11 +5224,11 @@ will be encoded in the locale current at the time the input method is opened.
<!-- .LP -->
The specific input method to which this call will be routed
is identified on the basis of the current locale.
-<function>XOpenIM</function>
+<xref linkend='XOpenIM' xrefstyle='select: title'/>
will identify a default input method corresponding to the
current locale.
That default can be modified using
-<function>XSetLocaleModifiers</function>
+<xref linkend='XSetLocaleModifiers' xrefstyle='select: title'/>
for the input method modifier.
</para>
<para>
@@ -5256,24 +5256,24 @@ if res_name or res_class is NULL.
<!-- .LP -->
The res_name and res_class arguments are not assumed to exist beyond
the call to
-<function>XOpenIM</function>.
+<xref linkend='XOpenIM' xrefstyle='select: title'/>.
The specified resource database is assumed to exist for the lifetime
of the input method.
</para>
<para>
<!-- .LP -->
-<function>XOpenIM</function>
+<xref linkend='XOpenIM' xrefstyle='select: title'/>
returns NULL if no input method could be opened.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To close a connection, use
-<function>XCloseIM</function>.
+<xref linkend='XCloseIM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCloseIM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcloseim'>
+<funcsynopsis id='XCloseIM'>
<funcprototype>
<funcdef>Status <function>XCloseIM</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -5296,18 +5296,18 @@ Specifies the input method.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCloseIM</function>
+<xref linkend='XCloseIM' xrefstyle='select: title'/>
function closes the specified input method.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To set input method attributes, use
-<function>XSetIMValues</function>.
+<xref linkend='XSetIMValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetIMValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetimvalues'>
+<funcsynopsis id='XSetIMValues'>
<funcprototype>
<funcdef>char *<function>XSetIMValues</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -5341,7 +5341,7 @@ Specifies the variable-length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetIMValues</function>
+<xref linkend='XSetIMValues' xrefstyle='select: title'/>
function presents a variable argument list programming interface
for setting attributes of the specified input method.
It returns NULL if it succeeds;
@@ -5356,11 +5356,11 @@ correctly.
<!-- .LP -->
<!-- .sp -->
To query an input method, use
-<function>XGetIMValues</function>.
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetIMValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetimvalues'>
+<funcsynopsis id='XGetIMValues'>
<funcprototype>
<funcdef>char *<function>XGetIMValues</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -5394,7 +5394,7 @@ Specifies the variable length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
function presents a variable argument list programming interface
for querying properties or features of the specified input method.
This function returns NULL if it succeeds;
@@ -5409,21 +5409,21 @@ That is, if the <acronym>XIM</acronym> value is of type T,
the argument must be of type T*.
If T itself is a pointer type,
then
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
allocates memory to store the actual data,
and the client is responsible for freeing this data by calling
-<function>XFree</function>
+<xref linkend='XFree' xrefstyle='select: title'/>
with the returned pointer.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To obtain the display associated with an input method, use
-<function>XDisplayOfIM</function>.
+<xref linkend='XDisplayOfIM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDisplayOfIM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdisplayofim'>
+<funcsynopsis id='XDisplayOfIM'>
<funcprototype>
<funcdef>Display *<function>XDisplayOfIM</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -5446,18 +5446,18 @@ Specifies the input method.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDisplayOfIM</function>
+<xref linkend='XDisplayOfIM' xrefstyle='select: title'/>
function returns the display associated with the specified input method.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To get the locale associated with an input method, use
-<function>XLocaleOfIM</function>.
+<xref linkend='XLocaleOfIM' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLocaleOfIM</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlocaleofim'>
+<funcsynopsis id='XLocaleOfIM'>
<funcprototype>
<funcdef>char *<function>XLocaleOfIM</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -5480,18 +5480,18 @@ Specifies the input method.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLocaleOfIM</function>
+<xref linkend='XLocaleOfIM' xrefstyle='select: title'/>
function returns the locale associated with the specified input method.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To register an input method instantiate callback, use
-<function>XRegisterIMInstantiateCallback</function>.
+<xref linkend='XRegisterIMInstantiateCallback' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRegisterIMInstantiateCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xregisteriminstantiatecallback'>
+<funcsynopsis id='XRegisterIMInstantiateCallback'>
<funcprototype>
<funcdef>Bool <function>XRegisterIMInstantiateCallback</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5569,7 +5569,7 @@ Specifies the additional client data.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRegisterIMInstantiateCallback</function>
+<xref linkend='XRegisterIMInstantiateCallback' xrefstyle='select: title'/>
function registers a callback to be invoked whenever a new input method
becomes available for the specified display that matches the current
locale and modifiers.
@@ -5587,7 +5587,7 @@ The generic prototype is as follows:
</para>
<indexterm significance="preferred"><primary>IMInstantiateCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='iminstantiatecallback'>
+<funcsynopsis id='IMInstantiateCallback'>
<funcprototype>
<funcdef>void <function><replaceable>IMInstantiateCallback</replaceable></function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5632,11 +5632,11 @@ Not used for this callback and always passed as NULL.
<!-- .LP -->
<!-- .eM -->
To unregister an input method instantiation callback, use
-<function>XUnregisterIMInstantiateCallback</function>.
+<xref linkend='XUnregisterIMInstantiateCallback' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUnregisterIMInstantiateCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xunregisteriminstantiatecallback'>
+<funcsynopsis id='XUnregisterIMInstantiateCallback'>
<funcprototype>
<funcdef>Bool <function>XUnregisterIMInstantiateCallback</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5714,7 +5714,7 @@ Specifies the additional client data.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUnregisterIMInstantiateCallback</function>
+<xref linkend='XUnregisterIMInstantiateCallback' xrefstyle='select: title'/>
function removes an input method instantiation callback previously
registered.
The function returns
@@ -5757,17 +5757,17 @@ The following keys apply to this table.
<row>
<entry>D</entry>
<entry>This value may be set using
- <function>XSetIMValues</function>.
+ <xref linkend='XSetIMValues' xrefstyle='select: title'/>.
If it is not set,
a default is provided.</entry>
</row>
<row>
<entry>S</entry>
- <entry>This value may be set using <function>XSetIMValues</function>.</entry>
+ <entry>This value may be set using <xref linkend='XSetIMValues' xrefstyle='select: title'/>.</entry>
</row>
<row>
<entry>G</entry>
- <entry>This value may be read using <function>XGetIMValues</function>.</entry>
+ <entry>This value may be read using <xref linkend='XGetIMValues' xrefstyle='select: title'/>.</entry>
</row>
</tbody>
</tgroup>
@@ -5856,7 +5856,7 @@ Clients are responsible for freeing the
<structname>XIMStyles</structname>
structure.
To do so, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -6068,9 +6068,9 @@ is triggered when an input method stops its service for any reason.
After the callback is invoked, the input method is closed and the
associated input context(s) are destroyed by Xlib.
Therefore, the client should not call
-<function>XCloseIM</function>
+<xref linkend='XCloseIM' xrefstyle='select: title'/>
or
-<function>XDestroyIC</function>.
+<xref linkend='XDestroyIC' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -6078,7 +6078,7 @@ The generic prototype of this callback function is as follows:
</para>
<indexterm significance="preferred"><primary>DestroyCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='destroycallback'>
+<funcsynopsis id='DestroyCallback'>
<funcprototype>
<funcdef>void <function><replaceable>DestroyCallback</replaceable></function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -6128,7 +6128,7 @@ A DestroyCallback is always called with a NULL call_data argument.
<!-- .LP -->
</para>
</sect3>
-<sect3 id="Query_IM_IC_Values_List">
+<sect3 id='Query_IMIC_Values_List'>
<title>Query IM/IC Values List</title>
<!-- .XS -->
<!-- (SN Query IM/IC Values List -->
@@ -6150,7 +6150,7 @@ Clients are responsible for freeing the
<structname>XIMValuesList</structname>
structure.
To do so, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -6203,7 +6203,7 @@ otherwise, the input method does not use the masks.
<para>
<!-- .LP -->
Because this <acronym>XIM</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryIMValuesList</symbol>
before using this argument.
@@ -6273,7 +6273,7 @@ must be set to
<para>
<!-- .LP -->
Because this <acronym>XIM</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryIMValuesList</symbol>
before using this argument.
@@ -6310,11 +6310,11 @@ they should be registered with the X Consortium.
<!-- .LP -->
<!-- .sp -->
To create an input context, use
-<function>XCreateIC</function>.
+<xref linkend='XCreateIC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateIC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreateic'>
+<funcsynopsis id='XCreateIC'>
<funcprototype>
<funcdef>XIC <function>XCreateIC</function></funcdef>
<paramdef>XIM<parameter> im</parameter></paramdef>
@@ -6348,7 +6348,7 @@ Specifies the variable length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateIC</function>
+<xref linkend='XCreateIC' xrefstyle='select: title'/>
function creates a context within the specified input method.
</para>
<para>
@@ -6361,7 +6361,7 @@ All other input context values can be set later.
</para>
<para>
<!-- .LP -->
-<function>XCreateIC</function>
+<xref linkend='XCreateIC' xrefstyle='select: title'/>
returns a NULL value if no input context could be created.
A NULL value could be returned for any of the following reasons:
</para>
@@ -6390,7 +6390,7 @@ The input method encountered an input method implementation-dependent error.
</itemizedlist>
<para>
<!-- .LP -->
-<function>XCreateIC</function>
+<xref linkend='XCreateIC' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>,
<errorname>BadColor</errorname>,
@@ -6403,11 +6403,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To destroy an input context, use
-<function>XDestroyIC</function>.
+<xref linkend='XDestroyIC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDestroyIC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdestroyic'>
+<funcsynopsis id='XDestroyIC'>
<funcprototype>
<funcdef>void <function>XDestroyIC</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -6429,7 +6429,7 @@ Specifies the input context.
<para>
<!-- .LP -->
<!-- .eM -->
-<function>XDestroyIC</function>
+<xref linkend='XDestroyIC' xrefstyle='select: title'/>
destroys the specified input context.
</para>
<para>
@@ -6438,13 +6438,13 @@ destroys the specified input context.
To communicate to and synchronize with input method
for any changes in keyboard focus from the client side,
use
-<function>XSetICFocus</function>
+<xref linkend='XSetICFocus' xrefstyle='select: title'/>
and
-<function>XUnsetICFocus</function>.
+<xref linkend='XUnsetICFocus' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetICFocus</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xseticfocus'>
+<funcsynopsis id='XSetICFocus'>
<funcprototype>
<funcdef>void <function>XSetICFocus</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -6467,7 +6467,7 @@ Specifies the input context.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetICFocus</function>
+<xref linkend='XSetICFocus' xrefstyle='select: title'/>
function allows a client to notify an input method that the focus window
attached to the specified input context has received keyboard focus.
The input method should take action to provide appropriate feedback.
@@ -6476,12 +6476,12 @@ Complete feedback specification is a matter of user interface policy.
<para>
<!-- .LP -->
Calling
-<function>XSetICFocus</function>
+<xref linkend='XSetICFocus' xrefstyle='select: title'/>
does not affect the focus window value.
</para>
<indexterm significance="preferred"><primary>XUnsetICFocus</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xunseticfocus'>
+<funcsynopsis id='XUnsetICFocus'>
<funcprototype>
<funcdef>void <function>XUnsetICFocus</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -6504,7 +6504,7 @@ Specifies the input context.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUnsetICFocus</function>
+<xref linkend='XUnsetICFocus' xrefstyle='select: title'/>
function allows a client to notify an input method that the specified input context
has lost the keyboard focus and that no more input is expected on the focus window
attached to that input context.
@@ -6514,7 +6514,7 @@ Complete feedback specification is a matter of user interface policy.
<para>
<!-- .LP -->
Calling
-<function>XUnsetICFocus</function>
+<xref linkend='XUnsetICFocus' xrefstyle='select: title'/>
does not affect the focus window value;
the client may still receive
events from the input method that are directed to the focus window.
@@ -6523,21 +6523,21 @@ events from the input method that are directed to the focus window.
<!-- .LP -->
<!-- .sp -->
To reset the state of an input context to its initial state, use
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
or
-<function>XwcResetIC</function>.
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbResetIC</primary></indexterm>
<indexterm significance="preferred"><primary>XwcResetIC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbresetic'>
+<funcsynopsis id='XmbResetIC'>
<funcprototype>
<funcdef>char *<function>XmbResetIC</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwcresetic'>
+<funcsynopsis id='XwcResetIC'>
<funcprototype>
<funcdef>wchar_t *<function>XwcResetIC</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -6563,9 +6563,9 @@ When
<symbol>XNResetState</symbol>
is set to
<symbol>XIMInitialState</symbol>,
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
and
-<function>XwcResetIC</function>
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>
reset an input context to its initial state;
when
<symbol>XNResetState</symbol>
@@ -6576,15 +6576,15 @@ In both cases, any input pending on that context is deleted.
The input method is required to clear the preedit area, if any,
and update the status accordingly.
Calling
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
or
-<function>XwcResetIC</function>
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>
does not change the focus.
</para>
<para>
<!-- .LP -->
The return value of
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
is its current preedit string as a multibyte string.
If there is any preedit text drawn or visible to the user,
then these procedures must return a non-NULL string.
@@ -6595,17 +6595,17 @@ whether these procedures return a non-NULL string or NULL.
<para>
<!-- .LP -->
The client should free the returned string by calling
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To get the input method associated with an input context, use
-<function>XIMOfIC</function>.
+<xref linkend='XIMOfIC' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XIMOfIC</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='ximofic'>
+<funcsynopsis id='XIMOfIC'>
<funcprototype>
<funcdef>XIM <function>XIMOfIC</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -6628,16 +6628,16 @@ Specifies the input context.
<!-- .LP -->
<!-- .eM -->
The
-<function>XIMOfIC</function>
+<xref linkend='XIMOfIC' xrefstyle='select: title'/>
function returns the input method associated with the specified input context.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
Xlib provides two functions for setting and reading <acronym>XIC</acronym> values, respectively,
-<function>XSetICValues</function>
+<xref linkend='XSetICValues' xrefstyle='select: title'/>
and
-<function>XGetICValues</function>.
+<xref linkend='XGetICValues' xrefstyle='select: title'/>.
Both functions have a variable-length argument list.
In that argument list, any <acronym>XIC</acronym> value's name must be denoted
with a character string using the X Portable Character Set.
@@ -6646,11 +6646,11 @@ with a character string using the X Portable Character Set.
<!-- .LP -->
<!-- .sp -->
To set <acronym>XIC</acronym> values, use
-<function>XSetICValues</function>.
+<xref linkend='XSetICValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetICValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xseticvalues'>
+<funcsynopsis id='XSetICValues'>
<funcprototype>
<funcdef>char *<function>XSetICValues</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -6684,7 +6684,7 @@ Specifies the variable length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetICValues</function>
+<xref linkend='XSetICValues' xrefstyle='select: title'/>
function returns NULL if no error occurred;
otherwise,
it returns the name of the first argument that could not be set.
@@ -6715,7 +6715,7 @@ matching the data type imposed by the semantics of the argument.
</para>
<para>
<!-- .LP -->
-<function>XSetICValues</function>
+<xref linkend='XSetICValues' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>,
<errorname>BadColor</errorname>,
@@ -6729,11 +6729,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To obtain <acronym>XIC</acronym> values, use
-<function>XGetICValues</function>.
+<xref linkend='XGetICValues' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetICValues</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgeticvalues'>
+<funcsynopsis id='XGetICValues'>
<funcprototype>
<funcdef>char *<function>XGetICValues</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -6767,7 +6767,7 @@ Specifies the variable length argument list(Al.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetICValues</function>
+<xref linkend='XGetICValues' xrefstyle='select: title'/>
function returns NULL if no error occurred; otherwise,
it returns the name of the first argument that could not be obtained.
An argument could not be obtained for any of the following reasons:
@@ -6792,10 +6792,10 @@ That is, if the IC value is of type T,
the argument must be of type T*.
If T itself is a pointer type,
then
-<function>XGetICValues</function>
+<xref linkend='XGetICValues' xrefstyle='select: title'/>
allocates memory to store the actual data,
and the client is responsible for freeing this data by calling
-<function>XFree</function>
+<xref linkend='XFree' xrefstyle='select: title'/>
with the returned pointer.
The exception to this rule is for an IC value of type
<type>XVaNestedList</type>
@@ -6844,26 +6844,26 @@ The following keys apply to these tables.
<tbody>
<row>
<entry>C</entry>
- <entry>This value must be set with <function>XCreateIC</function>.</entry>
+ <entry>This value must be set with <xref linkend='XCreateIC' xrefstyle='select: title'/>.</entry>
</row>
<row>
<entry>D</entry>
<entry>This value may be set using
- <function>XCreateIC</function>.>
+ <xref linkend='XCreateIC' xrefstyle='select: title'/>.>
If it is not set,>
a default is provided.</entry>
</row>
<row>
<entry>G</entry>
<entry>This value may be read using
- <function>XGetICValues</function>.</entry>
+ <xref linkend='XGetICValues' xrefstyle='select: title'/>.</entry>
</row>
<row>
<entry>GN</entry>
<entry>This value may cause geometry negotiation when its value is set by means of
- <function>XCreateIC</function>
+ <xref linkend='XCreateIC' xrefstyle='select: title'/>
or
- <function>XSetICValues</function>.</entry>
+ <xref linkend='XSetICValues' xrefstyle='select: title'/>.</entry>
</row>
<row>
<entry>GR</entry>
@@ -6882,7 +6882,7 @@ The following keys apply to these tables.
<row>
<entry>S</entry>
<entry>This value may be set with
- <function>XSetICValues</function>.</entry>
+ <xref linkend='XSetICValues' xrefstyle='select: title'/>.</entry>
</row>
<row>
<entry>Ignored</entry>
@@ -7332,7 +7332,7 @@ The
<symbol>XNInputStyle</symbol>
argument specifies the input style to be used.
The value of this argument must be one of the values returned by the
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
function with the
<symbol>XNQueryInputStyle</symbol>
argument specified in the supported_styles list.
@@ -7367,11 +7367,11 @@ the input method may not operate correctly.
<para>
<!-- .LP -->
If an attempt is made to set this value a second time with
-<function>XSetICValues</function>,
+<xref linkend='XSetICValues' xrefstyle='select: title'/>,
the string
<symbol>XNClientWindow</symbol>
will be returned by
-<function>XSetICValues</function>,
+<xref linkend='XSetICValues' xrefstyle='select: title'/>,
and the client window will not be changed.
</para>
<para>
@@ -7538,9 +7538,9 @@ stops its service for any reason; for example, when a connection to an IM
server is broken. After the destroy callback is called,
the input context is destroyed and the input method is closed.
Therefore, the client should not call
-<function>XDestroyIC</function>
+<xref linkend='XDestroyIC' xrefstyle='select: title'/>
and
-<function>XCloseIM</function>.
+<xref linkend='XCloseIM' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -7573,7 +7573,7 @@ will filter any events that it uses to initiate the conversion.
<para>
<!-- .LP -->
Because this <acronym>XIC</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryICValuesList</symbol>
before using this argument.
@@ -7582,8 +7582,8 @@ before using this argument.
<!-- .LP -->
</para>
</sect3>
-<sect3 id="String_Conversion_">
-<title>String Conversion </title>
+<sect3 id='String_Conversion'>
+<title>String Conversion</title>
<!-- .XS -->
<!-- (SN String Conversion -->
<!-- .XE -->
@@ -7613,7 +7613,7 @@ reconversion, or transliteration conversion on it.
<para>
<!-- .LP -->
Because this <acronym>XIC</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryICValuesList</symbol>
before using this argument.
@@ -7665,16 +7665,16 @@ element to NULL.
The
<symbol>XNResetState</symbol>
argument specifies the state the input context will return to after calling
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
or
-<function>XwcResetIC</function>.
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
The <acronym>XIC</acronym> state may be set to its initial state, as specified by the
<symbol>XNPreeditState</symbol>
value when
-<function>XCreateIC</function>
+<xref linkend='XCreateIC' xrefstyle='select: title'/>
was called, or it may be set to preserve the current state.
</para>
<para>
@@ -7703,9 +7703,9 @@ typedef unsigned long XIMResetState;
If
<symbol>XIMInitialState</symbol>
is set, then
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
and
-<function>XwcResetIC</function>
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>
will return to the initial
<symbol>XNPreeditState</symbol>
state of the <acronym>XIC</acronym>.
@@ -7715,9 +7715,9 @@ state of the <acronym>XIC</acronym>.
If
<symbol>XIMPreserveState</symbol>
is set, then
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
and
-<function>XwcResetIC</function>
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>
will preserve the current state of the <acronym>XIC</acronym>.
</para>
<para>
@@ -7736,7 +7736,7 @@ values other than those specified above will default to
<para>
<!-- .LP -->
Because this <acronym>XIC</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryICValuesList</symbol>
before using this argument.
@@ -7768,7 +7768,7 @@ to
<para>
<!-- .LP -->
Because this <acronym>XIC</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryICValuesList</symbol>
before using this functionality.
@@ -7904,9 +7904,9 @@ arguments specify to an input method the attributes to be used for the
preedit and status areas,
if any.
Those attributes are passed to
-<function>XSetICValues</function>
+<xref linkend='XSetICValues' xrefstyle='select: title'/>
or
-<function>XGetICValues</function>
+<xref linkend='XGetICValues' xrefstyle='select: title'/>
as a nested variable-length list.
The names to be used in these lists are described in the following sections.
</para>
@@ -8077,7 +8077,7 @@ in which the input method should allocate colors.
The argument value is an
<type>Atom</type>
that should be a valid atom for calling
-<function>XGetRGBColormaps</function>.
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>.
An invalid argument may generate a
<errorname>BadAtom</errorname>
error when it is used by the input method.
@@ -8263,14 +8263,14 @@ is set to
the
<symbol>XNPreeditState</symbol>
value specified at the creation time will be reflected as the initial state for
-<function>XmbResetIC</function>
+<xref linkend='XmbResetIC' xrefstyle='select: title'/>
and
-<function>XwcResetIC</function>.
+<xref linkend='XwcResetIC' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
Because this <acronym>XIC</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryICValuesList</symbol>
before using this argument.
@@ -8293,7 +8293,7 @@ The generic prototype is as follows:
</para>
<indexterm significance="preferred"><primary>PreeditStateNotifyCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='preeditstatenotifycallback'>
+<funcsynopsis id='PreeditStateNotifyCallback'>
<funcprototype>
<funcdef>void <function><replaceable>PreeditStateNotifyCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -8360,7 +8360,7 @@ typedef struct _XIMPreeditStateNotifyCallbackStruct {
<para>
<!-- .LP -->
Because this <acronym>XIC</acronym> value is optional, a client should call
-<function>XGetIMValues</function>
+<xref linkend='XGetIMValues' xrefstyle='select: title'/>
with argument
<symbol>XNQueryICValuesList</symbol>
before using this argument.
@@ -8644,7 +8644,7 @@ The generic prototype is as follows:
</para>
<indexterm significance="preferred"><primary>DestroyCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='destroycallback_xic'>
+<funcsynopsis id='DestroyCallback_2'>
<funcprototype>
<funcdef>void <function><replaceable>DestroyCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -8706,7 +8706,7 @@ The callback prototype is as follows:
</para>
<indexterm significance="preferred"><primary>StringConversionCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='stringconversioncallback'>
+<funcsynopsis id='StringConversionCallback'>
<funcprototype>
<funcdef>void <function><replaceable>StringConversionCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -8755,14 +8755,14 @@ The callback is passed an
structure in the call_data argument.
The text member is an
<structname>XIMStringConversionText</structname>
-structure (see <link linkend="String_Conversion_">section 13.5.6.9</link>)
+structure (see <link linkend='String_Conversion'>section 13.5.6.9</link>)
to be filled in by the client
and describes the text to be sent to the input method.
The data pointed to by the
string and feedback elements of the
<structname>XIMStringConversionText</structname>
structure will be freed using
-<function>XFree</function>
+<xref linkend='XFree' xrefstyle='select: title'/>
by the input method
after the callback returns. So the client should not point to
internal buffers that are critical to the client.
@@ -8860,15 +8860,15 @@ conversion.
<para>
<!-- .LP -->
When the input method turns preediting on or off, a
-<function><replaceable>PreeditStartCallback</replaceable></function>
+<xref linkend='PreeditStartCallback' xrefstyle='select: title'/>
or
-<function><replaceable>PreeditDoneCallback</replaceable></function>
+<xref linkend='PreeditDoneCallback' xrefstyle='select: title'/>
callback is triggered to let the toolkit do the setup
or the cleanup for the preedit region.
</para>
<indexterm significance="preferred"><primary>PreeditStartCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='preeditstartcallback'>
+<funcsynopsis id='PreeditStartCallback'>
<funcprototype>
<funcdef>int <function><replaceable>PreeditStartCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -8914,7 +8914,7 @@ Not used for this callback and always passed as NULL.
<!-- .eM -->
When preedit starts on the specified input context,
the callback is called with a NULL call_data argument.
-<function><replaceable>PreeditStartCallback</replaceable></function>
+<xref linkend='PreeditStartCallback' xrefstyle='select: title'/>
will return the maximum size of the preedit string.
A positive number indicates the maximum number of bytes allowed
in the preedit string,
@@ -8922,7 +8922,7 @@ and a value of -1 indicates there is no limit.
</para>
<indexterm significance="preferred"><primary>PreeditDoneCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='preeditdonecallback'>
+<funcsynopsis id='PreeditDoneCallback'>
<funcprototype>
<funcdef>void <function><replaceable>PreeditDoneCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -8969,19 +8969,19 @@ Not used for this callback and always passed as NULL.
When preedit stops on the specified input context,
the callback is called with a NULL call_data argument.
The client can release the data allocated by
-<function><replaceable>PreeditStartCallback</replaceable></function>.
+<xref linkend='PreeditStartCallback' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function><replaceable>PreeditStartCallback</replaceable></function>
+<xref linkend='PreeditStartCallback' xrefstyle='select: title'/>
should initialize appropriate data needed for
displaying preedit information and for handling further
-<function><replaceable>PreeditDrawCallback</replaceable></function>
+<xref linkend='PreeditDrawCallback' xrefstyle='select: title'/>
calls.
Once
-<function><replaceable>PreeditStartCallback</replaceable></function>
+<xref linkend='PreeditStartCallback' xrefstyle='select: title'/>
is called, it will not be called again before
-<function><replaceable>PreeditDoneCallback</replaceable></function>
+<xref linkend='PreeditDoneCallback' xrefstyle='select: title'/>
has been called.
</para>
</sect3>
@@ -9003,7 +9003,7 @@ is as follows:
</para>
<indexterm significance="preferred"><primary>PreeditDrawCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='preeditdrawcallback'>
+<funcsynopsis id='PreeditDrawCallback'>
<funcprototype>
<funcdef>void <function><replaceable>PreeditDrawCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -9390,7 +9390,7 @@ It then calls the PreeditCaretCallback.
</para>
<indexterm significance="preferred"><primary>PreeditCaretCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='preeditcaretcallback'>
+<funcsynopsis id='PreeditCaretCallback'>
<funcprototype>
<funcdef>void <function><replaceable>PreeditCaretCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -9606,7 +9606,7 @@ the input method calls the StatusStartCallback callback.
</para>
<indexterm significance="preferred"><primary>StatusStartCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='statusstartcallback'>
+<funcsynopsis id='StatusStartCallback'>
<funcprototype>
<funcdef>void <function><replaceable>StatusStartCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -9663,7 +9663,7 @@ is destroyed or when it loses focus, the input method calls StatusDoneCallback.
</para>
<indexterm significance="preferred"><primary>StatusDoneCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='statusdonecallback'>
+<funcsynopsis id='StatusDoneCallback'>
<funcprototype>
<funcdef>void <function><replaceable>StatusDoneCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -9718,7 +9718,7 @@ StatusDrawCallback.
</para>
<indexterm significance="preferred"><primary>StatusDrawCallback</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='statusdrawcallback'>
+<funcsynopsis id='StatusDrawCallback'>
<funcprototype>
<funcdef>void <function><replaceable>StatusDrawCallback</replaceable></function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -9827,13 +9827,13 @@ structure.
Xlib provides the ability for an input method
to register a filter internal to Xlib.
This filter is called by a client (or toolkit) by calling
-<function>XFilterEvent</function>
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>
after calling
-<function>XNextEvent</function>.
+<xref linkend='XNextEvent' xrefstyle='select: title'/>.
Any client that uses the
<type>XIM</type>
interface should call
-<function>XFilterEvent</function>
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>
to allow input methods to process their events without knowledge
of the client's dispatching mechanism.
A client's user interface policy may determine the priority
@@ -9845,18 +9845,18 @@ of event filters with respect to other event-handling mechanisms
Clients may not know how many filters there are, if any,
and what they do.
They may only know if an event has been filtered on return of
-<function>XFilterEvent</function>.
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>.
Clients should discard filtered events.
<!-- .sp -->
</para>
<para>
<!-- .LP -->
To filter an event, use
-<function>XFilterEvent</function>.
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFilterEvent</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfilterevent'>
+<funcsynopsis id='XFilterEvent'>
<funcprototype>
<funcdef>Bool <function>XFilterEvent</function></funcdef>
<paramdef>XEvent<parameter> *event</parameter></paramdef>
@@ -9893,7 +9893,7 @@ Specifies the window (Wi.
<!-- .eM -->
If the window argument is
<symbol>None</symbol>,
-<function>XFilterEvent</function>
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>
applies the filter to the window specified in the
<structname>XEvent</structname>
structure.
@@ -9904,13 +9904,13 @@ has been redirected.
<para>
<!-- .LP -->
If
-<function>XFilterEvent</function>
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>
returns
<symbol>True</symbol>,
then some input method has filtered the event,
and the client should discard the event.
If
-<function>XFilterEvent</function>
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>
returns
<symbol>False</symbol>,
then the client should continue processing the event.
@@ -9918,7 +9918,7 @@ then the client should continue processing the event.
<para>
<!-- .LP -->
If a grab has occurred in the client and
-<function>XFilterEvent</function>
+<xref linkend='XFilterEvent' xrefstyle='select: title'/>
returns
<symbol>True</symbol>,
the client should ungrab the keyboard.
@@ -9933,14 +9933,14 @@ the client should ungrab the keyboard.
<!-- .LP -->
To get composed input from an input method,
use
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>.
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbLookupString</primary></indexterm>
<indexterm significance="preferred"><primary>XwcLookupString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmblookupstring'>
+<funcsynopsis id='XmbLookupString'>
<funcprototype>
<funcdef>int <function>XmbLookupString</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -9952,7 +9952,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwclookupstring'>
+<funcsynopsis id='XwcLookupString'>
<funcprototype>
<funcdef>int <function>XwcLookupString</function></funcdef>
<paramdef>XIC<parameter> ic</parameter></paramdef>
@@ -10043,9 +10043,9 @@ Returns a value indicating what kind of data is returned.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
and
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
functions return the string from the input method specified
in the buffer_return argument.
If no string is returned,
@@ -10061,23 +10061,23 @@ the KeySym value does not necessarily correspond to the string returned.
</para>
<para>
<!-- .LP -->
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
returns the length of the string in bytes, and
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
returns the length of the string in characters.
Both
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
and
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
return text in the encoding of the locale bound to the input method
of the specified input context.
</para>
<para>
<!-- .LP -->
Each string returned by
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
and
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
begins in the initial state of the encoding of the locale
(if the encoding of the locale is state-dependent).
<!-- .NT -->
@@ -10086,9 +10086,9 @@ To insure proper input processing,
it is essential that the client pass only
<symbol>KeyPress</symbol>
events to
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
and
-<function>XwcLookupString</function>.
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>.
Their behavior when a client passes a
<symbol>KeyRelease</symbol>
event is undefined.
@@ -10113,9 +10113,9 @@ The possible values returned are:
<entry><symbol>XBufferOverflow</symbol></entry>
<entry>The input string to be returned is too large for the supplied buffer_return.
The required size
- (<function>XmbLookupString</function>
+ (<xref linkend='XmbLookupString' xrefstyle='select: title'/>
in bytes;
- <function>XwcLookupString</function>
+ <xref linkend='XwcLookupString' xrefstyle='select: title'/>
in characters) is returned as the value of the function,
and the contents of buffer_return and keysym_return are not modified.
The client should recall the function with the same event
@@ -10157,15 +10157,15 @@ The possible values returned are:
<para>
<!-- .LP -->
It does not make any difference if the input context passed as an argument to
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
and
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
is the one currently in possession of the focus or not.
Input may have been composed within an input context before it lost the focus,
and that input may be returned on subsequent calls to
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>
even though it does not have any more keyboard focus.
</para>
</sect2>
@@ -10207,9 +10207,9 @@ A
<symbol>KeyPress</symbol>
event with a KeyCode of zero is used exclusively as a
signal that an input method has composed input that can be returned by
-<function>XmbLookupString</function>
+<xref linkend='XmbLookupString' xrefstyle='select: title'/>
or
-<function>XwcLookupString</function>.
+<xref linkend='XwcLookupString' xrefstyle='select: title'/>.
No other use is made of a
<symbol>KeyPress</symbol>
event with KeyCode of zero.
diff --git a/libX11/specs/libX11/CH14.xml b/libX11/specs/libX11/CH14.xml
index 20693eb13..5e6f72da7 100644
--- a/libX11/specs/libX11/CH14.xml
+++ b/libX11/specs/libX11/CH14.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="inter_client_communication_functions">
+<chapter id='Inter_Client_Communication_Functions'>
<title>Inter-Client Communication Functions</title>
<para>
The Inter-Client Communication Conventions Manual, hereafter referred to as the <acronym>ICCCM</acronym>,
@@ -252,17 +252,17 @@ of the root window).
Note that the subwindows that you create are ignored by window managers.
Therefore,
you should use the basic window functions described in
-<link linkend="window_functions">chapter 3</link>
+<link linkend='Window_Functions'>chapter 3</link>
to manipulate your application's subwindows.
</para>
<para>
<!-- .LP -->
To request that a top-level window be iconified, use
-<function>XIconifyWindow</function>.
+<xref linkend='XIconifyWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XIconifyWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xiconifywindow'>
+<funcsynopsis id='XIconifyWindow'>
<funcprototype>
<funcdef>Status <function>XIconifyWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -307,7 +307,7 @@ Specifies the appropriate screen number on the host server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XIconifyWindow</function>
+<xref linkend='XIconifyWindow' xrefstyle='select: title'/>
function sends a <property>WM_CHANGE_STATE</property>
<symbol>ClientMessage</symbol>
event with a format of 32 and a first data element of
@@ -323,7 +323,7 @@ Window managers may elect to receive this message and
if the window is in its normal state,
may treat it as a request to change the window's state from normal to iconic.
If the <property>WM_CHANGE_STATE</property> property cannot be interned,
-<function>XIconifyWindow</function>
+<xref linkend='XIconifyWindow' xrefstyle='select: title'/>
does not send a message and returns a zero status.
It returns a nonzero status if the client message is sent successfully;
otherwise, it returns a zero status.
@@ -332,11 +332,11 @@ otherwise, it returns a zero status.
<para>
<!-- .LP -->
To request that a top-level window be withdrawn, use
-<function>XWithdrawWindow</function>.
+<xref linkend='XWithdrawWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XWithdrawWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xwithdrawwindow'>
+<funcsynopsis id='XWithdrawWindow'>
<funcprototype>
<funcdef>Status <function>XWithdrawWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -381,7 +381,7 @@ Specifies the appropriate screen number on the host server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XWithdrawWindow</function>
+<xref linkend='XWithdrawWindow' xrefstyle='select: title'/>
function unmaps the specified window
and sends a synthetic
<symbol>UnmapNotify</symbol>
@@ -397,7 +397,7 @@ otherwise, it returns a zero status.
</para>
<para>
<!-- .LP -->
-<function>XWithdrawWindow</function>
+<xref linkend='XWithdrawWindow' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -406,11 +406,11 @@ error.
<para>
<!-- .LP -->
To request that a top-level window be reconfigured, use
-<function>XReconfigureWMWindow</function>.
+<xref linkend='XReconfigureWMWindow' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XReconfigureWMWindow</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xreconfigurewmwindow'>
+<funcsynopsis id='XReconfigureWMWindow'>
<funcprototype>
<funcdef>Status <function>XReconfigureWMWindow</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -481,7 +481,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XReconfigureWMWindow</function>
+<xref linkend='XReconfigureWMWindow' xrefstyle='select: title'/>
function issues a
<systemitem>ConfigureWindow</systemitem>
request on the specified top-level window.
@@ -499,7 +499,7 @@ otherwise, it returns a zero status.
</para>
<para>
<!-- .LP -->
-<function>XReconfigureWMWindow</function>
+<xref linkend='XReconfigureWMWindow' xrefstyle='select: title'/>
can generate
<errorname>BadValue</errorname>
and
@@ -577,14 +577,14 @@ typedef enum {
To convert a list of text strings to an
<structname>XTextProperty</structname>
structure, use
-<function>XmbTextListToTextProperty</function>
+<xref linkend='XmbTextListToTextProperty' xrefstyle='select: title'/>
or
-<function>XwcTextListToTextProperty</function>.
+<xref linkend='XwcTextListToTextProperty' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbTextListToTextProperty</primary></indexterm>
<indexterm significance="preferred"><primary>XwcTextListToTextProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbtextlisttotextproperty'>
+<funcsynopsis id='XmbTextListToTextProperty'>
<funcprototype>
<funcdef>int <function>XmbTextListToTextProperty</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -595,7 +595,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwctextlisttotextproperty'>
+<funcsynopsis id='XwcTextListToTextProperty'>
<funcprototype>
<funcdef>int <function>XwcTextListToTextProperty</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -664,9 +664,9 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbTextListToTextProperty</function>
+<xref linkend='XmbTextListToTextProperty' xrefstyle='select: title'/>
and
-<function>XwcTextListToTextProperty</function>
+<xref linkend='XwcTextListToTextProperty' xrefstyle='select: title'/>
functions set the specified
<structname>XTextProperty</structname>
value to a set of null-separated elements representing the concatenation
@@ -731,7 +731,7 @@ is guaranteed.
<para>
<!-- .LP -->
To free the storage for the value field, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
<!-- .sp -->
</para>
<para>
@@ -739,14 +739,14 @@ To free the storage for the value field, use
To obtain a list of text strings from an
<structname>XTextProperty</structname>
structure, use
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
or
-<function>XwcTextPropertyToTextList</function>.
+<xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XmbTextPropertyToTextList</primary></indexterm>
<indexterm significance="preferred"><primary>XwcTextPropertyToTextList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbtextpropertytotextlist'>
+<funcsynopsis id='XmbTextPropertyToTextList'>
<funcprototype>
<funcdef>int <function>XmbTextPropertyToTextList</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -756,7 +756,7 @@ or
</funcprototype>
</funcsynopsis>
<!-- .FN -->
-<funcsynopsis id='xwctextpropertytotextlist'>
+<funcsynopsis id='XwcTextPropertyToTextList'>
<funcprototype>
<funcdef>int <function>XwcTextPropertyToTextList</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -815,9 +815,9 @@ Returns the number of (Cn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
and
-<function>XwcTextPropertyToTextList</function>
+<xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/>
functions return a list of text strings in the current locale representing the
null-separated elements of the specified
<structname>XTextProperty</structname>
@@ -834,9 +834,9 @@ any terminating null should not be included in text_prop.nitems.
<para>
<!-- .LP -->
If insufficient memory is available for the list and its elements,
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
and
-<function>XwcTextPropertyToTextList</function>
+<xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/>
return
<symbol>XNoMemory</symbol>.
If the current locale is not supported,
@@ -861,9 +861,9 @@ the functions do not set any return values.
<para>
<!-- .LP -->
Otherwise,
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
and
-<function>XwcTextPropertyToTextList</function>
+<xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/>
return the list of null-terminated text strings to list_return
and the number of text strings to count_return.
</para>
@@ -878,33 +878,33 @@ To obtain the value of this string,
use
<function>XDefaultString</function>.
Otherwise,
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
and
-<function>XwcTextPropertyToTextList</function>
+<xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/>
return
<symbol>Success</symbol>.
</para>
<para>
<!-- .LP -->
To free the storage for the list and its contents returned by
-<function>XmbTextPropertyToTextList</function>,
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>,
use
-<function>XFreeStringList</function>.
+<xref linkend='XFreeStringList' xrefstyle='select: title'/>.
To free the storage for the list and its contents returned by
-<function>XwcTextPropertyToTextList</function>,
+<xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/>,
use
-<function>XwcFreeStringList</function>.
+<xref linkend='XwcFreeStringList' xrefstyle='select: title'/>.
<!-- .sp -->
</para>
<para>
<!-- .LP -->
To free the in-memory data associated with the specified
wide character string list, use
-<function>XwcFreeStringList</function>.
+<xref linkend='XwcFreeStringList' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XwcFreeStringList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xwcfreestringlist'>
+<funcsynopsis id='XwcFreeStringList'>
<funcprototype>
<funcdef>void <function>XwcFreeStringList</function></funcdef>
<paramdef>wchar_t<parameter> **list</parameter></paramdef>
@@ -927,9 +927,9 @@ Specifies the list of strings to be freed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XwcFreeStringList</function>
+<xref linkend='XwcFreeStringList' xrefstyle='select: title'/>
function frees memory allocated by
-<function>XwcTextPropertyToTextList</function>.
+<xref linkend='XwcTextPropertyToTextList' xrefstyle='select: title'/>.
<!-- .sp -->
</para>
<para>
@@ -946,7 +946,7 @@ The
<function>XDefaultString</function>
function returns the default string used by Xlib for text conversion
(for example, in
-<function>XmbTextPropertyToTextList</function>).
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>).
The default string is the string in the current locale that is output
when an unconvertible character is found during text conversion.
If the string returned by
@@ -962,7 +962,7 @@ The string returned by
<function>XDefaultString</function>
is independent of the default string for text drawing;
see
-<function>XCreateFontSet</function>
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>
to obtain the default string for an
<type>XFontSet</type>.
</para>
@@ -984,11 +984,11 @@ Until freed, it will not be modified by Xlib.
To set the specified list of strings in the STRING encoding to a
<structname>XTextProperty</structname>
structure, use
-<function>XStringListToTextProperty</function>.
+<xref linkend='XStringListToTextProperty' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XStringListToTextProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstringlisttotextproperty'>
+<funcsynopsis id='XStringListToTextProperty'>
<funcprototype>
<funcdef>Status <function>XStringListToTextProperty</function></funcdef>
<paramdef>char<parameter> **list</parameter></paramdef>
@@ -1036,7 +1036,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XStringListToTextProperty</function>
+<xref linkend='XStringListToTextProperty' xrefstyle='select: title'/>
function sets the specified
<structname>XTextProperty</structname>
to be of type STRING (format 8) with a value representing the
@@ -1045,13 +1045,13 @@ An extra null byte (which is not included in the nitems member)
is stored at the end of the value field of text_prop_return.
The strings are assumed (without verification) to be in the STRING encoding.
If insufficient memory is available for the new value string,
-<function>XStringListToTextProperty</function>
+<xref linkend='XStringListToTextProperty' xrefstyle='select: title'/>
does not set any fields in the
<structname>XTextProperty</structname>
structure and returns a zero status.
Otherwise, it returns a nonzero status.
To free the storage for the value field, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
<!-- .sp -->
</para>
<para>
@@ -1059,11 +1059,11 @@ To free the storage for the value field, use
To obtain a list of strings from a specified
<structname>XTextProperty</structname>
structure in the STRING encoding, use
-<function>XTextPropertyToStringList</function>.
+<xref linkend='XTextPropertyToStringList' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XTextPropertyToStringList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xtextpropertytostringlist'>
+<funcsynopsis id='XTextPropertyToStringList'>
<funcprototype>
<funcdef>Status <function>XTextPropertyToStringList</function></funcdef>
<paramdef>XTextProperty<parameter> *text_prop</parameter></paramdef>
@@ -1111,7 +1111,7 @@ Returns the number of (Cn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XTextPropertyToStringList</function>
+<xref linkend='XTextPropertyToStringList' xrefstyle='select: title'/>
function returns a list of strings representing the null-separated elements
of the specified
<structname>XTextProperty</structname>
@@ -1122,21 +1122,21 @@ Multiple elements of the property
are separated by NULL (encoding 0).
The contents of the property are not null-terminated.
If insufficient memory is available for the list and its elements,
-<function>XTextPropertyToStringList</function>
+<xref linkend='XTextPropertyToStringList' xrefstyle='select: title'/>
sets no return values and returns a zero status.
Otherwise, it returns a nonzero status.
To free the storage for the list and its contents, use
-<function>XFreeStringList</function>.
+<xref linkend='XFreeStringList' xrefstyle='select: title'/>.
<!-- .sp -->
</para>
<para>
<!-- .LP -->
To free the in-memory data associated with the specified string list, use
-<function>XFreeStringList</function>.
+<xref linkend='XFreeStringList' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFreeStringList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfreestringlist'>
+<funcsynopsis id='XFreeStringList'>
<funcprototype>
<funcdef>void <function>XFreeStringList</function></funcdef>
<paramdef>char<parameter> **list</parameter></paramdef>
@@ -1159,13 +1159,13 @@ Specifies the list of strings to be freed.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFreeStringList</function>
+<xref linkend='XFreeStringList' xrefstyle='select: title'/>
function releases memory allocated by
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
and
-<function>XTextPropertyToStringList</function>
+<xref linkend='XTextPropertyToStringList' xrefstyle='select: title'/>
and the missing charset list allocated by
-<function>XCreateFontSet</function>.
+<xref linkend='XCreateFontSet' xrefstyle='select: title'/>.
</para>
</sect2>
<sect2 id="Setting_and_Reading_Text_Properties">
@@ -1194,11 +1194,11 @@ respectively.
<para>
<!-- .LP -->
To set one of a window's text properties, use
-<function>XSetTextProperty</function>.
+<xref linkend='XSetTextProperty' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetTextProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsettextproperty'>
+<funcsynopsis id='XSetTextProperty'>
<funcprototype>
<funcdef>void <function>XSetTextProperty</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1256,7 +1256,7 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetTextProperty</function>
+<xref linkend='XSetTextProperty' xrefstyle='select: title'/>
function replaces the existing specified property for the named window
with the data, type, format, and number of items determined
by the value field, the encoding field, the format field,
@@ -1264,12 +1264,12 @@ and the nitems field, respectively, of the specified
<structname>XTextProperty</structname>
structure.
If the property does not already exist,
-<function>XSetTextProperty</function>
+<xref linkend='XSetTextProperty' xrefstyle='select: title'/>
sets it for the specified window.
</para>
<para>
<!-- .LP -->
-<function>XSetTextProperty</function>
+<xref linkend='XSetTextProperty' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadAtom</errorname>,
@@ -1282,11 +1282,11 @@ errors.
<para>
<!-- .LP -->
To read one of a window's text properties, use
-<function>XGetTextProperty</function>.
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetTextProperty</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgettextproperty'>
+<funcsynopsis id='XGetTextProperty'>
<funcprototype>
<funcdef>Status <function>XGetTextProperty</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1344,7 +1344,7 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetTextProperty</function>
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>
function reads the specified property from the window
and stores the data in the returned
<structname>XTextProperty</structname>
@@ -1358,7 +1358,7 @@ is stored at the end of the value field of text_prop_return.
The particular interpretation of the property's encoding
and data as text is left to the calling application.
If the specified property does not exist on the window,
-<function>XGetTextProperty</function>
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>
sets the value field to NULL,
the encoding field to
<symbol>None</symbol>,
@@ -1370,13 +1370,13 @@ and the nitems field to zero.
If it was able to read and store the data in the
<structname>XTextProperty</structname>
structure,
-<function>XGetTextProperty</function>
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>
returns a nonzero status;
otherwise, it returns a zero status.
</para>
<para>
<!-- .LP -->
-<function>XGetTextProperty</function>
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
@@ -1398,11 +1398,11 @@ the <property>WM_NAME</property> property for a given window.
<para>
<!-- .LP -->
To set a window's <property>WM_NAME</property> property with the supplied convenience function, use
-<function>XSetWMName</function>.
+<xref linkend='XSetWMName' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmname'>
+<funcsynopsis id='XSetWMName'>
<funcprototype>
<funcdef>void <function>XSetWMName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1449,20 +1449,20 @@ structure to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMName</function>
+<xref linkend='XSetWMName' xrefstyle='select: title'/>
convenience function calls
-<function>XSetTextProperty</function>
+<xref linkend='XSetTextProperty' xrefstyle='select: title'/>
to set the <property>WM_NAME</property> property.
<!-- .sp -->
</para>
<para>
<!-- .LP -->
To read a window's <property>WM_NAME</property> property with the supplied convenience function, use
-<function>XGetWMName</function>.
+<xref linkend='XGetWMName' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmname'>
+<funcsynopsis id='XGetWMName'>
<funcprototype>
<funcdef>Status <function>XGetWMName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1509,9 +1509,9 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMName</function>
+<xref linkend='XGetWMName' xrefstyle='select: title'/>
convenience function calls
-<function>XGetTextProperty</function>
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>
to obtain the <property>WM_NAME</property> property.
It returns a nonzero status on success;
otherwise, it returns a zero status.
@@ -1519,9 +1519,9 @@ otherwise, it returns a zero status.
<para>
<!-- .LP -->
The following two functions have been superseded by
-<function>XSetWMName</function>
+<xref linkend='XSetWMName' xrefstyle='select: title'/>
and
-<function>XGetWMName</function>,
+<xref linkend='XGetWMName' xrefstyle='select: title'/>,
respectively.
You can use these additional convenience functions
for window names that are encoded as STRING properties.
@@ -1530,12 +1530,12 @@ for window names that are encoded as STRING properties.
<para>
<!-- .LP -->
To assign a name to a window, use
-<function>XStoreName</function>.
+<xref linkend='XStoreName' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Window</primary><secondary>name</secondary></indexterm>
<indexterm significance="preferred"><primary>XStoreName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstorename'>
+<funcsynopsis id='XStoreName'>
<funcprototype>
<funcdef><function>XStoreName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1581,7 +1581,7 @@ which should be a null-terminated string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XStoreName</function>
+<xref linkend='XStoreName' xrefstyle='select: title'/>
function assigns the name passed to window_name to the specified window.
A window manager can display the window name in some prominent
place, such as the title bar, to allow users to identify windows easily.
@@ -1593,7 +1593,7 @@ the result is implementation-dependent.
</para>
<para>
<!-- .LP -->
-<function>XStoreName</function>
+<xref linkend='XStoreName' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1604,11 +1604,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To get the name of a window, use
-<function>XFetchName</function>.
+<xref linkend='XFetchName' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFetchName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfetchname'>
+<funcsynopsis id='XFetchName'>
<funcprototype>
<funcdef>Status <function>XFetchName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1653,25 +1653,25 @@ Returns the window name, which is a null-terminated string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFetchName</function>
+<xref linkend='XFetchName' xrefstyle='select: title'/>
function returns the name of the specified window.
If it succeeds,
it returns a nonzero status;
otherwise, no name has been set for the window,
and it returns zero.
If the <property>WM_NAME</property> property has not been set for this window,
-<function>XFetchName</function>
+<xref linkend='XFetchName' xrefstyle='select: title'/>
sets window_name_return to NULL.
If the data returned by the server is in the Latin Portable Character Encoding,
then the returned string is in the Host Portable Character Encoding.
Otherwise, the result is implementation-dependent.
When finished with it, a client must free
the window name string using
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XFetchName</function>
+<xref linkend='XFetchName' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -1692,11 +1692,11 @@ the <property>WM_ICON_NAME</property> property for a given window.
<!-- .sp -->
To set a window's <property>WM_ICON_NAME</property> property,
use
-<function>XSetWMIconName</function>.
+<xref linkend='XSetWMIconName' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMIconName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmiconname'>
+<funcsynopsis id='XSetWMIconName'>
<funcprototype>
<funcdef>void <function>XSetWMIconName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1743,9 +1743,9 @@ structure to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMIconName</function>
+<xref linkend='XSetWMIconName' xrefstyle='select: title'/>
convenience function calls
-<function>XSetTextProperty</function>
+<xref linkend='XSetTextProperty' xrefstyle='select: title'/>
to set the <property>WM_ICON_NAME</property> property.
<!-- .sp -->
</para>
@@ -1753,11 +1753,11 @@ to set the <property>WM_ICON_NAME</property> property.
<!-- .LP -->
To read a window's <property>WM_ICON_NAME</property> property,
use
-<function>XGetWMIconName</function>.
+<xref linkend='XGetWMIconName' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMIconName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmiconname'>
+<funcsynopsis id='XGetWMIconName'>
<funcprototype>
<funcdef>Status <function>XGetWMIconName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1804,9 +1804,9 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMIconName</function>
+<xref linkend='XGetWMIconName' xrefstyle='select: title'/>
convenience function calls
-<function>XGetTextProperty</function>
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>
to obtain the <property>WM_ICON_NAME</property> property.
It returns a nonzero status on success;
otherwise, it returns a zero status.
@@ -1814,9 +1814,9 @@ otherwise, it returns a zero status.
<para>
<!-- .LP -->
The next two functions have been superseded by
-<function>XSetWMIconName</function>
+<xref linkend='XSetWMIconName' xrefstyle='select: title'/>
and
-<function>XGetWMIconName</function>,
+<xref linkend='XGetWMIconName' xrefstyle='select: title'/>,
respectively.
You can use these additional convenience functions
for window names that are encoded as STRING properties.
@@ -1826,12 +1826,12 @@ for window names that are encoded as STRING properties.
<!-- .LP -->
<!-- .sp -->
To set the name to be displayed in a window's icon, use
-<function>XSetIconName</function>.
+<xref linkend='XSetIconName' xrefstyle='select: title'/>.
</para>
<indexterm><primary>Window</primary><secondary>icon name</secondary></indexterm>
<indexterm significance="preferred"><primary>XSetIconName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xseticonname'>
+<funcsynopsis id='XSetIconName'>
<funcprototype>
<funcdef><function>XSetIconName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1878,7 +1878,7 @@ which should be a null-terminated string.
<!-- .eM -->
If the string is not in the Host Portable Character Encoding,
the result is implementation-dependent.
-<function>XSetIconName</function>
+<xref linkend='XSetIconName' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -1889,11 +1889,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To get the name a window wants displayed in its icon, use
-<function>XGetIconName</function>.
+<xref linkend='XGetIconName' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetIconName</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgeticonname'>
+<funcsynopsis id='XGetIconName'>
<funcprototype>
<funcdef>Status <function>XGetIconName</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1939,24 +1939,24 @@ which is a null-terminated string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetIconName</function>
+<xref linkend='XGetIconName' xrefstyle='select: title'/>
function returns the name to be displayed in the specified window's icon.
If it succeeds, it returns a nonzero status; otherwise,
if no icon name has been set for the window,
it returns zero.
If you never assigned a name to the window,
-<function>XGetIconName</function>
+<xref linkend='XGetIconName' xrefstyle='select: title'/>
sets icon_name_return to NULL.
If the data returned by the server is in the Latin Portable Character Encoding,
then the returned string is in the Host Portable Character Encoding.
Otherwise, the result is implementation-dependent.
When finished with it, a client must free
the icon name string using
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetIconName</function>
+<xref linkend='XGetIconName' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2009,7 +2009,7 @@ If insufficient memory is available,
returns NULL.
To free the memory allocated to this structure,
use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2127,11 +2127,11 @@ or the window to be withdrawn.
<!-- .LP -->
<!-- .sp -->
To set a window's <property>WM_HINTS</property> property, use
-<function>XSetWMHints</function>.
+<xref linkend='XSetWMHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmhints'>
+<funcsynopsis id='XSetWMHints'>
<funcprototype>
<funcdef><function>XSetWMHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2178,14 +2178,14 @@ structure to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMHints</function>
+<xref linkend='XSetWMHints' xrefstyle='select: title'/>
function sets the window manager hints that include icon information and location,
the initial state of the window, and whether the application relies on the
window manager to get keyboard input.
</para>
<para>
<!-- .LP -->
-<function>XSetWMHints</function>
+<xref linkend='XSetWMHints' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -2196,11 +2196,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To read a window's <property>WM_HINTS</property> property, use
-<function>XGetWMHints</function>.
+<xref linkend='XGetWMHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmhints'>
+<funcsynopsis id='XGetWMHints'>
<funcprototype>
<funcdef>XWMHints *<function>XGetWMHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2234,7 +2234,7 @@ Specifies the window.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMHints</function>
+<xref linkend='XGetWMHints' xrefstyle='select: title'/>
function reads the window manager hints and
returns NULL if no <property>WM_HINTS</property> property was set on the window
or returns a pointer to an
@@ -2242,11 +2242,11 @@ or returns a pointer to an
structure if it succeeds.
When finished with the data,
free the space used for it by calling
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetWMHints</function>
+<xref linkend='XGetWMHints' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2310,7 +2310,7 @@ If insufficient memory is available,
returns NULL.
To free the memory allocated to this structure,
use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2393,11 +2393,11 @@ macro is highly discouraged.
<para>
<!-- .LP -->
To set a window's <property>WM_NORMAL_HINTS</property> property, use
-<function>XSetWMNormalHints</function>.
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMNormalHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmnormalhints'>
+<funcsynopsis id='XSetWMNormalHints'>
<funcprototype>
<funcdef>void <function>XSetWMNormalHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2442,17 +2442,17 @@ Specifies the size hints for the window in its normal state.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMNormalHints</function>
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>
function replaces the size hints for the <property>WM_NORMAL_HINTS</property> property
on the specified window.
If the property does not already exist,
-<function>XSetWMNormalHints</function>
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>
sets the size hints for the <property>WM_NORMAL_HINTS</property> property on the specified window.
The property is stored with a type of <property>WM_SIZE_HINTS</property> and a format of 32.
</para>
<para>
<!-- .LP -->
-<function>XSetWMNormalHints</function>
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -2463,11 +2463,11 @@ errors.
<para>
<!-- .LP -->
To read a window's <property>WM_NORMAL_HINTS</property> property, use
-<function>XGetWMNormalHints</function>.
+<xref linkend='XGetWMNormalHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMNormalHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmnormalhints'>
+<funcsynopsis id='XGetWMNormalHints'>
<funcprototype>
<funcdef>Status <function>XGetWMNormalHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2523,13 +2523,13 @@ Returns the hints that were supplied by the user.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMNormalHints</function>
+<xref linkend='XGetWMNormalHints' xrefstyle='select: title'/>
function returns the size hints stored in the <property>WM_NORMAL_HINTS</property> property
on the specified window.
If the property is of type <property>WM_SIZE_HINTS</property>, is of format 32,
and is long enough to contain either an old (pre-<acronym>ICCCM</acronym>)
or new size hints structure,
-<function>XGetWMNormalHints</function>
+<xref linkend='XGetWMNormalHints' xrefstyle='select: title'/>
sets the various fields of the
<structname>XSizeHints</structname>
structure, sets the supplied_return argument to the list of fields
@@ -2540,7 +2540,7 @@ Otherwise, it returns a zero status.
<para>
<!-- .LP -->
If
-<function>XGetWMNormalHints</function>
+<xref linkend='XGetWMNormalHints' xrefstyle='select: title'/>
returns successfully and a pre-<acronym>ICCCM</acronym> size hints property is read,
the supplied_return argument will contain the following bits:
</para>
@@ -2565,7 +2565,7 @@ PBaseSize|PWinGravity
</para>
<para>
<!-- .LP -->
-<function>XGetWMNormalHints</function>
+<xref linkend='XGetWMNormalHints' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -2574,11 +2574,11 @@ error.
<para>
<!-- .LP -->
To set a window's <property>WM_SIZE_HINTS</property> property, use
-<function>XSetWMSizeHints</function>.
+<xref linkend='XSetWMSizeHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMSizeHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmsizehints'>
+<funcsynopsis id='XSetWMSizeHints'>
<funcprototype>
<funcdef>void <function>XSetWMSizeHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2636,22 +2636,22 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMSizeHints</function>
+<xref linkend='XSetWMSizeHints' xrefstyle='select: title'/>
function replaces the size hints for the specified property
on the named window.
If the specified property does not already exist,
-<function>XSetWMSizeHints</function>
+<xref linkend='XSetWMSizeHints' xrefstyle='select: title'/>
sets the size hints for the specified property
on the named window.
The property is stored with a type of <property>WM_SIZE_HINTS</property> and a format of 32.
To set a window's normal size hints,
you can use the
-<function>XSetWMNormalHints</function>
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>
function.
</para>
<para>
<!-- .LP -->
-<function>XSetWMSizeHints</function>
+<xref linkend='XSetWMSizeHints' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadAtom</errorname>,
@@ -2663,11 +2663,11 @@ errors.
<para>
<!-- .LP -->
To read a window's <property>WM_SIZE_HINTS</property> property, use
-<function>XGetWMSizeHints</function>.
+<xref linkend='XGetWMSizeHints' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMSizeHints</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmsizehints'>
+<funcsynopsis id='XGetWMSizeHints'>
<funcprototype>
<funcdef>Status <function>XGetWMSizeHints</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2736,13 +2736,13 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMSizeHints</function>
+<xref linkend='XGetWMSizeHints' xrefstyle='select: title'/>
function returns the size hints stored in the specified property
on the named window.
If the property is of type <property>WM_SIZE_HINTS</property>, is of format 32,
and is long enough to contain either an old (pre-<acronym>ICCCM</acronym>)
or new size hints structure,
-<function>XGetWMSizeHints</function>
+<xref linkend='XGetWMSizeHints' xrefstyle='select: title'/>
sets the various fields of the
<structname>XSizeHints</structname>
structure, sets the supplied_return argument to the
@@ -2752,13 +2752,13 @@ and returns a nonzero status.
Otherwise, it returns a zero status.
To get a window's normal size hints,
you can use the
-<function>XGetWMNormalHints</function>
+<xref linkend='XGetWMNormalHints' xrefstyle='select: title'/>
function.
</para>
<para>
<!-- .LP -->
If
-<function>XGetWMSizeHints</function>
+<xref linkend='XGetWMSizeHints' xrefstyle='select: title'/>
returns successfully and a pre-<acronym>ICCCM</acronym> size hints property is read,
the supplied_return argument will contain the following bits:
</para>
@@ -2783,7 +2783,7 @@ PBaseSize|PWinGravity
</para>
<para>
<!-- .LP -->
-<function>XGetWMSizeHints</function>
+<xref linkend='XGetWMSizeHints' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
@@ -2840,7 +2840,7 @@ If insufficient memory is available,
returns NULL.
To free the memory allocated to this structure,
use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2879,11 +2879,11 @@ resource database.
<!-- .LP -->
<!-- .sp -->
To set a window's <property>WM_CLASS</property> property, use
-<function>XSetClassHint</function>.
+<xref linkend='XSetClassHint' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetClassHint</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetclasshint'>
+<funcsynopsis id='XSetClassHint'>
<funcprototype>
<funcdef><function>XSetClassHint</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2930,14 +2930,14 @@ structure that is to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetClassHint</function>
+<xref linkend='XSetClassHint' xrefstyle='select: title'/>
function sets the class hint for the specified window.
If the strings are not in the Host Portable Character Encoding,
the result is implementation-dependent.
</para>
<para>
<!-- .LP -->
-<function>XSetClassHint</function>
+<xref linkend='XSetClassHint' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -2948,11 +2948,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To read a window's <property>WM_CLASS</property> property, use
-<function>XGetClassHint</function>.
+<xref linkend='XGetClassHint' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetClassHint</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetclasshint'>
+<funcsynopsis id='XGetClassHint'>
<funcprototype>
<funcdef>Status <function>XGetClassHint</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2999,7 +2999,7 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetClassHint</function>
+<xref linkend='XGetClassHint' xrefstyle='select: title'/>
function returns the class hint of the specified window to the members
of the supplied structure.
If the data returned by the server is in the Latin Portable Character Encoding,
@@ -3009,12 +3009,12 @@ It returns a nonzero status on success;
otherwise, it returns a zero status.
To free res_name and res_class when finished with the strings,
use
-<function>XFree</function>
+<xref linkend='XFree' xrefstyle='select: title'/>
on each individually.
</para>
<para>
<!-- .LP -->
-<function>XGetClassHint</function>
+<xref linkend='XGetClassHint' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3034,11 +3034,11 @@ the <property>WM_TRANSIENT_FOR</property> property for a given window.
<!-- .LP -->
<!-- .sp -->
To set a window's <property>WM_TRANSIENT_FOR</property> property, use
-<function>XSetTransientForHint</function>.
+<xref linkend='XSetTransientForHint' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetTransientForHint</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsettransientforhint'>
+<funcsynopsis id='XSetTransientForHint'>
<funcprototype>
<funcdef><function>XSetTransientForHint</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3083,13 +3083,13 @@ Specifies the window that the <property>WM_TRANSIENT_FOR</property> property is
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetTransientForHint</function>
+<xref linkend='XSetTransientForHint' xrefstyle='select: title'/>
function sets the <property>WM_TRANSIENT_FOR</property> property of the specified window to the
specified prop_window.
</para>
<para>
<!-- .LP -->
-<function>XSetTransientForHint</function>
+<xref linkend='XSetTransientForHint' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3100,11 +3100,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To read a window's <property>WM_TRANSIENT_FOR</property> property, use
-<function>XGetTransientForHint</function>.
+<xref linkend='XGetTransientForHint' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetTransientForHint</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgettransientforhint'>
+<funcsynopsis id='XGetTransientForHint'>
<funcprototype>
<funcdef>Status <function>XGetTransientForHint</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3149,14 +3149,14 @@ Returns the <property>WM_TRANSIENT_FOR</property> property of the specified wind
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetTransientForHint</function>
+<xref linkend='XGetTransientForHint' xrefstyle='select: title'/>
function returns the <property>WM_TRANSIENT_FOR</property> property for the specified window.
It returns a nonzero status on success;
otherwise, it returns a zero status.
</para>
<para>
<!-- .LP -->
-<function>XGetTransientForHint</function>
+<xref linkend='XGetTransientForHint' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3176,11 +3176,11 @@ the <property>WM_PROTOCOLS</property> property for a given window.
<!-- .LP -->
<!-- .sp -->
To set a window's <property>WM_PROTOCOLS</property> property, use
-<function>XSetWMProtocols</function>.
+<xref linkend='XSetWMProtocols' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMProtocols</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmprotocols'>
+<funcsynopsis id='XSetWMProtocols'>
<funcprototype>
<funcdef>Status <function>XSetWMProtocols</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3237,22 +3237,22 @@ Specifies the number of (Cn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMProtocols</function>
+<xref linkend='XSetWMProtocols' xrefstyle='select: title'/>
function replaces the <property>WM_PROTOCOLS</property> property on the specified window
with the list of atoms specified by the protocols argument.
If the property does not already exist,
-<function>XSetWMProtocols</function>
+<xref linkend='XSetWMProtocols' xrefstyle='select: title'/>
sets the <property>WM_PROTOCOLS</property> property on the specified window
to the list of atoms specified by the protocols argument.
The property is stored with a type of ATOM and a format of 32.
If it cannot intern the <property>WM_PROTOCOLS</property> atom,
-<function>XSetWMProtocols</function>
+<xref linkend='XSetWMProtocols' xrefstyle='select: title'/>
returns a zero status.
Otherwise, it returns a nonzero status.
</para>
<para>
<!-- .LP -->
-<function>XSetWMProtocols</function>
+<xref linkend='XSetWMProtocols' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3263,11 +3263,11 @@ errors.
<para>
<!-- .LP -->
To read a window's <property>WM_PROTOCOLS</property> property, use
-<function>XGetWMProtocols</function>.
+<xref linkend='XGetWMProtocols' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMProtocols</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmprotocols'>
+<funcsynopsis id='XGetWMProtocols'>
<funcprototype>
<funcdef>Status <function>XGetWMProtocols</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3324,25 +3324,25 @@ Returns the number of (Cn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMProtocols</function>
+<xref linkend='XGetWMProtocols' xrefstyle='select: title'/>
function returns the list of atoms stored in the <property>WM_PROTOCOLS</property> property
on the specified window.
These atoms describe window manager protocols in which the owner
of this window is willing to participate.
If the property exists, is of type ATOM, is of format 32,
and the atom <property>WM_PROTOCOLS</property> can be interned,
-<function>XGetWMProtocols</function>
+<xref linkend='XGetWMProtocols' xrefstyle='select: title'/>
sets the protocols_return argument to a list of atoms,
sets the count_return argument to the number of elements in the list,
and returns a nonzero status.
Otherwise, it sets neither of the return arguments
and returns a zero status.
To release the list of atoms, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetWMProtocols</function>
+<xref linkend='XGetWMProtocols' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3362,11 +3362,11 @@ the <property>WM_COLORMAP_WINDOWS</property> property for a given window.
<para>
<!-- .LP -->
To set a window's <property>WM_COLORMAP_WINDOWS</property> property, use
-<function>XSetWMColormapWindows</function>.
+<xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMColormapWindows</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmcolormapwindows'>
+<funcsynopsis id='XSetWMColormapWindows'>
<funcprototype>
<funcdef>Status <function>XSetWMColormapWindows</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3423,22 +3423,22 @@ Specifies the number of (Cn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMColormapWindows</function>
+<xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/>
function replaces the <property>WM_COLORMAP_WINDOWS</property> property on the specified
window with the list of windows specified by the colormap_windows argument.
If the property does not already exist,
-<function>XSetWMColormapWindows</function>
+<xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/>
sets the <property>WM_COLORMAP_WINDOWS</property> property on the specified
window to the list of windows specified by the colormap_windows argument.
The property is stored with a type of WINDOW and a format of 32.
If it cannot intern the <property>WM_COLORMAP_WINDOWS</property> atom,
-<function>XSetWMColormapWindows</function>
+<xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/>
returns a zero status.
Otherwise, it returns a nonzero status.
</para>
<para>
<!-- .LP -->
-<function>XSetWMColormapWindows</function>
+<xref linkend='XSetWMColormapWindows' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3449,11 +3449,11 @@ errors.
<para>
<!-- .LP -->
To read a window's <property>WM_COLORMAP_WINDOWS</property> property, use
-<function>XGetWMColormapWindows</function>.
+<xref linkend='XGetWMColormapWindows' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMColormapWindows</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmcolormapwindows'>
+<funcsynopsis id='XGetWMColormapWindows'>
<funcprototype>
<funcdef>Status <function>XGetWMColormapWindows</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3510,25 +3510,25 @@ Returns the number of (Cn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMColormapWindows</function>
+<xref linkend='XGetWMColormapWindows' xrefstyle='select: title'/>
function returns the list of window identifiers stored
in the <property>WM_COLORMAP_WINDOWS</property> property on the specified window.
These identifiers indicate the colormaps that the window manager
may need to install for this window.
If the property exists, is of type WINDOW, is of format 32,
and the atom <property>WM_COLORMAP_WINDOWS</property> can be interned,
-<function>XGetWMColormapWindows</function>
+<xref linkend='XGetWMColormapWindows' xrefstyle='select: title'/>
sets the windows_return argument to a list of window identifiers,
sets the count_return argument to the number of elements in the list,
and returns a nonzero status.
Otherwise, it sets neither of the return arguments
and returns a zero status.
To release the list of window identifiers, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetWMColormapWindows</function>
+<xref linkend='XGetWMColormapWindows' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3582,7 +3582,7 @@ If insufficient memory is available,
returns NULL.
To free the memory allocated to this structure,
use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -3614,11 +3614,11 @@ sizes (minimum to maximum) that represent the supported icon sizes.
<!-- .LP -->
<!-- .sp -->
To set a window's <property>WM_ICON_SIZE</property> property, use
-<function>XSetIconSizes</function>.
+<xref linkend='XSetIconSizes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetIconSizes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xseticonsizes'>
+<funcsynopsis id='XSetIconSizes'>
<funcprototype>
<funcdef><function>XSetIconSizes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3674,12 +3674,12 @@ Specifies the number of items in the size list.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetIconSizes</function>
+<xref linkend='XSetIconSizes' xrefstyle='select: title'/>
function is used only by window managers to set the supported icon sizes.
</para>
<para>
<!-- .LP -->
-<function>XSetIconSizes</function>
+<xref linkend='XSetIconSizes' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3690,11 +3690,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To read a window's <property>WM_ICON_SIZE</property> property, use
-<function>XGetIconSizes</function>.
+<xref linkend='XGetIconSizes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetIconSizes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgeticonsizes'>
+<funcsynopsis id='XGetIconSizes'>
<funcprototype>
<funcdef>Status <function>XGetIconSizes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3750,24 +3750,24 @@ Returns the number of items in the size list.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetIconSizes</function>
+<xref linkend='XGetIconSizes' xrefstyle='select: title'/>
function returns zero if a window manager has not set icon sizes;
otherwise, it returns nonzero.
-<function>XGetIconSizes</function>
+<xref linkend='XGetIconSizes' xrefstyle='select: title'/>
should be called by an application that
wants to find out what icon sizes would be most appreciated by the
window manager under which the application is running.
The application
should then use
-<function>XSetWMHints</function>
+<xref linkend='XSetWMHints' xrefstyle='select: title'/>
to supply the window manager with an icon pixmap or window in one of the
supported sizes.
To free the data allocated in size_list_return, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XGetIconSizes</function>
+<xref linkend='XGetIconSizes' xrefstyle='select: title'/>
can generate a
<errorname>BadWindow</errorname>
error.
@@ -3781,7 +3781,7 @@ error.
<para>
<!-- .LP -->
The
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
function stores the standard set of window manager properties,
with text properties in standard encodings
for internationalized text communication.
@@ -3791,7 +3791,7 @@ The standard window manager properties for a given window are
</para>
<indexterm significance="preferred"><primary>XmbSetWMProperties</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmbsetwmproperties'>
+<funcsynopsis id='XmbSetWMProperties'>
<funcprototype>
<funcdef>void <function>XmbSetWMProperties</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3908,7 +3908,7 @@ structure to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
convenience function provides a simple programming interface
for setting those essential window properties that are used
for communicating with other clients
@@ -3917,10 +3917,10 @@ for communicating with other clients
<para>
<!-- .LP -->
If the window_name argument is non-NULL,
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
sets the <property>WM_NAME</property> property.
If the icon_name argument is non-NULL,
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
sets the <property>WM_ICON_NAME</property> property.
The window_name and icon_name arguments are null-terminated strings
in the encoding of the current locale.
@@ -3932,35 +3932,35 @@ and the properties are created with type ``COMPOUND_TEXT''.
<para>
<!-- .LP -->
If the normal_hints argument is non-NULL,
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetWMNormalHints</function>,
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>,
which sets the <property>WM_NORMAL_HINTS</property> property
(see <link linkend="Setting_and_Reading_the_WM_NORMAL_HINTS_Property">section 14.1.7</link>).
If the wm_hints argument is non-NULL,
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetWMHints</function>,
+<xref linkend='XSetWMHints' xrefstyle='select: title'/>,
which sets the <property>WM_HINTS</property> property
(see <link linkend="Setting_and_Reading_the_WM_HINTS_Property">section 14.1.6</link>).
</para>
<para>
<!-- .LP -->
If the argv argument is non-NULL,
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
sets the <property>WM_COMMAND</property> property from argv and argc.
An argc of zero indicates a zero-length command.
</para>
<para>
<!-- .LP -->
The hostname of the machine is stored using
-<function>XSetWMClientMachine</function>
+<xref linkend='XSetWMClientMachine' xrefstyle='select: title'/>
(see <link linkend="Setting_and_Reading_the_WM_CLIENT_MACHINE_Property">section 14.2.2</link>).
</para>
<para>
<!-- .LP -->
If the class_hints argument is non-NULL,
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
sets the <property>WM_CLASS</property> property.
If the res_name member in the
<structname>XClassHint</structname>
@@ -3985,14 +3985,14 @@ No encoding conversion is performed prior to storage in the properties.
<para>
<!-- .LP -->
For clients that need to process the property text in a locale,
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
sets the <property>WM_LOCALE_NAME</property> property to be the name of the current locale.
The name is assumed to be in the Host Portable Character Encoding
and is converted to STRING for storage in the property.
</para>
<para>
<!-- .LP -->
-<function>XmbSetWMProperties</function>
+<xref linkend='XmbSetWMProperties' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -4004,14 +4004,14 @@ errors.
<!-- .LP -->
To set a window's standard window manager properties
with strings in client-specified encodings, use
-<function>XSetWMProperties</function>.
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>.
The standard window manager properties for a given window are
<property>WM_NAME</property>, <property>WM_ICON_NAME</property>, <property>WM_HINTS</property>, <property>WM_NORMAL_HINTS</property>, <property>WM_CLASS</property>,
<property>WM_COMMAND</property>, and <property>WM_CLIENT_MACHINE</property>.
</para>
<indexterm significance="preferred"><primary>XSetWMProperties</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmproperties'>
+<funcsynopsis id='XSetWMProperties'>
<funcprototype>
<funcdef>void <function>XSetWMProperties</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4128,7 +4128,7 @@ structure to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
convenience function provides a single programming interface
for setting those essential window properties that are used
for communicating with other clients (particularly window and session
@@ -4137,49 +4137,49 @@ managers).
<para>
<!-- .LP -->
If the window_name argument is non-NULL,
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetWMName</function>,
+<xref linkend='XSetWMName' xrefstyle='select: title'/>,
which, in turn, sets the <property>WM_NAME</property> property
(see <link linkend="Setting_and_Reading_the_WM_NAME_Property">section 14.1.4</link>).
If the icon_name argument is non-NULL,
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetWMIconName</function>,
+<xref linkend='XSetWMIconName' xrefstyle='select: title'/>,
which sets the <property>WM_ICON_NAME</property> property
(see <link linkend="Setting_and_Reading_the_WM_ICON_NAME_Property">section 14.1.5</link>).
If the argv argument is non-NULL,
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetCommand</function>,
+<xref linkend='XSetCommand' xrefstyle='select: title'/>,
which sets the <property>WM_COMMAND</property> property
(see <link linkend="Setting_and_Reading_the_WM_COMMAND_Property">section 14.2.1</link>).
Note that an argc of zero is allowed to indicate a zero-length command.
Note also that the hostname of this machine is stored using
-<function>XSetWMClientMachine</function>
+<xref linkend='XSetWMClientMachine' xrefstyle='select: title'/>
(see <link linkend="Setting_and_Reading_the_WM_CLIENT_MACHINE_Property">section 14.2.2</link>).
</para>
<para>
<!-- .LP -->
If the normal_hints argument is non-NULL,
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetWMNormalHints</function>,
+<xref linkend='XSetWMNormalHints' xrefstyle='select: title'/>,
which sets the <property>WM_NORMAL_HINTS</property> property
(see <link linkend="Setting_and_Reading_the_WM_NORMAL_HINTS_Property">section 14.1.7</link>).
If the wm_hints argument is non-NULL,
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetWMHints</function>,
+<xref linkend='XSetWMHints' xrefstyle='select: title'/>,
which sets the <property>WM_HINTS</property> property
(see <link linkend="Setting_and_Reading_the_WM_HINTS_Property">section 14.1.6</link>).
</para>
<para>
<!-- .LP -->
If the class_hints argument is non-NULL,
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
calls
-<function>XSetClassHint</function>,
+<xref linkend='XSetClassHint' xrefstyle='select: title'/>,
which sets the <property>WM_CLASS</property> property
(see <link linkend="Setting_and_Reading_the_WM_CLASS_Property">section 14.1.8</link>).
If the res_name member in the
@@ -4195,7 +4195,7 @@ any directory prefixes, is substituted for res_name.
</para>
<para>
<!-- .LP -->
-<function>XSetWMProperties</function>
+<xref linkend='XSetWMProperties' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -4239,11 +4239,11 @@ the <property>WM_COMMAND</property> property for a given window.
<para>
<!-- .LP -->
To set a window's <property>WM_COMMAND</property> property, use
-<function>XSetCommand</function>.
+<xref linkend='XSetCommand' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetCommand</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetcommand'>
+<funcsynopsis id='XSetCommand'>
<funcprototype>
<funcdef><function>XSetCommand</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4299,7 +4299,7 @@ Specifies the number of arguments.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetCommand</function>
+<xref linkend='XSetCommand' xrefstyle='select: title'/>
function sets the command and arguments used to invoke the
application.
(Typically, argv is the argv array of your main program.)
@@ -4308,7 +4308,7 @@ the result is implementation-dependent.
</para>
<para>
<!-- .LP -->
-<function>XSetCommand</function>
+<xref linkend='XSetCommand' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -4319,11 +4319,11 @@ errors.
<para>
<!-- .LP -->
To read a window's <property>WM_COMMAND</property> property, use
-<function>XGetCommand</function>.
+<xref linkend='XGetCommand' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetCommand</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetcommand'>
+<funcsynopsis id='XGetCommand'>
<funcprototype>
<funcdef>Status <function>XGetCommand</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4379,13 +4379,13 @@ Returns the number of arguments returned.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetCommand</function>
+<xref linkend='XGetCommand' xrefstyle='select: title'/>
function reads the <property>WM_COMMAND</property> property from the specified window
and returns a string list.
If the <property>WM_COMMAND</property> property exists,
it is of type STRING and format 8.
If sufficient memory can be allocated to contain the string list,
-<function>XGetCommand</function>
+<xref linkend='XGetCommand' xrefstyle='select: title'/>
fills in the argv_return and argc_return arguments
and returns a nonzero status.
Otherwise, it returns a zero status.
@@ -4393,7 +4393,7 @@ If the data returned by the server is in the Latin Portable Character Encoding,
then the returned strings are in the Host Portable Character Encoding.
Otherwise, the result is implementation-dependent.
To free the memory allocated to the string list, use
-<function>XFreeStringList</function>.
+<xref linkend='XFreeStringList' xrefstyle='select: title'/>.
</para>
</sect2>
<sect2 id="Setting_and_Reading_the_WM_CLIENT_MACHINE_Property">
@@ -4410,11 +4410,11 @@ the <property>WM_CLIENT_MACHINE</property> property for a given window.
<para>
<!-- .LP -->
To set a window's <property>WM_CLIENT_MACHINE</property> property, use
-<function>XSetWMClientMachine</function>.
+<xref linkend='XSetWMClientMachine' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetWMClientMachine</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetwmclientmachine'>
+<funcsynopsis id='XSetWMClientMachine'>
<funcprototype>
<funcdef>void <function>XSetWMClientMachine</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4461,20 +4461,20 @@ structure to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetWMClientMachine</function>
+<xref linkend='XSetWMClientMachine' xrefstyle='select: title'/>
convenience function calls
-<function>XSetTextProperty</function>
+<xref linkend='XSetTextProperty' xrefstyle='select: title'/>
to set the <property>WM_CLIENT_MACHINE</property> property.
<!-- .sp -->
</para>
<para>
<!-- .LP -->
To read a window's <property>WM_CLIENT_MACHINE</property> property, use
-<function>XGetWMClientMachine</function>.
+<xref linkend='XGetWMClientMachine' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetWMClientMachine</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetwmclientmachine'>
+<funcsynopsis id='XGetWMClientMachine'>
<funcprototype>
<funcdef>Status <function>XGetWMClientMachine</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4521,9 +4521,9 @@ structure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetWMClientMachine</function>
+<xref linkend='XGetWMClientMachine' xrefstyle='select: title'/>
convenience function performs an
-<function>XGetTextProperty</function>
+<xref linkend='XGetTextProperty' xrefstyle='select: title'/>
on the <property>WM_CLIENT_MACHINE</property> property.
It returns a nonzero status on success;
otherwise, it returns a zero status.
@@ -4659,7 +4659,7 @@ If insufficient memory is available,
returns NULL.
To free the memory allocated to this structure,
use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -4692,7 +4692,7 @@ typedef struct {
<!-- .LP -->
<!-- .eM -->
The colormap member is the colormap created by the
-<function>XCreateColormap</function>
+<xref linkend='XCreateColormap' xrefstyle='select: title'/>
function.
The red_max, green_max, and blue_max members give the maximum
red, green, and blue values, respectively.
@@ -4720,7 +4720,7 @@ green_mult might be 6, and blue_mult might be 1.
The base_pixel member gives the base pixel value used to
compose a full pixel value.
Usually, the base_pixel is obtained from a call to the
-<function>XAllocColorPlanes</function>
+<xref linkend='XAllocColorPlanes' xrefstyle='select: title'/>
function.
Given integer red, green, and blue coefficients in their appropriate
ranges, one then can compute a corresponding pixel value by
@@ -4771,7 +4771,7 @@ colormap was created.
The killid member gives a resource ID that indicates whether
the cells held by this standard colormap are to be released
by freeing the colormap ID or by calling the
-<function>XKillClient</function>
+<xref linkend='XKillClient' xrefstyle='select: title'/>
function on the indicated resource.
(Note that this method is necessary for allocating out of an existing colormap.)
</para>
@@ -4932,11 +4932,11 @@ structure.
To set an
<structname>XStandardColormap</structname>
structure, use
-<function>XSetRGBColormaps</function>.
+<xref linkend='XSetRGBColormaps' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetRGBColormaps</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetrgbcolormaps'>
+<funcsynopsis id='XSetRGBColormaps'>
<funcprototype>
<funcdef>void <function>XSetRGBColormaps</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5006,11 +5006,11 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetRGBColormaps</function>
+<xref linkend='XSetRGBColormaps' xrefstyle='select: title'/>
function replaces the <acronym>RGB</acronym> colormap definition in the specified property
on the named window.
If the property does not already exist,
-<function>XSetRGBColormaps</function>
+<xref linkend='XSetRGBColormaps' xrefstyle='select: title'/>
sets the <acronym>RGB</acronym> colormap definition in the specified property
on the named window.
The property is stored with a type of RGB_COLOR_MAP and a format of 32.
@@ -5020,7 +5020,7 @@ restriction that only RGB_DEFAULT_MAP contain more than one definition.
<para>
<!-- .LP -->
The
-<function>XSetRGBColormaps</function>
+<xref linkend='XSetRGBColormaps' xrefstyle='select: title'/>
function usually is only used by window or session managers.
To create a standard colormap,
follow this procedure:
@@ -5066,7 +5066,7 @@ Allocate cells in the colormap (or create it with
<listitem>
<para>
Call
-<function>XStoreColors</function>
+<xref linkend='XStoreColors' xrefstyle='select: title'/>
to store appropriate color values in the colormap.
</para>
</listitem>
@@ -5085,7 +5085,7 @@ Attach the property to the root window.
<listitem>
<para>
Use
-<function>XSetCloseDownMode</function>
+<xref linkend='XSetCloseDownMode' xrefstyle='select: title'/>
to make the resource permanent.
<!-- .RE -->
</para>
@@ -5098,7 +5098,7 @@ Ungrab the server.
</itemizedlist>
<para>
<!-- .LP -->
-<function>XSetRGBColormaps</function>
+<xref linkend='XSetRGBColormaps' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadAtom</errorname>,
@@ -5112,11 +5112,11 @@ errors.
To obtain the
<structname>XStandardColormap</structname>
structure associated with the specified property, use
-<function>XGetRGBColormaps</function>.
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetRGBColormaps</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetrgbcolormaps'>
+<funcsynopsis id='XGetRGBColormaps'>
<funcprototype>
<funcdef>Status <function>XGetRGBColormaps</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -5186,30 +5186,30 @@ Specifies the property name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetRGBColormaps</function>
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>
function returns the <acronym>RGB</acronym> colormap definitions stored
in the specified property on the named window.
If the property exists, is of type RGB_COLOR_MAP, is of format 32,
and is long enough to contain a colormap definition,
-<function>XGetRGBColormaps</function>
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>
allocates and fills in space for the returned colormaps
and returns a nonzero status.
If the visualid is not present,
-<function>XGetRGBColormaps</function>
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>
assumes the default visual for the screen on which the window is located;
if the killid is not present,
<symbol>None</symbol>
is assumed, which indicates that the resources cannot be released.
Otherwise,
none of the fields are set, and
-<function>XGetRGBColormaps</function>
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>
returns a zero status.
Note that it is the caller's responsibility to honor the <acronym>ICCCM</acronym>
restriction that only RGB_DEFAULT_MAP contain more than one definition.
</para>
<para>
<!-- .LP -->
-<function>XGetRGBColormaps</function>
+<xref linkend='XGetRGBColormaps' xrefstyle='select: title'/>
can generate
<errorname>BadAtom</errorname>
and
diff --git a/libX11/specs/libX11/CH15.xml b/libX11/specs/libX11/CH15.xml
index 3c4a29695..f6c76a481 100644
--- a/libX11/specs/libX11/CH15.xml
+++ b/libX11/specs/libX11/CH15.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="resource_manager_functions">
+<chapter id='Resource_Manager_Functions'>
<title>Resource Manager Functions</title>
<!-- .sp 2 -->
<!-- .nr H1 15 -->
@@ -406,7 +406,7 @@ typedef XrmQuarkList XrmClassList;
<!-- .eM -->
<!-- .sp -->
To convert a string to a quark, use
-<function>XrmStringToQuark</function>
+<xref linkend='XrmStringToQuark' xrefstyle='select: title'/>
or
<function>XrmPermStringToQuark</function>.
</para>
@@ -419,7 +419,7 @@ or
<indexterm significance="preferred"><primary>XrmStringToQuark</primary></indexterm>
<indexterm significance="preferred"><primary>XrmPermStringToQuark</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmstringtoquark'>
+<funcsynopsis id='XrmStringToQuark'>
<funcprototype>
<funcdef>XrmQuark <function>XrmStringToQuark</function></funcdef>
<paramdef>char<parameter> *string</parameter></paramdef>
@@ -446,20 +446,20 @@ These functions can be used to convert from string to quark representation.
If the string is not in the Host Portable Character Encoding,
the conversion is implementation-dependent.
The string argument to
-<function>XrmStringToQuark</function>
+<xref linkend='XrmStringToQuark' xrefstyle='select: title'/>
need not be permanently allocated storage.
<function>XrmPermStringToQuark</function>
is just like
-<function>XrmStringToQuark</function>,
+<xref linkend='XrmStringToQuark' xrefstyle='select: title'/>,
except that Xlib is permitted to assume the string argument is permanently
allocated,
and, hence, that it can be used as the value to be returned by
-<function>XrmQuarkToString</function>.
+<xref linkend='XrmQuarkToString' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
For any given quark, if
-<function>XrmStringToQuark</function>
+<xref linkend='XrmStringToQuark' xrefstyle='select: title'/>
returns a non-NULL value,
all future calls will return the same value (identical address).
</para>
@@ -467,7 +467,7 @@ all future calls will return the same value (identical address).
<!-- .LP -->
<!-- .sp -->
To convert a quark to a string, use
-<function>XrmQuarkToString</function>.
+<xref linkend='XrmQuarkToString' xrefstyle='select: title'/>.
</para>
<literallayout class="monospaced">
@@ -477,7 +477,7 @@ To convert a quark to a string, use
</literallayout>
<indexterm significance="preferred"><primary>XrmQuarkToString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmquarktostring'>
+<funcsynopsis id='XrmQuarkToString'>
<funcprototype>
<funcdef>char *<function>XrmQuarkToString</function></funcdef>
<paramdef>XrmQuark<parameter> quark</parameter></paramdef>
@@ -503,10 +503,10 @@ The string pointed to by the return value must not be modified or freed.
The returned string is byte-for-byte equal to the original
string passed to one of the string-to-quark routines.
If no string exists for that quark,
-<function>XrmQuarkToString</function>
+<xref linkend='XrmQuarkToString' xrefstyle='select: title'/>
returns NULL.
For any given quark, if
-<function>XrmQuarkToString</function>
+<xref linkend='XrmQuarkToString' xrefstyle='select: title'/>
returns a non-NULL value,
all future calls will return the same value (identical address).
</para>
@@ -514,7 +514,7 @@ all future calls will return the same value (identical address).
<!-- .LP -->
<!-- .sp -->
To convert a string with one or more components to a quark list, use
-<function>XrmStringToQuarkList</function>.
+<xref linkend='XrmStringToQuarkList' xrefstyle='select: title'/>.
</para>
<literallayout class="monospaced">
@@ -524,7 +524,7 @@ To convert a string with one or more components to a quark list, use
<indexterm significance="preferred"><primary>XrmStringToQuarkList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmstringtoquarklist'>
+<funcsynopsis id='XrmStringToQuarkList'>
<funcprototype>
<funcdef>void <function>XrmStringToQuarkList</function></funcdef>
<paramdef>char<parameter> *string</parameter></paramdef>
@@ -552,7 +552,7 @@ Specifies the string for which a quark(Ql is to be allocated.
<para>
Returns the list of quarks.
The caller must allocate sufficient space for the quarks list before calling
-<function>XrmStringToQuarkList</function>.
+<xref linkend='XrmStringToQuarkList' xrefstyle='select: title'/>.
</para>
</listitem>
</varlistentry>
@@ -562,7 +562,7 @@ The caller must allocate sufficient space for the quarks list before calling
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmStringToQuarkList</function>
+<xref linkend='XrmStringToQuarkList' xrefstyle='select: title'/>
function converts the null-terminated string (generally a fully qualified name)
to a list of quarks.
Note that the string must be in the valid ResourceName format
@@ -595,11 +595,11 @@ indicates that an asterisk separates the components.
<!-- .sp -->
To convert a string with one or more components to a binding list
and a quark list, use
-<function>XrmStringToBindingQuarkList</function>.
+<xref linkend='XrmStringToBindingQuarkList' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmStringToBindingQuarkList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmstringtobindingquarklist'>
+<funcsynopsis id='XrmStringToBindingQuarkList'>
<funcprototype>
<funcdef><function>XrmStringToBindingQuarkList</function></funcdef>
<paramdef>char<parameter> *string</parameter></paramdef>
@@ -628,7 +628,7 @@ Specifies the string for which a quark(Ql is to be allocated.
<para>
Returns the binding list.
The caller must allocate sufficient space for the binding list before calling
-<function>XrmStringToBindingQuarkList</function>.
+<xref linkend='XrmStringToBindingQuarkList' xrefstyle='select: title'/>.
</para>
</listitem>
</varlistentry>
@@ -640,7 +640,7 @@ The caller must allocate sufficient space for the binding list before calling
<para>
Returns the list of quarks.
The caller must allocate sufficient space for the quarks list before calling
-<function>XrmStringToBindingQuarkList</function>.
+<xref linkend='XrmStringToBindingQuarkList' xrefstyle='select: title'/>.
</para>
</listitem>
</varlistentry>
@@ -706,10 +706,10 @@ typedef struct {
<!-- .eM -->
<!-- .sp -->
To initialize the resource manager, use
-<function>XrmInitialize</function>.
+<xref linkend='XrmInitialize' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XrmInitialize</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrminitialize'>
+<funcsynopsis id='XrmInitialize'>
<funcprototype>
<funcdef>void <function>XrmInitialize</function></funcdef>
<paramdef>void<parameter> XrmInitialize(\|)</parameter></paramdef>
@@ -721,11 +721,11 @@ To initialize the resource manager, use
<!-- .LP -->
<!-- .eM -->
To retrieve a database from disk, use
-<function>XrmGetFileDatabase</function>.
+<xref linkend='XrmGetFileDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmGetFileDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmgetfiledatabase'>
+<funcsynopsis id='XrmGetFileDatabase'>
<funcprototype>
<funcdef>XrmDatabase <function>XrmGetFileDatabase</function></funcdef>
<paramdef>char<parameter> *filename</parameter></paramdef>
@@ -748,7 +748,7 @@ Specifies the resource database file name.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmGetFileDatabase</function>
+<xref linkend='XrmGetFileDatabase' xrefstyle='select: title'/>
function opens the specified file,
creates a new resource database, and loads it with the specifications
read in from the specified file.
@@ -759,18 +759,18 @@ with incorrect syntax is implementation-dependent.
The file is parsed in the current locale,
and the database is created in the current locale.
If it cannot open the specified file,
-<function>XrmGetFileDatabase</function>
+<xref linkend='XrmGetFileDatabase' xrefstyle='select: title'/>
returns NULL.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To store a copy of a database to disk, use
-<function>XrmPutFileDatabase</function>.
+<xref linkend='XrmPutFileDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmPutFileDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmputfiledatabase'>
+<funcsynopsis id='XrmPutFileDatabase'>
<funcprototype>
<funcdef>void <function>XrmPutFileDatabase</function></funcdef>
<paramdef>XrmDatabase<parameter> database</parameter></paramdef>
@@ -804,7 +804,7 @@ Specifies the file name for the stored database.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmPutFileDatabase</function>
+<xref linkend='XrmPutFileDatabase' xrefstyle='select: title'/>
function stores a copy of the specified database in the specified file.
Text is written to the file as a sequence of entries in valid
ResourceLine format
@@ -820,11 +820,11 @@ Entries with representation types other than ``String'' are ignored.
<!-- .LP -->
<!-- .sp -->
To obtain a pointer to the screen-independent resources of a display, use
-<function>XResourceManagerString</function>.
+<xref linkend='XResourceManagerString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XResourceManagerString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xresourcemanagerstring'>
+<funcsynopsis id='XResourceManagerString'>
<funcprototype>
<funcdef>char *<function>XResourceManagerString</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -847,28 +847,28 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XResourceManagerString</function>
+<xref linkend='XResourceManagerString' xrefstyle='select: title'/>
function returns the RESOURCE_MANAGER property from the server's root
window of screen zero, which was returned when the connection was opened using
-<function>XOpenDisplay</function>.
+<xref linkend='XOpenDisplay' xrefstyle='select: title'/>.
The property is converted from type STRING to the current locale.
The conversion is identical to that produced by
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
for a single element STRING property.
The returned string is owned by Xlib and should not be freed by the client.
The property value must be in a format that is acceptable to
-<function>XrmGetStringDatabase</function>.
+<xref linkend='XrmGetStringDatabase' xrefstyle='select: title'/>.
If no property exists, NULL is returned.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To obtain a pointer to the screen-specific resources of a screen, use
-<function>XScreenResourceString</function>.
+<xref linkend='XScreenResourceString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XScreenResourceString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xscreenresourcestring'>
+<funcsynopsis id='XScreenResourceString'>
<funcprototype>
<funcdef>char *<function>XScreenResourceString</function></funcdef>
<paramdef>Screen<parameter> *screen</parameter></paramdef>
@@ -891,28 +891,28 @@ Specifies the screen.
<!-- .LP -->
<!-- .eM -->
The
-<function>XScreenResourceString</function>
+<xref linkend='XScreenResourceString' xrefstyle='select: title'/>
function returns the SCREEN_RESOURCES property from the root window of the
specified screen.
The property is converted from type STRING to the current locale.
The conversion is identical to that produced by
-<function>XmbTextPropertyToTextList</function>
+<xref linkend='XmbTextPropertyToTextList' xrefstyle='select: title'/>
for a single element STRING property.
The property value must be in a format that is acceptable to
-<function>XrmGetStringDatabase</function>.
+<xref linkend='XrmGetStringDatabase' xrefstyle='select: title'/>.
If no property exists, NULL is returned.
The caller is responsible for freeing the returned string by using
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To create a database from a string, use
-<function>XrmGetStringDatabase</function>.
+<xref linkend='XrmGetStringDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmGetStringDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmgetstringdatabase'>
+<funcsynopsis id='XrmGetStringDatabase'>
<funcprototype>
<funcdef>XrmDatabase <function>XrmGetStringDatabase</function></funcdef>
<paramdef>char<parameter> *data</parameter></paramdef>
@@ -935,12 +935,12 @@ Specifies the database contents using a string.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmGetStringDatabase</function>
+<xref linkend='XrmGetStringDatabase' xrefstyle='select: title'/>
function creates a new database and stores the resources specified
in the specified null-terminated string.
-<function>XrmGetStringDatabase</function>
+<xref linkend='XrmGetStringDatabase' xrefstyle='select: title'/>
is similar to
-<function>XrmGetFileDatabase</function>
+<xref linkend='XrmGetFileDatabase' xrefstyle='select: title'/>
except that it reads the information out of a string instead of out of a file.
The string should contain a sequence of entries in valid ResourceLine
format (see <link linkend="Resource_File_Syntax">section 15.1</link>)
@@ -954,11 +954,11 @@ and the database is created in the current locale.
<!-- .LP -->
<!-- .sp -->
To obtain the locale name of a database, use
-<function>XrmLocaleOfDatabase</function>.
+<xref linkend='XrmLocaleOfDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmLocaleOfDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmlocaleofdatabase'>
+<funcsynopsis id='XrmLocaleOfDatabase'>
<funcprototype>
<funcdef>char *<function>XrmLocaleOfDatabase</function></funcdef>
<paramdef>XrmDatabase<parameter> database</parameter></paramdef>
@@ -981,7 +981,7 @@ Specifies the resource database.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmLocaleOfDatabase</function>
+<xref linkend='XrmLocaleOfDatabase' xrefstyle='select: title'/>
function returns the name of the locale bound to the specified
database, as a null-terminated string.
The returned locale name string is owned by Xlib and should not be
@@ -994,11 +994,11 @@ it will not be modified by Xlib.
<!-- .LP -->
<!-- .sp -->
To destroy a resource database and free its allocated memory, use
-<function>XrmDestroyDatabase</function>.
+<xref linkend='XrmDestroyDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmDestroyDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmdestroydatabase'>
+<funcsynopsis id='XrmDestroyDatabase'>
<funcprototype>
<funcdef>void <function>XrmDestroyDatabase</function></funcdef>
<paramdef>XrmDatabase<parameter> database</parameter></paramdef>
@@ -1021,18 +1021,18 @@ Specifies the resource database.
<!-- .LP -->
<!-- .eM -->
If database is NULL,
-<function>XrmDestroyDatabase</function>
+<xref linkend='XrmDestroyDatabase' xrefstyle='select: title'/>
returns immediately.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To associate a resource database with a display, use
-<function>XrmSetDatabase</function>.
+<xref linkend='XrmSetDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmSetDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmsetdatabase'>
+<funcsynopsis id='XrmSetDatabase'>
<funcprototype>
<funcdef>void <function>XrmSetDatabase</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1066,7 +1066,7 @@ Specifies the resource database.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmSetDatabase</function>
+<xref linkend='XrmSetDatabase' xrefstyle='select: title'/>
function associates the specified resource database (or NULL)
with the specified display.
The database previously associated with the display (if any) is not destroyed.
@@ -1077,11 +1077,11 @@ once it is constructed.
<!-- .LP -->
<!-- .sp -->
To get the resource database associated with a display, use
-<function>XrmGetDatabase</function>.
+<xref linkend='XrmGetDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmGetDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmgetdatabase'>
+<funcsynopsis id='XrmGetDatabase'>
<funcprototype>
<funcdef>XrmDatabase <function>XrmGetDatabase</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1104,7 +1104,7 @@ Specifies the connection to the X server.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmGetDatabase</function>
+<xref linkend='XrmGetDatabase' xrefstyle='select: title'/>
function returns the database associated with the specified display.
It returns NULL if a database has not yet been set.
</para>
@@ -1117,11 +1117,11 @@ It returns NULL if a database has not yet been set.
<para>
<!-- .LP -->
To merge the contents of a resource file into a database, use
-<function>XrmCombineFileDatabase</function>.
+<xref linkend='XrmCombineFileDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmCombineFileDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmcombinefiledatabase'>
+<funcsynopsis id='XrmCombineFileDatabase'>
<funcprototype>
<funcdef>Status <function>XrmCombineFileDatabase</function></funcdef>
<paramdef>char<parameter> *filename</parameter></paramdef>
@@ -1167,7 +1167,7 @@ Specifies whether source entries override target ones.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmCombineFileDatabase</function>
+<xref linkend='XrmCombineFileDatabase' xrefstyle='select: title'/>
function merges the contents of a resource file into a database.
If the same specifier is used for an entry in both the file and
the database,
@@ -1180,7 +1180,7 @@ If the file cannot be read,
a zero status is returned;
otherwise, a nonzero status is returned.
If target_db contains NULL,
-<function>XrmCombineFileDatabase</function>
+<xref linkend='XrmCombineFileDatabase' xrefstyle='select: title'/>
creates and returns a new database to it.
Otherwise, the database pointed to by target_db is not destroyed by the merge.
The database entries are merged without changing values or types,
@@ -1191,11 +1191,11 @@ The locale of the target database is not modified.
<!-- .LP -->
<!-- .sp -->
To merge the contents of one database into another database, use
-<function>XrmCombineDatabase</function>.
+<xref linkend='XrmCombineDatabase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmCombineDatabase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmcombinedatabase'>
+<funcsynopsis id='XrmCombineDatabase'>
<funcprototype>
<funcdef>void <function>XrmCombineDatabase</function></funcdef>
<paramdef>XrmDatabasesource_db,<parameter> *target_db</parameter></paramdef>
@@ -1240,7 +1240,7 @@ Specifies whether source entries override target ones.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmCombineDatabase</function>
+<xref linkend='XrmCombineDatabase' xrefstyle='select: title'/>
function merges the contents of one database into another.
If the same specifier is used for an entry in both databases,
the entry in the source_db will replace the entry in the target_db
@@ -1248,7 +1248,7 @@ if override is
<symbol>True</symbol>;
otherwise, the entry in source_db is discarded.
If target_db contains NULL,
-<function>XrmCombineDatabase</function>
+<xref linkend='XrmCombineDatabase' xrefstyle='select: title'/>
simply stores source_db in it.
Otherwise, source_db is destroyed by the merge, but the database pointed
to by target_db is not destroyed.
@@ -1261,11 +1261,11 @@ The locale of the target database is not modified.
<!-- .sp -->
To merge the contents of one database into another database with override
semantics, use
-<function>XrmMergeDatabases</function>.
+<xref linkend='XrmMergeDatabases' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmMergeDatabases</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmmergedatabases'>
+<funcsynopsis id='XrmMergeDatabases'>
<funcprototype>
<funcdef>void <function>XrmMergeDatabases</function></funcdef>
<paramdef>XrmDatabasesource_db,<parameter> *target_db</parameter></paramdef>
@@ -1299,9 +1299,9 @@ database is to be merged.
<!-- .LP -->
<!-- .eM -->
Calling the
-<function>XrmMergeDatabases</function>
+<xref linkend='XrmMergeDatabases' xrefstyle='select: title'/>
function is equivalent to calling the
-<function>XrmCombineDatabase</function>
+<xref linkend='XrmCombineDatabase' xrefstyle='select: title'/>
function with an override argument of
<symbol>True</symbol>.
</para>
@@ -1314,14 +1314,14 @@ function with an override argument of
<para>
<!-- .LP -->
To retrieve a resource from a resource database, use
-<function>XrmGetResource</function>,
-<function>XrmQGetResource</function>,
+<xref linkend='XrmGetResource' xrefstyle='select: title'/>,
+<xref linkend='XrmQGetResource' xrefstyle='select: title'/>,
or
-<function>XrmQGetSearchResource</function>.
+<xref linkend='XrmQGetSearchResource' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmGetResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmgetresource'>
+<funcsynopsis id='XrmGetResource'>
<funcprototype>
<funcdef>Bool <function>XrmGetResource</function></funcdef>
<paramdef>XrmDatabase<parameter> database</parameter></paramdef>
@@ -1386,7 +1386,7 @@ Returns the value in the database.
</variablelist>
<indexterm significance="preferred"><primary>XrmQGetResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmqgetresource'>
+<funcsynopsis id='XrmQGetResource'>
<funcprototype>
<funcdef>Bool <function>XrmQGetResource</function></funcdef>
<paramdef>XrmDatabase<parameter> database</parameter></paramdef>
@@ -1453,9 +1453,9 @@ Returns the value in the database.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmGetResource</function>
+<xref linkend='XrmGetResource' xrefstyle='select: title'/>
and
-<function>XrmQGetResource</function>
+<xref linkend='XrmQGetResource' xrefstyle='select: title'/>
functions retrieve a resource from the specified database.
Both take a fully qualified name/class pair, a destination
resource representation, and the address of a value
@@ -1466,17 +1466,17 @@ therefore, you must not modify the data.
<para>
<!-- .LP -->
The database only frees or overwrites entries on
-<function>XrmPutResource</function>,
-<function>XrmQPutResource</function>,
+<xref linkend='XrmPutResource' xrefstyle='select: title'/>,
+<xref linkend='XrmQPutResource' xrefstyle='select: title'/>,
or
-<function>XrmMergeDatabases</function>.
+<xref linkend='XrmMergeDatabases' xrefstyle='select: title'/>.
A client that is not storing new values into the database or
is not merging the database should be safe using the address passed
back at any time until it exits.
If a resource was found, both
-<function>XrmGetResource</function>
+<xref linkend='XrmGetResource' xrefstyle='select: title'/>
and
-<function>XrmQGetResource</function>
+<xref linkend='XrmQGetResource' xrefstyle='select: title'/>
return
<symbol>True</symbol>;
otherwise, they return
@@ -1491,7 +1491,7 @@ The X toolkit access pattern for a resource database is quite stylized.
A series of from 1 to 20 probes is made with only the
last name/class differing in each probe.
The
-<function>XrmGetResource</function>
+<xref linkend='XrmGetResource' xrefstyle='select: title'/>
function is at worst a
2<superscript><emphasis remap='I'>n</emphasis></superscript> algorithm,
where <emphasis remap='I'>n</emphasis> is the length of the name/class list.
@@ -1506,7 +1506,7 @@ To obtain a list of database levels, use
</para>
<indexterm significance="preferred"><primary>XrmQGetSearchList</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmqgetsearchlist'>
+<funcsynopsis id='XrmQGetSearchResource'>
<funcprototype>
<funcdef>Bool <function>XrmQGetSearchResource</function></funcdef>
<paramdef>XrmDatabase<parameter> database</parameter></paramdef>
@@ -1580,7 +1580,7 @@ function takes a list of names and classes
and returns a list of database levels where a match might occur.
The returned list is in best-to-worst order and
uses the same algorithm as
-<function>XrmGetResource</function>
+<xref linkend='XrmGetResource' xrefstyle='select: title'/>
for determining precedence.
If list_return was large enough for the search list,
<function>XrmQGetSearchList</function>
@@ -1611,11 +1611,11 @@ only the common prefix should be specified in the name and class list to
<!-- .LP -->
<!-- .sp -->
To search resource database levels for a given resource, use
-<function>XrmQGetSearchResource</function>.
+<xref linkend='XrmQGetSearchResource' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmQGetSearchResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmqgetsearchresource'>
+<funcsynopsis id='XrmQGetSearchResource_2'>
<funcprototype>
<funcdef>Bool <function>XrmQGetSearchResource</function></funcdef>
<paramdef>XrmSearchList<parameter> list</parameter></paramdef>
@@ -1683,11 +1683,11 @@ Returns the value in the database.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmQGetSearchResource</function>
+<xref linkend='XrmQGetSearchResource' xrefstyle='select: title'/>
function searches the specified database levels for the resource
that is fully identified by the specified name and class.
The search stops with the first match.
-<function>XrmQGetSearchResource</function>
+<xref linkend='XrmQGetSearchResource' xrefstyle='select: title'/>
returns
<symbol>True</symbol>
if the resource was found;
@@ -1700,11 +1700,11 @@ A call to
<function>XrmQGetSearchList</function>
with a name and class list containing all but the last component
of a resource name followed by a call to
-<function>XrmQGetSearchResource</function>
+<xref linkend='XrmQGetSearchResource' xrefstyle='select: title'/>
with the last component name and class returns the same database entry as
-<function>XrmGetResource</function>
+<xref linkend='XrmGetResource' xrefstyle='select: title'/>
and
-<function>XrmQGetResource</function>
+<xref linkend='XrmQGetResource' xrefstyle='select: title'/>
with the fully qualified name and class.
</para>
</sect1>
@@ -1716,9 +1716,9 @@ with the fully qualified name and class.
<para>
<!-- .LP -->
To store resources into the database, use
-<function>XrmPutResource</function>
+<xref linkend='XrmPutResource' xrefstyle='select: title'/>
or
-<function>XrmQPutResource</function>.
+<xref linkend='XrmQPutResource' xrefstyle='select: title'/>.
Both functions take a partial resource specification, a
representation type, and a value.
This value is copied into the specified database.
@@ -1727,7 +1727,7 @@ This value is copied into the specified database.
<!-- .sp -->
<indexterm significance="preferred"><primary>XrmPutResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmputresource'>
+<funcsynopsis id='XrmPutResource'>
<funcprototype>
<funcdef>void <function>XrmPutResource</function></funcdef>
<paramdef>XrmDatabase<parameter> *database</parameter></paramdef>
@@ -1783,11 +1783,11 @@ Specifies the value of the resource, which is specified as a string.
<!-- .LP -->
<!-- .eM -->
If database contains NULL,
-<function>XrmPutResource</function>
+<xref linkend='XrmPutResource' xrefstyle='select: title'/>
creates a new database and returns a pointer to it.
-<function>XrmPutResource</function>
+<xref linkend='XrmPutResource' xrefstyle='select: title'/>
is a convenience function that calls
-<function>XrmStringToBindingQuarkList</function>
+<xref linkend='XrmStringToBindingQuarkList' xrefstyle='select: title'/>
followed by:
</para>
<para>
@@ -1803,7 +1803,7 @@ The value is stored in the database without modification.
<!-- .sp -->
<indexterm significance="preferred"><primary>XrmQPutResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmqputresource'>
+<funcsynopsis id='XrmQPutResource'>
<funcprototype>
<funcdef>void <function>XrmQPutResource</function></funcdef>
<paramdef>XrmDatabase<parameter> *database</parameter></paramdef>
@@ -1870,7 +1870,7 @@ Specifies the value of the resource, which is specified as a string.
<!-- .LP -->
<!-- .eM -->
If database contains NULL,
-<function>XrmQPutResource</function>
+<xref linkend='XrmQPutResource' xrefstyle='select: title'/>
creates a new database and returns a pointer to it.
If a resource entry with the identical bindings and quarks already
exists in the database, the previous type and value are replaced by the new
@@ -1881,11 +1881,11 @@ The value is stored in the database without modification.
<!-- .LP -->
<!-- .sp -->
To add a resource that is specified as a string, use
-<function>XrmPutStringResource</function>.
+<xref linkend='XrmPutStringResource' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmPutStringResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmputstringresource'>
+<funcsynopsis id='XrmPutStringResource'>
<funcprototype>
<funcdef>void <function>XrmPutStringResource</function></funcdef>
<paramdef>XrmDatabase<parameter> *database</parameter></paramdef>
@@ -1930,15 +1930,15 @@ Specifies the value of the resource, which is specified as a string.
<!-- .LP -->
<!-- .eM -->
If database contains NULL,
-<function>XrmPutStringResource</function>
+<xref linkend='XrmPutStringResource' xrefstyle='select: title'/>
creates a new database and returns a pointer to it.
-<function>XrmPutStringResource</function>
+<xref linkend='XrmPutStringResource' xrefstyle='select: title'/>
adds a resource with the specified value to the specified database.
-<function>XrmPutStringResource</function>
+<xref linkend='XrmPutStringResource' xrefstyle='select: title'/>
is a convenience function that first calls
-<function>XrmStringToBindingQuarkList</function>
+<xref linkend='XrmStringToBindingQuarkList' xrefstyle='select: title'/>
on the specifier and then calls
-<function>XrmQPutResource</function>,
+<xref linkend='XrmQPutResource' xrefstyle='select: title'/>,
using a ``String'' representation type.
If the specifier is not in the Host Portable Character Encoding,
the result is implementation-dependent.
@@ -1948,11 +1948,11 @@ The value is stored in the database without modification.
<!-- .LP -->
<!-- .sp -->
To add a string resource using quarks as a specification, use
-<function>XrmQPutStringResource</function>.
+<xref linkend='XrmQPutStringResource' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmQPutStringResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmqputstringresource'>
+<funcsynopsis id='XrmQPutStringResource'>
<funcprototype>
<funcdef>void <function>XrmQPutStringResource</function></funcdef>
<paramdef>XrmDatabase<parameter> *database</parameter></paramdef>
@@ -2008,16 +2008,16 @@ Specifies the value of the resource, which is specified as a string.
<!-- .LP -->
<!-- .eM -->
If database contains NULL,
-<function>XrmQPutStringResource</function>
+<xref linkend='XrmQPutStringResource' xrefstyle='select: title'/>
creates a new database and returns a pointer to it.
-<function>XrmQPutStringResource</function>
+<xref linkend='XrmQPutStringResource' xrefstyle='select: title'/>
is a convenience routine that constructs an
<type>XrmValue</type>
for the value string (by calling
<function>strlen</function>
to compute the size) and
then calls
-<function>XrmQPutResource</function>,
+<xref linkend='XrmQPutResource' xrefstyle='select: title'/>,
using a ``String'' representation type.
The value is stored in the database without modification.
</para>
@@ -2026,11 +2026,11 @@ The value is stored in the database without modification.
<!-- .sp -->
To add a single resource entry that is specified as a string that contains
both a name and a value, use
-<function>XrmPutLineResource</function>.
+<xref linkend='XrmPutLineResource' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmPutLineResource</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmputlineresource'>
+<funcsynopsis id='XrmPutLineResource'>
<funcprototype>
<funcdef>void <function>XrmPutLineResource</function></funcdef>
<paramdef>XrmDatabase<parameter> *database</parameter></paramdef>
@@ -2064,9 +2064,9 @@ Specifies the resource name and value pair as a single string.
<!-- .LP -->
<!-- .eM -->
If database contains NULL,
-<function>XrmPutLineResource</function>
+<xref linkend='XrmPutLineResource' xrefstyle='select: title'/>
creates a new database and returns a pointer to it.
-<function>XrmPutLineResource</function>
+<xref linkend='XrmPutLineResource' xrefstyle='select: title'/>
adds a single resource entry to the specified database.
The line should be in valid ResourceLine format
(see <link linkend="Resource_File_Syntax">section 15.1</link>)
@@ -2089,7 +2089,7 @@ Note that comment lines are not stored.
<para>
<!-- .LP -->
To enumerate the entries of a database, use
-<function>XrmEnumerateDatabase</function>.
+<xref linkend='XrmEnumerateDatabase' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>XrmEnumerateDatabase</primary></indexterm>
<!-- .sM -->
</para>
@@ -2099,7 +2099,7 @@ To enumerate the entries of a database, use
#define XrmEnumOneLevel 0
</literallayout>
-<funcsynopsis id='xrmenumeratedatabase'>
+<funcsynopsis id='XrmEnumerateDatabase'>
<funcprototype>
<funcdef>Bool <function>XrmEnumerateDatabase</function></funcdef>
<paramdef>XrmDatabase<parameter> database</parameter></paramdef>
@@ -2178,7 +2178,7 @@ Specifies the user-supplied argument that will be passed to the procedure.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmEnumerateDatabase</function>
+<xref linkend='XrmEnumerateDatabase' xrefstyle='select: title'/>
function calls the specified procedure for each resource in the database
that would match some completion of the given name/class resource prefix.
The order in which resources are found is implementation-dependent.
@@ -2241,7 +2241,7 @@ Xlib function using the same database is not defined.
<para>
<!-- .LP -->
The
-<function>XrmParseCommand</function>
+<xref linkend='XrmParseCommand' xrefstyle='select: title'/>
function can be used to parse the command line arguments to a program
and modify a resource database with selected entries from the command line.
</para>
@@ -2300,11 +2300,11 @@ typedef struct {
<!-- .eM -->
<!-- .sp -->
To load a resource database from a C command line, use
-<function>XrmParseCommand</function>.
+<xref linkend='XrmParseCommand' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XrmParseCommand</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrmparsecommand'>
+<funcsynopsis id='XrmParseCommand'>
<funcprototype>
<funcdef>void <function>XrmParseCommand</function></funcdef>
<paramdef>XrmDatabase<parameter> *database</parameter></paramdef>
@@ -2383,12 +2383,12 @@ and returns the remaining arguments.
<!-- .LP -->
<!-- .eM -->
The
-<function>XrmParseCommand</function>
+<xref linkend='XrmParseCommand' xrefstyle='select: title'/>
function parses an (argc, argv) pair according to the specified option table,
loads recognized options into the specified database with type ``String,''
and modifies the (argc, argv) pair to remove all recognized options.
If database contains NULL,
-<function>XrmParseCommand</function>
+<xref linkend='XrmParseCommand' xrefstyle='select: title'/>
creates a new database and returns a pointer to it.
Otherwise, entries are added to the database specified.
If a database is created, it is created in the current locale.
diff --git a/libX11/specs/libX11/CH16.xml b/libX11/specs/libX11/CH16.xml
index 01f25d4b4..e70b79939 100644
--- a/libX11/specs/libX11/CH16.xml
+++ b/libX11/specs/libX11/CH16.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<chapter id="application_utility_functions">
+<chapter id='Application_Utility_Functions'>
<title>Application Utility Functions</title>
<!-- .sp 2 -->
<!-- .nr H1 16 -->
@@ -97,11 +97,11 @@ use the functions described in section 12.7.
<!-- .LP -->
<!-- .sp -->
To obtain a KeySym for the KeyCode of an event, use
-<function>XLookupKeysym</function>.
+<xref linkend='XLookupKeysym' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLookupKeysym</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlookupkeysym'>
+<funcsynopsis id='XLookupKeysym'>
<funcprototype>
<funcdef>KeySym <function>XLookupKeysym</function></funcdef>
<paramdef>XKeyEvent<parameter> *key_event</parameter></paramdef>
@@ -139,7 +139,7 @@ Specifies the index into the KeySyms list for the event's KeyCode.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLookupKeysym</function>
+<xref linkend='XLookupKeysym' xrefstyle='select: title'/>
function uses a given keyboard event and the index you specified to return
the KeySym from the list that corresponds to the KeyCode member in the
<type>XKeyPressedEvent</type>
@@ -147,7 +147,7 @@ or
<type>XKeyReleasedEvent</type>
structure.
If no KeySym is defined for the KeyCode of the event,
-<function>XLookupKeysym</function>
+<xref linkend='XLookupKeysym' xrefstyle='select: title'/>
returns
<symbol>NoSymbol</symbol>.
</para>
@@ -155,11 +155,11 @@ returns
<!-- .LP -->
<!-- .sp -->
To obtain a KeySym for a specific KeyCode, use
-<function>XKeycodeToKeysym</function>.
+<xref linkend='XKeycodeToKeysym' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XKeycodeToKeysym</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xkeycodetokeysym'>
+<funcsynopsis id='XKeycodeToKeysym'>
<funcprototype>
<funcdef>KeySym <function>XKeycodeToKeysym</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -204,12 +204,12 @@ Specifies the element of KeyCode vector.
<!-- .LP -->
<!-- .eM -->
The
-<function>XKeycodeToKeysym</function>
+<xref linkend='XKeycodeToKeysym' xrefstyle='select: title'/>
function uses internal Xlib tables
and returns the KeySym defined for the specified KeyCode and
the element of the KeyCode vector.
If no symbol is defined,
-<function>XKeycodeToKeysym</function>
+<xref linkend='XKeycodeToKeysym' xrefstyle='select: title'/>
returns
<symbol>NoSymbol</symbol>.
</para>
@@ -217,11 +217,11 @@ returns
<!-- .LP -->
<!-- .sp -->
To obtain a KeyCode for a key having a specific KeySym, use
-<function>XKeysymToKeycode</function>.
+<xref linkend='XKeysymToKeycode' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XKeysymToKeycode</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xkeysymtokeycode'>
+<funcsynopsis id='XKeysymToKeycode'>
<funcprototype>
<funcdef>KeyCode <function>XKeysymToKeycode</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -255,7 +255,7 @@ Specifies the KeySym that is to be searched for.
<!-- .LP -->
<!-- .eM -->
If the specified KeySym is not defined for any KeyCode,
-<function>XKeysymToKeycode</function>
+<xref linkend='XKeysymToKeycode' xrefstyle='select: title'/>
returns zero.
</para>
<para>
@@ -265,11 +265,11 @@ The mapping between KeyCodes and KeySyms is cached internal to Xlib.
When this information is changed at the server, an Xlib function must
be called to refresh the cache.
To refresh the stored modifier and keymap information, use
-<function>XRefreshKeyboardMapping</function>.
+<xref linkend='XRefreshKeyboardMapping' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRefreshKeyboardMapping</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrefreshkeyboardmapping'>
+<funcsynopsis id='XRefreshKeyboardMapping'>
<funcprototype>
<funcdef><function>XRefreshKeyboardMapping</function></funcdef>
<paramdef>XMappingEvent<parameter> *event_map</parameter></paramdef>
@@ -292,7 +292,7 @@ Specifies the mapping event that is to be used.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRefreshKeyboardMapping</function>
+<xref linkend='XRefreshKeyboardMapping' xrefstyle='select: title'/>
function refreshes the stored modifier and keymap information.
You usually call this function when a
<symbol>MappingNotify</symbol>
@@ -307,11 +307,11 @@ The result is to update Xlib's knowledge of the keyboard.
<!-- .LP -->
<!-- .sp -->
To obtain the uppercase and lowercase forms of a KeySym, use
-<function>XConvertCase</function>.
+<xref linkend='XConvertCase' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XConvertCase</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xconvertcase'>
+<funcsynopsis id='XConvertCase'>
<funcprototype>
<funcdef>void <function>XConvertCase</function></funcdef>
<paramdef>KeySym<parameter> keysym</parameter></paramdef>
@@ -357,7 +357,7 @@ Returns the uppercase form of keysym, or keysym.
<!-- .LP -->
<!-- .eM -->
The
-<function>XConvertCase</function>
+<xref linkend='XConvertCase' xrefstyle='select: title'/>
function returns the uppercase and lowercase forms of the specified Keysym,
if the KeySym is subject to case conversion;
otherwise, the specified KeySym is returned to both lower_return and
@@ -370,11 +370,11 @@ implementation-dependent.
<!-- .sp -->
KeySyms have string names as well as numeric codes.
To convert the name of the KeySym to the KeySym code, use
-<function>XStringToKeysym</function>.
+<xref linkend='XStringToKeysym' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XStringToKeysym</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstringtokeysym'>
+<funcsynopsis id='XStringToKeysym'>
<funcprototype>
<funcdef>KeySym <function>XStringToKeysym</function></funcdef>
<paramdef>char<parameter> *string</parameter></paramdef>
@@ -412,7 +412,7 @@ and the mechanisms by which Xlib obtains them is implementation-dependent.
If the KeySym name is not in the Host Portable Character Encoding,
the result is implementation-dependent.
If the specified string does not match a valid KeySym,
-<function>XStringToKeysym</function>
+<xref linkend='XStringToKeysym' xrefstyle='select: title'/>
returns
<symbol>NoSymbol</symbol>.
</para>
@@ -420,11 +420,11 @@ returns
<!-- .LP -->
<!-- .sp -->
To convert a KeySym code to the name of the KeySym, use
-<function>XKeysymToString</function>.
+<xref linkend='XKeysymToString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XKeysymToString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xkeysymtostring'>
+<funcsynopsis id='XKeysymToString'>
<funcprototype>
<funcdef>char *<function>XKeysymToString</function></funcdef>
<paramdef>KeySym<parameter> keysym</parameter></paramdef>
@@ -450,7 +450,7 @@ Specifies the KeySym that is to be (Fn.
The returned string is in a static area and must not be modified.
The returned string is in the Host Portable Character Encoding.
If the specified KeySym is not defined,
-<function>XKeysymToString</function>
+<xref linkend='XKeysymToString' xrefstyle='select: title'/>
returns a NULL.
</para>
<sect2 id="KeySym_Classification_Macros">
@@ -648,19 +648,19 @@ if the specified KeySym is a PF key.
</para>
</sect2>
</sect1>
-<sect1 id="Using_Latin_Keyboard_Event_Functions">
+<sect1 id='Using_Latin_1_Keyboard_Event_Functions'>
<title>Using Latin-1 Keyboard Event Functions</title>
<!-- .XS -->
<!-- (SN Using Latin-1 Keyboard Event Functions -->
<!-- .XE -->
<para>
<!-- .LP -->
-<link linkend="locales_and_internationalized_text_functions">Chapter 13</link>
+<link linkend='Locales_and_Internationalized_Text_Functions'>Chapter 13</link>
describes internationalized text input facilities,
but sometimes it is expedient to write an application that
only deals with Latin-1 characters and ASCII controls,
so Xlib provides a simple function for that purpose.
-<function>XLookupString</function>
+<xref linkend='XLookupString' xrefstyle='select: title'/>
handles the standard modifier semantics described in section 12.7.
This function does not use any of the input method facilities
described in chapter 13 and does not depend on the current locale.
@@ -669,11 +669,11 @@ described in chapter 13 and does not depend on the current locale.
<!-- .LP -->
<!-- .sp -->
To map a key event to an ISO Latin-1 string, use
-<function>XLookupString</function>.
+<xref linkend='XLookupString' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XLookupString</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xlookupstring'>
+<funcsynopsis id='XLookupString'>
<funcprototype>
<funcdef>int <function>XLookupString</function></funcdef>
<paramdef>XKeyEvent<parameter> *event_struct</parameter></paramdef>
@@ -747,19 +747,19 @@ structure or NULL.
<!-- .LP -->
<!-- .eM -->
The
-<function>XLookupString</function>
+<xref linkend='XLookupString' xrefstyle='select: title'/>
function translates a key event to a KeySym and a string.
The KeySym is obtained by using the standard interpretation of the
<symbol>Shift</symbol>,
<symbol>Lock</symbol>,
group, and numlock modifiers as defined in the X Protocol specification.
If the KeySym has been rebound (see
-<function>XRebindKeysym</function>),
+<xref linkend='XRebindKeysym' xrefstyle='select: title'/>),
the bound string will be stored in the buffer.
Otherwise, the KeySym is mapped, if possible, to an ISO Latin-1 character
or (if the Control modifier is on) to an ASCII control character,
and that character is stored in the buffer.
-<function>XLookupString</function>
+<xref linkend='XLookupString' xrefstyle='select: title'/>
returns the number of characters that are stored in the buffer.
</para>
<para>
@@ -770,7 +770,7 @@ the
structure records the state,
which is private to Xlib,
that needs preservation across calls to
-<function>XLookupString</function>
+<xref linkend='XLookupString' xrefstyle='select: title'/>
to implement compose processing.
The creation of
<structname>XComposeStatus</structname>
@@ -779,23 +779,23 @@ a portable program must pass NULL for this argument.
</para>
<para>
<!-- .LP -->
-<function>XLookupString</function>
+<xref linkend='XLookupString' xrefstyle='select: title'/>
depends on the cached keyboard information mentioned in the
previous section, so it is necessary to use
-<function>XRefreshKeyboardMapping</function>
+<xref linkend='XRefreshKeyboardMapping' xrefstyle='select: title'/>
to keep this information up-to-date.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To rebind the meaning of a KeySym for
-<function>XLookupString</function>,
+<xref linkend='XLookupString' xrefstyle='select: title'/>,
use
-<function>XRebindKeysym</function>.
+<xref linkend='XRebindKeysym' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRebindKeysym</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrebindkeysym'>
+<funcsynopsis id='XRebindKeysym'>
<funcprototype>
<funcdef><function>XRebindKeysym</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -856,7 +856,7 @@ Specifies the number of modifiers in the modifier list.
<listitem>
<para>
Specifies the string that is copied and will be returned by
-<function>XLookupString</function>.
+<xref linkend='XLookupString' xrefstyle='select: title'/>.
</para>
</listitem>
</varlistentry>
@@ -875,11 +875,11 @@ Specifies the number of bytes in the string argument.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRebindKeysym</function>
+<xref linkend='XRebindKeysym' xrefstyle='select: title'/>
function can be used to rebind the meaning of a KeySym for the client.
It does not redefine any key in the X server but merely
provides an easy way for long strings to be attached to keys.
-<function>XLookupString</function>
+<xref linkend='XLookupString' xrefstyle='select: title'/>
returns this string when the appropriate set of
modifier keys are pressed and when the KeySym would have been used for
the translation.
@@ -896,10 +896,10 @@ Note that you can rebind a KeySym that may not exist.
<para>
<!-- .LP -->
To allocate some memory you will never give back, use
-<function>Xpermalloc</function>.
+<xref linkend='Xpermalloc' xrefstyle='select: title'/>.
<indexterm significance="preferred"><primary>Xpermalloc</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xpermalloc'>
+<funcsynopsis id='Xpermalloc'>
<funcprototype>
<funcdef>char *<function>Xpermalloc</function></funcdef>
<paramdef>unsignedint<parameter> size</parameter></paramdef>
@@ -911,7 +911,7 @@ To allocate some memory you will never give back, use
<!-- .LP -->
<!-- .eM -->
The
-<function>Xpermalloc</function>
+<xref linkend='Xpermalloc' xrefstyle='select: title'/>
function allocates storage that can never be freed for the life of the
program. The memory is allocated with alignment for the C type double.
This function may provide some performance and space savings over
@@ -926,13 +926,13 @@ the standard operating system memory allocator.
<para>
<!-- .LP -->
To parse standard window geometry strings, use
-<function>XParseGeometry</function>.
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>.
<indexterm><primary>Window</primary><secondary>determining location</secondary></indexterm>
<indexterm significance="preferred"><primary>XParseGeometry</primary></indexterm>
</para>
<!-- .LP -->
<!-- .sM -->
-<funcsynopsis id='xparsegeometry'>
+<funcsynopsis id='XParseGeometry'>
<funcprototype>
<funcdef>int <function>XParseGeometry</function></funcdef>
<paramdef>char<parameter> *parsestring</parameter></paramdef>
@@ -1000,7 +1000,7 @@ Return the width and height determined.
<!-- .eM -->
By convention,
X applications use a standard string to indicate window size and placement.
-<function>XParseGeometry</function>
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>
makes it easier to conform to this standard because it allows you
to parse the standard window geometry.
Specifically, this function lets you parse strings of the form:
@@ -1025,7 +1025,7 @@ the result is implementation-dependent.
<para>
<!-- .LP -->
The
-<function>XParseGeometry</function>
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>
function returns a bitmask that indicates which of the four values (width,
height, xoffset, and yoffset) were actually found in the string
and whether the x and y values are negative.
@@ -1062,11 +1062,11 @@ you should place the window at the requested position.
<para>
<!-- .LP -->
To construct a window's geometry information, use
-<function>XWMGeometry</function>.
+<xref linkend='XWMGeometry' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XWMGeometry</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xwmgeometry'>
+<funcsynopsis id='XWMGeometry'>
<funcprototype>
<funcdef>int <function>XWMGeometry</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1200,9 +1200,9 @@ Returns the window gravity.
<!-- .LP -->
<!-- .eM -->
The
-<function>XWMGeometry</function>
+<xref linkend='XWMGeometry' xrefstyle='select: title'/>
function combines any geometry information (given in the format used by
-<function>XParseGeometry</function>)
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>)
specified by the user and by the calling program with size hints
(usually the ones to be stored in <property>WM_NORMAL_HINTS</property>) and returns the position,
size, and gravity
@@ -1220,7 +1220,7 @@ Otherwise, a base size of zero is assumed.
If no minimum size is set in the hints structure,
the base size is used.
A mask (in the form returned by
-<function>XParseGeometry</function>)
+<xref linkend='XParseGeometry' xrefstyle='select: title'/>)
that describes which values came from the user specification
and whether or not the position coordinates are relative
to the right and bottom edges is returned.
@@ -1300,11 +1300,11 @@ To create a new empty region, use
<!-- .eM -->
<!-- .sp -->
To generate a region from a polygon, use
-<function>XPolygonRegion</function>.
+<xref linkend='XPolygonRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPolygonRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xpolygonregion'>
+<funcsynopsis id='XPolygonRegion'>
<funcprototype>
<funcdef>Region <function>XPolygonRegion</function></funcdef>
<paramdef>XPoint<parameter> points[]</parameter></paramdef>
@@ -1354,21 +1354,21 @@ or
<!-- .LP -->
<!-- .eM -->
The
-<function>XPolygonRegion</function>
+<xref linkend='XPolygonRegion' xrefstyle='select: title'/>
function returns a region for the polygon defined by the points array.
For an explanation of fill_rule,
see
-<function>XCreateGC</function>.
+<xref linkend='XCreateGC' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To set the clip-mask of a GC to a region, use
-<function>XSetRegion</function>.
+<xref linkend='XSetRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSetRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsetregion'>
+<funcsynopsis id='XSetRegion'>
<funcprototype>
<funcdef><function>XSetRegion</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -1413,7 +1413,7 @@ Specifies the region.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSetRegion</function>
+<xref linkend='XSetRegion' xrefstyle='select: title'/>
function sets the clip-mask in the GC to the specified region.
The region is specified relative to the drawable's origin.
The resulting GC clip origin is implementation-dependent.
@@ -1424,11 +1424,11 @@ the region can be destroyed.
<!-- .LP -->
<!-- .sp -->
To deallocate the storage associated with a specified region, use
-<function>XDestroyRegion</function>.
+<xref linkend='XDestroyRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDestroyRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdestroyregion'>
+<funcsynopsis id='XDestroyRegion'>
<funcprototype>
<funcdef><function>XDestroyRegion</function></funcdef>
<paramdef>Region<parameter> r</parameter></paramdef>
@@ -1460,11 +1460,11 @@ Specifies the region.
<para>
<!-- .LP -->
To move a region by a specified amount, use
-<function>XOffsetRegion</function>.
+<xref linkend='XOffsetRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XOffsetRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xoffsetregion'>
+<funcsynopsis id='XOffsetRegion'>
<funcprototype>
<funcdef><function>XOffsetRegion</function></funcdef>
<paramdef>Region<parameter> r</parameter></paramdef>
@@ -1512,11 +1512,11 @@ which define the amount you want to (Dy the specified region.
<!-- .eM -->
<!-- .sp -->
To reduce a region by a specified amount, use
-<function>XShrinkRegion</function>.
+<xref linkend='XShrinkRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XShrinkRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xshrinkregion'>
+<funcsynopsis id='XShrinkRegion'>
<funcprototype>
<funcdef><function>XShrinkRegion</function></funcdef>
<paramdef>Region<parameter> r</parameter></paramdef>
@@ -1575,11 +1575,11 @@ and negative values expand the region.
<!-- .LP -->
<!-- .sp -->
To generate the smallest rectangle enclosing a region, use
-<function>XClipBox</function>.
+<xref linkend='XClipBox' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XClipBox</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xclipbox'>
+<funcsynopsis id='XClipBox'>
<funcprototype>
<funcdef><function>XClipBox</function></funcdef>
<paramdef>Region<parameter> r</parameter></paramdef>
@@ -1613,18 +1613,18 @@ Returns the smallest enclosing rectangle.
<!-- .LP -->
<!-- .eM -->
The
-<function>XClipBox</function>
+<xref linkend='XClipBox' xrefstyle='select: title'/>
function returns the smallest rectangle enclosing the specified region.
<!-- .sp -->
</para>
<para>
<!-- .LP -->
To compute the intersection of two regions, use
-<function>XIntersectRegion</function>.
+<xref linkend='XIntersectRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XIntersectRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xintersectregion'>
+<funcsynopsis id='XIntersectRegion'>
<funcprototype>
<funcdef><function>XIntersectRegion</function></funcdef>
<paramdef>Regionsra,srb,<parameter> dr_return</parameter></paramdef>
@@ -1669,11 +1669,11 @@ Returns the result of the computation.
<!-- .eM -->
<!-- .sp -->
To compute the union of two regions, use
-<function>XUnionRegion</function>.
+<xref linkend='XUnionRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUnionRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xunionregion'>
+<funcsynopsis id='XUnionRegion'>
<funcprototype>
<funcdef><function>XUnionRegion</function></funcdef>
<paramdef>Regionsra,srb,<parameter> dr_return</parameter></paramdef>
@@ -1718,11 +1718,11 @@ Returns the result of the computation.
<!-- .eM -->
<!-- .sp -->
To create a union of a source region and a rectangle, use
-<function>XUnionRectWithRegion</function>.
+<xref linkend='XUnionRectWithRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XUnionRectWithRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xunionrectwithregion'>
+<funcsynopsis id='XUnionRectWithRegion'>
<funcprototype>
<funcdef><function>XUnionRectWithRegion</function></funcdef>
<paramdef>XRectangle<parameter> *rectangle</parameter></paramdef>
@@ -1767,7 +1767,7 @@ Returns the destination region.
<!-- .LP -->
<!-- .eM -->
The
-<function>XUnionRectWithRegion</function>
+<xref linkend='XUnionRectWithRegion' xrefstyle='select: title'/>
function updates the destination region from a union of the specified rectangle
and the specified source region.
</para>
@@ -1775,11 +1775,11 @@ and the specified source region.
<!-- .LP -->
<!-- .sp -->
To subtract two regions, use
-<function>XSubtractRegion</function>.
+<xref linkend='XSubtractRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSubtractRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsubtractregion'>
+<funcsynopsis id='XSubtractRegion'>
<funcprototype>
<funcdef><function>XSubtractRegion</function></funcdef>
<paramdef>Regionsra,srb,<parameter> dr_return</parameter></paramdef>
@@ -1823,7 +1823,7 @@ Returns the result of the computation.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSubtractRegion</function>
+<xref linkend='XSubtractRegion' xrefstyle='select: title'/>
function subtracts srb from sra and stores the results in dr_return.
</para>
<para>
@@ -1831,11 +1831,11 @@ function subtracts srb from sra and stores the results in dr_return.
<!-- .sp -->
To calculate the difference between the union and intersection
of two regions, use
-<function>XXorRegion</function>.
+<xref linkend='XXorRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XXorRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xxorregion'>
+<funcsynopsis id='XXorRegion'>
<funcprototype>
<funcdef><function>XXorRegion</function></funcdef>
<paramdef>Regionsra,srb,<parameter> dr_return</parameter></paramdef>
@@ -1888,11 +1888,11 @@ Returns the result of the computation.
<para>
<!-- .LP -->
To determine if the specified region is empty, use
-<function>XEmptyRegion</function>.
+<xref linkend='XEmptyRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XEmptyRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xemptyregion'>
+<funcsynopsis id='XEmptyRegion'>
<funcprototype>
<funcdef>Bool <function>XEmptyRegion</function></funcdef>
<paramdef>Region<parameter> r</parameter></paramdef>
@@ -1915,7 +1915,7 @@ Specifies the region.
<!-- .LP -->
<!-- .eM -->
The
-<function>XEmptyRegion</function>
+<xref linkend='XEmptyRegion' xrefstyle='select: title'/>
function returns
<symbol>True</symbol>
if the region is empty.
@@ -1924,11 +1924,11 @@ if the region is empty.
<!-- .LP -->
<!-- .sp -->
To determine if two regions have the same offset, size, and shape, use
-<function>XEqualRegion</function>.
+<xref linkend='XEqualRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XEqualRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xequalregion'>
+<funcsynopsis id='XEqualRegion'>
<funcprototype>
<funcdef>Bool <function>XEqualRegion</function></funcdef>
<paramdef>Regionr1,<parameter> r2</parameter></paramdef>
@@ -1962,7 +1962,7 @@ Specify the two regions.
<!-- .LP -->
<!-- .eM -->
The
-<function>XEqualRegion</function>
+<xref linkend='XEqualRegion' xrefstyle='select: title'/>
function returns
<symbol>True</symbol>
if the two regions have the same offset, size, and shape.
@@ -1976,11 +1976,11 @@ if the two regions have the same offset, size, and shape.
<para>
<!-- .LP -->
To determine if a specified point resides in a specified region, use
-<function>XPointInRegion</function>.
+<xref linkend='XPointInRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPointInRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xpointinregion'>
+<funcsynopsis id='XPointInRegion'>
<funcprototype>
<funcdef>Bool <function>XPointInRegion</function></funcdef>
<paramdef>Region<parameter> r</parameter></paramdef>
@@ -2026,7 +2026,7 @@ Specify the x and y coordinates(Xy.
<!-- .LP -->
<!-- .eM -->
The
-<function>XPointInRegion</function>
+<xref linkend='XPointInRegion' xrefstyle='select: title'/>
function returns
<symbol>True</symbol>
if the point (x, y) is contained in the region r.
@@ -2035,11 +2035,11 @@ if the point (x, y) is contained in the region r.
<!-- .LP -->
<!-- .sp -->
To determine if a specified rectangle is inside a region, use
-<function>XRectInRegion</function>.
+<xref linkend='XRectInRegion' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRectInRegion</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrectinregion'>
+<funcsynopsis id='XRectInRegion'>
<funcprototype>
<funcdef>int <function>XRectInRegion</function></funcdef>
<paramdef>Region<parameter> r</parameter></paramdef>
@@ -2108,7 +2108,7 @@ Specify the width and height(Wh.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRectInRegion</function>
+<xref linkend='XRectInRegion' xrefstyle='select: title'/>
function returns
<symbol>RectangleIn</symbol>
if the rectangle is entirely in the specified region,
@@ -2148,11 +2148,11 @@ and can be accessed as a ring or as explicit buffers (numbered 0 through 7).
<!-- .LP -->
<!-- .sp -->
To store data in cut buffer 0, use
-<function>XStoreBytes</function>.
+<xref linkend='XStoreBytes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XStoreBytes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstorebytes'>
+<funcsynopsis id='XStoreBytes'>
<funcprototype>
<funcdef><function>XStoreBytes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2200,11 +2200,11 @@ The data can have embedded null characters
and need not be null-terminated.
The cut buffer's contents can be retrieved later by
any client calling
-<function>XFetchBytes</function>.
+<xref linkend='XFetchBytes' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
-<function>XStoreBytes</function>
+<xref linkend='XStoreBytes' xrefstyle='select: title'/>
can generate a
<errorname>BadAlloc</errorname>
error.
@@ -2213,11 +2213,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To store data in a specified cut buffer, use
-<function>XStoreBuffer</function>.
+<xref linkend='XStoreBuffer' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XStoreBuffer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xstorebuffer'>
+<funcsynopsis id='XStoreBuffer'>
<funcprototype>
<funcdef><function>XStoreBuffer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2279,7 +2279,7 @@ and need not be null-terminated.
</para>
<para>
<!-- .LP -->
-<function>XStoreBuffer</function>
+<xref linkend='XStoreBuffer' xrefstyle='select: title'/>
can generate a
<errorname>BadAlloc</errorname>
error.
@@ -2288,11 +2288,11 @@ error.
<!-- .LP -->
<!-- .sp -->
To return data from cut buffer 0, use
-<function>XFetchBytes</function>.
+<xref linkend='XFetchBytes' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFetchBytes</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfetchbytes'>
+<funcsynopsis id='XFetchBytes'>
<funcprototype>
<funcdef>char *<function>XFetchBytes</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2326,7 +2326,7 @@ Returns the number of bytes in the buffer.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFetchBytes</function>
+<xref linkend='XFetchBytes' xrefstyle='select: title'/>
function
returns the number of bytes in the nbytes_return argument,
if the buffer contains data.
@@ -2334,17 +2334,17 @@ Otherwise, the function
returns NULL and sets nbytes to 0.
The appropriate amount of storage is allocated and the pointer returned.
The client must free this storage when finished with it by calling
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To return data from a specified cut buffer, use
-<function>XFetchBuffer</function>.
+<xref linkend='XFetchBuffer' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFetchBuffer</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfetchbuffer'>
+<funcsynopsis id='XFetchBuffer'>
<funcprototype>
<funcdef>char *<function>XFetchBuffer</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2390,7 +2390,7 @@ Specifies the buffer (Fn.
<!-- .LP -->
<!-- .eM -->
The
-<function>XFetchBuffer</function>
+<xref linkend='XFetchBuffer' xrefstyle='select: title'/>
function returns zero to the nbytes_return argument
if there is no data in the buffer or if an invalid
buffer is specified.
@@ -2399,11 +2399,11 @@ buffer is specified.
<!-- .LP -->
<!-- .sp -->
To rotate the cut buffers, use
-<function>XRotateBuffers</function>.
+<xref linkend='XRotateBuffers' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XRotateBuffers</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xrotatebuffers'>
+<funcsynopsis id='XRotateBuffers'>
<funcprototype>
<funcdef><function>XRotateBuffers</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2437,13 +2437,13 @@ Specifies how much to rotate the cut buffers.
<!-- .LP -->
<!-- .eM -->
The
-<function>XRotateBuffers</function>
+<xref linkend='XRotateBuffers' xrefstyle='select: title'/>
function rotates the cut
buffers, such that buffer 0 becomes buffer n,
buffer 1 becomes n + 1 mod 8, and so on.
This cut buffer numbering is global to the display.
Note that
-<function>XRotateBuffers</function>
+<xref linkend='XRotateBuffers' xrefstyle='select: title'/>
generates
<errorname>BadMatch</errorname>
errors if any of the eight buffers have not been created.
@@ -2519,11 +2519,11 @@ typedef struct {
<!-- .eM -->
To obtain a list of visual information structures that match a specified
template, use
-<function>XGetVisualInfo</function>.
+<xref linkend='XGetVisualInfo' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetVisualInfo</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetvisualinfo'>
+<funcsynopsis id='XGetVisualInfo'>
<funcprototype>
<funcdef>XVisualInfo *<function>XGetVisualInfo</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2580,25 +2580,25 @@ Returns the number of matching visual structures.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetVisualInfo</function>
+<xref linkend='XGetVisualInfo' xrefstyle='select: title'/>
function returns a list of visual structures that have attributes
equal to the attributes specified by vinfo_template.
If no visual structures match the template using the specified vinfo_mask,
-<function>XGetVisualInfo</function>
+<xref linkend='XGetVisualInfo' xrefstyle='select: title'/>
returns a NULL.
To free the data returned by this function, use
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To obtain the visual information that matches the specified depth and
class of the screen, use
-<function>XMatchVisualInfo</function>.
+<xref linkend='XMatchVisualInfo' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XMatchVisualInfo</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xmatchvisualinfo'>
+<funcsynopsis id='XMatchVisualInfo'>
<funcprototype>
<funcdef>Status <function>XMatchVisualInfo</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2665,16 +2665,16 @@ Returns the matched visual information.
<!-- .LP -->
<!-- .eM -->
The
-<function>XMatchVisualInfo</function>
+<xref linkend='XMatchVisualInfo' xrefstyle='select: title'/>
function returns the visual information for a visual that matches the specified
depth and class for a screen.
Because multiple visuals that match the specified depth and class can exist,
the exact visual chosen is undefined.
If a visual is found,
-<function>XMatchVisualInfo</function>
+<xref linkend='XMatchVisualInfo' xrefstyle='select: title'/>
returns nonzero and the information on the visual to vinfo_return.
Otherwise, when a visual is not found,
-<function>XMatchVisualInfo</function>
+<xref linkend='XMatchVisualInfo' xrefstyle='select: title'/>
returns zero.
</para>
</sect1>
@@ -2707,9 +2707,9 @@ processing.
Rather, they are here to provide minimal functions on screen format
images.
The basic operations for getting and putting images are
-<function>XGetImage</function>
+<xref linkend='XGetImage' xrefstyle='select: title'/>
and
-<function>XPutImage</function>.
+<xref linkend='XPutImage' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
@@ -2729,7 +2729,7 @@ Other members (for example, byte order, bitmap_unit, and so forth)
are characteristics of both the image and the server.
If these members
differ between the image and the server,
-<function>XPutImage</function>
+<xref linkend='XPutImage' xrefstyle='select: title'/>
makes the appropriate conversions.
The first byte of the first line of
plane n must be located at the address (data + (n * height * bytes_per_line)).
@@ -2744,11 +2744,11 @@ see <link linkend="Transferring_Images_between_Client_and_Server">section 8.7</l
To allocate an
<structname>XImage</structname>
structure and initialize it with image format values from a display, use
-<function>XCreateImage</function>.
+<xref linkend='XCreateImage' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateImage</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreateimage'>
+<funcsynopsis id='XCreateImage'>
<funcprototype>
<funcdef>XImage *<function>XCreateImage</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -2880,7 +2880,7 @@ the start of one scanline and the start of the next.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateImage</function>
+<xref linkend='XCreateImage' xrefstyle='select: title'/>
function allocates the memory needed for an
<structname>XImage</structname>
structure for the
@@ -2903,12 +2903,12 @@ in memory and calculates the value of bytes_per_line itself.
<para>
<!-- .LP -->
Note that when the image is created using
-<function>XCreateImage</function>,
-<function>XGetImage</function>,
+<xref linkend='XCreateImage' xrefstyle='select: title'/>,
+<xref linkend='XGetImage' xrefstyle='select: title'/>,
or
-<function>XSubImage</function>,
+<xref linkend='XSubImage' xrefstyle='select: title'/>,
the destroy procedure that the
-<function>XDestroyImage</function>
+<xref linkend='XDestroyImage' xrefstyle='select: title'/>
function calls frees both the image structure
and the data pointed to by the image structure.
</para>
@@ -2927,11 +2927,11 @@ in the image object and are defined in
<!-- .LP -->
<!-- .sp -->
To obtain a pixel value in an image, use
-<function>XGetPixel</function>.
+<xref linkend='XGetPixel' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XGetPixel</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xgetpixel'>
+<funcsynopsis id='XGetPixel'>
<funcprototype>
<funcdef>unsigned long <function>XGetPixel</function></funcdef>
<paramdef>XImage<parameter> *ximage</parameter></paramdef>
@@ -2977,7 +2977,7 @@ Specify the x and y coordinates.
<!-- .LP -->
<!-- .eM -->
The
-<function>XGetPixel</function>
+<xref linkend='XGetPixel' xrefstyle='select: title'/>
function returns the specified pixel from the named image.
The pixel value is returned in normalized format (that is,
the least significant byte of the long is the least significant byte
@@ -2988,11 +2988,11 @@ The image must contain the x and y coordinates.
<!-- .LP -->
<!-- .sp -->
To set a pixel value in an image, use
-<function>XPutPixel</function>.
+<xref linkend='XPutPixel' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XPutPixel</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xputpixel'>
+<funcsynopsis id='XPutPixel'>
<funcprototype>
<funcdef><function>XPutPixel</function></funcdef>
<paramdef>XImage<parameter> *ximage</parameter></paramdef>
@@ -3049,7 +3049,7 @@ Specifies the new pixel value.
<!-- .LP -->
<!-- .eM -->
The
-<function>XPutPixel</function>
+<xref linkend='XPutPixel' xrefstyle='select: title'/>
function overwrites the pixel in the named image with the specified pixel value.
The input pixel value must be in normalized format
(that is, the least significant byte of the long is the least significant
@@ -3060,11 +3060,11 @@ The image must contain the x and y coordinates.
<!-- .LP -->
<!-- .sp -->
To create a subimage, use
-<function>XSubImage</function>.
+<xref linkend='XSubImage' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSubImage</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsubimage'>
+<funcsynopsis id='XSubImage'>
<funcprototype>
<funcdef>XImage *<function>XSubImage</function></funcdef>
<paramdef>XImage<parameter> *ximage</parameter></paramdef>
@@ -3132,7 +3132,7 @@ Specifies the height of the new subimage, in pixels.
<!-- .LP -->
<!-- .eM -->
The
-<function>XSubImage</function>
+<xref linkend='XSubImage' xrefstyle='select: title'/>
function creates a new image that is a subsection of an existing one.
It allocates the memory necessary for the new
<structname>XImage</structname>
@@ -3146,11 +3146,11 @@ and subimage_height.
<!-- .LP -->
<!-- .sp -->
To increment each pixel in an image by a constant value, use
-<function>XAddPixel</function>.
+<xref linkend='XAddPixel' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XAddPixel</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xaddpixel'>
+<funcsynopsis id='XAddPixel'>
<funcprototype>
<funcdef><function>XAddPixel</function></funcdef>
<paramdef>XImage<parameter> *ximage</parameter></paramdef>
@@ -3184,7 +3184,7 @@ Specifies the constant value that is to be added.
<!-- .LP -->
<!-- .eM -->
The
-<function>XAddPixel</function>
+<xref linkend='XAddPixel' xrefstyle='select: title'/>
function adds a constant value to every pixel in an image.
It is useful when you have a base pixel value from allocating
color resources and need to manipulate the image to that form.
@@ -3193,13 +3193,13 @@ color resources and need to manipulate the image to that form.
<!-- .LP -->
<!-- .sp -->
To deallocate the memory allocated in a previous call to
-<function>XCreateImage</function>,
+<xref linkend='XCreateImage' xrefstyle='select: title'/>,
use
-<function>XDestroyImage</function>.
+<xref linkend='XDestroyImage' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDestroyImage</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdestroyimage'>
+<funcsynopsis id='XDestroyImage'>
<funcprototype>
<funcdef><function>XDestroyImage</function></funcdef>
<paramdef>XImage *<parameter>ximage</parameter></paramdef>
@@ -3222,7 +3222,7 @@ Specifies the image.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDestroyImage</function>
+<xref linkend='XDestroyImage' xrefstyle='select: title'/>
function deallocates the memory associated with the
<structname>XImage</structname>
structure.
@@ -3230,10 +3230,10 @@ structure.
<para>
<!-- .LP -->
Note that when the image is created using
-<function>XCreateImage</function>,
-<function>XGetImage</function>,
+<xref linkend='XCreateImage' xrefstyle='select: title'/>,
+<xref linkend='XGetImage' xrefstyle='select: title'/>,
or
-<function>XSubImage</function>,
+<xref linkend='XSubImage' xrefstyle='select: title'/>,
the destroy procedure that this macro calls
frees both the image structure and the data pointed to by the image structure.
</para>
@@ -3282,11 +3282,11 @@ The bitmap unit is 8.
<!-- .LP -->
<!-- .sp -->
To read a bitmap from a file and store it in a pixmap, use
-<function>XReadBitmapFile</function>.
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XReadBitmapFile</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xreadbitmapfile'>
+<funcsynopsis id='XReadBitmapFile'>
<funcprototype>
<funcdef>int <function>XReadBitmapFile</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3388,13 +3388,13 @@ Return the hotspot coordinates.
<!-- .LP -->
<!-- .eM -->
The
-<function>XReadBitmapFile</function>
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>
function reads in a file containing a bitmap.
The file is parsed in the encoding of the current locale.
The ability to read other than the standard format
is implementation-dependent.
If the file cannot be opened,
-<function>XReadBitmapFile</function>
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>
returns
<returnvalue>BitmapOpenFailed</returnvalue>.
If the file can be opened but does not contain valid bitmap data,
@@ -3409,23 +3409,23 @@ it returns
</para>
<para>
<!-- .LP -->
-<function>XReadBitmapFile</function>
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>
returns the bitmap's height and width, as read
from the file, to width_return and height_return.
It then creates a pixmap of the appropriate size,
reads the bitmap data from the file into the pixmap,
and assigns the pixmap to the caller's variable bitmap.
The caller must free the bitmap using
-<function>XFreePixmap</function>
+<xref linkend='XFreePixmap' xrefstyle='select: title'/>
when finished.
If <emphasis remap='I'>name</emphasis>_x_hot and <emphasis remap='I'>name</emphasis>_y_hot exist,
-<function>XReadBitmapFile</function>
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>
returns them to x_hot_return and y_hot_return;
otherwise, it returns &minus;1,&minus;1.
</para>
<para>
<!-- .LP -->
-<function>XReadBitmapFile</function>
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadDrawable</errorname>,
@@ -3437,11 +3437,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To read a bitmap from a file and return it as data, use
-<function>XReadBitmapFileData</function>.
+<xref linkend='XReadBitmapFileData' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XReadBitmapFileData</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xreadbitmapfiledata'>
+<funcsynopsis id='XReadBitmapFileData'>
<funcprototype>
<funcdef>int <function>XReadBitmapFileData</function></funcdef>
<paramdef>char<parameter> *filename</parameter></paramdef>
@@ -3520,25 +3520,25 @@ Return the hotspot coordinates.
<!-- .LP -->
<!-- .eM -->
The
-<function>XReadBitmapFileData</function>
+<xref linkend='XReadBitmapFileData' xrefstyle='select: title'/>
function reads in a file containing a bitmap, in the same manner as
-<function>XReadBitmapFile</function>,
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>,
but returns the data directly rather than creating a pixmap in the server.
The bitmap data is returned in data_return; the client must free this
storage when finished with it by calling
-<function>XFree</function>.
+<xref linkend='XFree' xrefstyle='select: title'/>.
The status and other return values are the same as for
-<function>XReadBitmapFile</function>.
+<xref linkend='XReadBitmapFile' xrefstyle='select: title'/>.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To write out a bitmap from a pixmap to a file, use
-<function>XWriteBitmapFile</function>.
+<xref linkend='XWriteBitmapFile' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XWriteBitmapFile</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xwritebitmapfile'>
+<funcsynopsis id='XWriteBitmapFile'>
<funcprototype>
<funcdef>int <function>XWriteBitmapFile</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3629,7 +3629,7 @@ in the file.
<!-- .LP -->
<!-- .eM -->
The
-<function>XWriteBitmapFile</function>
+<xref linkend='XWriteBitmapFile' xrefstyle='select: title'/>
function writes a bitmap out to a file in the X Version 11 format.
The name used in the output file is derived from the file name
by deleting the directory prefix.
@@ -3638,19 +3638,19 @@ If the file cannot be opened for writing,
it returns
<returnvalue>BitmapOpenFailed</returnvalue>.
If insufficient memory is allocated,
-<function>XWriteBitmapFile</function>
+<xref linkend='XWriteBitmapFile' xrefstyle='select: title'/>
returns
<returnvalue>BitmapNoMemory</returnvalue>;
otherwise, on no error,
it returns
<returnvalue>BitmapSuccess</returnvalue>.
If x_hot and y_hot are not &minus;1, &minus;1,
-<function>XWriteBitmapFile</function>
+<xref linkend='XWriteBitmapFile' xrefstyle='select: title'/>
writes them out as the hotspot coordinates for the bitmap.
</para>
<para>
<!-- .LP -->
-<function>XWriteBitmapFile</function>
+<xref linkend='XWriteBitmapFile' xrefstyle='select: title'/>
can generate
<errorname>BadDrawable</errorname>
and
@@ -3661,11 +3661,11 @@ errors.
<!-- .LP -->
<!-- .sp -->
To create a pixmap and then store bitmap-format data into it, use
-<function>XCreatePixmapFromBitmapData</function>.
+<xref linkend='XCreatePixmapFromBitmapData' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreatePixmapFromBitmapData</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatepixmapfrombitmapdata'>
+<funcsynopsis id='XCreatePixmapFromBitmapData'>
<funcprototype>
<funcdef>Pixmap <function>XCreatePixmapFromBitmapData</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3766,9 +3766,9 @@ Specifies the depth of the pixmap.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreatePixmapFromBitmapData</function>
+<xref linkend='XCreatePixmapFromBitmapData' xrefstyle='select: title'/>
function creates a pixmap of the given depth and then does a bitmap-format
-<function>XPutImage</function>
+<xref linkend='XPutImage' xrefstyle='select: title'/>
of the data into it.
The depth must be supported by the screen of the specified drawable,
or a
@@ -3777,7 +3777,7 @@ error results.
</para>
<para>
<!-- .LP -->
-<function>XCreatePixmapFromBitmapData</function>
+<xref linkend='XCreatePixmapFromBitmapData' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>,
<errorname>BadDrawable</errorname>,
@@ -3790,14 +3790,14 @@ errors.
<!-- .LP -->
<!-- .sp -->
To include a bitmap written out by
-<function>XWriteBitmapFile</function>
+<xref linkend='XWriteBitmapFile' xrefstyle='select: title'/>
<indexterm><primary>XWriteBitmapFile</primary></indexterm>
in a program directly, as opposed to reading it in every time at run time, use
-<function>XCreateBitmapFromData</function>.
+<xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XCreateBitmapFromData</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xcreatebitmapfromdata'>
+<funcsynopsis id='XCreateBitmapFromData'>
<funcprototype>
<funcdef>Pixmap <function>XCreateBitmapFromData</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3865,11 +3865,11 @@ Specify the width and height.
<!-- .LP -->
<!-- .eM -->
The
-<function>XCreateBitmapFromData</function>
+<xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/>
function allows you to include in your C program (using
<code>#include</code>)
a bitmap file that was written out by
-<function>XWriteBitmapFile</function>
+<xref linkend='XWriteBitmapFile' xrefstyle='select: title'/>
(X version 11 format only) without reading in the bitmap file.
The following example creates a gray bitmap:
</para>
@@ -3885,17 +3885,17 @@ bitmap = XCreateBitmapFromData(display, window, gray_bits, gray_width, gray_heig
<para>
<!-- .LP -->
If insufficient working storage was allocated,
-<function>XCreateBitmapFromData</function>
+<xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/>
returns
<symbol>None</symbol>.
It is your responsibility to free the
bitmap using
-<function>XFreePixmap</function>
+<xref linkend='XFreePixmap' xrefstyle='select: title'/>
when finished.
</para>
<para>
<!-- .LP -->
-<function>XCreateBitmapFromData</function>
+<xref linkend='XCreateBitmapFromData' xrefstyle='select: title'/>
can generate
<errorname>BadAlloc</errorname>
and
@@ -3939,11 +3939,11 @@ The symbols used are in
<!-- .LP -->
<!-- .sp -->
To save a data value that corresponds to a resource ID and context type, use
-<function>XSaveContext</function>.
+<xref linkend='XSaveContext' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XSaveContext</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xsavecontext'>
+<funcsynopsis id='XSaveContext'>
<funcprototype>
<funcdef>int <function>XSaveContext</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -3999,10 +3999,10 @@ Specifies the data to be associated with the window and type.
<!-- .LP -->
<!-- .eM -->
If an entry with the specified resource ID and type already exists,
-<function>XSaveContext</function>
+<xref linkend='XSaveContext' xrefstyle='select: title'/>
overrides it with the specified context.
The
-<function>XSaveContext</function>
+<xref linkend='XSaveContext' xrefstyle='select: title'/>
function returns a nonzero error code if an error has occurred
and zero otherwise.
Possible errors are
@@ -4013,11 +4013,11 @@ Possible errors are
<!-- .LP -->
<!-- .sp -->
To get the data associated with a resource ID and type, use
-<function>XFindContext</function>.
+<xref linkend='XFindContext' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XFindContext</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xfindcontext'>
+<funcsynopsis id='XFindContext'>
<funcprototype>
<funcdef>int <function>XFindContext</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4075,7 +4075,7 @@ Returns the data.
Because it is a return value,
the data is a pointer.
The
-<function>XFindContext</function>
+<xref linkend='XFindContext' xrefstyle='select: title'/>
function returns a nonzero error code if an error has occurred
and zero otherwise.
Possible errors are
@@ -4086,11 +4086,11 @@ Possible errors are
<!-- .LP -->
<!-- .sp -->
To delete an entry for a given resource ID and type, use
-<function>XDeleteContext</function>.
+<xref linkend='XDeleteContext' xrefstyle='select: title'/>.
</para>
<indexterm significance="preferred"><primary>XDeleteContext</primary></indexterm>
<!-- .sM -->
-<funcsynopsis id='xdeletecontext'>
+<funcsynopsis id='XDeleteContext'>
<funcprototype>
<funcdef>int <function>XDeleteContext</function></funcdef>
<paramdef>Display<parameter> *display</parameter></paramdef>
@@ -4135,22 +4135,22 @@ Specifies the context type to which the data belongs.
<!-- .LP -->
<!-- .eM -->
The
-<function>XDeleteContext</function>
+<xref linkend='XDeleteContext' xrefstyle='select: title'/>
function deletes the entry for the given resource ID
and type from the data structure.
This function returns the same error codes that
-<function>XFindContext</function>
+<xref linkend='XFindContext' xrefstyle='select: title'/>
returns if called with the same arguments.
-<function>XDeleteContext</function>
+<xref linkend='XDeleteContext' xrefstyle='select: title'/>
does not free the data whose address was saved.
</para>
<para>
<!-- .LP -->
<!-- .sp -->
To create a unique context type that may be used in subsequent calls to
-<function>XSaveContext</function>
+<xref linkend='XSaveContext' xrefstyle='select: title'/>
and
-<function>XFindContext</function>,
+<xref linkend='XFindContext' xrefstyle='select: title'/>,
use
<function>XUniqueContext</function>.
</para>
diff --git a/libX11/specs/libX11/credits.xml b/libX11/specs/libX11/credits.xml
index 753a6cce2..c8fdfecb4 100644
--- a/libX11/specs/libX11/credits.xml
+++ b/libX11/specs/libX11/credits.xml
@@ -17,9 +17,7 @@ and recognition for their work on Xlib.
Our apologies to anyone inadvertently overlooked.
</para>
<simplesect>
-<title>
-Release 1
-</title>
+<title>Release 1</title>
<para>
Our thanks does to Ron Newman (MIT Project Athena),
who contributed substantially to the
@@ -96,9 +94,7 @@ and IBM for providing the environment where it could happen.
</para>
</simplesect>
<simplesect>
-<title>
-Release 4
-</title>
+<title>Release 4</title>
<para>
Our thanks go to Jim Fulton (MIT X Consortium) for designing and
specifying the new Xlib functions for Inter-Client Communication
@@ -111,9 +107,7 @@ for their much-appreciated efforts in reviewing the changes.
</para>
</simplesect>
<simplesect>
-<title>
-Release 5
-</title>
+<title>Release 5</title>
<para>
The principal authors of the Input Method facilities are
Vania Joloboff (Open Software Foundation) and Bill McMahon (Hewlett-Packard).
@@ -171,9 +165,7 @@ number of small errors.
</para>
</simplesect>
<simplesect>
-<title>
-Release 6
-</title>
+<title>Release 6</title>
<para>
Stephen Gildea (X Consortium) authored the threads support.
Ovais Ashraf (Sun) and Greg Olsen (Sun) contributed substantially
diff --git a/libX11/specs/libX11/glossary.xml b/libX11/specs/libX11/glossary.xml
index 0ad46b73c..51fa30293 100644
--- a/libX11/specs/libX11/glossary.xml
+++ b/libX11/specs/libX11/glossary.xml
@@ -1,1764 +1,1754 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
- "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<glossary id='glossary'>
-<title>Glossary</title>
-<glossentry id="glossary:Access_control_list">
- <glossterm>Access control list</glossterm>
-<indexterm significance="preferred"><primary>Access control list</primary></indexterm>
- <glossdef>
- <para>
-X maintains a list of hosts from which client programs can be run.
-By default,
-only programs on the local host and hosts specified in an initial list read
-by the server can use the display.
-This access control list can be changed by clients on the local host.
-Some server implementations can also implement other authorization mechanisms
-in addition to or in place of this mechanism.
-The action of this mechanism can be conditional based on the authorization
-protocol name and data received by the server at connection setup.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Active_grab">
- <glossterm>Active grab</glossterm>
-<indexterm significance="preferred"><primary>Active grab</primary></indexterm>
- <glossdef>
- <para>
-A grab is active when the pointer or keyboard is actually owned by the
-single grabbing client.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Ancestors">
- <glossterm>Ancestors</glossterm>
-<indexterm significance="preferred"><primary>Ancestors</primary></indexterm>
- <glossdef>
- <para>
-If W is an inferior of A, then A is an ancestor of W.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Atom">
- <glossterm>Atom</glossterm>
-<indexterm significance="preferred"><primary>Atom</primary></indexterm>
- <glossdef>
- <para>
-An atom is a unique ID corresponding to a string name.
-Atoms are used to identify properties, types, and selections.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Background">
- <glossterm>Background</glossterm>
-<indexterm significance="preferred"><primary>Background</primary></indexterm>
- <glossdef>
- <para>
-An
-<symbol>InputOutput</symbol>
-window can have a background, which is defined as a pixmap.
-When regions of the window have their contents lost
-or invalidated,
-the server automatically tiles those regions with the background.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Backing_store">
- <glossterm>Backing store</glossterm>
-<indexterm significance="preferred"><primary>Backing store</primary></indexterm>
- <glossdef>
- <para>
-When a server maintains the contents of a window,
-the pixels saved off-screen are known as a backing store.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Base_font_name">
- <glossterm>Base font name</glossterm>
-<indexterm significance="preferred"><primary>Base font name</primary></indexterm>
- <glossdef>
- <para>
-A font name used to select a family of fonts whose members may be encoded
-in various charsets.
-The
-<structfield>CharSetRegistry</structfield>
-and
-<structfield>CharSetEncoding</structfield>
-fields of an <acronym>XLFD</acronym> name identify the charset of the font.
-A base font name may be a full <acronym>XLFD</acronym> name, with all fourteen '-' delimiters,
-or an abbreviated <acronym>XLFD</acronym> name containing only the first 12 fields of an <acronym>XLFD</acronym> name,
-up to but not including
-<structfield>CharSetRegistry</structfield>,
-with or without the thirteenth '-', or a non-<acronym>XLFD</acronym> name.
-Any <acronym>XLFD</acronym> fields may contain wild cards.
-</para>
- <para>
-When creating an
-<type>XFontSet</type>,
-Xlib accepts from the client a list of one or more base font names
-which select one or more font families.
-They are combined with charset names obtained from the encoding of the locale
-to load the fonts required to render text.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Bit_gravity">
- <glossterm>Bit gravity</glossterm>
-<indexterm significance="preferred"><primary>Bit</primary><secondary>gravity</secondary></indexterm>
- <glossdef>
- <para>
-When a window is resized,
-the contents of the window are not necessarily discarded.
-It is possible to request that the server relocate the previous contents
-to some region of the window (though no guarantees are made).
-This attraction of window contents for some location of
-a window is known as bit gravity.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Bit_plane">
- <glossterm>Bit plane</glossterm>
-<indexterm significance="preferred"><primary>Bit</primary><secondary>plane</secondary></indexterm>
- <glossdef>
- <para>
-When a pixmap or window is thought of as a stack of bitmaps,
-each bitmap is called a bit plane or plane.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Bitmap">
- <glossterm>Bitmap</glossterm>
-<indexterm significance="preferred"><primary>Bitmap</primary></indexterm>
- <glossdef>
- <para>
-A bitmap is a <glossterm linkend="glossary:Pixmap">pixmap</glossterm> of depth one.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Border">
- <glossterm>Border</glossterm>
-<indexterm significance="preferred"><primary>Border</primary></indexterm>
- <glossdef>
- <para>
-An
-<symbol>InputOutput</symbol>
-window can have a border of equal thickness on all four sides of the window.
-The contents of the border are defined by a pixmap,
-and the server automatically maintains the contents of the border.
-Exposure events are never generated for border regions.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Button_grabbing">
- <glossterm>Button grabbing</glossterm>
-<indexterm significance="preferred"><primary>Button</primary><secondary>grabbing</secondary></indexterm>
- <glossdef>
- <para>
-Buttons on the pointer can be passively grabbed by a client.
-When the button is pressed,
-the pointer is then actively grabbed by the client.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Byte_order">
- <glossterm>Byte order</glossterm>
-<indexterm significance="preferred"><primary>Byte</primary><secondary>order</secondary></indexterm>
- <glossdef>
- <para>
-For image (pixmap/bitmap) data,
-the server defines the byte order,
-and clients with different native byte ordering must swap bytes as
-necessary.
-For all other parts of the protocol,
-the client defines the byte order,
-and the server swaps bytes as necessary.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Character">
- <glossterm>Character</glossterm>
-<indexterm significance="preferred"><primary>Character</primary></indexterm>
- <glossdef>
- <para>
-A member of a set of elements used for the organization,
-control, or representation of text (ISO2022, as adapted by XPG3).
-Note that in ISO2022 terms, a character is not bound to a coded value
-until it is identified as part of a coded character set.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Character_glyph">
- <glossterm>Character glyph</glossterm>
-<indexterm significance="preferred"><primary>Character glyph</primary></indexterm>
- <glossdef>
- <para>
-The abstract graphical symbol for a character.
-Character glyphs may or may not map one-to-one to font glyphs,
-and may be context-dependent, varying with the adjacent characters.
-Multiple characters may map to a single character glyph.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Character_set">
- <glossterm>Character set</glossterm>
-<indexterm significance="preferred"><primary>Character set</primary></indexterm>
- <glossdef>
- <para>
-A collection of characters.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Charset">
- <glossterm>Charset</glossterm>
-<indexterm significance="preferred"><primary>Charset</primary></indexterm>
- <glossdef>
- <para>
-An encoding with a uniform, state-independent mapping from characters
-to codepoints.
-A coded character set.
-</para>
- <para>
-For display in X,
-there can be a direct mapping from a charset to one font,
-if the width of all characters in the charset is either one or two bytes.
-A text string encoded in an encoding such as Shift-JIS cannot be passed
-directly to the X server, because the text imaging requests accept only
-single-width charsets (either 8 or 16 bits).
-Charsets which meet these restrictions can serve as ``font charsets''.
-Font charsets strictly speaking map font indices to font glyphs,
-not characters to character glyphs.
-</para>
- <para>
-Note that a single font charset is sometimes used as the encoding of a locale,
-for example, ISO8859-1.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Children">
- <glossterm>Children</glossterm>
-<indexterm significance="preferred"><primary>Children</primary></indexterm>
- <glossdef>
- <para>
-The children of a window are its first-level subwindows.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Class">
- <glossterm>Class</glossterm>
-<indexterm significance="preferred"><primary>Class</primary></indexterm>
- <glossdef>
- <para>
-Windows can be of different classes or types.
-See the entries for
-<glossterm linkend="glossary:InputOnly_window">InputOnly</glossterm>
-and
-<glossterm linkend="glossary:InputOutput_window">InputOutput</glossterm>
-windows for further information about valid window types.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Client">
- <glossterm>Client</glossterm>
-<indexterm significance="preferred"><primary>Client</primary></indexterm>
- <glossdef>
- <para>
-An application program connects to the window system server by some
-interprocess communication (<acronym>IPC</acronym>) path, such as a <acronym>TCP</acronym> connection or a
-shared memory buffer.
-This program is referred to as a client of the window system server.
-More precisely,
-the client is the <acronym>IPC</acronym> path itself.
-A program with multiple paths open to the server is viewed as
-multiple clients by the protocol.
-Resource lifetimes are controlled by
-connection lifetimes, not by program lifetimes.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Clipping_region">
- <glossterm>Clipping region</glossterm>
-<indexterm significance="preferred"><primary>Clipping region</primary></indexterm>
- <glossdef>
- <para>
-In a graphics context,
-a bitmap or list of rectangles can be specified
-to restrict output to a particular region of the window.
-The image defined by the bitmap or rectangles is called a clipping region.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Coded_character">
- <glossterm>Coded character</glossterm>
-<indexterm significance="preferred"><primary>Coded character</primary></indexterm>
- <glossdef>
- <para>
-A character bound to a codepoint.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Coded_character_set">
- <glossterm>Coded character set</glossterm>
-<indexterm significance="preferred"><primary>Coded character set</primary></indexterm>
- <glossdef>
- <para>
-A set of unambiguous rules that establishes a character set
-and the one-to-one relationship between each character of the set
-and its bit representation.
-(ISO2022, as adapted by XPG3)
-A definition of a one-to-one mapping of a set of characters to a set of
-codepoints.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Codepoint">
- <glossterm>Codepoint</glossterm>
-<indexterm significance="preferred"><primary>Codepoint</primary></indexterm>
- <glossdef>
- <para>
-The coded representation of a single character in a coded character set.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Colormap">
- <glossterm>Colormap</glossterm>
-<indexterm significance="preferred"><primary>Colormap</primary></indexterm>
- <glossdef>
- <para>
-A colormap consists of a set of entries defining color values.
-The colormap associated with a window is used to display the contents of
-the window; each pixel value indexes the colormap to produce an <acronym>RGB</acronym> value
-that drives the guns of a monitor.
-Depending on hardware limitations,
-one or more colormaps can be installed at one time so
-that windows associated with those maps display with true colors.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Connection">
- <glossterm>Connection</glossterm>
-<indexterm significance="preferred"><primary>Connection</primary></indexterm>
- <glossdef>
- <para>
-The <acronym>IPC</acronym> path between the server and client program is known as a connection.
-A client program typically (but not necessarily) has one
-connection to the server over which requests and events are sent.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Containment">
- <glossterm>Containment</glossterm>
-<indexterm significance="preferred"><primary>Containment</primary></indexterm>
- <glossdef>
- <para>
-A window contains the pointer if the window is viewable and the
-hotspot of the cursor is within a visible region of the window or a
-visible region of one of its inferiors.
-The border of the window is included as part of the window for containment.
-The pointer is in a window if the window contains the pointer
-but no inferior contains the pointer.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Coordinate_system">
- <glossterm>Coordinate system</glossterm>
-<indexterm significance="preferred"><primary>Coordinate system</primary></indexterm>
- <glossdef>
- <para>
-The coordinate system has X horizontal and Y vertical,
-with the origin [0, 0] at the upper left.
-Coordinates are integral and coincide with pixel centers.
-Each window and pixmap has its own coordinate system.
-For a window,
-the origin is inside the border at the inside upper-left corner.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Cursor">
- <glossterm>Cursor</glossterm>
-<indexterm significance="preferred"><primary>Cursor</primary></indexterm>
- <glossdef>
- <para>
-A cursor is the visible shape of the pointer on a screen.
-It consists of a hotspot, a source bitmap, a shape bitmap,
-and a pair of colors.
-The cursor defined for a window controls the visible
-appearance when the pointer is in that window.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Depth">
- <glossterm>Depth</glossterm>
-<indexterm significance="preferred"><primary>Depth</primary></indexterm>
- <glossdef>
- <para>
-The depth of a window or pixmap is the number of bits per pixel it has.
-The depth of a graphics context is the depth of the drawables it can be
-used in conjunction with graphics output.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Device">
- <glossterm>Device</glossterm>
-<indexterm significance="preferred"><primary>Device</primary></indexterm>
- <glossdef>
- <para>
-Keyboards, mice, tablets, track-balls, button boxes, and so on are all
-collectively known as input devices.
-Pointers can have one or more buttons
-(the most common number is three).
-The core protocol only deals with two devices: the keyboard
-and the pointer.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:DirectColor">
- <glossterm>DirectColor</glossterm>
-<indexterm significance="preferred"><primary>DirectColor</primary></indexterm>
- <glossdef>
- <para>
-<symbol>DirectColor</symbol>
-is a class of colormap in which a pixel value is decomposed into three
-separate subfields for indexing.
-The first subfield indexes an array to produce red intensity values.
-The second subfield indexes a second array to produce blue intensity values.
-The third subfield indexes a third array to produce green intensity values.
-The <acronym>RGB</acronym> (red, green, and blue) values in the colormap entry can be
-changed dynamically.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Display">
- <glossterm>Display</glossterm>
-<indexterm significance="preferred"><primary>Display</primary></indexterm>
-<indexterm><primary>Display</primary><secondary>structure</secondary></indexterm>
- <glossdef>
- <para>
-A server, together with its screens and input devices, is called a display.
-The Xlib
-<type>Display</type>
-structure contains all information about the particular display and its screens
-as well as the state that Xlib needs to communicate with the display over a
-particular connection.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Drawable">
- <glossterm>Drawable</glossterm>
-<indexterm significance="preferred"><primary>Drawable</primary></indexterm>
- <glossdef>
- <para>
-Both windows and pixmaps can be used as sources and destinations
-in graphics operations.
-These windows and pixmaps are collectively known as drawables.
-However, an
-<symbol>InputOnly</symbol>
-window cannot be used as a source or destination in a
-graphics operation.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Encoding">
- <glossterm>Encoding</glossterm>
-<indexterm significance="preferred"><primary>Encoding</primary></indexterm>
- <glossdef>
- <para>
-A set of unambiguous rules that establishes a character set
-and a relationship between the characters and their representations.
-The character set does not have to be fixed to a finite pre-defined set of
-characters.
-The representations do not have to be of uniform length.
-Examples are an ISO2022 graphic set, a state-independent
-or state-dependent combination of graphic sets, possibly including control
-sets, and the X Compound Text encoding.
-</para>
- <para>
-In X, encodings are identified by a string
-which appears as: the
-<structfield>CharSetRegistry</structfield>
-and
-<structfield>CharSetEncoding</structfield>
-components of an <acronym>XLFD</acronym>
-name; the name of a charset of the locale for which a font could not be
-found; or an atom which identifies the encoding of a text property or
-which names an encoding for a text selection target type.
-Encoding names should be composed of characters from the X Portable
-Character Set.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Escapement">
- <glossterm>Escapement</glossterm>
-<indexterm significance="preferred"><primary>Escapement</primary></indexterm>
- <glossdef>
- <para>
-The escapement of a string is the distance in pixels in the
-primary draw direction from the drawing origin to the origin of the next
-character (that is, the one following the given string) to be drawn.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Event">
- <glossterm>Event</glossterm>
-<indexterm significance="preferred"><primary>Event</primary></indexterm>
- <glossdef>
- <para>
-Clients are informed of information asynchronously by means of events.
-These events can be either asynchronously generated from devices or
-generated as side effects of client requests.
-Events are grouped into types.
-The server never sends an event to a client unless the
-client has specifically asked to be informed of that type of event.
-However, clients can force events to be sent to other clients.
-Events are typically reported relative to a window.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Event_mask">
- <glossterm>Event mask</glossterm>
-<indexterm significance="preferred"><primary>Event</primary><secondary>mask</secondary></indexterm>
- <glossdef>
- <para>
-Events are requested relative to a window.
-The set of event types a client requests relative to a window is described
-by using an event mask.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Event_propagation">
- <glossterm>Event propagation</glossterm>
-<indexterm significance="preferred"><primary>Event</primary><secondary>propagation</secondary></indexterm>
- <glossdef>
- <para>
-Device-related events propagate from the source window to ancestor
-windows until some client has expressed interest in handling that type
-of event or until the event is discarded explicitly.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Event_source">
- <glossterm>Event source</glossterm>
-<indexterm significance="preferred"><primary>Event</primary><secondary>source</secondary></indexterm>
- <glossdef>
- <para>
-The deepest viewable window that the pointer is in is called
-the source of a device-related event.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Event_synchronization">
- <glossterm>Event synchronization</glossterm>
-<indexterm significance="preferred"><primary>Event</primary><secondary>synchronization</secondary></indexterm>
- <glossdef>
- <para>
-There are certain race conditions possible when demultiplexing device
-events to clients (in particular, deciding where pointer and keyboard
-events should be sent when in the middle of window management
-operations).
-The event synchronization mechanism allows synchronous processing of
-device events.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Exposure_event">
- <glossterm>Exposure event</glossterm>
-<indexterm significance="preferred"><primary>Event</primary><secondary>Exposure</secondary></indexterm>
- <glossdef>
- <para>
-Servers do not guarantee to preserve the contents of windows when
-windows are obscured or reconfigured.
-Exposure events are sent to clients to inform them when contents of regions
-of windows have been lost.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Extension">
- <glossterm>Extension</glossterm>
-<indexterm significance="preferred"><primary>Extension</primary></indexterm>
- <glossdef>
- <para>
-Named extensions to the core protocol can be defined to extend the system.
-Extensions to output requests, resources, and event types are all possible
-and expected.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Font">
- <glossterm>Font</glossterm>
-<indexterm significance="preferred"><primary>Font</primary></indexterm>
- <glossdef>
- <para>
-A font is an array of glyphs (typically characters).
-The protocol does no translation or interpretation of character sets.
-The client simply indicates values used to index the glyph array.
-A font contains additional metric information to determine interglyph
-and interline spacing.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Font_glyph">
- <glossterm>Font glyph</glossterm>
-<indexterm significance="preferred"><primary>Font glyph</primary></indexterm>
- <glossdef>
- <para>
-The abstract graphical symbol for an index into a font.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Frozen_events">
- <glossterm>Frozen events</glossterm>
-<indexterm significance="preferred"><primary>Frozen events</primary></indexterm>
- <glossdef>
- <para>
-Clients can freeze event processing during keyboard and pointer grabs.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:GC">
- <glossterm>GC</glossterm>
-<indexterm significance="preferred"><primary>GC</primary></indexterm>
- <glossdef>
- <para>
-GC is an abbreviation for graphics context.
-See <glossterm linkend="glossary:Graphics_context">Graphics context</glossterm>.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Glyph">
- <glossterm>Glyph</glossterm>
-<indexterm significance="preferred"><primary>Glyph</primary></indexterm>
- <glossdef>
- <para>
-An identified abstract graphical symbol independent of any actual image.
-(ISO/IEC/DIS 9541-1)
-An abstract visual representation of a graphic character,
-not bound to a codepoint.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Glyph_image">
- <glossterm>Glyph image</glossterm>
-<indexterm significance="preferred"><primary>Glyph image</primary></indexterm>
- <glossdef>
- <para>
-An image of a glyph, as obtained from a glyph representation displayed
-on a presentation surface.
-(ISO/IEC/DIS 9541-1)
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Grab">
- <glossterm>Grab</glossterm>
-<indexterm significance="preferred"><primary>Grab</primary></indexterm>
- <glossdef>
- <para>
-Keyboard keys, the keyboard, pointer buttons, the pointer,
-and the server can be grabbed for exclusive use by a client.
-In general,
-these facilities are not intended to be used by normal applications
-but are intended for various input and window managers to implement various
-styles of user interfaces.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Graphics_context">
- <glossterm>Graphics context</glossterm>
-<indexterm significance="preferred"><primary>Graphics context</primary></indexterm>
- <glossdef>
- <para>
-Various information for graphics output is stored in a graphics
-context (<acronym>GC</acronym>), such as foreground pixel, background
-pixel, line width, clipping region, and so on.
-A graphics context can only
-be used with drawables that have the same root and the same depth as
-the graphics context.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Gravity">
- <glossterm>Gravity</glossterm>
-<indexterm significance="preferred"><primary>Gravity</primary></indexterm>
- <glossdef>
- <para>
-The contents of windows and windows themselves have a gravity,
-which determines how the contents move when a window is resized.
-See <glossterm linkend="glossary:Bit_gravity">Bit gravity</glossterm> and
-<glossterm linkend="glossary:Window_gravity">Window gravity</glossterm>.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:GrayScale">
- <glossterm>GrayScale</glossterm>
-<indexterm significance="preferred"><primary>GrayScale</primary></indexterm>
- <glossdef>
- <para>
-<symbol>GrayScale</symbol>
-can be viewed as a degenerate case of
-<glossterm linkend="glossary:PseudoColor"><symbol>PseudoColor</symbol></glossterm>,
-in which the red, green, and blue values in any given colormap entry
-are equal and thus, produce shades of gray.
-The gray values can be changed dynamically.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Host_Portable_Character_Encoding">
- <glossterm>Host Portable Character Encoding</glossterm>
-<indexterm significance="preferred"><primary>Host Portable Character Encoding</primary></indexterm>
- <glossdef>
- <para>
-The encoding of the <glossterm linkend="glossary:X_Portable_Character_Set">X Portable Character Set</glossterm> on the host.
-The encoding itself is not defined by this standard,
-but the encoding must be the same in all locales supported by Xlib on the host.
-If a string is said to be in the Host Portable Character Encoding,
-then it only contains characters from the X Portable Character Set,
-in the host encoding.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Hotspot">
- <glossterm>Hotspot</glossterm>
-<indexterm significance="preferred"><primary>Hotspot</primary></indexterm>
- <glossdef>
- <para>
-A cursor has an associated hotspot, which defines the point in the
-cursor corresponding to the coordinates reported for the pointer.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Identifier">
- <glossterm>Identifier</glossterm>
-<indexterm significance="preferred"><primary>Identifier</primary></indexterm>
- <glossdef>
- <para>
-An identifier is a unique value associated with a resource
-that clients use to name that resource.
-The identifier can be used over any connection to name the resource.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Inferiors">
- <glossterm>Inferiors</glossterm>
-<indexterm significance="preferred"><primary>Inferiors</primary></indexterm>
- <glossdef>
- <para>
-The inferiors of a window are all of the subwindows nested below it:
-the children, the children's children, and so on.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Input_focus">
- <glossterm>Input focus</glossterm>
-<indexterm significance="preferred"><primary>Input</primary><secondary>focus</secondary></indexterm>
- <glossdef>
- <para>
-The input focus is usually a window defining the scope for processing
-of keyboard input.
-If a generated keyboard event usually would be reported to this window
-or one of its inferiors,
-the event is reported as usual.
-Otherwise, the event is reported with respect to the focus window.
-The input focus also can be set such that all keyboard events are discarded
-and such that the focus window is dynamically taken to be the root window
-of whatever screen the pointer is on at each keyboard event.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Input_manager">
- <glossterm>Input manager</glossterm>
-<indexterm significance="preferred"><primary>Input</primary><secondary>manager</secondary></indexterm>
- <glossdef>
- <para>
-Control over keyboard input is typically provided by an input manager
-client, which usually is part of a window manager.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:InputOnly_window">
- <glossterm>InputOnly window</glossterm>
-<indexterm significance="preferred"><primary>Window</primary><secondary>InputOnly</secondary></indexterm>
- <glossdef>
- <para>
-An
-<symbol>InputOnly</symbol>
-window is a window that cannot be used for graphics requests.
-<symbol>InputOnly</symbol>
-windows are invisible and are used to control such things as cursors,
-input event generation, and grabbing.
-<symbol>InputOnly</symbol>
-windows cannot have
-<symbol>InputOutput</symbol>
-windows as inferiors.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:InputOutput_window">
- <glossterm>InputOutput window</glossterm>
-<indexterm significance="preferred"><primary>Window</primary><secondary>InputOutput</secondary></indexterm>
- <glossdef>
- <para>
-An
-<symbol>InputOutput</symbol>
-window is the normal kind of window that is used for both input and output.
-<symbol>InputOutput</symbol>
-windows can have both
-<symbol>InputOutput</symbol>
-and
-<symbol>InputOnly</symbol>
-windows as inferiors.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Internationalization">
- <glossterm>Internationalization</glossterm>
-<indexterm significance="preferred"><primary>Internationalization</primary></indexterm>
- <glossdef>
- <para>
-The process of making software adaptable to the requirements
-of different native languages, local customs, and character string encodings.
-Making a computer program adaptable to different locales
-without program source modifications or recompilation.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:ISO2022">
- <glossterm>ISO2022</glossterm>
-<indexterm significance="preferred"><primary>ISO2022</primary></indexterm>
- <glossdef>
- <para>
-ISO standard for code extension techniques for 7-bit and 8-bit coded
-character sets.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Key_grabbing">
- <glossterm>Key grabbing</glossterm>
-<indexterm significance="preferred"><primary>Key</primary><secondary>grabbing</secondary></indexterm>
- <glossdef>
- <para>
-Keys on the keyboard can be passively grabbed by a client.
-When the key is pressed,
-the keyboard is then actively grabbed by the client.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Keyboard_grabbing">
- <glossterm>Keyboard grabbing</glossterm>
-<indexterm significance="preferred"><primary>Keyboard</primary><secondary>grabbing</secondary></indexterm>
- <glossdef>
- <para>
-A client can actively grab control of the keyboard, and key events
-will be sent to that client rather than the client the events would
-normally have been sent to.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Keysym">
- <glossterm>Keysym</glossterm>
-<indexterm significance="preferred"><primary>Keysym</primary></indexterm>
- <glossdef>
- <para>
-An encoding of a symbol on a keycap on a keyboard.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Latin-1">
- <glossterm>Latin-1</glossterm>
-<indexterm significance="preferred"><primary>Latin-1</primary></indexterm>
- <glossdef>
- <para>
-The coded character set defined by the ISO8859-1 standard.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Latin_Portable_Character_Encoding">
- <glossterm>Latin Portable Character Encoding</glossterm>
-<indexterm significance="preferred"><primary>Latin Portable Character Encoding</primary></indexterm>
- <glossdef>
- <para>
-The encoding of the X Portable Character Set using the Latin-1 codepoints
-plus ASCII control characters.
-If a string is said to be in the Latin Portable Character Encoding,
-then it only contains characters from the X Portable Character Set,
-not all of Latin-1.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Locale">
- <glossterm>Locale</glossterm>
-<indexterm significance="preferred"><primary>Locale</primary></indexterm>
- <glossdef>
- <para>
-The international environment of a computer program defining the ``localized''
-behavior of that program at run-time.
-This information can be established from one or more sets of localization data.
-ANSI C defines locale-specific processing by C system library calls.
-See ANSI C and the X/Open Portability Guide specifications for more details.
-In this specification, on implementations that conform to the ANSI C library,
-the ``current locale'' is the current setting of the LC_CTYPE
-<function>setlocale</function>
-category.
-Associated with each locale is a text encoding. When text is processed
-in the context of a locale, the text must be in the encoding of the locale.
-The current locale affects Xlib in its:
- <itemizedlist>
- <listitem><para>
-Encoding and processing of input method text
- </para></listitem>
- <listitem><para>
-Encoding of resource files and values
- </para></listitem>
- <listitem><para>
-Encoding and imaging of text strings
- </para></listitem>
- <listitem><para>
-Encoding and decoding for inter-client text communication
- </para></listitem>
- </itemizedlist></para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Locale_name">
- <glossterm>Locale name</glossterm>
-<indexterm significance="preferred"><primary>Locale name</primary></indexterm>
- <glossdef>
- <para>
-The identifier used to select the desired locale for the host C library
-and X library functions.
-On ANSI C library compliant systems,
-the locale argument to the
-<function>setlocale</function>
-function.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Localization">
- <glossterm>Localization</glossterm>
-<indexterm significance="preferred"><primary>Localization</primary></indexterm>
- <glossdef>
- <para>
-The process of establishing information within a computer system specific
-to the operation of particular native languages, local customs
-and coded character sets.
-(XPG3)
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Mapped">
- <glossterm>Mapped</glossterm>
-<indexterm significance="preferred"><primary>Mapped window</primary></indexterm>
- <glossdef>
- <para>
-A window is said to be mapped if a map call has been performed on it.
-Unmapped windows and their inferiors are never viewable or visible.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Modifier_keys">
- <glossterm>Modifier keys</glossterm>
-<indexterm significance="preferred"><primary>Modifier keys</primary></indexterm>
- <glossdef>
- <para>
-Shift, Control, Meta, Super, Hyper, Alt, Compose, Apple, CapsLock,
-ShiftLock, and similar keys are called modifier keys.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Monochrome">
- <glossterm>Monochrome</glossterm>
-<indexterm significance="preferred"><primary>Monochrome</primary></indexterm>
- <glossdef>
- <para>
-Monochrome is a special case of
-<glossterm linkend="glossary:StaticGray"><symbol>StaticGray</symbol></glossterm>
-in which there are only two colormap entries.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Multibyte">
- <glossterm>Multibyte</glossterm>
-<indexterm significance="preferred"><primary>Multibyte</primary></indexterm>
- <glossdef>
- <para>
-A character whose codepoint is stored in more than one byte;
-any encoding which can contain multibyte characters;
-text in a multibyte encoding.
-The ``<type>char *</type>'' null-terminated string datatype in ANSI C.
-Note that references in this document to multibyte strings
-imply only that the strings <emphasis remap='I'>may</emphasis> contain multibyte characters.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Obscure">
- <glossterm>Obscure</glossterm>
-<indexterm significance="preferred"><primary>Obscure</primary></indexterm>
- <glossdef>
- <para>
-A window is obscured if some other window obscures it.
-A window can be partially obscured and so still have visible regions.
-Window A obscures window B if both are viewable
-<symbol>InputOutput</symbol>
-windows, if A is higher in the global stacking order,
-and if the rectangle defined by the outside
-edges of A intersects the rectangle defined by the outside edges of B.
-Note the distinction between obscures and occludes.
-Also note that window borders are included in the calculation.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Occlude">
- <glossterm>Occlude</glossterm>
-<indexterm significance="preferred"><primary>Occlude</primary></indexterm>
- <glossdef>
- <para>
-A window is occluded if some other window occludes it.
-Window A occludes window B if both are mapped,
-if A is higher in the global stacking order,
-and if the rectangle defined by the outside edges of A intersects the rectangle defined
-by the outside edges of B.
-Note the distinction between occludes and obscures.
-Also note that window borders are included in the calculation
-and that
-<symbol>InputOnly</symbol>
-windows never obscure other windows but can occlude other windows.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Padding">
- <glossterm>Padding</glossterm>
-<indexterm significance="preferred"><primary>Padding</primary></indexterm>
- <glossdef>
- <para>
-Some padding bytes are inserted in the data stream to maintain
-alignment of the protocol requests on natural boundaries.
-This increases ease of portability to some machine architectures.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Parent_window">
- <glossterm>Parent window</glossterm>
-<indexterm significance="preferred"><primary>Window</primary><secondary>parent</secondary></indexterm>
- <glossdef>
- <para>
-If C is a child of P, then P is the parent of C.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Passive_grab">
- <glossterm>Passive grab</glossterm>
-<indexterm significance="preferred"><primary>Passive grab</primary></indexterm>
- <glossdef>
- <para>
-Grabbing a key or button is a passive grab.
-The grab activates when the key or button is actually pressed.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Pixel_value">
- <glossterm>Pixel value</glossterm>
-<indexterm significance="preferred"><primary>Pixel value</primary></indexterm>
- <glossdef>
- <para>
-A pixel is an N-bit value,
-where N is the number of bit planes used in a particular window or pixmap
-(that is, is the depth of the window or pixmap).
-A pixel in a window indexes a colormap to derive an actual color to be
-displayed.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Pixmap">
- <glossterm>Pixmap</glossterm>
-<indexterm significance="preferred"><primary>Pixmap</primary></indexterm>
- <glossdef>
- <para>
-A pixmap is a three-dimensional array of bits.
-A pixmap is normally thought of as a two-dimensional array of pixels,
-where each pixel can be a value from 0 to 2<superscript>N</superscript>-1,
-and where N is the depth (z axis) of the pixmap.
-A pixmap can also be thought of as a stack of N bitmaps.
-A pixmap can only be used on the screen that it was created in.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Plane">
- <glossterm>Plane</glossterm>
-<indexterm significance="preferred"><primary>Plane</primary></indexterm>
- <glossdef>
- <para>
-When a pixmap or window is thought of as a stack of bitmaps, each
-bitmap is called a plane or bit plane.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Plane_mask">
- <glossterm>Plane mask</glossterm>
-<indexterm significance="preferred"><primary>Plane</primary><secondary>mask</secondary></indexterm>
- <glossdef>
- <para>
-Graphics operations can be restricted to only affect a subset of bit
-planes of a destination.
-A plane mask is a bit mask describing which planes are to be modified.
-The plane mask is stored in a graphics context.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Pointer">
- <glossterm>Pointer</glossterm>
-<indexterm significance="preferred"><primary>Pointer</primary></indexterm>
- <glossdef>
- <para>
-The pointer is the pointing device currently attached to the cursor
-and tracked on the screens.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Pointer_grabbing">
- <glossterm>Pointer grabbing</glossterm>
-<indexterm significance="preferred"><primary>Pointer</primary><secondary>grabbing</secondary></indexterm>
- <glossdef>
- <para>
-A client can actively grab control of the pointer.
-Then button and motion events will be sent to that client
-rather than the client the events would normally have been sent to.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Pointing_device">
- <glossterm>Pointing device</glossterm>
-<indexterm significance="preferred"><primary>Pointing device</primary></indexterm>
- <glossdef>
- <para>
-A pointing device is typically a mouse, tablet, or some other
-device with effective dimensional motion.
-The core protocol defines only one visible cursor,
-which tracks whatever pointing device is attached as the pointer.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:POSIX">
- <glossterm><acronym>POSIX</acronym></glossterm>
-<indexterm significance="preferred"><primary><acronym>POSIX</acronym></primary></indexterm>
- <glossdef>
- <para>
-Portable Operating System Interface, ISO/IEC 9945-1 (IEEE Std 1003.1).
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:POSIX_Portable_Filename_Character_Set">
- <glossterm><acronym>POSIX</acronym> Portable Filename Character Set</glossterm>
-<indexterm significance="preferred"><primary><acronym>POSIX</acronym> Portable Filename Character Set</primary></indexterm>
- <glossdef>
- <para>
-The set of 65 characters which can be used in naming files on a <acronym>POSIX</acronym>-compliant
-host that are correctly processed in all locales.
-The set is:
-</para>
- <para>
-<!-- .Ds 0 -->
-a..z A..Z 0..9 ._-
-<!-- .De -->
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Property">
- <glossterm>Property</glossterm>
-<indexterm significance="preferred"><primary>Property</primary></indexterm>
- <glossdef>
- <para>
-Windows can have associated properties that consist of a name, a type,
-a data format, and some data.
-The protocol places no interpretation on properties.
-They are intended as a general-purpose naming mechanism for clients.
-For example, clients might use properties to share information such as resize
-hints, program names, and icon formats with a window manager.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Property_list">
- <glossterm>Property list</glossterm>
-<indexterm significance="preferred"><primary>Property list</primary></indexterm>
- <glossdef>
- <para>
-The property list of a window is the list of properties that have
-been defined for the window.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:PseudoColor">
- <glossterm>PseudoColor</glossterm>
-<indexterm significance="preferred"><primary>PseudoColor</primary></indexterm>
- <glossdef>
- <para>
-<symbol>PseudoColor</symbol>
-is a class of colormap in which a pixel value indexes the colormap entry to
-produce an independent <acronym>RGB</acronym> value;
-that is, the colormap is viewed as an array of triples (<acronym>RGB</acronym> values).
-The <acronym>RGB</acronym> values can be changed dynamically.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Rectangle">
- <glossterm>Rectangle</glossterm>
-<indexterm significance="preferred"><primary>Rectangle</primary></indexterm>
- <glossdef>
- <para>
-A rectangle specified by [x,y,w,h] has an infinitely thin
-outline path with corners at [x,y], [x+w,y], [x+w,y+h], and [x, y+h].
-When a rectangle is filled,
-the lower-right edges are not drawn.
-For example,
-if w=h=0,
-nothing would be drawn.
-For w=h=1,
-a single pixel would be drawn.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Redirecting_control">
- <glossterm>Redirecting control</glossterm>
-<indexterm significance="preferred"><primary>Redirecting control</primary></indexterm>
- <glossdef>
- <para>
-Window managers (or client programs) may enforce window layout
-policy in various ways.
-When a client attempts to change the size or position of a window,
-the operation may be redirected to a specified client
-rather than the operation actually being performed.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Reply">
- <glossterm>Reply</glossterm>
-<indexterm significance="preferred"><primary>Reply</primary></indexterm>
- <glossdef>
- <para>
-Information requested by a client program using the X protocol
-is sent back to the client with a reply.
-Both events and replies are multiplexed on the same connection.
-Most requests do not generate replies,
-but some requests generate multiple replies.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Request">
- <glossterm>Request</glossterm>
-<indexterm significance="preferred"><primary>Request</primary></indexterm>
- <glossdef>
- <para>
-A command to the server is called a request.
-It is a single block of data sent over a connection.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Resource">
- <glossterm>Resource</glossterm>
-<indexterm significance="preferred"><primary>Resource</primary></indexterm>
- <glossdef>
- <para>
-Windows, pixmaps, cursors, fonts, graphics contexts, and colormaps are
-known as resources.
-They all have unique identifiers associated with them for naming purposes.
-The lifetime of a resource usually is bounded by the lifetime of the
-connection over which the resource was created.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:RGB_values">
- <glossterm><acronym>RGB</acronym> values</glossterm>
-<indexterm significance="preferred"><primary><acronym>RGB</acronym> values</primary></indexterm>
- <glossdef>
- <para>
-<acronym>RGB</acronym> values are the red, green, and blue intensity values that are used
-to define a color.
-These values are always represented as 16-bit, unsigned numbers, with 0
-the minimum intensity and 65535 the maximum intensity.
-The X server scales these values to match the display hardware.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Root">
- <glossterm>Root</glossterm>
-<indexterm significance="preferred"><primary>Root</primary></indexterm>
- <glossdef>
- <para>
-The root of a pixmap or graphics context is the same as the root
-of whatever drawable was used when the pixmap or GC was created.
-The root of a window is the root window under which the window was created.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Root_window">
- <glossterm>Root window</glossterm>
-<indexterm significance="preferred"><primary>Window</primary><secondary>root</secondary></indexterm>
- <glossdef>
- <para>
-Each screen has a root window covering it.
-The root window cannot be reconfigured or unmapped,
-but otherwise it acts as a full-fledged window.
-A root window has no parent.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Save_set">
- <glossterm>Save set</glossterm>
-<indexterm significance="preferred"><primary>Save set</primary></indexterm>
- <glossdef>
- <para>
-The save set of a client is a list of other clients' windows that,
-if they are inferiors of one of the client's windows at connection
-close, should not be destroyed and that should be remapped
-if currently unmapped.
-Save sets are typically used by window managers to avoid
-lost windows if the manager should terminate abnormally.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Scanline">
- <glossterm>Scanline</glossterm>
-<indexterm significance="preferred"><primary>Scanline</primary></indexterm>
- <glossdef>
- <para>
-A scanline is a list of pixel or bit values viewed as a horizontal
-row (all values having the same y coordinate) of an image, with the
-values ordered by increasing the x coordinate.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Scanline_order">
- <glossterm>Scanline order</glossterm>
-<indexterm significance="preferred"><primary>Scanline</primary><secondary>order</secondary></indexterm>
- <glossdef>
- <para>
-An image represented in scanline order contains scanlines ordered by
-increasing the y coordinate.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Screen">
- <glossterm>Screen</glossterm>
-<indexterm significance="preferred"><primary>Screen</primary></indexterm>
-<indexterm><primary>Screen</primary><secondary>structure</secondary></indexterm>
-<indexterm><primary>Display</primary><secondary>structure</secondary></indexterm>
- <glossdef>
- <para>
-A server can provide several independent screens,
-which typically have physically independent monitors.
-This would be the expected configuration when there is only a single keyboard
-and pointer shared among the screens.
-A
-<type>Screen</type>
-structure contains the information about that screen
-and is linked to the
-<type>Display</type>
-structure.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Selection">
- <glossterm>Selection</glossterm>
-<indexterm significance="preferred"><primary>Selection</primary></indexterm>
- <glossdef>
- <para>
-A selection can be thought of as an indirect property with dynamic
-type.
-That is, rather than having the property stored in the X server,
-it is maintained by some client (the owner).
-A selection is global and is thought of as belonging to the user
-and being maintained by clients,
-rather than being private to a particular window subhierarchy
-or a particular set of clients.
-When a client asks for the contents of
-a selection, it specifies a selection target type,
-which can be used to control the transmitted representation of the contents.
-For example, if the selection is ``the last thing the user clicked on,''
-and that is currently an image, then the target type might specify
-whether the contents of the image should be sent in XY format or
-Z format.
-</para>
- <para>
-The target type can also be used to control the class of
-contents transmitted; for example,
-asking for the ``looks'' (fonts, line
-spacing, indentation, and so forth) of a paragraph selection, rather than the
-text of the paragraph.
-The target type can also be used for other
-purposes.
-The protocol does not constrain the semantics.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Server">
- <glossterm>Server</glossterm>
-<indexterm significance="preferred"><primary>Server</primary></indexterm>
- <glossdef>
- <para>
-The server, which is also referred to as the X server,
-provides the basic windowing mechanism.
-It handles <acronym>IPC</acronym> connections from clients,
-multiplexes graphics requests onto the screens,
-and demultiplexes input back to the appropriate clients.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Server_grabbing">
- <glossterm>Server grabbing</glossterm>
-<indexterm significance="preferred"><primary>Server</primary><secondary>grabbing</secondary></indexterm>
- <glossdef>
- <para>
-The server can be grabbed by a single client for exclusive use.
-This prevents processing of any requests from other client connections until
-the grab is completed.
-This is typically only a transient state for such things as rubber-banding,
-pop-up menus, or executing requests indivisibly.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Shift_sequence">
- <glossterm>Shift sequence</glossterm>
-<indexterm significance="preferred"><primary>Shift sequence</primary></indexterm>
- <glossdef>
- <para>
-ISO2022 defines control characters and escape sequences
-which temporarily (single shift) or permanently (locking shift) cause a
-different character set to be in effect (``invoking'' a character set).
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Sibling">
- <glossterm>Sibling</glossterm>
-<indexterm significance="preferred"><primary>Sibling</primary></indexterm>
- <glossdef>
- <para>
-Children of the same parent window are known as sibling windows.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Stacking_order">
- <glossterm>Stacking order</glossterm>
-<indexterm significance="preferred"><primary>Stacking order</primary></indexterm>
- <glossdef>
- <para>
-Sibling windows, similar to sheets of paper on a desk,
-can stack on top of each other.
-Windows above both obscure and occlude lower windows.
-The relationship between sibling windows is known as the stacking order.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:State-dependent_encoding">
- <glossterm>State-dependent encoding</glossterm>
-<indexterm significance="preferred"><primary>State-dependent encoding</primary></indexterm>
- <glossdef>
- <para>
-An encoding in which an invocation of a charset can apply to multiple
-characters in sequence.
-A state-dependent encoding begins in an ``initial state''
-and enters other ``shift states'' when specific ``shift sequences''
-are encountered in the byte sequence.
-In ISO2022 terms,
-this means use of locking shifts, not single shifts.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:State-independent_encoding">
- <glossterm>State-independent encoding</glossterm>
-<indexterm significance="preferred"><primary>State-independent encoding</primary></indexterm>
- <glossdef>
- <para>
-Any encoding in which the invocations of the charsets are fixed,
-or span only a single character.
-In ISO2022 terms,
-this means use of at most single shifts, not locking shifts.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:StaticColor">
- <glossterm>StaticColor</glossterm>
-<indexterm significance="preferred"><primary>StaticColor</primary></indexterm>
- <glossdef>
- <para>
-<symbol>StaticColor</symbol>
-can be viewed as a degenerate case of
-<glossterm linkend="glossary:PseudoColor"><symbol>PseudoColor</symbol></glossterm>
-in which the <acronym>RGB</acronym> values are predefined and read-only.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:StaticGray">
- <glossterm>StaticGray</glossterm>
-<indexterm significance="preferred"><primary>StaticGray</primary></indexterm>
- <glossdef>
- <para>
-<symbol>StaticGray</symbol>
-can be viewed as a degenerate case of
-<glossterm linkend="glossary:GrayScale"><symbol>GrayScale</symbol></glossterm>
-in which the gray values are predefined and read-only.
-The values are typically linear or near-linear increasing ramps.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Status">
- <glossterm>Status</glossterm>
-<indexterm significance="preferred"><primary>Status</primary></indexterm>
- <glossdef>
- <para>
-Many Xlib functions return a success status.
-If the function does not succeed,
-however, its arguments are not disturbed.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Stipple">
- <glossterm>Stipple</glossterm>
-<indexterm significance="preferred"><primary>Stipple</primary></indexterm>
- <glossdef>
- <para>
-A stipple pattern is a bitmap that is used to tile a region to serve
-as an additional clip mask for a fill operation with the foreground
-color.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:STRING_encoding">
- <glossterm>STRING encoding</glossterm>
- <glossdef>
- <para>
-<glossterm linkend="glossary:Latin-1">Latin-1</glossterm>, plus tab and newline.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:String_Equivalence">
- <glossterm>String Equivalence</glossterm>
-<indexterm significance="preferred"><primary>String Equivalence</primary></indexterm>
- <glossdef>
- <para>
-Two ISO Latin-1 STRING8 values are considered equal if they are the same
-length and if corresponding bytes are either equal or are equivalent as
-follows: decimal values 65 to 90 inclusive (characters ``A'' to ``Z'') are
-pairwise equivalent to decimal values 97 to 122 inclusive
-(characters ``a'' to ``z''), decimal values 192 to 214 inclusive
-(characters ``A grave'' to ``O diaeresis'') are pairwise equivalent to decimal
-values 224 to 246 inclusive (characters ``a grave'' to ``o diaeresis''),
-and decimal values 216 to 222 inclusive (characters ``O oblique'' to ``THORN'')
-are pairwise equivalent to decimal values 246 to 254 inclusive
-(characters ``o oblique'' to ``thorn'').
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Tile">
- <glossterm>Tile</glossterm>
-<indexterm significance="preferred"><primary>Tile</primary></indexterm>
- <glossdef>
- <para>
-A pixmap can be replicated in two dimensions to tile a region.
-The pixmap itself is also known as a tile.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Timestamp">
- <glossterm>Timestamp</glossterm>
-<indexterm significance="preferred"><primary>Timestamp</primary></indexterm>
- <glossdef>
- <para>
-A timestamp is a time value expressed in milliseconds.
-It is typically the time since the last server reset.
-Timestamp values wrap around (after about 49.7 days).
-The server, given its current time is represented by timestamp T,
-always interprets timestamps from clients by treating half
-of the timestamp space as being earlier in time than T
-and half of the timestamp space as being later in time than T.
-One timestamp value, represented by the constant
-<symbol>CurrentTime</symbol>,
-is never generated by the server.
-This value is reserved for use in requests to represent the current server time.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:TrueColor">
- <glossterm>TrueColor</glossterm>
-<indexterm significance="preferred"><primary>TrueColor</primary></indexterm>
- <glossdef>
- <para>
-<symbol>TrueColor</symbol>
-can be viewed as a degenerate case of
-<glossterm linkend="glossary:DirectColor"><symbol>DirectColor</symbol></glossterm>
-in which the subfields in the pixel value directly encode the corresponding <acronym>RGB</acronym>
-values.
-That is, the colormap has predefined read-only <acronym>RGB</acronym> values.
-The values are typically linear or near-linear increasing ramps.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Type">
- <glossterm>Type</glossterm>
-<indexterm significance="preferred"><primary>Type</primary></indexterm>
- <glossdef>
- <para>
-A type is an arbitrary atom used to identify the interpretation of property
-data.
-Types are completely uninterpreted by the server.
-They are solely for the benefit of clients.
-X predefines type atoms for many frequently used types,
-and clients also can define new types.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Viewable">
- <glossterm>Viewable</glossterm>
-<indexterm significance="preferred"><primary>Viewable</primary></indexterm>
- <glossdef>
- <para>
-A window is viewable if it and all of its ancestors are mapped.
-This does not imply that any portion of the window is actually visible.
-Graphics requests can be performed on a window when it is not
-viewable, but output will not be retained unless the server is maintaining
-backing store.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Visible">
- <glossterm>Visible</glossterm>
-<indexterm significance="preferred"><primary>Visible</primary></indexterm>
- <glossdef>
- <para>
-A region of a window is visible if someone looking at the screen can
-actually see it; that is, the window is viewable and the region is not occluded
-by any other window.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Whitespace">
- <glossterm>Whitespace</glossterm>
-<indexterm significance="preferred"><primary>Whitespace</primary></indexterm>
- <glossdef>
- <para>
-Any spacing character.
-On implementations that conform to the ANSI C library,
-whitespace is any character for which
-<function>isspace</function>
-returns true.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Window_gravity">
- <glossterm>Window gravity</glossterm>
-<indexterm significance="preferred"><primary>Window</primary><secondary>gravity</secondary></indexterm>
- <glossdef>
- <para>
-When windows are resized,
-subwindows may be repositioned automatically relative to some position in the
-window.
-This attraction of a subwindow to some part of its parent is known
-as window gravity.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Window_manager">
- <glossterm>Window manager</glossterm>
-<indexterm significance="preferred"><primary>Window</primary><secondary>manager</secondary></indexterm>
- <glossdef>
- <para>
-Manipulation of windows on the screen and much of the user interface
-(policy) is typically provided by a window manager client.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:X_Portable_Character_Set">
- <glossterm>X Portable Character Set</glossterm>
-<indexterm significance="preferred"><primary>X Portable Character Set</primary></indexterm>
- <glossdef>
- <para>
-A basic set of 97 characters which are assumed to exist in all
-locales supported by Xlib. This set contains the following characters:
- <literallayout>
-a..z A..Z 0..9
-!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\\]^_`{|}~
-&lt;space&gt;, &lt;tab&gt;, and &lt;newline&gt;
- </literallayout>
- </para>
- <para>
-This is the left/lower half (also called the G0 set)
-of the graphic character set of ISO8859-1 plus &lt;space&gt;, &lt;tab&gt;, and &lt;newline&gt;.
-It is also the set of graphic characters in 7-bit ASCII plus the same
-three control characters.
-The actual encoding of these characters on the host is system dependent;
-see the <glossterm linkend="glossary:Host_Portable_Character_Encoding">Host Portable Character Encoding</glossterm>.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:XLFD">
- <glossterm><acronym>XLFD</acronym></glossterm>
-<indexterm significance="preferred"><primary><acronym>XLFD</acronym></primary></indexterm>
- <glossdef>
- <para>
-The X Logical Font Description Conventions that define a standard syntax
-for structured font names.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:XY_format">
- <glossterm>XY format</glossterm>
-<indexterm significance="preferred"><primary>XY format</primary></indexterm>
- <glossdef>
- <para>
-The data for a pixmap is said to be in XY format if it is organized as
-a set of bitmaps representing individual bit planes with the planes
-appearing from most-significant to least-significant bit order.
- </para>
- </glossdef>
-</glossentry>
-<glossentry id="glossary:Z_format">
- <glossterm>Z format</glossterm>
-<indexterm significance="preferred"><primary>Z format</primary></indexterm>
- <glossdef>
- <para>
-The data for a pixmap is said to be in Z format if it is organized as
-a set of pixel values in scanline order.
- </para>
- </glossdef>
-</glossentry>
-
-<bibliography>
-<title>References</title>
-<biblioentry>
-<title>Draft Proposed Multibyte Extension of ANSI C, Draft 1.1</title>
-<date>November 30, 1989 SC22/C WG/SWG IPSJ/ITSCJ Japan</date>
-</biblioentry>
-
-<biblioentry>
-<title>
-ISO2022: Information processing - ISO 7-bit and 8-bit coded character
-sets - Code extension techniques.
-</title>
-</biblioentry>
-
-<biblioentry>
-<title>
-ISO8859-1: Information processing - 8-bit single-byte coded graphic
-character sets - Part 1: Latin alphabet No. 1.
-</title>
-</biblioentry>
-
-<biblioentry>
-<title>
-<acronym>POSIX</acronym>: Information Technology - Portable Operating System Interface (<acronym>POSIX</acronym>) -
-Part 1: System Application Program Interface (API) [C Language],
-ISO/IEC 9945-1.
-</title>
-</biblioentry>
-
-<biblioentry>
-<title>
-Text of ISO/IEC/DIS 9541-1, Information Processing - Font Information
-Interchange - Part 1: Architecture.
-</title>
-</biblioentry>
-
-<biblioentry>
-<title>
-X/Open Portability Guide, Issue 3, December 1988 (XPG3), X/Open Company,
-Ltd, Prentice-Hall, Inc. 1989. ISBN 0-13-685835-8.
-(See especially Volume 3: XSI Supplementary Definitions.)
-</title>
-</biblioentry>
-</bibliography>
-
-</glossary>
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+ "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+<glossary id='glossary'>
+<title>Glossary</title>
+<glossentry id="glossary:Access_control_list">
+ <glossterm>Access control list</glossterm>
+<indexterm significance="preferred"><primary>Access control list</primary></indexterm>
+ <glossdef>
+ <para>
+X maintains a list of hosts from which client programs can be run.
+By default,
+only programs on the local host and hosts specified in an initial list read
+by the server can use the display.
+This access control list can be changed by clients on the local host.
+Some server implementations can also implement other authorization mechanisms
+in addition to or in place of this mechanism.
+The action of this mechanism can be conditional based on the authorization
+protocol name and data received by the server at connection setup.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Active_grab">
+ <glossterm>Active grab</glossterm>
+<indexterm significance="preferred"><primary>Active grab</primary></indexterm>
+ <glossdef>
+ <para>
+A grab is active when the pointer or keyboard is actually owned by the
+single grabbing client.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Ancestors">
+ <glossterm>Ancestors</glossterm>
+<indexterm significance="preferred"><primary>Ancestors</primary></indexterm>
+ <glossdef>
+ <para>
+If W is an inferior of A, then A is an ancestor of W.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Atom">
+ <glossterm>Atom</glossterm>
+<indexterm significance="preferred"><primary>Atom</primary></indexterm>
+ <glossdef>
+ <para>
+An atom is a unique ID corresponding to a string name.
+Atoms are used to identify properties, types, and selections.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Background">
+ <glossterm>Background</glossterm>
+<indexterm significance="preferred"><primary>Background</primary></indexterm>
+ <glossdef>
+ <para>
+An
+<symbol>InputOutput</symbol>
+window can have a background, which is defined as a pixmap.
+When regions of the window have their contents lost
+or invalidated,
+the server automatically tiles those regions with the background.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Backing_store">
+ <glossterm>Backing store</glossterm>
+<indexterm significance="preferred"><primary>Backing store</primary></indexterm>
+ <glossdef>
+ <para>
+When a server maintains the contents of a window,
+the pixels saved off-screen are known as a backing store.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Base_font_name">
+ <glossterm>Base font name</glossterm>
+<indexterm significance="preferred"><primary>Base font name</primary></indexterm>
+ <glossdef>
+ <para>
+A font name used to select a family of fonts whose members may be encoded
+in various charsets.
+The
+<structfield>CharSetRegistry</structfield>
+and
+<structfield>CharSetEncoding</structfield>
+fields of an <acronym>XLFD</acronym> name identify the charset of the font.
+A base font name may be a full <acronym>XLFD</acronym> name, with all fourteen '-' delimiters,
+or an abbreviated <acronym>XLFD</acronym> name containing only the first 12 fields of an <acronym>XLFD</acronym> name,
+up to but not including
+<structfield>CharSetRegistry</structfield>,
+with or without the thirteenth '-', or a non-<acronym>XLFD</acronym> name.
+Any <acronym>XLFD</acronym> fields may contain wild cards.
+</para>
+ <para>
+When creating an
+<type>XFontSet</type>,
+Xlib accepts from the client a list of one or more base font names
+which select one or more font families.
+They are combined with charset names obtained from the encoding of the locale
+to load the fonts required to render text.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Bit_gravity">
+ <glossterm>Bit gravity</glossterm>
+<indexterm significance="preferred"><primary>Bit</primary><secondary>gravity</secondary></indexterm>
+ <glossdef>
+ <para>
+When a window is resized,
+the contents of the window are not necessarily discarded.
+It is possible to request that the server relocate the previous contents
+to some region of the window (though no guarantees are made).
+This attraction of window contents for some location of
+a window is known as bit gravity.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Bit_plane">
+ <glossterm>Bit plane</glossterm>
+<indexterm significance="preferred"><primary>Bit</primary><secondary>plane</secondary></indexterm>
+ <glossdef>
+ <para>
+When a pixmap or window is thought of as a stack of bitmaps,
+each bitmap is called a bit plane or plane.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Bitmap">
+ <glossterm>Bitmap</glossterm>
+<indexterm significance="preferred"><primary>Bitmap</primary></indexterm>
+ <glossdef>
+ <para>
+A bitmap is a <glossterm linkend="glossary:Pixmap">pixmap</glossterm> of depth one.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Border">
+ <glossterm>Border</glossterm>
+<indexterm significance="preferred"><primary>Border</primary></indexterm>
+ <glossdef>
+ <para>
+An
+<symbol>InputOutput</symbol>
+window can have a border of equal thickness on all four sides of the window.
+The contents of the border are defined by a pixmap,
+and the server automatically maintains the contents of the border.
+Exposure events are never generated for border regions.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Button_grabbing">
+ <glossterm>Button grabbing</glossterm>
+<indexterm significance="preferred"><primary>Button</primary><secondary>grabbing</secondary></indexterm>
+ <glossdef>
+ <para>
+Buttons on the pointer can be passively grabbed by a client.
+When the button is pressed,
+the pointer is then actively grabbed by the client.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Byte_order">
+ <glossterm>Byte order</glossterm>
+<indexterm significance="preferred"><primary>Byte</primary><secondary>order</secondary></indexterm>
+ <glossdef>
+ <para>
+For image (pixmap/bitmap) data,
+the server defines the byte order,
+and clients with different native byte ordering must swap bytes as
+necessary.
+For all other parts of the protocol,
+the client defines the byte order,
+and the server swaps bytes as necessary.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Character">
+ <glossterm>Character</glossterm>
+<indexterm significance="preferred"><primary>Character</primary></indexterm>
+ <glossdef>
+ <para>
+A member of a set of elements used for the organization,
+control, or representation of text (ISO2022, as adapted by XPG3).
+Note that in ISO2022 terms, a character is not bound to a coded value
+until it is identified as part of a coded character set.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Character_glyph">
+ <glossterm>Character glyph</glossterm>
+<indexterm significance="preferred"><primary>Character glyph</primary></indexterm>
+ <glossdef>
+ <para>
+The abstract graphical symbol for a character.
+Character glyphs may or may not map one-to-one to font glyphs,
+and may be context-dependent, varying with the adjacent characters.
+Multiple characters may map to a single character glyph.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Character_set">
+ <glossterm>Character set</glossterm>
+<indexterm significance="preferred"><primary>Character set</primary></indexterm>
+ <glossdef>
+ <para>
+A collection of characters.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Charset">
+ <glossterm>Charset</glossterm>
+<indexterm significance="preferred"><primary>Charset</primary></indexterm>
+ <glossdef>
+ <para>
+An encoding with a uniform, state-independent mapping from characters
+to codepoints.
+A coded character set.
+</para>
+ <para>
+For display in X,
+there can be a direct mapping from a charset to one font,
+if the width of all characters in the charset is either one or two bytes.
+A text string encoded in an encoding such as Shift-JIS cannot be passed
+directly to the X server, because the text imaging requests accept only
+single-width charsets (either 8 or 16 bits).
+Charsets which meet these restrictions can serve as ``font charsets''.
+Font charsets strictly speaking map font indices to font glyphs,
+not characters to character glyphs.
+</para>
+ <para>
+Note that a single font charset is sometimes used as the encoding of a locale,
+for example, ISO8859-1.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Children">
+ <glossterm>Children</glossterm>
+<indexterm significance="preferred"><primary>Children</primary></indexterm>
+ <glossdef>
+ <para>
+The children of a window are its first-level subwindows.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Class">
+ <glossterm>Class</glossterm>
+<indexterm significance="preferred"><primary>Class</primary></indexterm>
+ <glossdef>
+ <para>
+Windows can be of different classes or types.
+See the entries for
+<glossterm linkend="glossary:InputOnly_window">InputOnly</glossterm>
+and
+<glossterm linkend="glossary:InputOutput_window">InputOutput</glossterm>
+windows for further information about valid window types.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Client">
+ <glossterm>Client</glossterm>
+<indexterm significance="preferred"><primary>Client</primary></indexterm>
+ <glossdef>
+ <para>
+An application program connects to the window system server by some
+interprocess communication (<acronym>IPC</acronym>) path, such as a <acronym>TCP</acronym> connection or a
+shared memory buffer.
+This program is referred to as a client of the window system server.
+More precisely,
+the client is the <acronym>IPC</acronym> path itself.
+A program with multiple paths open to the server is viewed as
+multiple clients by the protocol.
+Resource lifetimes are controlled by
+connection lifetimes, not by program lifetimes.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Clipping_region">
+ <glossterm>Clipping region</glossterm>
+<indexterm significance="preferred"><primary>Clipping region</primary></indexterm>
+ <glossdef>
+ <para>
+In a graphics context,
+a bitmap or list of rectangles can be specified
+to restrict output to a particular region of the window.
+The image defined by the bitmap or rectangles is called a clipping region.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Coded_character">
+ <glossterm>Coded character</glossterm>
+<indexterm significance="preferred"><primary>Coded character</primary></indexterm>
+ <glossdef>
+ <para>
+A character bound to a codepoint.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Coded_character_set">
+ <glossterm>Coded character set</glossterm>
+<indexterm significance="preferred"><primary>Coded character set</primary></indexterm>
+ <glossdef>
+ <para>
+A set of unambiguous rules that establishes a character set
+and the one-to-one relationship between each character of the set
+and its bit representation.
+(ISO2022, as adapted by XPG3)
+A definition of a one-to-one mapping of a set of characters to a set of
+codepoints.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Codepoint">
+ <glossterm>Codepoint</glossterm>
+<indexterm significance="preferred"><primary>Codepoint</primary></indexterm>
+ <glossdef>
+ <para>
+The coded representation of a single character in a coded character set.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Colormap">
+ <glossterm>Colormap</glossterm>
+<indexterm significance="preferred"><primary>Colormap</primary></indexterm>
+ <glossdef>
+ <para>
+A colormap consists of a set of entries defining color values.
+The colormap associated with a window is used to display the contents of
+the window; each pixel value indexes the colormap to produce an <acronym>RGB</acronym> value
+that drives the guns of a monitor.
+Depending on hardware limitations,
+one or more colormaps can be installed at one time so
+that windows associated with those maps display with true colors.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Connection">
+ <glossterm>Connection</glossterm>
+<indexterm significance="preferred"><primary>Connection</primary></indexterm>
+ <glossdef>
+ <para>
+The <acronym>IPC</acronym> path between the server and client program is known as a connection.
+A client program typically (but not necessarily) has one
+connection to the server over which requests and events are sent.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Containment">
+ <glossterm>Containment</glossterm>
+<indexterm significance="preferred"><primary>Containment</primary></indexterm>
+ <glossdef>
+ <para>
+A window contains the pointer if the window is viewable and the
+hotspot of the cursor is within a visible region of the window or a
+visible region of one of its inferiors.
+The border of the window is included as part of the window for containment.
+The pointer is in a window if the window contains the pointer
+but no inferior contains the pointer.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Coordinate_system">
+ <glossterm>Coordinate system</glossterm>
+<indexterm significance="preferred"><primary>Coordinate system</primary></indexterm>
+ <glossdef>
+ <para>
+The coordinate system has X horizontal and Y vertical,
+with the origin [0, 0] at the upper left.
+Coordinates are integral and coincide with pixel centers.
+Each window and pixmap has its own coordinate system.
+For a window,
+the origin is inside the border at the inside upper-left corner.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Cursor">
+ <glossterm>Cursor</glossterm>
+<indexterm significance="preferred"><primary>Cursor</primary></indexterm>
+ <glossdef>
+ <para>
+A cursor is the visible shape of the pointer on a screen.
+It consists of a hotspot, a source bitmap, a shape bitmap,
+and a pair of colors.
+The cursor defined for a window controls the visible
+appearance when the pointer is in that window.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Depth">
+ <glossterm>Depth</glossterm>
+<indexterm significance="preferred"><primary>Depth</primary></indexterm>
+ <glossdef>
+ <para>
+The depth of a window or pixmap is the number of bits per pixel it has.
+The depth of a graphics context is the depth of the drawables it can be
+used in conjunction with graphics output.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Device">
+ <glossterm>Device</glossterm>
+<indexterm significance="preferred"><primary>Device</primary></indexterm>
+ <glossdef>
+ <para>
+Keyboards, mice, tablets, track-balls, button boxes, and so on are all
+collectively known as input devices.
+Pointers can have one or more buttons
+(the most common number is three).
+The core protocol only deals with two devices: the keyboard
+and the pointer.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:DirectColor">
+ <glossterm>DirectColor</glossterm>
+<indexterm significance="preferred"><primary>DirectColor</primary></indexterm>
+ <glossdef>
+ <para>
+<symbol>DirectColor</symbol>
+is a class of colormap in which a pixel value is decomposed into three
+separate subfields for indexing.
+The first subfield indexes an array to produce red intensity values.
+The second subfield indexes a second array to produce blue intensity values.
+The third subfield indexes a third array to produce green intensity values.
+The <acronym>RGB</acronym> (red, green, and blue) values in the colormap entry can be
+changed dynamically.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Display">
+ <glossterm>Display</glossterm>
+<indexterm significance="preferred"><primary>Display</primary></indexterm>
+<indexterm><primary>Display</primary><secondary>structure</secondary></indexterm>
+ <glossdef>
+ <para>
+A server, together with its screens and input devices, is called a display.
+The Xlib
+<type>Display</type>
+structure contains all information about the particular display and its screens
+as well as the state that Xlib needs to communicate with the display over a
+particular connection.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Drawable">
+ <glossterm>Drawable</glossterm>
+<indexterm significance="preferred"><primary>Drawable</primary></indexterm>
+ <glossdef>
+ <para>
+Both windows and pixmaps can be used as sources and destinations
+in graphics operations.
+These windows and pixmaps are collectively known as drawables.
+However, an
+<symbol>InputOnly</symbol>
+window cannot be used as a source or destination in a
+graphics operation.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Encoding">
+ <glossterm>Encoding</glossterm>
+<indexterm significance="preferred"><primary>Encoding</primary></indexterm>
+ <glossdef>
+ <para>
+A set of unambiguous rules that establishes a character set
+and a relationship between the characters and their representations.
+The character set does not have to be fixed to a finite pre-defined set of
+characters.
+The representations do not have to be of uniform length.
+Examples are an ISO2022 graphic set, a state-independent
+or state-dependent combination of graphic sets, possibly including control
+sets, and the X Compound Text encoding.
+</para>
+ <para>
+In X, encodings are identified by a string
+which appears as: the
+<structfield>CharSetRegistry</structfield>
+and
+<structfield>CharSetEncoding</structfield>
+components of an <acronym>XLFD</acronym>
+name; the name of a charset of the locale for which a font could not be
+found; or an atom which identifies the encoding of a text property or
+which names an encoding for a text selection target type.
+Encoding names should be composed of characters from the X Portable
+Character Set.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Escapement">
+ <glossterm>Escapement</glossterm>
+<indexterm significance="preferred"><primary>Escapement</primary></indexterm>
+ <glossdef>
+ <para>
+The escapement of a string is the distance in pixels in the
+primary draw direction from the drawing origin to the origin of the next
+character (that is, the one following the given string) to be drawn.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Event">
+ <glossterm>Event</glossterm>
+<indexterm significance="preferred"><primary>Event</primary></indexterm>
+ <glossdef>
+ <para>
+Clients are informed of information asynchronously by means of events.
+These events can be either asynchronously generated from devices or
+generated as side effects of client requests.
+Events are grouped into types.
+The server never sends an event to a client unless the
+client has specifically asked to be informed of that type of event.
+However, clients can force events to be sent to other clients.
+Events are typically reported relative to a window.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Event_mask">
+ <glossterm>Event mask</glossterm>
+<indexterm significance="preferred"><primary>Event</primary><secondary>mask</secondary></indexterm>
+ <glossdef>
+ <para>
+Events are requested relative to a window.
+The set of event types a client requests relative to a window is described
+by using an event mask.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Event_propagation">
+ <glossterm>Event propagation</glossterm>
+<indexterm significance="preferred"><primary>Event</primary><secondary>propagation</secondary></indexterm>
+ <glossdef>
+ <para>
+Device-related events propagate from the source window to ancestor
+windows until some client has expressed interest in handling that type
+of event or until the event is discarded explicitly.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Event_source">
+ <glossterm>Event source</glossterm>
+<indexterm significance="preferred"><primary>Event</primary><secondary>source</secondary></indexterm>
+ <glossdef>
+ <para>
+The deepest viewable window that the pointer is in is called
+the source of a device-related event.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Event_synchronization">
+ <glossterm>Event synchronization</glossterm>
+<indexterm significance="preferred"><primary>Event</primary><secondary>synchronization</secondary></indexterm>
+ <glossdef>
+ <para>
+There are certain race conditions possible when demultiplexing device
+events to clients (in particular, deciding where pointer and keyboard
+events should be sent when in the middle of window management
+operations).
+The event synchronization mechanism allows synchronous processing of
+device events.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Exposure_event">
+ <glossterm>Exposure event</glossterm>
+<indexterm significance="preferred"><primary>Event</primary><secondary>Exposure</secondary></indexterm>
+ <glossdef>
+ <para>
+Servers do not guarantee to preserve the contents of windows when
+windows are obscured or reconfigured.
+Exposure events are sent to clients to inform them when contents of regions
+of windows have been lost.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Extension">
+ <glossterm>Extension</glossterm>
+<indexterm significance="preferred"><primary>Extension</primary></indexterm>
+ <glossdef>
+ <para>
+Named extensions to the core protocol can be defined to extend the system.
+Extensions to output requests, resources, and event types are all possible
+and expected.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Font">
+ <glossterm>Font</glossterm>
+<indexterm significance="preferred"><primary>Font</primary></indexterm>
+ <glossdef>
+ <para>
+A font is an array of glyphs (typically characters).
+The protocol does no translation or interpretation of character sets.
+The client simply indicates values used to index the glyph array.
+A font contains additional metric information to determine interglyph
+and interline spacing.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Font_glyph">
+ <glossterm>Font glyph</glossterm>
+<indexterm significance="preferred"><primary>Font glyph</primary></indexterm>
+ <glossdef>
+ <para>
+The abstract graphical symbol for an index into a font.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Frozen_events">
+ <glossterm>Frozen events</glossterm>
+<indexterm significance="preferred"><primary>Frozen events</primary></indexterm>
+ <glossdef>
+ <para>
+Clients can freeze event processing during keyboard and pointer grabs.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:GC">
+ <glossterm>GC</glossterm>
+<indexterm significance="preferred"><primary>GC</primary></indexterm>
+ <glossdef>
+ <para>
+GC is an abbreviation for graphics context.
+See <glossterm linkend="glossary:Graphics_context">Graphics context</glossterm>.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Glyph">
+ <glossterm>Glyph</glossterm>
+<indexterm significance="preferred"><primary>Glyph</primary></indexterm>
+ <glossdef>
+ <para>
+An identified abstract graphical symbol independent of any actual image.
+(ISO/IEC/DIS 9541-1)
+An abstract visual representation of a graphic character,
+not bound to a codepoint.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Glyph_image">
+ <glossterm>Glyph image</glossterm>
+<indexterm significance="preferred"><primary>Glyph image</primary></indexterm>
+ <glossdef>
+ <para>
+An image of a glyph, as obtained from a glyph representation displayed
+on a presentation surface.
+(ISO/IEC/DIS 9541-1)
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Grab">
+ <glossterm>Grab</glossterm>
+<indexterm significance="preferred"><primary>Grab</primary></indexterm>
+ <glossdef>
+ <para>
+Keyboard keys, the keyboard, pointer buttons, the pointer,
+and the server can be grabbed for exclusive use by a client.
+In general,
+these facilities are not intended to be used by normal applications
+but are intended for various input and window managers to implement various
+styles of user interfaces.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Graphics_context">
+ <glossterm>Graphics context</glossterm>
+<indexterm significance="preferred"><primary>Graphics context</primary></indexterm>
+ <glossdef>
+ <para>
+Various information for graphics output is stored in a graphics
+context (<acronym>GC</acronym>), such as foreground pixel, background
+pixel, line width, clipping region, and so on.
+A graphics context can only
+be used with drawables that have the same root and the same depth as
+the graphics context.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Gravity">
+ <glossterm>Gravity</glossterm>
+<indexterm significance="preferred"><primary>Gravity</primary></indexterm>
+ <glossdef>
+ <para>
+The contents of windows and windows themselves have a gravity,
+which determines how the contents move when a window is resized.
+See <glossterm linkend="glossary:Bit_gravity">Bit gravity</glossterm> and
+<glossterm linkend="glossary:Window_gravity">Window gravity</glossterm>.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:GrayScale">
+ <glossterm>GrayScale</glossterm>
+<indexterm significance="preferred"><primary>GrayScale</primary></indexterm>
+ <glossdef>
+ <para>
+<symbol>GrayScale</symbol>
+can be viewed as a degenerate case of
+<glossterm linkend="glossary:PseudoColor"><symbol>PseudoColor</symbol></glossterm>,
+in which the red, green, and blue values in any given colormap entry
+are equal and thus, produce shades of gray.
+The gray values can be changed dynamically.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Host_Portable_Character_Encoding">
+ <glossterm>Host Portable Character Encoding</glossterm>
+<indexterm significance="preferred"><primary>Host Portable Character Encoding</primary></indexterm>
+ <glossdef>
+ <para>
+The encoding of the <glossterm linkend="glossary:X_Portable_Character_Set">X Portable Character Set</glossterm> on the host.
+The encoding itself is not defined by this standard,
+but the encoding must be the same in all locales supported by Xlib on the host.
+If a string is said to be in the Host Portable Character Encoding,
+then it only contains characters from the X Portable Character Set,
+in the host encoding.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Hotspot">
+ <glossterm>Hotspot</glossterm>
+<indexterm significance="preferred"><primary>Hotspot</primary></indexterm>
+ <glossdef>
+ <para>
+A cursor has an associated hotspot, which defines the point in the
+cursor corresponding to the coordinates reported for the pointer.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Identifier">
+ <glossterm>Identifier</glossterm>
+<indexterm significance="preferred"><primary>Identifier</primary></indexterm>
+ <glossdef>
+ <para>
+An identifier is a unique value associated with a resource
+that clients use to name that resource.
+The identifier can be used over any connection to name the resource.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Inferiors">
+ <glossterm>Inferiors</glossterm>
+<indexterm significance="preferred"><primary>Inferiors</primary></indexterm>
+ <glossdef>
+ <para>
+The inferiors of a window are all of the subwindows nested below it:
+the children, the children's children, and so on.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Input_focus">
+ <glossterm>Input focus</glossterm>
+<indexterm significance="preferred"><primary>Input</primary><secondary>focus</secondary></indexterm>
+ <glossdef>
+ <para>
+The input focus is usually a window defining the scope for processing
+of keyboard input.
+If a generated keyboard event usually would be reported to this window
+or one of its inferiors,
+the event is reported as usual.
+Otherwise, the event is reported with respect to the focus window.
+The input focus also can be set such that all keyboard events are discarded
+and such that the focus window is dynamically taken to be the root window
+of whatever screen the pointer is on at each keyboard event.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Input_manager">
+ <glossterm>Input manager</glossterm>
+<indexterm significance="preferred"><primary>Input</primary><secondary>manager</secondary></indexterm>
+ <glossdef>
+ <para>
+Control over keyboard input is typically provided by an input manager
+client, which usually is part of a window manager.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:InputOnly_window">
+ <glossterm>InputOnly window</glossterm>
+<indexterm significance="preferred"><primary>Window</primary><secondary>InputOnly</secondary></indexterm>
+ <glossdef>
+ <para>
+An
+<symbol>InputOnly</symbol>
+window is a window that cannot be used for graphics requests.
+<symbol>InputOnly</symbol>
+windows are invisible and are used to control such things as cursors,
+input event generation, and grabbing.
+<symbol>InputOnly</symbol>
+windows cannot have
+<symbol>InputOutput</symbol>
+windows as inferiors.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:InputOutput_window">
+ <glossterm>InputOutput window</glossterm>
+<indexterm significance="preferred"><primary>Window</primary><secondary>InputOutput</secondary></indexterm>
+ <glossdef>
+ <para>
+An
+<symbol>InputOutput</symbol>
+window is the normal kind of window that is used for both input and output.
+<symbol>InputOutput</symbol>
+windows can have both
+<symbol>InputOutput</symbol>
+and
+<symbol>InputOnly</symbol>
+windows as inferiors.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Internationalization">
+ <glossterm>Internationalization</glossterm>
+<indexterm significance="preferred"><primary>Internationalization</primary></indexterm>
+ <glossdef>
+ <para>
+The process of making software adaptable to the requirements
+of different native languages, local customs, and character string encodings.
+Making a computer program adaptable to different locales
+without program source modifications or recompilation.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:ISO2022">
+ <glossterm>ISO2022</glossterm>
+<indexterm significance="preferred"><primary>ISO2022</primary></indexterm>
+ <glossdef>
+ <para>
+ISO standard for code extension techniques for 7-bit and 8-bit coded
+character sets.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Key_grabbing">
+ <glossterm>Key grabbing</glossterm>
+<indexterm significance="preferred"><primary>Key</primary><secondary>grabbing</secondary></indexterm>
+ <glossdef>
+ <para>
+Keys on the keyboard can be passively grabbed by a client.
+When the key is pressed,
+the keyboard is then actively grabbed by the client.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Keyboard_grabbing">
+ <glossterm>Keyboard grabbing</glossterm>
+<indexterm significance="preferred"><primary>Keyboard</primary><secondary>grabbing</secondary></indexterm>
+ <glossdef>
+ <para>
+A client can actively grab control of the keyboard, and key events
+will be sent to that client rather than the client the events would
+normally have been sent to.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Keysym">
+ <glossterm>Keysym</glossterm>
+<indexterm significance="preferred"><primary>Keysym</primary></indexterm>
+ <glossdef>
+ <para>
+An encoding of a symbol on a keycap on a keyboard.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Latin-1">
+ <glossterm>Latin-1</glossterm>
+<indexterm significance="preferred"><primary>Latin-1</primary></indexterm>
+ <glossdef>
+ <para>
+The coded character set defined by the ISO8859-1 standard.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Latin_Portable_Character_Encoding">
+ <glossterm>Latin Portable Character Encoding</glossterm>
+<indexterm significance="preferred"><primary>Latin Portable Character Encoding</primary></indexterm>
+ <glossdef>
+ <para>
+The encoding of the X Portable Character Set using the Latin-1 codepoints
+plus ASCII control characters.
+If a string is said to be in the Latin Portable Character Encoding,
+then it only contains characters from the X Portable Character Set,
+not all of Latin-1.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Locale">
+ <glossterm>Locale</glossterm>
+<indexterm significance="preferred"><primary>Locale</primary></indexterm>
+ <glossdef>
+ <para>
+The international environment of a computer program defining the ``localized''
+behavior of that program at run-time.
+This information can be established from one or more sets of localization data.
+ANSI C defines locale-specific processing by C system library calls.
+See ANSI C and the X/Open Portability Guide specifications for more details.
+In this specification, on implementations that conform to the ANSI C library,
+the ``current locale'' is the current setting of the LC_CTYPE
+<function>setlocale</function>
+category.
+Associated with each locale is a text encoding. When text is processed
+in the context of a locale, the text must be in the encoding of the locale.
+The current locale affects Xlib in its:
+ <itemizedlist>
+ <listitem><para>
+Encoding and processing of input method text
+ </para></listitem>
+ <listitem><para>
+Encoding of resource files and values
+ </para></listitem>
+ <listitem><para>
+Encoding and imaging of text strings
+ </para></listitem>
+ <listitem><para>
+Encoding and decoding for inter-client text communication
+ </para></listitem>
+ </itemizedlist></para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Locale_name">
+ <glossterm>Locale name</glossterm>
+<indexterm significance="preferred"><primary>Locale name</primary></indexterm>
+ <glossdef>
+ <para>
+The identifier used to select the desired locale for the host C library
+and X library functions.
+On ANSI C library compliant systems,
+the locale argument to the
+<function>setlocale</function>
+function.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Localization">
+ <glossterm>Localization</glossterm>
+<indexterm significance="preferred"><primary>Localization</primary></indexterm>
+ <glossdef>
+ <para>
+The process of establishing information within a computer system specific
+to the operation of particular native languages, local customs
+and coded character sets.
+(XPG3)
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Mapped">
+ <glossterm>Mapped</glossterm>
+<indexterm significance="preferred"><primary>Mapped window</primary></indexterm>
+ <glossdef>
+ <para>
+A window is said to be mapped if a map call has been performed on it.
+Unmapped windows and their inferiors are never viewable or visible.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Modifier_keys">
+ <glossterm>Modifier keys</glossterm>
+<indexterm significance="preferred"><primary>Modifier keys</primary></indexterm>
+ <glossdef>
+ <para>
+Shift, Control, Meta, Super, Hyper, Alt, Compose, Apple, CapsLock,
+ShiftLock, and similar keys are called modifier keys.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Monochrome">
+ <glossterm>Monochrome</glossterm>
+<indexterm significance="preferred"><primary>Monochrome</primary></indexterm>
+ <glossdef>
+ <para>
+Monochrome is a special case of
+<glossterm linkend="glossary:StaticGray"><symbol>StaticGray</symbol></glossterm>
+in which there are only two colormap entries.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Multibyte">
+ <glossterm>Multibyte</glossterm>
+<indexterm significance="preferred"><primary>Multibyte</primary></indexterm>
+ <glossdef>
+ <para>
+A character whose codepoint is stored in more than one byte;
+any encoding which can contain multibyte characters;
+text in a multibyte encoding.
+The ``<type>char *</type>'' null-terminated string datatype in ANSI C.
+Note that references in this document to multibyte strings
+imply only that the strings <emphasis remap='I'>may</emphasis> contain multibyte characters.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Obscure">
+ <glossterm>Obscure</glossterm>
+<indexterm significance="preferred"><primary>Obscure</primary></indexterm>
+ <glossdef>
+ <para>
+A window is obscured if some other window obscures it.
+A window can be partially obscured and so still have visible regions.
+Window A obscures window B if both are viewable
+<symbol>InputOutput</symbol>
+windows, if A is higher in the global stacking order,
+and if the rectangle defined by the outside
+edges of A intersects the rectangle defined by the outside edges of B.
+Note the distinction between obscures and occludes.
+Also note that window borders are included in the calculation.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Occlude">
+ <glossterm>Occlude</glossterm>
+<indexterm significance="preferred"><primary>Occlude</primary></indexterm>
+ <glossdef>
+ <para>
+A window is occluded if some other window occludes it.
+Window A occludes window B if both are mapped,
+if A is higher in the global stacking order,
+and if the rectangle defined by the outside edges of A intersects the rectangle defined
+by the outside edges of B.
+Note the distinction between occludes and obscures.
+Also note that window borders are included in the calculation
+and that
+<symbol>InputOnly</symbol>
+windows never obscure other windows but can occlude other windows.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Padding">
+ <glossterm>Padding</glossterm>
+<indexterm significance="preferred"><primary>Padding</primary></indexterm>
+ <glossdef>
+ <para>
+Some padding bytes are inserted in the data stream to maintain
+alignment of the protocol requests on natural boundaries.
+This increases ease of portability to some machine architectures.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Parent_window">
+ <glossterm>Parent window</glossterm>
+<indexterm significance="preferred"><primary>Window</primary><secondary>parent</secondary></indexterm>
+ <glossdef>
+ <para>
+If C is a child of P, then P is the parent of C.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Passive_grab">
+ <glossterm>Passive grab</glossterm>
+<indexterm significance="preferred"><primary>Passive grab</primary></indexterm>
+ <glossdef>
+ <para>
+Grabbing a key or button is a passive grab.
+The grab activates when the key or button is actually pressed.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Pixel_value">
+ <glossterm>Pixel value</glossterm>
+<indexterm significance="preferred"><primary>Pixel value</primary></indexterm>
+ <glossdef>
+ <para>
+A pixel is an N-bit value,
+where N is the number of bit planes used in a particular window or pixmap
+(that is, is the depth of the window or pixmap).
+A pixel in a window indexes a colormap to derive an actual color to be
+displayed.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Pixmap">
+ <glossterm>Pixmap</glossterm>
+<indexterm significance="preferred"><primary>Pixmap</primary></indexterm>
+ <glossdef>
+ <para>
+A pixmap is a three-dimensional array of bits.
+A pixmap is normally thought of as a two-dimensional array of pixels,
+where each pixel can be a value from 0 to 2<superscript>N</superscript>-1,
+and where N is the depth (z axis) of the pixmap.
+A pixmap can also be thought of as a stack of N bitmaps.
+A pixmap can only be used on the screen that it was created in.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Plane">
+ <glossterm>Plane</glossterm>
+<indexterm significance="preferred"><primary>Plane</primary></indexterm>
+ <glossdef>
+ <para>
+When a pixmap or window is thought of as a stack of bitmaps, each
+bitmap is called a plane or bit plane.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Plane_mask">
+ <glossterm>Plane mask</glossterm>
+<indexterm significance="preferred"><primary>Plane</primary><secondary>mask</secondary></indexterm>
+ <glossdef>
+ <para>
+Graphics operations can be restricted to only affect a subset of bit
+planes of a destination.
+A plane mask is a bit mask describing which planes are to be modified.
+The plane mask is stored in a graphics context.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Pointer">
+ <glossterm>Pointer</glossterm>
+<indexterm significance="preferred"><primary>Pointer</primary></indexterm>
+ <glossdef>
+ <para>
+The pointer is the pointing device currently attached to the cursor
+and tracked on the screens.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Pointer_grabbing">
+ <glossterm>Pointer grabbing</glossterm>
+<indexterm significance="preferred"><primary>Pointer</primary><secondary>grabbing</secondary></indexterm>
+ <glossdef>
+ <para>
+A client can actively grab control of the pointer.
+Then button and motion events will be sent to that client
+rather than the client the events would normally have been sent to.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Pointing_device">
+ <glossterm>Pointing device</glossterm>
+<indexterm significance="preferred"><primary>Pointing device</primary></indexterm>
+ <glossdef>
+ <para>
+A pointing device is typically a mouse, tablet, or some other
+device with effective dimensional motion.
+The core protocol defines only one visible cursor,
+which tracks whatever pointing device is attached as the pointer.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:POSIX">
+ <glossterm><acronym>POSIX</acronym></glossterm>
+<indexterm significance="preferred"><primary><acronym>POSIX</acronym></primary></indexterm>
+ <glossdef>
+ <para>
+Portable Operating System Interface, ISO/IEC 9945-1 (IEEE Std 1003.1).
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:POSIX_Portable_Filename_Character_Set">
+ <glossterm><acronym>POSIX</acronym> Portable Filename Character Set</glossterm>
+<indexterm significance="preferred"><primary><acronym>POSIX</acronym> Portable Filename Character Set</primary></indexterm>
+ <glossdef>
+ <para>
+The set of 65 characters which can be used in naming files on a <acronym>POSIX</acronym>-compliant
+host that are correctly processed in all locales.
+The set is:
+</para>
+ <para>
+<!-- .Ds 0 -->
+a..z A..Z 0..9 ._-
+<!-- .De -->
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Property">
+ <glossterm>Property</glossterm>
+<indexterm significance="preferred"><primary>Property</primary></indexterm>
+ <glossdef>
+ <para>
+Windows can have associated properties that consist of a name, a type,
+a data format, and some data.
+The protocol places no interpretation on properties.
+They are intended as a general-purpose naming mechanism for clients.
+For example, clients might use properties to share information such as resize
+hints, program names, and icon formats with a window manager.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Property_list">
+ <glossterm>Property list</glossterm>
+<indexterm significance="preferred"><primary>Property list</primary></indexterm>
+ <glossdef>
+ <para>
+The property list of a window is the list of properties that have
+been defined for the window.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:PseudoColor">
+ <glossterm>PseudoColor</glossterm>
+<indexterm significance="preferred"><primary>PseudoColor</primary></indexterm>
+ <glossdef>
+ <para>
+<symbol>PseudoColor</symbol>
+is a class of colormap in which a pixel value indexes the colormap entry to
+produce an independent <acronym>RGB</acronym> value;
+that is, the colormap is viewed as an array of triples (<acronym>RGB</acronym> values).
+The <acronym>RGB</acronym> values can be changed dynamically.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Rectangle">
+ <glossterm>Rectangle</glossterm>
+<indexterm significance="preferred"><primary>Rectangle</primary></indexterm>
+ <glossdef>
+ <para>
+A rectangle specified by [x,y,w,h] has an infinitely thin
+outline path with corners at [x,y], [x+w,y], [x+w,y+h], and [x, y+h].
+When a rectangle is filled,
+the lower-right edges are not drawn.
+For example,
+if w=h=0,
+nothing would be drawn.
+For w=h=1,
+a single pixel would be drawn.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Redirecting_control">
+ <glossterm>Redirecting control</glossterm>
+<indexterm significance="preferred"><primary>Redirecting control</primary></indexterm>
+ <glossdef>
+ <para>
+Window managers (or client programs) may enforce window layout
+policy in various ways.
+When a client attempts to change the size or position of a window,
+the operation may be redirected to a specified client
+rather than the operation actually being performed.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Reply">
+ <glossterm>Reply</glossterm>
+<indexterm significance="preferred"><primary>Reply</primary></indexterm>
+ <glossdef>
+ <para>
+Information requested by a client program using the X protocol
+is sent back to the client with a reply.
+Both events and replies are multiplexed on the same connection.
+Most requests do not generate replies,
+but some requests generate multiple replies.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Request">
+ <glossterm>Request</glossterm>
+<indexterm significance="preferred"><primary>Request</primary></indexterm>
+ <glossdef>
+ <para>
+A command to the server is called a request.
+It is a single block of data sent over a connection.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Resource">
+ <glossterm>Resource</glossterm>
+<indexterm significance="preferred"><primary>Resource</primary></indexterm>
+ <glossdef>
+ <para>
+Windows, pixmaps, cursors, fonts, graphics contexts, and colormaps are
+known as resources.
+They all have unique identifiers associated with them for naming purposes.
+The lifetime of a resource usually is bounded by the lifetime of the
+connection over which the resource was created.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:RGB_values">
+ <glossterm><acronym>RGB</acronym> values</glossterm>
+<indexterm significance="preferred"><primary><acronym>RGB</acronym> values</primary></indexterm>
+ <glossdef>
+ <para>
+<acronym>RGB</acronym> values are the red, green, and blue intensity values that are used
+to define a color.
+These values are always represented as 16-bit, unsigned numbers, with 0
+the minimum intensity and 65535 the maximum intensity.
+The X server scales these values to match the display hardware.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Root">
+ <glossterm>Root</glossterm>
+<indexterm significance="preferred"><primary>Root</primary></indexterm>
+ <glossdef>
+ <para>
+The root of a pixmap or graphics context is the same as the root
+of whatever drawable was used when the pixmap or GC was created.
+The root of a window is the root window under which the window was created.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Root_window">
+ <glossterm>Root window</glossterm>
+<indexterm significance="preferred"><primary>Window</primary><secondary>root</secondary></indexterm>
+ <glossdef>
+ <para>
+Each screen has a root window covering it.
+The root window cannot be reconfigured or unmapped,
+but otherwise it acts as a full-fledged window.
+A root window has no parent.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Save_set">
+ <glossterm>Save set</glossterm>
+<indexterm significance="preferred"><primary>Save set</primary></indexterm>
+ <glossdef>
+ <para>
+The save set of a client is a list of other clients' windows that,
+if they are inferiors of one of the client's windows at connection
+close, should not be destroyed and that should be remapped
+if currently unmapped.
+Save sets are typically used by window managers to avoid
+lost windows if the manager should terminate abnormally.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Scanline">
+ <glossterm>Scanline</glossterm>
+<indexterm significance="preferred"><primary>Scanline</primary></indexterm>
+ <glossdef>
+ <para>
+A scanline is a list of pixel or bit values viewed as a horizontal
+row (all values having the same y coordinate) of an image, with the
+values ordered by increasing the x coordinate.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Scanline_order">
+ <glossterm>Scanline order</glossterm>
+<indexterm significance="preferred"><primary>Scanline</primary><secondary>order</secondary></indexterm>
+ <glossdef>
+ <para>
+An image represented in scanline order contains scanlines ordered by
+increasing the y coordinate.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Screen">
+ <glossterm>Screen</glossterm>
+<indexterm significance="preferred"><primary>Screen</primary></indexterm>
+<indexterm><primary>Screen</primary><secondary>structure</secondary></indexterm>
+<indexterm><primary>Display</primary><secondary>structure</secondary></indexterm>
+ <glossdef>
+ <para>
+A server can provide several independent screens,
+which typically have physically independent monitors.
+This would be the expected configuration when there is only a single keyboard
+and pointer shared among the screens.
+A
+<type>Screen</type>
+structure contains the information about that screen
+and is linked to the
+<type>Display</type>
+structure.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Selection">
+ <glossterm>Selection</glossterm>
+<indexterm significance="preferred"><primary>Selection</primary></indexterm>
+ <glossdef>
+ <para>
+A selection can be thought of as an indirect property with dynamic
+type.
+That is, rather than having the property stored in the X server,
+it is maintained by some client (the owner).
+A selection is global and is thought of as belonging to the user
+and being maintained by clients,
+rather than being private to a particular window subhierarchy
+or a particular set of clients.
+When a client asks for the contents of
+a selection, it specifies a selection target type,
+which can be used to control the transmitted representation of the contents.
+For example, if the selection is ``the last thing the user clicked on,''
+and that is currently an image, then the target type might specify
+whether the contents of the image should be sent in XY format or
+Z format.
+</para>
+ <para>
+The target type can also be used to control the class of
+contents transmitted; for example,
+asking for the ``looks'' (fonts, line
+spacing, indentation, and so forth) of a paragraph selection, rather than the
+text of the paragraph.
+The target type can also be used for other
+purposes.
+The protocol does not constrain the semantics.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Server">
+ <glossterm>Server</glossterm>
+<indexterm significance="preferred"><primary>Server</primary></indexterm>
+ <glossdef>
+ <para>
+The server, which is also referred to as the X server,
+provides the basic windowing mechanism.
+It handles <acronym>IPC</acronym> connections from clients,
+multiplexes graphics requests onto the screens,
+and demultiplexes input back to the appropriate clients.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Server_grabbing">
+ <glossterm>Server grabbing</glossterm>
+<indexterm significance="preferred"><primary>Server</primary><secondary>grabbing</secondary></indexterm>
+ <glossdef>
+ <para>
+The server can be grabbed by a single client for exclusive use.
+This prevents processing of any requests from other client connections until
+the grab is completed.
+This is typically only a transient state for such things as rubber-banding,
+pop-up menus, or executing requests indivisibly.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Shift_sequence">
+ <glossterm>Shift sequence</glossterm>
+<indexterm significance="preferred"><primary>Shift sequence</primary></indexterm>
+ <glossdef>
+ <para>
+ISO2022 defines control characters and escape sequences
+which temporarily (single shift) or permanently (locking shift) cause a
+different character set to be in effect (``invoking'' a character set).
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Sibling">
+ <glossterm>Sibling</glossterm>
+<indexterm significance="preferred"><primary>Sibling</primary></indexterm>
+ <glossdef>
+ <para>
+Children of the same parent window are known as sibling windows.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Stacking_order">
+ <glossterm>Stacking order</glossterm>
+<indexterm significance="preferred"><primary>Stacking order</primary></indexterm>
+ <glossdef>
+ <para>
+Sibling windows, similar to sheets of paper on a desk,
+can stack on top of each other.
+Windows above both obscure and occlude lower windows.
+The relationship between sibling windows is known as the stacking order.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:State-dependent_encoding">
+ <glossterm>State-dependent encoding</glossterm>
+<indexterm significance="preferred"><primary>State-dependent encoding</primary></indexterm>
+ <glossdef>
+ <para>
+An encoding in which an invocation of a charset can apply to multiple
+characters in sequence.
+A state-dependent encoding begins in an ``initial state''
+and enters other ``shift states'' when specific ``shift sequences''
+are encountered in the byte sequence.
+In ISO2022 terms,
+this means use of locking shifts, not single shifts.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:State-independent_encoding">
+ <glossterm>State-independent encoding</glossterm>
+<indexterm significance="preferred"><primary>State-independent encoding</primary></indexterm>
+ <glossdef>
+ <para>
+Any encoding in which the invocations of the charsets are fixed,
+or span only a single character.
+In ISO2022 terms,
+this means use of at most single shifts, not locking shifts.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:StaticColor">
+ <glossterm>StaticColor</glossterm>
+<indexterm significance="preferred"><primary>StaticColor</primary></indexterm>
+ <glossdef>
+ <para>
+<symbol>StaticColor</symbol>
+can be viewed as a degenerate case of
+<glossterm linkend="glossary:PseudoColor"><symbol>PseudoColor</symbol></glossterm>
+in which the <acronym>RGB</acronym> values are predefined and read-only.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:StaticGray">
+ <glossterm>StaticGray</glossterm>
+<indexterm significance="preferred"><primary>StaticGray</primary></indexterm>
+ <glossdef>
+ <para>
+<symbol>StaticGray</symbol>
+can be viewed as a degenerate case of
+<glossterm linkend="glossary:GrayScale"><symbol>GrayScale</symbol></glossterm>
+in which the gray values are predefined and read-only.
+The values are typically linear or near-linear increasing ramps.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Status">
+ <glossterm>Status</glossterm>
+<indexterm significance="preferred"><primary>Status</primary></indexterm>
+ <glossdef>
+ <para>
+Many Xlib functions return a success status.
+If the function does not succeed,
+however, its arguments are not disturbed.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Stipple">
+ <glossterm>Stipple</glossterm>
+<indexterm significance="preferred"><primary>Stipple</primary></indexterm>
+ <glossdef>
+ <para>
+A stipple pattern is a bitmap that is used to tile a region to serve
+as an additional clip mask for a fill operation with the foreground
+color.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:STRING_encoding">
+ <glossterm>STRING encoding</glossterm>
+ <glossdef>
+ <para>
+<glossterm linkend="glossary:Latin-1">Latin-1</glossterm>, plus tab and newline.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:String_Equivalence">
+ <glossterm>String Equivalence</glossterm>
+<indexterm significance="preferred"><primary>String Equivalence</primary></indexterm>
+ <glossdef>
+ <para>
+Two ISO Latin-1 STRING8 values are considered equal if they are the same
+length and if corresponding bytes are either equal or are equivalent as
+follows: decimal values 65 to 90 inclusive (characters ``A'' to ``Z'') are
+pairwise equivalent to decimal values 97 to 122 inclusive
+(characters ``a'' to ``z''), decimal values 192 to 214 inclusive
+(characters ``A grave'' to ``O diaeresis'') are pairwise equivalent to decimal
+values 224 to 246 inclusive (characters ``a grave'' to ``o diaeresis''),
+and decimal values 216 to 222 inclusive (characters ``O oblique'' to ``THORN'')
+are pairwise equivalent to decimal values 246 to 254 inclusive
+(characters ``o oblique'' to ``thorn'').
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Tile">
+ <glossterm>Tile</glossterm>
+<indexterm significance="preferred"><primary>Tile</primary></indexterm>
+ <glossdef>
+ <para>
+A pixmap can be replicated in two dimensions to tile a region.
+The pixmap itself is also known as a tile.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Timestamp">
+ <glossterm>Timestamp</glossterm>
+<indexterm significance="preferred"><primary>Timestamp</primary></indexterm>
+ <glossdef>
+ <para>
+A timestamp is a time value expressed in milliseconds.
+It is typically the time since the last server reset.
+Timestamp values wrap around (after about 49.7 days).
+The server, given its current time is represented by timestamp T,
+always interprets timestamps from clients by treating half
+of the timestamp space as being earlier in time than T
+and half of the timestamp space as being later in time than T.
+One timestamp value, represented by the constant
+<symbol>CurrentTime</symbol>,
+is never generated by the server.
+This value is reserved for use in requests to represent the current server time.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:TrueColor">
+ <glossterm>TrueColor</glossterm>
+<indexterm significance="preferred"><primary>TrueColor</primary></indexterm>
+ <glossdef>
+ <para>
+<symbol>TrueColor</symbol>
+can be viewed as a degenerate case of
+<glossterm linkend="glossary:DirectColor"><symbol>DirectColor</symbol></glossterm>
+in which the subfields in the pixel value directly encode the corresponding <acronym>RGB</acronym>
+values.
+That is, the colormap has predefined read-only <acronym>RGB</acronym> values.
+The values are typically linear or near-linear increasing ramps.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Type">
+ <glossterm>Type</glossterm>
+<indexterm significance="preferred"><primary>Type</primary></indexterm>
+ <glossdef>
+ <para>
+A type is an arbitrary atom used to identify the interpretation of property
+data.
+Types are completely uninterpreted by the server.
+They are solely for the benefit of clients.
+X predefines type atoms for many frequently used types,
+and clients also can define new types.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Viewable">
+ <glossterm>Viewable</glossterm>
+<indexterm significance="preferred"><primary>Viewable</primary></indexterm>
+ <glossdef>
+ <para>
+A window is viewable if it and all of its ancestors are mapped.
+This does not imply that any portion of the window is actually visible.
+Graphics requests can be performed on a window when it is not
+viewable, but output will not be retained unless the server is maintaining
+backing store.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Visible">
+ <glossterm>Visible</glossterm>
+<indexterm significance="preferred"><primary>Visible</primary></indexterm>
+ <glossdef>
+ <para>
+A region of a window is visible if someone looking at the screen can
+actually see it; that is, the window is viewable and the region is not occluded
+by any other window.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Whitespace">
+ <glossterm>Whitespace</glossterm>
+<indexterm significance="preferred"><primary>Whitespace</primary></indexterm>
+ <glossdef>
+ <para>
+Any spacing character.
+On implementations that conform to the ANSI C library,
+whitespace is any character for which
+<function>isspace</function>
+returns true.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Window_gravity">
+ <glossterm>Window gravity</glossterm>
+<indexterm significance="preferred"><primary>Window</primary><secondary>gravity</secondary></indexterm>
+ <glossdef>
+ <para>
+When windows are resized,
+subwindows may be repositioned automatically relative to some position in the
+window.
+This attraction of a subwindow to some part of its parent is known
+as window gravity.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Window_manager">
+ <glossterm>Window manager</glossterm>
+<indexterm significance="preferred"><primary>Window</primary><secondary>manager</secondary></indexterm>
+ <glossdef>
+ <para>
+Manipulation of windows on the screen and much of the user interface
+(policy) is typically provided by a window manager client.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:X_Portable_Character_Set">
+ <glossterm>X Portable Character Set</glossterm>
+<indexterm significance="preferred"><primary>X Portable Character Set</primary></indexterm>
+ <glossdef>
+ <para>
+A basic set of 97 characters which are assumed to exist in all
+locales supported by Xlib. This set contains the following characters:
+ <literallayout>
+a..z A..Z 0..9
+!"#$%&amp;'()*+,-./:;&lt;=&gt;?@[\\]^_`{|}~
+&lt;space&gt;, &lt;tab&gt;, and &lt;newline&gt;
+ </literallayout>
+ </para>
+ <para>
+This is the left/lower half (also called the G0 set)
+of the graphic character set of ISO8859-1 plus &lt;space&gt;, &lt;tab&gt;, and &lt;newline&gt;.
+It is also the set of graphic characters in 7-bit ASCII plus the same
+three control characters.
+The actual encoding of these characters on the host is system dependent;
+see the <glossterm linkend="glossary:Host_Portable_Character_Encoding">Host Portable Character Encoding</glossterm>.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:XLFD">
+ <glossterm><acronym>XLFD</acronym></glossterm>
+<indexterm significance="preferred"><primary><acronym>XLFD</acronym></primary></indexterm>
+ <glossdef>
+ <para>
+The X Logical Font Description Conventions that define a standard syntax
+for structured font names.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:XY_format">
+ <glossterm>XY format</glossterm>
+<indexterm significance="preferred"><primary>XY format</primary></indexterm>
+ <glossdef>
+ <para>
+The data for a pixmap is said to be in XY format if it is organized as
+a set of bitmaps representing individual bit planes with the planes
+appearing from most-significant to least-significant bit order.
+ </para>
+ </glossdef>
+</glossentry>
+<glossentry id="glossary:Z_format">
+ <glossterm>Z format</glossterm>
+<indexterm significance="preferred"><primary>Z format</primary></indexterm>
+ <glossdef>
+ <para>
+The data for a pixmap is said to be in Z format if it is organized as
+a set of pixel values in scanline order.
+ </para>
+ </glossdef>
+</glossentry>
+
+<bibliography>
+<title>References</title>
+<biblioentry>
+<title>Draft Proposed Multibyte Extension of ANSI C, Draft 1.1</title>
+<date>November 30, 1989 SC22/C WG/SWG IPSJ/ITSCJ Japan</date>
+</biblioentry>
+
+<biblioentry>
+<title>ISO2022: Information processing - ISO 7-bit and 8-bit coded character
+sets - Code extension techniques.</title>
+</biblioentry>
+
+<biblioentry>
+<title>ISO8859-1: Information processing - 8-bit single-byte coded graphic
+character sets - Part 1: Latin alphabet No. 1.</title>
+</biblioentry>
+
+<biblioentry>
+<title><acronym>POSIX</acronym>: Information Technology - Portable Operating System Interface (<acronym>POSIX</acronym>) -
+Part 1: System Application Program Interface (API) [C Language],
+ISO/IEC 9945-1.</title>
+</biblioentry>
+
+<biblioentry>
+<title>Text of ISO/IEC/DIS 9541-1, Information Processing - Font Information
+Interchange - Part 1: Architecture.</title>
+</biblioentry>
+
+<biblioentry>
+<title>X/Open Portability Guide, Issue 3, December 1988 (XPG3), X/Open Company,
+Ltd, Prentice-Hall, Inc. 1989. ISBN 0-13-685835-8.
+(See especially Volume 3: XSI Supplementary Definitions.)</title>
+</biblioentry>
+</bibliography>
+
+</glossary>
diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.c b/mesalib/src/gallium/auxiliary/util/u_blitter.c
index 58a52b3f2..89dae9556 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blitter.c
+++ b/mesalib/src/gallium/auxiliary/util/u_blitter.c
@@ -68,6 +68,7 @@ struct blitter_context_priv
/* Fragment shaders. */
/* The shader at index i outputs color to color buffers 0,1,...,i-1. */
void *fs_col[PIPE_MAX_COLOR_BUFS+1];
+ void *fs_col_int[PIPE_MAX_COLOR_BUFS+1];
/* FS which outputs a color from a texture,
where the index is PIPE_TEXTURE_* to be sampled. */
@@ -88,6 +89,8 @@ struct blitter_context_priv
void *dsa_keep_depth_write_stencil;
void *velem_state;
+ void *velem_uint_state;
+ void *velem_sint_state;
/* Sampler state for clamping to a miplevel. */
void *sampler_state[PIPE_MAX_TEXTURE_LEVELS * 2];
@@ -104,6 +107,9 @@ struct blitter_context_priv
/* Destination surface dimensions. */
unsigned dst_width;
unsigned dst_height;
+
+ boolean has_geometry_shader;
+ boolean vertex_has_integers;
};
static void blitter_draw_rectangle(struct blitter_context *blitter,
@@ -137,12 +143,20 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe)
ctx->base.saved_rs_state = INVALID_PTR;
ctx->base.saved_fs = INVALID_PTR;
ctx->base.saved_vs = INVALID_PTR;
+ ctx->base.saved_gs = INVALID_PTR;
ctx->base.saved_velem_state = INVALID_PTR;
ctx->base.saved_fb_state.nr_cbufs = ~0;
ctx->base.saved_num_sampler_views = ~0;
ctx->base.saved_num_sampler_states = ~0;
ctx->base.saved_num_vertex_buffers = ~0;
+ ctx->has_geometry_shader =
+ pipe->screen->get_shader_param(pipe->screen, PIPE_SHADER_GEOMETRY,
+ PIPE_SHADER_CAP_MAX_INSTRUCTIONS) > 0;
+ ctx->vertex_has_integers =
+ pipe->screen->get_shader_param(pipe->screen, PIPE_SHADER_VERTEX,
+ PIPE_SHADER_CAP_INTEGERS);
+
/* blend state objects */
memset(&blend, 0, sizeof(blend));
ctx->blend_keep_color = pipe->create_blend_state(pipe, &blend);
@@ -201,6 +215,30 @@ struct blitter_context *util_blitter_create(struct pipe_context *pipe)
}
ctx->velem_state = pipe->create_vertex_elements_state(pipe, 2, &velem[0]);
+ if (ctx->vertex_has_integers) {
+ memset(&velem[0], 0, sizeof(velem[0]) * 2);
+ for (i = 0; i < 2; i++) {
+ velem[i].src_offset = i * 4 * sizeof(float);
+ if (i == 0) {
+ velem[i].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
+ } else {
+ velem[i].src_format = PIPE_FORMAT_R32G32B32A32_SINT;
+ }
+ }
+ ctx->velem_sint_state = pipe->create_vertex_elements_state(pipe, 2, &velem[0]);
+
+ memset(&velem[0], 0, sizeof(velem[0]) * 2);
+ for (i = 0; i < 2; i++) {
+ velem[i].src_offset = i * 4 * sizeof(float);
+ if (i == 0) {
+ velem[i].src_format = PIPE_FORMAT_R32G32B32A32_FLOAT;
+ } else {
+ velem[i].src_format = PIPE_FORMAT_R32G32B32A32_UINT;
+ }
+ }
+ ctx->velem_uint_state = pipe->create_vertex_elements_state(pipe, 2, &velem[0]);
+ }
+
/* fragment shaders are created on-demand */
/* vertex shader */
@@ -243,6 +281,10 @@ void util_blitter_destroy(struct blitter_context *blitter)
pipe->delete_rasterizer_state(pipe, ctx->rs_state);
pipe->delete_vs_state(pipe, ctx->vs);
pipe->delete_vertex_elements_state(pipe, ctx->velem_state);
+ if (ctx->vertex_has_integers) {
+ pipe->delete_vertex_elements_state(pipe, ctx->velem_sint_state);
+ pipe->delete_vertex_elements_state(pipe, ctx->velem_uint_state);
+ }
for (i = 0; i < PIPE_MAX_TEXTURE_TYPES; i++) {
if (ctx->fs_texfetch_col[i])
@@ -251,9 +293,12 @@ void util_blitter_destroy(struct blitter_context *blitter)
pipe->delete_fs_state(pipe, ctx->fs_texfetch_depth[i]);
}
- for (i = 0; i <= PIPE_MAX_COLOR_BUFS; i++)
+ for (i = 0; i <= PIPE_MAX_COLOR_BUFS; i++) {
if (ctx->fs_col[i])
pipe->delete_fs_state(pipe, ctx->fs_col[i]);
+ if (ctx->fs_col_int[i])
+ pipe->delete_fs_state(pipe, ctx->fs_col_int[i]);
+ }
for (i = 0; i < PIPE_MAX_TEXTURE_LEVELS * 2; i++)
if (ctx->sampler_state[i])
@@ -263,100 +308,140 @@ void util_blitter_destroy(struct blitter_context *blitter)
FREE(ctx);
}
-static void blitter_check_saved_CSOs(struct blitter_context_priv *ctx)
+static void blitter_set_running_flag(struct blitter_context_priv *ctx)
{
if (ctx->base.running) {
- _debug_printf("u_blitter: Caught recursion on save. "
- "This is a driver bug.\n");
+ _debug_printf("u_blitter:%i: Caught recursion. This is a driver bug.\n",
+ __LINE__);
}
ctx->base.running = TRUE;
+}
- /* make sure these CSOs have been saved */
- assert(ctx->base.saved_blend_state != INVALID_PTR &&
- ctx->base.saved_dsa_state != INVALID_PTR &&
- ctx->base.saved_rs_state != INVALID_PTR &&
- ctx->base.saved_fs != INVALID_PTR &&
+static void blitter_unset_running_flag(struct blitter_context_priv *ctx)
+{
+ if (!ctx->base.running) {
+ _debug_printf("u_blitter:%i: Caught recursion. This is a driver bug.\n",
+ __LINE__);
+ }
+ ctx->base.running = FALSE;
+}
+
+static void blitter_check_saved_vertex_states(struct blitter_context_priv *ctx)
+{
+ assert(ctx->base.saved_num_vertex_buffers != ~0 &&
+ ctx->base.saved_velem_state != INVALID_PTR &&
ctx->base.saved_vs != INVALID_PTR &&
- ctx->base.saved_velem_state != INVALID_PTR);
+ (!ctx->has_geometry_shader || ctx->base.saved_gs != INVALID_PTR) &&
+ ctx->base.saved_rs_state != INVALID_PTR);
}
-static void blitter_restore_CSOs(struct blitter_context_priv *ctx)
+static void blitter_restore_vertex_states(struct blitter_context_priv *ctx)
{
struct pipe_context *pipe = ctx->base.pipe;
unsigned i;
- /* restore the state objects which are always required to be saved */
- pipe->bind_rasterizer_state(pipe, ctx->base.saved_rs_state);
- pipe->bind_vs_state(pipe, ctx->base.saved_vs);
+ /* Vertex buffers. */
+ pipe->set_vertex_buffers(pipe,
+ ctx->base.saved_num_vertex_buffers,
+ ctx->base.saved_vertex_buffers);
+
+ for (i = 0; i < ctx->base.saved_num_vertex_buffers; i++) {
+ if (ctx->base.saved_vertex_buffers[i].buffer) {
+ pipe_resource_reference(&ctx->base.saved_vertex_buffers[i].buffer,
+ NULL);
+ }
+ }
+ ctx->base.saved_num_vertex_buffers = ~0;
+
+ /* Vertex elements. */
pipe->bind_vertex_elements_state(pipe, ctx->base.saved_velem_state);
+ ctx->base.saved_velem_state = INVALID_PTR;
- ctx->base.saved_rs_state = INVALID_PTR;
+ /* Vertex shader. */
+ pipe->bind_vs_state(pipe, ctx->base.saved_vs);
ctx->base.saved_vs = INVALID_PTR;
- ctx->base.saved_velem_state = INVALID_PTR;
- /* restore the state objects which are required to be saved for clear/copy
- */
- if (ctx->base.saved_blend_state != INVALID_PTR) {
- pipe->bind_blend_state(pipe, ctx->base.saved_blend_state);
- ctx->base.saved_blend_state = INVALID_PTR;
- }
- if (ctx->base.saved_dsa_state != INVALID_PTR) {
- pipe->bind_depth_stencil_alpha_state(pipe, ctx->base.saved_dsa_state);
- ctx->base.saved_dsa_state = INVALID_PTR;
- }
- if (ctx->base.saved_fs != INVALID_PTR) {
- pipe->bind_fs_state(pipe, ctx->base.saved_fs);
- ctx->base.saved_fs = INVALID_PTR;
+ /* Geometry shader. */
+ if (ctx->has_geometry_shader) {
+ pipe->bind_gs_state(pipe, ctx->base.saved_gs);
+ ctx->base.saved_gs = INVALID_PTR;
}
+ /* Rasterizer. */
+ pipe->bind_rasterizer_state(pipe, ctx->base.saved_rs_state);
+ ctx->base.saved_rs_state = INVALID_PTR;
+}
+
+static void blitter_check_saved_fragment_states(struct blitter_context_priv *ctx)
+{
+ assert(ctx->base.saved_fs != INVALID_PTR &&
+ ctx->base.saved_dsa_state != INVALID_PTR &&
+ ctx->base.saved_blend_state != INVALID_PTR);
+}
+
+static void blitter_restore_fragment_states(struct blitter_context_priv *ctx)
+{
+ struct pipe_context *pipe = ctx->base.pipe;
+
+ /* Fragment shader. */
+ pipe->bind_fs_state(pipe, ctx->base.saved_fs);
+ ctx->base.saved_fs = INVALID_PTR;
+
+ /* Depth, stencil, alpha. */
+ pipe->bind_depth_stencil_alpha_state(pipe, ctx->base.saved_dsa_state);
+ ctx->base.saved_dsa_state = INVALID_PTR;
+
+ /* Blend state. */
+ pipe->bind_blend_state(pipe, ctx->base.saved_blend_state);
+ ctx->base.saved_blend_state = INVALID_PTR;
+
+ /* Miscellaneous states. */
+ /* XXX check whether these are saved and whether they need to be restored
+ * (depending on the operation) */
pipe->set_stencil_ref(pipe, &ctx->base.saved_stencil_ref);
pipe->set_viewport_state(pipe, &ctx->base.saved_viewport);
pipe->set_clip_state(pipe, &ctx->base.saved_clip);
+}
- if (ctx->base.saved_fb_state.nr_cbufs != ~0) {
- pipe->set_framebuffer_state(pipe, &ctx->base.saved_fb_state);
- util_unreference_framebuffer_state(&ctx->base.saved_fb_state);
- ctx->base.saved_fb_state.nr_cbufs = ~0;
- }
+static void blitter_check_saved_fb_state(struct blitter_context_priv *ctx)
+{
+ assert(ctx->base.saved_fb_state.nr_cbufs != ~0);
+}
- if (ctx->base.saved_num_sampler_states != ~0) {
- pipe->bind_fragment_sampler_states(pipe,
- ctx->base.saved_num_sampler_states,
- ctx->base.saved_sampler_states);
- ctx->base.saved_num_sampler_states = ~0;
- }
+static void blitter_restore_fb_state(struct blitter_context_priv *ctx)
+{
+ struct pipe_context *pipe = ctx->base.pipe;
- if (ctx->base.saved_num_sampler_views != ~0) {
- pipe->set_fragment_sampler_views(pipe,
- ctx->base.saved_num_sampler_views,
- ctx->base.saved_sampler_views);
+ pipe->set_framebuffer_state(pipe, &ctx->base.saved_fb_state);
+ util_unreference_framebuffer_state(&ctx->base.saved_fb_state);
+}
- for (i = 0; i < ctx->base.saved_num_sampler_views; i++)
- pipe_sampler_view_reference(&ctx->base.saved_sampler_views[i],
- NULL);
+static void blitter_check_saved_textures(struct blitter_context_priv *ctx)
+{
+ assert(ctx->base.saved_num_sampler_states != ~0 &&
+ ctx->base.saved_num_sampler_views != ~0);
+}
- ctx->base.saved_num_sampler_views = ~0;
- }
+static void blitter_restore_textures(struct blitter_context_priv *ctx)
+{
+ struct pipe_context *pipe = ctx->base.pipe;
+ unsigned i;
- if (ctx->base.saved_num_vertex_buffers != ~0) {
- pipe->set_vertex_buffers(pipe,
- ctx->base.saved_num_vertex_buffers,
- ctx->base.saved_vertex_buffers);
+ /* Fragment sampler states. */
+ pipe->bind_fragment_sampler_states(pipe,
+ ctx->base.saved_num_sampler_states,
+ ctx->base.saved_sampler_states);
+ ctx->base.saved_num_sampler_states = ~0;
- for (i = 0; i < ctx->base.saved_num_vertex_buffers; i++) {
- if (ctx->base.saved_vertex_buffers[i].buffer) {
- pipe_resource_reference(&ctx->base.saved_vertex_buffers[i].buffer,
- NULL);
- }
- }
- ctx->base.saved_num_vertex_buffers = ~0;
- }
+ /* Fragment sampler views. */
+ pipe->set_fragment_sampler_views(pipe,
+ ctx->base.saved_num_sampler_views,
+ ctx->base.saved_sampler_views);
- if (!ctx->base.running) {
- _debug_printf("u_blitter: Caught recursion on restore. "
- "This is a driver bug.\n");
- }
- ctx->base.running = FALSE;
+ for (i = 0; i < ctx->base.saved_num_sampler_views; i++)
+ pipe_sampler_view_reference(&ctx->base.saved_sampler_views[i], NULL);
+
+ ctx->base.saved_num_sampler_views = ~0;
}
static void blitter_set_rectangle(struct blitter_context_priv *ctx,
@@ -404,10 +489,11 @@ static void blitter_set_clear_color(struct blitter_context_priv *ctx,
if (color) {
for (i = 0; i < 4; i++) {
- ctx->vertices[i][1][0] = color->f[0];
- ctx->vertices[i][1][1] = color->f[1];
- ctx->vertices[i][1][2] = color->f[2];
- ctx->vertices[i][1][3] = color->f[3];
+ uint32_t *uiverts = (uint32_t *)ctx->vertices[i][1];
+ uiverts[0] = color->ui[0];
+ uiverts[1] = color->ui[1];
+ uiverts[2] = color->ui[2];
+ uiverts[3] = color->ui[3];
}
} else {
for (i = 0; i < 4; i++) {
@@ -562,19 +648,28 @@ void **blitter_get_sampler_state(struct blitter_context_priv *ctx,
}
static INLINE
-void *blitter_get_fs_col(struct blitter_context_priv *ctx, unsigned num_cbufs)
+void *blitter_get_fs_col(struct blitter_context_priv *ctx, unsigned num_cbufs,
+ boolean int_format)
{
struct pipe_context *pipe = ctx->base.pipe;
assert(num_cbufs <= PIPE_MAX_COLOR_BUFS);
- if (!ctx->fs_col[num_cbufs])
- ctx->fs_col[num_cbufs] =
- util_make_fragment_cloneinput_shader(pipe, num_cbufs,
- TGSI_SEMANTIC_GENERIC,
- TGSI_INTERPOLATE_LINEAR);
-
- return ctx->fs_col[num_cbufs];
+ if (int_format) {
+ if (!ctx->fs_col_int[num_cbufs])
+ ctx->fs_col_int[num_cbufs] =
+ util_make_fragment_cloneinput_shader(pipe, num_cbufs,
+ TGSI_SEMANTIC_GENERIC,
+ TGSI_INTERPOLATE_CONSTANT);
+ return ctx->fs_col_int[num_cbufs];
+ } else {
+ if (!ctx->fs_col[num_cbufs])
+ ctx->fs_col[num_cbufs] =
+ util_make_fragment_cloneinput_shader(pipe, num_cbufs,
+ TGSI_SEMANTIC_GENERIC,
+ TGSI_INTERPOLATE_LINEAR);
+ return ctx->fs_col[num_cbufs];
+ }
}
/** Convert PIPE_TEXTURE_x to TGSI_TEXTURE_x */
@@ -674,6 +769,7 @@ static void util_blitter_clear_custom(struct blitter_context *blitter,
unsigned width, unsigned height,
unsigned num_cbufs,
unsigned clear_buffers,
+ enum pipe_format cbuf_format,
const union pipe_color_union *color,
double depth, unsigned stencil,
void *custom_blend, void *custom_dsa)
@@ -681,12 +777,14 @@ static void util_blitter_clear_custom(struct blitter_context *blitter,
struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter;
struct pipe_context *pipe = ctx->base.pipe;
struct pipe_stencil_ref sr = { { 0 } };
-
+ boolean int_format = util_format_is_pure_integer(cbuf_format);
assert(num_cbufs <= PIPE_MAX_COLOR_BUFS);
- blitter_check_saved_CSOs(ctx);
+ blitter_set_running_flag(ctx);
+ blitter_check_saved_vertex_states(ctx);
+ blitter_check_saved_fragment_states(ctx);
- /* bind CSOs */
+ /* bind states */
if (custom_blend) {
pipe->bind_blend_state(pipe, custom_blend);
} else if (clear_buffers & PIPE_CLEAR_COLOR) {
@@ -711,25 +809,37 @@ static void util_blitter_clear_custom(struct blitter_context *blitter,
pipe->set_stencil_ref(pipe, &sr);
pipe->bind_rasterizer_state(pipe, ctx->rs_state);
- pipe->bind_vertex_elements_state(pipe, ctx->velem_state);
- pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, num_cbufs));
+ if (util_format_is_pure_sint(cbuf_format)) {
+ pipe->bind_vertex_elements_state(pipe, ctx->velem_sint_state);
+ } else if (util_format_is_pure_uint(cbuf_format)) {
+ pipe->bind_vertex_elements_state(pipe, ctx->velem_uint_state);
+ } else {
+ pipe->bind_vertex_elements_state(pipe, ctx->velem_state);
+ }
+ pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, num_cbufs, int_format));
pipe->bind_vs_state(pipe, ctx->vs);
+ if (ctx->has_geometry_shader)
+ pipe->bind_gs_state(pipe, NULL);
blitter_set_dst_dimensions(ctx, width, height);
blitter->draw_rectangle(blitter, 0, 0, width, height, depth,
UTIL_BLITTER_ATTRIB_COLOR, color);
- blitter_restore_CSOs(ctx);
+
+ blitter_restore_vertex_states(ctx);
+ blitter_restore_fragment_states(ctx);
+ blitter_unset_running_flag(ctx);
}
void util_blitter_clear(struct blitter_context *blitter,
unsigned width, unsigned height,
unsigned num_cbufs,
unsigned clear_buffers,
+ enum pipe_format cbuf_format,
const union pipe_color_union *color,
double depth, unsigned stencil)
{
util_blitter_clear_custom(blitter, width, height, num_cbufs,
- clear_buffers, color, depth, stencil,
+ clear_buffers, cbuf_format, color, depth, stencil,
NULL, NULL);
}
@@ -739,7 +849,7 @@ void util_blitter_clear_depth_custom(struct blitter_context *blitter,
{
static const union pipe_color_union color;
util_blitter_clear_custom(blitter, width, height, 0,
- 0, &color, depth, 0, NULL, custom_dsa);
+ 0, PIPE_FORMAT_NONE, &color, depth, 0, NULL, custom_dsa);
}
static
@@ -817,10 +927,11 @@ void util_blitter_copy_texture(struct blitter_context *blitter,
dstsurf = pipe->create_surface(pipe, dst, &surf_templ);
/* Check whether the states are properly saved. */
- blitter_check_saved_CSOs(ctx);
- assert(blitter->saved_fb_state.nr_cbufs != ~0);
- assert(blitter->saved_num_sampler_views != ~0);
- assert(blitter->saved_num_sampler_states != ~0);
+ blitter_set_running_flag(ctx);
+ blitter_check_saved_vertex_states(ctx);
+ blitter_check_saved_fragment_states(ctx);
+ blitter_check_saved_textures(ctx);
+ blitter_check_saved_fb_state(ctx);
/* Initialize framebuffer state. */
fb_state.width = dstsurf->width;
@@ -855,6 +966,8 @@ void util_blitter_copy_texture(struct blitter_context *blitter,
/* Set rasterizer state, shaders, and textures. */
pipe->bind_rasterizer_state(pipe, ctx->rs_state);
pipe->bind_vs_state(pipe, ctx->vs);
+ if (ctx->has_geometry_shader)
+ pipe->bind_gs_state(pipe, NULL);
pipe->bind_fragment_sampler_states(pipe, 1,
blitter_get_sampler_state(ctx, srclevel, normalized));
pipe->bind_vertex_elements_state(pipe, ctx->velem_state);
@@ -918,7 +1031,11 @@ void util_blitter_copy_texture(struct blitter_context *blitter,
break;
}
- blitter_restore_CSOs(ctx);
+ blitter_restore_vertex_states(ctx);
+ blitter_restore_fragment_states(ctx);
+ blitter_restore_textures(ctx);
+ blitter_restore_fb_state(ctx);
+ blitter_unset_running_flag(ctx);
pipe_surface_reference(&dstsurf, NULL);
pipe_sampler_view_reference(&view, NULL);
@@ -940,15 +1057,19 @@ void util_blitter_clear_render_target(struct blitter_context *blitter,
return;
/* check the saved state */
- blitter_check_saved_CSOs(ctx);
- assert(blitter->saved_fb_state.nr_cbufs != ~0);
+ blitter_set_running_flag(ctx);
+ blitter_check_saved_vertex_states(ctx);
+ blitter_check_saved_fragment_states(ctx);
+ blitter_check_saved_fb_state(ctx);
- /* bind CSOs */
+ /* bind states */
pipe->bind_blend_state(pipe, ctx->blend_write_color);
pipe->bind_depth_stencil_alpha_state(pipe, ctx->dsa_keep_depth_stencil);
pipe->bind_rasterizer_state(pipe, ctx->rs_state);
- pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, 1));
+ pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, 1, FALSE));
pipe->bind_vs_state(pipe, ctx->vs);
+ if (ctx->has_geometry_shader)
+ pipe->bind_gs_state(pipe, NULL);
pipe->bind_vertex_elements_state(pipe, ctx->velem_state);
/* set a framebuffer state */
@@ -962,7 +1083,11 @@ void util_blitter_clear_render_target(struct blitter_context *blitter,
blitter_set_dst_dimensions(ctx, dstsurf->width, dstsurf->height);
blitter->draw_rectangle(blitter, dstx, dsty, dstx+width, dsty+height, 0,
UTIL_BLITTER_ATTRIB_COLOR, color);
- blitter_restore_CSOs(ctx);
+
+ blitter_restore_vertex_states(ctx);
+ blitter_restore_fragment_states(ctx);
+ blitter_restore_fb_state(ctx);
+ blitter_unset_running_flag(ctx);
}
/* Clear a region of a depth stencil surface. */
@@ -984,10 +1109,12 @@ void util_blitter_clear_depth_stencil(struct blitter_context *blitter,
return;
/* check the saved state */
- blitter_check_saved_CSOs(ctx);
- assert(blitter->saved_fb_state.nr_cbufs != ~0);
+ blitter_set_running_flag(ctx);
+ blitter_check_saved_vertex_states(ctx);
+ blitter_check_saved_fragment_states(ctx);
+ blitter_check_saved_fb_state(ctx);
- /* bind CSOs */
+ /* bind states */
pipe->bind_blend_state(pipe, ctx->blend_keep_color);
if ((clear_flags & PIPE_CLEAR_DEPTHSTENCIL) == PIPE_CLEAR_DEPTHSTENCIL) {
sr.ref_value[0] = stencil & 0xff;
@@ -1007,8 +1134,10 @@ void util_blitter_clear_depth_stencil(struct blitter_context *blitter,
pipe->bind_depth_stencil_alpha_state(pipe, ctx->dsa_keep_depth_stencil);
pipe->bind_rasterizer_state(pipe, ctx->rs_state);
- pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, 0));
+ pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, 0, FALSE));
pipe->bind_vs_state(pipe, ctx->vs);
+ if (ctx->has_geometry_shader)
+ pipe->bind_gs_state(pipe, NULL);
pipe->bind_vertex_elements_state(pipe, ctx->velem_state);
/* set a framebuffer state */
@@ -1022,7 +1151,11 @@ void util_blitter_clear_depth_stencil(struct blitter_context *blitter,
blitter_set_dst_dimensions(ctx, dstsurf->width, dstsurf->height);
blitter->draw_rectangle(blitter, dstx, dsty, dstx+width, dsty+height, depth,
UTIL_BLITTER_ATTRIB_NONE, NULL);
- blitter_restore_CSOs(ctx);
+
+ blitter_restore_vertex_states(ctx);
+ blitter_restore_fragment_states(ctx);
+ blitter_restore_fb_state(ctx);
+ blitter_unset_running_flag(ctx);
}
/* draw a rectangle across a region using a custom dsa stage - for r600g */
@@ -1040,16 +1173,20 @@ void util_blitter_custom_depth_stencil(struct blitter_context *blitter,
return;
/* check the saved state */
- blitter_check_saved_CSOs(ctx);
- assert(blitter->saved_fb_state.nr_cbufs != ~0);
+ blitter_set_running_flag(ctx);
+ blitter_check_saved_vertex_states(ctx);
+ blitter_check_saved_fragment_states(ctx);
+ blitter_check_saved_fb_state(ctx);
- /* bind CSOs */
+ /* bind states */
pipe->bind_blend_state(pipe, ctx->blend_write_color);
pipe->bind_depth_stencil_alpha_state(pipe, dsa_stage);
pipe->bind_rasterizer_state(pipe, ctx->rs_state);
- pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, 0));
+ pipe->bind_fs_state(pipe, blitter_get_fs_col(ctx, 0, FALSE));
pipe->bind_vs_state(pipe, ctx->vs);
+ if (ctx->has_geometry_shader)
+ pipe->bind_gs_state(pipe, NULL);
pipe->bind_vertex_elements_state(pipe, ctx->velem_state);
/* set a framebuffer state */
@@ -1069,5 +1206,9 @@ void util_blitter_custom_depth_stencil(struct blitter_context *blitter,
blitter_set_dst_dimensions(ctx, zsurf->width, zsurf->height);
blitter->draw_rectangle(blitter, 0, 0, zsurf->width, zsurf->height, depth,
UTIL_BLITTER_ATTRIB_NONE, NULL);
- blitter_restore_CSOs(ctx);
+
+ blitter_restore_vertex_states(ctx);
+ blitter_restore_fragment_states(ctx);
+ blitter_restore_fb_state(ctx);
+ blitter_unset_running_flag(ctx);
}
diff --git a/mesalib/src/gallium/auxiliary/util/u_blitter.h b/mesalib/src/gallium/auxiliary/util/u_blitter.h
index a9ad02364..798096e74 100644
--- a/mesalib/src/gallium/auxiliary/util/u_blitter.h
+++ b/mesalib/src/gallium/auxiliary/util/u_blitter.h
@@ -89,7 +89,7 @@ struct blitter_context
void *saved_dsa_state; /**< depth stencil alpha state */
void *saved_velem_state; /**< vertex elements state */
void *saved_rs_state; /**< rasterizer state */
- void *saved_fs, *saved_vs; /**< fragment shader, vertex shader */
+ void *saved_fs, *saved_vs, *saved_gs; /**< shaders */
struct pipe_framebuffer_state saved_fb_state; /**< framebuffer state */
struct pipe_stencil_ref saved_stencil_ref; /**< stencil ref */
@@ -126,24 +126,28 @@ struct pipe_context *util_blitter_get_pipe(struct blitter_context *blitter)
}
/*
- * These states must be saved before any of the following functions is called:
- * - blend state
- * - depth stencil alpha state
- * - rasterizer state
- * - vertex shader
- * - any other shader??? (XXX)
- * - fragment shader
+ * These states must be saved before any of the following functions are called:
* - vertex buffers
* - vertex elements
+ * - vertex shader
+ * - geometry shader (if supported)
+ * - rasterizer state
*/
/**
* Clear a specified set of currently bound buffers to specified values.
+ *
+ * These states must be saved in the blitter in addition to the state objects
+ * already required to be saved:
+ * - fragment shader
+ * - depth stencil alpha state
+ * - blend state
*/
void util_blitter_clear(struct blitter_context *blitter,
unsigned width, unsigned height,
unsigned num_cbufs,
unsigned clear_buffers,
+ enum pipe_format cbuf_format,
const union pipe_color_union *color,
double depth, unsigned stencil);
@@ -155,7 +159,7 @@ void util_blitter_clear_depth_custom(struct blitter_context *blitter,
* Copy a block of pixels from one surface to another.
*
* You can copy from any color format to any other color format provided
- * the former can be sampled and the latter can be rendered to. Otherwise,
+ * the former can be sampled from and the latter can be rendered to. Otherwise,
* a software fallback path is taken and both surfaces must be of the same
* format.
*
@@ -163,14 +167,18 @@ void util_blitter_clear_depth_custom(struct blitter_context *blitter,
* cannot be copied unless you set ignore_stencil to FALSE. In that case,
* a software fallback path is taken and both surfaces must be of the same
* format.
+ * XXX implement hw-accel stencil copy using shader stencil export.
*
* Use pipe_screen->is_format_supported to know your options.
*
* These states must be saved in the blitter in addition to the state objects
* already required to be saved:
- * - framebuffer state
+ * - fragment shader
+ * - depth stencil alpha state
+ * - blend state
* - fragment sampler states
* - fragment sampler textures
+ * - framebuffer state
*/
void util_blitter_copy_texture(struct blitter_context *blitter,
struct pipe_resource *dst,
@@ -186,6 +194,9 @@ void util_blitter_copy_texture(struct blitter_context *blitter,
*
* These states must be saved in the blitter in addition to the state objects
* already required to be saved:
+ * - fragment shader
+ * - depth stencil alpha state
+ * - blend state
* - framebuffer state
*/
void util_blitter_clear_render_target(struct blitter_context *blitter,
@@ -200,6 +211,9 @@ void util_blitter_clear_render_target(struct blitter_context *blitter,
*
* These states must be saved in the blitter in addition to the state objects
* already required to be saved:
+ * - fragment shader
+ * - depth stencil alpha state
+ * - blend state
* - framebuffer state
*/
void util_blitter_clear_depth_stencil(struct blitter_context *blitter,
@@ -220,7 +234,7 @@ void util_blitter_custom_depth_stencil(struct blitter_context *blitter,
* of the util_blitter_{clear, copy_region, fill_region} functions and then
* forgotten.
*
- * CSOs not listed here are not affected by util_blitter. */
+ * States not listed here are not affected by util_blitter. */
static INLINE
void util_blitter_save_blend(struct blitter_context *blitter,
@@ -272,6 +286,13 @@ void util_blitter_save_vertex_shader(struct blitter_context *blitter,
}
static INLINE
+void util_blitter_save_geometry_shader(struct blitter_context *blitter,
+ void *gs)
+{
+ blitter->saved_gs = gs;
+}
+
+static INLINE
void util_blitter_save_framebuffer(struct blitter_context *blitter,
const struct pipe_framebuffer_state *state)
{
@@ -322,8 +343,8 @@ util_blitter_save_fragment_sampler_views(struct blitter_context *blitter,
static INLINE void
util_blitter_save_vertex_buffers(struct blitter_context *blitter,
- int num_vertex_buffers,
- struct pipe_vertex_buffer *vertex_buffers)
+ int num_vertex_buffers,
+ struct pipe_vertex_buffer *vertex_buffers)
{
assert(num_vertex_buffers <= Elements(blitter->saved_vertex_buffers));
diff --git a/mesalib/src/gallium/auxiliary/util/u_format.c b/mesalib/src/gallium/auxiliary/util/u_format.c
index 9bf42583e..730dc31ac 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format.c
+++ b/mesalib/src/gallium/auxiliary/util/u_format.c
@@ -52,14 +52,8 @@ util_format_is_float(enum pipe_format format)
return FALSE;
}
- /* Find the first non-void channel. */
- for (i = 0; i < 4; i++) {
- if (desc->channel[i].type != UTIL_FORMAT_TYPE_VOID) {
- break;
- }
- }
-
- if (i == 4) {
+ i = util_format_get_first_non_void_channel(format);
+ if (i == -1) {
return FALSE;
}
@@ -124,6 +118,45 @@ util_format_is_luminance(enum pipe_format format)
return FALSE;
}
+boolean
+util_format_is_pure_integer(enum pipe_format format)
+{
+ const struct util_format_description *desc = util_format_description(format);
+ int i;
+
+ /* Find the first non-void channel. */
+ i = util_format_get_first_non_void_channel(format);
+ if (i == -1)
+ return FALSE;
+
+ return desc->channel[i].pure_integer ? TRUE : FALSE;
+}
+
+boolean
+util_format_is_pure_sint(enum pipe_format format)
+{
+ const struct util_format_description *desc = util_format_description(format);
+ int i;
+
+ i = util_format_get_first_non_void_channel(format);
+ if (i == -1)
+ return FALSE;
+
+ return (desc->channel[i].type == UTIL_FORMAT_TYPE_SIGNED && desc->channel[i].pure_integer) ? TRUE : FALSE;
+}
+
+boolean
+util_format_is_pure_uint(enum pipe_format format)
+{
+ const struct util_format_description *desc = util_format_description(format);
+ int i;
+
+ i = util_format_get_first_non_void_channel(format);
+ if (i == -1)
+ return FALSE;
+
+ return (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED && desc->channel[i].pure_integer) ? TRUE : FALSE;
+}
boolean
util_format_is_luminance_alpha(enum pipe_format format)
@@ -262,6 +295,89 @@ util_format_write_4ub(enum pipe_format format, const uint8_t *src, unsigned src_
format_desc->pack_rgba_8unorm(dst_row, dst_stride, src_row, src_stride, w, h);
}
+void
+util_format_read_4ui(enum pipe_format format,
+ unsigned *dst, unsigned dst_stride,
+ const void *src, unsigned src_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h)
+{
+ const struct util_format_description *format_desc;
+ const uint8_t *src_row;
+ unsigned *dst_row;
+
+ format_desc = util_format_description(format);
+
+ assert(x % format_desc->block.width == 0);
+ assert(y % format_desc->block.height == 0);
+
+ src_row = (const uint8_t *)src + y*src_stride + x*(format_desc->block.bits/8);
+ dst_row = dst;
+
+ format_desc->unpack_rgba_uint(dst_row, dst_stride, src_row, src_stride, w, h);
+}
+
+void
+util_format_write_4ui(enum pipe_format format,
+ const unsigned int *src, unsigned src_stride,
+ void *dst, unsigned dst_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h)
+{
+ const struct util_format_description *format_desc;
+ uint8_t *dst_row;
+ const unsigned *src_row;
+
+ format_desc = util_format_description(format);
+
+ assert(x % format_desc->block.width == 0);
+ assert(y % format_desc->block.height == 0);
+
+ dst_row = (uint8_t *)dst + y*dst_stride + x*(format_desc->block.bits/8);
+ src_row = src;
+
+ format_desc->pack_rgba_uint(dst_row, dst_stride, src_row, src_stride, w, h);
+}
+
+void
+util_format_read_4i(enum pipe_format format,
+ int *dst, unsigned dst_stride,
+ const void *src, unsigned src_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h)
+{
+ const struct util_format_description *format_desc;
+ const uint8_t *src_row;
+ int *dst_row;
+
+ format_desc = util_format_description(format);
+
+ assert(x % format_desc->block.width == 0);
+ assert(y % format_desc->block.height == 0);
+
+ src_row = (const uint8_t *)src + y*src_stride + x*(format_desc->block.bits/8);
+ dst_row = dst;
+
+ format_desc->unpack_rgba_sint(dst_row, dst_stride, src_row, src_stride, w, h);
+}
+
+void
+util_format_write_4i(enum pipe_format format,
+ const int *src, unsigned src_stride,
+ void *dst, unsigned dst_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h)
+{
+ const struct util_format_description *format_desc;
+ uint8_t *dst_row;
+ const int *src_row;
+
+ format_desc = util_format_description(format);
+
+ assert(x % format_desc->block.width == 0);
+ assert(y % format_desc->block.height == 0);
+
+ dst_row = (uint8_t *)dst + y*dst_stride + x*(format_desc->block.bits/8);
+ src_row = src;
+
+ format_desc->pack_rgba_sint(dst_row, dst_stride, src_row, src_stride, w, h);
+}
boolean
util_is_format_compatible(const struct util_format_description *src_desc,
diff --git a/mesalib/src/gallium/auxiliary/util/u_format.csv b/mesalib/src/gallium/auxiliary/util/u_format.csv
index 621a46dba..08aa0a49d 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format.csv
+++ b/mesalib/src/gallium/auxiliary/util/u_format.csv
@@ -42,6 +42,7 @@
# - 'h': fixed
# - 'f': FLOAT
# - optionally followed by 'n' if it is normalized
+# - optionally followed by 'p' if it is pure
# - number of bits
# - channel swizzle
# - color space: rgb, yub, sz
@@ -278,3 +279,63 @@ PIPE_FORMAT_R10G10B10A2_SNORM , plain, 1, 1, sn10, sn10, sn10, sn2, xyzw,
PIPE_FORMAT_B10G10R10A2_USCALED , plain, 1, 1, u10, u10, u10, u2, zyxw, rgb
PIPE_FORMAT_B10G10R10A2_SSCALED , plain, 1, 1, s10, s10, s10, s2, zyxw, rgb
PIPE_FORMAT_B10G10R10A2_SNORM , plain, 1, 1, sn10, sn10, sn10, sn2, zyxw, rgb
+
+PIPE_FORMAT_R8_UINT , plain, 1, 1, up8, , , , x001, rgb
+PIPE_FORMAT_R8G8_UINT , plain, 1, 1, up8, up8, , , xy01, rgb
+PIPE_FORMAT_R8G8B8_UINT , plain, 1, 1, up8, up8, up8, , xyz1, rgb
+PIPE_FORMAT_R8G8B8A8_UINT , plain, 1, 1, up8, up8, up8, up8, xyzw, rgb
+
+PIPE_FORMAT_R8_SINT , plain, 1, 1, sp8, , , , x001, rgb
+PIPE_FORMAT_R8G8_SINT , plain, 1, 1, sp8, sp8, , , xy01, rgb
+PIPE_FORMAT_R8G8B8_SINT , plain, 1, 1, sp8, sp8, sp8, , xyz1, rgb
+PIPE_FORMAT_R8G8B8A8_SINT , plain, 1, 1, sp8, sp8, sp8, sp8, xyzw, rgb
+
+PIPE_FORMAT_R16_UINT , plain, 1, 1, up16, , , , x001, rgb
+PIPE_FORMAT_R16G16_UINT , plain, 1, 1, up16, up16, , , xy01, rgb
+PIPE_FORMAT_R16G16B16_UINT , plain, 1, 1, up16, up16, up16, , xyz1, rgb
+PIPE_FORMAT_R16G16B16A16_UINT , plain, 1, 1, up16, up16, up16, up16, xyzw, rgb
+
+PIPE_FORMAT_R16_SINT , plain, 1, 1, sp16, , , , x001, rgb
+PIPE_FORMAT_R16G16_SINT , plain, 1, 1, sp16, sp16, , , xy01, rgb
+PIPE_FORMAT_R16G16B16_SINT , plain, 1, 1, sp16, sp16, sp16, , xyz1, rgb
+PIPE_FORMAT_R16G16B16A16_SINT , plain, 1, 1, sp16, sp16, sp16, sp16, xyzw, rgb
+
+PIPE_FORMAT_R32_UINT , plain, 1, 1, up32, , , , x001, rgb
+PIPE_FORMAT_R32G32_UINT , plain, 1, 1, up32, up32, , , xy01, rgb
+PIPE_FORMAT_R32G32B32_UINT , plain, 1, 1, up32, up32, up32, , xyz1, rgb
+PIPE_FORMAT_R32G32B32A32_UINT , plain, 1, 1, up32, up32, up32, up32, xyzw, rgb
+
+PIPE_FORMAT_R32_SINT , plain, 1, 1, sp32, , , , x001, rgb
+PIPE_FORMAT_R32G32_SINT , plain, 1, 1, sp32, sp32, , , xy01, rgb
+PIPE_FORMAT_R32G32B32_SINT , plain, 1, 1, sp32, sp32, sp32, , xyz1, rgb
+PIPE_FORMAT_R32G32B32A32_SINT , plain, 1, 1, sp32, sp32, sp32, sp32, xyzw, rgb
+
+PIPE_FORMAT_A8_UINT , plain, 1, 1, up8, , , , 000x, rgb
+PIPE_FORMAT_I8_UINT , plain, 1, 1, up8, , , , xxxx, rgb
+PIPE_FORMAT_L8_UINT , plain, 1, 1, up8, , , , xxx1, rgb
+PIPE_FORMAT_L8A8_UINT , plain, 1, 1, up8, up8, , , xxxy, rgb
+
+PIPE_FORMAT_A8_SINT , plain, 1, 1, sp8, , , , 000x, rgb
+PIPE_FORMAT_I8_SINT , plain, 1, 1, sp8, , , , xxxx, rgb
+PIPE_FORMAT_L8_SINT , plain, 1, 1, sp8, , , , xxx1, rgb
+PIPE_FORMAT_L8A8_SINT , plain, 1, 1, sp8, sp8, , , xxxy, rgb
+
+PIPE_FORMAT_A16_UINT , plain, 1, 1, up16, , , , 000x, rgb
+PIPE_FORMAT_I16_UINT , plain, 1, 1, up16, , , , xxxx, rgb
+PIPE_FORMAT_L16_UINT , plain, 1, 1, up16, , , , xxx1, rgb
+PIPE_FORMAT_L16A16_UINT , plain, 1, 1, up16, up16, , , xxxy, rgb
+
+PIPE_FORMAT_A16_SINT , plain, 1, 1, sp16, , , , 000x, rgb
+PIPE_FORMAT_I16_SINT , plain, 1, 1, sp16, , , , xxxx, rgb
+PIPE_FORMAT_L16_SINT , plain, 1, 1, sp16, , , , xxx1, rgb
+PIPE_FORMAT_L16A16_SINT , plain, 1, 1, sp16, sp16, , , xxxy, rgb
+
+PIPE_FORMAT_A32_UINT , plain, 1, 1, up32, , , , 000x, rgb
+PIPE_FORMAT_I32_UINT , plain, 1, 1, up32, , , , xxxx, rgb
+PIPE_FORMAT_L32_UINT , plain, 1, 1, up32, , , , xxx1, rgb
+PIPE_FORMAT_L32A32_UINT , plain, 1, 1, up32, up32, , , xxxy, rgb
+
+PIPE_FORMAT_A32_SINT , plain, 1, 1, sp32, , , , 000x, rgb
+PIPE_FORMAT_I32_SINT , plain, 1, 1, sp32, , , , xxxx, rgb
+PIPE_FORMAT_L32_SINT , plain, 1, 1, sp32, , , , xxx1, rgb
+PIPE_FORMAT_L32A32_SINT , plain, 1, 1, sp32, sp32, , , xxxy, rgb \ No newline at end of file
diff --git a/mesalib/src/gallium/auxiliary/util/u_format.h b/mesalib/src/gallium/auxiliary/util/u_format.h
index 98528ea59..215a00ab5 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format.h
+++ b/mesalib/src/gallium/auxiliary/util/u_format.h
@@ -120,8 +120,9 @@ enum util_format_colorspace {
struct util_format_channel_description
{
- unsigned type:6; /**< UTIL_FORMAT_TYPE_x */
+ unsigned type:5; /**< UTIL_FORMAT_TYPE_x */
unsigned normalized:1;
+ unsigned pure_integer:1;
unsigned size:9; /**< bits per channel */
};
@@ -321,6 +322,37 @@ struct util_format_description
const uint8_t *src, unsigned src_stride,
unsigned width, unsigned height);
+ /**
+ * Unpack pixel blocks to R32G32B32A32_UINT.
+ * Note: strides are in bytes.
+ *
+ * Only defined for INT formats.
+ */
+ void
+ (*unpack_rgba_uint)(unsigned *dst, unsigned dst_stride,
+ const uint8_t *src, unsigned src_stride,
+ unsigned width, unsigned height);
+
+ void
+ (*pack_rgba_uint)(uint8_t *dst, unsigned dst_stride,
+ const unsigned *src, unsigned src_stride,
+ unsigned width, unsigned height);
+
+ /**
+ * Unpack pixel blocks to R32G32B32A32_SINT.
+ * Note: strides are in bytes.
+ *
+ * Only defined for INT formats.
+ */
+ void
+ (*unpack_rgba_sint)(signed *dst, unsigned dst_stride,
+ const uint8_t *src, unsigned src_stride,
+ unsigned width, unsigned height);
+
+ void
+ (*pack_rgba_sint)(uint8_t *dst, unsigned dst_stride,
+ const int *src, unsigned src_stride,
+ unsigned width, unsigned height);
};
@@ -511,6 +543,14 @@ util_format_is_luminance_alpha(enum pipe_format format);
boolean
util_format_is_intensity(enum pipe_format format);
+boolean
+util_format_is_pure_integer(enum pipe_format format);
+
+boolean
+util_format_is_pure_sint(enum pipe_format format);
+
+boolean
+util_format_is_pure_uint(enum pipe_format format);
/**
* Whether the src format can be blitted to destation format with a simple
@@ -806,6 +846,26 @@ util_format_get_nr_components(enum pipe_format format)
return desc->nr_channels;
}
+/**
+ * Return the index of the first non-void channel
+ * -1 if no non-void channels
+ */
+static INLINE int
+util_format_get_first_non_void_channel(enum pipe_format format)
+{
+ const struct util_format_description *desc = util_format_description(format);
+ int i;
+
+ for (i = 0; i < 4; i++)
+ if (desc->channel[i].type != UTIL_FORMAT_TYPE_VOID)
+ break;
+
+ if (i == 4)
+ return -1;
+
+ return i;
+}
+
/*
* Format access functions.
*/
@@ -834,6 +894,30 @@ util_format_write_4ub(enum pipe_format format,
void *dst, unsigned dst_stride,
unsigned x, unsigned y, unsigned w, unsigned h);
+void
+util_format_read_4ui(enum pipe_format format,
+ unsigned *dst, unsigned dst_stride,
+ const void *src, unsigned src_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h);
+
+void
+util_format_write_4ui(enum pipe_format format,
+ const unsigned int *src, unsigned src_stride,
+ void *dst, unsigned dst_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h);
+
+void
+util_format_read_4i(enum pipe_format format,
+ int *dst, unsigned dst_stride,
+ const void *src, unsigned src_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h);
+
+void
+util_format_write_4i(enum pipe_format format,
+ const int *src, unsigned src_stride,
+ void *dst, unsigned dst_stride,
+ unsigned x, unsigned y, unsigned w, unsigned h);
+
/*
* Generic format conversion;
*/
diff --git a/mesalib/src/gallium/auxiliary/util/u_format_pack.py b/mesalib/src/gallium/auxiliary/util/u_format_pack.py
index 497efad5a..5cfbe323d 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format_pack.py
+++ b/mesalib/src/gallium/auxiliary/util/u_format_pack.py
@@ -1,670 +1,718 @@
-#!/usr/bin/env python
-
-'''
-/**************************************************************************
- *
- * Copyright 2009-2010 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-/**
- * @file
- * Pixel format packing and unpacking functions.
- *
- * @author Jose Fonseca <jfonseca@vmware.com>
- */
-'''
-
-
-from u_format_parse import *
-
-
-def generate_format_type(format):
- '''Generate a structure that describes the format.'''
-
- assert format.layout == PLAIN
-
- print 'union util_format_%s {' % format.short_name()
-
- if format.block_size() in (8, 16, 32, 64):
- print ' uint%u_t value;' % (format.block_size(),)
-
- use_bitfields = False
- for channel in format.channels:
- if channel.size % 8 or not is_pot(channel.size):
- use_bitfields = True
-
- print ' struct {'
- for channel in format.channels:
- if use_bitfields:
- if channel.type == VOID:
- if channel.size:
- print ' unsigned %s:%u;' % (channel.name, channel.size)
- elif channel.type == UNSIGNED:
- print ' unsigned %s:%u;' % (channel.name, channel.size)
- elif channel.type in (SIGNED, FIXED):
- print ' int %s:%u;' % (channel.name, channel.size)
- elif channel.type == FLOAT:
- if channel.size == 64:
- print ' double %s;' % (channel.name)
- elif channel.size == 32:
- print ' float %s;' % (channel.name)
- else:
- print ' unsigned %s:%u;' % (channel.name, channel.size)
- else:
- assert 0
- else:
- assert channel.size % 8 == 0 and is_pot(channel.size)
- if channel.type == VOID:
- if channel.size:
- print ' uint%u_t %s;' % (channel.size, channel.name)
- elif channel.type == UNSIGNED:
- print ' uint%u_t %s;' % (channel.size, channel.name)
- elif channel.type in (SIGNED, FIXED):
- print ' int%u_t %s;' % (channel.size, channel.name)
- elif channel.type == FLOAT:
- if channel.size == 64:
- print ' double %s;' % (channel.name)
- elif channel.size == 32:
- print ' float %s;' % (channel.name)
- elif channel.size == 16:
- print ' uint16_t %s;' % (channel.name)
- else:
- assert 0
- else:
- assert 0
- print ' } chan;'
- print '};'
- print
-
-
-def bswap_format(format):
- '''Generate a structure that describes the format.'''
-
- if format.is_bitmask() and not format.is_array() and format.block_size() > 8:
- print '#ifdef PIPE_ARCH_BIG_ENDIAN'
- print ' pixel.value = util_bswap%u(pixel.value);' % format.block_size()
- print '#endif'
-
-
-def is_format_supported(format):
- '''Determines whether we actually have the plumbing necessary to generate the
- to read/write to/from this format.'''
-
- # FIXME: Ideally we would support any format combination here.
-
- if format.layout != PLAIN:
- return False
-
- for i in range(4):
- channel = format.channels[i]
- if channel.type not in (VOID, UNSIGNED, SIGNED, FLOAT, FIXED):
- return False
- if channel.type == FLOAT and channel.size not in (16, 32, 64):
- return False
-
- return True
-
-
-def native_type(format):
- '''Get the native appropriate for a format.'''
-
- if format.layout == PLAIN:
- if not format.is_array():
- # For arithmetic pixel formats return the integer type that matches the whole pixel
- return 'uint%u_t' % format.block_size()
- else:
- # For array pixel formats return the integer type that matches the color channel
- channel = format.channels[0]
- if channel.type in (UNSIGNED, VOID):
- return 'uint%u_t' % channel.size
- elif channel.type in (SIGNED, FIXED):
- return 'int%u_t' % channel.size
- elif channel.type == FLOAT:
- if channel.size == 16:
- return 'uint16_t'
- elif channel.size == 32:
- return 'float'
- elif channel.size == 64:
- return 'double'
- else:
- assert False
- else:
- assert False
- else:
- assert False
-
-
-def intermediate_native_type(bits, sign):
- '''Find a native type adequate to hold intermediate results of the request bit size.'''
-
- bytes = 4 # don't use anything smaller than 32bits
- while bytes * 8 < bits:
- bytes *= 2
- bits = bytes*8
-
- if sign:
- return 'int%u_t' % bits
- else:
- return 'uint%u_t' % bits
-
-
-def get_one_shift(type):
- '''Get the number of the bit that matches unity for this type.'''
- if type.type == 'FLOAT':
- assert False
- if not type.norm:
- return 0
- if type.type == UNSIGNED:
- return type.size
- if type.type == SIGNED:
- return type.size - 1
- if type.type == FIXED:
- return type.size / 2
- assert False
-
-
-def value_to_native(type, value):
- '''Get the value of unity for this type.'''
- if type.type == FLOAT:
- return value
- if type.type == FIXED:
- return int(value * (1 << (type.size/2)))
- if not type.norm:
- return int(value)
- if type.type == UNSIGNED:
- return int(value * ((1 << type.size) - 1))
- if type.type == SIGNED:
- return int(value * ((1 << (type.size - 1)) - 1))
- assert False
-
-
-def native_to_constant(type, value):
- '''Get the value of unity for this type.'''
- if type.type == FLOAT:
- if type.size <= 32:
- return "%ff" % value
- else:
- return "%ff" % value
- else:
- return str(int(value))
-
-
-def get_one(type):
- '''Get the value of unity for this type.'''
- return value_to_native(type, 1)
-
-
-def clamp_expr(src_channel, dst_channel, dst_native_type, value):
- '''Generate the expression to clamp the value in the source type to the
- destination type range.'''
-
- if src_channel == dst_channel:
- return value
-
- src_min = src_channel.min()
- src_max = src_channel.max()
- dst_min = dst_channel.min()
- dst_max = dst_channel.max()
-
- # Translate the destination range to the src native value
- dst_min_native = value_to_native(src_channel, dst_min)
- dst_max_native = value_to_native(src_channel, dst_max)
-
- if src_min < dst_min and src_max > dst_max:
- return 'CLAMP(%s, %s, %s)' % (value, dst_min_native, dst_max_native)
-
- if src_max > dst_max:
- return 'MIN2(%s, %s)' % (value, dst_max_native)
-
- if src_min < dst_min:
- return 'MAX2(%s, %s)' % (value, dst_min_native)
-
- return value
-
-
-def conversion_expr(src_channel,
- dst_channel, dst_native_type,
- value,
- clamp=True,
- src_colorspace = RGB,
- dst_colorspace = RGB):
- '''Generate the expression to convert a value between two types.'''
-
- if src_colorspace != dst_colorspace:
- if src_colorspace == SRGB:
- assert src_channel.type == UNSIGNED
- assert src_channel.norm
- assert src_channel.size == 8
- assert dst_colorspace == RGB
- if dst_channel.type == FLOAT:
- return 'util_format_srgb_8unorm_to_linear_float(%s)' % value
- else:
- assert dst_channel.type == UNSIGNED
- assert dst_channel.norm
- assert dst_channel.size == 8
- return 'util_format_srgb_to_linear_8unorm(%s)' % value
- elif dst_colorspace == SRGB:
- assert dst_channel.type == UNSIGNED
- assert dst_channel.norm
- assert dst_channel.size == 8
- assert src_colorspace == RGB
- if src_channel.type == FLOAT:
- return 'util_format_linear_float_to_srgb_8unorm(%s)' % value
- else:
- assert src_channel.type == UNSIGNED
- assert src_channel.norm
- assert src_channel.size == 8
- return 'util_format_linear_to_srgb_8unorm(%s)' % value
- elif src_colorspace == ZS:
- pass
- elif dst_colorspace == ZS:
- pass
- else:
- assert 0
-
- if src_channel == dst_channel:
- return value
-
- src_type = src_channel.type
- src_size = src_channel.size
- src_norm = src_channel.norm
-
- # Promote half to float
- if src_type == FLOAT and src_size == 16:
- value = 'util_half_to_float(%s)' % value
- src_size = 32
-
- # Special case for float <-> ubytes for more accurate results
- # Done before clamping since these functions already take care of that
- if src_type == UNSIGNED and src_norm and src_size == 8 and dst_channel.type == FLOAT and dst_channel.size == 32:
- return 'ubyte_to_float(%s)' % value
- if src_type == FLOAT and src_size == 32 and dst_channel.type == UNSIGNED and dst_channel.norm and dst_channel.size == 8:
- return 'float_to_ubyte(%s)' % value
-
- if clamp:
- if dst_channel.type != FLOAT or src_type != FLOAT:
- value = clamp_expr(src_channel, dst_channel, dst_native_type, value)
-
- if src_type in (SIGNED, UNSIGNED) and dst_channel.type in (SIGNED, UNSIGNED):
- if not src_norm and not dst_channel.norm:
- # neither is normalized -- just cast
- return '(%s)%s' % (dst_native_type, value)
-
- src_one = get_one(src_channel)
- dst_one = get_one(dst_channel)
-
- if src_one > dst_one and src_norm and dst_channel.norm:
- # We can just bitshift
- src_shift = get_one_shift(src_channel)
- dst_shift = get_one_shift(dst_channel)
- value = '(%s >> %s)' % (value, src_shift - dst_shift)
- else:
- # We need to rescale using an intermediate type big enough to hold the multiplication of both
- tmp_native_type = intermediate_native_type(src_size + dst_channel.size, src_channel.sign and dst_channel.sign)
- value = '((%s)%s)' % (tmp_native_type, value)
- value = '(%s * 0x%x / 0x%x)' % (value, dst_one, src_one)
- value = '(%s)%s' % (dst_native_type, value)
- return value
-
- # Promote to either float or double
- if src_type != FLOAT:
- if src_norm or src_type == FIXED:
- one = get_one(src_channel)
- if src_size <= 23:
- value = '(%s * (1.0f/0x%x))' % (value, one)
- if dst_channel.size <= 32:
- value = '(float)%s' % value
- src_size = 32
- else:
- # bigger than single precision mantissa, use double
- value = '(%s * (1.0/0x%x))' % (value, one)
- src_size = 64
- src_norm = False
- else:
- if src_size <= 23 or dst_channel.size <= 32:
- value = '(float)%s' % value
- src_size = 32
- else:
- # bigger than single precision mantissa, use double
- value = '(double)%s' % value
- src_size = 64
- src_type = FLOAT
-
- # Convert double or float to non-float
- if dst_channel.type != FLOAT:
- if dst_channel.norm or dst_channel.type == FIXED:
- dst_one = get_one(dst_channel)
- if dst_channel.size <= 23:
- value = '(%s * 0x%x)' % (value, dst_one)
- else:
- # bigger than single precision mantissa, use double
- value = '(%s * (double)0x%x)' % (value, dst_one)
- value = '(%s)%s' % (dst_native_type, value)
- else:
- # Cast double to float when converting to either half or float
- if dst_channel.size <= 32 and src_size > 32:
- value = '(float)%s' % value
- src_size = 32
-
- if dst_channel.size == 16:
- value = 'util_float_to_half(%s)' % value
- elif dst_channel.size == 64 and src_size < 64:
- value = '(double)%s' % value
-
- return value
-
-
-def generate_unpack_kernel(format, dst_channel, dst_native_type):
-
- if not is_format_supported(format):
- return
-
- assert format.layout == PLAIN
-
- src_native_type = native_type(format)
-
- if format.is_bitmask():
- depth = format.block_size()
- print ' uint%u_t value = *(const uint%u_t *)src;' % (depth, depth)
-
- # Declare the intermediate variables
- for i in range(format.nr_channels()):
- src_channel = format.channels[i]
- if src_channel.type == UNSIGNED:
- print ' uint%u_t %s;' % (depth, src_channel.name)
- elif src_channel.type == SIGNED:
- print ' int%u_t %s;' % (depth, src_channel.name)
-
- if depth > 8:
- print '#ifdef PIPE_ARCH_BIG_ENDIAN'
- print ' value = util_bswap%u(value);' % depth
- print '#endif'
-
- # Compute the intermediate unshifted values
- shift = 0
- for i in range(format.nr_channels()):
- src_channel = format.channels[i]
- value = 'value'
- if src_channel.type == UNSIGNED:
- if shift:
- value = '%s >> %u' % (value, shift)
- if shift + src_channel.size < depth:
- value = '(%s) & 0x%x' % (value, (1 << src_channel.size) - 1)
- elif src_channel.type == SIGNED:
- if shift + src_channel.size < depth:
- # Align the sign bit
- lshift = depth - (shift + src_channel.size)
- value = '%s << %u' % (value, lshift)
- # Cast to signed
- value = '(int%u_t)(%s) ' % (depth, value)
- if src_channel.size < depth:
- # Align the LSB bit
- rshift = depth - src_channel.size
- value = '(%s) >> %u' % (value, rshift)
- else:
- value = None
-
- if value is not None:
- print ' %s = %s;' % (src_channel.name, value)
-
- shift += src_channel.size
-
- # Convert, swizzle, and store final values
- for i in range(4):
- swizzle = format.swizzles[i]
- if swizzle < 4:
- src_channel = format.channels[swizzle]
- src_colorspace = format.colorspace
- if src_colorspace == SRGB and i == 3:
- # Alpha channel is linear
- src_colorspace = RGB
- value = src_channel.name
- value = conversion_expr(src_channel,
- dst_channel, dst_native_type,
- value,
- src_colorspace = src_colorspace)
- elif swizzle == SWIZZLE_0:
- value = '0'
- elif swizzle == SWIZZLE_1:
- value = get_one(dst_channel)
- elif swizzle == SWIZZLE_NONE:
- value = '0'
- else:
- assert False
- print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i])
-
- else:
- print ' union util_format_%s pixel;' % format.short_name()
- print ' memcpy(&pixel, src, sizeof pixel);'
- bswap_format(format)
-
- for i in range(4):
- swizzle = format.swizzles[i]
- if swizzle < 4:
- src_channel = format.channels[swizzle]
- src_colorspace = format.colorspace
- if src_colorspace == SRGB and i == 3:
- # Alpha channel is linear
- src_colorspace = RGB
- value = 'pixel.chan.%s' % src_channel.name
- value = conversion_expr(src_channel,
- dst_channel, dst_native_type,
- value,
- src_colorspace = src_colorspace)
- elif swizzle == SWIZZLE_0:
- value = '0'
- elif swizzle == SWIZZLE_1:
- value = get_one(dst_channel)
- elif swizzle == SWIZZLE_NONE:
- value = '0'
- else:
- assert False
- print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i])
-
-
-def generate_pack_kernel(format, src_channel, src_native_type):
-
- if not is_format_supported(format):
- return
-
- dst_native_type = native_type(format)
-
- assert format.layout == PLAIN
-
- inv_swizzle = format.inv_swizzles()
-
- if format.is_bitmask():
- depth = format.block_size()
- print ' uint%u_t value = 0;' % depth
-
- shift = 0
- for i in range(4):
- dst_channel = format.channels[i]
- if inv_swizzle[i] is not None:
- value ='src[%u]' % inv_swizzle[i]
- dst_colorspace = format.colorspace
- if dst_colorspace == SRGB and inv_swizzle[i] == 3:
- # Alpha channel is linear
- dst_colorspace = RGB
- value = conversion_expr(src_channel,
- dst_channel, dst_native_type,
- value,
- dst_colorspace = dst_colorspace)
- if dst_channel.type in (UNSIGNED, SIGNED):
- if shift + dst_channel.size < depth:
- value = '(%s) & 0x%x' % (value, (1 << dst_channel.size) - 1)
- if shift:
- value = '(%s) << %u' % (value, shift)
- if dst_channel.type == SIGNED:
- # Cast to unsigned
- value = '(uint%u_t)(%s) ' % (depth, value)
- else:
- value = None
- if value is not None:
- print ' value |= %s;' % (value)
-
- shift += dst_channel.size
-
- if depth > 8:
- print '#ifdef PIPE_ARCH_BIG_ENDIAN'
- print ' value = util_bswap%u(value);' % depth
- print '#endif'
-
- print ' *(uint%u_t *)dst = value;' % depth
-
- else:
- print ' union util_format_%s pixel;' % format.short_name()
-
- for i in range(4):
- dst_channel = format.channels[i]
- width = dst_channel.size
- if inv_swizzle[i] is None:
- continue
- dst_colorspace = format.colorspace
- if dst_colorspace == SRGB and inv_swizzle[i] == 3:
- # Alpha channel is linear
- dst_colorspace = RGB
- value ='src[%u]' % inv_swizzle[i]
- value = conversion_expr(src_channel,
- dst_channel, dst_native_type,
- value,
- dst_colorspace = dst_colorspace)
- print ' pixel.chan.%s = %s;' % (dst_channel.name, value)
-
- bswap_format(format)
- print ' memcpy(dst, &pixel, sizeof pixel);'
-
-
-def generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix):
- '''Generate the function to unpack pixels from a particular format'''
-
- name = format.short_name()
-
- print 'static INLINE void'
- print 'util_format_%s_unpack_%s(%s *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, dst_suffix, dst_native_type)
- print '{'
-
- if is_format_supported(format):
- print ' unsigned x, y;'
- print ' for(y = 0; y < height; y += %u) {' % (format.block_height,)
- print ' %s *dst = dst_row;' % (dst_native_type)
- print ' const uint8_t *src = src_row;'
- print ' for(x = 0; x < width; x += %u) {' % (format.block_width,)
-
- generate_unpack_kernel(format, dst_channel, dst_native_type)
-
- print ' src += %u;' % (format.block_size() / 8,)
- print ' dst += 4;'
- print ' }'
- print ' src_row += src_stride;'
- print ' dst_row += dst_stride/sizeof(*dst_row);'
- print ' }'
-
- print '}'
- print
-
-
-def generate_format_pack(format, src_channel, src_native_type, src_suffix):
- '''Generate the function to pack pixels to a particular format'''
-
- name = format.short_name()
-
- print 'static INLINE void'
- print 'util_format_%s_pack_%s(uint8_t *dst_row, unsigned dst_stride, const %s *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, src_suffix, src_native_type)
- print '{'
-
- if is_format_supported(format):
- print ' unsigned x, y;'
- print ' for(y = 0; y < height; y += %u) {' % (format.block_height,)
- print ' const %s *src = src_row;' % (src_native_type)
- print ' uint8_t *dst = dst_row;'
- print ' for(x = 0; x < width; x += %u) {' % (format.block_width,)
-
- generate_pack_kernel(format, src_channel, src_native_type)
-
- print ' src += 4;'
- print ' dst += %u;' % (format.block_size() / 8,)
- print ' }'
- print ' dst_row += dst_stride;'
- print ' src_row += src_stride/sizeof(*src_row);'
- print ' }'
-
- print '}'
- print
-
-
-def generate_format_fetch(format, dst_channel, dst_native_type, dst_suffix):
- '''Generate the function to unpack pixels from a particular format'''
-
- name = format.short_name()
-
- print 'static INLINE void'
- print 'util_format_%s_fetch_%s(%s *dst, const uint8_t *src, unsigned i, unsigned j)' % (name, dst_suffix, dst_native_type)
- print '{'
-
- if is_format_supported(format):
- generate_unpack_kernel(format, dst_channel, dst_native_type)
-
- print '}'
- print
-
-
-def is_format_hand_written(format):
- return format.layout in ('s3tc', 'rgtc', 'subsampled', 'other') or format.colorspace == ZS
-
-
-def generate(formats):
- print
- print '#include "pipe/p_compiler.h"'
- print '#include "u_math.h"'
- print '#include "u_half.h"'
- print '#include "u_format.h"'
- print '#include "u_format_other.h"'
- print '#include "u_format_srgb.h"'
- print '#include "u_format_yuv.h"'
- print '#include "u_format_zs.h"'
- print
-
- for format in formats:
- if not is_format_hand_written(format):
-
- if is_format_supported(format):
- generate_format_type(format)
-
- channel = Channel(FLOAT, False, 32)
- native_type = 'float'
- suffix = 'rgba_float'
-
- generate_format_unpack(format, channel, native_type, suffix)
- generate_format_pack(format, channel, native_type, suffix)
- generate_format_fetch(format, channel, native_type, suffix)
-
- channel = Channel(UNSIGNED, True, 8)
- native_type = 'uint8_t'
- suffix = 'rgba_8unorm'
-
- generate_format_unpack(format, channel, native_type, suffix)
- generate_format_pack(format, channel, native_type, suffix)
-
+#!/usr/bin/env python
+
+'''
+/**************************************************************************
+ *
+ * Copyright 2009-2010 VMware, Inc.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ **************************************************************************/
+
+/**
+ * @file
+ * Pixel format packing and unpacking functions.
+ *
+ * @author Jose Fonseca <jfonseca@vmware.com>
+ */
+'''
+
+
+from u_format_parse import *
+
+
+def generate_format_type(format):
+ '''Generate a structure that describes the format.'''
+
+ assert format.layout == PLAIN
+
+ print 'union util_format_%s {' % format.short_name()
+
+ if format.block_size() in (8, 16, 32, 64):
+ print ' uint%u_t value;' % (format.block_size(),)
+
+ use_bitfields = False
+ for channel in format.channels:
+ if channel.size % 8 or not is_pot(channel.size):
+ use_bitfields = True
+
+ print ' struct {'
+ for channel in format.channels:
+ if use_bitfields:
+ if channel.type == VOID:
+ if channel.size:
+ print ' unsigned %s:%u;' % (channel.name, channel.size)
+ elif channel.type == UNSIGNED:
+ print ' unsigned %s:%u;' % (channel.name, channel.size)
+ elif channel.type in (SIGNED, FIXED):
+ print ' int %s:%u;' % (channel.name, channel.size)
+ elif channel.type == FLOAT:
+ if channel.size == 64:
+ print ' double %s;' % (channel.name)
+ elif channel.size == 32:
+ print ' float %s;' % (channel.name)
+ else:
+ print ' unsigned %s:%u;' % (channel.name, channel.size)
+ else:
+ assert 0
+ else:
+ assert channel.size % 8 == 0 and is_pot(channel.size)
+ if channel.type == VOID:
+ if channel.size:
+ print ' uint%u_t %s;' % (channel.size, channel.name)
+ elif channel.type == UNSIGNED:
+ print ' uint%u_t %s;' % (channel.size, channel.name)
+ elif channel.type in (SIGNED, FIXED):
+ print ' int%u_t %s;' % (channel.size, channel.name)
+ elif channel.type == FLOAT:
+ if channel.size == 64:
+ print ' double %s;' % (channel.name)
+ elif channel.size == 32:
+ print ' float %s;' % (channel.name)
+ elif channel.size == 16:
+ print ' uint16_t %s;' % (channel.name)
+ else:
+ assert 0
+ else:
+ assert 0
+ print ' } chan;'
+ print '};'
+ print
+
+
+def bswap_format(format):
+ '''Generate a structure that describes the format.'''
+
+ if format.is_bitmask() and not format.is_array() and format.block_size() > 8:
+ print '#ifdef PIPE_ARCH_BIG_ENDIAN'
+ print ' pixel.value = util_bswap%u(pixel.value);' % format.block_size()
+ print '#endif'
+
+
+def is_format_supported(format):
+ '''Determines whether we actually have the plumbing necessary to generate the
+ to read/write to/from this format.'''
+
+ # FIXME: Ideally we would support any format combination here.
+
+ if format.layout != PLAIN:
+ return False
+
+ for i in range(4):
+ channel = format.channels[i]
+ if channel.type not in (VOID, UNSIGNED, SIGNED, FLOAT, FIXED):
+ return False
+ if channel.type == FLOAT and channel.size not in (16, 32, 64):
+ return False
+
+ return True
+
+def is_format_pure_unsigned(format):
+ for i in range(4):
+ channel = format.channels[i]
+ if channel.type not in (VOID, UNSIGNED):
+ return False
+ if channel.type == UNSIGNED and channel.pure == False:
+ return False
+
+ return True
+
+
+def is_format_pure_signed(format):
+ for i in range(4):
+ channel = format.channels[i]
+ if channel.type not in (VOID, SIGNED):
+ return False
+ if channel.type == SIGNED and channel.pure == False:
+ return False
+
+ return True
+
+def native_type(format):
+ '''Get the native appropriate for a format.'''
+
+ if format.layout == PLAIN:
+ if not format.is_array():
+ # For arithmetic pixel formats return the integer type that matches the whole pixel
+ return 'uint%u_t' % format.block_size()
+ else:
+ # For array pixel formats return the integer type that matches the color channel
+ channel = format.channels[0]
+ if channel.type in (UNSIGNED, VOID):
+ return 'uint%u_t' % channel.size
+ elif channel.type in (SIGNED, FIXED):
+ return 'int%u_t' % channel.size
+ elif channel.type == FLOAT:
+ if channel.size == 16:
+ return 'uint16_t'
+ elif channel.size == 32:
+ return 'float'
+ elif channel.size == 64:
+ return 'double'
+ else:
+ assert False
+ else:
+ assert False
+ else:
+ assert False
+
+
+def intermediate_native_type(bits, sign):
+ '''Find a native type adequate to hold intermediate results of the request bit size.'''
+
+ bytes = 4 # don't use anything smaller than 32bits
+ while bytes * 8 < bits:
+ bytes *= 2
+ bits = bytes*8
+
+ if sign:
+ return 'int%u_t' % bits
+ else:
+ return 'uint%u_t' % bits
+
+
+def get_one_shift(type):
+ '''Get the number of the bit that matches unity for this type.'''
+ if type.type == 'FLOAT':
+ assert False
+ if not type.norm:
+ return 0
+ if type.type == UNSIGNED:
+ return type.size
+ if type.type == SIGNED:
+ return type.size - 1
+ if type.type == FIXED:
+ return type.size / 2
+ assert False
+
+
+def value_to_native(type, value):
+ '''Get the value of unity for this type.'''
+ if type.type == FLOAT:
+ return value
+ if type.type == FIXED:
+ return int(value * (1 << (type.size/2)))
+ if not type.norm:
+ return int(value)
+ if type.type == UNSIGNED:
+ return int(value * ((1 << type.size) - 1))
+ if type.type == SIGNED:
+ return int(value * ((1 << (type.size - 1)) - 1))
+ assert False
+
+
+def native_to_constant(type, value):
+ '''Get the value of unity for this type.'''
+ if type.type == FLOAT:
+ if type.size <= 32:
+ return "%ff" % value
+ else:
+ return "%ff" % value
+ else:
+ return str(int(value))
+
+
+def get_one(type):
+ '''Get the value of unity for this type.'''
+ return value_to_native(type, 1)
+
+
+def clamp_expr(src_channel, dst_channel, dst_native_type, value):
+ '''Generate the expression to clamp the value in the source type to the
+ destination type range.'''
+
+ if src_channel == dst_channel:
+ return value
+
+ src_min = src_channel.min()
+ src_max = src_channel.max()
+ dst_min = dst_channel.min()
+ dst_max = dst_channel.max()
+
+ # Translate the destination range to the src native value
+ dst_min_native = value_to_native(src_channel, dst_min)
+ dst_max_native = value_to_native(src_channel, dst_max)
+
+ if src_min < dst_min and src_max > dst_max:
+ return 'CLAMP(%s, %s, %s)' % (value, dst_min_native, dst_max_native)
+
+ if src_max > dst_max:
+ return 'MIN2(%s, %s)' % (value, dst_max_native)
+
+ if src_min < dst_min:
+ return 'MAX2(%s, %s)' % (value, dst_min_native)
+
+ return value
+
+
+def conversion_expr(src_channel,
+ dst_channel, dst_native_type,
+ value,
+ clamp=True,
+ src_colorspace = RGB,
+ dst_colorspace = RGB):
+ '''Generate the expression to convert a value between two types.'''
+
+ if src_colorspace != dst_colorspace:
+ if src_colorspace == SRGB:
+ assert src_channel.type == UNSIGNED
+ assert src_channel.norm
+ assert src_channel.size == 8
+ assert dst_colorspace == RGB
+ if dst_channel.type == FLOAT:
+ return 'util_format_srgb_8unorm_to_linear_float(%s)' % value
+ else:
+ assert dst_channel.type == UNSIGNED
+ assert dst_channel.norm
+ assert dst_channel.size == 8
+ return 'util_format_srgb_to_linear_8unorm(%s)' % value
+ elif dst_colorspace == SRGB:
+ assert dst_channel.type == UNSIGNED
+ assert dst_channel.norm
+ assert dst_channel.size == 8
+ assert src_colorspace == RGB
+ if src_channel.type == FLOAT:
+ return 'util_format_linear_float_to_srgb_8unorm(%s)' % value
+ else:
+ assert src_channel.type == UNSIGNED
+ assert src_channel.norm
+ assert src_channel.size == 8
+ return 'util_format_linear_to_srgb_8unorm(%s)' % value
+ elif src_colorspace == ZS:
+ pass
+ elif dst_colorspace == ZS:
+ pass
+ else:
+ assert 0
+
+ if src_channel == dst_channel:
+ return value
+
+ src_type = src_channel.type
+ src_size = src_channel.size
+ src_norm = src_channel.norm
+ src_pure = src_channel.pure
+
+ # Promote half to float
+ if src_type == FLOAT and src_size == 16:
+ value = 'util_half_to_float(%s)' % value
+ src_size = 32
+
+ # Special case for float <-> ubytes for more accurate results
+ # Done before clamping since these functions already take care of that
+ if src_type == UNSIGNED and src_norm and src_size == 8 and dst_channel.type == FLOAT and dst_channel.size == 32:
+ return 'ubyte_to_float(%s)' % value
+ if src_type == FLOAT and src_size == 32 and dst_channel.type == UNSIGNED and dst_channel.norm and dst_channel.size == 8:
+ return 'float_to_ubyte(%s)' % value
+
+ if clamp:
+ if dst_channel.type != FLOAT or src_type != FLOAT:
+ value = clamp_expr(src_channel, dst_channel, dst_native_type, value)
+
+ if src_type in (SIGNED, UNSIGNED) and dst_channel.type in (SIGNED, UNSIGNED):
+ if not src_norm and not dst_channel.norm:
+ # neither is normalized -- just cast
+ return '(%s)%s' % (dst_native_type, value)
+
+ src_one = get_one(src_channel)
+ dst_one = get_one(dst_channel)
+
+ if src_one > dst_one and src_norm and dst_channel.norm:
+ # We can just bitshift
+ src_shift = get_one_shift(src_channel)
+ dst_shift = get_one_shift(dst_channel)
+ value = '(%s >> %s)' % (value, src_shift - dst_shift)
+ else:
+ # We need to rescale using an intermediate type big enough to hold the multiplication of both
+ tmp_native_type = intermediate_native_type(src_size + dst_channel.size, src_channel.sign and dst_channel.sign)
+ value = '((%s)%s)' % (tmp_native_type, value)
+ value = '(%s * 0x%x / 0x%x)' % (value, dst_one, src_one)
+ value = '(%s)%s' % (dst_native_type, value)
+ return value
+
+ # Promote to either float or double
+ if src_type != FLOAT:
+ if src_norm or src_type == FIXED:
+ one = get_one(src_channel)
+ if src_size <= 23:
+ value = '(%s * (1.0f/0x%x))' % (value, one)
+ if dst_channel.size <= 32:
+ value = '(float)%s' % value
+ src_size = 32
+ else:
+ # bigger than single precision mantissa, use double
+ value = '(%s * (1.0/0x%x))' % (value, one)
+ src_size = 64
+ src_norm = False
+ else:
+ if src_size <= 23 or dst_channel.size <= 32:
+ value = '(float)%s' % value
+ src_size = 32
+ else:
+ # bigger than single precision mantissa, use double
+ value = '(double)%s' % value
+ src_size = 64
+ src_type = FLOAT
+
+ # Convert double or float to non-float
+ if dst_channel.type != FLOAT:
+ if dst_channel.norm or dst_channel.type == FIXED:
+ dst_one = get_one(dst_channel)
+ if dst_channel.size <= 23:
+ value = '(%s * 0x%x)' % (value, dst_one)
+ else:
+ # bigger than single precision mantissa, use double
+ value = '(%s * (double)0x%x)' % (value, dst_one)
+ value = '(%s)%s' % (dst_native_type, value)
+ else:
+ # Cast double to float when converting to either half or float
+ if dst_channel.size <= 32 and src_size > 32:
+ value = '(float)%s' % value
+ src_size = 32
+
+ if dst_channel.size == 16:
+ value = 'util_float_to_half(%s)' % value
+ elif dst_channel.size == 64 and src_size < 64:
+ value = '(double)%s' % value
+
+ return value
+
+
+def generate_unpack_kernel(format, dst_channel, dst_native_type):
+
+ if not is_format_supported(format):
+ return
+
+ assert format.layout == PLAIN
+
+ src_native_type = native_type(format)
+
+ if format.is_bitmask():
+ depth = format.block_size()
+ print ' uint%u_t value = *(const uint%u_t *)src;' % (depth, depth)
+
+ # Declare the intermediate variables
+ for i in range(format.nr_channels()):
+ src_channel = format.channels[i]
+ if src_channel.type == UNSIGNED:
+ print ' uint%u_t %s;' % (depth, src_channel.name)
+ elif src_channel.type == SIGNED:
+ print ' int%u_t %s;' % (depth, src_channel.name)
+
+ if depth > 8:
+ print '#ifdef PIPE_ARCH_BIG_ENDIAN'
+ print ' value = util_bswap%u(value);' % depth
+ print '#endif'
+
+ # Compute the intermediate unshifted values
+ shift = 0
+ for i in range(format.nr_channels()):
+ src_channel = format.channels[i]
+ value = 'value'
+ if src_channel.type == UNSIGNED:
+ if shift:
+ value = '%s >> %u' % (value, shift)
+ if shift + src_channel.size < depth:
+ value = '(%s) & 0x%x' % (value, (1 << src_channel.size) - 1)
+ elif src_channel.type == SIGNED:
+ if shift + src_channel.size < depth:
+ # Align the sign bit
+ lshift = depth - (shift + src_channel.size)
+ value = '%s << %u' % (value, lshift)
+ # Cast to signed
+ value = '(int%u_t)(%s) ' % (depth, value)
+ if src_channel.size < depth:
+ # Align the LSB bit
+ rshift = depth - src_channel.size
+ value = '(%s) >> %u' % (value, rshift)
+ else:
+ value = None
+
+ if value is not None:
+ print ' %s = %s;' % (src_channel.name, value)
+
+ shift += src_channel.size
+
+ # Convert, swizzle, and store final values
+ for i in range(4):
+ swizzle = format.swizzles[i]
+ if swizzle < 4:
+ src_channel = format.channels[swizzle]
+ src_colorspace = format.colorspace
+ if src_colorspace == SRGB and i == 3:
+ # Alpha channel is linear
+ src_colorspace = RGB
+ value = src_channel.name
+ value = conversion_expr(src_channel,
+ dst_channel, dst_native_type,
+ value,
+ src_colorspace = src_colorspace)
+ elif swizzle == SWIZZLE_0:
+ value = '0'
+ elif swizzle == SWIZZLE_1:
+ value = get_one(dst_channel)
+ elif swizzle == SWIZZLE_NONE:
+ value = '0'
+ else:
+ assert False
+ print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i])
+
+ else:
+ print ' union util_format_%s pixel;' % format.short_name()
+ print ' memcpy(&pixel, src, sizeof pixel);'
+ bswap_format(format)
+
+ for i in range(4):
+ swizzle = format.swizzles[i]
+ if swizzle < 4:
+ src_channel = format.channels[swizzle]
+ src_colorspace = format.colorspace
+ if src_colorspace == SRGB and i == 3:
+ # Alpha channel is linear
+ src_colorspace = RGB
+ value = 'pixel.chan.%s' % src_channel.name
+ value = conversion_expr(src_channel,
+ dst_channel, dst_native_type,
+ value,
+ src_colorspace = src_colorspace)
+ elif swizzle == SWIZZLE_0:
+ value = '0'
+ elif swizzle == SWIZZLE_1:
+ value = get_one(dst_channel)
+ elif swizzle == SWIZZLE_NONE:
+ value = '0'
+ else:
+ assert False
+ print ' dst[%u] = %s; /* %s */' % (i, value, 'rgba'[i])
+
+
+def generate_pack_kernel(format, src_channel, src_native_type):
+
+ if not is_format_supported(format):
+ return
+
+ dst_native_type = native_type(format)
+
+ assert format.layout == PLAIN
+
+ inv_swizzle = format.inv_swizzles()
+
+ if format.is_bitmask():
+ depth = format.block_size()
+ print ' uint%u_t value = 0;' % depth
+
+ shift = 0
+ for i in range(4):
+ dst_channel = format.channels[i]
+ if inv_swizzle[i] is not None:
+ value ='src[%u]' % inv_swizzle[i]
+ dst_colorspace = format.colorspace
+ if dst_colorspace == SRGB and inv_swizzle[i] == 3:
+ # Alpha channel is linear
+ dst_colorspace = RGB
+ value = conversion_expr(src_channel,
+ dst_channel, dst_native_type,
+ value,
+ dst_colorspace = dst_colorspace)
+ if dst_channel.type in (UNSIGNED, SIGNED):
+ if shift + dst_channel.size < depth:
+ value = '(%s) & 0x%x' % (value, (1 << dst_channel.size) - 1)
+ if shift:
+ value = '(%s) << %u' % (value, shift)
+ if dst_channel.type == SIGNED:
+ # Cast to unsigned
+ value = '(uint%u_t)(%s) ' % (depth, value)
+ else:
+ value = None
+ if value is not None:
+ print ' value |= %s;' % (value)
+
+ shift += dst_channel.size
+
+ if depth > 8:
+ print '#ifdef PIPE_ARCH_BIG_ENDIAN'
+ print ' value = util_bswap%u(value);' % depth
+ print '#endif'
+
+ print ' *(uint%u_t *)dst = value;' % depth
+
+ else:
+ print ' union util_format_%s pixel;' % format.short_name()
+
+ for i in range(4):
+ dst_channel = format.channels[i]
+ width = dst_channel.size
+ if inv_swizzle[i] is None:
+ continue
+ dst_colorspace = format.colorspace
+ if dst_colorspace == SRGB and inv_swizzle[i] == 3:
+ # Alpha channel is linear
+ dst_colorspace = RGB
+ value ='src[%u]' % inv_swizzle[i]
+ value = conversion_expr(src_channel,
+ dst_channel, dst_native_type,
+ value,
+ dst_colorspace = dst_colorspace)
+ print ' pixel.chan.%s = %s;' % (dst_channel.name, value)
+
+ bswap_format(format)
+ print ' memcpy(dst, &pixel, sizeof pixel);'
+
+
+def generate_format_unpack(format, dst_channel, dst_native_type, dst_suffix):
+ '''Generate the function to unpack pixels from a particular format'''
+
+ name = format.short_name()
+
+ print 'static INLINE void'
+ print 'util_format_%s_unpack_%s(%s *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, dst_suffix, dst_native_type)
+ print '{'
+
+ if is_format_supported(format):
+ print ' unsigned x, y;'
+ print ' for(y = 0; y < height; y += %u) {' % (format.block_height,)
+ print ' %s *dst = dst_row;' % (dst_native_type)
+ print ' const uint8_t *src = src_row;'
+ print ' for(x = 0; x < width; x += %u) {' % (format.block_width,)
+
+ generate_unpack_kernel(format, dst_channel, dst_native_type)
+
+ print ' src += %u;' % (format.block_size() / 8,)
+ print ' dst += 4;'
+ print ' }'
+ print ' src_row += src_stride;'
+ print ' dst_row += dst_stride/sizeof(*dst_row);'
+ print ' }'
+
+ print '}'
+ print
+
+
+def generate_format_pack(format, src_channel, src_native_type, src_suffix):
+ '''Generate the function to pack pixels to a particular format'''
+
+ name = format.short_name()
+
+ print 'static INLINE void'
+ print 'util_format_%s_pack_%s(uint8_t *dst_row, unsigned dst_stride, const %s *src_row, unsigned src_stride, unsigned width, unsigned height)' % (name, src_suffix, src_native_type)
+ print '{'
+
+ if is_format_supported(format):
+ print ' unsigned x, y;'
+ print ' for(y = 0; y < height; y += %u) {' % (format.block_height,)
+ print ' const %s *src = src_row;' % (src_native_type)
+ print ' uint8_t *dst = dst_row;'
+ print ' for(x = 0; x < width; x += %u) {' % (format.block_width,)
+
+ generate_pack_kernel(format, src_channel, src_native_type)
+
+ print ' src += 4;'
+ print ' dst += %u;' % (format.block_size() / 8,)
+ print ' }'
+ print ' dst_row += dst_stride;'
+ print ' src_row += src_stride/sizeof(*src_row);'
+ print ' }'
+
+ print '}'
+ print
+
+
+def generate_format_fetch(format, dst_channel, dst_native_type, dst_suffix):
+ '''Generate the function to unpack pixels from a particular format'''
+
+ name = format.short_name()
+
+ print 'static INLINE void'
+ print 'util_format_%s_fetch_%s(%s *dst, const uint8_t *src, unsigned i, unsigned j)' % (name, dst_suffix, dst_native_type)
+ print '{'
+
+ if is_format_supported(format):
+ generate_unpack_kernel(format, dst_channel, dst_native_type)
+
+ print '}'
+ print
+
+
+def is_format_hand_written(format):
+ return format.layout in ('s3tc', 'rgtc', 'subsampled', 'other') or format.colorspace == ZS
+
+
+def generate(formats):
+ print
+ print '#include "pipe/p_compiler.h"'
+ print '#include "u_math.h"'
+ print '#include "u_half.h"'
+ print '#include "u_format.h"'
+ print '#include "u_format_other.h"'
+ print '#include "u_format_srgb.h"'
+ print '#include "u_format_yuv.h"'
+ print '#include "u_format_zs.h"'
+ print
+
+ for format in formats:
+ if not is_format_hand_written(format):
+
+ if is_format_supported(format):
+ generate_format_type(format)
+
+ if is_format_pure_unsigned(format):
+ native_type = 'unsigned'
+ suffix = 'unsigned'
+ channel = Channel(UNSIGNED, False, True, 32)
+
+ generate_format_unpack(format, channel, native_type, suffix)
+ generate_format_pack(format, channel, native_type, suffix)
+
+ channel = Channel(SIGNED, False, True, 32)
+ native_type = 'int'
+ suffix = 'signed'
+ generate_format_unpack(format, channel, native_type, suffix)
+ generate_format_pack(format, channel, native_type, suffix)
+ elif is_format_pure_signed(format):
+ native_type = 'int'
+ suffix = 'signed'
+ channel = Channel(SIGNED, False, True, 32)
+
+ generate_format_unpack(format, channel, native_type, suffix)
+ generate_format_pack(format, channel, native_type, suffix)
+
+ native_type = 'unsigned'
+ suffix = 'unsigned'
+ channel = Channel(UNSIGNED, False, True, 32)
+ generate_format_unpack(format, channel, native_type, suffix)
+ generate_format_pack(format, channel, native_type, suffix)
+ else:
+ channel = Channel(FLOAT, False, False, 32)
+ native_type = 'float'
+ suffix = 'rgba_float'
+
+ generate_format_unpack(format, channel, native_type, suffix)
+ generate_format_pack(format, channel, native_type, suffix)
+ generate_format_fetch(format, channel, native_type, suffix)
+
+ channel = Channel(UNSIGNED, True, False, 8)
+ native_type = 'uint8_t'
+ suffix = 'rgba_8unorm'
+
+ generate_format_unpack(format, channel, native_type, suffix)
+ generate_format_pack(format, channel, native_type, suffix)
+
diff --git a/mesalib/src/gallium/auxiliary/util/u_format_parse.py b/mesalib/src/gallium/auxiliary/util/u_format_parse.py
index f47f65d26..73a4bcb21 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format_parse.py
+++ b/mesalib/src/gallium/auxiliary/util/u_format_parse.py
@@ -1,291 +1,303 @@
-#!/usr/bin/env python
-
-'''
-/**************************************************************************
- *
- * Copyright 2009 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-'''
-
-
-VOID, UNSIGNED, SIGNED, FIXED, FLOAT = range(5)
-
-SWIZZLE_X, SWIZZLE_Y, SWIZZLE_Z, SWIZZLE_W, SWIZZLE_0, SWIZZLE_1, SWIZZLE_NONE, = range(7)
-
-PLAIN = 'plain'
-
-RGB = 'rgb'
-SRGB = 'srgb'
-YUV = 'yuv'
-ZS = 'zs'
-
-
-def is_pot(x):
- return (x & (x - 1)) == 0
-
-
-VERY_LARGE = 99999999999999999999999
-
-
-class Channel:
- '''Describe the channel of a color channel.'''
-
- def __init__(self, type, norm, size, name = ''):
- self.type = type
- self.norm = norm
- self.size = size
- self.sign = type in (SIGNED, FIXED, FLOAT)
- self.name = name
-
- def __str__(self):
- s = str(self.type)
- if self.norm:
- s += 'n'
- s += str(self.size)
- return s
-
- def __eq__(self, other):
- return self.type == other.type and self.norm == other.norm and self.size == other.size
-
- def max(self):
- '''Maximum representable number.'''
- if self.type == FLOAT:
- return VERY_LARGE
- if self.type == FIXED:
- return (1 << (self.size/2)) - 1
- if self.norm:
- return 1
- if self.type == UNSIGNED:
- return (1 << self.size) - 1
- if self.type == SIGNED:
- return (1 << (self.size - 1)) - 1
- assert False
-
- def min(self):
- '''Minimum representable number.'''
- if self.type == FLOAT:
- return -VERY_LARGE
- if self.type == FIXED:
- return -(1 << (self.size/2))
- if self.type == UNSIGNED:
- return 0
- if self.norm:
- return -1
- if self.type == SIGNED:
- return -(1 << (self.size - 1))
- assert False
-
-
-class Format:
- '''Describe a pixel format.'''
-
- def __init__(self, name, layout, block_width, block_height, channels, swizzles, colorspace):
- self.name = name
- self.layout = layout
- self.block_width = block_width
- self.block_height = block_height
- self.channels = channels
- self.swizzles = swizzles
- self.name = name
- self.colorspace = colorspace
-
- def __str__(self):
- return self.name
-
- def short_name(self):
- '''Make up a short norm for a format, suitable to be used as suffix in
- function names.'''
-
- name = self.name
- if name.startswith('PIPE_FORMAT_'):
- name = name[len('PIPE_FORMAT_'):]
- name = name.lower()
- return name
-
- def block_size(self):
- size = 0
- for channel in self.channels:
- size += channel.size
- return size
-
- def nr_channels(self):
- nr_channels = 0
- for channel in self.channels:
- if channel.size:
- nr_channels += 1
- return nr_channels
-
- def is_array(self):
- if self.layout != PLAIN:
- return False
- ref_channel = self.channels[0]
- for channel in self.channels[1:]:
- if channel.size and (channel.size != ref_channel.size or channel.size % 8):
- return False
- return True
-
- def is_mixed(self):
- if self.layout != PLAIN:
- return False
- ref_channel = self.channels[0]
- if ref_channel.type == VOID:
- ref_channel = self.channels[1]
- for channel in self.channels[1:]:
- if channel.type != VOID:
- if channel.type != ref_channel.type:
- return True
- if channel.norm != ref_channel.norm:
- return True
- return False
-
- def is_pot(self):
- return is_pot(self.block_size())
-
- def is_int(self):
- if self.layout != PLAIN:
- return False
- for channel in self.channels:
- if channel.type not in (VOID, UNSIGNED, SIGNED):
- return False
- return True
-
- def is_float(self):
- if self.layout != PLAIN:
- return False
- for channel in self.channels:
- if channel.type not in (VOID, FLOAT):
- return False
- return True
-
- def is_bitmask(self):
- if self.layout != PLAIN:
- return False
- if self.block_size() not in (8, 16, 32):
- return False
- for channel in self.channels:
- if channel.type not in (VOID, UNSIGNED, SIGNED):
- return False
- return True
-
- def inv_swizzles(self):
- '''Return an array[4] of inverse swizzle terms'''
- inv_swizzle = [None]*4
- for i in range(4):
- swizzle = self.swizzles[i]
- if swizzle < 4:
- inv_swizzle[swizzle] = i
- return inv_swizzle
-
- def stride(self):
- return self.block_size()/8
-
-
-_type_parse_map = {
- '': VOID,
- 'x': VOID,
- 'u': UNSIGNED,
- 's': SIGNED,
- 'h': FIXED,
- 'f': FLOAT,
-}
-
-_swizzle_parse_map = {
- 'x': SWIZZLE_X,
- 'y': SWIZZLE_Y,
- 'z': SWIZZLE_Z,
- 'w': SWIZZLE_W,
- '0': SWIZZLE_0,
- '1': SWIZZLE_1,
- '_': SWIZZLE_NONE,
-}
-
-def parse(filename):
- '''Parse the format descrition in CSV format in terms of the
- Channel and Format classes above.'''
-
- stream = open(filename)
- formats = []
- for line in stream:
- try:
- comment = line.index('#')
- except ValueError:
- pass
- else:
- line = line[:comment]
- line = line.strip()
- if not line:
- continue
-
- fields = [field.strip() for field in line.split(',')]
-
- name = fields[0]
- layout = fields[1]
- block_width, block_height = map(int, fields[2:4])
-
- swizzles = [_swizzle_parse_map[swizzle] for swizzle in fields[8]]
- colorspace = fields[9]
-
- if layout == PLAIN:
- names = ['']*4
- if colorspace in (RGB, SRGB):
- for i in range(4):
- swizzle = swizzles[i]
- if swizzle < 4:
- names[swizzle] += 'rgba'[i]
- elif colorspace == ZS:
- for i in range(4):
- swizzle = swizzles[i]
- if swizzle < 4:
- names[swizzle] += 'zs'[i]
- else:
- assert False
- for i in range(4):
- if names[i] == '':
- names[i] = 'x'
- else:
- names = ['x', 'y', 'z', 'w']
-
- channels = []
- for i in range(0, 4):
- field = fields[4 + i]
- if field:
- type = _type_parse_map[field[0]]
- if field[1] == 'n':
- norm = True
- size = int(field[2:])
- else:
- norm = False
- size = int(field[1:])
- else:
- type = VOID
- norm = False
- size = 0
- channel = Channel(type, norm, size, names[i])
- channels.append(channel)
-
- format = Format(name, layout, block_width, block_height, channels, swizzles, colorspace)
- formats.append(format)
- return formats
-
+#!/usr/bin/env python
+
+'''
+/**************************************************************************
+ *
+ * Copyright 2009 VMware, Inc.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ **************************************************************************/
+'''
+
+
+VOID, UNSIGNED, SIGNED, FIXED, FLOAT = range(5)
+
+SWIZZLE_X, SWIZZLE_Y, SWIZZLE_Z, SWIZZLE_W, SWIZZLE_0, SWIZZLE_1, SWIZZLE_NONE, = range(7)
+
+PLAIN = 'plain'
+
+RGB = 'rgb'
+SRGB = 'srgb'
+YUV = 'yuv'
+ZS = 'zs'
+
+
+def is_pot(x):
+ return (x & (x - 1)) == 0
+
+
+VERY_LARGE = 99999999999999999999999
+
+
+class Channel:
+ '''Describe the channel of a color channel.'''
+
+ def __init__(self, type, norm, pure, size, name = ''):
+ self.type = type
+ self.norm = norm
+ self.pure = pure
+ self.size = size
+ self.sign = type in (SIGNED, FIXED, FLOAT)
+ self.name = name
+
+ def __str__(self):
+ s = str(self.type)
+ if self.norm:
+ s += 'n'
+ if self.pure:
+ s += 'p'
+ s += str(self.size)
+ return s
+
+ def __eq__(self, other):
+ return self.type == other.type and self.norm == other.norm and self.pure == other.pure and self.size == other.size
+
+ def max(self):
+ '''Maximum representable number.'''
+ if self.type == FLOAT:
+ return VERY_LARGE
+ if self.type == FIXED:
+ return (1 << (self.size/2)) - 1
+ if self.norm:
+ return 1
+ if self.type == UNSIGNED:
+ return (1 << self.size) - 1
+ if self.type == SIGNED:
+ return (1 << (self.size - 1)) - 1
+ assert False
+
+ def min(self):
+ '''Minimum representable number.'''
+ if self.type == FLOAT:
+ return -VERY_LARGE
+ if self.type == FIXED:
+ return -(1 << (self.size/2))
+ if self.type == UNSIGNED:
+ return 0
+ if self.norm:
+ return -1
+ if self.type == SIGNED:
+ return -(1 << (self.size - 1))
+ assert False
+
+
+class Format:
+ '''Describe a pixel format.'''
+
+ def __init__(self, name, layout, block_width, block_height, channels, swizzles, colorspace):
+ self.name = name
+ self.layout = layout
+ self.block_width = block_width
+ self.block_height = block_height
+ self.channels = channels
+ self.swizzles = swizzles
+ self.name = name
+ self.colorspace = colorspace
+
+ def __str__(self):
+ return self.name
+
+ def short_name(self):
+ '''Make up a short norm for a format, suitable to be used as suffix in
+ function names.'''
+
+ name = self.name
+ if name.startswith('PIPE_FORMAT_'):
+ name = name[len('PIPE_FORMAT_'):]
+ name = name.lower()
+ return name
+
+ def block_size(self):
+ size = 0
+ for channel in self.channels:
+ size += channel.size
+ return size
+
+ def nr_channels(self):
+ nr_channels = 0
+ for channel in self.channels:
+ if channel.size:
+ nr_channels += 1
+ return nr_channels
+
+ def is_array(self):
+ if self.layout != PLAIN:
+ return False
+ ref_channel = self.channels[0]
+ for channel in self.channels[1:]:
+ if channel.size and (channel.size != ref_channel.size or channel.size % 8):
+ return False
+ return True
+
+ def is_mixed(self):
+ if self.layout != PLAIN:
+ return False
+ ref_channel = self.channels[0]
+ if ref_channel.type == VOID:
+ ref_channel = self.channels[1]
+ for channel in self.channels[1:]:
+ if channel.type != VOID:
+ if channel.type != ref_channel.type:
+ return True
+ if channel.norm != ref_channel.norm:
+ return True
+ if channel.pure != ref_channel.pure:
+ return True
+ return False
+
+ def is_pot(self):
+ return is_pot(self.block_size())
+
+ def is_int(self):
+ if self.layout != PLAIN:
+ return False
+ for channel in self.channels:
+ if channel.type not in (VOID, UNSIGNED, SIGNED):
+ return False
+ return True
+
+ def is_float(self):
+ if self.layout != PLAIN:
+ return False
+ for channel in self.channels:
+ if channel.type not in (VOID, FLOAT):
+ return False
+ return True
+
+ def is_bitmask(self):
+ if self.layout != PLAIN:
+ return False
+ if self.block_size() not in (8, 16, 32):
+ return False
+ for channel in self.channels:
+ if channel.type not in (VOID, UNSIGNED, SIGNED):
+ return False
+ return True
+
+ def inv_swizzles(self):
+ '''Return an array[4] of inverse swizzle terms'''
+ inv_swizzle = [None]*4
+ for i in range(4):
+ swizzle = self.swizzles[i]
+ if swizzle < 4:
+ inv_swizzle[swizzle] = i
+ return inv_swizzle
+
+ def stride(self):
+ return self.block_size()/8
+
+
+_type_parse_map = {
+ '': VOID,
+ 'x': VOID,
+ 'u': UNSIGNED,
+ 's': SIGNED,
+ 'h': FIXED,
+ 'f': FLOAT,
+}
+
+_swizzle_parse_map = {
+ 'x': SWIZZLE_X,
+ 'y': SWIZZLE_Y,
+ 'z': SWIZZLE_Z,
+ 'w': SWIZZLE_W,
+ '0': SWIZZLE_0,
+ '1': SWIZZLE_1,
+ '_': SWIZZLE_NONE,
+}
+
+def parse(filename):
+ '''Parse the format descrition in CSV format in terms of the
+ Channel and Format classes above.'''
+
+ stream = open(filename)
+ formats = []
+ for line in stream:
+ try:
+ comment = line.index('#')
+ except ValueError:
+ pass
+ else:
+ line = line[:comment]
+ line = line.strip()
+ if not line:
+ continue
+
+ fields = [field.strip() for field in line.split(',')]
+
+ name = fields[0]
+ layout = fields[1]
+ block_width, block_height = map(int, fields[2:4])
+
+ swizzles = [_swizzle_parse_map[swizzle] for swizzle in fields[8]]
+ colorspace = fields[9]
+
+ if layout == PLAIN:
+ names = ['']*4
+ if colorspace in (RGB, SRGB):
+ for i in range(4):
+ swizzle = swizzles[i]
+ if swizzle < 4:
+ names[swizzle] += 'rgba'[i]
+ elif colorspace == ZS:
+ for i in range(4):
+ swizzle = swizzles[i]
+ if swizzle < 4:
+ names[swizzle] += 'zs'[i]
+ else:
+ assert False
+ for i in range(4):
+ if names[i] == '':
+ names[i] = 'x'
+ else:
+ names = ['x', 'y', 'z', 'w']
+
+ channels = []
+ for i in range(0, 4):
+ field = fields[4 + i]
+ if field:
+ type = _type_parse_map[field[0]]
+ if field[1] == 'n':
+ norm = True
+ pure = False
+ size = int(field[2:])
+ elif field[1] == 'p':
+ pure = True
+ norm = False
+ size = int(field[2:])
+ else:
+ norm = False
+ pure = False
+ size = int(field[1:])
+ else:
+ type = VOID
+ norm = False
+ pure = False
+ size = 0
+ channel = Channel(type, norm, pure, size, names[i])
+ channels.append(channel)
+
+ format = Format(name, layout, block_width, block_height, channels, swizzles, colorspace)
+ formats.append(format)
+ return formats
+
diff --git a/mesalib/src/gallium/auxiliary/util/u_format_table.py b/mesalib/src/gallium/auxiliary/util/u_format_table.py
index addc47481..6c00b0df3 100644
--- a/mesalib/src/gallium/auxiliary/util/u_format_table.py
+++ b/mesalib/src/gallium/auxiliary/util/u_format_table.py
@@ -1,197 +1,212 @@
-#!/usr/bin/env python
-
-CopyRight = '''
-/**************************************************************************
- *
- * Copyright 2010 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-'''
-
-
-import sys
-
-from u_format_parse import *
-import u_format_pack
-
-
-def layout_map(layout):
- return 'UTIL_FORMAT_LAYOUT_' + str(layout).upper()
-
-
-def colorspace_map(colorspace):
- return 'UTIL_FORMAT_COLORSPACE_' + str(colorspace).upper()
-
-
-colorspace_channels_map = {
- 'rgb': ['r', 'g', 'b', 'a'],
- 'srgb': ['sr', 'sg', 'sb', 'a'],
- 'zs': ['z', 's'],
- 'yuv': ['y', 'u', 'v'],
-}
-
-
-type_map = {
- VOID: "UTIL_FORMAT_TYPE_VOID",
- UNSIGNED: "UTIL_FORMAT_TYPE_UNSIGNED",
- SIGNED: "UTIL_FORMAT_TYPE_SIGNED",
- FIXED: "UTIL_FORMAT_TYPE_FIXED",
- FLOAT: "UTIL_FORMAT_TYPE_FLOAT",
-}
-
-
-def bool_map(value):
- if value:
- return "TRUE"
- else:
- return "FALSE"
-
-
-swizzle_map = {
- SWIZZLE_X: "UTIL_FORMAT_SWIZZLE_X",
- SWIZZLE_Y: "UTIL_FORMAT_SWIZZLE_Y",
- SWIZZLE_Z: "UTIL_FORMAT_SWIZZLE_Z",
- SWIZZLE_W: "UTIL_FORMAT_SWIZZLE_W",
- SWIZZLE_0: "UTIL_FORMAT_SWIZZLE_0",
- SWIZZLE_1: "UTIL_FORMAT_SWIZZLE_1",
- SWIZZLE_NONE: "UTIL_FORMAT_SWIZZLE_NONE",
-}
-
-
-def write_format_table(formats):
- print '/* This file is autogenerated by u_format_table.py from u_format.csv. Do not edit directly. */'
- print
- # This will print the copyright message on the top of this file
- print CopyRight.strip()
- print
- print '#include "u_format.h"'
- print '#include "u_format_s3tc.h"'
- print '#include "u_format_rgtc.h"'
- print '#include "u_format_latc.h"'
- print
-
- u_format_pack.generate(formats)
-
- for format in formats:
- print 'const struct util_format_description'
- print 'util_format_%s_description = {' % (format.short_name(),)
- print " %s," % (format.name,)
- print " \"%s\"," % (format.name,)
- print " \"%s\"," % (format.short_name(),)
- print " {%u, %u, %u},\t/* block */" % (format.block_width, format.block_height, format.block_size())
- print " %s," % (layout_map(format.layout),)
- print " %u,\t/* nr_channels */" % (format.nr_channels(),)
- print " %s,\t/* is_array */" % (bool_map(format.is_array()),)
- print " %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),)
- print " %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),)
- print " {"
- for i in range(4):
- channel = format.channels[i]
- if i < 3:
- sep = ","
- else:
- sep = ""
- if channel.size:
- print " {%s, %s, %u}%s\t/* %s = %s */" % (type_map[channel.type], bool_map(channel.norm), channel.size, sep, "xyzw"[i], channel.name)
- else:
- print " {0, 0, 0}%s" % (sep,)
- print " },"
- print " {"
- for i in range(4):
- swizzle = format.swizzles[i]
- if i < 3:
- sep = ","
- else:
- sep = ""
- try:
- comment = colorspace_channels_map[format.colorspace][i]
- except (KeyError, IndexError):
- comment = 'ignored'
- print " %s%s\t/* %s */" % (swizzle_map[swizzle], sep, comment)
- print " },"
- print " %s," % (colorspace_map(format.colorspace),)
- if format.colorspace != ZS:
- print " &util_format_%s_unpack_rgba_8unorm," % format.short_name()
- print " &util_format_%s_pack_rgba_8unorm," % format.short_name()
- if format.layout == 's3tc' or format.layout == 'rgtc':
- print " &util_format_%s_fetch_rgba_8unorm," % format.short_name()
- else:
- print " NULL, /* fetch_rgba_8unorm */"
- print " &util_format_%s_unpack_rgba_float," % format.short_name()
- print " &util_format_%s_pack_rgba_float," % format.short_name()
- print " &util_format_%s_fetch_rgba_float," % format.short_name()
- else:
- print " NULL, /* unpack_rgba_8unorm */"
- print " NULL, /* pack_rgba_8unorm */"
- print " NULL, /* fetch_rgba_8unorm */"
- print " NULL, /* unpack_rgba_float */"
- print " NULL, /* pack_rgba_float */"
- print " NULL, /* fetch_rgba_float */"
- if format.colorspace == ZS and format.swizzles[0] != SWIZZLE_NONE:
- print " &util_format_%s_unpack_z_32unorm," % format.short_name()
- print " &util_format_%s_pack_z_32unorm," % format.short_name()
- print " &util_format_%s_unpack_z_float," % format.short_name()
- print " &util_format_%s_pack_z_float," % format.short_name()
- else:
- print " NULL, /* unpack_z_32unorm */"
- print " NULL, /* pack_z_32unorm */"
- print " NULL, /* unpack_z_float */"
- print " NULL, /* pack_z_float */"
- if format.colorspace == ZS and format.swizzles[1] != SWIZZLE_NONE:
- print " &util_format_%s_unpack_s_8uscaled," % format.short_name()
- print " &util_format_%s_pack_s_8uscaled" % format.short_name()
- else:
- print " NULL, /* unpack_s_8uscaled */"
- print " NULL /* pack_s_8uscaled */"
- print "};"
- print
-
- print "const struct util_format_description *"
- print "util_format_description(enum pipe_format format)"
- print "{"
- print " if (format >= PIPE_FORMAT_COUNT) {"
- print " return NULL;"
- print " }"
- print
- print " switch (format) {"
- for format in formats:
- print " case %s:" % format.name
- print " return &util_format_%s_description;" % (format.short_name(),)
- print " default:"
- print " return NULL;"
- print " }"
- print "}"
- print
-
-
-def main():
-
- formats = []
- for arg in sys.argv[1:]:
- formats.extend(parse(arg))
- write_format_table(formats)
-
-
-if __name__ == '__main__':
- main()
+#!/usr/bin/env python
+
+CopyRight = '''
+/**************************************************************************
+ *
+ * Copyright 2010 VMware, Inc.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ **************************************************************************/
+'''
+
+
+import sys
+
+from u_format_parse import *
+import u_format_pack
+
+
+def layout_map(layout):
+ return 'UTIL_FORMAT_LAYOUT_' + str(layout).upper()
+
+
+def colorspace_map(colorspace):
+ return 'UTIL_FORMAT_COLORSPACE_' + str(colorspace).upper()
+
+
+colorspace_channels_map = {
+ 'rgb': ['r', 'g', 'b', 'a'],
+ 'srgb': ['sr', 'sg', 'sb', 'a'],
+ 'zs': ['z', 's'],
+ 'yuv': ['y', 'u', 'v'],
+}
+
+
+type_map = {
+ VOID: "UTIL_FORMAT_TYPE_VOID",
+ UNSIGNED: "UTIL_FORMAT_TYPE_UNSIGNED",
+ SIGNED: "UTIL_FORMAT_TYPE_SIGNED",
+ FIXED: "UTIL_FORMAT_TYPE_FIXED",
+ FLOAT: "UTIL_FORMAT_TYPE_FLOAT",
+}
+
+
+def bool_map(value):
+ if value:
+ return "TRUE"
+ else:
+ return "FALSE"
+
+
+swizzle_map = {
+ SWIZZLE_X: "UTIL_FORMAT_SWIZZLE_X",
+ SWIZZLE_Y: "UTIL_FORMAT_SWIZZLE_Y",
+ SWIZZLE_Z: "UTIL_FORMAT_SWIZZLE_Z",
+ SWIZZLE_W: "UTIL_FORMAT_SWIZZLE_W",
+ SWIZZLE_0: "UTIL_FORMAT_SWIZZLE_0",
+ SWIZZLE_1: "UTIL_FORMAT_SWIZZLE_1",
+ SWIZZLE_NONE: "UTIL_FORMAT_SWIZZLE_NONE",
+}
+
+
+def write_format_table(formats):
+ print '/* This file is autogenerated by u_format_table.py from u_format.csv. Do not edit directly. */'
+ print
+ # This will print the copyright message on the top of this file
+ print CopyRight.strip()
+ print
+ print '#include "u_format.h"'
+ print '#include "u_format_s3tc.h"'
+ print '#include "u_format_rgtc.h"'
+ print '#include "u_format_latc.h"'
+ print
+
+ u_format_pack.generate(formats)
+
+ for format in formats:
+ print 'const struct util_format_description'
+ print 'util_format_%s_description = {' % (format.short_name(),)
+ print " %s," % (format.name,)
+ print " \"%s\"," % (format.name,)
+ print " \"%s\"," % (format.short_name(),)
+ print " {%u, %u, %u},\t/* block */" % (format.block_width, format.block_height, format.block_size())
+ print " %s," % (layout_map(format.layout),)
+ print " %u,\t/* nr_channels */" % (format.nr_channels(),)
+ print " %s,\t/* is_array */" % (bool_map(format.is_array()),)
+ print " %s,\t/* is_bitmask */" % (bool_map(format.is_bitmask()),)
+ print " %s,\t/* is_mixed */" % (bool_map(format.is_mixed()),)
+ print " {"
+ for i in range(4):
+ channel = format.channels[i]
+ if i < 3:
+ sep = ","
+ else:
+ sep = ""
+ if channel.size:
+ print " {%s, %s, %s, %u}%s\t/* %s = %s */" % (type_map[channel.type], bool_map(channel.norm), bool_map(channel.pure), channel.size, sep, "xyzw"[i], channel.name)
+ else:
+ print " {0, 0, 0}%s" % (sep,)
+ print " },"
+ print " {"
+ for i in range(4):
+ swizzle = format.swizzles[i]
+ if i < 3:
+ sep = ","
+ else:
+ sep = ""
+ try:
+ comment = colorspace_channels_map[format.colorspace][i]
+ except (KeyError, IndexError):
+ comment = 'ignored'
+ print " %s%s\t/* %s */" % (swizzle_map[swizzle], sep, comment)
+ print " },"
+ print " %s," % (colorspace_map(format.colorspace),)
+ if format.colorspace != ZS and format.channels[0].pure == False:
+ print " &util_format_%s_unpack_rgba_8unorm," % format.short_name()
+ print " &util_format_%s_pack_rgba_8unorm," % format.short_name()
+ if format.layout == 's3tc' or format.layout == 'rgtc':
+ print " &util_format_%s_fetch_rgba_8unorm," % format.short_name()
+ else:
+ print " NULL, /* fetch_rgba_8unorm */"
+ print " &util_format_%s_unpack_rgba_float," % format.short_name()
+ print " &util_format_%s_pack_rgba_float," % format.short_name()
+ print " &util_format_%s_fetch_rgba_float," % format.short_name()
+ else:
+ print " NULL, /* unpack_rgba_8unorm */"
+ print " NULL, /* pack_rgba_8unorm */"
+ print " NULL, /* fetch_rgba_8unorm */"
+ print " NULL, /* unpack_rgba_float */"
+ print " NULL, /* pack_rgba_float */"
+ print " NULL, /* fetch_rgba_float */"
+ if format.colorspace == ZS and format.swizzles[0] != SWIZZLE_NONE:
+ print " &util_format_%s_unpack_z_32unorm," % format.short_name()
+ print " &util_format_%s_pack_z_32unorm," % format.short_name()
+ print " &util_format_%s_unpack_z_float," % format.short_name()
+ print " &util_format_%s_pack_z_float," % format.short_name()
+ else:
+ print " NULL, /* unpack_z_32unorm */"
+ print " NULL, /* pack_z_32unorm */"
+ print " NULL, /* unpack_z_float */"
+ print " NULL, /* pack_z_float */"
+ if format.colorspace == ZS and format.swizzles[1] != SWIZZLE_NONE:
+ print " &util_format_%s_unpack_s_8uscaled," % format.short_name()
+ print " &util_format_%s_pack_s_8uscaled," % format.short_name()
+ else:
+ print " NULL, /* unpack_s_8uscaled */"
+ print " NULL, /* pack_s_8uscaled */"
+ if format.channels[0].pure == True and format.channels[0].type == UNSIGNED:
+ print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
+ print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
+ print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
+ print " &util_format_%s_pack_signed /* pack_rgba_sint */" % format.short_name()
+ elif format.channels[0].pure == True and format.channels[0].type == SIGNED:
+ print " &util_format_%s_unpack_unsigned, /* unpack_rgba_uint */" % format.short_name()
+ print " &util_format_%s_pack_unsigned, /* pack_rgba_uint */" % format.short_name()
+ print " &util_format_%s_unpack_signed, /* unpack_rgba_sint */" % format.short_name()
+ print " &util_format_%s_pack_signed /* pack_rgba_sint */" % format.short_name()
+ else:
+ print " NULL, /* unpack_rgba_uint */"
+ print " NULL, /* pack_rgba_uint */"
+ print " NULL, /* unpack_rgba_sint */"
+ print " NULL /* pack_rgba_sint */"
+ print "};"
+ print
+
+ print "const struct util_format_description *"
+ print "util_format_description(enum pipe_format format)"
+ print "{"
+ print " if (format >= PIPE_FORMAT_COUNT) {"
+ print " return NULL;"
+ print " }"
+ print
+ print " switch (format) {"
+ for format in formats:
+ print " case %s:" % format.name
+ print " return &util_format_%s_description;" % (format.short_name(),)
+ print " default:"
+ print " return NULL;"
+ print " }"
+ print "}"
+ print
+
+
+def main():
+
+ formats = []
+ for arg in sys.argv[1:]:
+ formats.extend(parse(arg))
+ write_format_table(formats)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/mesalib/src/gallium/auxiliary/util/u_tile.c b/mesalib/src/gallium/auxiliary/util/u_tile.c
index 23f12e5f4..6342bfbfc 100644
--- a/mesalib/src/gallium/auxiliary/util/u_tile.c
+++ b/mesalib/src/gallium/auxiliary/util/u_tile.c
@@ -389,6 +389,29 @@ pipe_tile_raw_to_rgba(enum pipe_format format,
}
}
+void
+pipe_tile_raw_to_unsigned(enum pipe_format format,
+ void *src,
+ uint w, uint h,
+ unsigned *dst, unsigned dst_stride)
+{
+ util_format_read_4ui(format,
+ dst, dst_stride * sizeof(float),
+ src, util_format_get_stride(format, w),
+ 0, 0, w, h);
+}
+
+void
+pipe_tile_raw_to_signed(enum pipe_format format,
+ void *src,
+ uint w, uint h,
+ int *dst, unsigned dst_stride)
+{
+ util_format_read_4i(format,
+ dst, dst_stride * sizeof(float),
+ src, util_format_get_stride(format, w),
+ 0, 0, w, h);
+}
void
pipe_get_tile_rgba(struct pipe_context *pipe,
@@ -492,6 +515,61 @@ pipe_put_tile_rgba_format(struct pipe_context *pipe,
FREE(packed);
}
+void
+pipe_put_tile_i_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ const int *p)
+{
+ unsigned src_stride = w * 4;
+ void *packed;
+
+ if (u_clip_tile(x, y, &w, &h, &pt->box))
+ return;
+
+ packed = MALLOC(util_format_get_nblocks(format, w, h) * util_format_get_blocksize(format));
+
+ if (!packed)
+ return;
+
+ util_format_write_4i(format,
+ p, src_stride * sizeof(float),
+ packed, util_format_get_stride(format, w),
+ 0, 0, w, h);
+
+ pipe_put_tile_raw(pipe, pt, x, y, w, h, packed, 0);
+
+ FREE(packed);
+}
+
+void
+pipe_put_tile_ui_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ const unsigned int *p)
+{
+ unsigned src_stride = w * 4;
+ void *packed;
+
+ if (u_clip_tile(x, y, &w, &h, &pt->box))
+ return;
+
+ packed = MALLOC(util_format_get_nblocks(format, w, h) * util_format_get_blocksize(format));
+
+ if (!packed)
+ return;
+
+ util_format_write_4ui(format,
+ p, src_stride * sizeof(float),
+ packed, util_format_get_stride(format, w),
+ 0, 0, w, h);
+
+ pipe_put_tile_raw(pipe, pt, x, y, w, h, packed, 0);
+
+ FREE(packed);
+}
/**
* Get a block of Z values, converted to 32-bit range.
@@ -688,3 +766,63 @@ pipe_put_tile_z(struct pipe_context *pipe,
}
+void
+pipe_get_tile_ui_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ unsigned int *p)
+{
+ unsigned dst_stride = w * 4;
+ void *packed;
+
+ if (u_clip_tile(x, y, &w, &h, &pt->box)) {
+ return;
+ }
+
+ packed = MALLOC(util_format_get_nblocks(format, w, h) * util_format_get_blocksize(format));
+ if (!packed) {
+ return;
+ }
+
+ if (format == PIPE_FORMAT_UYVY || format == PIPE_FORMAT_YUYV) {
+ assert((x & 1) == 0);
+ }
+
+ pipe_get_tile_raw(pipe, pt, x, y, w, h, packed, 0);
+
+ pipe_tile_raw_to_unsigned(format, packed, w, h, p, dst_stride);
+
+ FREE(packed);
+}
+
+
+void
+pipe_get_tile_i_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ int *p)
+{
+ unsigned dst_stride = w * 4;
+ void *packed;
+
+ if (u_clip_tile(x, y, &w, &h, &pt->box)) {
+ return;
+ }
+
+ packed = MALLOC(util_format_get_nblocks(format, w, h) * util_format_get_blocksize(format));
+ if (!packed) {
+ return;
+ }
+
+ if (format == PIPE_FORMAT_UYVY || format == PIPE_FORMAT_YUYV) {
+ assert((x & 1) == 0);
+ }
+
+ pipe_get_tile_raw(pipe, pt, x, y, w, h, packed, 0);
+
+ pipe_tile_raw_to_signed(format, packed, w, h, p, dst_stride);
+
+ FREE(packed);
+}
diff --git a/mesalib/src/gallium/auxiliary/util/u_tile.h b/mesalib/src/gallium/auxiliary/util/u_tile.h
index 0abc95e2b..926f1695f 100644
--- a/mesalib/src/gallium/auxiliary/util/u_tile.h
+++ b/mesalib/src/gallium/auxiliary/util/u_tile.h
@@ -1,126 +1,165 @@
-/**************************************************************************
- *
- * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
- * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-#ifndef P_TILE_H
-#define P_TILE_H
-
-#include "pipe/p_compiler.h"
-#include "pipe/p_format.h"
-#include "pipe/p_state.h"
-
-struct pipe_context;
-struct pipe_transfer;
-
-/**
- * Clip tile against transfer dims.
- *
- * XXX: this only clips width and height!
- *
- * \return TRUE if tile is totally clipped, FALSE otherwise
- */
-static INLINE boolean
-u_clip_tile(uint x, uint y, uint *w, uint *h, const struct pipe_box *box)
-{
- if (x >= box->width)
- return TRUE;
- if (y >= box->height)
- return TRUE;
- if (x + *w > box->width)
- *w = box->width - x;
- if (y + *h > box->height)
- *h = box->height - y;
- return FALSE;
-}
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void
-pipe_get_tile_raw(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- void *p, int dst_stride);
-
-void
-pipe_put_tile_raw(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- const void *p, int src_stride);
-
-
-void
-pipe_get_tile_rgba(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- float *p);
-
-void
-pipe_get_tile_rgba_format(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- enum pipe_format format,
- float *p);
-
-void
-pipe_put_tile_rgba(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- const float *p);
-
-void
-pipe_put_tile_rgba_format(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- enum pipe_format format,
- const float *p);
-
-
-void
-pipe_get_tile_z(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- uint *z);
-
-void
-pipe_put_tile_z(struct pipe_context *pipe,
- struct pipe_transfer *pt,
- uint x, uint y, uint w, uint h,
- const uint *z);
-
-void
-pipe_tile_raw_to_rgba(enum pipe_format format,
- void *src,
- uint w, uint h,
- float *dst, unsigned dst_stride);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+/**************************************************************************
+ *
+ * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sub license, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+ * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ **************************************************************************/
+
+#ifndef P_TILE_H
+#define P_TILE_H
+
+#include "pipe/p_compiler.h"
+#include "pipe/p_format.h"
+#include "pipe/p_state.h"
+
+struct pipe_context;
+struct pipe_transfer;
+
+/**
+ * Clip tile against transfer dims.
+ *
+ * XXX: this only clips width and height!
+ *
+ * \return TRUE if tile is totally clipped, FALSE otherwise
+ */
+static INLINE boolean
+u_clip_tile(uint x, uint y, uint *w, uint *h, const struct pipe_box *box)
+{
+ if (x >= box->width)
+ return TRUE;
+ if (y >= box->height)
+ return TRUE;
+ if (x + *w > box->width)
+ *w = box->width - x;
+ if (y + *h > box->height)
+ *h = box->height - y;
+ return FALSE;
+}
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void
+pipe_get_tile_raw(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ void *p, int dst_stride);
+
+void
+pipe_put_tile_raw(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ const void *p, int src_stride);
+
+
+void
+pipe_get_tile_rgba(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ float *p);
+
+void
+pipe_get_tile_rgba_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ float *p);
+
+void
+pipe_put_tile_rgba(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ const float *p);
+
+void
+pipe_put_tile_rgba_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ const float *p);
+
+
+void
+pipe_get_tile_z(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ uint *z);
+
+void
+pipe_put_tile_z(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ const uint *z);
+
+void
+pipe_tile_raw_to_rgba(enum pipe_format format,
+ void *src,
+ uint w, uint h,
+ float *dst, unsigned dst_stride);
+
+void
+pipe_tile_raw_to_unsigned(enum pipe_format format,
+ void *src,
+ uint w, uint h,
+ unsigned *dst, unsigned dst_stride);
+
+void
+pipe_tile_raw_to_signed(enum pipe_format format,
+ void *src,
+ uint w, uint h,
+ int *dst, unsigned dst_stride);
+
+void
+pipe_get_tile_ui_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ unsigned int *p);
+
+void
+pipe_get_tile_i_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ int *p);
+
+void
+pipe_put_tile_ui_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ const unsigned *p);
+
+void
+pipe_put_tile_i_format(struct pipe_context *pipe,
+ struct pipe_transfer *pt,
+ uint x, uint y, uint w, uint h,
+ enum pipe_format format,
+ const int *p);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/mesalib/src/glsl/ast_to_hir.cpp b/mesalib/src/glsl/ast_to_hir.cpp
index 4f8a5482b..70afb67df 100644
--- a/mesalib/src/glsl/ast_to_hir.cpp
+++ b/mesalib/src/glsl/ast_to_hir.cpp
@@ -2803,8 +2803,7 @@ ast_declarator_list::hir(exec_list *instructions,
_mesa_glsl_error(& loc, state,
"identifier `%s' uses reserved `gl_' prefix",
decl->identifier);
- else if (state->language_version >= 130 &&
- strstr(decl->identifier, "__")) {
+ else if (strstr(decl->identifier, "__")) {
/* From page 14 (page 20 of the PDF) of the GLSL 1.10
* spec:
*
diff --git a/mesalib/src/glsl/ir.cpp b/mesalib/src/glsl/ir.cpp
index d6594cd9a..d968890a2 100644
--- a/mesalib/src/glsl/ir.cpp
+++ b/mesalib/src/glsl/ir.cpp
@@ -1353,14 +1353,6 @@ ir_variable::interpolation_string() const
}
-unsigned
-ir_variable::component_slots() const
-{
- /* FINISHME: Sparsely accessed arrays require fewer slots. */
- return this->type->component_slots();
-}
-
-
ir_function_signature::ir_function_signature(const glsl_type *return_type)
: return_type(return_type), is_defined(false), _function(NULL)
{
diff --git a/mesalib/src/glsl/ir.h b/mesalib/src/glsl/ir.h
index cc4e68002..b707634ea 100644
--- a/mesalib/src/glsl/ir.h
+++ b/mesalib/src/glsl/ir.h
@@ -293,14 +293,6 @@ public:
const char *interpolation_string() const;
/**
- * Calculate the number of slots required to hold this variable
- *
- * This is used to determine how many uniform or varying locations a variable
- * occupies. The count is in units of floating point components.
- */
- unsigned component_slots() const;
-
- /**
* Delcared name of the variable
*/
const char *name;
diff --git a/mesalib/src/mesa/drivers/common/meta.c b/mesalib/src/mesa/drivers/common/meta.c
index 4d645e200..5b73dcdfb 100644
--- a/mesalib/src/mesa/drivers/common/meta.c
+++ b/mesalib/src/mesa/drivers/common/meta.c
@@ -496,7 +496,8 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
_mesa_set_enable(ctx, GL_TEXTURE_3D, GL_FALSE);
if (ctx->Extensions.ARB_texture_cube_map)
_mesa_set_enable(ctx, GL_TEXTURE_CUBE_MAP, GL_FALSE);
- _mesa_set_enable(ctx, GL_TEXTURE_RECTANGLE, GL_FALSE);
+ if (ctx->Extensions.NV_texture_rectangle)
+ _mesa_set_enable(ctx, GL_TEXTURE_RECTANGLE, GL_FALSE);
_mesa_set_enable(ctx, GL_TEXTURE_GEN_S, GL_FALSE);
_mesa_set_enable(ctx, GL_TEXTURE_GEN_T, GL_FALSE);
_mesa_set_enable(ctx, GL_TEXTURE_GEN_R, GL_FALSE);
diff --git a/mesalib/src/mesa/main/APIspec.xml b/mesalib/src/mesa/main/APIspec.xml
index 5d5fc03be..574480e28 100644
--- a/mesalib/src/mesa/main/APIspec.xml
+++ b/mesalib/src/mesa/main/APIspec.xml
@@ -41,10 +41,6 @@
<param name="plane" type="GLenum"/>
<vector name="equation" type="const GLtype *" size="4"/>
</proto>
-
- <desc name="plane">
- <range base="GL_CLIP_PLANE" from="0" to="5"/>
- </desc>
</template>
<template name="CullFace">
@@ -807,6 +803,8 @@
<value name="GL_RESCALE_NORMAL"/>
<range base="GL_CLIP_PLANE" from="0" to="5"/>
+ <value name="GL_CLIP_PLANE0+6"/>
+ <value name="GL_CLIP_PLANE0+7"/>
<value name="GL_FOG"/>
<value name="GL_LIGHTING"/>
@@ -862,6 +860,8 @@
<value name="GL_RESCALE_NORMAL"/>
<range base="GL_CLIP_PLANE" from="0" to="5"/>
+ <value name="GL_CLIP_PLANE0+6"/>
+ <value name="GL_CLIP_PLANE0+7"/>
<value name="GL_FOG"/>
<value name="GL_LIGHTING"/>
@@ -1260,10 +1260,6 @@
<param name="plane" type="GLenum"/>
<vector name="equation" type="GLtype *" size="4"/>
</proto>
-
- <desc name="plane">
- <range base="GL_CLIP_PLANE" from="0" to="5"/>
- </desc>
</template>
<template name="GetError" direction="get">
@@ -1517,6 +1513,8 @@
<value name="GL_RESCALE_NORMAL"/>
<range base="GL_CLIP_PLANE" from="0" to="5"/>
+ <value name="GL_CLIP_PLANE0+6"/>
+ <value name="GL_CLIP_PLANE0+7"/>
<value name="GL_FOG"/>
<value name="GL_LIGHTING"/>
diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c
index 2532c47de..fc52e8c15 100644
--- a/mesalib/src/mesa/main/context.c
+++ b/mesalib/src/mesa/main/context.c
@@ -1852,17 +1852,15 @@ _mesa_valid_to_render(struct gl_context *ctx, const char *where)
sh = shProg[i]->_LinkedShaders[i];
switch (sh->Type) {
case GL_VERTEX_SHADER:
- _mesa_append_uniforms_to_file(sh, &shProg[i]->VertexProgram->Base);
+ _mesa_append_uniforms_to_file(sh, sh->Program);
break;
case GL_GEOMETRY_SHADER_ARB:
- _mesa_append_uniforms_to_file(sh,
- &shProg[i]->GeometryProgram->Base);
+ _mesa_append_uniforms_to_file(sh, sh->Program);
break;
case GL_FRAGMENT_SHADER:
- _mesa_append_uniforms_to_file(sh,
- &shProg[i]->FragmentProgram->Base);
+ _mesa_append_uniforms_to_file(sh, sh->Program);
break;
}
}
diff --git a/mesalib/src/mesa/main/dd.h b/mesalib/src/mesa/main/dd.h
index 787556451..4e017ae38 100644
--- a/mesalib/src/mesa/main/dd.h
+++ b/mesalib/src/mesa/main/dd.h
@@ -901,6 +901,7 @@ struct dd_function_table {
*/
void (*EndCallList)( struct gl_context *ctx );
+ /**@}*/
/**
* \name GL_ARB_sync interfaces
diff --git a/mesalib/src/mesa/main/ff_fragment_shader.cpp b/mesalib/src/mesa/main/ff_fragment_shader.cpp
index 7cc172168..e6451c98b 100644
--- a/mesalib/src/mesa/main/ff_fragment_shader.cpp
+++ b/mesalib/src/mesa/main/ff_fragment_shader.cpp
@@ -315,7 +315,7 @@ static GLbitfield get_fp_input_mask( struct gl_context *ctx )
const GLboolean vertexShader =
(ctx->Shader.CurrentVertexProgram &&
ctx->Shader.CurrentVertexProgram->LinkStatus &&
- ctx->Shader.CurrentVertexProgram->VertexProgram);
+ ctx->Shader.CurrentVertexProgram->_LinkedShaders[MESA_SHADER_VERTEX]);
const GLboolean vertexProgram = ctx->VertexProgram._Enabled;
GLbitfield fp_inputs = 0x0;
@@ -371,7 +371,7 @@ static GLbitfield get_fp_input_mask( struct gl_context *ctx )
}
else {
/* calculate from vp->outputs */
- struct gl_vertex_program *vprog;
+ struct gl_program *vprog;
GLbitfield64 vp_outputs;
/* Choose GLSL vertex shader over ARB vertex program. Need this
@@ -379,11 +379,11 @@ static GLbitfield get_fp_input_mask( struct gl_context *ctx )
* validation (see additional comments in state.c).
*/
if (vertexShader)
- vprog = ctx->Shader.CurrentVertexProgram->VertexProgram;
+ vprog = ctx->Shader.CurrentVertexProgram->_LinkedShaders[MESA_SHADER_VERTEX]->Program;
else
- vprog = ctx->VertexProgram.Current;
+ vprog = &ctx->VertexProgram.Current->Base;
- vp_outputs = vprog->Base.OutputsWritten;
+ vp_outputs = vprog->OutputsWritten;
/* These get generated in the setup routine regardless of the
* vertex program:
diff --git a/mesalib/src/mesa/main/formats.c b/mesalib/src/mesa/main/formats.c
index 02b20284b..6307f8e4d 100644
--- a/mesalib/src/mesa/main/formats.c
+++ b/mesalib/src/mesa/main/formats.c
@@ -2075,13 +2075,13 @@ _mesa_format_to_type_and_comps(gl_format format,
return;
case MESA_FORMAT_Z24_S8:
- *datatype = GL_UNSIGNED_INT;
- *comps = 1; /* XXX OK? */
+ *datatype = GL_UNSIGNED_INT_24_8_MESA;
+ *comps = 2;
return;
case MESA_FORMAT_S8_Z24:
- *datatype = GL_UNSIGNED_INT;
- *comps = 1; /* XXX OK? */
+ *datatype = GL_UNSIGNED_INT_8_24_REV_MESA;
+ *comps = 2;
return;
case MESA_FORMAT_Z16:
diff --git a/mesalib/src/mesa/main/get.c b/mesalib/src/mesa/main/get.c
index a869133a1..160a4f218 100644
--- a/mesalib/src/mesa/main/get.c
+++ b/mesalib/src/mesa/main/get.c
@@ -512,6 +512,7 @@ static const struct value_desc values[] = {
#if FEATURE_GL || FEATURE_ES1
/* Enums in OpenGL and GLES1 */
{ 0, 0, TYPE_API_MASK, API_OPENGL_BIT | API_OPENGLES_BIT, NO_EXTRA },
+ { GL_MAX_LIGHTS, CONTEXT_INT(Const.MaxLights), NO_EXTRA },
{ GL_LIGHT0, CONTEXT_BOOL(Light.Light[0].Enabled), NO_EXTRA },
{ GL_LIGHT1, CONTEXT_BOOL(Light.Light[1].Enabled), NO_EXTRA },
{ GL_LIGHT2, CONTEXT_BOOL(Light.Light[2].Enabled), NO_EXTRA },
@@ -680,8 +681,6 @@ static const struct value_desc values[] = {
#if FEATURE_GL || FEATURE_ES2
{ 0, 0, TYPE_API_MASK, API_OPENGL_BIT | API_OPENGLES2_BIT, NO_EXTRA },
- /* This entry isn't spec'ed for GLES 2, but is needed for Mesa's GLSL: */
- { GL_MAX_LIGHTS, CONTEXT_INT(Const.MaxLights), NO_EXTRA },
{ GL_MAX_TEXTURE_COORDS_ARB, /* == GL_MAX_TEXTURE_COORDS_NV */
CONTEXT_INT(Const.MaxTextureCoordUnits),
extra_ARB_fragment_program_NV_fragment_program },
diff --git a/mesalib/src/mesa/main/imports.c b/mesalib/src/mesa/main/imports.c
index 8f0971959..345a1c53e 100644
--- a/mesalib/src/mesa/main/imports.c
+++ b/mesalib/src/mesa/main/imports.c
@@ -527,6 +527,19 @@ _mesa_bitcount(unsigned int n)
}
return bits;
}
+
+/**
+ * Return number of bits set in given 64-bit uint.
+ */
+unsigned int
+_mesa_bitcount_64(uint64_t n)
+{
+ unsigned int bits;
+ for (bits = 0; n > 0; n = n >> 1) {
+ bits += (n & 1);
+ }
+ return bits;
+}
#endif
diff --git a/mesalib/src/mesa/main/imports.h b/mesalib/src/mesa/main/imports.h
index 5fb5581ef..20fa148fe 100644
--- a/mesalib/src/mesa/main/imports.h
+++ b/mesalib/src/mesa/main/imports.h
@@ -578,9 +578,12 @@ _mesa_init_sqrt_table(void);
#if ((_GNUC__ == 3 && __GNUC_MINOR__ >= 4) || __GNUC__ >= 4)
#define _mesa_bitcount(i) __builtin_popcount(i)
+#define _mesa_bitcount_64(i) __builtin_popcountll(i)
#else
extern unsigned int
_mesa_bitcount(unsigned int n);
+extern unsigned int
+_mesa_bitcount_64(uint64_t n);
#endif
#else
diff --git a/mesalib/src/mesa/main/mipmap.c b/mesalib/src/mesa/main/mipmap.c
index f04a98b03..46d71bb22 100644
--- a/mesalib/src/mesa/main/mipmap.c
+++ b/mesalib/src/mesa/main/mipmap.c
@@ -43,7 +43,13 @@
static GLint
bytes_per_pixel(GLenum datatype, GLuint comps)
{
- GLint b = _mesa_sizeof_packed_type(datatype);
+ GLint b;
+
+ if (datatype == GL_UNSIGNED_INT_8_24_REV_MESA ||
+ datatype == GL_UNSIGNED_INT_24_8_MESA)
+ return 4;
+
+ b = _mesa_sizeof_packed_type(datatype);
assert(b >= 0);
if (_mesa_type_is_packed(datatype))
@@ -717,6 +723,36 @@ do_row(GLenum datatype, GLuint comps, GLint srcWidth,
}
}
+ else if (datatype == GL_UNSIGNED_INT_24_8_MESA && comps == 2) {
+ GLuint i, j, k;
+ const GLuint *rowA = (const GLuint *) srcRowA;
+ const GLuint *rowB = (const GLuint *) srcRowB;
+ GLuint *dst = (GLuint *) dstRow;
+ /* note: averaging stencil values seems weird, but what else? */
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ GLuint z = (((rowA[j] >> 8) + (rowA[k] >> 8) +
+ (rowB[j] >> 8) + (rowB[k] >> 8)) / 4) << 8;
+ GLuint s = ((rowA[j] & 0xff) + (rowA[k] & 0xff) +
+ (rowB[j] & 0xff) + (rowB[k] & 0xff)) / 4;
+ dst[i] = z | s;
+ }
+ }
+ else if (datatype == GL_UNSIGNED_INT_8_24_REV_MESA && comps == 2) {
+ GLuint i, j, k;
+ const GLuint *rowA = (const GLuint *) srcRowA;
+ const GLuint *rowB = (const GLuint *) srcRowB;
+ GLuint *dst = (GLuint *) dstRow;
+ for (i = j = 0, k = k0; i < (GLuint) dstWidth;
+ i++, j += colStride, k += colStride) {
+ GLuint z = ((rowA[j] & 0xffffff) + (rowA[k] & 0xffffff) +
+ (rowB[j] & 0xffffff) + (rowB[k] & 0xffffff)) / 4;
+ GLuint s = (((rowA[j] >> 24) + (rowA[k] >> 24) +
+ (rowB[j] >> 24) + (rowB[k] >> 24)) / 4) << 24;
+ dst[i] = z | s;
+ }
+ }
+
else {
_mesa_problem(NULL, "bad format in do_row()");
}
diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h
index c97c0bf80..749324d76 100644
--- a/mesalib/src/mesa/main/mtypes.h
+++ b/mesalib/src/mesa/main/mtypes.h
@@ -1231,8 +1231,8 @@ typedef enum
/**
- * Texture image state. Describes the dimensions of a texture image,
- * the texel format and pointers to Texel Fetch functions.
+ * Texture image state. Drivers will typically create a subclass of this
+ * with extra fields for memory buffers, etc.
*/
struct gl_texture_image
{
@@ -2171,9 +2171,6 @@ struct gl_shader_program
} Vert;
/* post-link info: */
- struct gl_vertex_program *VertexProgram; /**< Linked vertex program */
- struct gl_fragment_program *FragmentProgram; /**< Linked fragment prog */
- struct gl_geometry_program *GeometryProgram; /**< Linked geometry prog */
struct gl_uniform_list *Uniforms;
struct gl_program_parameter_list *Varying;
GLboolean LinkStatus; /**< GL_LINK_STATUS */
diff --git a/mesalib/src/mesa/main/pack.c b/mesalib/src/mesa/main/pack.c
index 62e352f3f..092e541c5 100644
--- a/mesalib/src/mesa/main/pack.c
+++ b/mesalib/src/mesa/main/pack.c
@@ -467,6 +467,69 @@ get_type_min_max(GLenum type, GLfloat *min, GLfloat *max)
}
}
+/*
+ * integer packing , no transfer operations only packs
+ * to dst of GL_UNSIGNED_INT or GL_INT
+ */
+void
+_mesa_pack_rgba_span_int(struct gl_context *ctx, GLuint n, GLuint rgba[][4],
+ GLenum dstFormat, GLenum dstType,
+ GLvoid *dstAddr)
+{
+ int i;
+
+ switch(dstType) {
+ case GL_UNSIGNED_INT: {
+ GLuint *dst = (GLuint *) dstAddr;
+ switch (dstFormat) {
+ case GL_RED_INTEGER_EXT:
+ case GL_GREEN_INTEGER_EXT:
+ case GL_BLUE_INTEGER_EXT:
+ case GL_ALPHA_INTEGER_EXT:
+ case GL_RGB_INTEGER_EXT:
+ case GL_RGBA_INTEGER_EXT:
+ case GL_BGR_INTEGER_EXT:
+ case GL_BGRA_INTEGER_EXT:
+ case GL_LUMINANCE_INTEGER_EXT:
+ case GL_LUMINANCE_ALPHA_INTEGER_EXT:
+ for (i=0;i<n;i++) {
+ dst[i*4+0] = (GLuint) rgba[i][RCOMP];
+ dst[i*4+1] = (GLuint) rgba[i][GCOMP];
+ dst[i*4+2] = (GLuint) rgba[i][BCOMP];
+ dst[i*4+3] = (GLuint) rgba[i][ACOMP];
+ }
+ break;
+ }
+ }
+ break;
+ case GL_INT: {
+ GLint *dst = (GLint *) dstAddr;
+ switch (dstFormat) {
+ case GL_RED_INTEGER_EXT:
+ case GL_GREEN_INTEGER_EXT:
+ case GL_BLUE_INTEGER_EXT:
+ case GL_ALPHA_INTEGER_EXT:
+ case GL_RGB_INTEGER_EXT:
+ case GL_RGBA_INTEGER_EXT:
+ case GL_BGR_INTEGER_EXT:
+ case GL_BGRA_INTEGER_EXT:
+ case GL_LUMINANCE_INTEGER_EXT:
+ case GL_LUMINANCE_ALPHA_INTEGER_EXT:
+ for (i=0;i<n;i++) {
+ dst[i*4+0] = (GLint) rgba[i][RCOMP];
+ dst[i*4+1] = (GLint) rgba[i][GCOMP];
+ dst[i*4+2] = (GLint) rgba[i][BCOMP];
+ dst[i*4+3] = (GLint) rgba[i][ACOMP];
+ }
+ break;
+ }
+ }
+ break;
+ default:
+ assert(0);
+ return;
+ }
+}
/**
diff --git a/mesalib/src/mesa/main/pack.h b/mesalib/src/mesa/main/pack.h
index 7c76baae4..7a0089c2f 100644
--- a/mesalib/src/mesa/main/pack.h
+++ b/mesalib/src/mesa/main/pack.h
@@ -144,4 +144,9 @@ _mesa_unpack_image(GLuint dimensions,
const struct gl_pixelstore_attrib *unpack);
+void
+_mesa_pack_rgba_span_int(struct gl_context *ctx, GLuint n, GLuint rgba[][4],
+ GLenum dstFormat, GLenum dstType,
+ GLvoid *dstAddr);
+
#endif
diff --git a/mesalib/src/mesa/main/shaderapi.c b/mesalib/src/mesa/main/shaderapi.c
index 9e0ed9c69..c3aabe43f 100644
--- a/mesalib/src/mesa/main/shaderapi.c
+++ b/mesalib/src/mesa/main/shaderapi.c
@@ -808,12 +808,15 @@ print_shader_info(const struct gl_shader_program *shProg)
shProg->Shaders[i]->Name,
shProg->Shaders[i]->SourceChecksum);
}
- if (shProg->VertexProgram)
- printf(" vert prog %u\n", shProg->VertexProgram->Base.Id);
- if (shProg->FragmentProgram)
- printf(" frag prog %u\n", shProg->FragmentProgram->Base.Id);
- if (shProg->GeometryProgram)
- printf(" geom prog %u\n", shProg->GeometryProgram->Base.Id);
+ if (shProg->_LinkedShaders[MESA_SHADER_VERTEX])
+ printf(" vert prog %u\n",
+ shProg->_LinkedShaders[MESA_SHADER_VERTEX]->Program->Id);
+ if (shProg->_LinkedShaders[MESA_SHADER_FRAGMENT])
+ printf(" frag prog %u\n",
+ shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program->Id);
+ if (shProg->_LinkedShaders[MESA_SHADER_GEOMETRY])
+ printf(" geom prog %u\n",
+ shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program->Id);
}
@@ -963,9 +966,7 @@ static GLboolean
validate_shader_program(const struct gl_shader_program *shProg,
char *errMsg)
{
- const struct gl_vertex_program *vp = shProg->VertexProgram;
- const struct gl_geometry_program *gp = shProg->GeometryProgram;
- const struct gl_fragment_program *fp = shProg->FragmentProgram;
+ unsigned i;
if (!shProg->LinkStatus) {
return GL_FALSE;
@@ -991,14 +992,11 @@ validate_shader_program(const struct gl_shader_program *shProg,
* Check: any two active samplers in the current program object are of
* different types, but refer to the same texture image unit,
*/
- if (vp && !validate_samplers(&vp->Base, errMsg)) {
- return GL_FALSE;
- }
- if (gp && !validate_samplers(&gp->Base, errMsg)) {
- return GL_FALSE;
- }
- if (fp && !validate_samplers(&fp->Base, errMsg)) {
- return GL_FALSE;
+ for (i = 0; i < Elements(shProg->_LinkedShaders); i++) {
+ if (shProg->_LinkedShaders[i]
+ && !validate_samplers(shProg->_LinkedShaders[i]->Program, errMsg)) {
+ return GL_FALSE;
+ }
}
return GL_TRUE;
diff --git a/mesalib/src/mesa/main/shaderobj.c b/mesalib/src/mesa/main/shaderobj.c
index 1eba75697..ccf7efddb 100644
--- a/mesalib/src/mesa/main/shaderobj.c
+++ b/mesalib/src/mesa/main/shaderobj.c
@@ -275,10 +275,6 @@ void
_mesa_clear_shader_program_data(struct gl_context *ctx,
struct gl_shader_program *shProg)
{
- _mesa_reference_vertprog(ctx, &shProg->VertexProgram, NULL);
- _mesa_reference_fragprog(ctx, &shProg->FragmentProgram, NULL);
- _mesa_reference_geomprog(ctx, &shProg->GeometryProgram, NULL);
-
if (shProg->Uniforms) {
_mesa_free_uniform_list(shProg->Uniforms);
shProg->Uniforms = NULL;
diff --git a/mesalib/src/mesa/main/state.c b/mesalib/src/mesa/main/state.c
index fc25515a0..bbe90a32e 100644
--- a/mesalib/src/mesa/main/state.c
+++ b/mesalib/src/mesa/main/state.c
@@ -246,10 +246,12 @@ update_program(struct gl_context *ctx)
* come up, or matter.
*/
- if (fsProg && fsProg->LinkStatus && fsProg->FragmentProgram) {
+ if (fsProg && fsProg->LinkStatus
+ && fsProg->_LinkedShaders[MESA_SHADER_FRAGMENT]) {
/* Use GLSL fragment shader */
_mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current,
- fsProg->FragmentProgram);
+ (struct gl_fragment_program *)
+ fsProg->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program);
}
else if (ctx->FragmentProgram._Enabled) {
/* Use user-defined fragment program */
@@ -268,10 +270,12 @@ update_program(struct gl_context *ctx)
_mesa_reference_fragprog(ctx, &ctx->FragmentProgram._Current, NULL);
}
- if (gsProg && gsProg->LinkStatus && gsProg->GeometryProgram) {
+ if (gsProg && gsProg->LinkStatus
+ && gsProg->_LinkedShaders[MESA_SHADER_GEOMETRY]) {
/* Use GLSL geometry shader */
_mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current,
- gsProg->GeometryProgram);
+ (struct gl_geometry_program *)
+ gsProg->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program);
} else {
/* No geometry program */
_mesa_reference_geomprog(ctx, &ctx->GeometryProgram._Current, NULL);
@@ -281,10 +285,12 @@ update_program(struct gl_context *ctx)
* _mesa_get_fixed_func_vertex_program() needs to know active
* fragprog inputs.
*/
- if (vsProg && vsProg->LinkStatus && vsProg->VertexProgram) {
+ if (vsProg && vsProg->LinkStatus
+ && vsProg->_LinkedShaders[MESA_SHADER_VERTEX]) {
/* Use GLSL vertex shader */
_mesa_reference_vertprog(ctx, &ctx->VertexProgram._Current,
- vsProg->VertexProgram);
+ (struct gl_vertex_program *)
+ vsProg->_LinkedShaders[MESA_SHADER_VERTEX]->Program);
}
else if (ctx->VertexProgram._Enabled) {
/* Use user-defined vertex program */
diff --git a/mesalib/src/mesa/main/texcompress_fxt1.c b/mesalib/src/mesa/main/texcompress_fxt1.c
index b6d8ae016..41630a47c 100644
--- a/mesalib/src/mesa/main/texcompress_fxt1.c
+++ b/mesalib/src/mesa/main/texcompress_fxt1.c
@@ -76,6 +76,7 @@ _mesa_texstore_rgb_fxt1(TEXSTORE_PARAMS)
if (srcFormat != GL_RGB ||
srcType != GL_UNSIGNED_BYTE ||
ctx->_ImageTransferState ||
+ srcPacking->RowLength != srcWidth ||
srcPacking->SwapBytes) {
/* convert image to RGB/GLubyte */
tempImage = _mesa_make_temp_ubyte_image(ctx, dims,
@@ -91,7 +92,9 @@ _mesa_texstore_rgb_fxt1(TEXSTORE_PARAMS)
srcFormat = GL_RGB;
}
else {
- pixels = (const GLubyte *) srcAddr;
+ pixels = _mesa_image_address2d(srcPacking, srcAddr, srcWidth, srcHeight,
+ srcFormat, srcType, 0, 0);
+
srcRowStride = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat,
srcType) / sizeof(GLubyte);
}
@@ -146,7 +149,9 @@ _mesa_texstore_rgba_fxt1(TEXSTORE_PARAMS)
srcFormat = GL_RGBA;
}
else {
- pixels = (const GLubyte *) srcAddr;
+ pixels = _mesa_image_address2d(srcPacking, srcAddr, srcWidth, srcHeight,
+ srcFormat, srcType, 0, 0);
+
srcRowStride = _mesa_image_row_stride(srcPacking, srcWidth, srcFormat,
srcType) / sizeof(GLubyte);
}
diff --git a/mesalib/src/mesa/main/texcompress_s3tc.c b/mesalib/src/mesa/main/texcompress_s3tc.c
index 83bd6b950..29386a37d 100644
--- a/mesalib/src/mesa/main/texcompress_s3tc.c
+++ b/mesalib/src/mesa/main/texcompress_s3tc.c
@@ -182,6 +182,7 @@ _mesa_texstore_rgb_dxt1(TEXSTORE_PARAMS)
if (srcFormat != GL_RGB ||
srcType != GL_UNSIGNED_BYTE ||
ctx->_ImageTransferState ||
+ srcPacking->RowLength != srcWidth ||
srcPacking->SwapBytes) {
/* convert image to RGB/GLubyte */
tempImage = _mesa_make_temp_ubyte_image(ctx, dims,
@@ -196,7 +197,8 @@ _mesa_texstore_rgb_dxt1(TEXSTORE_PARAMS)
srcFormat = GL_RGB;
}
else {
- pixels = (const GLubyte *) srcAddr;
+ pixels = _mesa_image_address2d(srcPacking, srcAddr, srcWidth, srcHeight,
+ srcFormat, srcType, 0, 0);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
@@ -240,6 +242,7 @@ _mesa_texstore_rgba_dxt1(TEXSTORE_PARAMS)
if (srcFormat != GL_RGBA ||
srcType != GL_UNSIGNED_BYTE ||
ctx->_ImageTransferState ||
+ srcPacking->RowLength != srcWidth ||
srcPacking->SwapBytes) {
/* convert image to RGBA/GLubyte */
tempImage = _mesa_make_temp_ubyte_image(ctx, dims,
@@ -254,7 +257,8 @@ _mesa_texstore_rgba_dxt1(TEXSTORE_PARAMS)
srcFormat = GL_RGBA;
}
else {
- pixels = (const GLubyte *) srcAddr;
+ pixels = _mesa_image_address2d(srcPacking, srcAddr, srcWidth, srcHeight,
+ srcFormat, srcType, 0, 0);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
@@ -297,6 +301,7 @@ _mesa_texstore_rgba_dxt3(TEXSTORE_PARAMS)
if (srcFormat != GL_RGBA ||
srcType != GL_UNSIGNED_BYTE ||
ctx->_ImageTransferState ||
+ srcPacking->RowLength != srcWidth ||
srcPacking->SwapBytes) {
/* convert image to RGBA/GLubyte */
tempImage = _mesa_make_temp_ubyte_image(ctx, dims,
@@ -310,7 +315,8 @@ _mesa_texstore_rgba_dxt3(TEXSTORE_PARAMS)
pixels = tempImage;
}
else {
- pixels = (const GLubyte *) srcAddr;
+ pixels = _mesa_image_address2d(srcPacking, srcAddr, srcWidth, srcHeight,
+ srcFormat, srcType, 0, 0);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
@@ -353,6 +359,7 @@ _mesa_texstore_rgba_dxt5(TEXSTORE_PARAMS)
if (srcFormat != GL_RGBA ||
srcType != GL_UNSIGNED_BYTE ||
ctx->_ImageTransferState ||
+ srcPacking->RowLength != srcWidth ||
srcPacking->SwapBytes) {
/* convert image to RGBA/GLubyte */
tempImage = _mesa_make_temp_ubyte_image(ctx, dims,
@@ -366,7 +373,8 @@ _mesa_texstore_rgba_dxt5(TEXSTORE_PARAMS)
pixels = tempImage;
}
else {
- pixels = (const GLubyte *) srcAddr;
+ pixels = _mesa_image_address2d(srcPacking, srcAddr, srcWidth, srcHeight,
+ srcFormat, srcType, 0, 0);
}
dst = _mesa_compressed_image_address(dstXoffset, dstYoffset, 0,
diff --git a/mesalib/src/mesa/main/texformat.c b/mesalib/src/mesa/main/texformat.c
index ccc3c49f5..7f262d6d8 100644
--- a/mesalib/src/mesa/main/texformat.c
+++ b/mesalib/src/mesa/main/texformat.c
@@ -591,86 +591,144 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
if (ctx->Extensions.EXT_texture_integer) {
switch (internalFormat) {
- case GL_RGBA32UI_EXT:
- case GL_RGB32UI_EXT:
- case GL_ALPHA32UI_EXT:
- case GL_INTENSITY32UI_EXT:
- case GL_LUMINANCE32UI_EXT:
- case GL_LUMINANCE_ALPHA32UI_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32);
- break;
- case GL_RGBA16UI_EXT:
- case GL_RGB16UI_EXT:
+ case GL_ALPHA8UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_UINT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
+ break;
case GL_ALPHA16UI_EXT:
- case GL_INTENSITY16UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_UINT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16);
+ break;
+ case GL_ALPHA32UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_UINT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32);
+ break;
+ case GL_ALPHA8I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_INT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8);
+ break;
+ case GL_ALPHA16I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_INT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16);
+ break;
+ case GL_ALPHA32I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_INT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
+ break;
+ case GL_LUMINANCE8UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_UINT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
+ break;
case GL_LUMINANCE16UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_UINT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16);
+ break;
+ case GL_LUMINANCE32UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_UINT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32);
+ break;
+ case GL_LUMINANCE8I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_INT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8);
+ break;
+ case GL_LUMINANCE16I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_INT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16);
+ break;
+ case GL_LUMINANCE32I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_INT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
+ break;
+ case GL_LUMINANCE_ALPHA8UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_UINT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
+ break;
case GL_LUMINANCE_ALPHA16UI_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16);
- break;
- case GL_RGBA8UI_EXT:
- case GL_RGB8UI_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
- break;
- case GL_ALPHA8UI_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_UINT8);
- break;
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_UINT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16);
+ break;
+ case GL_LUMINANCE_ALPHA32UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_UINT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32);
+ break;
+ case GL_LUMINANCE_ALPHA8I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_INT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8);
+ break;
+ case GL_LUMINANCE_ALPHA16I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_INT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16);
+ break;
+ case GL_LUMINANCE_ALPHA32I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_INT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
+ break;
case GL_INTENSITY8UI_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_UINT8);
- break;
- case GL_LUMINANCE8UI_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_UINT8);
- break;
- case GL_LUMINANCE_ALPHA8UI_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_UINT8);
- break;
- case GL_RGBA32I_EXT:
- case GL_RGB32I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
- break;
- case GL_ALPHA32I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_INT32);
- break;
+ RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_UINT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
+ break;
+ case GL_INTENSITY16UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_UINT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16);
+ break;
+ case GL_INTENSITY32UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_UINT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32);
+ break;
+ case GL_INTENSITY8I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8);
+ break;
+ case GL_INTENSITY16I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16);
+ break;
case GL_INTENSITY32I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT32);
- break;
- case GL_LUMINANCE32I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_INT32);
- break;
- case GL_LUMINANCE_ALPHA32I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_INT32);
- break;
- case GL_RGBA16I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
+ break;
+ case GL_RGB8UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_UINT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
+ break;
+ case GL_RGB16UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_UINT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16);
+ break;
+ case GL_RGB32UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_UINT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32);
+ break;
+ case GL_RGB8I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_INT8);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8);
+ break;
case GL_RGB16I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16);
- break;
- case GL_ALPHA16I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_INT16);
- break;
- case GL_INTENSITY16I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT16);
- break;
- case GL_LUMINANCE16I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_INT16);
- break;
- case GL_LUMINANCE_ALPHA16I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_INT16);
- break;
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_INT16);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16);
+ break;
+ case GL_RGB32I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_INT32);
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
+ break;
+ case GL_RGBA8UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
+ break;
+ case GL_RGBA16UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT16);
+ break;
+ case GL_RGBA32UI_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT32);
+ break;
case GL_RGBA8I_EXT:
- case GL_RGB8I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8);
- break;
- case GL_ALPHA8I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_ALPHA_INT8);
- break;
- case GL_INTENSITY8I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT8);
- break;
- case GL_LUMINANCE8I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_INT8);
- break;
- case GL_LUMINANCE_ALPHA8I_EXT:
- RETURN_IF_SUPPORTED(MESA_FORMAT_LUMINANCE_ALPHA_INT8);
- break;
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT8);
+ break;
+ case GL_RGBA16I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT16);
+ break;
+ case GL_RGBA32I_EXT:
+ RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
+ break;
}
}
diff --git a/mesalib/src/mesa/main/texstate.c b/mesalib/src/mesa/main/texstate.c
index e02f16240..9f14d8a0d 100644
--- a/mesalib/src/mesa/main/texstate.c
+++ b/mesalib/src/mesa/main/texstate.c
@@ -489,26 +489,26 @@ static void
update_texture_state( struct gl_context *ctx )
{
GLuint unit;
- struct gl_fragment_program *fprog = NULL;
- struct gl_vertex_program *vprog = NULL;
+ struct gl_program *fprog = NULL;
+ struct gl_program *vprog = NULL;
GLbitfield enabledFragUnits = 0x0;
if (ctx->Shader.CurrentVertexProgram &&
ctx->Shader.CurrentVertexProgram->LinkStatus) {
- vprog = ctx->Shader.CurrentVertexProgram->VertexProgram;
+ vprog = ctx->Shader.CurrentVertexProgram->_LinkedShaders[MESA_SHADER_VERTEX]->Program;
} else if (ctx->VertexProgram._Enabled) {
/* XXX enable this if/when non-shader vertex programs get
* texture fetches:
- vprog = ctx->VertexProgram.Current;
+ vprog = &ctx->VertexProgram.Current->Base;
*/
}
if (ctx->Shader.CurrentFragmentProgram &&
ctx->Shader.CurrentFragmentProgram->LinkStatus) {
- fprog = ctx->Shader.CurrentFragmentProgram->FragmentProgram;
+ fprog = ctx->Shader.CurrentFragmentProgram->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program;
}
else if (ctx->FragmentProgram._Enabled) {
- fprog = ctx->FragmentProgram.Current;
+ fprog = &ctx->FragmentProgram.Current->Base;
}
/* FINISHME: Geometry shader texture accesses should also be considered
@@ -540,11 +540,11 @@ update_texture_state( struct gl_context *ctx )
* settle on the one with highest priority (see below).
*/
if (vprog) {
- enabledVertTargets |= vprog->Base.TexturesUsed[unit];
+ enabledVertTargets |= vprog->TexturesUsed[unit];
}
if (fprog) {
- enabledFragTargets |= fprog->Base.TexturesUsed[unit];
+ enabledFragTargets |= fprog->TexturesUsed[unit];
}
else {
/* fixed-function fragment program */
@@ -611,7 +611,7 @@ update_texture_state( struct gl_context *ctx )
if (fprog) {
const GLuint coordMask = (1 << MAX_TEXTURE_COORD_UNITS) - 1;
ctx->Texture._EnabledCoordUnits
- = (fprog->Base.InputsRead >> FRAG_ATTRIB_TEX0) & coordMask;
+ = (fprog->InputsRead >> FRAG_ATTRIB_TEX0) & coordMask;
}
else {
ctx->Texture._EnabledCoordUnits = enabledFragUnits;
diff --git a/mesalib/src/mesa/main/uniforms.c b/mesalib/src/mesa/main/uniforms.c
index 2323819aa..7252c099a 100644
--- a/mesalib/src/mesa/main/uniforms.c
+++ b/mesalib/src/mesa/main/uniforms.c
@@ -180,17 +180,17 @@ find_uniform_parameter_pos(struct gl_shader_program *shProg, GLint index,
pos = shProg->Uniforms->Uniforms[index].VertPos;
if (pos >= 0) {
- prog = &shProg->VertexProgram->Base;
+ prog = shProg->_LinkedShaders[MESA_SHADER_VERTEX]->Program;
}
else {
pos = shProg->Uniforms->Uniforms[index].FragPos;
if (pos >= 0) {
- prog = &shProg->FragmentProgram->Base;
+ prog = shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program;
}
else {
pos = shProg->Uniforms->Uniforms[index].GeomPos;
if (pos >= 0) {
- prog = &shProg->GeometryProgram->Base;
+ prog = shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program;
}
}
}
@@ -911,29 +911,32 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg,
/* A uniform var may be used by both a vertex shader and a fragment
* shader. We may need to update one or both shader's uniform here:
*/
- if (shProg->VertexProgram) {
+ if (shProg->_LinkedShaders[MESA_SHADER_VERTEX]) {
/* convert uniform location to program parameter index */
GLint index = uniform->VertPos;
if (index >= 0) {
- set_program_uniform(ctx, &shProg->VertexProgram->Base,
+ set_program_uniform(ctx,
+ shProg->_LinkedShaders[MESA_SHADER_VERTEX]->Program,
index, offset, type, count, elems, values);
}
}
- if (shProg->FragmentProgram) {
+ if (shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]) {
/* convert uniform location to program parameter index */
GLint index = uniform->FragPos;
if (index >= 0) {
- set_program_uniform(ctx, &shProg->FragmentProgram->Base,
+ set_program_uniform(ctx,
+ shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program,
index, offset, type, count, elems, values);
}
}
- if (shProg->GeometryProgram) {
+ if (shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]) {
/* convert uniform location to program parameter index */
GLint index = uniform->GeomPos;
if (index >= 0) {
- set_program_uniform(ctx, &shProg->GeometryProgram->Base,
+ set_program_uniform(ctx,
+ shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program,
index, offset, type, count, elems, values);
}
}
@@ -1056,31 +1059,34 @@ _mesa_uniform_matrix(struct gl_context *ctx, struct gl_shader_program *shProg,
uniform = &shProg->Uniforms->Uniforms[location];
- if (shProg->VertexProgram) {
+ if (shProg->_LinkedShaders[MESA_SHADER_VERTEX]) {
/* convert uniform location to program parameter index */
GLint index = uniform->VertPos;
if (index >= 0) {
- set_program_uniform_matrix(ctx, &shProg->VertexProgram->Base,
+ set_program_uniform_matrix(ctx,
+ shProg->_LinkedShaders[MESA_SHADER_VERTEX]->Program,
index, offset,
count, rows, cols, transpose, values);
}
}
- if (shProg->FragmentProgram) {
+ if (shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]) {
/* convert uniform location to program parameter index */
GLint index = uniform->FragPos;
if (index >= 0) {
- set_program_uniform_matrix(ctx, &shProg->FragmentProgram->Base,
+ set_program_uniform_matrix(ctx,
+ shProg->_LinkedShaders[MESA_SHADER_FRAGMENT]->Program,
index, offset,
count, rows, cols, transpose, values);
}
}
- if (shProg->GeometryProgram) {
+ if (shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]) {
/* convert uniform location to program parameter index */
GLint index = uniform->GeomPos;
if (index >= 0) {
- set_program_uniform_matrix(ctx, &shProg->GeometryProgram->Base,
+ set_program_uniform_matrix(ctx,
+ shProg->_LinkedShaders[MESA_SHADER_GEOMETRY]->Program,
index, offset,
count, rows, cols, transpose, values);
}
@@ -1437,6 +1443,12 @@ _mesa_GetnUniformdvARB(GLhandleARB program, GLint location,
GLsizei bufSize, GLdouble *params)
{
GET_CURRENT_CONTEXT(ctx);
+
+ (void) program;
+ (void) location;
+ (void) bufSize;
+ (void) params;
+
/*
get_uniform(ctx, program, location, bufSize, GL_DOUBLE, params);
*/
diff --git a/mesalib/src/mesa/program/ir_to_mesa.cpp b/mesalib/src/mesa/program/ir_to_mesa.cpp
index 2e1b8fba3..5be44bc51 100644
--- a/mesalib/src/mesa/program/ir_to_mesa.cpp
+++ b/mesalib/src/mesa/program/ir_to_mesa.cpp
@@ -3288,31 +3288,20 @@ _mesa_ir_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
linked_prog = get_mesa_program(ctx, prog, prog->_LinkedShaders[i]);
if (linked_prog) {
- bool ok = true;
+ static const GLenum targets[] = {
+ GL_VERTEX_PROGRAM_ARB,
+ GL_FRAGMENT_PROGRAM_ARB,
+ GL_GEOMETRY_PROGRAM_NV
+ };
- switch (prog->_LinkedShaders[i]->Type) {
- case GL_VERTEX_SHADER:
+ if (i == MESA_SHADER_VERTEX) {
((struct gl_vertex_program *)linked_prog)->UsesClipDistance
= prog->Vert.UsesClipDistance;
- _mesa_reference_vertprog(ctx, &prog->VertexProgram,
- (struct gl_vertex_program *)linked_prog);
- ok = ctx->Driver.ProgramStringNotify(ctx, GL_VERTEX_PROGRAM_ARB,
- linked_prog);
- break;
- case GL_FRAGMENT_SHADER:
- _mesa_reference_fragprog(ctx, &prog->FragmentProgram,
- (struct gl_fragment_program *)linked_prog);
- ok = ctx->Driver.ProgramStringNotify(ctx, GL_FRAGMENT_PROGRAM_ARB,
- linked_prog);
- break;
- case GL_GEOMETRY_SHADER:
- _mesa_reference_geomprog(ctx, &prog->GeometryProgram,
- (struct gl_geometry_program *)linked_prog);
- ok = ctx->Driver.ProgramStringNotify(ctx, GL_GEOMETRY_PROGRAM_NV,
- linked_prog);
- break;
- }
- if (!ok) {
+ }
+
+ _mesa_reference_program(ctx, &prog->_LinkedShaders[i]->Program,
+ linked_prog);
+ if (!ctx->Driver.ProgramStringNotify(ctx, targets[i], linked_prog)) {
return GL_FALSE;
}
}
@@ -3427,10 +3416,6 @@ _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
}
}
- _mesa_reference_vertprog(ctx, &prog->VertexProgram, NULL);
- _mesa_reference_fragprog(ctx, &prog->FragmentProgram, NULL);
- _mesa_reference_geomprog(ctx, &prog->GeometryProgram, NULL);
-
if (prog->LinkStatus) {
link_shaders(ctx, prog);
}
diff --git a/mesalib/src/mesa/program/prog_uniform.c b/mesalib/src/mesa/program/prog_uniform.c
index 28acb8871..d0b25e5c5 100644
--- a/mesalib/src/mesa/program/prog_uniform.c
+++ b/mesalib/src/mesa/program/prog_uniform.c
@@ -56,80 +56,6 @@ _mesa_free_uniform_list(struct gl_uniform_list *list)
}
-struct gl_uniform *
-_mesa_append_uniform(struct gl_uniform_list *list,
- const char *name, GLenum target, GLuint progPos)
-{
- const GLuint oldNum = list->NumUniforms;
- struct gl_uniform *uniform;
- GLint index;
-
- assert(target == GL_VERTEX_PROGRAM_ARB ||
- target == GL_FRAGMENT_PROGRAM_ARB ||
- target == MESA_GEOMETRY_PROGRAM);
-
- index = _mesa_lookup_uniform(list, name);
- if (index < 0) {
- /* not found - append to list */
-
- if (oldNum + 1 > list->Size) {
- /* Need to grow the list array (alloc some extra) */
- list->Size += 4;
-
- /* realloc arrays */
- list->Uniforms = (struct gl_uniform *)
- _mesa_realloc(list->Uniforms,
- oldNum * sizeof(struct gl_uniform),
- list->Size * sizeof(struct gl_uniform));
- }
-
- if (!list->Uniforms) {
- /* out of memory */
- list->NumUniforms = 0;
- list->Size = 0;
- return GL_FALSE;
- }
-
- uniform = list->Uniforms + oldNum;
-
- uniform->Name = _mesa_strdup(name);
- uniform->VertPos = -1;
- uniform->FragPos = -1;
- uniform->GeomPos = -1;
- uniform->Initialized = GL_FALSE;
-
- list->NumUniforms++;
- }
- else {
- /* found */
- uniform = list->Uniforms + index;
- }
-
- /* update position for the vertex or fragment program */
- if (target == GL_VERTEX_PROGRAM_ARB) {
- if (uniform->VertPos != -1) {
- /* this uniform is already in the list - that shouldn't happen */
- return GL_FALSE;
- }
- uniform->VertPos = progPos;
- } else if (target == GL_FRAGMENT_PROGRAM_ARB) {
- if (uniform->FragPos != -1) {
- /* this uniform is already in the list - that shouldn't happen */
- return GL_FALSE;
- }
- uniform->FragPos = progPos;
- } else {
- if (uniform->GeomPos != -1) {
- /* this uniform is already in the list - that shouldn't happen */
- return GL_FALSE;
- }
- uniform->GeomPos = progPos;
- }
-
- return uniform;
-}
-
-
/**
* Return the location/index of the named uniform in the uniform list,
* or -1 if not found.
diff --git a/mesalib/src/mesa/program/prog_uniform.h b/mesalib/src/mesa/program/prog_uniform.h
index 67f78006e..83cd30780 100644
--- a/mesalib/src/mesa/program/prog_uniform.h
+++ b/mesalib/src/mesa/program/prog_uniform.h
@@ -72,10 +72,6 @@ _mesa_new_uniform_list(void);
extern void
_mesa_free_uniform_list(struct gl_uniform_list *list);
-extern struct gl_uniform *
-_mesa_append_uniform(struct gl_uniform_list *list,
- const char *name, GLenum target, GLuint progPos);
-
extern GLint
_mesa_lookup_uniform(const struct gl_uniform_list *list, const char *name);
diff --git a/mesalib/src/mesa/state_tracker/st_cb_readpixels.c b/mesalib/src/mesa/state_tracker/st_cb_readpixels.c
index e2b29fe30..7fa1672fd 100644
--- a/mesalib/src/mesa/state_tracker/st_cb_readpixels.c
+++ b/mesalib/src/mesa/state_tracker/st_cb_readpixels.c
@@ -387,6 +387,8 @@ st_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
GLsizei i, j;
GLint yStep, dfStride;
GLfloat *df;
+ GLuint *dui;
+ GLint *di;
struct st_renderbuffer *strb;
struct gl_pixelstore_attrib clippedPacking = *pack;
struct pipe_transfer *trans;
@@ -454,10 +456,13 @@ st_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
}
else {
/* write tile(row) into temp row buffer */
- df = (GLfloat *) temp;
+ df = (GLfloat *)temp;
dfStride = 0;
}
+ dui = (GLuint *)df;
+ di = (GLint *)df;
+
if (st_fb_orientation(ctx->ReadBuffer) == Y_0_TOP) {
/* convert GL Y to Gallium Y */
y = strb->Base.Height - y - height;
@@ -611,7 +616,38 @@ st_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei h
dst += dstStride;
}
}
- else {
+ else if (util_format_is_pure_sint(pformat)) {
+ for (i = 0; i < height; i++) {
+ if (type == GL_UNSIGNED_INT)
+ pipe_get_tile_ui_format(pipe, trans, 0, y, width, 1,
+ pformat, dui);
+ else
+ pipe_get_tile_i_format(pipe, trans, 0, y, width, 1,
+ pformat, di);
+ y += yStep;
+ if (!dfStride) {
+ _mesa_pack_rgba_span_int(ctx, width, (GLuint (*)[4])temp,
+ format, type, dst);
+ dst += dstStride;
+ }
+ }
+ } else if (util_format_is_pure_uint(pformat)) {
+ for (i = 0; i < height; i++) {
+ if (type == GL_UNSIGNED_INT)
+ pipe_get_tile_ui_format(pipe, trans, 0, y, width, 1,
+ pformat, dui);
+ else
+ pipe_get_tile_i_format(pipe, trans, 0, y, width, 1,
+ pformat, di);
+ y += yStep;
+ df += dfStride;
+ if (!dfStride) {
+ _mesa_pack_rgba_span_int(ctx, width, (GLuint (*)[4])temp,
+ format, type, dst);
+ dst += dstStride;
+ }
+ }
+ } else {
/* RGBA format */
/* Do a row at a time to flip image data vertically */
for (i = 0; i < height; i++) {
diff --git a/mesalib/src/mesa/state_tracker/st_format.c b/mesalib/src/mesa/state_tracker/st_format.c
index 6eb8a506b..6e8ab94f4 100644
--- a/mesalib/src/mesa/state_tracker/st_format.c
+++ b/mesalib/src/mesa/state_tracker/st_format.c
@@ -291,20 +291,112 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
return PIPE_FORMAT_R16G16B16A16_UNORM;
/* signed int formats */
+ case MESA_FORMAT_ALPHA_UINT8:
+ return PIPE_FORMAT_A8_UINT;
+ case MESA_FORMAT_ALPHA_UINT16:
+ return PIPE_FORMAT_A16_UINT;
+ case MESA_FORMAT_ALPHA_UINT32:
+ return PIPE_FORMAT_A32_UINT;
+
+ case MESA_FORMAT_ALPHA_INT8:
+ return PIPE_FORMAT_A8_SINT;
+ case MESA_FORMAT_ALPHA_INT16:
+ return PIPE_FORMAT_A16_SINT;
+ case MESA_FORMAT_ALPHA_INT32:
+ return PIPE_FORMAT_A32_SINT;
+
+ case MESA_FORMAT_INTENSITY_UINT8:
+ return PIPE_FORMAT_I8_UINT;
+ case MESA_FORMAT_INTENSITY_UINT16:
+ return PIPE_FORMAT_I16_UINT;
+ case MESA_FORMAT_INTENSITY_UINT32:
+ return PIPE_FORMAT_I32_UINT;
+
+ case MESA_FORMAT_INTENSITY_INT8:
+ return PIPE_FORMAT_I8_SINT;
+ case MESA_FORMAT_INTENSITY_INT16:
+ return PIPE_FORMAT_I16_SINT;
+ case MESA_FORMAT_INTENSITY_INT32:
+ return PIPE_FORMAT_I32_SINT;
+
+ case MESA_FORMAT_LUMINANCE_UINT8:
+ return PIPE_FORMAT_L8_UINT;
+ case MESA_FORMAT_LUMINANCE_UINT16:
+ return PIPE_FORMAT_L16_UINT;
+ case MESA_FORMAT_LUMINANCE_UINT32:
+ return PIPE_FORMAT_L32_UINT;
+
+ case MESA_FORMAT_LUMINANCE_INT8:
+ return PIPE_FORMAT_L8_SINT;
+ case MESA_FORMAT_LUMINANCE_INT16:
+ return PIPE_FORMAT_L16_SINT;
+ case MESA_FORMAT_LUMINANCE_INT32:
+ return PIPE_FORMAT_L32_SINT;
+
+ case MESA_FORMAT_LUMINANCE_ALPHA_UINT8:
+ return PIPE_FORMAT_L8A8_UINT;
+ case MESA_FORMAT_LUMINANCE_ALPHA_UINT16:
+ return PIPE_FORMAT_L16A16_UINT;
+ case MESA_FORMAT_LUMINANCE_ALPHA_UINT32:
+ return PIPE_FORMAT_L32A32_UINT;
+
+ case MESA_FORMAT_LUMINANCE_ALPHA_INT8:
+ return PIPE_FORMAT_L8A8_SINT;
+ case MESA_FORMAT_LUMINANCE_ALPHA_INT16:
+ return PIPE_FORMAT_L16A16_SINT;
+ case MESA_FORMAT_LUMINANCE_ALPHA_INT32:
+ return PIPE_FORMAT_L32A32_SINT;
+
+ case MESA_FORMAT_R_INT8:
+ return PIPE_FORMAT_R8_SINT;
+ case MESA_FORMAT_RG_INT8:
+ return PIPE_FORMAT_R8G8_SINT;
+ case MESA_FORMAT_RGB_INT8:
+ return PIPE_FORMAT_R8G8B8_SINT;
case MESA_FORMAT_RGBA_INT8:
- return PIPE_FORMAT_R8G8B8A8_SSCALED;
+ return PIPE_FORMAT_R8G8B8A8_SINT;
+ case MESA_FORMAT_R_INT16:
+ return PIPE_FORMAT_R16_SINT;
+ case MESA_FORMAT_RG_INT16:
+ return PIPE_FORMAT_R16G16_SINT;
+ case MESA_FORMAT_RGB_INT16:
+ return PIPE_FORMAT_R16G16B16_SINT;
case MESA_FORMAT_RGBA_INT16:
- return PIPE_FORMAT_R16G16B16A16_SSCALED;
+ return PIPE_FORMAT_R16G16B16A16_SINT;
+ case MESA_FORMAT_R_INT32:
+ return PIPE_FORMAT_R32_SINT;
+ case MESA_FORMAT_RG_INT32:
+ return PIPE_FORMAT_R32G32_SINT;
+ case MESA_FORMAT_RGB_INT32:
+ return PIPE_FORMAT_R32G32B32_SINT;
case MESA_FORMAT_RGBA_INT32:
- return PIPE_FORMAT_R32G32B32A32_SSCALED;
+ return PIPE_FORMAT_R32G32B32A32_SINT;
/* unsigned int formats */
+ case MESA_FORMAT_R_UINT8:
+ return PIPE_FORMAT_R8_UINT;
+ case MESA_FORMAT_RG_UINT8:
+ return PIPE_FORMAT_R8G8_UINT;
+ case MESA_FORMAT_RGB_UINT8:
+ return PIPE_FORMAT_R8G8B8_UINT;
case MESA_FORMAT_RGBA_UINT8:
- return PIPE_FORMAT_R8G8B8A8_USCALED;
+ return PIPE_FORMAT_R8G8B8A8_UINT;
+ case MESA_FORMAT_R_UINT16:
+ return PIPE_FORMAT_R16_UINT;
+ case MESA_FORMAT_RG_UINT16:
+ return PIPE_FORMAT_R16G16_UINT;
+ case MESA_FORMAT_RGB_UINT16:
+ return PIPE_FORMAT_R16G16B16_UINT;
case MESA_FORMAT_RGBA_UINT16:
- return PIPE_FORMAT_R16G16B16A16_USCALED;
+ return PIPE_FORMAT_R16G16B16A16_UINT;
+ case MESA_FORMAT_R_UINT32:
+ return PIPE_FORMAT_R32_UINT;
+ case MESA_FORMAT_RG_UINT32:
+ return PIPE_FORMAT_R32G32_UINT;
+ case MESA_FORMAT_RGB_UINT32:
+ return PIPE_FORMAT_R32G32B32_UINT;
case MESA_FORMAT_RGBA_UINT32:
- return PIPE_FORMAT_R32G32B32A32_USCALED;
+ return PIPE_FORMAT_R32G32B32A32_UINT;
case MESA_FORMAT_RED_RGTC1:
return PIPE_FORMAT_RGTC1_UNORM;
@@ -519,20 +611,111 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
case PIPE_FORMAT_R16G16_UNORM:
return MESA_FORMAT_RG1616;
- /* signed int formats */
- case PIPE_FORMAT_R8G8B8A8_SSCALED:
+ case PIPE_FORMAT_A8_UINT:
+ return MESA_FORMAT_ALPHA_UINT8;
+ case PIPE_FORMAT_A16_UINT:
+ return MESA_FORMAT_ALPHA_UINT16;
+ case PIPE_FORMAT_A32_UINT:
+ return MESA_FORMAT_ALPHA_UINT32;
+ case PIPE_FORMAT_A8_SINT:
+ return MESA_FORMAT_ALPHA_INT8;
+ case PIPE_FORMAT_A16_SINT:
+ return MESA_FORMAT_ALPHA_INT16;
+ case PIPE_FORMAT_A32_SINT:
+ return MESA_FORMAT_ALPHA_INT32;
+
+ case PIPE_FORMAT_I8_UINT:
+ return MESA_FORMAT_INTENSITY_UINT8;
+ case PIPE_FORMAT_I16_UINT:
+ return MESA_FORMAT_INTENSITY_UINT16;
+ case PIPE_FORMAT_I32_UINT:
+ return MESA_FORMAT_INTENSITY_UINT32;
+ case PIPE_FORMAT_I8_SINT:
+ return MESA_FORMAT_INTENSITY_INT8;
+ case PIPE_FORMAT_I16_SINT:
+ return MESA_FORMAT_INTENSITY_INT16;
+ case PIPE_FORMAT_I32_SINT:
+ return MESA_FORMAT_INTENSITY_INT32;
+
+ case PIPE_FORMAT_L8_UINT:
+ return MESA_FORMAT_LUMINANCE_UINT8;
+ case PIPE_FORMAT_L16_UINT:
+ return MESA_FORMAT_LUMINANCE_UINT16;
+ case PIPE_FORMAT_L32_UINT:
+ return MESA_FORMAT_LUMINANCE_UINT32;
+ case PIPE_FORMAT_L8_SINT:
+ return MESA_FORMAT_LUMINANCE_INT8;
+ case PIPE_FORMAT_L16_SINT:
+ return MESA_FORMAT_LUMINANCE_INT16;
+ case PIPE_FORMAT_L32_SINT:
+ return MESA_FORMAT_LUMINANCE_INT32;
+
+ case PIPE_FORMAT_L8A8_UINT:
+ return MESA_FORMAT_LUMINANCE_ALPHA_UINT8;
+ case PIPE_FORMAT_L16A16_UINT:
+ return MESA_FORMAT_LUMINANCE_ALPHA_UINT16;
+ case PIPE_FORMAT_L32A32_UINT:
+ return MESA_FORMAT_LUMINANCE_ALPHA_UINT32;
+ case PIPE_FORMAT_L8A8_SINT:
+ return MESA_FORMAT_LUMINANCE_ALPHA_INT8;
+ case PIPE_FORMAT_L16A16_SINT:
+ return MESA_FORMAT_LUMINANCE_ALPHA_INT16;
+ case PIPE_FORMAT_L32A32_SINT:
+ return MESA_FORMAT_LUMINANCE_ALPHA_INT32;
+
+ case PIPE_FORMAT_R8_SINT:
+ return MESA_FORMAT_R_INT8;
+ case PIPE_FORMAT_R8G8_SINT:
+ return MESA_FORMAT_RG_INT8;
+ case PIPE_FORMAT_R8G8B8_SINT:
+ return MESA_FORMAT_RGB_INT8;
+ case PIPE_FORMAT_R8G8B8A8_SINT:
return MESA_FORMAT_RGBA_INT8;
- case PIPE_FORMAT_R16G16B16A16_SSCALED:
+
+ case PIPE_FORMAT_R16_SINT:
+ return MESA_FORMAT_R_INT16;
+ case PIPE_FORMAT_R16G16_SINT:
+ return MESA_FORMAT_RG_INT16;
+ case PIPE_FORMAT_R16G16B16_SINT:
+ return MESA_FORMAT_RGB_INT16;
+ case PIPE_FORMAT_R16G16B16A16_SINT:
return MESA_FORMAT_RGBA_INT16;
- case PIPE_FORMAT_R32G32B32A32_SSCALED:
+
+ case PIPE_FORMAT_R32_SINT:
+ return MESA_FORMAT_R_INT32;
+ case PIPE_FORMAT_R32G32_SINT:
+ return MESA_FORMAT_RG_INT32;
+ case PIPE_FORMAT_R32G32B32_SINT:
+ return MESA_FORMAT_RGB_INT32;
+ case PIPE_FORMAT_R32G32B32A32_SINT:
return MESA_FORMAT_RGBA_INT32;
/* unsigned int formats */
- case PIPE_FORMAT_R8G8B8A8_USCALED:
+ case PIPE_FORMAT_R8_UINT:
+ return MESA_FORMAT_R_UINT8;
+ case PIPE_FORMAT_R8G8_UINT:
+ return MESA_FORMAT_RG_UINT8;
+ case PIPE_FORMAT_R8G8B8_UINT:
+ return MESA_FORMAT_RGB_UINT8;
+ case PIPE_FORMAT_R8G8B8A8_UINT:
return MESA_FORMAT_RGBA_UINT8;
- case PIPE_FORMAT_R16G16B16A16_USCALED:
+
+ case PIPE_FORMAT_R16_UINT:
+ return MESA_FORMAT_R_UINT16;
+ case PIPE_FORMAT_R16G16_UINT:
+ return MESA_FORMAT_RG_UINT16;
+ case PIPE_FORMAT_R16G16B16_UINT:
+ return MESA_FORMAT_RGB_UINT16;
+ case PIPE_FORMAT_R16G16B16A16_UINT:
return MESA_FORMAT_RGBA_UINT16;
- case PIPE_FORMAT_R32G32B32A32_USCALED:
+
+ case PIPE_FORMAT_R32_UINT:
+ return MESA_FORMAT_R_UINT32;
+ case PIPE_FORMAT_R32G32_UINT:
+ return MESA_FORMAT_RG_UINT32;
+ case PIPE_FORMAT_R32G32B32_UINT:
+ return MESA_FORMAT_RGB_UINT32;
+ case PIPE_FORMAT_R32G32B32A32_UINT:
return MESA_FORMAT_RGBA_UINT32;
case PIPE_FORMAT_RGTC1_UNORM:
@@ -996,79 +1179,215 @@ static const struct format_mapping format_map[] = {
},
/* signed/unsigned integer formats.
- * XXX Mesa only has formats for RGBA signed/unsigned integer formats.
- * If/when new formats are added this code should be updated.
*/
{
{ GL_RED_INTEGER_EXT,
GL_GREEN_INTEGER_EXT,
GL_BLUE_INTEGER_EXT,
- GL_ALPHA_INTEGER_EXT,
- GL_RGB_INTEGER_EXT,
GL_RGBA_INTEGER_EXT,
- GL_BGR_INTEGER_EXT,
GL_BGRA_INTEGER_EXT,
- GL_LUMINANCE_INTEGER_EXT,
- GL_LUMINANCE_ALPHA_INTEGER_EXT,
- GL_RGBA8I_EXT,
- GL_RGB8I_EXT,
- GL_ALPHA8I_EXT,
- GL_INTENSITY8I_EXT,
- GL_LUMINANCE8I_EXT,
+ GL_RGBA8I_EXT, 0 },
+ { PIPE_FORMAT_R8G8B8A8_SINT, 0 }
+ },
+ {
+ { GL_RGB_INTEGER_EXT,
+ GL_BGR_INTEGER_EXT,
+ GL_RGB8I_EXT, 0 },
+ { PIPE_FORMAT_R8G8B8_SINT,
+ PIPE_FORMAT_R8G8B8A8_SINT, 0 }
+ },
+ {
+ { GL_ALPHA_INTEGER_EXT,
+ GL_ALPHA8I_EXT, 0 },
+ { PIPE_FORMAT_A8_SINT, 0 }
+ },
+ {
+ { GL_ALPHA16I_EXT, 0 },
+ { PIPE_FORMAT_A16_SINT, 0 }
+ },
+ {
+ { GL_ALPHA32I_EXT, 0 },
+ { PIPE_FORMAT_A32_SINT, 0 }
+ },
+ {
+ { GL_ALPHA8UI_EXT, 0 },
+ { PIPE_FORMAT_A8_UINT, 0 }
+ },
+ {
+ { GL_ALPHA16UI_EXT, 0 },
+ { PIPE_FORMAT_A16_UINT, 0 }
+ },
+ {
+ { GL_ALPHA32UI_EXT, 0 },
+ { PIPE_FORMAT_A32_UINT, 0 }
+ },
+ {
+ { GL_INTENSITY8I_EXT, 0 },
+ { PIPE_FORMAT_I8_SINT, 0 }
+ },
+ {
+ { GL_INTENSITY16I_EXT, 0 },
+ { PIPE_FORMAT_I16_SINT, 0 }
+ },
+ {
+ { GL_INTENSITY32I_EXT, 0 },
+ { PIPE_FORMAT_I32_SINT, 0 }
+ },
+ {
+ { GL_INTENSITY8UI_EXT, 0 },
+ { PIPE_FORMAT_I8_UINT, 0 }
+ },
+ {
+ { GL_INTENSITY16UI_EXT, 0 },
+ { PIPE_FORMAT_I16_UINT, 0 }
+ },
+ {
+ { GL_INTENSITY32UI_EXT, 0 },
+ { PIPE_FORMAT_I32_UINT, 0 }
+ },
+ {
+ { GL_LUMINANCE8I_EXT, 0 },
+ { PIPE_FORMAT_L8_SINT, 0 }
+ },
+ {
+ { GL_LUMINANCE16I_EXT, 0 },
+ { PIPE_FORMAT_L16_SINT, 0 }
+ },
+ {
+ { GL_LUMINANCE32I_EXT, 0 },
+ { PIPE_FORMAT_L32_SINT, 0 }
+ },
+ {
+ { GL_LUMINANCE_INTEGER_EXT,
+ GL_LUMINANCE8UI_EXT, 0 },
+ { PIPE_FORMAT_L8_UINT, 0 }
+ },
+ {
+ { GL_LUMINANCE16UI_EXT, 0 },
+ { PIPE_FORMAT_L16_UINT, 0 }
+ },
+ {
+ { GL_LUMINANCE32UI_EXT, 0 },
+ { PIPE_FORMAT_L32_UINT, 0 }
+ },
+ {
+ { GL_LUMINANCE_ALPHA_INTEGER_EXT,
GL_LUMINANCE_ALPHA8I_EXT, 0 },
- { PIPE_FORMAT_R8G8B8A8_SSCALED, 0 }
+ { PIPE_FORMAT_L8A8_SINT, 0 }
},
{
- {
- GL_RGBA16I_EXT,
- GL_RGB16I_EXT,
- GL_ALPHA16I_EXT,
- GL_INTENSITY16I_EXT,
- GL_LUMINANCE16I_EXT,
- GL_LUMINANCE_ALPHA16I_EXT, 0 },
- { PIPE_FORMAT_R16G16B16A16_SSCALED, 0 },
+ { GL_LUMINANCE_ALPHA16I_EXT, 0 },
+ { PIPE_FORMAT_L16A16_SINT, 0 }
},
{
- {
- GL_RGBA32I_EXT,
- GL_RGB32I_EXT,
- GL_ALPHA32I_EXT,
- GL_INTENSITY32I_EXT,
- GL_LUMINANCE32I_EXT,
- GL_LUMINANCE_ALPHA32I_EXT, 0 },
- { PIPE_FORMAT_R32G32B32A32_SSCALED, 0 }
+ { GL_LUMINANCE_ALPHA32I_EXT, 0 },
+ { PIPE_FORMAT_L32A32_SINT, 0 }
},
{
- {
- GL_RGBA8UI_EXT,
- GL_RGB8UI_EXT,
- GL_ALPHA8UI_EXT,
- GL_INTENSITY8UI_EXT,
- GL_LUMINANCE8UI_EXT,
- GL_LUMINANCE_ALPHA8UI_EXT, 0 },
- { PIPE_FORMAT_R8G8B8A8_USCALED, 0 }
+ { GL_LUMINANCE_ALPHA8UI_EXT, 0 },
+ { PIPE_FORMAT_L8A8_UINT, 0 }
},
{
- {
- GL_RGBA16UI_EXT,
- GL_RGB16UI_EXT,
- GL_ALPHA16UI_EXT,
- GL_INTENSITY16UI_EXT,
- GL_LUMINANCE16UI_EXT,
- GL_LUMINANCE_ALPHA16UI_EXT, 0 },
- { PIPE_FORMAT_R16G16B16A16_USCALED, 0 }
+ { GL_LUMINANCE_ALPHA16UI_EXT, 0 },
+ { PIPE_FORMAT_L16A16_UINT, 0 }
},
{
- {
- GL_RGBA32UI_EXT,
- GL_RGB32UI_EXT,
- GL_ALPHA32UI_EXT,
- GL_INTENSITY32UI_EXT,
- GL_LUMINANCE32UI_EXT,
- GL_LUMINANCE_ALPHA32UI_EXT, 0 },
- { PIPE_FORMAT_R32G32B32A32_USCALED, 0 }
+ { GL_LUMINANCE_ALPHA32UI_EXT, 0 },
+ { PIPE_FORMAT_L32A32_UINT, 0 }
+ },
+ {
+ { GL_RGB16I_EXT, 0 },
+ { PIPE_FORMAT_R16G16B16_SINT,
+ PIPE_FORMAT_R16G16B16A16_SINT, 0 },
+ },
+ {
+ { GL_RGBA16I_EXT, 0 },
+ { PIPE_FORMAT_R16G16B16A16_SINT, 0 },
+ },
+ {
+ { GL_RGB32I_EXT, 0 },
+ { PIPE_FORMAT_R32G32B32_SINT,
+ PIPE_FORMAT_R32G32B32A32_SINT, 0 },
+ },
+ {
+ { GL_RGBA32I_EXT, 0 },
+ { PIPE_FORMAT_R32G32B32A32_SINT, 0 }
+ },
+ {
+ { GL_RGBA8UI_EXT, 0 },
+ { PIPE_FORMAT_R8G8B8A8_UINT, 0 }
+ },
+ {
+ { GL_RGB8UI_EXT, 0 },
+ { PIPE_FORMAT_R8G8B8_UINT,
+ PIPE_FORMAT_R8G8B8A8_UINT, 0 }
+ },
+ {
+ { GL_RGB16UI_EXT, 0 },
+ { PIPE_FORMAT_R16G16B16_UINT,
+ PIPE_FORMAT_R16G16B16A16_UINT, 0 }
+ },
+ {
+ { GL_RGBA16UI_EXT, 0 },
+ { PIPE_FORMAT_R16G16B16A16_UINT, 0 }
+ },
+ {
+ { GL_RGB32UI_EXT, 0},
+ { PIPE_FORMAT_R32G32B32_UINT,
+ PIPE_FORMAT_R32G32B32A32_UINT, 0 }
+ },
+ {
+ { GL_RGBA32UI_EXT, 0},
+ { PIPE_FORMAT_R32G32B32A32_UINT, 0 }
+ },
+ {
+ { GL_R8I, 0},
+ { PIPE_FORMAT_R8_SINT, 0},
+ },
+ {
+ { GL_R16I, 0},
+ { PIPE_FORMAT_R16_SINT, 0},
+ },
+ {
+ { GL_R32I, 0},
+ { PIPE_FORMAT_R32_SINT, 0},
+ },
+ {
+ { GL_R8UI, 0},
+ { PIPE_FORMAT_R8_UINT, 0},
+ },
+ {
+ { GL_R16UI, 0},
+ { PIPE_FORMAT_R16_UINT, 0},
+ },
+ {
+ { GL_R32UI, 0},
+ { PIPE_FORMAT_R32_UINT, 0},
+ },
+ {
+ { GL_RG8I, 0},
+ { PIPE_FORMAT_R8G8_SINT, 0},
+ },
+ {
+ { GL_RG16I, 0},
+ { PIPE_FORMAT_R16G16_SINT, 0},
+ },
+ {
+ { GL_RG32I, 0},
+ { PIPE_FORMAT_R32G32_SINT, 0},
+ },
+ {
+ { GL_RG8UI, 0},
+ { PIPE_FORMAT_R8G8_UINT, 0},
+ },
+ {
+ { GL_RG16UI, 0},
+ { PIPE_FORMAT_R16G16_UINT, 0},
+ },
+ {
+ { GL_RG32UI, 0},
+ { PIPE_FORMAT_R32G32_UINT, 0},
},
-
/* signed normalized formats */
{
{ GL_RED_SNORM, GL_R8_SNORM, 0 },
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index d8ef8a3ce..fe65ae539 100644
--- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -5180,39 +5180,17 @@ st_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
linked_prog = get_mesa_program(ctx, prog, prog->_LinkedShaders[i]);
if (linked_prog) {
- bool ok = true;
-
- switch (prog->_LinkedShaders[i]->Type) {
- case GL_VERTEX_SHADER:
- _mesa_reference_vertprog(ctx, &prog->VertexProgram,
- (struct gl_vertex_program *)linked_prog);
- ok = ctx->Driver.ProgramStringNotify(ctx, GL_VERTEX_PROGRAM_ARB,
- linked_prog);
- if (!ok) {
- _mesa_reference_vertprog(ctx, &prog->VertexProgram, NULL);
- }
- break;
- case GL_FRAGMENT_SHADER:
- _mesa_reference_fragprog(ctx, &prog->FragmentProgram,
- (struct gl_fragment_program *)linked_prog);
- ok = ctx->Driver.ProgramStringNotify(ctx, GL_FRAGMENT_PROGRAM_ARB,
- linked_prog);
- if (!ok) {
- _mesa_reference_fragprog(ctx, &prog->FragmentProgram, NULL);
- }
- break;
- case GL_GEOMETRY_SHADER:
- _mesa_reference_geomprog(ctx, &prog->GeometryProgram,
- (struct gl_geometry_program *)linked_prog);
- ok = ctx->Driver.ProgramStringNotify(ctx, GL_GEOMETRY_PROGRAM_NV,
- linked_prog);
- if (!ok) {
- _mesa_reference_geomprog(ctx, &prog->GeometryProgram, NULL);
- }
- break;
- }
- if (!ok) {
- _mesa_reference_program(ctx, &prog->_LinkedShaders[i]->Program, NULL);
+ static const GLenum targets[] = {
+ GL_VERTEX_PROGRAM_ARB,
+ GL_FRAGMENT_PROGRAM_ARB,
+ GL_GEOMETRY_PROGRAM_NV
+ };
+
+ _mesa_reference_program(ctx, &prog->_LinkedShaders[i]->Program,
+ linked_prog);
+ if (!ctx->Driver.ProgramStringNotify(ctx, targets[i], linked_prog)) {
+ _mesa_reference_program(ctx, &prog->_LinkedShaders[i]->Program,
+ NULL);
_mesa_reference_program(ctx, &linked_prog, NULL);
return GL_FALSE;
}
diff --git a/mesalib/src/mesa/state_tracker/st_program.c b/mesalib/src/mesa/state_tracker/st_program.c
index a4f47edfc..acd3b56b9 100644
--- a/mesalib/src/mesa/state_tracker/st_program.c
+++ b/mesalib/src/mesa/state_tracker/st_program.c
@@ -1153,12 +1153,9 @@ destroy_shader_program_variants_cb(GLuint key, void *data, void *userData)
destroy_program_variants(st, shProg->Shaders[i]->Program);
}
- destroy_program_variants(st, (struct gl_program *)
- shProg->VertexProgram);
- destroy_program_variants(st, (struct gl_program *)
- shProg->FragmentProgram);
- destroy_program_variants(st, (struct gl_program *)
- shProg->GeometryProgram);
+ for (i = 0; i < Elements(shProg->_LinkedShaders); i++) {
+ destroy_program_variants(st, shProg->_LinkedShaders[i]->Program);
+ }
}
break;
case GL_VERTEX_SHADER:
diff --git a/mesalib/src/mesa/swrast/s_context.h b/mesalib/src/mesa/swrast/s_context.h
index 12ad688b0..ec8451eb8 100644
--- a/mesalib/src/mesa/swrast/s_context.h
+++ b/mesalib/src/mesa/swrast/s_context.h
@@ -112,18 +112,12 @@ typedef void (*validate_texture_image_func)(struct gl_context *ctx,
struct swrast_texture_image;
-typedef void (*FetchTexelFuncC)(const struct swrast_texture_image *texImage,
- GLint col, GLint row, GLint img,
- GLchan *texelOut);
-
/**
- * As above, but returns floats.
- * Used for depth component images and for upcoming signed/float
- * texture images.
+ * Fetch a texel from texture image at given position.
*/
-typedef void (*FetchTexelFuncF)(const struct swrast_texture_image *texImage,
- GLint col, GLint row, GLint img,
- GLfloat *texelOut);
+typedef void (*FetchTexelFunc)(const struct swrast_texture_image *texImage,
+ GLint col, GLint row, GLint img,
+ GLfloat *texelOut);
typedef void (*StoreTexelFunc)(struct swrast_texture_image *texImage,
@@ -150,8 +144,7 @@ struct swrast_texture_image
GLint TexelSize; /**< bytes per texel block */
#endif
- FetchTexelFuncC FetchTexelc;
- FetchTexelFuncF FetchTexelf;
+ FetchTexelFunc FetchTexel;
StoreTexelFunc Store;
#if 0
diff --git a/mesalib/src/mesa/swrast/s_texfetch.c b/mesalib/src/mesa/swrast/s_texfetch.c
index 7573abda6..a854c3efd 100644
--- a/mesalib/src/mesa/swrast/s_texfetch.c
+++ b/mesalib/src/mesa/swrast/s_texfetch.c
@@ -121,9 +121,9 @@ static void store_null_texel(struct swrast_texture_image *texImage,
*/
static struct {
gl_format Name;
- FetchTexelFuncF Fetch1D;
- FetchTexelFuncF Fetch2D;
- FetchTexelFuncF Fetch3D;
+ FetchTexelFunc Fetch1D;
+ FetchTexelFunc Fetch2D;
+ FetchTexelFunc Fetch3D;
StoreTexelFunc StoreTexel;
}
texfetch_funcs[MESA_FORMAT_COUNT] =
@@ -1250,7 +1250,7 @@ texfetch_funcs[MESA_FORMAT_COUNT] =
};
-FetchTexelFuncF
+FetchTexelFunc
_mesa_get_texel_fetch_func(gl_format format, GLuint dims)
{
#ifdef DEBUG
@@ -1287,63 +1287,7 @@ _mesa_get_texel_store_func(gl_format format)
/**
- * Adaptor for fetching a GLchan texel from a float-valued texture.
- */
-static void
-fetch_texel_float_to_chan(const struct swrast_texture_image *texImage,
- GLint i, GLint j, GLint k, GLchan *texelOut)
-{
- GLfloat temp[4];
- GLenum baseFormat = _mesa_get_format_base_format(texImage->Base.TexFormat);
-
- ASSERT(texImage->FetchTexelf);
- texImage->FetchTexelf(texImage, i, j, k, temp);
- if (baseFormat == GL_DEPTH_COMPONENT ||
- baseFormat == GL_DEPTH_STENCIL_EXT) {
- /* just one channel */
- UNCLAMPED_FLOAT_TO_CHAN(texelOut[0], temp[0]);
- }
- else {
- /* four channels */
- UNCLAMPED_FLOAT_TO_CHAN(texelOut[0], temp[0]);
- UNCLAMPED_FLOAT_TO_CHAN(texelOut[1], temp[1]);
- UNCLAMPED_FLOAT_TO_CHAN(texelOut[2], temp[2]);
- UNCLAMPED_FLOAT_TO_CHAN(texelOut[3], temp[3]);
- }
-}
-
-
-#if 0
-/**
- * Adaptor for fetching a float texel from a GLchan-valued texture.
- */
-static void
-fetch_texel_chan_to_float(const struct swrast_texture_image *texImage,
- GLint i, GLint j, GLint k, GLfloat *texelOut)
-{
- GLchan temp[4];
- GLenum baseFormat = _mesa_get_format_base_format(texImage->TexFormat);
-
- ASSERT(texImage->FetchTexelc);
- texImage->FetchTexelc(texImage, i, j, k, temp);
- if (baseFormat == GL_DEPTH_COMPONENT ||
- baseFormat == GL_DEPTH_STENCIL_EXT) {
- /* just one channel */
- texelOut[0] = CHAN_TO_FLOAT(temp[0]);
- }
- else {
- /* four channels */
- texelOut[0] = CHAN_TO_FLOAT(temp[0]);
- texelOut[1] = CHAN_TO_FLOAT(temp[1]);
- texelOut[2] = CHAN_TO_FLOAT(temp[2]);
- texelOut[3] = CHAN_TO_FLOAT(temp[3]);
- }
-}
-#endif
-
-
-/**
- * Initialize the texture image's FetchTexelc and FetchTexelf methods.
+ * Initialize the texture image's FetchTexel methods.
*/
static void
set_fetch_functions(struct swrast_texture_image *texImage, GLuint dims)
@@ -1357,12 +1301,8 @@ set_fetch_functions(struct swrast_texture_image *texImage, GLuint dims)
format = _mesa_get_srgb_format_linear(format);
}
- texImage->FetchTexelf = _mesa_get_texel_fetch_func(format, dims);
-
- texImage->FetchTexelc = fetch_texel_float_to_chan;
-
- ASSERT(texImage->FetchTexelc);
- ASSERT(texImage->FetchTexelf);
+ texImage->FetchTexel = _mesa_get_texel_fetch_func(format, dims);
+ ASSERT(texImage->FetchTexel);
}
void
diff --git a/mesalib/src/mesa/swrast/s_texfetch.h b/mesalib/src/mesa/swrast/s_texfetch.h
index 19b196a5a..c98aa5c5a 100644
--- a/mesalib/src/mesa/swrast/s_texfetch.h
+++ b/mesalib/src/mesa/swrast/s_texfetch.h
@@ -32,7 +32,7 @@
extern StoreTexelFunc
_mesa_get_texel_store_func(gl_format format);
-extern FetchTexelFuncF
+extern FetchTexelFunc
_mesa_get_texel_fetch_func(gl_format format, GLuint dims);
void
diff --git a/mesalib/src/mesa/swrast/s_texfilter.c b/mesalib/src/mesa/swrast/s_texfilter.c
index ca9133b21..f8b0fa1aa 100644
--- a/mesalib/src/mesa/swrast/s_texfilter.c
+++ b/mesalib/src/mesa/swrast/s_texfilter.c
@@ -815,7 +815,7 @@ sample_1d_nearest(struct gl_context *ctx,
get_border_color(tObj, img, rgba);
}
else {
- swImg->FetchTexelf(swImg, i, 0, 0, rgba);
+ swImg->FetchTexel(swImg, i, 0, 0, rgba);
}
}
@@ -852,13 +852,13 @@ sample_1d_linear(struct gl_context *ctx,
get_border_color(tObj, img, t0);
}
else {
- swImg->FetchTexelf(swImg, i0, 0, 0, t0);
+ swImg->FetchTexel(swImg, i0, 0, 0, t0);
}
if (useBorderColor & I1BIT) {
get_border_color(tObj, img, t1);
}
else {
- swImg->FetchTexelf(swImg, i1, 0, 0, t1);
+ swImg->FetchTexel(swImg, i1, 0, 0, t1);
}
lerp_rgba(rgba, a, t0, t1);
@@ -1082,7 +1082,7 @@ sample_2d_nearest(struct gl_context *ctx,
get_border_color(tObj, img, rgba);
}
else {
- swImg->FetchTexelf(swImg, i, j, 0, rgba);
+ swImg->FetchTexel(swImg, i, j, 0, rgba);
}
}
@@ -1127,25 +1127,25 @@ sample_2d_linear(struct gl_context *ctx,
get_border_color(tObj, img, t00);
}
else {
- swImg->FetchTexelf(swImg, i0, j0, 0, t00);
+ swImg->FetchTexel(swImg, i0, j0, 0, t00);
}
if (useBorderColor & (I1BIT | J0BIT)) {
get_border_color(tObj, img, t10);
}
else {
- swImg->FetchTexelf(swImg, i1, j0, 0, t10);
+ swImg->FetchTexel(swImg, i1, j0, 0, t10);
}
if (useBorderColor & (I0BIT | J1BIT)) {
get_border_color(tObj, img, t01);
}
else {
- swImg->FetchTexelf(swImg, i0, j1, 0, t01);
+ swImg->FetchTexel(swImg, i0, j1, 0, t01);
}
if (useBorderColor & (I1BIT | J1BIT)) {
get_border_color(tObj, img, t11);
}
else {
- swImg->FetchTexelf(swImg, i1, j1, 0, t11);
+ swImg->FetchTexel(swImg, i1, j1, 0, t11);
}
lerp_rgba_2d(rgba, a, b, t00, t10, t01, t11);
@@ -1180,10 +1180,10 @@ sample_2d_linear_repeat(struct gl_context *ctx,
linear_repeat_texel_location(width, texcoord[0], &i0, &i1, &wi);
linear_repeat_texel_location(height, texcoord[1], &j0, &j1, &wj);
- swImg->FetchTexelf(swImg, i0, j0, 0, t00);
- swImg->FetchTexelf(swImg, i1, j0, 0, t10);
- swImg->FetchTexelf(swImg, i0, j1, 0, t01);
- swImg->FetchTexelf(swImg, i1, j1, 0, t11);
+ swImg->FetchTexel(swImg, i0, j0, 0, t00);
+ swImg->FetchTexel(swImg, i1, j0, 0, t10);
+ swImg->FetchTexel(swImg, i0, j1, 0, t01);
+ swImg->FetchTexel(swImg, i1, j1, 0, t11);
lerp_rgba_2d(rgba, wi, wj, t00, t10, t01, t11);
}
@@ -1369,6 +1369,7 @@ opt_sample_rgb_2d(struct gl_context *ctx,
ASSERT(img->Border==0);
ASSERT(img->TexFormat == MESA_FORMAT_RGB888);
ASSERT(swImg->_IsPowerOfTwo);
+ (void) swImg;
for (k=0; k<n; k++) {
GLint i = IFLOOR(texcoords[k][0] * width) & colMask;
@@ -1412,6 +1413,7 @@ opt_sample_rgba_2d(struct gl_context *ctx,
ASSERT(img->Border==0);
ASSERT(img->TexFormat == MESA_FORMAT_RGBA8888);
ASSERT(swImg->_IsPowerOfTwo);
+ (void) swImg;
for (i = 0; i < n; i++) {
const GLint col = IFLOOR(texcoords[i][0] * width) & colMask;
@@ -1966,7 +1968,7 @@ sample_3d_nearest(struct gl_context *ctx,
get_border_color(tObj, img, rgba);
}
else {
- swImg->FetchTexelf(swImg, i, j, k, rgba);
+ swImg->FetchTexel(swImg, i, j, k, rgba);
}
}
@@ -2018,50 +2020,50 @@ sample_3d_linear(struct gl_context *ctx,
get_border_color(tObj, img, t000);
}
else {
- swImg->FetchTexelf(swImg, i0, j0, k0, t000);
+ swImg->FetchTexel(swImg, i0, j0, k0, t000);
}
if (useBorderColor & (I1BIT | J0BIT | K0BIT)) {
get_border_color(tObj, img, t100);
}
else {
- swImg->FetchTexelf(swImg, i1, j0, k0, t100);
+ swImg->FetchTexel(swImg, i1, j0, k0, t100);
}
if (useBorderColor & (I0BIT | J1BIT | K0BIT)) {
get_border_color(tObj, img, t010);
}
else {
- swImg->FetchTexelf(swImg, i0, j1, k0, t010);
+ swImg->FetchTexel(swImg, i0, j1, k0, t010);
}
if (useBorderColor & (I1BIT | J1BIT | K0BIT)) {
get_border_color(tObj, img, t110);
}
else {
- swImg->FetchTexelf(swImg, i1, j1, k0, t110);
+ swImg->FetchTexel(swImg, i1, j1, k0, t110);
}
if (useBorderColor & (I0BIT | J0BIT | K1BIT)) {
get_border_color(tObj, img, t001);
}
else {
- swImg->FetchTexelf(swImg, i0, j0, k1, t001);
+ swImg->FetchTexel(swImg, i0, j0, k1, t001);
}
if (useBorderColor & (I1BIT | J0BIT | K1BIT)) {
get_border_color(tObj, img, t101);
}
else {
- swImg->FetchTexelf(swImg, i1, j0, k1, t101);
+ swImg->FetchTexel(swImg, i1, j0, k1, t101);
}
if (useBorderColor & (I0BIT | J1BIT | K1BIT)) {
get_border_color(tObj, img, t011);
}
else {
- swImg->FetchTexelf(swImg, i0, j1, k1, t011);
+ swImg->FetchTexel(swImg, i0, j1, k1, t011);
}
if (useBorderColor & (I1BIT | J1BIT | K1BIT)) {
get_border_color(tObj, img, t111);
}
else {
- swImg->FetchTexelf(swImg, i1, j1, k1, t111);
+ swImg->FetchTexel(swImg, i1, j1, k1, t111);
}
/* trilinear interpolation of samples */
@@ -2582,7 +2584,7 @@ sample_nearest_rect(struct gl_context *ctx,
if (col < 0 || col >= width || row < 0 || row >= height)
get_border_color(tObj, img, rgba[i]);
else
- swImg->FetchTexelf(swImg, col, row, 0, rgba[i]);
+ swImg->FetchTexel(swImg, col, row, 0, rgba[i]);
}
}
@@ -2630,22 +2632,22 @@ sample_linear_rect(struct gl_context *ctx,
if (useBorderColor & (I0BIT | J0BIT))
get_border_color(tObj, img, t00);
else
- swImg->FetchTexelf(swImg, i0, j0, 0, t00);
+ swImg->FetchTexel(swImg, i0, j0, 0, t00);
if (useBorderColor & (I1BIT | J0BIT))
get_border_color(tObj, img, t10);
else
- swImg->FetchTexelf(swImg, i1, j0, 0, t10);
+ swImg->FetchTexel(swImg, i1, j0, 0, t10);
if (useBorderColor & (I0BIT | J1BIT))
get_border_color(tObj, img, t01);
else
- swImg->FetchTexelf(swImg, i0, j1, 0, t01);
+ swImg->FetchTexel(swImg, i0, j1, 0, t01);
if (useBorderColor & (I1BIT | J1BIT))
get_border_color(tObj, img, t11);
else
- swImg->FetchTexelf(swImg, i1, j1, 0, t11);
+ swImg->FetchTexel(swImg, i1, j1, 0, t11);
lerp_rgba_2d(rgba[i], a, b, t00, t10, t01, t11);
}
@@ -2723,7 +2725,7 @@ sample_2d_array_nearest(struct gl_context *ctx,
get_border_color(tObj, img, rgba);
}
else {
- swImg->FetchTexelf(swImg, i, j, array, rgba);
+ swImg->FetchTexel(swImg, i, j, array, rgba);
}
}
@@ -2775,25 +2777,25 @@ sample_2d_array_linear(struct gl_context *ctx,
get_border_color(tObj, img, t00);
}
else {
- swImg->FetchTexelf(swImg, i0, j0, array, t00);
+ swImg->FetchTexel(swImg, i0, j0, array, t00);
}
if (useBorderColor & (I1BIT | J0BIT)) {
get_border_color(tObj, img, t10);
}
else {
- swImg->FetchTexelf(swImg, i1, j0, array, t10);
+ swImg->FetchTexel(swImg, i1, j0, array, t10);
}
if (useBorderColor & (I0BIT | J1BIT)) {
get_border_color(tObj, img, t01);
}
else {
- swImg->FetchTexelf(swImg, i0, j1, array, t01);
+ swImg->FetchTexel(swImg, i0, j1, array, t01);
}
if (useBorderColor & (I1BIT | J1BIT)) {
get_border_color(tObj, img, t11);
}
else {
- swImg->FetchTexelf(swImg, i1, j1, array, t11);
+ swImg->FetchTexel(swImg, i1, j1, array, t11);
}
/* trilinear interpolation of samples */
@@ -3032,7 +3034,7 @@ sample_1d_array_nearest(struct gl_context *ctx,
get_border_color(tObj, img, rgba);
}
else {
- swImg->FetchTexelf(swImg, i, array, 0, rgba);
+ swImg->FetchTexel(swImg, i, array, 0, rgba);
}
}
@@ -3076,13 +3078,13 @@ sample_1d_array_linear(struct gl_context *ctx,
get_border_color(tObj, img, t0);
}
else {
- swImg->FetchTexelf(swImg, i0, array, 0, t0);
+ swImg->FetchTexel(swImg, i0, array, 0, t0);
}
if (useBorderColor & (I1BIT | K0BIT)) {
get_border_color(tObj, img, t1);
}
else {
- swImg->FetchTexelf(swImg, i1, array, 0, t1);
+ swImg->FetchTexel(swImg, i1, array, 0, t1);
}
/* bilinear interpolation of samples */
@@ -3446,7 +3448,7 @@ sample_depth_texture( struct gl_context *ctx,
if (col >= 0 && row >= 0 && col < width && row < height &&
slice >= 0 && slice < depth) {
- swImg->FetchTexelf(swImg, col, row, slice, &depthSample);
+ swImg->FetchTexel(swImg, col, row, slice, &depthSample);
}
else {
depthSample = tObj->Sampler.BorderColor.f[0];
@@ -3515,13 +3517,13 @@ sample_depth_texture( struct gl_context *ctx,
depth00 = tObj->Sampler.BorderColor.f[0];
}
else {
- swImg->FetchTexelf(swImg, i0, j0, slice, &depth00);
+ swImg->FetchTexel(swImg, i0, j0, slice, &depth00);
}
if (useBorderTexel & (I1BIT | J0BIT)) {
depth10 = tObj->Sampler.BorderColor.f[0];
}
else {
- swImg->FetchTexelf(swImg, i1, j0, slice, &depth10);
+ swImg->FetchTexel(swImg, i1, j0, slice, &depth10);
}
if (tObj->Target != GL_TEXTURE_1D_ARRAY_EXT) {
@@ -3529,13 +3531,13 @@ sample_depth_texture( struct gl_context *ctx,
depth01 = tObj->Sampler.BorderColor.f[0];
}
else {
- swImg->FetchTexelf(swImg, i0, j1, slice, &depth01);
+ swImg->FetchTexel(swImg, i0, j1, slice, &depth01);
}
if (useBorderTexel & (I1BIT | J1BIT)) {
depth11 = tObj->Sampler.BorderColor.f[0];
}
else {
- swImg->FetchTexelf(swImg, i1, j1, slice, &depth11);
+ swImg->FetchTexel(swImg, i1, j1, slice, &depth11);
}
}
else {
diff --git a/mesalib/src/mesa/swrast/s_texrender.c b/mesalib/src/mesa/swrast/s_texrender.c
index 643952875..47e458e1c 100644
--- a/mesalib/src/mesa/swrast/s_texrender.c
+++ b/mesalib/src/mesa/swrast/s_texrender.c
@@ -23,7 +23,7 @@ struct texture_renderbuffer
struct gl_renderbuffer Base; /**< Base class object */
struct swrast_texture_image *TexImage;
StoreTexelFunc Store;
- FetchTexelFuncF Fetchf;
+ FetchTexelFunc Fetch;
GLint Yoffset; /**< Layer for 1D array textures. */
GLint Zoffset; /**< Layer for 2D array textures, or slice
* for 3D textures
@@ -52,7 +52,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count
GLchan *rgbaOut = (GLchan *) values;
for (i = 0; i < count; i++) {
GLfloat rgba[4];
- trb->Fetchf(trb->TexImage, x + i, y, z, rgba);
+ trb->Fetch(trb->TexImage, x + i, y, z, rgba);
UNCLAMPED_FLOAT_TO_RGBA_CHAN(rgbaOut + 4 * i, rgba);
}
}
@@ -60,7 +60,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count
GLushort *zValues = (GLushort *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x + i, y, z, &flt);
+ trb->Fetch(trb->TexImage, x + i, y, z, &flt);
zValues[i] = (GLushort) (flt * 0xffff);
}
}
@@ -71,7 +71,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count
*/
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x + i, y, z, &flt);
+ trb->Fetch(trb->TexImage, x + i, y, z, &flt);
#if 0
/* this should work, but doesn't (overflow due to low precision) */
zValues[i] = (GLuint) (flt * scale);
@@ -85,7 +85,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count
GLuint *zValues = (GLuint *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x + i, y, z, &flt);
+ trb->Fetch(trb->TexImage, x + i, y, z, &flt);
zValues[i] = ((GLuint) (flt * 0xffffff)) << 8;
}
}
@@ -93,7 +93,7 @@ texture_get_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count
GLuint *zValues = (GLuint *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x + i, y, z, &flt);
+ trb->Fetch(trb->TexImage, x + i, y, z, &flt);
zValues[i] = (GLuint) (flt * 0xffffff);
}
}
@@ -116,7 +116,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co
GLchan *rgbaOut = (GLchan *) values;
for (i = 0; i < count; i++) {
GLfloat rgba[4];
- trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ trb->Fetch(trb->TexImage, x[i], y[i] + trb->Yoffset,
z, rgba);
UNCLAMPED_FLOAT_TO_RGBA_CHAN(rgbaOut + 4 * i, rgba);
}
@@ -125,7 +125,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co
GLushort *zValues = (GLushort *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ trb->Fetch(trb->TexImage, x[i], y[i] + trb->Yoffset,
z, &flt);
zValues[i] = (GLushort) (flt * 0xffff);
}
@@ -134,7 +134,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co
GLuint *zValues = (GLuint *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ trb->Fetch(trb->TexImage, x[i], y[i] + trb->Yoffset,
z, &flt);
#if 0
zValues[i] = (GLuint) (flt * 0xffffffff);
@@ -147,7 +147,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co
GLuint *zValues = (GLuint *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ trb->Fetch(trb->TexImage, x[i], y[i] + trb->Yoffset,
z, &flt);
zValues[i] = ((GLuint) (flt * 0xffffff)) << 8;
}
@@ -156,7 +156,7 @@ texture_get_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint co
GLuint *zValues = (GLuint *) values;
for (i = 0; i < count; i++) {
GLfloat flt;
- trb->Fetchf(trb->TexImage, x[i], y[i] + trb->Yoffset,
+ trb->Fetch(trb->TexImage, x[i], y[i] + trb->Yoffset,
z, &flt);
zValues[i] = (GLuint) (flt * 0xffffff);
}
@@ -544,11 +544,11 @@ update_wrapper(struct gl_context *ctx, struct gl_renderbuffer_attachment *att)
trb->Store = store_nop;
}
- if (!trb->TexImage->FetchTexelf) {
+ if (!trb->TexImage->FetchTexel) {
_mesa_update_fetch_functions(trb->TexImage->Base.TexObject);
}
- trb->Fetchf = trb->TexImage->FetchTexelf;
- assert(trb->Fetchf);
+ trb->Fetch = trb->TexImage->FetchTexel;
+ assert(trb->Fetch);
if (att->Texture->Target == GL_TEXTURE_1D_ARRAY_EXT) {
trb->Yoffset = att->Zoffset;
@@ -592,17 +592,17 @@ update_wrapper(struct gl_context *ctx, struct gl_renderbuffer_attachment *att)
break;
/* SRGB formats pre EXT_framebuffer_sRGB don't do sRGB translations on FBO readback */
case MESA_FORMAT_SRGB8:
- trb->Fetchf = _mesa_get_texel_fetch_func(MESA_FORMAT_RGB888, _mesa_get_texture_dimensions(att->Texture->Target));
+ trb->Fetch = _mesa_get_texel_fetch_func(MESA_FORMAT_RGB888, _mesa_get_texture_dimensions(att->Texture->Target));
trb->Base.DataType = CHAN_TYPE;
trb->Base._BaseFormat = GL_RGBA;
break;
case MESA_FORMAT_SRGBA8:
- trb->Fetchf = _mesa_get_texel_fetch_func(MESA_FORMAT_RGBA8888, _mesa_get_texture_dimensions(att->Texture->Target));
+ trb->Fetch = _mesa_get_texel_fetch_func(MESA_FORMAT_RGBA8888, _mesa_get_texture_dimensions(att->Texture->Target));
trb->Base.DataType = CHAN_TYPE;
trb->Base._BaseFormat = GL_RGBA;
break;
case MESA_FORMAT_SARGB8:
- trb->Fetchf = _mesa_get_texel_fetch_func(MESA_FORMAT_ARGB8888, _mesa_get_texture_dimensions(att->Texture->Target));
+ trb->Fetch = _mesa_get_texel_fetch_func(MESA_FORMAT_ARGB8888, _mesa_get_texture_dimensions(att->Texture->Target));
trb->Base.DataType = CHAN_TYPE;
trb->Base._BaseFormat = GL_RGBA;
break;
diff --git a/mesalib/src/mesa/tnl/t_vb_program.c b/mesalib/src/mesa/tnl/t_vb_program.c
index cc5e85634..367dfd5bb 100644
--- a/mesalib/src/mesa/tnl/t_vb_program.c
+++ b/mesalib/src/mesa/tnl/t_vb_program.c
@@ -336,11 +336,17 @@ run_vp( struct gl_context *ctx, struct tnl_pipeline_stage *stage )
for (i = 0; i < VERT_RESULT_MAX; i++) {
if (program->Base.OutputsWritten & BITFIELD64_BIT(i)) {
outputs[numOutputs++] = i;
+ }
+ }
- if (!store->results[i].data) {
- _mesa_vector4f_alloc( &store->results[i], 0, VB->Size, 32 );
- store->results[i].size = 4;
- }
+ /* Allocate result vectors. We delay this until now to avoid allocating
+ * memory that would never be used if we don't run the software tnl pipeline.
+ */
+ if (!store->results[0].storage) {
+ for (i = 0; i < VERT_RESULT_MAX; i++) {
+ assert(!store->results[i].storage);
+ _mesa_vector4f_alloc( &store->results[i], 0, VB->Size, 32 );
+ store->results[i].size = 4;
}
}
diff --git a/pixman/configure.ac b/pixman/configure.ac
index 481d0bb00..6f5aef562 100644
--- a/pixman/configure.ac
+++ b/pixman/configure.ac
@@ -552,7 +552,10 @@ AC_MSG_CHECKING(whether to use ARM IWMMXT intrinsics)
xserver_save_CFLAGS=$CFLAGS
CFLAGS="$IWMMXT_CFLAGS $CFLAGS"
AC_COMPILE_IFELSE([
-#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 3 && __GNUC_MINOR__ < 6))
+#ifndef __arm__
+#error "IWMMXT is only available on ARM"
+#endif
+#if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6))
#error "Need GCC >= 4.6 for IWMMXT intrinsics"
#endif
#include <mmintrin.h>
diff --git a/pixman/pixman/pixman-bits-image.c b/pixman/pixman/pixman-bits-image.c
index f382c65ad..99c0dfe6d 100644
--- a/pixman/pixman/pixman-bits-image.c
+++ b/pixman/pixman/pixman-bits-image.c
@@ -1437,40 +1437,30 @@ create_bits (pixman_format_code_t format,
return calloc (buf_size, 1);
}
-PIXMAN_EXPORT pixman_image_t *
-pixman_image_create_bits (pixman_format_code_t format,
- int width,
- int height,
- uint32_t * bits,
- int rowstride_bytes)
+pixman_bool_t
+_pixman_bits_image_init (pixman_image_t * image,
+ pixman_format_code_t format,
+ int width,
+ int height,
+ uint32_t * bits,
+ int rowstride)
{
- pixman_image_t *image;
uint32_t *free_me = NULL;
- /* must be a whole number of uint32_t's
- */
- return_val_if_fail (
- bits == NULL || (rowstride_bytes % sizeof (uint32_t)) == 0, NULL);
-
- return_val_if_fail (PIXMAN_FORMAT_BPP (format) >= PIXMAN_FORMAT_DEPTH (format), NULL);
-
if (!bits && width && height)
{
- free_me = bits = create_bits (format, width, height, &rowstride_bytes);
- if (!bits)
- return NULL;
- }
+ int rowstride_bytes;
- image = _pixman_image_allocate ();
+ free_me = bits = create_bits (format, width, height, &rowstride_bytes);
- if (!image)
- {
- if (free_me)
- free (free_me);
+ if (!bits)
+ return FALSE;
- return NULL;
+ rowstride = rowstride_bytes / (int) sizeof (uint32_t);
}
+ _pixman_image_init (image);
+
image->type = BITS;
image->bits.format = format;
image->bits.width = width;
@@ -1479,15 +1469,43 @@ pixman_image_create_bits (pixman_format_code_t format,
image->bits.free_me = free_me;
image->bits.read_func = NULL;
image->bits.write_func = NULL;
-
- /* The rowstride is stored in number of uint32_t */
- image->bits.rowstride = rowstride_bytes / (int) sizeof (uint32_t);
-
+ image->bits.rowstride = rowstride;
image->bits.indexed = NULL;
image->common.property_changed = bits_image_property_changed;
_pixman_image_reset_clip_region (image);
+ return TRUE;
+}
+
+PIXMAN_EXPORT pixman_image_t *
+pixman_image_create_bits (pixman_format_code_t format,
+ int width,
+ int height,
+ uint32_t * bits,
+ int rowstride_bytes)
+{
+ pixman_image_t *image;
+
+ /* must be a whole number of uint32_t's
+ */
+ return_val_if_fail (
+ bits == NULL || (rowstride_bytes % sizeof (uint32_t)) == 0, NULL);
+
+ return_val_if_fail (PIXMAN_FORMAT_BPP (format) >= PIXMAN_FORMAT_DEPTH (format), NULL);
+
+ image = _pixman_image_allocate ();
+
+ if (!image)
+ return NULL;
+
+ if (!_pixman_bits_image_init (image, format, width, height, bits,
+ rowstride_bytes / (int) sizeof (uint32_t)))
+ {
+ free (image);
+ return NULL;
+ }
+
return image;
}
diff --git a/pixman/pixman/pixman-fast-path.c b/pixman/pixman/pixman-fast-path.c
index 033efd7b1..038dcf722 100644
--- a/pixman/pixman/pixman-fast-path.c
+++ b/pixman/pixman/pixman-fast-path.c
@@ -1191,6 +1191,174 @@ FAST_NEAREST (8888_565_none, 8888, 0565, uint32_t, uint16_t, OVER, NONE)
FAST_NEAREST (8888_565_pad, 8888, 0565, uint32_t, uint16_t, OVER, PAD)
FAST_NEAREST (8888_565_normal, 8888, 0565, uint32_t, uint16_t, OVER, NORMAL)
+#define REPEAT_MIN_WIDTH 32
+
+static void
+fast_composite_tiled_repeat (pixman_implementation_t *imp,
+ pixman_composite_info_t *info)
+{
+ PIXMAN_COMPOSITE_ARGS (info);
+ pixman_composite_func_t func;
+ pixman_format_code_t mask_format;
+ uint32_t src_flags, mask_flags;
+
+ src_flags = (info->src_flags & ~FAST_PATH_NORMAL_REPEAT) |
+ FAST_PATH_SAMPLES_COVER_CLIP_NEAREST;
+
+ if (mask_image)
+ {
+ mask_format = mask_image->common.extended_format_code;
+ mask_flags = info->mask_flags;
+ }
+ else
+ {
+ mask_format = PIXMAN_null;
+ mask_flags = FAST_PATH_IS_OPAQUE;
+ }
+
+ if (_pixman_lookup_composite_function (
+ imp->toplevel, info->op,
+ src_image->common.extended_format_code, src_flags,
+ mask_format, mask_flags,
+ dest_image->common.extended_format_code, info->dest_flags,
+ &imp, &func))
+ {
+ int32_t sx, sy;
+ int32_t width_remain;
+ int32_t num_pixels;
+ int32_t src_width;
+ int32_t i, j;
+ pixman_image_t extended_src_image;
+ uint32_t extended_src[REPEAT_MIN_WIDTH * 2];
+ pixman_bool_t need_src_extension;
+ uint32_t *src_line;
+ int32_t src_stride;
+ int32_t src_bpp;
+ pixman_composite_info_t info2 = *info;
+
+ src_bpp = PIXMAN_FORMAT_BPP (src_image->bits.format);
+
+ if (src_image->bits.width < REPEAT_MIN_WIDTH &&
+ (src_bpp == 32 || src_bpp == 16 || src_bpp == 8))
+ {
+ sx = src_x;
+ sx = MOD (sx, src_image->bits.width);
+ sx += width;
+ src_width = 0;
+
+ while (src_width < REPEAT_MIN_WIDTH && src_width <= sx)
+ src_width += src_image->bits.width;
+
+ src_stride = (src_width * (src_bpp >> 3) + 3) / (int) sizeof (uint32_t);
+
+ /* Initialize/validate stack-allocated temporary image */
+ _pixman_bits_image_init (&extended_src_image, src_image->bits.format,
+ src_width, 1, &extended_src[0], src_stride);
+ _pixman_image_validate (&extended_src_image);
+
+ info2.src_image = &extended_src_image;
+ need_src_extension = TRUE;
+ }
+ else
+ {
+ src_width = src_image->bits.width;
+ need_src_extension = FALSE;
+ }
+
+ sx = src_x;
+ sy = src_y;
+
+ while (--height >= 0)
+ {
+ sx = MOD (sx, src_width);
+ sy = MOD (sy, src_image->bits.height);
+
+ if (need_src_extension)
+ {
+ if (src_bpp == 32)
+ {
+ PIXMAN_IMAGE_GET_LINE (src_image, 0, sy, uint32_t, src_stride, src_line, 1);
+
+ for (i = 0; i < src_width; )
+ {
+ for (j = 0; j < src_image->bits.width; j++, i++)
+ extended_src[i] = src_line[j];
+ }
+ }
+ else if (src_bpp == 16)
+ {
+ uint16_t *src_line_16;
+
+ PIXMAN_IMAGE_GET_LINE (src_image, 0, sy, uint16_t, src_stride,
+ src_line_16, 1);
+ src_line = (uint32_t*)src_line_16;
+
+ for (i = 0; i < src_width; )
+ {
+ for (j = 0; j < src_image->bits.width; j++, i++)
+ ((uint16_t*)extended_src)[i] = ((uint16_t*)src_line)[j];
+ }
+ }
+ else if (src_bpp == 8)
+ {
+ uint8_t *src_line_8;
+
+ PIXMAN_IMAGE_GET_LINE (src_image, 0, sy, uint8_t, src_stride,
+ src_line_8, 1);
+ src_line = (uint32_t*)src_line_8;
+
+ for (i = 0; i < src_width; )
+ {
+ for (j = 0; j < src_image->bits.width; j++, i++)
+ ((uint8_t*)extended_src)[i] = ((uint8_t*)src_line)[j];
+ }
+ }
+
+ info2.src_y = 0;
+ }
+ else
+ {
+ info2.src_y = sy;
+ }
+
+ width_remain = width;
+
+ while (width_remain > 0)
+ {
+ num_pixels = src_width - sx;
+
+ if (num_pixels > width_remain)
+ num_pixels = width_remain;
+
+ info2.src_x = sx;
+ info2.width = num_pixels;
+ info2.height = 1;
+
+ func (imp, &info2);
+
+ width_remain -= num_pixels;
+ info2.mask_x += num_pixels;
+ info2.dest_x += num_pixels;
+ sx = 0;
+ }
+
+ sx = src_x;
+ sy++;
+ info2.mask_x = info->mask_x;
+ info2.mask_y++;
+ info2.dest_x = info->dest_x;
+ info2.dest_y++;
+ }
+
+ if (need_src_extension)
+ _pixman_image_fini (&extended_src_image);
+ }
+ else
+ {
+ _pixman_log_error (FUNC, "Didn't find a suitable function ");
+ }
+}
+
/* Use more unrolling for src_0565_0565 because it is typically CPU bound */
static force_inline void
scaled_nearest_scanline_565_565_SRC (uint16_t * dst,
@@ -1787,6 +1955,16 @@ static const pixman_fast_path_t c_fast_paths[] =
SIMPLE_ROTATE_FAST_PATH (SRC, r5g6b5, r5g6b5, 565),
SIMPLE_ROTATE_FAST_PATH (SRC, a8, a8, 8),
+ /* Simple repeat fast path entry. */
+ { PIXMAN_OP_any,
+ PIXMAN_any,
+ (FAST_PATH_STANDARD_FLAGS | FAST_PATH_ID_TRANSFORM | FAST_PATH_BITS_IMAGE |
+ FAST_PATH_NORMAL_REPEAT),
+ PIXMAN_any, 0,
+ PIXMAN_any, FAST_PATH_STD_DEST_FLAGS,
+ fast_composite_tiled_repeat
+ },
+
{ PIXMAN_OP_NONE },
};
diff --git a/pixman/pixman/pixman-image.c b/pixman/pixman/pixman-image.c
index a3bb9b63a..afe587f31 100644
--- a/pixman/pixman/pixman-image.c
+++ b/pixman/pixman/pixman-image.c
@@ -49,56 +49,33 @@ _pixman_init_gradient (gradient_t * gradient,
return TRUE;
}
-pixman_image_t *
-_pixman_image_allocate (void)
-{
- pixman_image_t *image = malloc (sizeof (pixman_image_t));
-
- if (image)
- {
- image_common_t *common = &image->common;
-
- pixman_region32_init (&common->clip_region);
-
- common->alpha_count = 0;
- common->have_clip_region = FALSE;
- common->clip_sources = FALSE;
- common->transform = NULL;
- common->repeat = PIXMAN_REPEAT_NONE;
- common->filter = PIXMAN_FILTER_NEAREST;
- common->filter_params = NULL;
- common->n_filter_params = 0;
- common->alpha_map = NULL;
- common->component_alpha = FALSE;
- common->ref_count = 1;
- common->property_changed = NULL;
- common->client_clip = FALSE;
- common->destroy_func = NULL;
- common->destroy_data = NULL;
- common->dirty = TRUE;
- }
-
- return image;
-}
-
-static void
-image_property_changed (pixman_image_t *image)
-{
- image->common.dirty = TRUE;
-}
-
-/* Ref Counting */
-PIXMAN_EXPORT pixman_image_t *
-pixman_image_ref (pixman_image_t *image)
+void
+_pixman_image_init (pixman_image_t *image)
{
- image->common.ref_count++;
-
- return image;
+ image_common_t *common = &image->common;
+
+ pixman_region32_init (&common->clip_region);
+
+ common->alpha_count = 0;
+ common->have_clip_region = FALSE;
+ common->clip_sources = FALSE;
+ common->transform = NULL;
+ common->repeat = PIXMAN_REPEAT_NONE;
+ common->filter = PIXMAN_FILTER_NEAREST;
+ common->filter_params = NULL;
+ common->n_filter_params = 0;
+ common->alpha_map = NULL;
+ common->component_alpha = FALSE;
+ common->ref_count = 1;
+ common->property_changed = NULL;
+ common->client_clip = FALSE;
+ common->destroy_func = NULL;
+ common->destroy_data = NULL;
+ common->dirty = TRUE;
}
-/* returns TRUE when the image is freed */
-PIXMAN_EXPORT pixman_bool_t
-pixman_image_unref (pixman_image_t *image)
+pixman_bool_t
+_pixman_image_fini (pixman_image_t *image)
{
image_common_t *common = (image_common_t *)image;
@@ -131,8 +108,45 @@ pixman_image_unref (pixman_image_t *image)
if (image->type == BITS && image->bits.free_me)
free (image->bits.free_me);
- free (image);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+pixman_image_t *
+_pixman_image_allocate (void)
+{
+ pixman_image_t *image = malloc (sizeof (pixman_image_t));
+
+ if (image)
+ _pixman_image_init (image);
+
+ return image;
+}
+
+static void
+image_property_changed (pixman_image_t *image)
+{
+ image->common.dirty = TRUE;
+}
+
+/* Ref Counting */
+PIXMAN_EXPORT pixman_image_t *
+pixman_image_ref (pixman_image_t *image)
+{
+ image->common.ref_count++;
+
+ return image;
+}
+
+/* returns TRUE when the image is freed */
+PIXMAN_EXPORT pixman_bool_t
+pixman_image_unref (pixman_image_t *image)
+{
+ if (_pixman_image_fini (image))
+ {
+ free (image);
return TRUE;
}
@@ -361,6 +375,7 @@ compute_image_info (pixman_image_t *image)
else
{
code = image->bits.format;
+ flags |= FAST_PATH_BITS_IMAGE;
}
if (!PIXMAN_FORMAT_A (image->bits.format) &&
diff --git a/pixman/pixman/pixman-private.h b/pixman/pixman/pixman-private.h
index 4d645fe4b..cbd48f3d1 100644
--- a/pixman/pixman/pixman-private.h
+++ b/pixman/pixman/pixman-private.h
@@ -250,6 +250,19 @@ _pixman_radial_gradient_iter_init (pixman_image_t *image, pixman_iter_t *iter);
void
_pixman_conical_gradient_iter_init (pixman_image_t *image, pixman_iter_t *iter);
+void
+_pixman_image_init (pixman_image_t *image);
+
+pixman_bool_t
+_pixman_bits_image_init (pixman_image_t * image,
+ pixman_format_code_t format,
+ int width,
+ int height,
+ uint32_t * bits,
+ int rowstride);
+pixman_bool_t
+_pixman_image_fini (pixman_image_t *image);
+
pixman_image_t *
_pixman_image_allocate (void);
@@ -360,6 +373,10 @@ typedef struct
int32_t dest_y;
int32_t width;
int32_t height;
+
+ uint32_t src_flags;
+ uint32_t mask_flags;
+ uint32_t dest_flags;
} pixman_composite_info_t;
#define PIXMAN_COMPOSITE_ARGS(info) \
@@ -618,6 +635,7 @@ _pixman_iter_get_scanline_noop (pixman_iter_t *iter, const uint32_t *mask);
#define FAST_PATH_ROTATE_270_TRANSFORM (1 << 22)
#define FAST_PATH_SAMPLES_COVER_CLIP_NEAREST (1 << 23)
#define FAST_PATH_SAMPLES_COVER_CLIP_BILINEAR (1 << 24)
+#define FAST_PATH_BITS_IMAGE (1 << 25)
#define FAST_PATH_PAD_REPEAT \
(FAST_PATH_NO_NONE_REPEAT | \
@@ -712,6 +730,17 @@ pixman_contract (uint32_t * dst,
const uint64_t *src,
int width);
+pixman_bool_t
+_pixman_lookup_composite_function (pixman_implementation_t *toplevel,
+ pixman_op_t op,
+ pixman_format_code_t src_format,
+ uint32_t src_flags,
+ pixman_format_code_t mask_format,
+ uint32_t mask_flags,
+ pixman_format_code_t dest_format,
+ uint32_t dest_flags,
+ pixman_implementation_t **out_imp,
+ pixman_composite_func_t *out_func);
/* Region Helpers */
pixman_bool_t
diff --git a/pixman/pixman/pixman-sse2.c b/pixman/pixman/pixman-sse2.c
index da6bcdfa0..a183f937d 100644
--- a/pixman/pixman/pixman-sse2.c
+++ b/pixman/pixman/pixman-sse2.c
@@ -5287,83 +5287,53 @@ FAST_NEAREST_MAINLOOP_COMMON (sse2_8888_n_8888_none_OVER,
scaled_nearest_scanline_sse2_8888_n_8888_OVER,
uint32_t, uint32_t, uint32_t, NONE, TRUE, TRUE)
-static void
-bilinear_interpolate_line_sse2 (uint32_t * out,
- const uint32_t * top,
- const uint32_t * bottom,
- int wt,
- int wb,
- pixman_fixed_t x,
- pixman_fixed_t ux,
- int width)
-{
- const __m128i xmm_wt = _mm_set_epi16 (wt, wt, wt, wt, wt, wt, wt, wt);
- const __m128i xmm_wb = _mm_set_epi16 (wb, wb, wb, wb, wb, wb, wb, wb);
- const __m128i xmm_xorc = _mm_set_epi16 (0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff);
- const __m128i xmm_addc = _mm_set_epi16 (0, 0, 0, 0, 1, 1, 1, 1);
- const __m128i xmm_ux = _mm_set_epi16 (ux, ux, ux, ux, ux, ux, ux, ux);
- const __m128i xmm_zero = _mm_setzero_si128 ();
- __m128i xmm_x = _mm_set_epi16 (x, x, x, x, x, x, x, x);
- uint32_t pix1, pix2, pix3, pix4;
-
- #define INTERPOLATE_ONE_PIXEL(pix) \
- do { \
- __m128i xmm_wh, xmm_lo, xmm_hi, a; \
- /* fetch 2x2 pixel block into sse2 register */ \
- uint32_t tl = top [pixman_fixed_to_int (x)]; \
- uint32_t tr = top [pixman_fixed_to_int (x) + 1]; \
- uint32_t bl = bottom [pixman_fixed_to_int (x)]; \
- uint32_t br = bottom [pixman_fixed_to_int (x) + 1]; \
- a = _mm_set_epi32 (tr, tl, br, bl); \
- x += ux; \
- /* vertical interpolation */ \
- a = _mm_add_epi16 (_mm_mullo_epi16 (_mm_unpackhi_epi8 (a, xmm_zero), \
- xmm_wt), \
- _mm_mullo_epi16 (_mm_unpacklo_epi8 (a, xmm_zero), \
- xmm_wb)); \
- /* calculate horizontal weights */ \
- xmm_wh = _mm_add_epi16 (xmm_addc, \
- _mm_xor_si128 (xmm_xorc, \
- _mm_srli_epi16 (xmm_x, 8))); \
- xmm_x = _mm_add_epi16 (xmm_x, xmm_ux); \
- /* horizontal interpolation */ \
- xmm_lo = _mm_mullo_epi16 (a, xmm_wh); \
- xmm_hi = _mm_mulhi_epu16 (a, xmm_wh); \
- a = _mm_add_epi32 (_mm_unpacklo_epi16 (xmm_lo, xmm_hi), \
- _mm_unpackhi_epi16 (xmm_lo, xmm_hi)); \
- /* shift and pack the result */ \
- a = _mm_srli_epi32 (a, 16); \
- a = _mm_packs_epi32 (a, a); \
- a = _mm_packus_epi16 (a, a); \
- pix = _mm_cvtsi128_si32 (a); \
- } while (0)
-
- while ((width -= 4) >= 0)
- {
- INTERPOLATE_ONE_PIXEL (pix1);
- INTERPOLATE_ONE_PIXEL (pix2);
- INTERPOLATE_ONE_PIXEL (pix3);
- INTERPOLATE_ONE_PIXEL (pix4);
- *out++ = pix1;
- *out++ = pix2;
- *out++ = pix3;
- *out++ = pix4;
- }
- if (width & 2)
- {
- INTERPOLATE_ONE_PIXEL (pix1);
- INTERPOLATE_ONE_PIXEL (pix2);
- *out++ = pix1;
- *out++ = pix2;
- }
- if (width & 1)
- {
- INTERPOLATE_ONE_PIXEL (pix1);
- *out = pix1;
- }
-
- #undef INTERPOLATE_ONE_PIXEL
-}
+#define BILINEAR_DECLARE_VARIABLES \
+ const __m128i xmm_wt = _mm_set_epi16 (wt, wt, wt, wt, wt, wt, wt, wt); \
+ const __m128i xmm_wb = _mm_set_epi16 (wb, wb, wb, wb, wb, wb, wb, wb); \
+ const __m128i xmm_xorc = _mm_set_epi16 (0, 0, 0, 0, 0xff, 0xff, 0xff, 0xff);\
+ const __m128i xmm_addc = _mm_set_epi16 (0, 0, 0, 0, 1, 1, 1, 1); \
+ const __m128i xmm_ux = _mm_set_epi16 (unit_x, unit_x, unit_x, unit_x, \
+ unit_x, unit_x, unit_x, unit_x); \
+ const __m128i xmm_zero = _mm_setzero_si128 (); \
+ __m128i xmm_x = _mm_set_epi16 (vx, vx, vx, vx, vx, vx, vx, vx)
+
+#define BILINEAR_INTERPOLATE_ONE_PIXEL(pix) \
+do { \
+ __m128i xmm_wh, xmm_lo, xmm_hi, a; \
+ /* fetch 2x2 pixel block into sse2 register */ \
+ uint32_t tl = src_top [pixman_fixed_to_int (vx)]; \
+ uint32_t tr = src_top [pixman_fixed_to_int (vx) + 1]; \
+ uint32_t bl = src_bottom [pixman_fixed_to_int (vx)]; \
+ uint32_t br = src_bottom [pixman_fixed_to_int (vx) + 1]; \
+ a = _mm_set_epi32 (tr, tl, br, bl); \
+ vx += unit_x; \
+ /* vertical interpolation */ \
+ a = _mm_add_epi16 (_mm_mullo_epi16 (_mm_unpackhi_epi8 (a, xmm_zero), \
+ xmm_wt), \
+ _mm_mullo_epi16 (_mm_unpacklo_epi8 (a, xmm_zero), \
+ xmm_wb)); \
+ /* calculate horizontal weights */ \
+ xmm_wh = _mm_add_epi16 (xmm_addc, \
+ _mm_xor_si128 (xmm_xorc, \
+ _mm_srli_epi16 (xmm_x, 8))); \
+ xmm_x = _mm_add_epi16 (xmm_x, xmm_ux); \
+ /* horizontal interpolation */ \
+ xmm_lo = _mm_mullo_epi16 (a, xmm_wh); \
+ xmm_hi = _mm_mulhi_epu16 (a, xmm_wh); \
+ a = _mm_add_epi32 (_mm_unpacklo_epi16 (xmm_lo, xmm_hi), \
+ _mm_unpackhi_epi16 (xmm_lo, xmm_hi)); \
+ /* shift and pack the result */ \
+ a = _mm_srli_epi32 (a, 16); \
+ a = _mm_packs_epi32 (a, a); \
+ a = _mm_packus_epi16 (a, a); \
+ pix = _mm_cvtsi128_si32 (a); \
+} while (0)
+
+#define BILINEAR_SKIP_ONE_PIXEL() \
+do { \
+ vx += unit_x; \
+ xmm_x = _mm_add_epi16 (xmm_x, xmm_ux); \
+} while(0)
static force_inline void
scaled_bilinear_scanline_sse2_8888_8888_SRC (uint32_t * dst,
@@ -5378,8 +5348,35 @@ scaled_bilinear_scanline_sse2_8888_8888_SRC (uint32_t * dst,
pixman_fixed_t max_vx,
pixman_bool_t zero_src)
{
- bilinear_interpolate_line_sse2 (dst, src_top, src_bottom,
- wt, wb, vx, unit_x, w);
+ BILINEAR_DECLARE_VARIABLES;
+ uint32_t pix1, pix2, pix3, pix4;
+
+ while ((w -= 4) >= 0)
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix2);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix3);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix4);
+ *dst++ = pix1;
+ *dst++ = pix2;
+ *dst++ = pix3;
+ *dst++ = pix4;
+ }
+
+ if (w & 2)
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix2);
+ *dst++ = pix1;
+ *dst++ = pix2;
+ }
+
+ if (w & 1)
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+ *dst = pix1;
+ }
+
}
FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8888_cover_SRC,
@@ -5399,6 +5396,269 @@ FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8888_normal_SRC,
uint32_t, uint32_t, uint32_t,
NORMAL, FLAG_NONE)
+static force_inline void
+scaled_bilinear_scanline_sse2_8888_8888_OVER (uint32_t * dst,
+ const uint32_t * mask,
+ const uint32_t * src_top,
+ const uint32_t * src_bottom,
+ int32_t w,
+ int wt,
+ int wb,
+ pixman_fixed_t vx,
+ pixman_fixed_t unit_x,
+ pixman_fixed_t max_vx,
+ pixman_bool_t zero_src)
+{
+ BILINEAR_DECLARE_VARIABLES;
+ uint32_t pix1, pix2, pix3, pix4;
+
+ while (w && ((unsigned long)dst & 15))
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+
+ if (pix1)
+ {
+ pix2 = *dst;
+ *dst = core_combine_over_u_pixel_sse2 (pix1, pix2);
+ }
+
+ w--;
+ dst++;
+ }
+
+ while (w >= 4)
+ {
+ __m128i xmm_src;
+ __m128i xmm_src_hi, xmm_src_lo, xmm_dst_hi, xmm_dst_lo;
+ __m128i xmm_alpha_hi, xmm_alpha_lo;
+
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix2);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix3);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix4);
+
+ xmm_src = _mm_set_epi32 (pix4, pix3, pix2, pix1);
+
+ if (!is_zero (xmm_src))
+ {
+ if (is_opaque (xmm_src))
+ {
+ save_128_aligned ((__m128i *)dst, xmm_src);
+ }
+ else
+ {
+ __m128i xmm_dst = load_128_aligned ((__m128i *)dst);
+
+ unpack_128_2x128 (xmm_src, &xmm_src_lo, &xmm_src_hi);
+ unpack_128_2x128 (xmm_dst, &xmm_dst_lo, &xmm_dst_hi);
+
+ expand_alpha_2x128 (xmm_src_lo, xmm_src_hi, &xmm_alpha_lo, &xmm_alpha_hi);
+ over_2x128 (&xmm_src_lo, &xmm_src_hi, &xmm_alpha_lo, &xmm_alpha_hi,
+ &xmm_dst_lo, &xmm_dst_hi);
+
+ save_128_aligned ((__m128i *)dst, pack_2x128_128 (xmm_dst_lo, xmm_dst_hi));
+ }
+ }
+
+ w -= 4;
+ dst += 4;
+ }
+
+ while (w)
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+
+ if (pix1)
+ {
+ pix2 = *dst;
+ *dst = core_combine_over_u_pixel_sse2 (pix1, pix2);
+ }
+
+ w--;
+ dst++;
+ }
+}
+
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8888_cover_OVER,
+ scaled_bilinear_scanline_sse2_8888_8888_OVER,
+ uint32_t, uint32_t, uint32_t,
+ COVER, FLAG_NONE)
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8888_pad_OVER,
+ scaled_bilinear_scanline_sse2_8888_8888_OVER,
+ uint32_t, uint32_t, uint32_t,
+ PAD, FLAG_NONE)
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8888_none_OVER,
+ scaled_bilinear_scanline_sse2_8888_8888_OVER,
+ uint32_t, uint32_t, uint32_t,
+ NONE, FLAG_NONE)
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8888_normal_OVER,
+ scaled_bilinear_scanline_sse2_8888_8888_OVER,
+ uint32_t, uint32_t, uint32_t,
+ NORMAL, FLAG_NONE)
+
+static force_inline void
+scaled_bilinear_scanline_sse2_8888_8_8888_OVER (uint32_t * dst,
+ const uint8_t * mask,
+ const uint32_t * src_top,
+ const uint32_t * src_bottom,
+ int32_t w,
+ int wt,
+ int wb,
+ pixman_fixed_t vx,
+ pixman_fixed_t unit_x,
+ pixman_fixed_t max_vx,
+ pixman_bool_t zero_src)
+{
+ BILINEAR_DECLARE_VARIABLES;
+ uint32_t pix1, pix2, pix3, pix4;
+ uint32_t m;
+
+ while (w && ((unsigned long)dst & 15))
+ {
+ uint32_t sa;
+
+ m = (uint32_t) *mask++;
+
+ if (m)
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+ sa = pix1 >> 24;
+
+ if (sa == 0xff && m == 0xff)
+ {
+ *dst = pix1;
+ }
+ else
+ {
+ __m128i ms, md, ma, msa;
+
+ pix2 = *dst;
+ ma = expand_alpha_rev_1x128 (load_32_1x128 (m));
+ ms = unpack_32_1x128 (pix1);
+ md = unpack_32_1x128 (pix2);
+
+ msa = expand_alpha_rev_1x128 (load_32_1x128 (sa));
+
+ *dst = pack_1x128_32 (in_over_1x128 (&ms, &msa, &ma, &md));
+ }
+ }
+ else
+ {
+ BILINEAR_SKIP_ONE_PIXEL ();
+ }
+
+ w--;
+ dst++;
+ }
+
+ while (w >= 4)
+ {
+ __m128i xmm_src, xmm_src_lo, xmm_src_hi, xmm_srca_lo, xmm_srca_hi;
+ __m128i xmm_dst, xmm_dst_lo, xmm_dst_hi;
+ __m128i xmm_mask, xmm_mask_lo, xmm_mask_hi;
+
+ m = *(uint32_t*)mask;
+
+ if (m)
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix2);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix3);
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix4);
+
+ xmm_src = _mm_set_epi32 (pix4, pix3, pix2, pix1);
+
+ if (m == 0xffffffff && is_opaque (xmm_src))
+ {
+ save_128_aligned ((__m128i *)dst, xmm_src);
+ }
+ else
+ {
+ xmm_dst = load_128_aligned ((__m128i *)dst);
+
+ xmm_mask = _mm_unpacklo_epi16 (unpack_32_1x128 (m), _mm_setzero_si128());
+
+ unpack_128_2x128 (xmm_src, &xmm_src_lo, &xmm_src_hi);
+ unpack_128_2x128 (xmm_mask, &xmm_mask_lo, &xmm_mask_hi);
+ unpack_128_2x128 (xmm_dst, &xmm_dst_lo, &xmm_dst_hi);
+
+ expand_alpha_2x128 (xmm_src_lo, xmm_src_hi, &xmm_srca_lo, &xmm_srca_hi);
+ expand_alpha_rev_2x128 (xmm_mask_lo, xmm_mask_hi, &xmm_mask_lo, &xmm_mask_hi);
+
+ in_over_2x128 (&xmm_src_lo, &xmm_src_hi, &xmm_srca_lo, &xmm_srca_hi,
+ &xmm_mask_lo, &xmm_mask_hi, &xmm_dst_lo, &xmm_dst_hi);
+
+ save_128_aligned ((__m128i*)dst, pack_2x128_128 (xmm_dst_lo, xmm_dst_hi));
+ }
+ }
+ else
+ {
+ BILINEAR_SKIP_ONE_PIXEL ();
+ BILINEAR_SKIP_ONE_PIXEL ();
+ BILINEAR_SKIP_ONE_PIXEL ();
+ BILINEAR_SKIP_ONE_PIXEL ();
+ }
+
+ w -= 4;
+ dst += 4;
+ mask += 4;
+ }
+
+ while (w)
+ {
+ uint32_t sa;
+
+ m = (uint32_t) *mask++;
+
+ if (m)
+ {
+ BILINEAR_INTERPOLATE_ONE_PIXEL (pix1);
+ sa = pix1 >> 24;
+
+ if (sa == 0xff && m == 0xff)
+ {
+ *dst = pix1;
+ }
+ else
+ {
+ __m128i ms, md, ma, msa;
+
+ pix2 = *dst;
+ ma = expand_alpha_rev_1x128 (load_32_1x128 (m));
+ ms = unpack_32_1x128 (pix1);
+ md = unpack_32_1x128 (pix2);
+
+ msa = expand_alpha_rev_1x128 (load_32_1x128 (sa));
+
+ *dst = pack_1x128_32 (in_over_1x128 (&ms, &msa, &ma, &md));
+ }
+ }
+ else
+ {
+ BILINEAR_SKIP_ONE_PIXEL ();
+ }
+
+ w--;
+ dst++;
+ }
+}
+
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8_8888_cover_OVER,
+ scaled_bilinear_scanline_sse2_8888_8_8888_OVER,
+ uint32_t, uint8_t, uint32_t,
+ COVER, FLAG_HAVE_NON_SOLID_MASK)
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8_8888_pad_OVER,
+ scaled_bilinear_scanline_sse2_8888_8_8888_OVER,
+ uint32_t, uint8_t, uint32_t,
+ PAD, FLAG_HAVE_NON_SOLID_MASK)
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8_8888_none_OVER,
+ scaled_bilinear_scanline_sse2_8888_8_8888_OVER,
+ uint32_t, uint8_t, uint32_t,
+ NONE, FLAG_HAVE_NON_SOLID_MASK)
+FAST_BILINEAR_MAINLOOP_COMMON (sse2_8888_8_8888_normal_OVER,
+ scaled_bilinear_scanline_sse2_8888_8_8888_OVER,
+ uint32_t, uint8_t, uint32_t,
+ NORMAL, FLAG_HAVE_NON_SOLID_MASK)
static const pixman_fast_path_t sse2_fast_paths[] =
{
@@ -5505,6 +5765,16 @@ static const pixman_fast_path_t sse2_fast_paths[] =
SIMPLE_BILINEAR_FAST_PATH (SRC, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
SIMPLE_BILINEAR_FAST_PATH (SRC, x8r8g8b8, x8r8g8b8, sse2_8888_8888),
+ SIMPLE_BILINEAR_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8888),
+ SIMPLE_BILINEAR_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8888),
+ SIMPLE_BILINEAR_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8888),
+ SIMPLE_BILINEAR_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8888),
+
+ SIMPLE_BILINEAR_A8_MASK_FAST_PATH (OVER, a8r8g8b8, x8r8g8b8, sse2_8888_8_8888),
+ SIMPLE_BILINEAR_A8_MASK_FAST_PATH (OVER, a8b8g8r8, x8b8g8r8, sse2_8888_8_8888),
+ SIMPLE_BILINEAR_A8_MASK_FAST_PATH (OVER, a8r8g8b8, a8r8g8b8, sse2_8888_8_8888),
+ SIMPLE_BILINEAR_A8_MASK_FAST_PATH (OVER, a8b8g8r8, a8b8g8r8, sse2_8888_8_8888),
+
{ PIXMAN_OP_NONE },
};
diff --git a/pixman/pixman/pixman-utils.c b/pixman/pixman/pixman-utils.c
index 768ca1b89..d2af51a30 100644
--- a/pixman/pixman/pixman-utils.c
+++ b/pixman/pixman/pixman-utils.c
@@ -30,6 +30,118 @@
#include "pixman-private.h"
+#define N_CACHED_FAST_PATHS 8
+
+typedef struct
+{
+ struct
+ {
+ pixman_implementation_t * imp;
+ pixman_fast_path_t fast_path;
+ } cache [N_CACHED_FAST_PATHS];
+} cache_t;
+
+PIXMAN_DEFINE_THREAD_LOCAL (cache_t, fast_path_cache);
+
+pixman_bool_t
+_pixman_lookup_composite_function (pixman_implementation_t *toplevel,
+ pixman_op_t op,
+ pixman_format_code_t src_format,
+ uint32_t src_flags,
+ pixman_format_code_t mask_format,
+ uint32_t mask_flags,
+ pixman_format_code_t dest_format,
+ uint32_t dest_flags,
+ pixman_implementation_t **out_imp,
+ pixman_composite_func_t *out_func)
+{
+ pixman_implementation_t *imp;
+ cache_t *cache;
+ int i;
+
+ /* Check cache for fast paths */
+ cache = PIXMAN_GET_THREAD_LOCAL (fast_path_cache);
+
+ for (i = 0; i < N_CACHED_FAST_PATHS; ++i)
+ {
+ const pixman_fast_path_t *info = &(cache->cache[i].fast_path);
+
+ /* Note that we check for equality here, not whether
+ * the cached fast path matches. This is to prevent
+ * us from selecting an overly general fast path
+ * when a more specific one would work.
+ */
+ if (info->op == op &&
+ info->src_format == src_format &&
+ info->mask_format == mask_format &&
+ info->dest_format == dest_format &&
+ info->src_flags == src_flags &&
+ info->mask_flags == mask_flags &&
+ info->dest_flags == dest_flags &&
+ info->func)
+ {
+ *out_imp = cache->cache[i].imp;
+ *out_func = cache->cache[i].fast_path.func;
+
+ goto update_cache;
+ }
+ }
+
+ for (imp = toplevel; imp != NULL; imp = imp->delegate)
+ {
+ const pixman_fast_path_t *info = imp->fast_paths;
+
+ while (info->op != PIXMAN_OP_NONE)
+ {
+ if ((info->op == op || info->op == PIXMAN_OP_any) &&
+ /* Formats */
+ ((info->src_format == src_format) ||
+ (info->src_format == PIXMAN_any)) &&
+ ((info->mask_format == mask_format) ||
+ (info->mask_format == PIXMAN_any)) &&
+ ((info->dest_format == dest_format) ||
+ (info->dest_format == PIXMAN_any)) &&
+ /* Flags */
+ (info->src_flags & src_flags) == info->src_flags &&
+ (info->mask_flags & mask_flags) == info->mask_flags &&
+ (info->dest_flags & dest_flags) == info->dest_flags)
+ {
+ *out_imp = imp;
+ *out_func = info->func;
+
+ /* Set i to the last spot in the cache so that the
+ * move-to-front code below will work
+ */
+ i = N_CACHED_FAST_PATHS - 1;
+
+ goto update_cache;
+ }
+
+ ++info;
+ }
+ }
+ return FALSE;
+
+update_cache:
+ if (i)
+ {
+ while (i--)
+ cache->cache[i + 1] = cache->cache[i];
+
+ cache->cache[0].imp = *out_imp;
+ cache->cache[0].fast_path.op = op;
+ cache->cache[0].fast_path.src_format = src_format;
+ cache->cache[0].fast_path.src_flags = src_flags;
+ cache->cache[0].fast_path.mask_format = mask_format;
+ cache->cache[0].fast_path.mask_flags = mask_flags;
+ cache->cache[0].fast_path.dest_format = dest_format;
+ cache->cache[0].fast_path.dest_flags = dest_flags;
+ cache->cache[0].fast_path.func = *out_func;
+ }
+
+ return TRUE;
+}
+
pixman_bool_t
_pixman_multiply_overflows_size (size_t a, size_t b)
{
diff --git a/pixman/pixman/pixman.c b/pixman/pixman/pixman.c
index 87f5a933a..8fb53568f 100644
--- a/pixman/pixman/pixman.c
+++ b/pixman/pixman/pixman.c
@@ -335,117 +335,6 @@ pixman_compute_composite_region32 (pixman_region32_t * region,
return TRUE;
}
-#define N_CACHED_FAST_PATHS 8
-
-typedef struct
-{
- struct
- {
- pixman_implementation_t * imp;
- pixman_fast_path_t fast_path;
- } cache [N_CACHED_FAST_PATHS];
-} cache_t;
-
-PIXMAN_DEFINE_THREAD_LOCAL (cache_t, fast_path_cache);
-
-static force_inline pixman_bool_t
-lookup_composite_function (pixman_op_t op,
- pixman_format_code_t src_format,
- uint32_t src_flags,
- pixman_format_code_t mask_format,
- uint32_t mask_flags,
- pixman_format_code_t dest_format,
- uint32_t dest_flags,
- pixman_implementation_t **out_imp,
- pixman_composite_func_t *out_func)
-{
- pixman_implementation_t *imp;
- cache_t *cache;
- int i;
-
- /* Check cache for fast paths */
- cache = PIXMAN_GET_THREAD_LOCAL (fast_path_cache);
-
- for (i = 0; i < N_CACHED_FAST_PATHS; ++i)
- {
- const pixman_fast_path_t *info = &(cache->cache[i].fast_path);
-
- /* Note that we check for equality here, not whether
- * the cached fast path matches. This is to prevent
- * us from selecting an overly general fast path
- * when a more specific one would work.
- */
- if (info->op == op &&
- info->src_format == src_format &&
- info->mask_format == mask_format &&
- info->dest_format == dest_format &&
- info->src_flags == src_flags &&
- info->mask_flags == mask_flags &&
- info->dest_flags == dest_flags &&
- info->func)
- {
- *out_imp = cache->cache[i].imp;
- *out_func = cache->cache[i].fast_path.func;
-
- goto update_cache;
- }
- }
-
- for (imp = get_implementation (); imp != NULL; imp = imp->delegate)
- {
- const pixman_fast_path_t *info = imp->fast_paths;
-
- while (info->op != PIXMAN_OP_NONE)
- {
- if ((info->op == op || info->op == PIXMAN_OP_any) &&
- /* Formats */
- ((info->src_format == src_format) ||
- (info->src_format == PIXMAN_any)) &&
- ((info->mask_format == mask_format) ||
- (info->mask_format == PIXMAN_any)) &&
- ((info->dest_format == dest_format) ||
- (info->dest_format == PIXMAN_any)) &&
- /* Flags */
- (info->src_flags & src_flags) == info->src_flags &&
- (info->mask_flags & mask_flags) == info->mask_flags &&
- (info->dest_flags & dest_flags) == info->dest_flags)
- {
- *out_imp = imp;
- *out_func = info->func;
-
- /* Set i to the last spot in the cache so that the
- * move-to-front code below will work
- */
- i = N_CACHED_FAST_PATHS - 1;
-
- goto update_cache;
- }
-
- ++info;
- }
- }
- return FALSE;
-
-update_cache:
- if (i)
- {
- while (i--)
- cache->cache[i + 1] = cache->cache[i];
-
- cache->cache[0].imp = *out_imp;
- cache->cache[0].fast_path.op = op;
- cache->cache[0].fast_path.src_format = src_format;
- cache->cache[0].fast_path.src_flags = src_flags;
- cache->cache[0].fast_path.mask_format = mask_format;
- cache->cache[0].fast_path.mask_flags = mask_flags;
- cache->cache[0].fast_path.dest_format = dest_format;
- cache->cache[0].fast_path.dest_flags = dest_flags;
- cache->cache[0].fast_path.func = *out_func;
- }
-
- return TRUE;
-}
-
typedef struct
{
pixman_fixed_48_16_t x1;
@@ -790,11 +679,10 @@ pixman_image_composite32 (pixman_op_t op,
*/
op = optimize_operator (op, src_flags, mask_flags, dest_flags);
- if (lookup_composite_function (op,
- src_format, src_flags,
- mask_format, mask_flags,
- dest_format, dest_flags,
- &imp, &func))
+ if (_pixman_lookup_composite_function (
+ get_implementation (), op,
+ src_format, src_flags, mask_format, mask_flags, dest_format, dest_flags,
+ &imp, &func))
{
pixman_composite_info_t info;
const pixman_box32_t *pbox;
@@ -804,6 +692,9 @@ pixman_image_composite32 (pixman_op_t op,
info.src_image = src;
info.mask_image = mask;
info.dest_image = dest;
+ info.src_flags = src_flags;
+ info.mask_flags = mask_flags;
+ info.dest_flags = dest_flags;
pbox = pixman_region32_rectangles (&region, &n);
diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in
index 4ee879bb5..6814a6b72 100644
--- a/xorg-server/xkeyboard-config/rules/base.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.xml.in
@@ -194,14 +194,14 @@
<model>
<configItem>
<name>btc9019u</name>
- <_description>BTC 9019U</_description>
+ <_description>BTC 9019U</_description>
<vendor>BTC</vendor>
</configItem>
</model>
<model>
<configItem>
<name>btc9116u</name>
- <_description>BTC 9116U Mini Wireless Internet and Gaming</_description>
+ <_description>BTC 9116U Mini Wireless Internet and Gaming</_description>
</configItem>
</model>
<model>
@@ -921,84 +921,84 @@
<configItem>
<name>sk1300</name>
<_description>SK-1300</_description>
- <vendor>NEC</vendor>
+ <vendor>NEC</vendor>
</configItem>
</model>
<model>
<configItem>
<name>sk2500</name>
<_description>SK-2500</_description>
- <vendor>NEC</vendor>
+ <vendor>NEC</vendor>
</configItem>
</model>
<model>
<configItem>
<name>sk6200</name>
<_description>SK-6200</_description>
- <vendor>NEC</vendor>
+ <vendor>NEC</vendor>
</configItem>
</model>
<model>
<configItem>
<name>sk7100</name>
<_description>SK-7100</_description>
- <vendor>NEC</vendor>
+ <vendor>NEC</vendor>
</configItem>
</model>
<model>
<configItem>
<name>sp_inet</name>
<_description>Super Power Multimedia Keyboard</_description>
- <vendor>Generic</vendor>
+ <vendor>Generic</vendor>
</configItem>
</model>
<model>
<configItem>
<name>sven</name>
<_description>SVEN Ergonomic 2500</_description>
- <vendor>SVEN</vendor>
+ <vendor>SVEN</vendor>
</configItem>
</model>
<model>
<configItem>
<name>sven303</name>
<_description>SVEN Slim 303</_description>
- <vendor>SVEN</vendor>
+ <vendor>SVEN</vendor>
</configItem>
</model>
<model>
<configItem>
<name>symplon</name>
<_description>Symplon PaceBook (tablet PC)</_description>
- <vendor>Symplon</vendor>
+ <vendor>Symplon</vendor>
</configItem>
</model>
<model>
<configItem>
<name>toshiba_s3000</name>
<_description>Toshiba Satellite S3000</_description>
- <vendor>Toshiba</vendor>
+ <vendor>Toshiba</vendor>
</configItem>
</model>
<model>
<configItem>
<name>trust</name>
<_description>Trust Wireless Keyboard Classic</_description>
- <vendor>Trust</vendor>
+ <vendor>Trust</vendor>
</configItem>
</model>
<model>
<configItem>
<name>trustda</name>
<_description>Trust Direct Access Keyboard</_description>
- <vendor>Trust</vendor>
+ <vendor>Trust</vendor>
</configItem>
</model>
<model>
<configItem>
<name>trust_slimline</name>
<_description>Trust Slimline</_description>
- <vendor>Trust</vendor>
+ <vendor>Trust</vendor>
</configItem>
</model>
<model>
@@ -1040,161 +1040,161 @@
<configItem>
<name>yahoo</name>
<_description>Yahoo! Internet Keyboard</_description>
- <vendor>Yahoo!</vendor>
+ <vendor>Yahoo!</vendor>
</configItem>
</model>
<model>
<configItem>
<name>macbook78</name>
<_description>MacBook/MacBook Pro</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>macbook79</name>
<_description>MacBook/MacBook Pro (Intl)</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>macintosh</name>
<_description>Macintosh</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>macintosh_old</name>
<_description>Macintosh Old</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>macintosh_hhk</name>
<_description>Happy Hacking Keyboard for Mac</_description>
- <vendor>Fujitsu</vendor>
+ <vendor>Fujitsu</vendor>
</configItem>
</model>
<model>
<configItem>
<name>acer_c300</name>
<_description>Acer C300</_description>
- <vendor>Acer</vendor>
+ <vendor>Acer</vendor>
</configItem>
</model>
<model>
<configItem>
<name>acer_ferrari4k</name>
<_description>Acer Ferrari 4000</_description>
- <vendor>Acer</vendor>
+ <vendor>Acer</vendor>
</configItem>
</model>
<model>
<configItem>
<name>acer_laptop</name>
<_description>Acer Laptop</_description>
- <vendor>Acer</vendor>
+ <vendor>Acer</vendor>
</configItem>
</model>
<model>
<configItem>
<name>asus_laptop</name>
<_description>Asus Laptop</_description>
- <vendor>Asus</vendor>
+ <vendor>Asus</vendor>
</configItem>
</model>
<model>
<configItem>
<name>apple</name>
<_description>Apple</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>apple_laptop</name>
<_description>Apple Laptop</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>applealu_ansi</name>
<_description>Apple Aluminium Keyboard (ANSI)</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>applealu_iso</name>
<_description>Apple Aluminium Keyboard (ISO)</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>applealu_jis</name>
<_description>Apple Aluminium Keyboard (JIS)</_description>
- <vendor>Apple</vendor>
+ <vendor>Apple</vendor>
</configItem>
</model>
<model>
<configItem>
<name>silvercrest</name>
<_description>SILVERCREST Multimedia Wireless Keyboard</_description>
- <vendor>Silvercrest</vendor>
+ <vendor>Silvercrest</vendor>
</configItem>
</model>
<model>
<configItem>
<name>emachines</name>
<_description>Laptop/notebook eMachines m68xx</_description>
- <vendor>eMachines</vendor>
+ <vendor>eMachines</vendor>
</configItem>
</model>
<model>
<configItem>
- <name>benqx</name>
- <_description>BenQ X-Touch</_description>
- <vendor>BenQ</vendor>
+ <name>benqx</name>
+ <_description>BenQ X-Touch</_description>
+ <vendor>BenQ</vendor>
</configItem>
</model>
<model>
<configItem>
- <name>benqx730</name>
- <_description>BenQ X-Touch 730</_description>
- <vendor>BenQ</vendor>
+ <name>benqx730</name>
+ <_description>BenQ X-Touch 730</_description>
+ <vendor>BenQ</vendor>
</configItem>
</model>
<model>
<configItem>
- <name>benqx800</name>
- <_description>BenQ X-Touch 800</_description>
- <vendor>BenQ</vendor>
+ <name>benqx800</name>
+ <_description>BenQ X-Touch 800</_description>
+ <vendor>BenQ</vendor>
</configItem>
</model>
<model>
<configItem>
- <name>hhk</name>
- <_description>Happy Hacking Keyboard</_description>
- <vendor>Fujitsu</vendor>
+ <name>hhk</name>
+ <_description>Happy Hacking Keyboard</_description>
+ <vendor>Fujitsu</vendor>
</configItem>
</model>
<model>
<configItem>
- <name>classmate</name>
- <_description>Classmate PC</_description>
- <vendor>Intel</vendor>
+ <name>classmate</name>
+ <_description>Classmate PC</_description>
+ <vendor>Intel</vendor>
</configItem>
</model>
<model>
<configItem>
- <name>olpc</name>
- <_description>OLPC</_description>
- <vendor>OLPC</vendor>
+ <name>olpc</name>
+ <_description>OLPC</_description>
+ <vendor>OLPC</vendor>
</configItem>
</model>
<model>
@@ -1244,6 +1244,7 @@
<layout>
<configItem>
<name>us</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (US)</_description>
<languageList>
@@ -1254,6 +1255,7 @@
<variant>
<configItem>
<name>chr</name>
+ <!-- Keyboard indicator for Cherokee layouts -->
<_shortDescription>chr</_shortDescription>
<_description>Cherokee</_description>
<languageList>
@@ -1330,6 +1332,7 @@
<variant>
<configItem>
<name>rus</name>
+ <!-- Keyboard indicator for Russian layouts -->
<_shortDescription>ru</_shortDescription>
<_description>Russian (US, phonetic)</_description>
<languageList>
@@ -1374,6 +1377,7 @@
<layout>
<configItem>
<name>ad</name>
+ <!-- Keyboard indicator for Catalan layouts -->
<_shortDescription>ca</_shortDescription>
<_description>Catalan</_description>
<languageList>
@@ -1385,6 +1389,7 @@
<layout>
<configItem>
<name>af</name>
+ <!-- Keyboard indicator for Afghani layouts -->
<_shortDescription>fa</_shortDescription>
<_description>Afghani</_description>
</configItem>
@@ -1392,6 +1397,7 @@
<variant>
<configItem>
<name>ps</name>
+ <!-- Keyboard indicator for Pashto layouts -->
<_shortDescription>ps</_shortDescription>
<_description>Pashto</_description>
<languageList>
@@ -1402,6 +1408,7 @@
<variant>
<configItem>
<name>uz</name>
+ <!-- Keyboard indicator for Uzbek layouts -->
<_shortDescription>uz</_shortDescription>
<_description>Uzbek (Afghanistan)</_description>
<languageList>
@@ -1412,6 +1419,7 @@
<variant>
<configItem>
<name>olpc-ps</name>
+ <!-- Keyboard indicator for Pashto layouts -->
<_shortDescription>ps</_shortDescription>
<_description>Pashto (Afghanistan, OLPC)</_description>
<languageList>
@@ -1422,6 +1430,7 @@
<variant>
<configItem>
<name>fa-olpc</name>
+ <!-- Keyboard indicator for Persian layouts -->
<_shortDescription>fa</_shortDescription>
<_description>Persian (Afghanistan, Dari OLPC)</_description>
</configItem>
@@ -1429,6 +1438,7 @@
<variant>
<configItem>
<name>uz-olpc</name>
+ <!-- Keyboard indicator for Uzbek layouts -->
<_shortDescription>uz</_shortDescription>
<_description>Uzbek (Afghanistan, OLPC)</_description>
<languageList>
@@ -1441,6 +1451,7 @@
<layout>
<configItem>
<name>ara</name>
+ <!-- Keyboard indicator for Arabic layouts -->
<_shortDescription>ar</_shortDescription>
<_description>Arabic</_description>
<countryList>
@@ -1510,6 +1521,7 @@
<layout>
<configItem>
<name>al</name>
+ <!-- Keyboard indicator for Albanian layouts -->
<_shortDescription>sq</_shortDescription>
<_description>Albanian</_description>
<languageList>
@@ -1521,6 +1533,7 @@
<layout>
<configItem>
<name>am</name>
+ <!-- Keyboard indicator for Armenian layouts -->
<_shortDescription>hy</_shortDescription>
<_description>Armenian</_description>
<languageList>
@@ -1563,6 +1576,7 @@
<layout>
<configItem>
<name>at</name>
+ <!-- Keyboard indicator for German layouts -->
<_shortDescription>de</_shortDescription>
<_description>German (Austria)</_description>
<languageList>
@@ -1593,6 +1607,7 @@
<layout>
<configItem>
<name>az</name>
+ <!-- Keyboard indicator for Azerbaijani layouts -->
<_shortDescription>az</_shortDescription>
<_description>Azerbaijani</_description>
<languageList>
@@ -1611,7 +1626,8 @@
<layout>
<configItem>
<name>by</name>
- <_shortDescription>be</_shortDescription>
+ <!-- Keyboard indicator for Belarusian layouts -->
+ <_shortDescription>by</_shortDescription>
<_description>Belarusian</_description>
<languageList>
<iso639Id>bel</iso639Id>
@@ -1635,6 +1651,7 @@
<layout>
<configItem>
<name>be</name>
+ <!-- Keyboard indicator for Belgian layouts -->
<_shortDescription>be</_shortDescription>
<_description>Belgian</_description>
<languageList><iso639Id>ger</iso639Id>
@@ -1689,6 +1706,7 @@
<layout>
<configItem>
<name>bd</name>
+ <!-- Keyboard indicator for Bengali layouts -->
<_shortDescription>bn</_shortDescription>
<_description>Bengali</_description>
<languageList>
@@ -1707,6 +1725,7 @@
<layout>
<configItem>
<name>in</name>
+ <!-- Keyboard indicator for Indian layouts -->
<_shortDescription>in</_shortDescription>
<_description>Indian</_description>
</configItem>
@@ -1714,6 +1733,7 @@
<variant>
<configItem>
<name>ben</name>
+ <!-- Keyboard indicator for Bengali layouts -->
<_shortDescription>bn</_shortDescription>
<_description>Bengali (India)</_description>
<languageList>
@@ -1724,6 +1744,7 @@
<variant>
<configItem>
<name>ben_probhat</name>
+ <!-- Keyboard indicator for Bengali layouts -->
<_shortDescription>bn</_shortDescription>
<_description>Bengali (India, Probhat)</_description>
<languageList>
@@ -1731,37 +1752,38 @@
</languageList>
</configItem>
</variant>
- <variant>
+ <variant>
<configItem>
<name>ben_baishakhi</name>
<_description>Bengali (India, Baishakhi)</_description>
- <languageList><iso639Id>ben</iso639Id></languageList>
+ <languageList><iso639Id>ben</iso639Id></languageList>
</configItem>
</variant>
- <variant>
+ <variant>
<configItem>
<name>ben_bornona</name>
<_description>Bengali (India, Bornona)</_description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
+ <languageList><iso639Id>ben</iso639Id></languageList>
+ </configItem>
</variant>
- <variant>
+ <variant>
<configItem>
<name>ben_gitanjali</name>
<_description>Bengali (India, Uni Gitanjali)</_description>
- <languageList><iso639Id>ben</iso639Id></languageList>
+ <languageList><iso639Id>ben</iso639Id></languageList>
</configItem>
</variant>
- <variant>
+ <variant>
<configItem>
<name>ben_inscript</name>
<_description>Bengali (India, Baishakhi Inscript)</_description>
- <languageList><iso639Id>ben</iso639Id></languageList>
+ <languageList><iso639Id>ben</iso639Id></languageList>
</configItem>
</variant>
<variant>
<configItem>
<name>guj</name>
+ <!-- Keyboard indicator for Gujarati layouts -->
<_shortDescription>gu</_shortDescription>
<_description>Gujarati</_description>
<languageList>
@@ -1772,6 +1794,7 @@
<variant>
<configItem>
<name>guru</name>
+ <!-- Keyboard indicator for Punjabi layouts -->
<_shortDescription>pa</_shortDescription>
<_description>Punjabi (Gurmukhi)</_description>
<languageList>
@@ -1782,6 +1805,7 @@
<variant>
<configItem>
<name>jhelum</name>
+ <!-- Keyboard indicator for Punjabi layouts -->
<_shortDescription>pa</_shortDescription>
<_description>Punjabi (Gurmukhi Jhelum)</_description>
<languageList>
@@ -1792,6 +1816,7 @@
<variant>
<configItem>
<name>kan</name>
+ <!-- Keyboard indicator for Kannada layouts -->
<_shortDescription>kn</_shortDescription>
<_description>Kannada</_description>
<languageList>
@@ -1802,6 +1827,7 @@
<variant>
<configItem>
<name>mal</name>
+ <!-- Keyboard indicator for Malayalam layouts -->
<_shortDescription>ml</_shortDescription>
<_description>Malayalam</_description>
<languageList>
@@ -1812,6 +1838,7 @@
<variant>
<configItem>
<name>mal_lalitha</name>
+ <!-- Keyboard indicator for Malayalam layouts -->
<_shortDescription>ml</_shortDescription>
<_description>Malayalam (Lalitha)</_description>
<languageList>
@@ -1822,6 +1849,7 @@
<variant>
<configItem>
<name>mal_enhanced</name>
+ <!-- Keyboard indicator for Malayalam layouts -->
<_shortDescription>ml</_shortDescription>
<_description>Malayalam (enhanced Inscript with Rupee Sign)</_description>
<languageList><iso639Id>mal</iso639Id></languageList>
@@ -1830,8 +1858,9 @@
<variant>
<configItem>
<name>ori</name>
+ <!-- Keyboard indicator for Oriya layouts -->
<_shortDescription>or</_shortDescription>
- <_description> Oriya</_description>
+ <_description>Oriya</_description>
<languageList>
<iso639Id>ori</iso639Id>
</languageList>
@@ -1840,6 +1869,7 @@
<variant>
<configItem>
<name>tam_unicode</name>
+ <!-- Keyboard indicator for Tamil layouts -->
<_shortDescription>ta</_shortDescription>
<_description>Tamil (Unicode)</_description>
<languageList>
@@ -1850,6 +1880,7 @@
<variant>
<configItem>
<name>tam_keyboard_with_numerals</name>
+ <!-- Keyboard indicator for Tamil layouts -->
<_shortDescription>ta</_shortDescription>
<_description>Tamil (keyboard with numerals)</_description>
<languageList>
@@ -1860,6 +1891,7 @@
<variant>
<configItem>
<name>tam_TAB</name>
+ <!-- Keyboard indicator for Tamil layouts -->
<_shortDescription>ta</_shortDescription>
<_description>Tamil (TAB typewriter)</_description>
<languageList>
@@ -1870,6 +1902,7 @@
<variant>
<configItem>
<name>tam_TSCII</name>
+ <!-- Keyboard indicator for Tamil layouts -->
<_shortDescription>ta</_shortDescription>
<_description>Tamil (TSCII typewriter)</_description>
<languageList>
@@ -1880,6 +1913,7 @@
<variant>
<configItem>
<name>tam</name>
+ <!-- Keyboard indicator for Tamil layouts -->
<_shortDescription>ta</_shortDescription>
<_description>Tamil</_description>
<languageList>
@@ -1890,6 +1924,7 @@
<variant>
<configItem>
<name>tel</name>
+ <!-- Keyboard indicator for Telugu layouts -->
<_shortDescription>te</_shortDescription>
<_description>Telugu</_description>
<languageList>
@@ -1900,6 +1935,7 @@
<variant>
<configItem>
<name>urd-phonetic</name>
+ <!-- Keyboard indicator for Urdu layouts -->
<_shortDescription>ur</_shortDescription>
<_description>Urdu (phonetic)</_description>
<languageList>
@@ -1910,6 +1946,7 @@
<variant>
<configItem>
<name>urd-phonetic3</name>
+ <!-- Keyboard indicator for Urdu layouts -->
<_shortDescription>ur</_shortDescription>
<_description>Urdu (alternative phonetic)</_description>
<languageList>
@@ -1920,6 +1957,7 @@
<variant>
<configItem>
<name>urd-winkeys</name>
+ <!-- Keyboard indicator for Urdu layouts -->
<_shortDescription>ur</_shortDescription>
<_description>Urdu (WinKeys)</_description>
<languageList>
@@ -1930,6 +1968,7 @@
<variant>
<configItem>
<name>bolnagri</name>
+ <!-- Keyboard indicator for Hindi layouts -->
<_shortDescription>hi</_shortDescription>
<_description>Hindi (Bolnagri)</_description>
<languageList>
@@ -1940,6 +1979,7 @@
<variant>
<configItem>
<name>hin-wx</name>
+ <!-- Keyboard indicator for Hindi layouts -->
<_shortDescription>hi</_shortDescription>
<_description>Hindi (Wx)</_description>
<languageList>
@@ -1950,6 +1990,7 @@
<variant>
<configItem>
<name>eng</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (India, with RupeeSign)</_description>
<languageList>
@@ -1962,6 +2003,7 @@
<layout>
<configItem>
<name>ba</name>
+ <!-- Keyboard indicator for Bosnian layouts -->
<_shortDescription>bs</_shortDescription>
<_description>Bosnian</_description>
<languageList>
@@ -1998,6 +2040,7 @@
<layout>
<configItem>
<name>br</name>
+ <!-- Keyboard indicator for Portuguese layouts -->
<_shortDescription>pt</_shortDescription>
<_description>Portuguese (Brazil)</_description>
<languageList>
@@ -2043,6 +2086,7 @@
<layout>
<configItem>
<name>bg</name>
+ <!-- Keyboard indicator for Bulgarian layouts -->
<_shortDescription>bg</_shortDescription>
<_description>Bulgarian</_description>
<languageList>
@@ -2067,6 +2111,7 @@
<layout>
<configItem>
<name>ma</name>
+ <!-- Keyboard indicator for Arabic layouts -->
<_shortDescription>ar</_shortDescription>
<_description>Arabic (Morocco)</_description>
</configItem>
@@ -2074,6 +2119,7 @@
<variant>
<configItem>
<name>french</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Morocco)</_description>
<languageList>
@@ -2084,6 +2130,7 @@
<variant>
<configItem>
<name>tifinagh</name>
+ <!-- Keyboard indicator for Berber layouts -->
<_shortDescription>ber</_shortDescription>
<_description>Berber (Morocco, Tifinagh)</_description>
<languageList>
@@ -2094,6 +2141,7 @@
<variant>
<configItem>
<name>tifinagh-alt</name>
+ <!-- Keyboard indicator for Berber layouts -->
<_shortDescription>ber</_shortDescription>
<_description>Berber (Morocco, Tifinagh alternative)</_description>
<languageList>
@@ -2104,6 +2152,7 @@
<variant>
<configItem>
<name>tifinagh-alt-phonetic</name>
+ <!-- Keyboard indicator for Berber layouts -->
<_shortDescription>ber</_shortDescription>
<_description>Berber (Morocco, Tifinagh alternative phonetic)</_description>
<languageList>
@@ -2114,6 +2163,7 @@
<variant>
<configItem>
<name>tifinagh-extended</name>
+ <!-- Keyboard indicator for Berber layouts -->
<_shortDescription>ber</_shortDescription>
<_description>Berber (Morocco, Tifinagh extended)</_description>
<languageList>
@@ -2124,6 +2174,7 @@
<variant>
<configItem>
<name>tifinagh-phonetic</name>
+ <!-- Keyboard indicator for Berber layouts -->
<_shortDescription>ber</_shortDescription>
<_description>Berber (Morocco, Tifinagh phonetic)</_description>
<languageList>
@@ -2134,6 +2185,7 @@
<variant>
<configItem>
<name>tifinagh-extended-phonetic</name>
+ <!-- Keyboard indicator for Berber layouts -->
<_shortDescription>ber</_shortDescription>
<_description>Berber (Morocco, Tifinagh extended phonetic)</_description>
<languageList>
@@ -2146,6 +2198,7 @@
<layout>
<configItem>
<name>cm</name>
+ <!-- Keyboard indicator for Cameroon layouts -->
<_shortDescription>cm</_shortDescription>
<_description>English (Cameroon)</_description>
<languageList><iso639Id>eng</iso639Id></languageList>
@@ -2243,6 +2296,7 @@
<layout>
<configItem>
<name>mm</name>
+ <!-- Keyboard indicator for Burmese layouts -->
<_shortDescription>my</_shortDescription>
<_description>Burmese</_description>
<languageList>
@@ -2254,6 +2308,7 @@
<layout>
<configItem>
<name>ca</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Canada)</_description>
<languageList>
@@ -2264,6 +2319,7 @@
<variant>
<configItem>
<name>fr-dvorak</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Canada, Dvorak)</_description>
</configItem>
@@ -2271,6 +2327,7 @@
<variant>
<configItem>
<name>fr-legacy</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Canada, legacy)</_description>
</configItem>
@@ -2296,6 +2353,7 @@
<variant>
<configItem>
<name>ike</name>
+ <!-- Keyboard indicator for Inuktikut layouts -->
<_shortDescription>ike</_shortDescription>
<_description>Inuktitut</_description>
<languageList>
@@ -2306,6 +2364,7 @@
<variant>
<configItem>
<name>eng</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (Canada)</_description>
<languageList>
@@ -2318,6 +2377,7 @@
<layout>
<configItem>
<name>cd</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Democratic Republic of the Congo)</_description>
<languageList>
@@ -2329,6 +2389,7 @@
<layout>
<configItem>
<name>cn</name>
+ <!-- Keyboard indicator for Chinese layouts -->
<_shortDescription>zh</_shortDescription>
<_description>Chinese</_description>
<languageList>
@@ -2368,6 +2429,7 @@
<layout>
<configItem>
<name>hr</name>
+ <!-- Keyboard indicator for Croatian layouts -->
<_shortDescription>hr</_shortDescription>
<_description>Croatian</_description>
<languageList>
@@ -2404,6 +2466,7 @@
<layout>
<configItem>
<name>cz</name>
+ <!-- Keyboard indicator for Chech layouts -->
<_shortDescription>cs</_shortDescription>
<_description>Czech</_description>
<languageList>
@@ -2446,6 +2509,7 @@
<layout>
<configItem>
<name>dk</name>
+ <!-- Keyboard indicator for Danish layouts -->
<_shortDescription>da</_shortDescription>
<_description>Danish</_description>
<languageList>
@@ -2482,6 +2546,7 @@
<layout>
<configItem>
<name>nl</name>
+ <!-- Keyboard indicator for Dutch layouts -->
<_shortDescription>nl</_shortDescription>
<_description>Dutch</_description>
<languageList>
@@ -2512,6 +2577,7 @@
<layout>
<configItem>
<name>bt</name>
+ <!-- Keyboard indicator for Dzongkha layouts -->
<_shortDescription>dz</_shortDescription>
<_description>Dzongkha</_description>
<languageList>
@@ -2522,6 +2588,7 @@
<layout>
<configItem>
<name>ee</name>
+ <!-- Keyboard indicator for Estonian layouts -->
<_shortDescription>et</_shortDescription>
<_description>Estonian</_description>
<languageList>
@@ -2552,6 +2619,7 @@
<layout>
<configItem>
<name>ir</name>
+ <!-- Keyboard indicator for Persian layouts -->
<_shortDescription>fa</_shortDescription>
<_description>Persian</_description>
<languageList>
@@ -2568,6 +2636,7 @@
<variant>
<configItem>
<name>ku</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iran, Latin Q)</_description>
<languageList>
@@ -2578,6 +2647,7 @@
<variant>
<configItem>
<name>ku_f</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iran, F)</_description>
<languageList>
@@ -2588,6 +2658,7 @@
<variant>
<configItem>
<name>ku_alt</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iran, Latin Alt-Q)</_description>
<languageList>
@@ -2598,6 +2669,7 @@
<variant>
<configItem>
<name>ku_ara</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iran, Arabic-Latin)</_description>
<languageList>
@@ -2610,6 +2682,7 @@
<layout>
<configItem>
<name>iq</name>
+ <!-- Keyboard indicator for Iraqi layouts -->
<_shortDescription>ar</_shortDescription>
<_description>Iraqi</_description>
<languageList><iso639Id>ara</iso639Id>
@@ -2619,6 +2692,7 @@
<variant>
<configItem>
<name>ku</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iraq, Latin Q)</_description>
<languageList>
@@ -2629,6 +2703,7 @@
<variant>
<configItem>
<name>ku_f</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iraq, F)</_description>
<languageList>
@@ -2639,6 +2714,7 @@
<variant>
<configItem>
<name>ku_alt</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iraq, Latin Alt-Q)</_description>
<languageList>
@@ -2649,6 +2725,7 @@
<variant>
<configItem>
<name>ku_ara</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Iraq, Arabic-Latin)</_description>
<languageList>
@@ -2661,6 +2738,7 @@
<layout>
<configItem>
<name>fo</name>
+ <!-- Keyboard indicator for Faroese layouts -->
<_shortDescription>fo</_shortDescription>
<_description>Faroese</_description>
<languageList>
@@ -2679,6 +2757,7 @@
<layout>
<configItem>
<name>fi</name>
+ <!-- Keyboard indicator for Finnish layouts -->
<_shortDescription>fi</_shortDescription>
<_description>Finnish</_description>
<languageList>
@@ -2701,7 +2780,7 @@
<variant>
<configItem>
<name>smi</name>
- <_description>Northern Saami (Finland)</_description>
+ <_description>Northern Saami (Finland)</_description>
<languageList><iso639Id>sme</iso639Id></languageList>
</configItem>
</variant>
@@ -2716,6 +2795,7 @@
<layout>
<configItem>
<name>fr</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French</_description>
<languageList>
@@ -2830,6 +2910,7 @@
<layout>
<configItem>
<name>gh</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (Ghana)</_description>
<languageList>
@@ -2846,6 +2927,7 @@
<variant>
<configItem>
<name>akan</name>
+ <!-- Keyboard indicator for Akan layouts -->
<_shortDescription>ak</_shortDescription>
<_description>Akan</_description>
<languageList>
@@ -2856,6 +2938,7 @@
<variant>
<configItem>
<name>ewe</name>
+ <!-- Keyboard indicator for Ewe layouts -->
<_shortDescription>ee</_shortDescription>
<_description>Ewe</_description>
<languageList>
@@ -2866,6 +2949,7 @@
<variant>
<configItem>
<name>fula</name>
+ <!-- Keyboard indicator for Fula layouts -->
<_shortDescription>ff</_shortDescription>
<_description>Fula</_description>
<languageList>
@@ -2876,6 +2960,7 @@
<variant>
<configItem>
<name>ga</name>
+ <!-- Keyboard indicator for Ga layouts -->
<_shortDescription>gaa</_shortDescription>
<_description>Ga</_description>
<languageList>
@@ -2886,6 +2971,7 @@
<variant>
<configItem>
<name>hausa</name>
+ <!-- Keyboard indicator for Hausa layouts -->
<_shortDescription>ha</_shortDescription>
<_description>Hausa</_description>
<languageList>
@@ -2896,6 +2982,7 @@
<variant>
<configItem>
<name>avn</name>
+ <!-- Keyboard indicator for Avatime layouts -->
<_shortDescription>avn</_shortDescription>
<_description>Avatime</_description>
<languageList>
@@ -2914,6 +3001,7 @@
<layout>
<configItem>
<name>gn</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Guinea)</_description>
<languageList>
@@ -2925,6 +3013,7 @@
<layout>
<configItem>
<name>ge</name>
+ <!-- Keyboard indicator for Georgian layouts -->
<_shortDescription>ka</_shortDescription>
<_description>Georgian</_description>
<languageList>
@@ -2947,6 +3036,7 @@
<variant>
<configItem>
<name>ru</name>
+ <!-- Keyboard indicator for Russian layouts -->
<_shortDescription>ru</_shortDescription>
<_description>Russian (Georgia)</_description>
<languageList>
@@ -2968,6 +3058,7 @@
<layout>
<configItem>
<name>de</name>
+ <!-- Keyboard indicator for German layouts -->
<_shortDescription>de</_shortDescription>
<_description>German</_description>
<languageList>
@@ -3069,6 +3160,7 @@
<layout>
<configItem>
<name>gr</name>
+ <!-- Keyboard indicator for Greek layouts -->
<_shortDescription>gr</_shortDescription>
<_description>Greek</_description>
<languageList>
@@ -3105,6 +3197,7 @@
<layout>
<configItem>
<name>hu</name>
+ <!-- Keyboard indicator for Hungarian layouts -->
<_shortDescription>hu</_shortDescription>
<_description>Hungarian</_description>
<languageList>
@@ -3231,6 +3324,7 @@
<layout>
<configItem>
<name>is</name>
+ <!-- Keyboard indicator for Icelandic layouts -->
<_shortDescription>is</_shortDescription>
<_description>Icelandic</_description>
<languageList>
@@ -3267,6 +3361,7 @@
<layout>
<configItem>
<name>il</name>
+ <!-- Keyboard indicator for Hebrew layouts -->
<_shortDescription>he</_shortDescription>
<_description>Hebrew</_description>
<languageList>
@@ -3297,6 +3392,7 @@
<layout>
<configItem>
<name>it</name>
+ <!-- Keyboard indicator for Italian layouts -->
<_shortDescription>it</_shortDescription>
<_description>Italian</_description>
<languageList>
@@ -3336,6 +3432,7 @@
<layout>
<configItem>
<name>jp</name>
+ <!-- Keyboard indicator for Japanese layouts -->
<_shortDescription>ja</_shortDescription>
<_description>Japanese</_description>
<languageList>
@@ -3372,6 +3469,7 @@
<layout>
<configItem>
<name>kg</name>
+ <!-- Keyboard indicator for Kyrgyz layouts -->
<_shortDescription>ki</_shortDescription>
<_description>Kyrgyz</_description>
<languageList>
@@ -3390,6 +3488,7 @@
<layout>
<configItem>
<name>kh</name>
+ <!-- Keyboard indicator for Khmer layouts -->
<_shortDescription>km</_shortDescription>
<_description>Khmer (Cambodia)</_description>
<languageList>
@@ -3401,6 +3500,7 @@
<layout>
<configItem>
<name>kz</name>
+ <!-- Keyboard indicator for Kazakh layouts -->
<_shortDescription>kk</_shortDescription>
<_description>Kazakh</_description>
<languageList>
@@ -3411,6 +3511,7 @@
<variant>
<configItem>
<name>ruskaz</name>
+ <!-- Keyboard indicator for Russian layouts -->
<_shortDescription>ru</_shortDescription>
<_description>Russian (Kazakhstan, with Kazakh)</_description>
<languageList><iso639Id>kaz</iso639Id>
@@ -3430,6 +3531,7 @@
<layout>
<configItem>
<name>la</name>
+ <!-- Keyboard indicator for Lao layouts -->
<_shortDescription>lo</_shortDescription>
<_description>Lao</_description>
<languageList>
@@ -3450,6 +3552,7 @@
<layout>
<configItem>
<name>latam</name>
+ <!-- Keyboard indicator for Spanish layouts -->
<_shortDescription>es</_shortDescription>
<_description>Spanish (Latin American)</_description>
<countryList>
@@ -3503,6 +3606,7 @@
<layout>
<configItem>
<name>lt</name>
+ <!-- Keyboard indicator for Lithuanian layouts -->
<_shortDescription>lt</_shortDescription>
<_description>Lithuanian</_description>
<languageList>
@@ -3545,6 +3649,7 @@
<layout>
<configItem>
<name>lv</name>
+ <!-- Keyboard indicator for Latvian layouts -->
<_shortDescription>lv</_shortDescription>
<_description>Latvian</_description>
<languageList>
@@ -3593,6 +3698,7 @@
<layout>
<configItem>
<name>mao</name>
+ <!-- Keyboard indicator for Maori layouts -->
<_shortDescription>mi</_shortDescription>
<_description>Maori</_description>
<languageList>
@@ -3604,6 +3710,7 @@
<layout>
<configItem>
<name>me</name>
+ <!-- Keyboard indicator for Montenegrin layouts -->
<_shortDescription>sr</_shortDescription>
<_description>Montenegrin</_description>
<languageList>
@@ -3658,6 +3765,7 @@
<layout>
<configItem>
<name>mk</name>
+ <!-- Keyboard indicator for Macedonian layouts -->
<_shortDescription>mk</_shortDescription>
<_description>Macedonian</_description>
<languageList>
@@ -3676,6 +3784,7 @@
<layout>
<configItem>
<name>mt</name>
+ <!-- Keyboard indicator for Maltese layouts -->
<_shortDescription>mt</_shortDescription>
<_description>Maltese</_description>
<languageList>
@@ -3694,6 +3803,7 @@
<layout>
<configItem>
<name>mn</name>
+ <!-- Keyboard indicator for Mongolian layouts -->
<_shortDescription>mn</_shortDescription>
<_description>Mongolian</_description>
<languageList>
@@ -3705,6 +3815,7 @@
<layout>
<configItem>
<name>no</name>
+ <!-- Keyboard indicator for Norwegian layouts -->
<_shortDescription>no</_shortDescription>
<_description>Norwegian</_description>
<languageList>
@@ -3759,6 +3870,7 @@
<layout>
<configItem>
<name>pl</name>
+ <!-- Keyboard indicator for Polish layouts -->
<_shortDescription>pl</_shortDescription>
<_description>Polish</_description>
<languageList>
@@ -3802,6 +3914,7 @@
<variant>
<configItem>
<name>ru_phonetic_dvorak</name>
+ <!-- Keyboard indicator for Russian layouts -->
<_shortDescription>ru</_shortDescription>
<_description>Russian (Poland, phonetic Dvorak)</_description>
<languageList>
@@ -3820,6 +3933,7 @@
<layout>
<configItem>
<name>pt</name>
+ <!-- Keyboard indicator for Portuguese layouts -->
<_shortDescription>pt</_shortDescription>
<_description>Portuguese</_description>
<languageList>
@@ -3883,6 +3997,7 @@
<layout>
<configItem>
<name>ro</name>
+ <!-- Keyboard indicator for Romanian layouts -->
<_shortDescription>ro</_shortDescription>
<_description>Romanian</_description>
<languageList>
@@ -3919,6 +4034,7 @@
<layout>
<configItem>
<name>ru</name>
+ <!-- Keyboard indicator for Russian layouts -->
<_shortDescription>ru</_shortDescription>
<_description>Russian</_description>
<languageList>
@@ -4074,6 +4190,7 @@
<layout>
<configItem>
<name>rs</name>
+ <!-- Keyboard indicator for Serbian layouts -->
<_shortDescription>sr</_shortDescription>
<_description>Serbian</_description>
<languageList>
@@ -4137,6 +4254,7 @@
<layout>
<configItem>
<name>si</name>
+ <!-- Keyboard indicator for Slovenian layouts -->
<_shortDescription>sl</_shortDescription>
<_description>Slovenian</_description>
<languageList>
@@ -4161,6 +4279,7 @@
<layout>
<configItem>
<name>sk</name>
+ <!-- Keyboard indicator for Slovak layouts -->
<_shortDescription>sk</_shortDescription>
<_description>Slovak</_description>
<languageList>
@@ -4191,6 +4310,7 @@
<layout>
<configItem>
<name>es</name>
+ <!-- Keyboard indicator for Spanish layouts -->
<_shortDescription>es</_shortDescription>
<_description>Spanish</_description>
<languageList>
@@ -4251,6 +4371,7 @@
<layout>
<configItem>
<name>se</name>
+ <!-- Keyboard indicator for Swedish layouts -->
<_shortDescription>sv</_shortDescription>
<_description>Swedish</_description>
<languageList>
@@ -4273,6 +4394,7 @@
<variant>
<configItem>
<name>rus</name>
+ <!-- Keyboard indicator for Russian layouts -->
<_shortDescription>ru</_shortDescription>
<_description>Russian (Sweden, phonetic)</_description>
<languageList>
@@ -4283,6 +4405,7 @@
<variant>
<configItem>
<name>rus_nodeadkeys</name>
+ <!-- Keyboard indicator for Russian layouts -->
<_shortDescription>ru</_shortDescription>
<_description>Russian (Sweden, phonetic, eliminate dead keys)</_description>
<languageList>
@@ -4323,6 +4446,7 @@
<layout>
<configItem>
<name>ch</name>
+ <!-- Keyboard indicator for German layouts -->
<_shortDescription>de</_shortDescription>
<_description>German (Switzerland)</_description>
<languageList><iso639Id>ger</iso639Id>
@@ -4338,6 +4462,7 @@
<variant>
<configItem>
<name>de_nodeadkeys</name>
+ <!-- Keyboard indicator for German layouts -->
<_shortDescription>de</_shortDescription>
<_description>German (Switzerland, eliminate dead keys)</_description>
</configItem>
@@ -4345,6 +4470,7 @@
<variant>
<configItem>
<name>de_sundeadkeys</name>
+ <!-- Keyboard indicator for German layouts -->
<_shortDescription>de</_shortDescription>
<_description>German (Switzerland, Sun dead keys)</_description>
</configItem>
@@ -4352,6 +4478,7 @@
<variant>
<configItem>
<name>fr</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Switzerland)</_description>
<languageList>
@@ -4362,6 +4489,7 @@
<variant>
<configItem>
<name>fr_nodeadkeys</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Switzerland, eliminate dead keys)</_description>
<languageList>
@@ -4372,6 +4500,7 @@
<variant>
<configItem>
<name>fr_sundeadkeys</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Switzerland, Sun dead keys)</_description>
<languageList>
@@ -4382,6 +4511,7 @@
<variant>
<configItem>
<name>fr_mac</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Switzerland, Macintosh)</_description>
<languageList>
@@ -4392,6 +4522,7 @@
<variant>
<configItem>
<name>de_mac</name>
+ <!-- Keyboard indicator for German layouts -->
<_shortDescription>de</_shortDescription>
<_description>German (Switzerland, Macintosh)</_description>
</configItem>
@@ -4401,6 +4532,7 @@
<layout>
<configItem>
<name>sy</name>
+ <!-- Keyboard indicator for Arabic layouts -->
<_shortDescription>ar</_shortDescription>
<_description>Arabic (Syria)</_description>
<languageList>
@@ -4411,6 +4543,7 @@
<variant>
<configItem>
<name>syc</name>
+ <!-- Keyboard indicator for Syriac layouts -->
<_shortDescription>syc</_shortDescription>
<_description>Syriac</_description>
</configItem>
@@ -4418,6 +4551,7 @@
<variant>
<configItem>
<name>syc_phonetic</name>
+ <!-- Keyboard indicator for Syriac layouts -->
<_shortDescription>syc</_shortDescription>
<_description>Syriac (phonetic)</_description>
</configItem>
@@ -4425,6 +4559,7 @@
<variant>
<configItem>
<name>ku</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Syria, Latin Q)</_description>
<languageList>
@@ -4435,6 +4570,7 @@
<variant>
<configItem>
<name>ku_f</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Syria, F)</_description>
<languageList>
@@ -4445,6 +4581,7 @@
<variant>
<configItem>
<name>ku_alt</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Syria, Latin Alt-Q)</_description>
<languageList>
@@ -4457,6 +4594,7 @@
<layout>
<configItem>
<name>tj</name>
+ <!-- Keyboard indicator for Tajik layouts -->
<_shortDescription>tg</_shortDescription>
<_description>Tajik</_description>
<languageList>
@@ -4475,6 +4613,7 @@
<layout>
<configItem>
<name>lk</name>
+ <!-- Keyboard indicator for Sinhala layouts -->
<_shortDescription>si</_shortDescription>
<_description>Sinhala (phonetic)</_description>
<languageList>
@@ -4485,6 +4624,7 @@
<variant>
<configItem>
<name>tam_unicode</name>
+ <!-- Keyboard indicator for Tamil layouts -->
<_shortDescription>ta</_shortDescription>
<_description>Tamil (Sri Lanka, Unicode)</_description>
<languageList>
@@ -4506,6 +4646,7 @@
<layout>
<configItem>
<name>th</name>
+ <!-- Keyboard indicator for Thai layouts -->
<_shortDescription>th</_shortDescription>
<_description>Thai</_description>
<languageList>
@@ -4530,6 +4671,7 @@
<layout>
<configItem>
<name>tr</name>
+ <!-- Keyboard indicator for Turkish layouts -->
<_shortDescription>tr</_shortDescription>
<_description>Turkish</_description>
<languageList>
@@ -4558,6 +4700,7 @@
<variant>
<configItem>
<name>ku</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Turkey, Latin Q)</_description>
<languageList>
@@ -4568,6 +4711,7 @@
<variant>
<configItem>
<name>ku_f</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Turkey, F)</_description>
<languageList>
@@ -4578,6 +4722,7 @@
<variant>
<configItem>
<name>ku_alt</name>
+ <!-- Keyboard indicator for Kurdish layouts -->
<_shortDescription>ku</_shortDescription>
<_description>Kurdish (Turkey, Latin Alt-Q)</_description>
<languageList>
@@ -4594,6 +4739,7 @@
<variant>
<configItem>
<name>crh</name>
+ <!-- Keyboard indicator for Crimean Tatar layouts -->
<_shortDescription>crh</_shortDescription>
<_description>Crimean Tatar (Turkish Q)</_description>
<languageList>
@@ -4604,6 +4750,7 @@
<variant>
<configItem>
<name>crh_f</name>
+ <!-- Keyboard indicator for Crimean Tatar layouts -->
<_shortDescription>crh</_shortDescription>
<_description>Crimean Tatar (Turkish F)</_description>
<languageList>
@@ -4614,6 +4761,7 @@
<variant>
<configItem>
<name>crh_alt</name>
+ <!-- Keyboard indicator for Crimean Tatar layouts -->
<_shortDescription>crh</_shortDescription>
<_description>Crimean Tatar (Turkish Alt-Q)</_description>
<languageList>
@@ -4626,6 +4774,7 @@
<layout>
<configItem>
<name>tw</name>
+ <!-- Keyboard indicator for Taiwanese layouts -->
<_shortDescription>zh</_shortDescription>
<_description>Taiwanese</_description>
<languageList>
@@ -4655,6 +4804,7 @@
<variant>
<configItem>
<name>saisiyat</name>
+ <!-- Keyboard indicator for Saisiyat layouts -->
<_shortDescription>xsy</_shortDescription>
<_description>Saisiyat (Taiwan)</_description>
<languageList>
@@ -4667,6 +4817,7 @@
<layout>
<configItem>
<name>ua</name>
+ <!-- Keyboard indicator for Ukranian layouts -->
<_shortDescription>uk</_shortDescription>
<_description>Ukrainian</_description>
<languageList>
@@ -4721,6 +4872,7 @@
<layout>
<configItem>
<name>gb</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (UK)</_description>
<languageList>
@@ -4775,6 +4927,7 @@
<layout>
<configItem>
<name>uz</name>
+ <!-- Keyboard indicator for Uzbek layouts -->
<_shortDescription>uz</_shortDescription>
<_description>Uzbek</_description>
<languageList>
@@ -4793,6 +4946,7 @@
<layout>
<configItem>
<name>vn</name>
+ <!-- Keyboard indicator for Vietnamese layouts -->
<_shortDescription>vi</_shortDescription>
<_description>Vietnamese</_description>
<languageList>
@@ -4804,6 +4958,7 @@
<layout>
<configItem>
<name>kr</name>
+ <!-- Keyboard indicator for Korean layouts -->
<_shortDescription>ko</_shortDescription>
<_description>Korean</_description>
<languageList>
@@ -4822,6 +4977,7 @@
<layout>
<configItem>
<name>nec_vndr/jp</name>
+ <!-- Keyboard indicator for Japanese layouts -->
<_shortDescription>ja</_shortDescription>
<_description>Japanese (PC-98xx Series)</_description>
<countryList>
@@ -4836,6 +4992,7 @@
<layout>
<configItem>
<name>ie</name>
+ <!-- Keyboard indicator for Irish layouts -->
<_shortDescription>ie</_shortDescription>
<_description>Irish</_description>
<languageList>
@@ -4881,6 +5038,7 @@
<layout>
<configItem>
<name>pk</name>
+ <!-- Keyboard indicator for Urdu layouts -->
<_shortDescription>ur</_shortDescription>
<_description>Urdu (Pakistan)</_description>
<languageList>
@@ -4913,6 +5071,7 @@
<variant>
<configItem>
<name>snd</name>
+ <!-- Keyboard indicator for Sindhi layouts -->
<_shortDescription>sd</_shortDescription>
<_description>Sindhi</_description>
<languageList>
@@ -4925,6 +5084,7 @@
<layout>
<configItem>
<name>mv</name>
+ <!-- Keyboard indicator for Dhivehi layouts -->
<_shortDescription>dv</_shortDescription>
<_description>Dhivehi</_description>
<languageList>
@@ -4936,6 +5096,7 @@
<layout>
<configItem>
<name>za</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (South Africa)</_description>
<languageList>
@@ -4946,6 +5107,7 @@
<layout>
<configItem>
<name>epo</name>
+ <!-- Keyboard indicator for Esperanto layouts -->
<_shortDescription>eo</_shortDescription>
<_description>Esperanto</_description>
<languageList>
@@ -4964,6 +5126,7 @@
<layout>
<configItem>
<name>np</name>
+ <!-- Keyboard indicator for Nepali layouts -->
<_shortDescription>ne</_shortDescription>
<_description>Nepali</_description>
<languageList>
@@ -4974,6 +5137,7 @@
<layout>
<configItem>
<name>ng</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (Nigeria)</_description>
<languageList>
@@ -4984,6 +5148,7 @@
<variant>
<configItem>
<name>igbo</name>
+ <!-- Keyboard indicator for Igbo layouts -->
<_shortDescription>ig</_shortDescription>
<_description>Igbo</_description>
<languageList>
@@ -4994,6 +5159,7 @@
<variant>
<configItem>
<name>yoruba</name>
+ <!-- Keyboard indicator for Yoruba layouts -->
<_shortDescription>yo</_shortDescription>
<_description>Yoruba</_description>
<languageList>
@@ -5004,6 +5170,7 @@
<variant>
<configItem>
<name>hausa</name>
+ <!-- Keyboard indicator for Hausa layouts -->
<_shortDescription>ha</_shortDescription>
<_description>Hausa</_description>
<languageList>
@@ -5016,6 +5183,7 @@
<layout>
<configItem>
<name>et</name>
+ <!-- Keyboard indicator for Amharic layouts -->
<_shortDescription>am</_shortDescription>
<_description>Amharic</_description>
<languageList>
@@ -5027,6 +5195,7 @@
<layout>
<configItem>
<name>sn</name>
+ <!-- Keyboard indicator for Wolof layouts -->
<_shortDescription>wo</_shortDescription>
<_description>Wolof</_description>
<languageList>
@@ -5038,6 +5207,7 @@
<layout>
<configItem>
<name>brai</name>
+ <!-- Keyboard indicator for Braille layouts -->
<_shortDescription>brl</_shortDescription>
<_description>Braille</_description>
</configItem>
@@ -5059,6 +5229,7 @@
<layout>
<configItem>
<name>tm</name>
+ <!-- Keyboard indicator for Turkmen layouts -->
<_shortDescription>tk</_shortDescription>
<_description>Turkmen</_description>
<languageList>
@@ -5077,6 +5248,7 @@
<layout>
<configItem>
<name>ml</name>
+ <!-- Keyboard indicator for Bambara layouts -->
<_shortDescription>bm</_shortDescription>
<_description>Bambara</_description>
<languageList>
@@ -5087,6 +5259,7 @@
<variant>
<configItem>
<name>fr-oss</name>
+ <!-- Keyboard indicator for French layouts -->
<_shortDescription>fr</_shortDescription>
<_description>French (Mali, alternative)</_description>
<languageList>
@@ -5097,6 +5270,7 @@
<variant>
<configItem>
<name>us-mac</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (Mali, US Macintosh)</_description>
</configItem>
@@ -5104,6 +5278,7 @@
<variant>
<configItem>
<name>us-intl</name>
+ <!-- Keyboard indicator for English layouts -->
<_shortDescription>en</_shortDescription>
<_description>English (Mali, US international)</_description>
</configItem>
@@ -5113,6 +5288,7 @@
<layout>
<configItem>
<name>tz</name>
+ <!-- Keyboard indicator for Swahili layouts -->
<_shortDescription>sw</_shortDescription>
<_description>Swahili (Tanzania)</_description>
<languageList>
@@ -5123,6 +5299,7 @@
<layout>
<configItem>
<name>ke</name>
+ <!-- Keyboard indicator for Swahili layouts -->
<_shortDescription>sw</_shortDescription>
<_description>Swahili (Kenya)</_description>
<languageList>
@@ -5133,6 +5310,7 @@
<variant>
<configItem>
<name>kik</name>
+ <!-- Keyboard indicator for Kikuyu layouts -->
<_shortDescription>ki</_shortDescription>
<_description>Kikuyu</_description>
<languageList>
@@ -5145,6 +5323,7 @@
<layout>
<configItem>
<name>bw</name>
+ <!-- Keyboard indicator for Tswana layouts -->
<_shortDescription>tn</_shortDescription>
<_description>Tswana</_description>
<languageList>
@@ -5155,6 +5334,7 @@
<layout>
<configItem>
<name>ph</name>
+ <!-- Keyboard indicator for Filipino layouts -->
<_shortDescription>ph</_shortDescription>
<_description>Filipino</_description>
<languageList><iso639Id>eng</iso639Id>
@@ -5485,7 +5665,7 @@
</group>
<group allowMultipleSelection="true">
<!-- The key combination used to choose the 3rd (and 4th, together with Shift)
- level of symbols -->
+ level of symbols -->
<configItem>
<name>lv3</name>
<_description>Key to choose 3rd level</_description>
@@ -5571,25 +5751,25 @@
<option>
<configItem>
<name>lv3:lsgt_switch</name>
- <_description>&lt;Less/Greater&gt;</_description>
+ <_description>&lt;Less/Greater&gt;</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv3:caps_switch_latch</name>
- <_description>Caps Lock (chooses 3rd level, latches when pressed together with another 3rd-level-chooser)</_description>
+ <_description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv3:bksl_switch_latch</name>
- <_description>Backslash (chooses 3rd level, latches when pressed together with another 3rd-level-chooser)</_description>
+ <_description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv3:lsgt_switch_latch</name>
- <_description>&lt;Less/Greater&gt; (chooses 3rd level, latches when pressed together with another 3rd-level-chooser)</_description>
+ <_description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
</configItem>
</option>
</group>
@@ -5790,8 +5970,8 @@
</group>
<group allowMultipleSelection="false">
<!-- Caps Lock tweaks.
- "Internal" capitalization means capitalization using some internal tables.
- Otherwise "as Shift" - means using next group. -->
+ "Internal" capitalization means capitalization using some internal tables.
+ Otherwise "as Shift" - means using next group. -->
<configItem>
<name>caps</name>
<_description>Caps Lock key behavior</_description>
@@ -6138,7 +6318,7 @@
<option>
<configItem>
<name>lv5:lsgt_switch_lock</name>
- <_description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
+ <_description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
</configItem>
</option>
<option>
@@ -6162,37 +6342,37 @@
<option>
<configItem>
<name>lv5:lsgt_switch_lock_cancel</name>
- <_description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock</_description>
+ <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv5:ralt_switch_lock_cancel</name>
- <_description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock</_description>
+ <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv5:lwin_switch_lock_cancel</name>
- <_description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock</_description>
+ <_description>Left Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv5:rwin_switch_lock_cancel</name>
- <_description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser, one press releases the lock</_description>
+ <_description>Right Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv5:lsgt_switch_lock_cancel</name>
- <_description>&lt;Less/Greater&gt; chooses 5th level and activates level5-Lock when pressed together with another 5th-level-chooser, one press releases the lock</_description>
+ <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock lock when pressed together with another 5th-level-chooser</_description>
</configItem>
</option>
<option>
<configItem>
<name>lv5:ralt_switch_lock_cancel</name>
- <_description>Right Alt chooses 5th level and activates level5-Lock when pressed together with another 5th-level-chooser, one press releases the lock</_description>
+ <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
</configItem>
</option>
</group>
diff --git a/xorg-server/xkeyboard-config/symbols/cz b/xorg-server/xkeyboard-config/symbols/cz
index 31352efed..25fd54a11 100644
--- a/xorg-server/xkeyboard-config/symbols/cz
+++ b/xorg-server/xkeyboard-config/symbols/cz
@@ -89,7 +89,8 @@ xkb_symbols "qwerty" {
name[Group1]= "Czech (qwerty)";
key <AB01> { [ z, Z, degree, NoSymbol ] };
- key <AC10> { [ uring, quotedbl, semicolon, NoSymbol ] };
+ key <AC10> { [ uring, quotedbl, semicolon, colon ] };
+ key <AC11> { [ section, exclam, apostrophe, quotedbl ] };
key <AD06> { [ y, Y, NoSymbol, NoSymbol ] };
key <AD11> { [ uacute, slash, bracketleft, braceleft ] };
key <AD12> { [parenright, parenleft, bracketright, braceright ] };